2024秋软件工程结对作业(第一次之需求分析和原型设计)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261
这个作业的目标 结对作业,进行需求分析和原型设计
学号 102202135
结对队友 102202146

原型地址:
原型模型

一、《构建之法》阅读笔记

1.1 第3章 软件工程师的成长

1.1.1个人能力的衡量与发展

(1)个人开发流程

Individual Contributor(IC):

  • 理解问题和需求
  • 提出解决方案并估计工作量
  • 与团队成员交流解决方案
  • 执行开发并验证方案的可行性
  • 测试环境中与团队合作,修复缺陷
  • 发布后对结果负责

(2)初级软件工程师的成长路径

  • 技术技能:掌握编程语言和开发工具
  • 领域知识:了解特定行业的背景和实践
  • 软件思想:理解软件设计和工程原则
  • 职业技能:自我管理、沟通、团队合作、执行力
  • 实际成果:以参与的项目和产品的市场表现为标准

(3) 软件开发的工作量和质量衡量

  • 项目/任务大小:代码行数(LOC)或功能点(FP)
  • 时间花费:人月
  • 质量:缺陷数量与项目大小的比例
  • 是否按时交付:交付的稳定性和及时性

1.1.2团队对个人的期望

  1. 有效沟通
  2. 按时交付
  3. 接受并完成团队分配的角色和任务
  4. 全力参与团队活动
  5. 遵循团队流程
  6. 事先准备
  7. 理性工作

1.1.3软件工程师的思维误区

  • 分析麻痹
  • 不分主次,想解决所有依赖问题
  • 过早优化
  • 过早扩大化/泛化(Premature Generalization)

1.1.4 技能的反面

1.2 第8章 需求分析

1.2.1 软件需求

  1. 获取和引导需求
  2. 分析和定义需求
  3. 验证需求
  4. 在软件产品的生命周期中管理需求

1.2.2 软件产品的利益相关者

用户、顾客、市场分析师、监管机构和软件工程师等不同利益相关者

1.2.3 获取用户需求——用户调查

1.2.4竞争性需求分析的框架

NABCD模型

  1. Need(需求):了解用户未被满足或有待改进的需求。

  2. Approach(做法):提出解决用户需求的独特方法或技术。

  3. Benefit(好处):分析新方法或技术给用户带来的好处,包括降低成本、提高效率、改善体验等。

  4. Competitors(竞争):评估市场竞争态势,包括竞争对手的数量、市场占有率、产品特点等。

  5. Delivery(推广):制定有效的推广策略,确保创新产品或服务能够顺利交付到用户手中。

1.2.5功能的定位和优先级

(1) 功能分析的四个象限

  • 杀手功能:OCR文字识别技术
  • 外围功能:界面设计
  • 必要需求:单词短语释义的准确性
  • 辅助需求:皮肤等

(2)对不同功能的办法


1.3 总结

《构建之法》不仅为软件工程师提供了成长指南,也为需求分析提供了全面的方法论。在实际工作中,我们应该结合理论知识和实践,不断提升个人能力,更好地理解和满足用户需求,以实现软件项目的成功。

二、NABCD模型分析

(一)需求分析 N-Need

学生们需要一个平台来发起和参与跨专业的项目,以提升综合能力、拓宽知识面和积累人脉。

(二)关键功能与界面设计 (A - Approach)

登陆/注册页面

  • 功能:用户注册与登录界面,用户可以选择使用手机号或者学校学号进行注册或者登陆,进行教育邮箱认证
  • 要素:
    • 输入框(用户名、密码)
    • 注册和登录按钮
    • “忘记密码”链接
    • 用户协议等简要说明
    • 通过向教育邮箱发送验证码,验证身份

用户主页(个人项目界面)

  • 功能:
    • 查看自己参与的项目
    • 发布新的项目
    • 查找志同道合的伙伴
  • 要素:
    • 卡片式展示自己参与的项目,由项目名,项目编号,项目描述,相关领域,创建日期,点击跳转项目详情
    • 发布项目图标,点击跳转发布页面
    • 伙伴图标,点击跳转伙伴推荐页面

项目详情界面

  • 功能:
    • 查看项目信息
    • 查看项目协作者
    • 项目设置
  • 要素:
    • 可以查看项目详细信息,以及可以在此页面查看项目文件管理,该项目成员可以在此上传(需要发布者审核)或下载资料(非项目成员需要根据开源协议),
    • 查看项目的协作者,有改协作者的简介和对项目的贡献,可以在此页面招募协作者或者请求导师的帮助指导
    • 有项目修改的图标和删除项目的图标

查找项目/项目推荐页面

  • 功能:
    • 按照关键词查找所需项目
    • 系统推荐热门或者可能感兴趣的项目
  • 要素:
    • 搜索栏
    • 以卡片的形式展示系统推荐的项目

通讯页面

  • 功能:
    • 根据不同项目的分组,可以点击下拉查找项目成员进行私聊
  • 要素:
    • 分组栏下拉
    • 联系人组块,点击进入私聊

私聊界面

  • 功能:
    • 聊天
  • 要素:
    • 聊天气泡
    • 输入栏、键盘

个人界面

  • 功能:
    • 个人信息
    • 反馈意见
    • 账号安全
    • 待添加
  • 要素:
    • 展现个人,关注,粉丝,收藏
    • 修改个人信息
    • 提供反馈
    • 账号安全,修改密码

意见反馈界面

  • 功能:
    • 输入意见并提交
  • 要素:
    • 输入框,提交按钮

修改/添加个人信息页面

  • 功能:
    • 修改个人信息
  • 要素:
    • 输入框
    • 时间选择浮层
    • 兴趣选择浮层

账号安全界面

  • 功能:
    • 修改密码
    • 绑定手机号
  • 要素:
    • 输入框,提交按钮

(三)解决方案的优势 (B - Benefit)

  • 扩大合作机会:突破校园地理和社交限制,增加合作可能性。
  • 提升项目成功率:通过跨专业合作,提高项目的多样性和创新性。
  • 人脉网络构建:帮助学生建立跨专业的人脉网络。
  • 个人技能提升和展示:帮助记录学生项目经历,积累实战经验,帮助他们在未来求职中展示跨学科的综合能力。
  • 个性化推荐算法:平台可以通过数据分析和机器学习算法,为学生个性化推荐最合适的项目和合作伙伴。
  • 评估系统:平台可以设置一个评估系统,在项目结束后对协作伙伴进行打分,为未来的合作伙伴提供了更多参考信息。

(四)竞争分析 (C - Competition)

现有方案:

  1. 人际网络
  2. 导师介绍
  3. 社交媒体
  4. 校园社团和活动

上述方案都存在一定的局限性

竞争优势:

  • 系统化匹配
  • 平台资源支持
  • 导师支持

总的来说,这个平台可以有效弥补现有方式的不足,在帮助学生找到跨学科合作伙伴、管理项目资源和促进沟通协作方面具有显著的竞争优势。如果能有效推广并提高用户参与度,它将极具市场潜力。

(五)推广策略 (D - Delivery)

1、在学校互助群表白墙宣传

2、成立工作室、招收工作室成员,负责对软件的维护运营

三、UML用例图

四、流程图

五、效果演示

原型展示

登陆注册

个人项目

查找项目

消息通讯

个人

六、工作过程

需求分析:

步骤一:明确项目目标和需求

①学生希望通过发起或参与跨专业的项目来提升自己的综合能力,拓宽知识面和积累人脉
②学生们需要找到志同道合的合作伙伴
③合作时间安排
④资源平台

步骤二:梳理流程,分工协作

见流程图
由于前置任务两人已经共同完成,接下来大致将任务分工:
102202135 负责uml用例图以及原型模型的逻辑建立
102202146 负责原型模型的美化

步骤三:遇到问题

  1. 使用墨刀进行原型的建立,然而遇到了无法同时协作的问题。经过查找和探索得到以下步骤
  • 创立团队协作账号,切换至团队账号
  • 在团队空间里新建原型文件,也可以将个人空间文件移至团队空间
  • 可以同时协作

评审反馈

步骤一:将原型设计进行内部评审,查缺补漏。
步骤二:与网络上现有的平台进行对比分析
步骤三:吸收身边体验者的建议

短迭代与优化

步骤一:得到反馈结果后,根据反馈对原型设计进行修改和优化

交付

交作业以验收原型设计是否满足需求然后不断迭代与优化

七、psp表格

PSP 预估耗时(单位:小时) 实际耗时
阅读《构建之法》 2 1.5
需求分析 1 2.5
构建原型模型 5 9
调试和修改 0.5 1
复盘与总结 1 2
总计 9.5 15

八、总结

通过深入学习《构建之法》,我将书中的理论知识应用于我们的项目开发中,获得了宝贵的实践经验和心得体会。
在项目启动之初,我首先进行了自我技能的评估,明确了自己在编程语言、框架应用等方面的强项和待提升的技能。这让我能够在项目中针对性地学习和成长,确保了个人能力与项目需求相匹配。利用NABCD模型,我对项目需求进行了深入分析,这帮助我清晰地理解了用户的真实需求,并指导我设计出更符合用户期望的功能和界面。从宏观的框架设计到微观的细节处理,我学会了如何分阶段、有重点地解决问题。这种结构化的思维模式让我能够避免陷入“分析麻痹”和“过早优化”的陷阱。在软件风格设计方面,我们结合了软件的受益人群的审美,将软件风格极简化,但又不失美观,使软件主体倾向于功能的使用。我们软件的主体也没有设计得很复杂,考虑到两个人的综合能力,将软件的程序实现难度超出我们能力的一点点,这让我们实现的时候也有所收获。

posted @ 2024-09-26 22:31  acedia7  阅读(18)  评论(0编辑  收藏  举报