软件工程第一次结对作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261 |
这个作业的目标 | 学习使用原型软件,辅助完成软件工程的前期任务 |
学号 | 102202116 |
结对成员学号 | 102202116李迦勒,102202102王子聪 |
原型链接 | https://modao.cc/proto/tF9DhMKUskg89z2zelSLd0/sharing?view_mode=read_only #社交-恢复数据-分享 |
一、《构建之法》阅读笔记
1、第 3 章 软件工程师的成长
第 3 章主要聚焦于软件工程师的成长。软件工程师的成长并非一蹴而就,而是一个渐进的过程。在这个过程中,个人技术能力、团队协作能力以及职业素养都起着至关重要的作用。
讨论了软件工程师如何衡量和提升个人能力。软件工程师的技能通常由以下几个方面构成:
- 技术技能:对编程语言、开发平台和工具的掌握程度。
- 问题领域的知识:对特定行业或领域的了解。
- 软件设计和工程思想:对软件设计原则和工程实践的理解。
- 职业技能:包括自我管理、沟通、合作和执行力。
- 实际成果:工程师参与项目的成功程度和个人贡献。
此外,本章还讨论了技能的反面——解决问题的能力。通过魔方游戏的例子,说明了技能的不同层次,从简单的理解到精通,再到创新。
软件工程师的成长是一个不断学习和实践的过程,需要掌握扎实的技术基础,提升职业技能,同时学会团队合作和有效沟通。通过不断积累经验和反思,软件工程师能够在职业道路上不断前行,成为更加优秀的专业人才。
2、第 8 章 需求分析
第8章深入探讨了软件需求分析的理论和实践,包括:
- 软件需求的获取:如何与利益相关者沟通,挖掘他们的真实需求。
- 需求分析的方法:包括竞争性需求分析框架NABCD、四象限方法、KANO图等。
- 项目计划和估计技术:如何进行项目计划,包括使用WBS(工作分解结构)技术。
3、 NABCD 模型
NABCD 模型是一种有效的需求分析和项目规划方法,它包括以下五个方面:
Need(需求)
- 明确项目的目标用户是谁,他们的需求是什么。例如,如果是开发一款在线教育软件,目标用户可能是学生、教师和家长。学生的需求可能是方便的学习资源获取、个性化的学习路径和互动式的学习体验;教师的需求可能是高效的教学管理、丰富的教学资源和便捷的作业批改;家长的需求可能是了解孩子的学习进度和成绩,以及与教师的沟通渠道。
- 深入了解用户需求可以通过用户调研、竞品分析等方法进行。
Approach(方法)
- 描述如何满足用户的需求。这包括选择合适的技术方案、开发流程和团队组织形式。
- 对于在线教育软件,可以采用先进的云计算技术,实现跨平台使用和数据同步;采用敏捷开发方法,快速响应用户需求的变化;组建跨学科的团队,包括教育专家、软件工程师和设计师,共同打造优质的产品。
Benefit(好处)
- 阐述项目为用户带来的好处。这些好处可以是提高效率、降低成本、提升用户体验等。
- 在线教育软件可以为学生提供随时随地的学习机会,提高学习效率;为教师提供便捷的教学工具,降低教学成本;为家长提供实时的学习反馈,提升对孩子教育的参与度。
Competition(竞争)
- 分析项目面临的竞争情况。了解竞争对手的优势和劣势,找出自己的差异化竞争优势。
- 在在线教育市场中,可能存在众多的竞争对手。我们的软件可以通过提供个性化的学习推荐、优质的教育资源和良好的用户体验来脱颖而出。
Delivery(推广)
- 制定项目的推广策略。确定如何将项目推向市场,让目标用户了解和使用。
- 可以通过线上线下的营销
二、问题分析
客户现实困扰:
在大学里,一些有想法的学生希望通过发起或参与跨专业的项目(创业、学术)来提升自己的综合能力,拓宽知识面和积累人脉。然而,在校园里要实现跨专业合作往往取决于自己积累的人脉,或者去请不同专业的老师帮忙介绍,这就导致合作的机会非常有限。
例如,对于一些需要多学科支持的项目(需要设计、编程和市场营销能力的创业项目),在偌大的校园中,学生们往往找不到志同道合的合作伙伴。
另外,不同专业之间的学生由于学校课程安排以及个人想法,可能在合作时间安排上、项目目标和沟通方式上可能存在差异,这进一步加大了合作的难度。同时,缺乏平台或资源来支持跨专业项目的持续发展。
我们利用NABCD 模型对客户现实困扰进行分析:
1、需求分析 (N - Need)
- 项目找寻(招募)需求:学生渴望通过启动或参与跨学科的项目(无论是创业还是学术研究)来增强自己的综合实力,扩展知识领域并建立人际关系网络。
- 合作交友需求:在那些需要多个学科技能支持的项目(例如,同时需要设计、编程和市场营销技能的创业项目)中,学生们在广阔的校园内寻找有共同兴趣的合作伙伴,以便进行交流和合作。
- 团队协调需求:由于不同学科背景的学生可能因学校课程的时间安排和个人理念而在合作时遇到时间安排、项目目标和沟通方式上的分歧,学生们需要能够高效地协调团队成员的时间和任务。
- 平台推广需求:大多数学生缺少一个平台或资源来支持跨学科项目的持续发展,因此,他们需要一个能够提供必要资源和支持且能够整合到足够数量的人的平台。
2、满足需求 (A - Approach)
用户希望能通过一个平台来找到志同道合的合作伙伴,尤其是在需要多学科支持的项目。
因而平台应具备以下功能:
- 用户注册:学生和教师可以通过邮箱注册,通过实名认证加入平台。
- 项目发布(招募):用户可以发起新项目或加入现有项目。
- 用户搜索:可以根据专业、技能、兴趣等标签搜索潜在的合作伙伴。
- 发帖交流:用户可以在相应领域对应的模块进行发帖
- 论坛讨论:提供建立(加入)群组功能,促进项目组成员之间的沟通与交流。
3、方案优势 (B - Benefit)
- 参考了诸多大平台网页设计,页面简洁而又不失美感
- 清晰的模块设计和定位,逻辑明确,用户上手快
4、竞争分析 (C - Competition)
1. 现有替代方案
在校大学生想要跨专业合作,通常依赖以下几种方式:
- 社交网络:学生们可以利用自己的社交圈或者通过朋友的推荐来寻找不同专业的合作伙伴。
- 教师推荐:学生们可以向自己的导师或其他相关领域的教师求助,以获得合适的学生或合作伙伴的推荐。
- 社交平台:一些学生通过校园内的QQ群、社交媒体平台发布合作邀请,以寻找合适的合作伙伴。
- 社团和校园活动:部分高校有专门致力于跨学科项目的社团或定期举办的创新和创业活动,学生们可以通过参与这些活动来加入跨专业的合作项目。
这些替代方案的局限性主要体现在:
- 机会有限:依赖人际网络和老师推荐,无法覆盖到所有潜在的合作伙伴。
- 信息不对称:合作机会的发布和获取并不透明,导致很多学生错失机会。
- 沟通成本高:在社交平台和活动中,找到合适合作伙伴的过程费时费力,且不同专业间的沟通协作并不顺畅。
2.竞争优势
与现有替代方案相比,该平台的主要竞争优势在于:
- 系统化匹配:通过数据和算法,平台可以高效、精准地匹配合作伙伴,远超依赖人脉和社交平台的效率。
- 平台资源支持:提供项目管理、时间表协调等功能,降低跨专业合作的沟通和协作成本。
- 导师支持:平台不仅限于学生间的合作,还可以整合导师的资源,提供更广泛的指导和人脉网络。
总的来说,这个平台可以有效弥补现有方式的不足,在帮助学生找到跨学科合作伙伴、管理项目资源和促进沟通协作方面具有显著的竞争优势。如果能有效推广并提高用户参与度,它将极具市场潜力。
5、推广策略 (D - Delivery)
- 在学校互助群表白墙宣传
- 在学校贴吧、抖音等平台进行宣传
- 成立工作室、招收工作室成员,负责对软件的维护运营
- 小有成色后可继续扩大市场,开放源代码,吸引广大学校创建属于它们的校园生态圈
三、原型设计
1、 原型设计工具
市面上最流行的原型工具是Axure和墨刀这两种,本次作业我们最终选择了墨刀作为原型工具,理由如下:
2、 设计过程
讨论并参考市面热门软件 如微信 、QQ、微博等社交 论坛类软件学习ui风格与布局逻辑 并根据实际需求完善
- 便捷性:采取首页导航,根据不同功能需求做出不同的模块
- 安全性:采用手机/邮箱注册 确保个人账号安全性
- 美观:采用简洁的ui设计 美观具体
3、 流程图
四、结果汇报
1、 原型展示
(1)用户注册
(2)登录
(3)~(6)、(9)、(10)为主页主要功能
(3)添加好友
(4)联系人
(5)消息查看
(6)进入项目
同时主页主要有项目与社区两大功能,简洁明了易分辨
进入项目可查看项目的成员、导师和项目资源
可以创建新项目招募成员
(7)项目成员
可以邀请成员加入项目
(8)项目资源
查看项目资源
(9)项目群
主页可建立/加入项目群,可查看群聊内成员信息
(10)进入校内社区
主页进入校内社区,查看与发帖子,同时可以分学院查找,更便于学科交叉沟通
(11)校内帖子圈
以下是帖子圈展示
五、系统维护与运营
1. 技术维护
- 定期备份:防止数据丢失。
- 漏洞修复:及时修复安全漏洞,更新系统。
2. 用户支持
- 客服支持:提供在线客服和FAQ,解答用户疑问。
- 用户培训:发布使用指南和操作手册。
3. 运营策略
- 用户反馈:收集用户意见,持续改进产品。
- 活动推广:举办线上
六、PSP表格
开发阶段 | 预估耗时(分钟) | 实际耗时(分钟) | |
---|---|---|---|
1 | 计划 | 10 | 10 |
2 | 估计这个任务需要多少时间 | 10 | 10 |
3 | 开发 | 670 | 830 |
4 | 需求分析 | 30 | 40 |
5 | 学习原型设计工具 | 120 | 180 |
6 | 结对讨论 | 60 | 60 |
7 | 生成设计文档 | 40 | 30 |
8 | 界面原型设计 | 360 | 420 |
9 | 原型测试与改进 | 60 | 100 |
10 | 报告 | 80 | 80 |
11 | 原型成果展示 | 20 | 20 |
12 | 问题分析和事后总结 | 60 | 60 |
合计 | 760 | 920 |
七、结对记录与收获
1、 结对方式
- 线上讨论:利用视频会议工具进行需求分析和方案讨论。
- 线下协作:在图书馆和宿舍共同进行原型设计和文档编写。
2、 分工合作
结对完成后就安排了做作业的时间,然后两个人一起讨论需求,确定功能,然后一起分工。创建了墨刀的合作账号,一起制作原型,讨论界面的风格和细节,一起测试原型,修改原型。共同写了报告。
3、 结对照片
4、 结对收获
通过这次团队项目,我深刻体会到了软件开发过程中从需求分析到原型设计的每一个环节,以及团队合作在其中扮演的关键角色。
首先,通过深入研读《构建之法》第3章和第8章,我对软件开发的流程有了更加深刻的理解。尤其是通过学习NABCD模型,我认识到了在项目初期确定用户需求(Need)和制定实现方案(Approach)的重要性。同时,考虑到项目的潜在价值(Benefit)、市场竞争力(Competitors)和实施路径(Delivery),有助于我们构建一个全面且切实可行的方案。
在项目实施阶段,我们以用户的实际需求为出发点,细致地分析了大学生在跨学科合作中遇到的问题和挑战。我们发现,缺少一个专门的平台来促进不同学科学生之间的交流与合作是一个普遍的问题。因此,我们设计了一个集成了项目发布、智能配对、即时沟通和社区互动功能的应用。
在团队合作中,我主要负责了产品原型设计、方案规划和文档撰写。与队友的紧密合作极大地丰富了我的经验。我们在讨论中激发了新的想法,相互补充,弥补了个人知识和技能的不足。例如,在功能设计方面,我最初没有考虑到用户隐私和安全性,是我的队友及时提醒了我这一点。
此外,产品原型设计的过程也让我深刻理解了用户体验的重要性。虽然我并非主要负责原型设计,但在与队友的交流中,我学习到了如何通过直观的界面设计和流畅的交互体验来提升用户满意度。
这次项目也让我认识到了时间管理和任务分配的重要性。虽然我们在计划阶段对每个阶段的时间进行了预估,但在实际操作中,我们还是遇到了时间超出预期的情况。这提醒我在未来的工作中,需要更加细致地进行时间规划,并预留出一定的缓冲时间。
总的来说,这次团队项目不仅提升了我的专业技能,也加强了我的团队协作和沟通能力。我深刻地认识到,软件开发是一个需要团队合作、持续学习和不断改进的过程。我期待着在未来的实践中,能够进一步完善我们的方案,并将其转化为现实。