occultator3000

导航

软件工程第一次结对作业

软件工程 https://edu.cnblogs.com/campus/fzu/SE2024
作业要求 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13261
作业目标 分析学生们的需求,学会使用专用的原型模型设计工具设计app原型,完成前期工作
学号 102201102
合作伙伴 102201119陈宇尧

本次作业采用了摩客设计原型,原型链接为https://rp.mockplus.cn/run/Oh0YeY9Lrj/0ng2z8DHld/HVvN4nUbx?cps=expand&rps=expand&nav=1&ha=0&la=0&fc=1&dt=iphoneX&out=0&rt=1&as=true


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

1. 第3章 软件工程师的成长

​ 通过阅读《构建之法》第三章,我学会了如何评价软件工程师的水平,以及如何通过持续学习和积累经验提高个人技能。第三章中的内容重点探讨了技能的反面、TSP(Team Software Process)对个人的要求,以及常见的思维误区等。以下是我从中汲取到的一些重要经验:

软件工程师的成长与发展

​ 作为一名软件工程师,理解和拆解任务是成功的基础。在面对复杂问题时,首先需要深入分析问题,查找已有的解决方案,并在此基础上根据团队的要求提出优化建议。这一过程不仅考验个人的技术能力,还要求对团队协作有深刻认识,以确保提出的方案既可行又高效。

​ 在提出解决方案时,具备多方案思维尤为重要。优秀的软件工程师会针对同一问题提出多种备选方案,并对每种方案进行合理的工作量估计。这种能力不仅可以降低项目风险,还能在不同条件下灵活调整开发策略。

​ 在项目执行过程中,团队协作与责任心同样不可或缺。软件工程师不仅要编写符合规范的代码,还需与其他团队成员密切合作,验证方案的可行性,并确保最终结果达到预期。这种合作精神能够推动团队更高效地完成任务,提升整体项目质量。

初级软件工程师的成长路径

在初级软件工程师的成长过程中,有几个关键点需要关注:

  1. 技术积累:不断提升技术技能和开发能力是基础。例如,熟练使用Python语言及其调试器等工具,可以帮助工程师更有效地解决问题和优化代码。
  2. 领域知识积累:深入了解所从事项目的领域至关重要。掌握项目管理和任务分解的流程,不仅可以提升个人在项目中的作用,还能确保设计出符合用户需求的软件。
  3. 职业技能的提升:除了技术技能,职业技能(如时间管理、沟通技巧和团队协作)同样重要。尤其在结对开发中,良好的沟通和协作能力能大幅提升团队的效率和工作质量。

​ 一个典型的软件工程师成长路线,从技术积累出发,逐步扩展到领域知识的掌握,最终具备较强的职业技能。在项目执行和结对开发中,这种提升尤为关键,能够帮助工程师在团队中发挥更大的价值。

技术与职业技能的提升

​ 技术能力的提升是软件工程师职业发展的基础。这不仅包括对具体编程语言(如Java、C++等)的掌握,还涉及对软件设计原则和开发工具的理解。通过不断学习和实践,积累行业知识,逐渐能够在复杂的项目中快速找到有效的解决方案。此外,职业技能如自我管理、沟通能力和团队合作能力同样不可或缺。这些能力帮助我更好地与同事协作,承担团队赋予的不同角色,从而实现项目目标。

质量与工作量的评估

​ 在项目管理中,如何衡量工作量和质量是成功的关键。我了解到使用代码行数、完成时间和缺陷率等指标来评估项目进展,这让我在进行任务规划时更具针对性和效率。尤其是通过分析缺陷率,能够更直观地判断代码的质量,进而调整开发策略。

需求分析与用户调研

​ 需求分析是软件开发的基础,而获取用户需求的能力直接影响到产品的最终效果。我们学习到多种用户调研方法,如焦点小组、用户调查和A/B测试等,能够帮助我更精准地理解用户需求。在实际工作中,及时、准确地获取和分析需求,可以减少后续开发过程中的返工和资源浪费。

功能定位与优先级管理

​ 在明确用户需求后,对功能的定位和优先级进行分析是确保项目成功的关键步骤。通过理解杀手功能、必要需求和辅助需求之间的区别,能够更合理地分配开发资源,以实现用户的期望。同时,要意识到在资源有限的情况下,采用差异化策略来提升产品竞争力,在面对功能选择时更加从容。

总结与反思

​ 综合来看,成为一名优秀的软件工程师不仅需要深厚的技术基础,更需要在团队合作需求分析项目管理等多方面具备良好的能力。这一过程中不断反思自己的工作方式和学习方法,是提升自我、适应行业发展的重要途径。

2.第八章 NABCD模型

《构建之法》第八章介绍的NABCD模型为我们提供了系统化分析和解决问题的框架。以下是通过这个模型对本次作业需求的分析:

N(Need)需求

在校园里,许多学生希望通过参与或发起跨专业的项目,以提升自己的综合能力、拓宽知识面,并积累人脉。然而,由于人脉资源有限、跨学科合作的时间安排和课程不同,导致合作机会非常有限。因此,需要一个平台帮助学生快速找到合适的合作伙伴,促进跨学科项目合作的实现。

A(Approach)方法

为了解决学生们的困扰,我们设计了一款APP。该APP具有以下功能:

  • 项目发布:学生可以发布需要合作的项目,并明确项目所需的技能、背景和合作伙伴要求。
  • 智能匹配:基于学生的专业背景、兴趣领域和项目需求,系统会智能推荐合适的合作伙伴。
  • 即时通讯:提供项目组内的沟通交流功能,帮助成员高效讨论项目进度。
  • 项目管理:内置任务分配和进度跟踪工具,确保项目任务得到良好管理和执行。

B(Benefit)好处

  • 为学生提供跨专业合作的平台:该平台为学生提供了一个寻找志同道合的合作伙伴的机会,简化了跨学科合作的过程。
  • 提升项目合作效率:通过内置的项目管理和沟通工具,学生能够高效协作,并减少沟通障碍。
  • 促进人脉和经验积累:在平台上合作的学生可以通过参与不同类型的项目积累实践经验和人脉资源。

C(Competitors)竞争

市面上虽然有一些类似的工具,如微信、钉钉等,但这些工具主要侧重于社交和企业内部管理。相比之下,我们的APP专注于校园内部的跨学科合作,具有专业认证和项目管理等针对性的功能,因此更能满足这一特定需求。

D(Delivery)交付

我们将通过摹客设计APP原型,确保用户界面简洁易用。原型包括注册页面、项目发布界面、智能匹配界面、项目管理面板等。项目将通过GitHub进行协同开发,确保版本管理和后续代码维护的便捷性。

我们还计划通过在线原型工具分享平台的设计,供用户进行体验和反馈。每个功能模块都将经过反复迭代和用户测试,以确保平台的实用性和用户体验。

总结

通过本次阅读和NABCD模型的分析,我们更加深入理解了软件工程设计的流程和思路。作为软件工程师,必须在设计过程中结合用户需求和技术实现的可行性,确保解决方案具有实用性和创新性。同时,在开发和团队合作中,我也深刻认识到提升个人职业技能的重要性。通过这款应用的设计与实现,我们有望为学生的跨专业合作带来切实的帮助。

二、需求分析

二. 需求分析

(一) 业务需求分析

在大学校园中,跨专业项目合作面临诸多挑战。本项目的目标是构建一个跨专业合作平台,满足学生在跨领域协作中的多样化需求。具体痛点及解决方案如下:

  1. 合作机会受限
    当前,学生主要依赖个人网络或教师推荐来寻找合作机会,导致合作范围狭窄。平台需要扩展合作渠道,提供多样化的项目和合作伙伴推荐,帮助学生轻松找到志同道合的伙伴。

  2. 跨专业协调困难
    不同专业的学生在课程安排、项目目标和沟通方式上存在差异,增加了合作的复杂性。平台应提供协调机制,如统一的沟通工具和项目管理模块,帮助学生理解和协调彼此的需求,提高合作效率。

  3. 资源支持不足
    跨专业项目通常需要资金、技术、指导等多方面资源的支持。平台需整合并提供多种资源支持渠道,确保项目能够持续推进并获得必要的保障。

(二) 用户需求分析

1. 👩‍🎓 学生用户
  • 寻找合作伙伴
    学生希望通过平台找到具有不同专业背景、技能和兴趣的伙伴,共同开展跨专业项目。

  • 项目管理工具
    在项目执行过程中,学生需要便捷的工具进行任务分配、进度跟踪和成员管理,确保项目顺利推进。

  • 高效沟通协作
    学生需要一个实时交流的平台,支持资料共享和问题讨论,提升合作效率。

  • 资源获取
    学生期望从平台获取资金支持、技术指导、市场推广等资源,为项目成功提供保障。

  • 评价与反馈机制
    学生希望能够对合作伙伴和项目进行评价,提供参考意见,同时通过他人评价提升自身合作能力。

2. 管理员用户
  • 用户管理
    管理员需审核和管理平台用户,确保用户信息的真实性和合法性,维护平台秩序。

  • 项目审核与管理
    管理员需审核平台上的项目信息,确保其真实性和合法性,防止不良项目的出现。

  • 系统维护
    管理员负责平台的技术维护,保障平台的稳定性和安全性,及时解决技术问题。

🚀🚀 (三) 功能需求分析

用户注册与登录
  • 多种注册方式
    支持手机号、邮箱等多种注册方式,提供灵活的登录选项。

  • 多样化登录方式
    支持密码登录及第三方平台(如微信、QQ)登录,提升用户体验。

  • 完善个人信息
    用户需填写专业、技能、兴趣爱好等信息,便于平台进行精准匹配。

项目发布与搜索
  • 项目发布
    学生可以发布项目,填写项目名称、简介、所需技能、时间安排等详细信息。

  • 项目搜索
    通过关键词搜索,学生可以找到感兴趣的项目并申请加入。

用户匹配
  • 智能推荐
    根据用户的专业、技能和兴趣,为其推荐潜在的项目和合作伙伴。

  • 主动搜索与邀请
    学生可以主动搜索其他用户,查看其个人信息和项目经历,并发起合作邀请。

📖 沟通与协作
  • 即时通讯
    提供实时聊天功能,方便学生之间的沟通交流。

  • 资料共享
    支持文件上传和共享,方便成员之间共享资料和讨论问题。

项目管理
  • 项目负责人管理
    项目负责人可以管理成员、分配任务、跟踪进度,确保项目有序进行。

  • 成员任务查看
    成员可以查看自身任务和项目进度,及时完成分配的任务。

评价与反馈
  • 项目评价
    项目结束后,学生可以对合作伙伴和整个项目进行评价和反馈。

  • 参考评价
    其他用户可以查看已发布的评价,作为选择合作伙伴和项目的参考依据。

资源整合
  • 多方资源支持
    平台整合资金支持、技术指导、市场推广等资源,为项目提供全面保障。
🗄️ 系统管理
  • 用户审核与管理
    管理员审核用户注册信息,处理用户投诉,确保平台用户的质量。

  • 项目审核与管理
    管理员审核项目发布信息,处理违规项目,维护平台健康生态。

  • 系统维护与安全
    负责数据备份、安全防护,确保平台的稳定运行和数据安全。

总结

本需求分析旨在通过详细的业务需求、用户需求和功能需求,构建一个高效、可靠的跨专业项目合作平台。平台将通过扩展合作渠道、提供智能匹配和高效协作工具,解决当前跨专业合作中的痛点,助力学生实现多元化的项目合作与创新。

三、文字化描述方案与原型展示

1. 注册与登录

功能描述:用户能够方便地注册和登录平台,以便访问各项功能。

用户类型:

  • 学生
  • 教师

注册流程:

  • 输入基本信息:学/工号、邮箱、密码、专业,技能等用户基本信息
  • 验证邮箱,完成注册

登录流程:

  • 输入学/工号和密码,通过验证后登录

界面展示:

  • 输入框(用户名、密码)
  • 注册和登录按钮
  • “忘记密码”链接
  • 用户协议等简要说明


2.主页

  • 搜索功能:允许用户快速搜索项目、导师和团队。

  • 项目推荐:根据用户专业和兴趣推荐相关项目。

  • 技能知识专栏:提供技术文章和资源,帮助用户提升技能。

  • 找导师:用户可以浏览导师信息,联系合适的导师。

  • 找团队:展示正在寻找团队成员的项目,方便用户加入。

2. 项目管理

功能描述:用户能够浏览、发请和管理项目,确保跨专业合作的高效进行。

项目浏览与推荐:

  • 项目列表:仅显示项目名称
  • 点击进入项目详细信息

项目申请与加入:

  • 申请流程:
    • 点击“申请加入”
    • 填写专业及技术
    • 填写申请理由
    • 提交申请

项目发布与管理:

  • 发布流程:

    • 点击“发布项目”
    • 填写项目信息:时间安排、描述、所需专业或技术、项目名称
    • 确认无误后发布
  • 管理流程

    • 在当前项目中查看已发布项目,包含名称、描述、所需专业或技术、项目成员


3.社区

  • 社区主页
    • 展示附近项目(基于大数据推荐)、可联系的老师和团队信息。
    • 项目详情有正文,评论功能和分享功能
  • 好友列表:显示用户的好友及其资料详情,方便查看好友信息。
  • 个人聊天室:提供一对一/群聊 聊天功能,支持与好友、导师、团队之间的交流。

聊天页面:

  • 与合作伙伴进行聊天

  • 界面要素:

    • 底部输入框,主体页面展示聊天内容
    • 点击好友列表查看聊天对象的个人资料,资源信息


4. 个人主页

功能描述:用户能够管理自己的个人信息,并查看参与的项目和活动。

个人信息管理:

  • 显示用户专业、邮箱、学/工号、感兴趣的方向、技术栈
  • 退出登录

个人资料页:

  • 展示个人资料,包括头像、名字、专业、学号、联系方式、感兴趣的方向等信息
  • 展示已参加的项目
  • 界面要素:
    • 页面底部可编辑个人资料
    • 头像(下边是名字),其他个人信息展示

隐私与安全设置:

  • 用户可以设置隐私权限,决定哪些信息可公开,哪些仅限于合作伙伴查看

  • 账号安全管理:用户可以选择退出账号或注销账号,切换账号,修改密码,邮箱,手机号等

  • 界面要素:

    • 隐私设置选项:公开资料、仅团队可见资料、项目可见权限等
    • 账号安全管理
    • 退出当前账号

5. 后续计划与推广策略

功能描述:根据用户反馈不断优化平台,并制定推广策略。

用户反馈:

  • 定期收集用户反馈
  • 根据反馈调整平台功能

扩展功能:

  • 视屏会议功能
  • ai模型支持
  • 数据备份功能
  • 人脸识别功能
  • 好友仓库空间

推广策略:

  • 校园宣传:与学校合作,进行校园宣传
  • 社交媒体:利用社交媒体平台宣传,鼓励用户分享和推荐

四、原型设计

1、UML用例图

2、流程图

五、系统安全与维护分析

为了确保跨专业项目合作平台的安全性和稳定性,系统在使用频率、便利度、安全性、隐私性、时效性和封闭性方面进行了以下设计:

1. 使用频率和便利度

  • 身份验证
    每次登录时进行严格的身份验证,确保用户身份的真实性。支持多种认证方式,包括密码、验证码提升登录的便捷性和安全性。
  • 用户友好的界面设计
    简洁直观的用户界面设计,减少用户操作复杂度,提高使用频率和满意度,同时通过优化系统性能,确保平台响应迅速,操作流畅。

2. 安全性和隐私性

  • 数据加密存储
    所有用户数据采用高级加密标准(如AES-256)进行存储,确保数据在数据库泄露时无法被破解和滥用,保护用户敏感信息。
  • 隐私设置
    提供细粒度的隐私控制选项,允许用户自主设定个人信息的公开范围,如公开、仅好友可见或完全私密,灵活保护个人隐私。
  • 加密通信
    平台所有通信均通过HTTPS协议加密传输,确保用户交流内容在传输过程中不被截取或篡改,维护信息安全。
  • 访问控制
    实行基于角色的访问控制(RBAC),不同用户角色(如学生、管理员)拥有不同的权限,确保用户只能访问其被授权的资源和功能,减少潜在的安全风险。

3. 时效性和封闭性

  • 学校账号认证
    学生/教师账号用户认证,确保平台用户限于校园内的在校学生,提升用户群体的真实性和安全性,防止外部人员滥用平台资源。
  • 账号与项目管理
    定期清理过期项目和长期不活跃的账号,保持平台的活跃性和资源的有效利用,防止潜在的安全隐患。同时,针对不活跃账号实施自动化审查流程,确保平台资源集中于活跃用户。
  • 动态权限调整
    根据用户的活跃度和参与情况,动态调整用户权限,确保只有活跃且符合条件的用户才能继续使用平台资源,维护平台的健康生态。
  • 入侵检测与防护
    部署实时入侵检测系统(IDS)和入侵防护系统(IPS),监控和防御潜在的网络攻击,保障平台的持续可用性和数据安全。

总结

通过在使用频率与便利度、安全性与隐私性、时效性与封闭性等方面的综合设计,平台能够有效保障用户身份真实性、数据安全与隐私保护,并维护平台的活跃性和安全性。这些措施不仅提升了用户的使用体验和信任度,也为学生们在一个安全可靠的环境下进行跨专业合作提供了坚实的保障。

六、协作任务分工与合作

协作方式

  1. 面对面交流
    团队成员定期进行面对面会议,讨论项目进展、解决遇到的问题,并制定下一阶段的工作计划。这种方式有助于及时沟通,确保团队目标一致。
  2. 线上聊天与摩客协作
    利用线上聊天工具(如QQ)保持实时沟通,随时交流想法和反馈。同时,使用摩客(Moqups)进行原型设计和协作,确保远程工作的高效性和设计的一致性。

分工

  1. 阅读和总结方面

    • 收集和整理与项目相关的文献和资料,进行深入研究,撰写详细的总结报告,确保信息的全面性和准确性。
    • 协助A进行资料的筛选和整理,提供补充性的研究内容,并对总结报告进行校对和完善。
  2. 原型设计方面

    • 进行需求分析,明确平台的功能需求和用户需求,制定详细的设计方案,确保原型设计符合项目目标。
    • 使用摩客(Moqups)进行原型制作,设计用户界面和交互流程,确保设计的美观性和用户体验。
    • 对初步设计的原型进行评审和优化,结合双方的意见和建议,最终确定完整的原型设计。

  3. 博客的完成

    • 撰写博客内容,包括项目介绍、开发过程、遇到的挑战及解决方案等,确保内容的深度和专业性。
    • 负责博客的编辑与排版,优化视觉效果,确保内容的清晰和美观,同时协助A进行内容的审核和修订。

团队协作

​ 团队成员A与B在项目期间保持紧密合作,分工明确,互相支持。在每周例会上,A和B分别汇报各自负责部分的进展情况,讨论遇到的问题并共同寻找解决方案。通过高效的沟通和协作,确保项目按时、高质量地完成。

总结

​ 通过合理的协作方式和明确的任务分工,团队成员A与B能够充分发挥各自的优势,协同完成跨专业项目合作平台的开发工作。这不仅提升了工作效率,也增强了团队的凝聚力,为项目的成功奠定了坚实的基础。

七、PSP 表格

阶段 预估耗时 /H 实际耗时 /H
阅读《构造之法》 2.5 3.0
分析需求 2.5 2.5
原型设计 5.0 6.0
制作UML图 1.0 0.5
制作文档 2.0 2.5
总计 13.0 14.5

八、总结

本人

​ 在本次跨专业项目合作平台的开发过程中,我深刻体会到了NABCD模型、原型设计网站的使用、软件设计以及团队协作的重要性。

​ 首先,应用NABCD模型帮助我们系统地分析了项目的需求(Needs)、方法(Approach)、预期收益(Benefits)、挑战(Challenges)和交付成果(Deliverables)。这种结构化的思维方式使我们能够全面理解项目目标,制定合理的实施方案,并有效应对过程中遇到的各种问题。

​ 在原型设计阶段,我们使用摩客(Moqups)创建了详细的界面和功能原型。这不仅提升了设计的直观性和准确性,还促进了团队成员之间的沟通与反馈,确保了最终产品的用户体验符合预期。

​ 团队协作方面,和结对伙伴互相支持,定期进行项目进度汇报和问题讨论,针对跨专业项目合作平台设计提出很多个人的看法,并进行细致交流和 完善。这种高效的合作模式不仅提高了工作效率,也增强了团队凝聚力。

​ 总体而言,这次项目让我深刻理解了系统化分析、专业工具应用、扎实的软件设计以及良好团队合作的重要性,为今后的工作积累了宝贵的经验。

协作者

102201119陈宇尧

​ 本项目设计的跨专业项目合作平台,旨在解决大学中跨专业合作面临的诸多问题。通过深入分析学生和导师在项目合作中的需求,我们构建了一个功能全面且具有良好用户体验的系统。
​ 在功能方面,涵盖了从项目发起、加入,到人员选择、资源管理等一系列关键环节。例如,学生能够方便地发起自己感兴趣的项目,并准确地寻找合适的合作伙伴;导师也可以高效地管理学生,促进项目的顺利进行。同时,对于用户的注册、添加、删除和认证加入等操作,都进行了细致的设计,确保系统的安全性和稳定性。
在设计过程中,我们特别注重系统的实用性、有效性、安全性、隐私性和封闭性。采用了 [具体工具名称] 进行原型设计,精心绘制了原型设计流程图以及 UML 图。这些图表清晰地展示了系统的架构和流程,符合主流人群的使用习惯,无论是有技术背景还是非技术背景的用户,都能轻松理解和使用。通过原型展示在线链接,也方便了团队成员和相关人员进行查看和反馈。
​ 个人心得方面,通过这次项目,我深刻体会到了团队合作的重要性。在与搭档的讨论和协作中,我们不断碰撞出思维的火花,从不同的角度完善了项目设计。同时,也更加熟悉了专业工具的使用,提升了自己的设计能力和解决问题的能力。然而,在设计过程中也遇到了一些挑战,比如如何更好地平衡系统的各项特性,以及如何确保在复杂的校园环境中系统能够稳定运行。这些问题都促使我们不断思考和探索,也为未来的学习和实践积累了宝贵的经验。

posted on 2024-09-27 01:05  occultator3000  阅读(55)  评论(0编辑  收藏  举报