软件工程第一次结对作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261 |
这个作业的目标 | 学会对现实需求进行需求分析,并学会使用原型设计软件设计出一个符合需求的原型,以及学会结对协作完成任务 |
学号 | 102202114 |
合作伙伴 | 102202150 |
墨刀链接 | https://modao.cc/proto/fZqOA07lskevefSlAyvR5y/sharing?view_mode=read_only |
软件工程第一次结对作业之需求分析和原型设计
一、阅读《构建之法》
1.第三章 软件工程师的成长
《构建之法》第三章主要围绕软件工程师的成长与发展展开,详细探讨了初级软件工程师的成长路径、个人能力的发展、职业技能的提升,以及软件开发过程中的工作量和质量衡量标准。同时,该章节还指出了软件开发过程中常见的思想误区和应对策略,帮助软件工程师更好地应对挑战。
- 个人能力的衡量与发展
1)初级软件工程师如何成长
主要是通过积累知识和经验,提升技能、对软件设计(工程)的思想的理解、提升职业技能和最终的实际成果
2)如何衡量软件开发的工作量
项目大小、所需时间、质量及是否按时交付 - 软件工程师的思维误区
1)分析麻痹
现象:过度关注细节和依赖关系,导致分析时间过长而无法及时动手开发。
应对策略:采用快速原型、迭代开发等方法,快速验证想法并逐步完善。
2)不分主次
现象:在开发过程中无法区分主要和次要任务,导致资源浪费和时间延误。
应对策略:明确任务优先级和重要性,集中精力优先完成关键任务。
3)过早优化
现象:在开发初期就陷入局部优化问题,忽视整体性能和架构的合理性。
应对策略:遵循“先完成再完美”的原则,优先确保软件的基本功能和稳定性,再逐步进行优化。 - 软件工程师的职业发展
分析了各种人对这一职业的心态,再阐述该职业的职业发展、成长之路
1)考级
2)Steve McConnell版本(工程师级别)
3)自我评估 - 技能的反面
现象:虽然具备了解决高层次问题的能力但是却在一些低层次的问题上花费大量时间。
应对策略:通过不断地练习提高技能,把低层次的问题解决,把时间花在解决高层次问题上。
2.第八章 需求分析
-
软件需求
《构建之法》第八章主要围绕“需求分析”展开,详细探讨了软件团队在开发过程中如何准确地识别、分析、定义和管理软件需求。
1)获取需求的四个步骤
获取和引导需求:也称为“需求捕捉”,通过设身处地为用户着想,引导出他们的需求。
分析和定义需求:对收集到的需求进行规整和量化,明确其内涵和优先级。
验证需求:通过多种方式验证需求的正确性。
在软件产品的生命周期中管理需求:持续跟踪和管理需求的变化。
2)需求的分类
功能性需求:要求产品必须实现某些功能。
开发过程需求:对软件开发流程提出的约束条件,如文档要求、时间节点等。
非功能性需求:如性能、安全性等非功能性的要求。
综合需求:可能牵涉到其他系统或利益相关者的情况。 -
软件产品的利益相关者
主要有用户、顾客、市场分析者、监管机构、系统集成商、软件团队、软件工程师 -
如何获取用户用户需求
1)焦点小组:通过小组讨论了解用户需求。
2)深入面谈:一对一地与用户进行深入交流。
3)卡片分类:通过卡片排序的方式明确用户需求的优先级和分类。
用户调查问卷:通过问卷形式收集用户反馈。
4)用户日志研究:与用户共同生活、工作,了解他们的实际需求。
5)A/B测试:持续迭代,科学验证,提升产品体验
人类学调查、眼动跟踪研究、快速原型调研等也是常用的用户调查方法。
-
竞争性需求分析框架
NABCD模型是有效的方法
1)N Need(需求)
明确项目或产品所要解决的用户需求或市场痛点。
2)A Approach(做法)
阐述项目或产品将如何满足上述需求,包括采用的技术、方法或策略。
3)B Benefit(好处)
说明项目或产品给用户、企业或社会带来的具体好处或价值。
4)C Competitors(竞争)
分析项目或产品所处的市场环境,识别竞争对手及其优劣势。
5)D Delivery(推广)
制定项目或产品的推广策略,包括市场定位、营销渠道、宣传手段等。 -
功能定位和优先级
在产品开发过程中,功能定位和优先级是至关重要的。根据常见的划分方式,我们可以将产品功能分为杀手功能、外围功能、必要需求和辅助需求四个类别。
1)杀手功能
是指那些能够直接解决用户主要痛点,具有独特性和高价值的功能。这些功能通常是产品的核心竞争力所在,能够显著区别于竞争对手,并吸引用户选择该产品。
2)外围功能
是指那些虽然不是产品核心,但能够提升用户体验、增加产品吸引力和竞争力的功能。这些功能通常用于补充和完善杀手功能,使产品更加完善和用户友好。
3)必要需求
必要需求是指那些产品必须满足的基本功能和性能要求。这些需求是用户选择产品时的基本门槛,如果产品无法满足这些需求,用户将不会考虑购买或使用该产品。
4)辅助需求
是指那些不是产品核心功能,但能够为用户提供额外便利或满足其个性化需求的功能。这些功能通常不是用户选择产品的决定性因素,但能够提升用户满意度和忠诚度。
把这四种划分结合起来就得到了功能分析的四个象限,这四个象限能让软件团队清楚地看到自己感兴趣的功能处于什么地位,就能决定如何如理不同类型的功能。
二、需求分析
1. 需求获取(Elicitation)
- 利益相关者:学生、教师、学校管理层、校友。
- 需求收集:通过问卷调查、访谈、焦点小组讨论等方式收集学生和教师的需求。
- 需求捕捉:确定学生寻找合作伙伴的痛点:专业限制、时间安排、沟通障碍等。
2. 需求分析和定义(Specification)
- 需求分类:将需求分为功能需求、非功能需求(如安全性、隐私性)、用户界面需求。
功能需求:
1)用户注册与认证。
2)发布和浏览项目。
3)搜索和筛选合作伙伴。
4)项目管理和协作工具。
5)论坛和讨论区。
非功能需求:
1)系统安全性。
2)隐私保护。
3)系统可用性和稳定性。
用户界面需求
1)简洁直观的用户界面。
2)移动和桌面平台的适配。 - 需求优先级:根据需求的紧迫性和重要性进行排序。
1)用户注册与认证。
2)发布和浏览项目。
3)项目管理和协作工具。
4)搜索和筛选合作伙伴
5)论坛和讨论区。
3. 需求验证(Validation)
- 原型测试:开发初步原型,邀请用户进行测试。
- 用户反馈:收集用户对原型的反馈,调整设计。
4. 需求管理(Management)、审查(Review)与测试(Testing)
- 需求跟踪:使用需求跟踪工具,如JIRA,来管理需求的状态。
- 定期审查:定期与利益相关者审查需求,确保需求的一致性和完整性
- 测试计划:制定测试计划,确保需求得到满足。
三、原型设计
1.总体流程图:
先确定主要任务和基本框架后面再确定细节
2.原型概述
基于以上需求分析我们设计了一个名为智汇联创的APP
-
学生首页
1)项目:学生可以创建和参与项目,查看项目详细信息。
2)经验:学生可以发布经验帖子,分享学习资料与实践经验,并浏览他人的帖子。
3)找伙伴:根据专业技能寻找志同道合的伙伴,增加跨专业合作机会。
4)搜索:提供搜索功能,可输入关键词搜索项目、经验帖子、老师、同学等。
-
教师首页
1)项目:教师可以看到自己接受邀请的项目,查看项目详细信息。
2)经验:教师可以发布帖子,分享资料,并浏览他人的帖子。
-
圈子
自由发布帖子进行交流,提供一个讨论和分享的平台。
-
消息
1)接收系统消息和用户之间的通知,保持信息畅通。
2)将系统消息页面与用户消息页面区分。
-
我的
1)显示用户的具体信息,包括个人资料、参与项目和已发表的帖子等。
2)设置功能,可以进行账号设置与隐私设置
3)提供问题反馈通道。
3.用户角色与功能
-
学生角色
- 注册/登录
- 创建/参与项目
- 发布/浏览经验帖子
- 寻找合作伙伴
- 参与圈子讨论
-
老师角色
- 注册/登录
- 查看学生的项目和经验帖子
- 提供指导与建议
- 接受学生的项目邀请(教师特有功能,可以在教师端消息页面点击项目消息进入)
4.功能原型设计
-
登录页面
1)分有学生登录和教师登录
2)注册账号需要进行提交证件认证
3)具有找回密码的功能
-
首页界面
1)三个功能模块清晰展示
2)直观的导航设计,易于使用
-
圈子界面
讨论区的交互设计
-
消息界面
1)消息通知列表
2)用户消息的快捷回复功能
3)在群聊中设置群日历功能,可以导入课表和添加日程,方便安排合作时间
-
我的界面
1)个人信息展示
2)参与项目和经验记录的汇总
3)账号设置与隐私设置
5.原型性能
- 安全性与隐私性
1)数据加密:对用户数据进行加密存储。
2)访问控制:实施角色基于的访问控制,确保用户只能访问授权的信息。 - 封闭性
1)邀请制:初期采用邀请制,确保用户质量。
2)审核机制:管理员对发布的项目和用户进行审核。
3)只允许在校师生使用。 - 维护与更新
1)定期维护:定期检查系统性能,更新软件。
2)用户反馈:建立反馈机制,根据用户反馈进行迭代更新 - 实时性
1)消息通知:系统即时推送消息,如项目更新、新评论、新伙伴请求等
2)即时搜索:用户在搜索合作伙伴或项目时,系统应提供即时的搜索结果。
3)动态更新:项目状态、用户资料等信息的更新应该实时反映在APP中。
四、NABCD模型
1. Need(需求)
- 用户需求:
1)学生:需要一个平台来发起或参与跨专业的项目,寻找合作伙伴,分享经验,接收信息。
2)老师:需要一个平台来接受学生邀请,提供指导和建议,查看学生项目和经验。 - 市场痛点:
1)缺乏有效的合作平台和资源。
2)跨专业合作机会有限。
3)合作时间安排、项目目标和沟通方式上存在差异。
2. Approach(做法)
- 技术与方法:
1)APP开发:开发一款跨专业合作的APP,提供项目创建、经验分享、找伙伴、圈子讨论等功能。
2)用户角色管理:区分学生和老师角色,实现不同权限和功能。
3)安全认证:实现多重认证机制,确保用户账户安全。
4)隐私保护:用户信息加密存储,严格控制访问权限。 - 策略:
1)用户注册:选择角色,通过学号/教师号注册,并提交证件审核。
2)项目创建与参与:学生创建项目,填写项目描述、需求技能等信息,其他学生申请参与,老师同意学生邀请。
3)经验分享:学生或老师发布经验帖子或者共享资料,选择标签和类别,其他用户浏览并互动。
4)找伙伴功能:学生输入所需技能,系统推荐合适的伙伴。
3. Benefit(好处)
- 对学生的好处:
1)提升综合能力。
2)拓宽知识面和人脉。
3)增加合作机会。 - 对老师的好处:
1)促进学生项目的发展。
2)提供指导和建议的平台。
3)了解学生动态和需求。 - 对学校的好处:
1)提高教育质量和学生满意度。
2)促进跨学科合作和创新。
4. Competitors(竞争)
- 市场环境:
目前市场上存在一些类似的学生合作平台,但多数功能单一,缺乏跨专业合作的深度支持。 - 竞争对手分析:
竞争对手A:提供基本的项目合作功能,但缺乏专业的技能匹配和经验分享机制。
竞争对手B:有较好的用户界面,但安全性和隐私保护不足。 - 我们的优势:
1)提供全面的跨专业合作支持。
2)强化安全性和隐私保护。
3)定期更新和优化,根据用户反馈进行改进。
5. Delivery(推广)
- 市场定位:
针对大学生和教师,特别是需要跨专业合作的群体。 - 营销渠道:
1)校园推广:通过学校官方渠道和学生组织进行推广。
2)社交媒体:利用微博、微信、QQ等社交平台进行宣传。
3)合作伙伴:与学校、教育机构合作,共同推广。 - 宣传手段:
1)案例分享:分享成功案例,展示APP的实际效果。
2)用户反馈:收集用户反馈,不断优化产品。
3)线上线下活动:举办线上线下活动,增加用户参与度。
五、结对工作过程
1.墨刀创建协作团队,共同制作原型模型
2.线上交流分配任务
3.线下交流分享想法
六、PSP表格
编号 | 阶段 | 任务 | 预估耗时(h) | 实际耗时(h) |
---|---|---|---|---|
1 | 作业之前 | 阅读《构建之法》第3、8章 | 3 | 2 |
2 | 需求分析 | 需求分析 | 3 | 3 |
3 | 原型设计之前 | 基本构思 | 3 | 4 |
4 | 原型设计 | 登录/注册页面设计 | 4 | 4 |
5 | 学生/教师首页设计 | 5 | 5 | |
6 | 项目页面设计 | 3 | 4 | |
7 | 交流页面设计 | 3 | 2 | |
8 | 隐私与反馈页面设计 | 3 | 2 | |
9 | 原型设计之后 | 写博客 | 2 | 4 |
总计 | 29 | 30 |
七、总结
102202114农晨曦:
1.概述
在本次结对作业中,我与队友共同完成了一个跨专业合作平台的原型设计。通过阅读《构建之法》第3章和第8章的内容,我们采用了NABCD模型,清晰地规划了需求分析和方案设计,最终制作出了一款适合校园内跨学科合作的APP。
2. 团队合作与体会
在团队协作方面,我们采取了分工合作的方式,每个人负责不同的模块设计。在使用墨刀工具进行原型设计时,实时的协作功能帮助我们能够及时调整界面,并确保每个模块设计的一致性。整个设计过程高效且富有成效。
不过,设计过程中也面临了一些挑战。特别是在功能和界面设计之间寻找平衡,既要保证系统功能的全面性,又要避免过于繁杂的操作流程。在经过几次的用户体验模拟后,我们逐渐简化了界面操作,使得每个功能都能够在用户点击后立即显现出来。
3. 自我提升与总结
通过本次作业,我深入体会到了需求分析在软件开发中的重要性。从用户需求出发,逐步细化功能,再到原型设计,每一步都需要考虑如何让产品更好地解决实际问题。而NABCD模型在这一过程中提供了结构化的指导,帮助我们从全局角度考虑问题。
同时,在与队友的合作中,我学会了如何更有效地沟通和协作。无论是设计讨论还是具体功能实现,我们通过不断地反馈和修改,最终完成了一个清晰、直观且功能全面的原型设计。
总结来说,这次作业让我不仅对跨学科合作有了更深的理解,还提升了我的设计和团队协作能力。希望在后续的开发过程中,我们能够进一步优化这个原型并实现更多功能,真正解决大学生跨专业合作中的痛点。
102202150魏雨萱:
1.概述
在这次的结对作业中,我们围绕如何帮助大学生在跨专业合作中找到合适的合作伙伴,设计了一款原型APP“智汇联创”。第一次设计原型,第一次使用墨刀觉得很新奇很有趣😃,在开始设计之前还学习了墨刀各种工具的功能和如何使用这些工具,丰富了自己的技能。
2. 团队协作与反思👭
在整个过程中,我与队友保持了良好的沟通和合作。我们共同分析了客户的需求,并分工设计了不同的模块。在设计原型时,我们通过墨刀工具协作,实时修改并调整界面布局和功能。队友的审美在线,配色和设计让我眼前一亮👍。
然而,在设计过程中我们也遇到了一些挑战。比如,如何在保持功能丰富的同时,避免界面过于复杂。经过几次讨论和调整,我们最终达成了简洁的设计方案,确保用户能够轻松找到并使用所需功能。
3. 学习与收获📝
通过此次作业,我对软件开发中的需求分析、功能设计以及原型展示有了更深的理解。NABCD模型为我们的设计提供了结构化的思路,确保我们能够从用户需求出发,设计出具有实际应用价值的产品。同时,第一次进行双人结对作业是一种不一样的体验😋,在与队友的合作中,我也认识到团队协作在项目开发中的重要性。彼此的观点互相补充,使得我们的设计更加完善💪。
总之,这次作业不仅让我更深入地理解了跨学科合作的需求,也提升了我在设计原型和用户体验方面的技能。我期待在后续的开发中,能够进一步优化这个项目并将其功能实现。