这个作业属于哪个课程 | 软件工程2024 |
---|---|
这个作业要求在哪里 | 2024秋软件工程结对作业(第一次之需求分析和原型设计) |
这个作业的目标 | 学习使用原型软件,辅助完成软件工程的前期任务,学会团队合作 |
学号 | 102201426 |
结对成员学号:102201427、102201426
原型链接:Find You Team
一、阅读《构建之法》后的成果
1、第3章软件工程师的成长
通过阅读第三章,我学会了评价软件工程师的水平的主要方法,技能的反面,TSP对个人的要求,软件工程师的思维误区等。
对于Individual Contributor (IC)而言,在团队中的流程如下:
-
理解问题或任务
-
提出多种解决办法并估计工作量
- 其中包括寻找以前的解决方案,因为很多工作是重复性的 – 例如实现某些类似的web页面。
-
与相关角色交流解决问题的提案, 决定最终方案
-
执行, 把想法变成实际中能工作的代码,同时验证方案的可行性和其他特性
-
团队合作,测试案例,修复缺陷
-
对结果负责
一名初级软件工程师,可以通过以下的方式成长:
-
积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力).
- 我们要对提高对python语言的掌握,学会调试器的使用
-
积累问题领域的知识和经验
- 本次是实现一个让用户可以自由组队完成项目的app,我们要对项目的完成流程有一定的了解,有利于我们的软件设计
-
对通用的软件设计思想和软件工程思想的理解
-
提升职业技能(区别于技术技能)
- 与技术技能不一样,职业技能包括:自我管理的能力,表达和交流的能力,与人合作的能力,按质按量完成任务的执行力,等等,在结对过程中这些能力也很重要
-
实际成果
- 行胜于言,无论我们的想法与设计在我们看来多么好,最终的评价还是要来自于用户群体的反馈
软件工程师的思维误区
-
分析麻痹:想弄清所有细节、依赖关系再动手,不想修复问题
-
不分主次,想解决所有依赖问题:想动手修复所有问题,达到“完美”目标,不是找“足够好”的方案
-
过早优化:陷在某个局部问题中
-
过早扩大化 / 泛化:程序员在写程序时要明白某一些做法的必要性、难度和时机,不要总是豪情万丈,但不去深入思考其可行性。
2、第8章的NABCD模型
NABCD模型分析(Need、Approach、Benefit、Competitors、Delivery)
N(Need)需求
大学里的许多学生希望通过发起或参与跨专业的项目来提升综合能力、拓宽知识面和积累人脉。但由于人脉积累有限、难以找到志同道合的合作伙伴、不同专业间课程和时间安排不同等原因,跨专业合作的机会非常有限。因此,需要一个平台来帮助学生们找到合适的合作伙伴,进行高效的跨专业项目合作。
A(Approach)方法
我们设计了一款APP——“Find You Team”,包含项目发布、人才匹配、聊天交流和项目管理等功能。通过该APP,学生们可以便捷地发布项目需求,找到合适的合作伙伴,并进行高效的沟通和项目管理。
B(Benefit)好处
- 为学生提供跨专业合作的平台:使学生能够便捷地找到合适的合作伙伴。
- 提升项目合作效率:通过项目管理和沟通工具,提高项目合作的组织和管理效率。
- 积累人脉和资源:参与平台活动的学生能够拓宽人脉,积累更多的资源和经验。
C(Competitors)竞争
当前市场上存在类似功能的APP,例如一些社交媒体和校园内的微信公众号等,但这些工具通常更加注重社交,而非专注于跨专业项目合作。而“校园合作”APP则专注于解决这一具体需求,通过专业认证、完善的项目管理工具等特点,形成差异化竞争优势。
D(Delivery)交付
通过设计和实现一个用户友好、功能丰富的APP,我们能够将上述设想变为现实。接下来,我们详细介绍APP的设计方案。
解决方案概述
我们设计了一款应用程序(APP)“Find Your Team”专门解决学生跨专业合作的困难。这款APP通过信息化流程,让学生能够更便捷地找到合作伙伴、分享项目、管理项目进度,并提供交流和认证功能,以确保安全和隐私。
二、主要功能和界面原型
我们使用摹客RP进行原型设计,原型链接:Find You Team
原型及设计过程展示:
流程图
用例图
演示图
三、主要界面与功能包括:
1. Logo页面
2. 登录界面
- 可以跳转到注册页面
- 登录后需认证
从左向右分别为登录、注册、设置密码
3. 认证界面
4. 首页
- 顶部搜索栏
- 包含“项目总库”和“人才林”
- 底部导航栏:
首页
、聊天
、仓库
、我的
5. 项目总库
- 展示所有项目,可搜索
6. 人才林
- 展示人才信息,可按专业搜索
7. 我的页面
- 编辑“我的人才树”
- 进入聊天页面或查看好友
8. 仓库
- 展示账号相关项目
- 创建项目
四、用户角色和操作流程
1. 用户注册和认证
- 用户通过手机号注册。
- 注册后进行身份认证,通过人脸验证来确认身份。
2. 用户登录
- 使用手机号及密码登录。
- 验证成功后进入首页。
3. 项目发布与管理
- 在“项目总库”中发布新项目,填写项目名称、描述、所需技能等信息。
- 在“仓库”中管理已发布项目,包括修改项目信息、删除项目等。
4. 找寻合作伙伴
- “项目总库”中浏览其他人发布的项目并参与。
- “人才林”中按专业或技能找寻合作伙伴。
5. 沟通与协作
- 使用“聊天”功能与合作伙伴实时沟通。
- 在“我的”页面管理好友列表。
五、系统维护与安全
1. 使用频率和便利度
- 每次登录验证身份,确保用户身份真实性。
- 提供数据备份和恢复功能,防止数据丢失。
2. 安全性和隐私性
- 用户数据加密存储,防止泄露。
- 用户可设定个人信息的公开范围。
- 所有通信加密传输,确保信息安全。
3. 时效性和封闭性
- 人脸认证,确保用户群体限于校园内学生。
- 对过期项目和长期不活跃账号进行定期清理。
六、PSP表格
PSP阶段 | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|
计划 | 1 | 1.5 |
需求分析 | 2 | 2.5 |
设计 | 4 | 5 |
实现 | 3 | 4 |
测试 | 2 | 2 |
总计 | 12 | 15 |
七、交流过程
八、个人总结
1.沟通与协作的重要性:
在结对编程的过程中,我深刻体会到了沟通对于软件开发的重要性。通过不断地与搭档交流想法、讨论问题和解决方案,我们能够更快地理解任务需求,避免了很多不必要的误解和错误。这种即时的反馈和修正机制大大提高了我们的工作效率和质量。 作为团队的一员,我深刻感受到了自己的责任感和担当。我意识到自己的每一个决定和行动都会影响到整个团队的进度和成果。因此,我会更加认真地对待自己的工作,并尽力做到最好。
2.思维碰撞与创意激发:
两个脑袋总比一个脑袋强。在结对编程中,我们经常能够通过对方的观点来激发新的灵感和创意。有时候,当自己陷入思维僵局时,搭档的一个建议就能让我豁然开朗。这种思维碰撞不仅促进了问题的解决,也让我们在软件设计过程中更加享受创造的乐趣。
3.互相学习与提升:
每个人都有自己擅长的领域和不足之处。在结对作业中,我可以从搭档那里学到很多新知识和技能,同时也能够将自己的经验和心得分享给对方。这种互相学习和提升的过程不仅让我们的编程能力得到了提高,也让我们在团队中更加信任和依赖彼此。
4.冲突和解决:
冲突是无法避免的,我们在设计的时候,会有不同的想法,谁也无法说服对方,这时候设计往往会陷入僵局。但还好我们两人都不是非常顽固的人,我们会尝试思考对方的想法,在我们的想法中选一个最优解,最终还是磕磕绊绊的完成了设计。