2024秋软件工程结对作业(第一次之需求分析和原型设计)
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261 |
这个作业的目标 | 学会结对进行需求分析,实现跨专业协作平台的原型设计 |
学号 | 102201315 |
结对队友 | 陈尚冰 102201313 |
2024秋软件工程结对作业(第一次之需求分析和原型设计)
1.《构建之法》阅读
1.1 阅读成果
在阅读《构造之法》的过程中,第 3 章和第 8 章给我带来了深刻的启发。
第 3 章主要聚焦于软件工程师的成长。这一章让我认识到软件工程师的职业发展是一个不断进步的过程。从个人能力的角度看,软件工程师需要具备良好的编程能力、调试能力和团队协作能力等。其中,编程能力是基础,需要不断地通过实践和学习来提升。调试能力则在解决问题中起着关键作用,能够快速定位和修复软件中的错误。而团队协作能力更是在现代软件开发中不可或缺,良好的沟通和合作能够提高开发效率,确保项目的顺利进行。
同时,这一章还强调了软件工程师的职业道德。在软件开发过程中,要保持诚实、负责的态度,保护用户的隐私和数据安全。这不仅是职业要求,更是一种社会责任。
第 8 章则围绕软件的质量保障展开。软件质量是软件开发的核心目标之一。通过各种测试方法,如单元测试、集成测试、系统测试等,可以有效地发现软件中的缺陷。单元测试能够确保每个模块的正确性,为后续的集成测试打下坚实的基础。集成测试则检验各个模块之间的接口是否正确,系统测试则从整体上评估软件的功能和性能。
此外,质量管理还包括代码审查、静态分析等手段。代码审查可以帮助发现潜在的逻辑错误和不良编程习惯,提高代码的可读性和可维护性。静态分析工具则能够在不运行程序的情况下检测代码中的问题,如语法错误、潜在的安全漏洞等。
总的来说,通过阅读《构造之法》的第 3 章和第 8 章,我对软件工程师的成长路径和软件质量保障有了更深入的理解。在今后的学习和实践中,我将努力提升自己的专业能力,注重职业道德,同时积极运用各种质量保障手段,为开发高质量的软件贡献自己的力量。
1.2 NABCD模型分析
N(Need,需求)
-
明确问题需求:首先要清楚地界定所针对的问题或机会的具体需求。例如,对于一款新的软件产品,需要了解目标用户的痛点、期望的功能以及市场上现有解决方案的不足之处。
-
用户需求分析:通过市场调研、用户访谈等方式,深入了解用户的需求。包括功能需求(如高效的数据处理、便捷的操作界面)、性能需求(如快速响应时间、高可靠性)、体验需求(如良好的用户界面设计、易用性)等。
A(Approach,做法)
-
提出解决方案:根据需求分析,提出具体的解决方案。这可能包括技术选型、设计架构、功能模块规划等。
-
创新与差异化:在解决方案中体现创新点和差异化竞争优势,以区别于市场上的其他产品。例如,采用新的算法提高性能、提供独特的用户体验设计等。
-
实施计划:制定详细的实施计划,包括开发进度安排、资源分配、团队协作方式等。
B(Benefit,好处)
-
对用户的好处:明确产品或解决方案给用户带来的好处。这可以是解决用户的实际问题、提高工作效率、提升生活品质等。
-
对相关方的好处:考虑对其他相关方的好处,如企业可以提高竞争力、增加收益;合作伙伴可以获得更多的业务机会等。
C(Competition,竞争)
-
竞争对手分析:分析市场上的竞争对手,了解他们的产品特点、优势和劣势。
-
竞争优势:确定自己的产品或解决方案的竞争优势,如更好的性能、更低的成本、更优质的服务等。
-
应对竞争策略:制定应对竞争的策略,如不断创新、优化用户体验、加强市场营销等。
D(Delivery,推广)
-
推广渠道选择:确定合适的推广渠道,如线上广告、社交媒体、线下活动等,以将产品或解决方案推向目标用户。
-
用户获取策略:制定用户获取策略,如提供免费试用、举办促销活动、与合作伙伴合作推广等。
-
持续改进与反馈:在推广过程中,收集用户反馈,不断改进产品或解决方案,以提高用户满意度和市场竞争力。
2. 项目简介
2.1项目背景
在大学里,一些有想法的学生希望通过发起或参与跨专业的项目(创业、学术)来提升自己的综合能力,拓宽知识面和积累人脉。然而,在校园里要实现跨专业合作往往取决于自己积累的人脉,或者去请不同专业的老师帮忙介绍,这就导致合作的机会非常有限。例如,对于一些需要多学科支持的项目(需要设计、编程和市场营销能力的创业项目),在偌大的校园中,学生们往往找不到志同道合的合作伙伴。
另外,不同专业之间的学生由于学校课程安排以及个人想法,可能在合作时间安排上、项目目标和沟通方式上可能存在差异,这进一步加大了合作的难度。同时,缺乏平台或资源来支持跨专业项目的持续发展。
2.2项目功能与特点
1、系统支持不同角色用户的注册和认证,并允许用户修改个人信息。学生可以自主发起或加入项目,教师则可以对项目进行指导,并上传和分享相关资源。
2、用户可以在平台上发布需要多学科支持的项目并为其添加标签,用户可通过点击标签查看对应项目。项目启动或取消后,用户可以将其标记为已结束,系统会相应删除该项目。
3、系统提供预定格式,用户需按格式填写表单内容,包括个人专业、课程安排、项目目标、个人能力、联系方式和招募需求等。申请者需提交相同的表单以申请参与项目。
4、平台需具备高频率使用场景,并确保操作简便。从使用频率、便捷性和合作有效性三方面出发,设计易用的界面和简化的操作流程,以提升用户体验。
5、平台内的项目合作应保持相对封闭,仅限已认证用户查看和参与,以防止项目核心内容外泄。
3.原型展示
原型模型设计工具:MODAO(墨刀)
在线原型展示页面:https://modao.cc/proto/GkDBVB4Qsk64hl2MbqkJf/sharing?view_mode=device&screen=rbpUP1OW9zD5gOKYg&canvasId=ssl8llcuUP7Cfage1pYIhI #未命名原型-分享
基本流程
注册界面
登录界面
项目大厅界面
标签详情界面
项目详情界面
个人中心
提交表单界面
发起招募界面
应用程序主要由注册界面、登录界面、项目大厅界面、标签详情界面、项目详情界面、提交表单界面、个人中心界面以及发起招募界面构成。每个界面侧重点各异,项目开发过程中可能会根据友好性、易操作性和数据呈现的优化需求进行相应调整。
基于原型设计,构造后端设想:
在提交招募和申请表单时,系统从数据库中获取用户在 users 表中对应的姓名、专业和邮箱等信息,通过使用 JOIN 语句实现数据的前端呈现,SQL 查询语句如下:
SELECT p.*, u.name AS creator_name, u.major AS creator_major, u.email AS creator_email
FROM projects p
JOIN users u ON p.creator_id = u.student_id
WHERE p.id = '$project_id';
4.过程性记录
4.1结对工作交流探讨
4.2使用工具生成LOGO
4.3熟悉Github协作流程:
5.PSP表格
任务阶段(PSP) | 预估耗时(min) | 实际耗时(min) |
---|---|---|
阅读《构建之法》第三章及第八章、学习NABCD模型 | 25 | 30 |
项目背景、需求分析 | 15 | 15 |
项目构思、流程拟稿 | 20 | 20 |
沟通交流、细节把握 | 35 | 30 |
生成设计文档、流程图 | 20 | 25 |
沟通交流、完善润色 | 15 | 15 |
原型设计 | 60 | 65 |
总计 | 190 | 200 |
6.个人总结
在NABCD模型的学习与启发下,我尝试着阅读客户描述的现实困扰,将整套流程信息化,并且学习设计一套兼顾实用性、有效性、安全性、隐私性、封闭性的方案。
同时我尝试着以结对的方式进行学习与开发,去理解和交流双方的想法与思路,这使我受益匪浅,未来将于此方式进行更多方案合理性的探讨与具体实现。
并且我稍微熟悉了原型工具的使用。