软件工程第一次结对作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261 |
这个作业的目标 | 需求分析和原型设计:针对跨学科学术交流的困难,设计一个小程序解决客户疑难 |
学号 | 102202132 |
合作伙伴 | 102202131 林鑫 |
使用墨刀设计原型,原型链接:
https://modao.cc/proto/75gKDnTzskenf4IUOgk6/sharing?view_mode=read_only
一.课前准备:《构建之法》阅读成果
第三章
软件工程师评价与发展
一、个人能力衡量与发展
- 初级软件工程师成长需积累软件开发知识、问题领域知识、理解软件设计和工程思想、提升职业技能并取得实际成果。
- 衡量软件开发工作量和质量可用代码行数或功能点表示项目大小,人月表示时间,缺陷数量与项目大小比表示质量,还需考虑是否按时交付。
- 团队期望个人有效交流、按时交付、接受角色、全力投入、按流程工作、做好准备、理性工作。
二、思维误区
- 分析麻痹:想弄清所有细节再动手,心理悲观。
- 不分主次:想解决所有依赖问题。
- 过早优化:应从全局考虑模块重要性。
- 过早扩大化/泛化:软件可扩展但不能过早泛化。
三、职业发展
- 工作动机有临时寄托、养家糊口、职业打算、投身事业、改变世界之分。
- 职业资格考试有计算机等级考试、软考等。
- Steve McConnell 认为软件工程师需具备知识,掌握程度分入门、熟练、带头人、大师四阶段。
- 微软公司软件工程师职业等级分 SDE、SDEⅡ、Senior SD、Principal SDE 等,职位越高影响力越大。
第八章:需求分析
一、软件需求分析步骤
- 获取和引导需求:找到利益相关者,包括最终用户、客户、市场分析师、监管机构和软件工程师等,挖掘他们对软件的需求并引导其表达。
- 分析和定义需求:规整各方需求,定义内涵并从多角度量化,如需求实现期限、时间与资源成本、优先级及收益等。
- 验证需求:软件团队通过分析报告、技术原型、用户调查或演示等形式与利益相关者沟通,验证对需求的认知。
- 管理需求:在软件生命周期中,随着需求变化、技术发展和团队能力提高,不断审核并调整需求。
二、软件需求的划分
- 功能性需求:要求产品实现特定功能,如学校选课软件对用户身份和先修课的要求。
- 开发过程需求:约束软件开发流程,如产生特定文档、在特定时间达到特定状态、对源代码有特定约束。
- 非功能性需求:即服务质量需求,如股票交易系统的响应时间、火车票购票系统和大学选课软件的用户并发支持等。
- 综合需求:涉及多个软件模块或部门功能,如购物网站的货物配送需求。
三、获取用户需求——用户调查
- 焦点小组:召集目标用户代表和利益相关者讨论用户需求和软件评价。
- 深入面谈:一对一采访,深入了解用户背景、心理和需求,但效果取决于主持面谈者能力。
- 卡片分类:用小卡片或贴纸记录需求,进行讨论、定义、归类和排序。
- 用户调查问卷:提供规定问题让用户回答。
- 用户日志研究:用户记录与软件相关行为供分析。
- 人类学调查:与目标用户“同吃同住同劳动”。
- 眼动跟踪研究。
- 快速原型调研:用户参与式设计,用纸张模型获取反馈。
- A/B 测试:决定试验的两种不同 UI,确定衡量标准、数据收集流程、试验运行时间和人数,在部分用户上运行试验并分析数据得出结论。
四、竞争性需求分析的框架
- N(Need,需求):了解用户对已有软件、服务的不满之处,充分把握用户痛苦。
- A(Approach,做法):在技术、商业模式等方面有独特招数。
- B(Benefit,好处):考虑独特做法给客户、用户带来的好处。
- C(Competitors,竞争):分析敌我优势和劣势,更好地满足用户需求。
- D(Delivery,推广):想办法将创新产品交到用户手中。
五、功能分析的四象限方法
- 维持:以最低成本维持此功能。
- 抵消:快速达到“足够好”,与竞争对手差不多。
- 优化:花大力气做到并保持行业最好。
- 差异化:产生同类产品比不了的功能或优势。
- 不做:砍掉一个功能,不一定要做所有功能。
六、计划和估计
- 软件项目计划中重要环节是估计各类工作所需时间。目标是希望达到的状态,估计是以当前情况和资源判断实现某事所需人力物力时间,决心是保证在特定时间前完成规定功能和质量。
- 整个软件项目时间估计:
- 自底向上:团队成员各自估计底层模块和单个功能及单元测试所需时间,加上集成及基本测试时间得出开发时间。
- 回溯:从项目最终交付之日倒推。
- 项目复杂程度决定因素:
- 需求复杂程度:程序员第几次实现类似需求。
- 技术复杂程度:程序员第几次用该技术实现。
二.作业内容(NABCD模型):
1.需求分析(N):
一、背景
在大学校园里,有想法的学生渴望通过跨专业项目提升综合能力、拓宽知识面和积累人脉。但目前跨专业合作机会有限,主要依赖个人人脉积累或老师介绍。
二、问题
- 合作机会难找
- 对于多学科支持的项目,学生在校园中难以找到志同道合的合作伙伴。
- 合作难度大
- 不同专业学生的课程安排和个人想法不同,导致在合作时间安排、项目目标和沟通方式上存在差异。
- 缺乏支持平台
- 没有合适的平台或资源来支持跨专业项目的持续发展。
三、需求总结
- 提供合作平台
- 建立一个能够让不同专业学生相互发现、交流并合作的平台,增加跨专业合作的机会。
- 协调合作差异
- 提供工具或方法来帮助学生协调合作中的时间安排、项目目标和沟通方式等差异。
- 提供资源支持
- 为跨专业项目提供持续发展所需的资源,如指导老师、资金支持、场地设备等。
2.设计思路(A):
:跨学科学术交流 APP 设计方案:
一、登录/注册界面
- 多种登录方式:提供邮箱、手机号码、登录入口,方便用户快速进入。
- 注册引导:新用户注册时,有清晰的步骤引导,包括填写基本信息(姓名、专业、年级、学校)、设置密码、验证邮箱或手机号码等。
- 忘记密码功能:通过邮箱或手机号码验证,帮助用户找回忘记的密码。
- 新增安全功能:在注册和登录过程中,增加图形验证码,防止恶意注册和暴力破解。(待完善)
二、首页界面
- 热门项目展示:以卡片形式展示热门的跨专业项目,包括项目封面图片、项目名称、简介、所需专业、项目进度、参与人数等信息。用户可以点击卡片进入项目详情界面。
- 最新动态:显示最近发布的项目、讨论话题和活动通知,让用户及时了解平台的最新动态。
- 搜索栏:位于页面顶部,用户可以输入关键词搜索项目、用户或话题。搜索结果以列表形式展示,包括相关的项目、用户和话题。
- 分类导航:提供项目分类、话题分类和活动分类等导航选项,方便用户快速找到感兴趣的内容。例如,项目分类可以包括创业项目、学术研究项目、实践项目等;话题分类可以包括学术讨论、项目合作、职业发展、校园生活等。
三、项目发布界面
- 项目基本信息:
- 项目标题:要求简洁明了,能够准确概括项目主题。
- 项目类型:选择项目的类型,如创业项目、学术研究项目、实践项目等。
- 项目简介:详细介绍项目的背景、目标、预期成果等,让其他用户快速了解项目的价值和意义。
- 所需专业:通过下拉菜单或关键词输入的方式,列出项目所需的专业技能或知识领域。
- 项目标签:用户可以为项目添加一些关键词标签,方便其他用户通过搜索找到该项目。
- 时间安排:
- 项目起止时间:明确项目的开始时间和预计结束时间。
- 每周预计投入时间:让其他用户了解参与该项目所需的时间投入。
- 团队成员:
- 已邀请成员:显示已经邀请加入项目的成员姓名、专业和联系方式。用户可以在这里管理已邀请的成员,如发送邀请、取消邀请等。
- 邀请新成员:提供搜索用户和发送邀请的功能,用户可以通过输入专业、年级、学校等关键词搜索其他用户,并向他们发送项目邀请。
- 联系方式:
- 项目负责人联系方式:填写项目负责人的姓名、邮箱、手机号码或即时通讯账号,方便其他用户与负责人联系。
- 团队沟通方式:选择团队的沟通方式,如即时通讯工具、在线会议平台等。
四、项目详情界面
- 项目基本信息:与项目发布界面的内容一致,方便用户快速了解项目概况。
- 团队成员介绍:用户可以点击成员头像进入成员个人主页,了解更多关于该成员的信息。
- 讨论区:用户可以在这里发表对项目的看法、提出问题或建议。讨论区按照时间顺序排列,用户可以回复其他用户的评论,进行互动交流。
- 申请加入按钮:未加入项目的用户可以点击该按钮提交申请,说明自己的专业技能和加入项目的理由。项目负责人可以在申请列表中查看申请信息,并决定是否接受申请。
五、个人中心界面
- 用户信息:显示用户的姓名、专业、年级、学校、联系方式等基本信息。用户可以点击编辑按钮修改个人信息。
- 我的项目:列出用户发起或参与的项目,点击可进入项目详情界面。用户可以在这里管理自己的项目,如查看项目进度、邀请成员、发布更新等。
- 我的收藏:用户可以收藏感兴趣的项目、讨论话题和活动,方便以后快速访问。收藏列表支持分类管理和搜索功能。
- 设置:包括账号设置、隐私设置、通知设置等功能。账号设置可以修改密码、绑定第三方账号等;隐私设置可以控制个人信息的可见性和项目邀请的接收方式。
六、消息界面
- 消息列表:按照时间顺序排列消息,显示消息的发送者、内容和时间。用户可以点击消息查看详细内容,并进行回复或操作。
- 标记已读/未读:用户可以标记消息为已读或未读,方便管理消息列表。
- 消息搜索:支持搜索消息内容和发送者,方便用户快速找到特定的消息。
七、讨论界面
- 话题分类:如学术讨论、项目合作、职业发展、校园生活等,方便用户快速找到感兴趣的话题。用户可以点击分类标签进入相应的话题列表。
- 话题详情:显示话题的标题、内容、回复数、点赞数等信息,用户可以在这里发表回复和参与讨论。
:3.设计方案的优缺点(B):
一、优点
- 项目发布与管理:学生可以详细地发布项目信息,包括项目类型、简介、所需专业、时间安排等,方便其他有兴趣的同学快速了解并申请加入。
- 个性化推荐:根据用户的专业、兴趣爱好和浏览历史为其推荐相关项目、讨论话题和活动,提高了信息匹配的精准度。
- 团队协作工具:项目详情界面提供讨论区、文件共享区等功能,方便团队成员之间的沟通与协作。
- 首页界面:集中展示热门项目推荐、最新动态、搜索栏和分类导航,让用户能够快速获取所需信息。
- 个人中心界面:用户可以方便地管理自己的项目、收藏、消息等,提高了信息管理的效率。
二、缺点
- 用户活跃度难以保证
- 信息真实性与质量问题
- 不同专业学生在合作时间安排、项目目标和沟通方式上的差异仍然可能导致合作的困难。例如,某些专业的课程安排可能非常紧张,学生难以抽出足够的时间参与项目。
- 学生发布的项目信息可能存在不真实或质量不高的情况,这可能会影响其他用户的参与意愿。例如,项目简介可能过于模糊或夸大其词。
- 开发和维护这样一个功能丰富的 APP 需要投入大量的技术资源和资金。同时,随着用户数量的增加,服务器负载和数据安全等问题也需要不断关注和解决。
三、需完善部分(C):
- 隐私性方面
- 进一步细化隐私设置选项,让用户能够更加精确地控制个人信息的可见范围。例如,用户可以选择仅对特定项目组成员展示某些信息,或者对不同类型的用户(如普通用户、项目负责人等)设置不同的可见级别。
- 加强对用户数据的加密存储和传输,确保用户的个人信息和项目数据在存储和传输过程中不被窃取或篡改。可以采用先进的加密技术,如端到端加密等。
- 安全性方面
- 增加多因素身份验证功能,如短信验证码、指纹识别、面部识别等,提高用户登录和操作的安全性。
- 时效性方面
- 优化消息推送机制,确保用户能够及时收到项目更新、讨论回复、活动通知等重要信息。
- 定期更新热门项目推荐、最新活动等内容,保持平台的活跃度和新鲜感。
- 相对封闭性方面
- 限制非注册用户的访问权限,保护项目的知识产权和商业机密。可以设置部分内容仅对注册用户可见,或者对不同类型的用户设置不同的访问级别。
:3.项目流程图:
:4.项目部分原型图展示:
:登录界面:
:注册界面:
:小程序主界面:
:个人信息界面:
:消息界面:
:成果演示:
- 注册登入:
- 主页功能:
- 消息功能:
- 我的功能
: 5.小组分工(2人):
一、小组成员及角色分工
郑冰智:
- 阅读《构建之法》,与合作伙伴共同讨论阅读成果。
- 参与原型设计。
- 与成员林鑫共同讨论 APP 的功能模块和界面布局。
- 利用墨刀等工具制作低保真原型图,展示 APP 的基本框架和交互流程。
- 总结完善最终的原型设计,编写markdown
林鑫:
- 阅读《构建之法》,与合作伙伴共同讨论阅读成果。
- 主要负责原型设计和视觉设计。
- 根据需求文档和讨论结果,进行高保真原型图的设计。
- 设计 APP 的界面风格和色彩方案,确保用户体验良好。
- 制作原型图的交互效果,如点击、滑动、弹窗等,增强用户的参与感。
- 协助需求分析。
- 提供设计角度的建议,帮助完善需求文档。
二、合作流程
-
(一)需求分析阶段
- 成员郑冰智和林鑫共同分析客户现实困扰,梳理出关键问题点,如合作机会有限、难以找到志同道合伙伴、时间安排等差异导致合作难以及缺乏支持平台等。
- 两人分别通过查阅校园论坛、社交媒体上学生关于跨专业合作的讨论,以及与有过跨专业合作经历的学生进行交流,深入了解实际情况中的具体困难和需求。
- 成员郑冰智对收集到的信息进行归纳整理,撰写详细的需求分析文档,明确 APP 应具备的功能以解决这些问题。林鑫从设计角度提出对需求的理解和建议,共同完善需求内容。
-
(二)原型设计阶段
- 成员郑冰智和林鑫根据需求分析结果,共同讨论 APP 的功能模块和界面布局,确定以促进合作机会、方便寻找伙伴、协调时间安排等为重点的原型设计方向。
- 成员林鑫开始进行高保真原型图的设计,在设计过程中注重体现解决客户问题的功能和良好的用户体验。郑冰智提供需求方面的实时指导和反馈,确保设计符合需求。
- 定期进行小组会议,展示原型图的进展,针对设计中可能出现的无法完全解决客户问题的地方进行讨论,并提出解决方案。
- 完成原型图设计后,邀请具有跨专业合作需求的学生进行测试,收集他们对原型图是否有效解决现实困扰的反馈意见。两人根据反馈对原型图进行优化和调整,使其更贴合客户需求。
三、沟通与协调机制
- 使用在线协作工具,进行任务管理和沟通交流。成员可以随时更新任务进度,提出问题和分享想法。
- 在重要决策和关键节点上,充分听取对方的意见和建议,共同做出决策。确保两人的工作紧密配合,朝着共同的目标前进。
通过明确的分工和有效的合作,我们期望能够顺利完成跨学科学术交流 APP 的需求分析和原型设计阶段,为后续的开发工作奠定坚实的基础。
:6.推广策略(D):
一、合作学校机构
与创新创业中心和学术研究部门合作,在创业辅导、科研活动中推荐跨学科学术交流 APP,鼓励学生利用其寻找跨专业伙伴。
二、融入教学
教师在课程中融入跨学科合作元素,推荐学生使用 APP 组建团队并可作为课程考核部分。与社团合作,在活动中宣传 APP。
三、校园宣传
张贴海报、举办路演、利用学校官方媒体宣传 APP,邀请成功案例分享,设置互动环节提高传播效果。
三.总结交付:
一、PSP 表格
PSP 表格
阶段 | 任务 | 预估耗时(单位:小时) | 实际耗时 |
---|---|---|---|
阅读《构建之法》 | 阅读书籍 | 4 | 4 |
需求分析 | 针对需求讨论方案 | 2 | 2.5 |
需求分析 | 撰写需求文档 | 2 | 2 |
构建原型模型 | 确定整体架构 | 2 | 1.5 |
构建原型模型 | 原型图设计 | 10 | 12 |
构建原型模型 | 交互效果添加 | 2 | 2.5 |
项目准备工作 | 准备相关资源等 | 0.5 | 3 |
调试和修改 | 调试与修改问题 | 1 | 0.5 |
测试 | 功能测试 | 0.5 | 0.3 |
复盘与总结 | 回顾总结项目 | 0.5 | 1 |
二、收获总结
(一)郑冰智收获总结
-
《构建之法》的启示:阅读《构建之法》让我深刻认识到软件开发过程中的诸多重要原则。例如,用户需求是软件成功的关键,这在我们的跨学科学术交流 APP 项目中得到了充分体现。通过深入的需求分析和用户调研,我切实了解了大学生在跨学科合作方面的真实需求和痛点,为 APP 的设计提供了坚实基础。
-
需求分析与用户调研:通过需求分析和用户调研,明确了大学生在跨学科合作中的核心需求。学会运用多种方法收集和分析用户反馈,深刻体会到准确把握用户需求对软件设计的重要性。
-
团队合作与沟通:在与林鑫的合作中,提升了沟通和协调能力。通过小组会议和在线协作工具,确保项目顺利进行,体会到良好团队合作对提高工作效率和质量的重要性。
-
项目原型构建心得:在项目原型构建过程中,我深刻体会到从用户需求出发的重要性。通过不断地与林鑫讨论和优化,我们不仅完善了 APP 的功能模块和界面布局,还提前发现了许多潜在问题。这让我明白原型设计是软件开发的关键环节,它能够为后续的开发工作提供有力的支持。同时,在构建原型的过程中,我也学会了如何运用各种工具和技术,提高了自己的实践能力。此外,看到我们设计的原型逐渐成型,心中充满了成就感,也更加坚定了我在软件开发领域不断探索和进步的决心。
(二)林鑫收获总结
-
《构建之法》的感悟:阅读《构建之法》使我更加明确了软件开发中用户体验的重要性以及团队协作的关键作用。在跨学科学术交流 APP 的设计过程中,这些理念始终贯穿其中。
-
原型设计与用户体验:提高了设计能力和用户体验意识,学会从用户角度设计简洁、美观、易用的 APP,更加注重用户需求和感受。
-
团队合作与优势发挥:学会在团队中发挥优势,倾听和尊重他人意见,深刻体会到团队合作的力量,理解了协作和沟通对软件开发成功的关键作用。
-
项目原型构建心得:在项目原型构建中,我充分发挥自己的设计专长,不断尝试创新的界面风格和交互效果。通过与郑冰智的紧密合作,我们共同打造出了具有独特魅力的 APP 原型。这个过程让我深刻认识到原型设计的创造性和挑战性。每一次的调整和优化都是对自己设计能力的提升,也让我更加热爱这个领域。