软件工程第一次结队作业

news/2024/9/27 23:24:44
这个作业属于哪个课程 软件工程
这个作业要求在哪里 作业要求
这个作业的目标 需求分析与原型设计,初步实践软件开发合作
学号 172209028
合作伙伴 102202129林伟宏

原型地址:墨刀原型在线展示体验

102202129 林伟宏

172209028伊晓

一、《构建之法》阅读成果

第3章 软件工程师的成长

”如果你有机会观察一个刚入职的软件工程师和一个工作多年、卓有成效的高级工程师,你会看到他们在公司里的行为没啥区别“,那除了比工作年头之外,软件工程师还有什么更好的方法来衡量自己的能力和价值?在阅读《构建之法》第三章“软件工程师的成长”后,我对软件工程师这一职业有了更深刻的理解。本章详细探讨了软件工程师在职业生涯中可能遇到的挑战和机遇,以及如何通过持续学习和实践来提升自己的技能。

(一)个人开发流程

软件开发流程不仅涵盖了团队层面的协作和步骤,也包括了每个团队成员的个人工作流程。毕竟,团队是由个体构成的,而正是这些个体在执行开发、测试、用户界面设计、项目管理和沟通等具体任务。因此,每个团队成员在团队协作的大框架下,也遵循着自己的个人工作流程。

(二)Individual Contributor(IC)

在软件团队中,每个成员都扮演着重要的角色,他们的工作流程对于整个项目的进展至关重要。在软件工程领域,这些独立贡献者被称为Individual Contributors(IC)。

IC的工作流程通常包括以下步骤:

  1. 理解任务
    • 通过沟通、实验和快速原型开发,IC深入理解面临的问题、需求或任务。
  2. 提出解决方案
    • IC探索多种可能的解决方案,并估算每个方案的工作量。
    • 同时,他们也会考虑以往的解决方案,因为很多工作具有重复性。
  3. 方案讨论
    • IC与团队中的其他成员讨论提出的解决方案,共同决定一个最合适的方案。
  4. 执行
    • IC将选定的方案转化为实际的代码,并在开发过程中验证方案的可行性和其他关键特性(如性能)。
  5. 合作测试
    • IC与团队的其他成员合作,在测试环境中对实现的方案进行测试,并修复发现的缺陷。
    • 如果方案存在严重问题,IC会考虑并探索其他可行的方案。
  6. 发布与负责
    • 在解决方案发布后,IC需要对最终的结果负责。

通过这样的流程,IC不仅能够独立完成任务,还能与团队成员有效协作,共同推动项目向前发展。

(三)初级工程师如何成长

初级软件工程师的成长是一个持续学习和实践的过程。以下是一些关键的步骤和建议,可以帮助初级软件工程师提升自己的技能和职业发展:

  1. 建立坚实的基础

    • 深入学习编程语言、数据结构、算法和软件设计原则。
    • 理解操作系统、网络和数据库的基础知识。
  2. 实践编程

    • 通过个人项目或参与开源项目来实践编程。
    • 尝试不同的编程语言和工具,以了解它们的优缺点。
  3. 学习版本控制

    • 熟练掌握Git等版本控制系统的使用。
  4. 代码质量

    • 学习编写可读性强、可维护的代码。
    • 了解并遵循代码审查的最佳实践。
  5. 测试驱动开发

    • 学习编写单元测试和集成测试。
    • 理解测试驱动开发(TDD)的概念。
  6. 持续学习

    • 关注技术动态,学习新的编程语言和框架。
    • 定期阅读技术书籍、博客和论文。
  7. 软技能

    • 提高沟通和团队合作能力。
    • 学习项目管理和敏捷开发方法。
  8. 解决复杂问题

    • 通过解决实际问题来提高解决问题的能力。
    • 学习如何分解复杂问题并逐步解决。
  9. 参与社区

    • 加入技术社区,参与讨论和分享知识。
    • 参加技术会议和研讨会。
  10. 接受反馈

    • 从同事和上级那里积极寻求反馈。
    • 学会从失败中学习。
  11. 性能优化

    • 学习如何分析和优化代码性能。
  12. 安全性

    • 了解基本的网络安全概念和最佳实践。
  13. 自动化

    • 学习如何使用自动化工具来提高开发效率。
  14. 领导力

    • 即使在初级阶段,也可以通过领导小型项目或任务来培养领导力。
  15. 职业规划

    • 明确自己的职业目标,并制定实现这些目标的计划。
  16. 建立个人品牌

    • 在社交媒体和专业平台上分享你的工作和见解。
    • 创建个人网站或博客来展示你的项目和专业知识。

通过这些步骤,初级软件工程师可以逐步提升自己的技能,增加工作经验,并为未来的职业发展打下坚实的基础。

(四)软件开发的工作量和质量怎么衡量

衡量软件开发工作量和质量是一个复杂的过程,涉及到多个方面和指标。以下是一些核心的方法和指标:

工作量衡量

  1. 工时估算:通过预估完成各项任务所需的具体时间来衡量工作量。
  2. 功能点分析:通过对软件功能的复杂度进行量化,来估算开发工作量。
  3. 故事点法:在敏捷开发中,通过对用户故事的相对复杂度进行评分来估算工作量。
  4. 代码行数:虽然这是一个基本的指标,但它可能无法准确反映工作量,因为它忽略了代码的质量和效率。
  5. 开发时间:统计开发团队在项目上投入的时间来评估工作量。
  6. 项目复杂度:通过评估项目的技术复杂度、业务复杂度和团队复杂度来确定工作量。

质量衡量

  1. 功能正确性:确保软件能够按照需求文档正确实现所有功能。
  2. 性能表现:包括响应时间和资源利用率,确保软件在高负载下的响应速度和资源的有效使用。
  3. 代码质量:包括代码规范、代码复杂度和代码审查。
  4. 用户体验:包括界面设计和可访问性,确保软件对用户友好。
  5. 可维护性:包括文档完善和自动化测试,确保软件的可维护性。
  6. 缺陷分析:包括缺陷密度、缺陷修复情况和缺陷趋势,通过对发现的缺陷进行详细分析来评估软件质量。

综合评估

  • 关键绩效指标(KPI):包括项目完成时间、成本控制、用户满意度等,用于评估项目的成功与否。
  • 持续改进:定期评估项目的进展和问题,及时调整策略和计划,提高项目的成功率。

通过这些方法和指标,可以全面了解软件开发的工作量和质量,从而发现和解决潜在的问题,提升软件的整体质量和用户满意度。

(五)团队对个人的期望

  1. 沟通能力:能够与其他团队成员进行有效沟通,无论是讨论技术战略还是解决小问题。
  2. 承诺与执行:承诺的事情要按时完成,这是团队信任和可靠性的基础。
  3. 角色接受与履行:团队成员应该愿意接受分配的任务,并按照预期的标准去执行,确保质量。
  4. 积极参与:积极参与团队活动,如评审会议和代码审查,而不是作为一个旁观者。
  5. 遵循流程:即使个人能力很强,也应该遵守团队的流程和规范,而不是认为自己可以无视规则。
  6. 预先准备:在会议、新功能开发或项目启动之前,做好充分的准备工作。
  7. 基于事实的工作方式:软件开发中可能会有很多个人情感的影响,但成熟的团队成员应该基于事实和数据,遵循流程,进行理性的工作

(六)软件工程师的思维误区

1.分析麻痹

2.不分主次,想解决所有依赖问题

3.过早优化

4.过早扩大化/泛化(Premature Generalization)

(七)总结

在软件工程领域,专业人士需要持续地学习和成长,以决定他们在哪些领域追求深度和精专,以及在哪些领域只需达到基本了解的水平。对于技术技能,通过持续实践,我们应该将那些基础问题解决到自动化的程度,这样就可以将精力集中在解决更复杂的问题上,这是成为优秀软件工程师的基础。本章主要讨论了现代软件开发中的迭代和增量开发方法。这种方法强调了分阶段、逐步的开发过程,而不是一次性完成整个项目。迭代和增量的开发模式允许团队根据反馈不断地优化产品,提高软件的质量和灵活性。具体来说,这一章节解释了如何通过小步快跑的迭代开发,逐步添加新功能,并在整个过程中保持软件的稳定性。这种方法不仅提高了开发效率,还降低了项目失败的风险。

第8章 需求分析

(一)软件需求

A. 获取和引导需求(Elicitation)

B. 分析和定义需求(Analysis & Specification)

C. 验证需求 :分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求认知。

D. 在软件产品的生命周期中管理需求(Management)

E. 软件需求的划分:

  • 对产品功能性的需求
  • 对产品开发过程的需求
  • 非功能性需求
  • 综合需求

(二)软件产品的利益相关者

A. 用户: 或称最终用户(User, End-user),是直接使用软件系统的人。

B. 顾客: 或称客户(Customer, Client),购买这个软件或者根据合同或规定接收软件的人。

C. 市场分析者:代表“典型用户”的需求,他们或者是市场部门的成员,或者是独立的市场分析人士。

D. 监管机构:在一些行业,软件必须符合许多行业和政策规定(如银行、公共交通、通信、矿产资源等)。

E. 系统/应用集成商:系统/应用集成商负责给客户提供 咨询、服务成等工作。

F. 软件团队:具体完成某一个特定软件或特定功能的团队。

G. 软件工程师:工程师也是软件需求阶段的一个重要角色

(三)获取用户需求—用户调研

A. 软件开发的过程,就是“用户最需要的东西”在下面这一链条中传送、转换、实现、扭曲或丢失的过程。

用户需求最高的>

用户所表达出来的>

软件团队所理解的以及其商业目标>

​ 软件团队成员具体表达出来的(使用PM写Spec)>

​ 在各种约束下,具体执行表达出来的(写代码)>

​ 验证通过(Test)>

​ 通过各种渠道告诉目标用户(发布以及推广)>

​ 用户成功使用,但是并不满意>

B.几种常用的用户调研方法:

  1. 焦点小组(Focus Group)
  2. 深入面谈(In-depth Interview)
  3. 卡片分类(Card Sorting) 讨论→明晰定义→归类→排序
  4. 用户调查问卷(User Survey)
  5. 常见错误:问题定义不准确;用含糊不清的形容词、副词描述时间、数量、频率、价格等;用户花额的努力来回答问题;问题带有引导性的倾向;问题涉及用户隐私、用户所在公司的商业机密或细节等。
  6. 用户日志研究(User Diary Study)
  7. 人类学调查(Ethnographic Study)
  8. 眼动跟踪研究(Eye Tracking)
  9. 快速原型调研(Quick Prototype) 用户参与式设计
  10. A/B测试(A/B Test)

C. 各种方法的分类

(四)竞争性需求分析的框架

A.“创新”可以分为改良型的创新(在现有软件中增加几个功能,把某个程序变得更快一点,把程序移植到新的 平台)和颠覆型的创新(一个新的产品导致旧产品或产业发生巨大的变化或者消失)。

B.NABCD模型:

  1. N(Need,需求) ,即了解用户的需求
  2. A(Approach,做法) ,即找到了需求之后下一步应该怎么办,即你独特的做法
  3. B(Benefit,好处) ,即有了独特的做法,那你这个产品/服务会给客户/用户带来什么好处
  4. C(Competitors,竞争) ,即要看清楚我方优势在哪里,我方劣势在哪里。
  5. D(Delivery,推广) ,即怎样把你的创新产品交到用户的手中

C. “电梯演说”模板(团队成员)

img

(五)功能的定位和优先级

得到了需求之后,软件团队就要考虑实现这些需求。

A. 功能分析:

  1. 杀手功能:OCR文字识别技术,可以在屏幕上取词解释,拥有独家权威词典,等等。
  2. 外围功能:良好的界面设计,在各个平台上都能运行。
  3. 必要需求:单词短语释义的准确性(如果达不到这一点,用户就不会来使用)。
  4. 辅助需求:可以做各种皮肤(这也许能让一些用户更喜欢这个软件,但不是决定因素)

B. 资源有限,我们对不同功能有哪些办法呢?

  1. 维持—以最低成本维持此功能。
  2. 抵消—快速地达到“足够好”、“和竞争对手差不多”。
  3. 优化—花大力气做到并保持行业最好。
  4. 差异化—产生同类产品比不了的功能或优势(我有人无的优势,或者一个数量级以上的优势)。
  5. 不做—砍掉一个功能也是一个办法,我们并不一定要做所有的功能。

C. 对四个象限的不同建议

D. 用户满意度

E. 在某一属性上增大投资力度,用户满意度未必提高

F. 让入惊喜的功能,会极大提高用户的满意度

G. 各种不同投资的不同效果

二、NABCD模型

(一)需求分析 (N - Need)

  • 学生们渴望通过启动或参与跨学科的项目(无论是创业还是学术研究)来增强自己的综合实力,扩展知识领域并建立人际关系网络。
  • 在那些需要多个学科技能支持的项目(例如,同时需要设计、编程和市场营销技能的创业项目)中,学生们在广阔的校园内寻找有共同兴趣的合作伙伴,以便进行交流和合作。
  • 由于不同学科背景的学生可能因学校课程的时间安排和个人理念而在合作时遇到时间安排、项目目标和沟通方式上的分歧,学生们需要能够高效地协调团队成员的时间和任务。
  • 大多数学生缺少一个平台或资源来支持跨学科项目的持续发展,因此,他们需要一个能够提供必要资源和支持的平台。

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

风格:

1. 登陆界面

  • 功能:
    • 用户登录界面,用户可以选择使用邮箱/手机号/微信进行登陆
  • 界面要素:
    • 输入框(用户名、密码)
    • 注册和登录按钮
    • “微信登陆”链接
    • 用户协议等简要说明

2. 注册界面

  • 功能:
    • 用户注册界面,用户可以进行账号注册
  • 界面要素:
    • 用户名
    • 密码
    • 手机号
    • 验证码

3. 首页界面

  • 功能:
    • 用户可以查找项目信息、学习以及了解热点信息。
    • 用户通过该界面前往其他功能区。
  • 界面要素:
    • 推荐/热榜
    • 搜索栏
    • 四大分类(关注、全部、学习、项目)
    • 推荐贴子
    • 其他功能区链接(首页、项目、消息、我的)

4.个人页界面

  • 功能:
    • 编辑个人信息
    • 基础功能
    • 常用功能
  • 界面要素:
    • 个人信息及其编辑链接
    • “我的”四项基本功能(贴子、关注、收藏、粉丝)
    • 会员开通渠道
    • 常用功能链接

5. 项目页界面

  • 功能:
    • 查找和我有关的项目
  • 界面要素:
    • 项目搜索栏
    • 项目列表

6.消息通知页界面

  • 功能:
    • 展示所有聊天对话框
  • 界面要素:
    • 列表显示聊天对话框
    • 一些附带功能(评论和@、赞和收藏、粉丝与浏览)

7.聊天界面

  • 功能:
    • 与合作伙伴进行交流
  • 界面要素:
    • 聊天信息
    • 聊天输入框

8.聊天详情页界面

  • 功能:
    • 可以查询与合作伙伴进行交流的记录
  • 界面要素:
    • 聊天记录

9.特殊页(万金油界面)

  • 功能:
    • 将一些较难实现的功能甩锅于此
  • 界面要素:
    • 点击返回的按钮
    • 信息“该功能尚在测试,暂不开放!!”

10. 个人资料编辑页

  • 功能:
    • 对用户的个人资料进行编辑
  • 界面要素:
    • 用户名
    • 昵称
    • 站内ID
    • 个性签名
    • 专业
    • 年级
    • 性别
    • 技术简介
    • 头像编辑

11.项目详情页界面

  • 功能:
    • 用户可以在该页面了解有关项目的详细信息
  • 界面要素:
    • 项目名称
    • 项目介绍
    • 项目成员信息
    • 项目代码及文档
    • 项目小组聊天

12.新建项目界面

  • 功能:
    • 用户可以在该页面新建一个项目
  • 界面要素:
    • 项目名称
    • 项目简介
    • 技术需求
    • 项目文档(选择文件)
    • 项目代码库
    • 新建按钮

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

1. 跨学科知识共享与协作

该平台不仅是一个项目配对工具,还能作为学生交流和学习不同领域知识的社区。例如,平台可以包含讨论区或知识共享空间,学生可以在项目之外分享各自领域的知识,这有助于他们在实际合作中更有效地理解对方的思考和工作模式。

2. 个人技能提升和展示

参与跨学科项目使学生能够积累实践经验,并通过平台展示自己的技能和项目参与情况。平台可以提供类似于“技能认证”或“成就标志”的功能,助力学生在求职时展现其跨学科能力。

3. 项目生命周期管理

平台可以提供全面的项目生命周期管理工具,从项目启动的需求发布、团队组建,到项目执行中的工作分配、进度跟踪,再到项目结束时的回顾和成果展示,确保每个项目都能系统化和高效地进行。这种有序的项目管理不仅提高了项目成功率,也增强了学生的项目管理技能。

4. 个性化推荐算法

平台可以利用数据分析和机器学习技术,为学生推荐最适合的项目和合作伙伴。比如,根据学生的学科背景、兴趣、项目历史和合作偏好,平台能够智能地推荐符合他们需求的项目。这种智能化的推荐能够提高合作效率,减少寻找合作伙伴和项目的时间。

5. 跨专业沟通工具与协作优化

为了降低跨学科沟通的障碍,平台可以提供专门的协作工具,如多语言支持、自动任务列表生成的项目管理工具,甚至通过AI分析提供团队沟通建议。这些工具能够优化不同学科背景学生之间的沟通和协作,减少误解和障碍。

6. 反馈与评估系统

平台可以建立反馈和评估系统,允许学生在合作结束后对合作伙伴进行评价,类似于LinkedIn的推荐系统。这不仅帮助学生了解自己在跨学科合作中的表现,也为潜在的合作伙伴提供了参考。

这些特点不仅提高了学生跨学科合作的效率,还为他们的职业发展奠定了基础。通过整合资源和技术,该平台有潜力成为学生跨学科合作的重要平台。

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

1. 现有替代方案

目前,学生在大学中想要跨专业合作,通常依赖以下几种方式:

  • 社交网络:学生们可以利用自己的社交圈或者通过朋友的推荐来寻找不同专业的合作伙伴。
  • 教师推荐:学生们可以向自己的导师或其他相关领域的教师求助,以获得合适的学生或合作伙伴的推荐。
  • 社交平台:一些学生通过校园内的QQ群、社交媒体平台发布合作邀请,以寻找合适的合作伙伴。
  • 社团和校园活动:部分高校有专门致力于跨学科项目的社团或定期举办的创新和创业活动,学生们可以通过参与这些活动来加入跨专业的合作项目。

这些替代方案的局限性主要体现在:

  • 机会有限:依赖人际网络和老师推荐,无法覆盖到所有潜在的合作伙伴。
  • 信息不对称:合作机会的发布和获取并不透明,导致很多学生错失机会。
  • 沟通成本高:在社交平台和活动中,找到合适合作伙伴的过程费时费力,且不同专业间的沟通协作并不顺畅。

2.竞争优势

与现有替代方案相比,该平台的主要竞争优势在于:

  • 系统化匹配:通过数据和算法,平台可以高效、精准地匹配合作伙伴,远超依赖人脉和社交平台的效率。
  • 平台资源支持:提供项目管理、时间表协调等功能,降低跨专业合作的沟通和协作成本。
  • 导师支持:平台不仅限于学生间的合作,还可以整合导师的资源,提供更广泛的指导和人脉网络。

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

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

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

2、在学校贴吧、抖音等平台进行宣传

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

4、小有成色后可继续扩大市场,开放源代码,吸引广大学校创建属于它们的校园生态圈

三.模型设计

1 原型设计工具

本次模型设计使用 墨刀 作为原型设计工具

  • 使用简单,基础素材多,功能齐全

  • 在线事实展示,实时协同高效便捷

2 设计过程

讨论并参考市面热门软件 如QQ 百度贴吧 等社交 论坛类软件学习ui风格与布局逻辑 并根据实际需求完善

  • 便捷性:采取首页导航,根据不同功能需求做出不同的模块 如消息 个人 项目

  • 安全性:采用手机/邮箱注册 确保个人账号安全性

  • 美观:采用简洁的ui设计 美观具体

3 流程图

四 功能展示

项目首页注册与登录:

  1. 注册

  2. 登录

  3. 微信等其他方式快捷登录

首页广场功能展示:

  1. 广场浏览
  2. 查看具体项目与随笔帖子

项目模块:

  1. 查看不同权限类型项目
  2. 新建项目
  3. 查看具体项目,小组聊天

消息通知:

  1. 聊天通知
  2. 具体聊天

个人界面:

  1. 个人资料编辑
  2. 其他功能

五 困难与解决

  1. 用户交互逻辑的复杂性
    困难描述:在设计用户交互流程时,我们发现逻辑非常复杂,难以用简单的原型图来表达。 解决尝试:我们通过绘制流程图和使用状态机模型来梳理逻辑,同时在墨刀中利用动态组件和条件逻辑来模拟复杂的交互流程。
    有何收获:我们学会了如何将复杂的逻辑简化,并用图形化的方式表达出来。这个过程锻炼了我们的逻辑思维能力,也让我们更加熟悉了墨刀的高级功能。
  2. 原型图的可访问性问题
    困难描述:我们意识到原型图需要对不同背景的用户都易于理解,但发现我们的原型图对于非技术背景的用户来说不够直观。
    解决尝试:我们通过添加注释、使用更直观的图标和颜色编码,以及创建一个简单的用户指南来提高原型图的可访问性。
    有何收获:我们学会了如何设计更加用户友好的原型图,并且意识到了用户体验的重要性。这让我们在设计时更加注重用户的需求和感受。
  3. 原型图的迭代速度
    困难描述:随着项目的发展,原型图需要频繁迭代,但每次迭代都耗时耗力
    解决尝试:我们采用了敏捷开发的方法,每次只专注于迭代一小部分功能,并使用版本控制工具来管理不同的原型版本。
    有何收获:我们学会了如何高效地进行原型迭代,并且理解了敏捷开发的优势。这种方法提高了我们的工作效率,并且让我们能够更快地响应需求变化。
  4. 团队协作中的沟通问题
    困难描述:在团队协作中,由于成员之间的沟通不畅,导致原型设计的方向出现分歧。 解决尝试:我们建立了定期的团队会议和沟通机制,确保每个人都对项目有清晰的理解,并且对原型设计的方向达成共识
    有何收获:我们学会了如何更有效地进行团队沟通和协作,这对于项目的顺利进行至关重要。这个过程也提高了我们的团队合作能力。
  5. 跨平台适配问题
    困难描述:我们的原型设计需要在不同的设备和平台上展示,但发现在某些平台上显示效果不佳。 解决尝试:我们学习了响应式设计的原则,并在墨刀中使用了适应不同屏幕尺寸的布局和组件。
    有何收获:我们学会了如何设计跨平台的原型图,这让我们的设计更加灵活和适应性强。这个过程也提高了我们对不同平台设计规范的理解。

六 psp表格与分析

PSP 预估耗时(单位:小时) 实际耗时
阅读《构建之法》 1.5 5
需求分析 0.5 2.5
构建原型模型 8 5.5
项目准备工作 0.5 2.5
调试和修改 1.5 0.5
测试 0.5 0.5
复盘与总结 0.5 1
维护 2 暂无

效能评估:

  1. 阅读《构建之法》
    • 预估耗时:1.5小时
    • 实际耗时:5小时
    • 评估:实际耗时远超预估耗时,可能存在阅读材料难度高、理解困难或分心等问题。
  2. 需求分析
    • 预估耗时:0.5小时
    • 实际耗时:2.5小时
    • 评估:实际耗时是预估的5倍,需求分析可能比预期复杂,或者在需求收集和理解上花费了更多时间。
  3. 构建原型模型
    • 预估耗时:8小时
    • 实际耗时:5.5小时
    • 评估:实际耗时少于预估耗时,说明构建原型模型的效率较高,可能团队在这一环节表现良好。
  4. 项目准备工作
    • 预估耗时:0.5小时
    • 实际耗时:2.5小时
    • 评估:实际耗时远超预估耗时,可能项目准备工作比预期复杂,或者在准备过程中遇到了未预见的问题。
  5. 调试和修改
    • 预估耗时:1.5小时
    • 实际耗时:0.5小时
    • 评估:实际耗时远少于预估耗时,说明调试和修改过程非常高效。
  6. 测试
    • 预估耗时:0.5小时
    • 实际耗时:0.5小时
    • 评估:实际耗时与预估耗时一致,测试过程按计划进行。
  7. 复盘与总结
    • 预估耗时:0.5小时
    • 实际耗时:1小时
    • 评估:实际耗时是预估的2倍,可能复盘与总结过程中发现了更多需要讨论和解决的问题。
  8. 维护
    • 预估耗时:2小时
    • 实际耗时:暂无
    • 评估:无法评估,因为实际耗时尚未记录。

总结:

  • 效率:大多数任务的实际耗时超过了预估耗时,表明项目计划可能过于乐观,或者在执行过程中遇到了未预见的挑战。
  • 改进建议:对于耗时远超预估的任务,需要进一步分析原因,并在后续的项目计划中考虑这些因素。对于效率高于预估的任务,可以总结经验,看是否可以将这些经验应用到其他任务中

七 项目总结

在本次软件工程的项目中,我们团队通过结对开发的方式,实现了高效的协作和默契的配合。项目的成功不仅在于我们共同完成的任务,更在于我们在这个过程中所获得的成长和经验。

项目目标与成果: 我们的目标是设计并实现一个用户友好的原型设计工具。通过使用墨刀,我们不仅达成了目标,还超出了预期,创造了一个既简洁又美观的界面设计。

团队协作: 在项目初期,我们通过结对开发的方式,找到了彼此在设计上的共同点,这为我们的合作奠定了基础。在进度推进过程中,我们相处得非常愉快,团队成员之间的思维碰撞和解决问题的方式多样化,极大地提高了我们的工作效率。

技术学习: 尽管团队成员中有些是第一次接触原型设计,但在结对的过程中,我们不仅增加了默契,还学会了初步的原型设计。墨刀的易用性和丰富的在线教程资源,为我们的学习提供了极大的便利。

设计统一: 在设计过程中,我们最初在风格上存在差异,但通过不断的沟通和讨论,我们最终以简洁、美观、大方为设计要求,统一了我们的设计风格。

工具应用: 我们成功地利用了团队协作工具,如项目管理软件、在线文档编辑等,这些工具帮助我们更高效地分工合作,确保了项目的顺利进行。

问题解决: 在项目过程中,我们遇到了一些挑战,但通过团队成员之间的相互帮助和协作,我们找到了解决问题的最佳方案。

个人成长: 每个团队成员都在这次项目中得到了成长。我们不仅学会了如何使用墨刀进行原型设计,更重要的是,我们学会了如何在团队中有效沟通和协作。

八 个人总结

这次结队作业的过程,真是春风拂面啊!只是不要因为现在贪图效果,导致下一次的代码实现变得困难重重,如果这样,那可真是走了邪路了。总的来说,对于这次作业,我是准备辩证的看待的,撰写过程用一句话概括就是“快啊!很快啊!”,可以说功过十零开,是功大于功的。天亦有情天亦老!言尽于此,让我们相信后人的智慧吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65082.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 库、表的操作与使用

目录数据库的编码集与校验集表的基本结构库的操作(DDL)创建数据库带字符集创建带校验集创建查看数据库查看自己正在使用的是哪一个数据库显示创建语句删除数据库使用数据库查看当前使用的数据库数据库备份与还原备份还原查看数据库连接数表的操作(DDL)建表查看数据库中的表查看…

密码学承诺之原理和应用 - sigma承诺

微信公众号:密码应用技术实战 博客园首页:https://www.cnblogs.com/informatics/ GIT地址:https://github.com/warm3snow 简介 在上一篇文章《密码学承诺之原理和应用 - 概览》中,我们详细介绍了常见的密码学承诺原理,本节我们将重点介绍Sigma承诺的实现和应用。 Sigma承诺…

MiniMax、商汤科技、面壁智能、西湖心辰、声网都来了!RTE 大会「实时互动和大模型」专场开启报名

当大模型进化到 实时多模态 ,将诞生什么样的新场景和玩法?Voice AI 实现 human-like 的最后一步是什么?AI 视频爆炸增长,新一代编解码技术 将面临何种挑战?所有 AI Infra 都在探寻规格和性能的最佳平衡,如何构建高可用的云边端协同架构?AI 加持下,空间计算和新硬件 也迎…

企业级反向代理 HAProxy

企业级反向代理 HAProxy haproxy只做代理,不提供其他功能。可以做四层,七层代理。有些公司会用haproxy做四层代理, haproxy比lvs好在功能更强大2 HAProxy 简介 企业版(收费) 社区版社区版网站:http://www.haproxy.org/ github:https://github.com/haproxy #选偶数版本,长…

题解:P4288 [SHOI2014] 信号增幅仪

很好一题目,使我的最小圆覆盖旋转。 先假设 \(p = 1\)。这是最简单的情况。这个时候我们就得到了一个裸的最小圆覆盖。 当 \(p \not= 1\),但是 \(a = 0\) 的时候。圆就变成了对称轴与坐标轴平行的椭圆,运用高中知识仿射一下,又回到了最小圆覆盖。 在一般的情况下,我们先通…

python打包whl文件

在python中,使用setuptools库创建wheel包 确保已安装wheel和setuptools# 使用pip list 查看已经安装的包 pip list如果没有,就用下面的命令安装pip install wheel setuptools在当前路径创建一个aaa的文件夹 在aaa里创建一个__init__.py的文件,内容如下class test_class(obj…

idea启动 main 函数时,报 Command line is too long Shorten command xxx

idea启动 main 函数时,报 Command line is too long Shorten command xxx 一、解决办法找到 .idea 下面的 workspace.xml 找到以下属性 PropertiesComponent,添加 dynamic.classpath 属性<property name="dynamic.classpath" value="true" />结果…

信息学奥赛复赛复习04-CSP-J2019-04-加工零件-位运算、整数映射0或1、结构体、初始化列表构造、动态数组、二维动态数组、队列、宽度优先搜索

PDF文档公众号回复关键字:202409261 2019 CSP-J 题目4 加工零件 [题目描述] 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇。工厂里有 n位工人,工人们从 1∼n 编号。某些工人之间存在双向的零件传送带。保证每两名工人之间最多只存在一条传送…