软件工程第一次结对作业
这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261 |
这个作业的目标 | 设计一个兼顾实用性、有效性、安全性、隐私性和封闭性的跨专业项目合作平台,为大学生提供便捷的合作渠道,解决校园内跨专业合作机会有限、难度大及缺乏持续发展资源的问题。 |
学号 | 102202125 |
队友 | 陈铭扬102202127 |
原型开发工具(墨刀)链接:https://modao.cc/proto/design/pb2m1j65o74dsbspm
一.《构建之法》读后感
第三章:软件工程师的成长之路
第三章详细介绍了软件工程师的成长过程以及如何评估技能水平。我了解到团队软件过程(TSP)的要求以及工程师在工作中常见的思维误区。
作为一名独立贡献者,通常在团队中执行以下步骤:
- 明确任务目标:理解项目需求是成功开发的基础。
- 探索多种解决方案并估算工作量:考虑不同解决路径,预估每条路径的资源消耗和时间需求。
- 查找类似的现有方案:参考已有的解决办法,避免重复开发。
- 与相关人员讨论:与团队进行沟通,选定合理的解决方案。
- 实施并进行验证:将理论转化为实践,编写代码并进行功能验证。
- 团队协作与调试:通过协同开发和测试,确保软件质量,并及时修复潜在问题。
- 交付与责任:确保交付结果符合用户需求,并对整个过程负责。
提升方式:
- 增强技术能力:加深对主要编程语言的理解,熟练使用调试工具和开发环境。
- 积累领域知识:通过学习与项目相关的业务知识,增强对领域的掌握。
- 理解设计原则:掌握通用的软件架构与设计模式,提高代码质量和可维护性。
- 提高软技能:加强沟通、团队协作和任务管理等能力。
软件工程师常见的思维陷阱
- 过度分析:过分关注细节,反而延误工作进度。
- 忽视优先级:试图解决所有问题,导致过度追求完美,而非选择合理方案。
- 过早优化:纠结于小细节上的优化,忽略项目全局。
- 过度泛化:在未充分理解需求的情况下,追求复杂化和扩展性。
第八章:NABCD模型的应用
NABCD模型是一种用于产品开发和项目分析的思考工具,通过五个核心要素帮助开发者进行全面的评估和规划。
N(Need)——需求
N代表需求,要求识别目标用户的核心需求,明确产品或项目要解决的问题。通过深入的需求分析,确保开发出的产品能够真正满足用户的期望。
A(Approach)——方法
A代表方法,着重于通过具体的技术手段或策略解决需求中的问题。这部分关注构建合理的解决方案,设计产品的功能和流程。
B(Benefit)——好处
B代表好处,指产品或项目为用户带来的实际价值。需要回答用户为何选择你的产品,阐述其优势和带来的好处。
C(Competitors)——竞争者
C代表竞争者,分析市场竞争情况,了解当前市场上类似产品的优势与劣势,从而找到自己的差异化竞争点。
D(Delivery)——交付
D代表交付,指产品从设计到最终交付的过程,重点在于如何让用户顺利接触并使用产品,包括发布策略和用户体验等。
二. 原型设计方案
1.主要功能与界面原型
1.1. 主界面
- 项目创建:用户可以创建一个新的项目。
- 项目广场:展示所有正在招募成员的项目,并可通过搜索查找合适的项目。
- 我的项目:查看自己发布和参与的项目,管理项目进度、成员以及项目资料。
- 消息通知:查看好友申请和平台通知等信息。
- 项目成员推荐:展示所有用户的名字,方便项目发起人点击查看个人信息,了解成员特长,考虑是否邀请加入项目。
1.2. 项目详情界面
- 项目简介:展示项目的基本信息,包括项目名称、发起人、需求角色、项目描述、预期成果和时间安排等。
- 项目成员:展示当前项目的成员及其专业背景,支持查看每个成员的个人信息和联系方法。
- 任务管理:可分配、查看和更新任务状态,设置项目时间节点和任务优先级。
- 成员邀请:可以邀请指定成员加入项目。
1.3. 个人信息界面
- 基本资料:包括姓名、联系方式、专业等信息。
- 技能树:用户可以为自己打标签,标明擅长的领域,如“设计”、“编程”、“市场营销”等。
- 身份认证:包括学生身份认证、专业认证和项目经验认证,平台通过学校邮箱、学号等方式验证学生身份。
- 项目经历:展示用户参与过的项目及其角色、成果等信息,方便他人了解用户的合作经历。
2. 用户角色与权限管理
用户角色
-
普通学生用户:
- 注册:通过学校邮箱和学号注册,完成身份验证。
- 功能:浏览、发布、申请加入项目,参与项目任务管理与讨论。
-
项目发起人:
- 权限:发布项目、设置项目需求角色、审批项目申请、分配任务和解散项目。
-
项目成员:
- 权限:参与项目任务、查看项目进度和在项目讨论区发言。
3. 注册与认证流程
注册:
- 用户通过学校邮箱和学号注册,完成基础信息填写。
学生身份认证:
- 通过发送验证码至学校邮箱验证身份。
认证:
- 身份认证:必须完成身份认证后,才能发布和加入项目。
- 专业认证:用户需填写所属专业,学校后台自动审核,或通过上传专业证明材料进行审核。
- 技能认证:用户可以上传作品或通过平台内测验获得技能认证。
加入项目流程:
- 用户浏览感兴趣的项目,点击“申请加入”按钮。
- 填写申请理由和个人简介,提交申请。
- 项目发起人审核用户资料,决定是否通过申请。
流程图
基本实现效果
基本项目展示
添加好友
三.作业后总结
PSP表格
讨论照片
作业总结
陈铭扬:通过本次作业,我学会了如何使用墨刀对原型进行设计以及操作,同时通过跟陈思宇同学的交流与协作,不仅增进了两者之间的友谊感情,同时提升了自身的操作能力以及协作能力,为自己在项目协作方面打下坚实的基础。同时,我们在创作的过程之中也有过一定的分歧,但也能够通过互相妥协的方式给项目定下最好的解决方案,让协作项目更加顺利有效地进行。
陈思宇:这次作业的目标是设计一款帮助大学生跨专业合作的APP或小程序,解决现实中学生在跨专业项目合作中遇到的困难。通过阅读《构建之法》第3章和第8章的内容,并结合NABCD模型,我和伙伴深入思考了系统设计中的实用性、有效性、隐私性等关键因素。在任务的合作过程中,我们时时刻刻保持联系,对于设计ui界面的分歧,我们努力寻找到了一个最佳的解决方案,我们的原则时保持ui界面的简单整洁和美观。在项目进行中,我们遇到了一些困难,主要集中在以下几个方面:跨专业项目需求的多样性:不同专业的学生对项目的需求各异,如何兼顾各方需求成为一个难点。安全性和隐私性问题:为了保护用户隐私,我们设计了严格的认证机制,只有校内注册用户才能加入,且每个项目组内部的沟通均为私密的。通过这次作业,我意识到在实际的产品设计过程中,不仅需要关注功能的实现,还要从用户体验的角度出发,考虑安全、隐私以及使用的便捷性。同时,结对合作也让我认识到沟通与协调的重要性,团队合作能够在很大程度上提高项目的效率和质量