软工第一次结对作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261 |
这个作业的目标 | 根据客户需求,分析并设计软件原型以解决问题。 |
学号 | 052204130 |
结对作业伙伴 | 102202119吴佳辉 |
Axure原型链接:http://127.0.0.1:32767/start.html#id=26294r&p=登录界面
一.《构建之法》阅读笔记
第 3 章的重点在于软件工程师的成长路径,包括如何评价个人能力、技能的反面、团队软件流程(TSP)对个人的要求,以及软件工程师的常见思维误区。
3.1 个人能力的衡量与发展
衡量一个软件工程师的能力,不只是简单的经验年限,还包括对软件开发流程的掌握、沟通与协作能力、以及实际工作成果。成长的方向包括:
(1)技术技能的积累:掌握特定语言和工具,如 Java、C/C++、设备驱动程序等。
(2)领域知识的积累:理解特定行业(如游戏、医疗、金融等)的业务需求和知识体系。
(3)设计与工程思想:对软件设计和工程的理论理解,包括一些虚无缥缈但很重要的理念,如合理的设计方案、可维护的代码结构等。
(4)职业技能提升:包括自我管理、表达和交流、与他人合作的能力,以及按质按量完成任务的执行力。
(5)实际成果:用户反馈、市场占有率、用户价值以及在团队中所起的实际作用。
衡量工程师工作的量和质需要考虑以下指标:
项目规模(代码行数、功能点)
时间花费
质量(缺陷数量、重构次数)
按时交付的能力和稳定性
3.2 软件工程师的思维误区
在软件开发中,工程师可能会陷入一些思维误区,如:
(1)分析麻痹:在行动之前试图了解所有的细节和依赖关系,结果因为过度分析而耽误进展。
(2)不分主次:想要解决所有相关和不相关的问题,试图“一次性完美解决”,反而忽略了更重要的直接目标。
(3)过早优化:在局部问题上投入过多时间进行优化,而忽略了整体目标。
(4)过早泛化:在特定问题上寻找通用的解决方案,期望一劳永逸地解决所有类似问题,导致项目范围无限扩大。
3.3 软件工程师的职业发展
软件工程师的职业发展可以分为以下几个阶段:
(1)临时寄托:临时选择了 IT 行业,低动力、低技能,对行业缺乏热爱和长期规划。
(2)工作(Job):把软件开发当成谋生手段,但不认为这是一份可以长期发展的职业。
3.4 提升技能的路径
通过反复的练习和积累,将低层次的问题自动化,达到可以专注解决高层次问题的状态,是技能成长的关键。这与舒适区、学习区和恐慌区的概念相对应:
舒适区:做自己已经熟悉和掌握的事情,毫无挑战。
学习区:在这里,面临的挑战足够大,但通过努力可以克服,这有助于成长。
恐慌区:面对过高的挑战,无法通过努力完成,导致挫败感。
技能的成长需要通过在学习区不断尝试、失败、学习和反思,逐渐将学习区扩大成舒适区。避免强迫自己进入恐慌区,才能逐步提升。
总结:探讨了软件工程师的成长路径,包括个人能力的衡量、常见思维误区及职业发展阶段。能力评估涉及技术技能、领域知识和实际成果等方面。思维误区如分析麻痹、过早优化等会影响效率。职业发展分为临时寄托和工作阶段。提升技能的关键在于在学习区挑战自我,避免恐慌区,通过反复练习将低层次问题自动化,专注于高层次问题。第八章的重点在于软件需求的准确捕捉与管理,以及通过NABCD模型识别用户需求、明确解决方案、分析竞争并制定推广策略,是实现创新项目成功的关键。
8.1软件需求
软件需求是为了满足现实生活中的各种问题而产生的。软件团队需遵循以下步骤来准确捕捉需求:
1.获取和引导需求:与利益相关者沟通,挖掘和引导他们表达真实需求,同时关注技术和社会发展趋势。
2.分析和定义需求:整理和量化需求,明确实现的时间、成本、优先级和收益。
3.验证需求:通过分析报告、原型和用户调查确认需求的准确性。
4.管理需求:在软件生命周期内定期审查和调整需求,适应变化的技术和市场环境。
8.2 NABCD模型:
在需求分析的理论层面,通常存在一个隐含假设,即只有某一家公司在为用户提供服务,似乎用户不会考虑或更换其他公司的服务。在某些情况下,比如定制软件或企业内部系统,这种假设可能成立。然而,大多数普通用户的需求却受到多个竞争机构的影响,尤其是在互联网类型的软件服务中。许多用户的需求并不是主动提出的,而是因为技术的突破使得产品团队意识到可以让用户实现之前不敢想象的功能,但此时大多数用户并未意识到这些具体需求。
在竞争激烈的环境中,我们需要实施实用且创新的项目。创新可以分为改良型创新(如在现有软件中添加功能或优化程序)和颠覆型创新(如新产品对旧产品或产业的巨大冲击)。这两者各有重要性,均不可忽视。
NABCD模型是一种有效的方法。
- N (Need, 需求):识别用户需求,可以通过研究现有市场和不消费用户(未使用相关产品的用户)来了解他们的痛点。
- A (Approach, 做法):明确独特的解决方案,考虑技术、商业模式或地域优势等。
- B (Benefit, 好处):阐明新产品如何为用户带来好处,以及用户迁移到新产品的成本。
- C (Competitors, 竞争):分析市场竞争状况,了解竞争者及其产品,识别自家产品的优势和劣势。
- D (Delivery, 推广):思考如何将产品有效地交付给用户,包括推广和市场营销策略
通过NABCD模型,各方面的细节分析清晰后,团队成员就能用简明的语言表达项目的特点。这种表达方式称为“电梯演说”,便于在短时间内有效传达项目价值。
总结:软件需求旨在解决现实问题,团队应通过获取、分析、验证和管理需求的步骤来捕捉需求。NABCD模型提供了一种有效的方法,帮助团队识别用户需求(Need)、明确解决方案(Approach)、阐明用户利益(Benefit)、分析竞争环境(Competitors)和制定推广策略(Delivery)。该模型使团队能够清晰表达项目特点,便于在短时间内有效传达项目价值,从而促进实用和创新项目的实施。
二.产品设计
2.1目标用户及需求
(1)学生:希望通过发起或参与跨专业的项目(创业、学术)来提升自己的综合能力,拓宽知识面和积累人脉
(2)老师:希望支持学生项目,促进学术交流
2.2功能设计
(1)用户登录注册功能
(2)创建项目,查找项目
(3)添加好友,聊天查看对方信息等
(4)个人信息编辑
2.3非功能设计
(1)安全性:确保用户数据安全,采用加密存储。
(2)隐私性:用户信息仅限于项目相关人员可见。
(3)易用性:界面友好,符合主流人群使用习惯。
三.原型设计
根据NABCD模型,让AIGC为我们制定了一套Axure使用方案
旨在帮助大学生实现跨专业合作。以下是详细的开发计划:
-
需求(Need):
- 大学生需要一个平台来发现并参与跨专业的项目,以提升自己的综合能力、拓宽知识面和积累人脉。
- 平台需要能够跨越不同专业,提供项目信息、合作伙伴和资源共享。
- 用户需要能够根据自己的兴趣和专业背景筛选项目,同时也能够发布自己的项目需求。
-
做法(Approach):
- 开发一个Axure原型的移动应用程序,该应用程序允许用户创建个人资料,列出自己的技能和兴趣。
- 实现一个项目数据库,用户可以浏览和搜索项目,也可以发布自己的项目。
- 提供一个匹配系统,根据用户的技能和兴趣推荐合适的项目。
- 集成即时通讯功能,方便用户之间的沟通和协作。
-
好处(Benefit):
- 用户可以通过平台找到志同道合的合作伙伴,提高项目成功率。
- 通过参与多样化的项目,学生可以提升自己的专业技能和软技能。
- 平台可以作为学生展示自己作品和能力的窗口,增加就业和实习机会。
-
竞争(Competitors):
- 目前市场上可能存在一些专业的社交平台,如LinkedIn,但它们可能不够专注于大学生的跨专业项目合作。
- 我们的应用程序将专注于校园环境,提供更加定制化的服务和用户体验。
-
推广(Delivery):
- 通过校园大使和社交媒体进行宣传,增加学生对平台的认知。
- 与学校的职业发展中心和学生会合作,将平台作为官方推荐的资源。
- 举办线上线下活动,如项目展示会和网络研讨会,吸引用户参与。
在Axure原型设计方面,可以参考以下步骤:
- 使用Axure的“页面样式管理器”和“元件样式管理器”来统一设计规范和视觉元素 。
- 建立统一的组件库,提高设计效率和一致性 。
- 确保原型的产品结构清晰,内容表达准确,交互逻辑完整,操作流程顺畅 。
通过这样的开发计划,我们可以创建一个满足大学生跨专业合作需求的平台,帮助他们实现个人和职业发展。
绘制以下流程图
1.设计界面总览
2.相关功能展示
登录界面
主页
会话列表
会话详情
我的项目
创建项目
个人信息
使用展示
四.工作过程
1.任务规划
阅读作业要求,制定工作计划
2.需求分析
阅读作业附件的客户需求,分析原型所需具备的功能,绘制原型功能的流程图
3.了解相关软件,确定研发软件并学习
通过查阅资料,询问AIGC,最终确定学习Axure软件来进行原型制作。
4.读书笔记
阅读《构建之法》并完成读书笔记
5.原型制作
各自完成学习Axure的使用,讨论并完成原型的制作。
6.原型测试
五.PSO表格
任务 | 预估耗时(h) | 实际耗时(h) |
---|---|---|
阅读《构建之法》 | 1 | 2.5 |
需求分析 | 0.5 | 0.5 |
学习Axure | 2 | 3 |
原型制作 | 3 | 7 |
原型测试与修改 | 1 | 1 |
整理编写博客 | 1 | 1.5 |
六.总结
陈毅
通过这次结对任务,我们深刻体会到了设计一个安全、高效的跨专业项目合作平台的挑战。我学习到了如何将用户的需求转化为实际的功能,并确保这些功能既实用又安全,也学到了新的技能,Axure软件的基本使用方法,同时,学习了《构建之法》中的知识,对NABCD模型有了进一步的认识。结对完成更让我们感受到合作与交流的重要性,通过合适的交流高效地完成了任务。我也深刻感受到,软件工程是一个需要多方协作、持续学习和不断优化的过程。我期待将这些经验应用到未来的项目中,进一步完善我们的解决方案并成功推行。
吴佳辉
这次的结对作业经历为我揭示了软件工程全流程的实践面貌,涵盖了从需求梳理到功能原型构建等关键阶段,并突显了团队合作的重要性。在深入学习《构建之法》后,我对软件开发的不同阶段有了更清晰的认识。项目中,我们特别关注了跨专业合作时遇到的常见问题。我们发现缺乏一个促进学生间交流和合作的平台,于是设计了一个集项目发布、智能匹配、即时通信于一体的综合应用平台。在团队合作中,与队友的紧密协作让我收获了丰富的经验,我们的讨论中也孕育了不少创新想法。此外,我也体会到了优良用户体验的重要性。虽然用户界面设计并非我的主要职责,但通过与团队成员的合作,我掌握了如何通过界面优化和用户交互提升用户满意度。这次作业也让我意识到时间管理和任务划分的重要。总的来说,此次作业不仅提升了我的专业技术能力,也加强了我在团队中的沟通与协作能力。