2024秋软件工程第一次结对作业
🍁 2024秋软件工程第一次结对作业之需求分析和原型设计 🚀
🎓 学号
- 来再提·叶鲁别克: 102202153
- 阿依娜孜·赛日克: 102202124
📘 课程信息
这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 结合用户需求,设计一个微信小程序原型解决用户困扰 |
学号 | 102202153来再提·叶鲁别克 |
合作伙伴 | 102202124阿依娜孜·赛日克 |
🌿 《构建之法》阅读成果
第3章 软件工程师的成长 🌱
-
个人能力的衡量与发展
- 技术技能:不断学习新的编程语言和工具,提高代码的效率和质量。
- 问题域知识:深入理解业务逻辑,以便更好地设计软件解决方案。
- 软件设计原则:掌握面向对象、模块化、设计模式等设计原则。
- 软技能:提升自我管理能力,包括时间管理、压力管理和自我激励。
-
工作量和质量的衡量
- 项目规模:使用故事点或理想人天来估算项目大小。
- 时间管理:跟踪项目进度,确保按时交付。
- 代码审查:通过代码审查提高代码质量,减少缺陷。
- 持续集成/持续部署(CI/CD):自动化测试和部署流程,提高交付速度和质量。
-
团队对个人的期望
- 沟通能力:清晰、有效地与团队成员沟通。
- 团队合作:在团队中发挥积极作用,共同解决问题。
- 适应性:能够适应不断变化的项目需求和工作环境。
- 责任心:对自己的工作负责,确保高质量的输出。
-
软件工程师的思维误区
- 分析麻痹:避免过度分析导致的决策瘫痪。
- 依赖地狱:管理好依赖关系,避免项目因依赖问题而受阻。
- 过早优化:在明确需求和设计之前,避免过早进行性能优化。
- 过早泛化:在有足够的用例之前,避免设计过于通用的解决方案。
-
职业发展路径
- 专业认证:获取如PMP、CSM、PSP等专业认证。
- 技能提升:通过在线课程、工作坊、技术会议等方式提升技能。
- 知识分享:通过博客、演讲、开源项目等方式分享知识。
- 行业网络:建立和维护专业网络,与同行交流经验。
第8章 需求分析 🔍
-
软件需求的获取、分析
- 需求工程:系统地获取、分析、定义和管理软件需求。
- 需求文档:编写清晰、详细的需求文档,作为项目开发的基础。
-
利益相关者
- 识别利益相关者:确定所有可能受到项目影响的人或组织。
- 利益相关者分析:理解每个利益相关者的需求和期望。
-
获取用户需求的方法
- 用户访谈:通过一对一访谈深入了解用户需求。
- 用户故事:使用用户故事来捕捉用户的需求和目标。
- 原型测试:通过原型来验证用户需求和设计思路。
-
竞争性需求分析框架NABCD
- 需求(Need):明确用户的基本需求。
- 做法(Approach):确定满足需求的方法或策略。
- 好处(Benefit):分析方法带来的潜在好处。
- 竞争(Competitors):评估竞争对手的解决方案。
- 推广(Delivery):制定推广和实施计划。
-
功能的定位和优先级
- 优先级排序:根据业务价值、开发难度和用户需求对功能进行排序。
- 价值主张:明确每个功能对用户和业务的价值。
-
项目计划和估计的技术
- 估算方法:使用如类比估算、自下而上估算等方法来估计项目成本和时间。
- 风险管理:识别项目风险,并制定相应的缓解措施。
-
任务划分的技术WBS
- 工作分解结构:将项目分解为更小的任务,以便更好地管理和跟踪。
- 任务依赖性:确定任务之间的依赖关系,优化工作流程。
个人感悟 📝
在阅读《构建之法》的第三章和第八章内容后,我深刻体会到了软件工程师这一职业的多面性和复杂性。首先,关于软件工程师的成长,我意识到技术技能的精进固然重要,但同样不可或缺的是对问题域的深入理解、软件设计原则的掌握以及软技能的提升。这让我明白,要想在这个快速变化的行业中立足,不仅需要扎实的技术功底,还需要良好的沟通能力和团队协作精神,以及对自我管理的严格把控。
特别是在工作量和质量的衡量上,书中提到的项目规模估算、时间管理、代码审查和持续集成/持续部署等策略,为我提供了实际操作的指南。我认识到,高效的项目管理和质量保证是软件项目成功的关键,而这些都需要工程师们在日常工作中不断实践和优化。
此外,第八章关于需求分析的内容更是让我印象深刻。我深刻理解了需求工程的重要性,它不仅是项目开发的基石,更是确保软件产品能够满足用户需求的关键。通过用户访谈、用户故事和原型测试等方法获取和分析用户需求,不仅能够帮助我们更好地理解用户,还能为后续的软件开发提供有力的支持。同时,我也学到了如何通过NABCD框架来系统地分析竞争性需求,以及如何通过优先级排序和价值主张来确定功能的定位和优先级。
这次阅读让我对软件工程师的职业发展有了更清晰的认识,也让我更加坚定了在这个行业中不断学习和进步的决心。我相信,只要我们能够遵循书中的指导,不断提升自己的技能和素养,就一定能够在软件开发的道路上走得更远、更稳。
📝 一、引言
在当前大学校园中,跨专业合作面临诸多挑战。为了解决这一问题,我们提出了一款名为“AL聚能阁”的跨界合作平台小程序,旨在帮助学生找到志同道合的合作伙伴,促进跨专业项目的开展。
🔍 二、需求分析
2.1 目标用户👥
- 学生:希望参与跨专业项目,提升综合能力。
- 老师:希望支持学生项目,促进学术交流。
- 学校管理者:希望提供更好的资源支持,提升学校的创新氛围。
2.2 功能需求📝
- 用户登录与认证:用户需要用微信登录。
- 项目发布与搜索:用户可以发布项目需求,描述项目内容、技能要求和时间安排。提供搜索功能,根据专业、兴趣、项目类型等条件筛选合适的合作伙伴。
- 消息沟通:内置即时通讯功能,方便参与者讨论项目细节。
- 反馈与评价:用户可以对合作伙伴进行评价,形成信誉体系。
2.3 非功能需求🛡️
- 安全性:确保用户数据安全,采用加密存储。
- 隐私性:用户信息仅限于项目相关人员可见。
- 易用性:界面友好,符合主流人群使用习惯。
🎨 三、原型设计
在进行原型设计时,我们的目标是确保用户界面直观、易用,同时能够满足用户的核心需求。我们选择了墨刀(MockingBot)作为原型设计工具,因为它提供了强大的拖放功能和丰富的组件库,使我们能够快速构建出直观的界面原型。以下是我们设计的主要界面原型展示:
3.1 原型界面描述🖼️
-
首页:
- 项目推荐:展示精选项目,使用卡片布局,每个卡片包含项目名称、简介、图片和参与人数。
- 快速入口:提供快速访问项目发布、搜索等常用功能的入口。
-
项目发布页面:
- 内容输入:用户可以输入项目名称、描述、上传照片、选择话题和@用户。
- 发布按钮:清晰标注的发布按钮,方便用户快速提交项目。
-
搜索页面:
- 高级筛选:提供专业、技能、项目类型等筛选条件,帮助用户精确查找所需项目或人才。
- 详细资料:点击用户条目,可以查看用户的详细资料,包括过往项目经验和技能评价。
-
消息页面:
- 实时聊天:支持发送文本、图片和文件,确保沟通无障碍。
- 消息提醒:新消息即时提醒,避免错过重要信息。
- 聊天历史:提供聊天历史记录,方便用户回顾之前的对话。
3.2 流程图📈
为了帮助用户更好地理解整个项目的流程,我们创建了一个详细的流程图。这个流程图从用户注册开始,一直到项目完成,涵盖了用户可能经历的每一个步骤:
- 首页:显示项目推荐。
- 浏览项目:用户可以浏览首页推荐项目或使用搜索功能查找特定项目。
- 发布项目:用户可以通过项目发布页面提交自己的项目。
- 参与项目:用户可以申请参与感兴趣的项目。
- 沟通协作:项目参与者可以通过消息页面进行实时沟通。
-项目发布页面:表单输入项目名称、描述、照片、话题和@用户。 - 搜索页面:高级筛选选项,包括专业、技能、项目类型等。显示符合条件的用户列表,点击可查看详细资料。
- 消息页面:显示实时聊天记录。支持发送文本、图片和文件。
这个流程图不仅帮助新用户快速了解平台的运作方式,也为现有用户提供了清晰的操作指南。我们相信,通过这样的设计,用户能够更加顺畅地使用我们的平台,实现他们的目标。
3.3 讨论过程👥
📖 四、总结与反思
在本次作业中,我们深入理解了跨专业合作的需求,通过结合NABCD模型的理念,明确了我们系统的价值和特点。我们也认识到高效沟通和简洁直观的用户体验对于项目成功的重要性。
102202124阿依娜孜·赛日克总结:
在阅读《构建之法》第3章时,我深刻理解了软件开发过程中需求分析的重要性。该章节强调了需求不仅仅是用户功能的简单列表,而是需要深入挖掘用户的真实需求和期望。这让我认识到,在进行项目时,与用户的沟通尤为关键,只有通过多次的互动才能有效捕捉到他们的想法与需求。
第8章介绍的NABCD模型进一步深化了我对需求分析的理解。NABCD模型由需求的“需要(Need)”、“方法(Approach)”、“受益者(Beneficiary)”、“内容(Content)”和“交付(Delivery)”五个方面组成。这一模型提供了一种系统的方法来帮助我们整理和分析需求,使我们能够从不同的角度思考问题。通过应用该模型,我在本次作业中能够更好地定义目标用户、明确需求,以及制定合适的解决方案。
结合这两章的内容,我认识到在项目初期阶段,进行全面而深入的需求分析是成功的基础。未来在进行项目时,我会更加注重与用户的互动,并运用NABCD模型来系统化我们的需求分析过程,以确保最终产品满足用户的实际需求。
102202153来再提·叶鲁别克总结:
在阅读《构建之法》第3章时,我对需求分析的复杂性有了更清晰的认识。章节中提到,很多项目失败的原因在于需求不明确或误解,这让我意识到需求获取不仅仅是一个技术性工作,更是一个需要良好沟通和洞察力的过程。在进行需求分析时,要关注用户的背景、动机和使用场景,这样才能真正理解他们想要什么。
第8章中的NABCD模型则为我提供了一个实用的框架来整理需求。在进行我们的跨界合作平台项目时,我尝试将NABCD模型应用于实际需求分析。首先,通过明确“需要”,我识别出用户希望有一个简便的方式找到合作伙伴。接着,我考虑“方法”,确定通过一个应用程序来实现这一目标。在“受益者”方面,我不仅关注学生,还考虑到了老师和学校管理者的需求。而在“内容”部分,我列出了关键功能,如项目发布、搜索和即时通讯。最后,通过“交付”环节,我规划了如何向用户推出和推广这个平台。
通过这两章的学习,我不仅提高了需求分析的能力,还掌握了使用NABCD模型来系统化思考问题的技巧。我相信,这些收获将对我今后的项目开发产生积极的影响,使我能够更有效地满足用户需求并提升项目成功率。
📊 六、PSP表格
阶段 | 预估耗时 | 实际耗时 |
---|---|---|
需求分析 | 3小时 | 3.5小时 |
原型设计 | 4小时 | 4小时 |
绘制流程图 | 2小时 | 2小时 |
制作文档 | 2小时 | 2小时 |
总计 | 11小时 | 11.5小时 |
通过这次结对作业,我们不仅巩固了需求分析和原型设计的理论知识,也提高了合作和沟通能力。期待在下一阶段的编码实现中,能够将我们的想法转化为实际的产品。🌟