软件工程第一次结对作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261
这个作业的目标 学习使用原型软件,辅助完成软件工程的前期任务
学号 102201237
结对成员学号 102201137 102201237
原型链接 https://4mk6lo.axshare.com/?g=4&id=8g48sx&p=初始界面

阅读《构建之法》后的成果

阅读第三章的总体学习感悟

  1. 个人成长与能力衡量:软件工程师的成长不仅仅是技术技能的积累,更重要的是对软件工程理念的深入理解、职业素质的提升以及在团队中的有效协作。

  2. 团队合作的重要性:团队流程和个人流程的有机结合是提升软件开发效率和质量的关键。团队成员之间的沟通、角色分配和流程遵循对于项目的成功至关重要。

  3. 思维误区:软件工程师在成长过程中会遇到各种思维误区,如分析麻痹和过早优化。识别并克服这些误区是提升个人能力的重要一步。

  4. 职业发展:软件工程师应有清晰的职业规划,不断提升自己的技术水平和业务理解能力,以适应不断变化的技术环境和市场需求。

  5. 技能的反面:技能的掌握不仅仅是学会操作,更重要的是理解其背后的原理和逻辑,能够在不同的情境下灵活运用。

第三章的内容和学习成果

1. 软件工程师的成长

  • 个人能力的衡量与发展

    • 软件工程包括开发、运营、维护软件的技术、做法、习惯和理念。
    • 软件开发流程旨在提高效率和用户满意度。
  • 团队和个人流程

    • 团队流程包括角色间的合作与冲突管理。
    • 个人流程涉及理解问题、提出解决方案、执行、测试、修复缺陷。
  • 职业篮球运动员与软件工程师

    • 职业篮球运动员有详细的数据记录,而软件工程师缺乏类似的量化数据。
  • 软件工程师的成长路径

    • 积累技术知识。
    • 积累问题领域的经验。
    • 理解软件设计和工程思想。
    • 提升职业技能,如自我管理、沟通、合作。
    • 实际成果是评价的重要标准。
  • 工作量和质量的衡量

    • 项目大小、时间花费、质量(缺陷数量)、按时交付。
  • 团队对个人的期望

    • 交流、按时交付、接受角色、全力投入、按流程工作、准备、理性工作。
  • 软件工程师的思维误区

    • 分析麻痹:过度分析导致无法行动。
    • 过早优化:在不适当的时机进行优化。
    • 过早泛化:过早地将问题一般化。
  • 职业发展

    • 职业发展路径包括从临时工作到理想的呼唤。
    • 考试和认证可以帮助职业发展。

2. 技能的反面

  • 技能与问题解决

    • 技能的反面是解决问题,通过练习将低层次问题转化为自动操作。
  • 魔方技能层次

    • 从了解玩法到设计新型魔方。

3. 练习与讨论

  • 医生的比喻

    • 讨论选择哪种医生,反映软件开发的实践。
  • 工程、艺术与手艺

    • 讨论软件开发的性质。
  • 绞刑架的比喻

    • 讨论职业发展和行业竞争。
  • 案例分析

    • 分析程序员面临的设计决策。
  • 代码量与水平的关系

    • 探讨代码量与工程师水平的关系。
  • 学习方法和核心竞争力

    • 讨论有效的学习方法和行业的核心竞争力。
  • IT行业需要的好工程师

    • 提供好工程师的检查清单。
  • 对职业梯的思考

    • 反思职业发展路径。
  • 自知之明

    • 讨论在学习和工作中的自我认知。

阅读第八章的总体学习感悟

  1. 需求分析的复杂性:需求分析不单是技术问题,还涉及对人性的理解、市场趋势的洞察以及对业务目标的把握。它要求工程师具备跨领域的知识和技能。

  2. 用户中心的设计:需求分析始终围绕用户展开,从用户的视角出发,挖掘用户的真实需求,强调了用户体验在软件开发中的重要性。

  3. 团队合作的必要性:需求分析是一个团队活动,涉及多个利益相关者。有效的沟通和协作对于达成共识、明确需求至关重要。

  4. 持续迭代和学习:需求分析是一个动态的、迭代的过程。随着项目的推进和市场的变化,需求也在不断变化,工程师需要持续学习和适应。

  5. 技术和方法论的多样性:需求分析采用多种技术和方法,如焦点小组、用户访谈、卡片分类等,每种方法都有其适用场景和局限性。

  6. 量化分析的重要性:通过量化的方法,如KANO模型、四象限法等,可以更好地理解需求的优先级和对用户满意度的影响。

  7. 创新与实践的结合:需求分析不仅是对现有需求的响应,也是创新的起点。工程师需要在理解用户需求的基础上,探索新的解决方案。

  8. 项目管理技能:需求分析还涉及到项目计划和估计的技术,这要求工程师具备一定的项目管理能力,合理规划项目进度和资源。

第八章的内容和学习成果

《构建之法:现代软件工程》第8章需求分析

1. 软件需求

  • 需求获取:通过与利益相关者的沟通,了解他们对软件的需求。
  • 需求分析:对获取的需求进行规整和量化,定义需求的内涵。
  • 需求验证:与利益相关者沟通,通过分析报告、技术原型等形式验证需求。
  • 需求管理:在软件生命周期中对需求进行持续的审核和调整。

2. 软件产品的利益相关者

  • 用户:直接使用软件系统的人。
  • 顾客:购买软件或根据合同接收软件的人。
  • 市场分析者:代表典型用户的需求。
  • 监管机构:确保软件符合行业和政策规定。
  • 系统/应用集成商:提供咨询、服务、集成等工作。
  • 软件团队:完成特定软件或功能的开发团队。
  • 软件工程师:参与需求分析的重要角色。

3. 获取用户需求的方法

  • 焦点小组:组织目标用户的代表进行讨论。
  • 深入访谈:一对一的方式了解用户的背景、心理、需求等。
  • 卡片分类:通过分类整理杂乱无章的需求。
  • 用户调查问卷:向用户提供设计好的问题进行回答。
  • 用户日志研究:要求用户记录与软件相关的行为。
  • 人类学调查:与目标用户共同生活,从生活中得到体会和需求。
  • 眼动跟踪研究:了解用户浏览网页的规律。
  • 快速原型调研:通过快速原型获取用户反馈。
  • A/B测试:在现有用户中测试不同的设计方案。

4. 竞争性需求分析的框架NABCD

  • N(Need):需求 - 解决用户什么需求?
  • A(Approach):做法 - 如何独特地解决这些需求?
  • B(Benefit):好处 - 产品/服务给用户带来的好处?
  • C(Competitors):竞争 - 竞争对手的情况?
  • D(Delivery):推广 - 如何将产品交给用户?

5. 功能的定位和优先级

  • 通过四个象限来划分产品功能的特点:
    • 杀手功能(Core):差异化焦点。
    • 外围功能(Context):支持杀手功能。
    • 必要需求(Mission Critical):产品必须满足的基本需求。
    • 辅助需求(Enabling):非核心的辅助功能。

6. 计划和估计

  • 目标、估计和决心:明确区分目标、估计和决心。
  • 找出估计后面的假设:明确估计背后的假设条件。
  • 提高估计能力的招数:参考前人经验,快速原型法,提高估计的准确性。

7. 分而治之(Work Breakdown Structure, WBS)

  • 将大型交付件分解为小型、具体的交付件。
  • WBS的构建要点:
    • 保证子节点覆盖全部父节点内容。
    • 保证子节点不相互覆盖。
    • 叶子节点足够小,能在一个里程碑中完成。
    • 从结果出发构建WBS。

NABCD模型

NABCD模型是一个系统化的方法,用于在竞争激烈的市场中分析和规划产品的需求。它帮助团队明确产品的核心价值主张,评估与竞争对手的差异化优势,并制定有效的市场推广策略。

N(Need - 需求)

需求是竞争性需求分析的起点。以下是对需求的进一步理解:

  • 用户需求

    • 直接与用户交流,了解他们在使用现有产品或服务时遇到的问题。
    • 观察用户行为,发现他们未被满足的需求。
  • 市场趋势

    • 分析市场趋势和技术发展,预测未来可能出现的需求。
  • 非消费用户

    • 研究那些没有使用任何类似产品或服务的用户,了解原因。

A(Approach - 做法)

做法是团队如何满足这些需求的策略。以下是对做法的进一步理解:

  • 技术创新

    • 利用新技术或改进现有技术来提供更好的解决方案。
  • 商业模式创新

    • 探索新的商业模式,如免费基础服务加增值服务。
  • 用户体验

    • 专注于提供卓越的用户体验。

B(Benefit - 好处)

好处是产品或服务为用户带来的价值。以下是对好处的进一步理解:

  • 性能优势

    • 提供比竞争对手更好的性能。
  • 成本优势

    • 以更低的价格提供相同的价值。
  • 独特功能

    • 提供独特的功能或服务,满足特定用户群体的需求。

C(Competitors - 竞争)

竞争分析是了解市场现状和竞争对手的关键步骤。以下是对竞争的进一步理解:

  • 竞争对手分析

    • 了解竞争对手的产品、价格、市场定位等。
  • 市场定位

    • 确定自己的产品如何在市场中定位。
  • 差异化策略

    • 制定差异化策略,以区别于竞争对手。

D(Delivery - 推广)

推广是确保产品能够到达用户手中的策略。以下是对推广的进一步理解:

  • 市场进入策略

    • 制定有效的市场进入策略,确保产品能够吸引目标用户。
  • 营销和宣传

    • 利用各种营销渠道和宣传活动来推广产品。
  • 用户反馈

    • 收集用户反馈,并据此改进产品。

通过NABCD模型,团队可以更清晰地理解市场需求,制定有效的产品策略,并提高产品的市场竞争力。

2.利用NABCD模型分析此次作业

N(Need - 需求)

需求描述:

  • 个人成长:大学生需要一个平台来发现并参与跨专业的学术或创业项目。
  • 团队构成:需要找到具有不同专业背景的合作伙伴,以增加项目的多样性和成功率。
  • 沟通协作:需要一个共享的沟通和协作平台,以便于管理项目和协调团队成员。

需求来源:

  • 内在需求:学生对于个人成长和职业发展的内在需求。
  • 项目需求:多学科项目本身对不同专业技能的需求。
  • 教育政策:学校鼓励创新创业教育,但缺乏有效的组织和支持。

A(Approach - 做法)

解决方案:

  • 协作平台:创建一个校园内的跨专业项目协作平台,类似于内部的创新孵化器。
  • 招募系统:提供一个项目提案和团队组建的系统,让学生可以发布项目并招募所需技能的成员。
  • 工作坊:组织定期的跨专业工作坊和研讨会,以促进不同专业学生之间的交流和合作。

实施策略:

  • 移动应用:开发一个校园社交网络或移动应用,专注于项目合作和专业技能交流。
  • 校方合作:与学校的就业指导中心、创业孵化器和各个院系合作,获取支持和资源。
  • 导师制度:引入导师制度,让教职工和行业专家指导学生团队。

B(Benefit - 好处)

用户好处:

  • 能力提升:学生可以根据自己的兴趣和专业技能选择项目,提升个人能力。
  • 创新思维:跨专业的团队构成可以促进创新思维和解决问题的能力。
  • 人脉资源:通过项目合作,学生可以积累行业经验和人脉资源。

项目优势:

  • 就业竞争力:增加学生的就业竞争力和创业成功率。
  • 学术交流:促进校园内的学术交流和知识共享。
  • 创新文化:有助于形成积极的校园创新文化。

C(Competitors - 竞争)

竞争分析:

  • 现有活动:校园内部可能已有一些零散的社团或活动,但没有系统化和专业化的跨专业合作平台。
  • 社交媒体:学生可能会利用现有的社交媒体工具寻找合作伙伴,但这些工具并非专为项目合作设计。

竞争优势:

  • 专业性:提供专门针对跨专业项目合作设计的平台,功能更加专业和全面。
  • 校方支持:与学校官方合作,提供更多资源和支持,增加项目的可信度和成功率。

D(Delivery - 推广)

推广策略:

  • 校园宣传:在校园内部进行宣传,包括海报、横幅、校园广播和社交媒体。
  • 校方合作推广:与学校的职业发展中心、学生事务部门和院系合作,将平台推广给所有学生。
  • 启动活动:举办启动活动和演示会,展示平台的使用方法和成功案例。

实施计划:

  • 市场推广:制定详细的市场推广计划和时间表。
  • 收集反馈:收集反馈并持续改进平台功能和用户体验。
  • 激励机制:建立激励机制,鼓励学生积极参与和推荐新用户。

3、UML用例图

4、流程图

5、软件主要界面以及功能

1、初始界面

(1)登录界面
(2)注册界面

2、消息界面

·点击右上角"+"弹出菜单栏,点击进入其他页面

(1)聊天界面
(2)创建项目界面
(3)二维码界面
(4)添加好友/群

·支持学号/职工号搜索

(5)搜索界面
(6)个人资料界面

3、联系人界面

·点击右上角图标弹出菜单栏,点击进入添加好友界面

(1)好友、频道、群聊界面

·点击好友头像所属区域进入好友资料界面

(2)新朋友

(3)群通知

4、广场界面

(1)频道界面
(2)广场界面

·点击项目所属区域进去项目详情界面
·项目详情页面点击发布人名称,可以添加好友
·添加好友点击后出现“好友请求已发送”弹窗,点击周围空白区域,弹窗消除

(3)设置界面

·点击推送设置进入推送修改页面
·点击"退出登录"返回主页面
·点击"偏好设置"右侧箭头出现下拉菜单,再次点击收回

6、用户操作流程

(1)用户登录

·可通过学号/职工号/手机号登录
·没有账号的话通过手机号注册

(2)创建项目

·点击消息界面右上角图标创建项目

(3)参与项目

·进入广场界面,寻找感兴趣的项目,点进去与发布者交流沟通
·进入搜索界面,搜索感兴趣的项目

(4)频道交流

·进入频道页面,与他人沟通协作

7、系统维护

(1)使用频率与便利度

·此软件可以作为聊天交友软件,与他人沟通协作
·频道与群聊功能为志同道合的人提供相识的平台
·配备的功能与其他聊天软件并无多大差异,易上手

(2)安全与隐私性

·项目可以设置可见性
·隐私协议承诺收集到的用户信息不被泄露
·设置举报功能,对侵犯他人权利的人或项目进行举报

(3)时效性

·定时对过期的项目进行清理
·对不在校内人员的账号进行清理

(4)相对封闭性

·学生与教职工的账号的初始密码均为学号或职工号,手机号与学生号或职工号绑定,可以保证使用此软件的学生和教职工均为校内人员
·定时获取校内人员名单,登录时记录登录地点,与名单进行匹配,观察是否为我校人员,若不是发出信息警告,引导学生修改密码

8、PSP表格

任务名称 预估耗时(h) 实际耗时(h)
阅读《构建之法》 3 3
需求分析 1 1.5
学习Axure 4 5
构建原型模型 8 10
项目准备工作 1 1.5
调试和修改 2 2.5
测试 1 1
复盘与总结 2 2
总用时 22 26.5

9、个人总结

(1)个人

  • 学习新技能:通过项目,我掌握了设计原型的能力,将创意转化为实际成果,并在实施中修正理论缺陷。
  • 实践中的成长:尽管遇到挑战,但从中获得了极大的成就感,提升了自身的解决问题能力。

(2)团队

  • 有效沟通:在结对编程中,学会了与搭档进行高效的思想交流和问题解决。
  • 任务分配策略:合理规划时间,根据成员专长进行任务分配,确保项目顺利推进。
  • 共同进步:通过相互学习和启发,团队整体在编程技术和协作能力上都有所提升。
  • 应对挑战:面对种种困难,团队展现出色的适应能力,这让我们有机会在逆境中成长。
  • 人际关系:深刻认识到良好的人际互动有助于增强团队凝聚力,提高整体效率。

(3)交流过程展示

posted @ 2024-09-27 01:50  Tierti  阅读(21)  评论(0编辑  收藏  举报