这个作业属于哪个课程 | 软件工程课程 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | github多人合作操作 需求分析与原型设计 |
成员一 | 031802534(吴少冰) |
成员二 | 031802502(陈锦辉) |
目录
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
Estimate | 估计这个任务需要多少时间 | 30 | 30 |
Development | 开发 | ||
Analysis | 需求分析 (包括学习新技术) | 120 | 120 |
Design Spec | 生成设计文档 | ||
Design Review | 设计复审 | ||
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | ||
Design | 具体设计 | 180 | 240 |
Coding | 具体编码 | ||
Code Review | 代码复审 | ||
Test | 测试(自我测试,修改代码,提交修改) | 90 | 120 |
Reporting | 报告 | ||
Test Report | 测试报告 | 120 | 180 |
Size Measurement | 计算工作量 | ||
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
Total | 合计 | 570 | 720 |
结对过程
时间流程
- 2020年9月24日,两人对题目进行了信息的提取和分析,在收集资料和交流后决定使用微信小程序实现功能,并决定先分开思考需要实现的功能和需求,再进行交流汇总。
- 2020年9月25日,对两人思考的功能需求进行讨论、整合和补充,整理出初步的设计思路。 对原型设计软件进行了解和讨论,选定了墨刀作为实现软件。
- 2020年9月26日,完善细节,决定分工,学习分工任务,同时需要对另一队友的任务有一定的学习了解。
- 2020年9月27日,合作进行原型设计,在原型设计过程中完善整体细节和功能需求。
- 2020年9月28日,初步完成博客,讨论交流没有考虑到的问题和优化方法。
- 2020年9月29日,对博客和原型设计进行进一步的修改和完善。
分工过程
- 由于是两人结对,并没有过于细致的分工,需要掌握和学习的知识都是相同的,只在学习的侧重点上进行分工。
- 墨刀的更多功能交给
(审美比较优秀的)队友进行学习设计,而博客与功能流程图的设计交给另一位队友侧重学习设计。实际设计时两人都参与其中。 - 原型设计时基本为 电脑驾驶员 + 背后的讨论者
(码农和产品经理)
结对照片
NABCD模型解决方案
Need(需求)
- 在校生
- 各类实验室毕业生(不局限于是否为自己所在的实验室)的去向
- 各类实验室毕业生曾经的研究内容与方向
- 各类实验室毕业生现状
- 毕业生去向的公司就业对应的待遇与工作相关内容
- 寻找合适毕业生询问内推相关信息
- 毕业生
- 了解在校生相关信息(实验室、研究内容、技能树情况、需求与发展方向等等)
- 拥有一个能与在校生联系内推的平台
- 寻找拥有关心技能的在校生
- 能了解在校生对期望岗位的要求
- 总体都需要的需求
- 隐私保护:能够保证自己个人信息由自己管理,不会在不知情下外泄。
- 安全性保护:账号需要有安全保障,以免造成损失。
- 相对封闭性:个人信息与外界信息在能够交流的情况下有自我保护能力。
- 时效性:自己的信息和自己关注的信息能够具备更新能力。
Approach(做法)
- 大方向
通过设计一款微信小程序,通过注册时对账号进行验证和分类,进入不同的个人界面,在个人界面内提供对应服务,服务依托于信息数据库和搜索方式。 - 通用需求设计
- 账号注册:采用学号-专业-姓名进行实名注册认证,认证时需要选择自己属于的用户类型。账号绑定支持微信号直接绑定。实验室的注册绑定会在个人界面内,对实验室的注册信息是否通过需要实验室提供信息组成对应数据库,在数据库中进行验证。
- 关注功能:通过访问用户界面可发起对用户的关注申请,被关注者同意后会加入关注者的关注列表。用户拥有自己的关注列表,能对关注列表进行分类管理(创建分组),管理包括是否开放无需申请发起私聊权限,选择展示个人信息等等。
- 拉黑功能:允许用户之间进行拉黑,拉黑后对方将无法对自己发起任何申请。并转入黑名单列表。用户可通过黑名单列表取消对某个用户的拉黑。
- 个人信息管理:用户个人界面可以管理和保存自己的个人信息,并可以自主选择是否向其他用户开放自己的个人信息浏览权限,其中联系方式管理为关键。
- 私聊模式:允许用户之间发起私聊申请,可附带发起申请原因,被发起方可进行查看并确定是否接受。可以通过个人设置来设置是否接收他人的私聊申请,不接收则不会收到私聊申请信息。
- 搜索:通过关键词(实验室名、姓名、学号、以及对应不同分类的专有搜索词)进行搜索用户并访问对应用户个人界面(只显示对方公开信息)。
- 内推需求:用户皆可在个人设置中设置是否接受内推信息,以及对内推的一定要求。毕业生可以在确定在读生对内推岗位的要求后对(接受内推)在读生发起内推交流申请,同意后双方可以直接进入私聊状态,同理,在读生也可以在确定毕业生对进行内推的需求后发起内推交流申请。之所以特别将内推与私聊申请分开,是为了能够重点突出关键的内推申请,但双方的交流实际还是基于私聊模式。
- 实验室认证:每个用户可以认证多个实验室,但是否能通过取决于实验室给出的成员数据库。每个实验室有自己的实验室界面,用于分类存放毕业生与在读生的账号信息,每当有通过认证的学生加入后会自主将账号信息添加到界面中,加入的学生可以通过个人主页面下访问对应实验室界面。
- 毕业生需求
- 毕业生注册时必须要通过实验室认证,否则将无法成功注册。
- 搜索功能提供研究方向目录和能力树目录的搜索选项,用于筛选关心能力的在读生。(设置目录选择是为了有搜索内容的选择,随意写会严重影响搜索的性能)
- 个人信息展示中有专属的(去向和现状)分类,用于记录相关信息。
- 在读生需求
- 在读生注册时允许不填实验室认证,但将无法具有对应实验室的关键词后缀。
- 搜索功能提供公司名和岗位名的搜索选项(官方全称,用于减少搜索的难度)。
- 个人信息展示中有专属的(研究方向、期望岗位等等)分类,用于记录相关信息。
Benefit(好处)
- 个人信息保护性高,是否展示取决于自己的选择。
- 交流方式直接,同时有考虑到对应的安全性。
- 搜索功能能够完成需求的功能。
- 内推信息可以被重点标出,减少漏看等可能性。
Competitors(竞争)
- 优势
- 给予个人的自定义广泛,能够根据自己的需求来设定对应的权限。
- 内推功能独立于私聊功能又基于私聊功能,可以重点突出内推功能。
- 提供直接交流平台的同时有其他功能防止收到恶意干扰。
- 对验证要求的严格可以有效防止诈骗等行为的发生。
- 专属信息分类和标签后缀的分隔有利于用户搜索和分辨满足自身需求的搜索对象。
- 劣势
- 依赖于初始时实验室给定的初始信息库,需要做好广泛准确的信息采集。
- 自上而下的推广方式局限性大,前期较难维护。
- 信息填写由个人选择,只能对是否属于该实验室进行验证,做不到对重要信息(如在读生的个人能力,毕业生的公司和去向)进行确认。
- 只提供点对点交流,不提供多人交流功能。
Delivery(推广)
- 由于需要实验室提供对应的信息,推广需要从实验室出发,自上而下进行推广,并通过实验室之间的交流间进行流通,基本可以完成对在读生的推广。
- 在毕业生中的推广,需要实验室老师和公司等共同进行合作。
流程图
原型展示与介绍
登录与注册
-
采用了微信小程序设计,通过微信小程序界面点击进入。
-
账号登陆与注册可以直接使用微信号授权登录,也可以自己注册。
用户界面
-
列表界面
- 关注列表以好友列表形式设计,上方为搜索新好友的搜索框,可以在这个页面下进行好友分组管理。
-
个人信息界面
- 个人界面首页,上方有对应的标签,用于标记自己的研究方向和加入的实验室等,下方用于记录自己加入的实验室。
- 个人信息填写和管理修改的地方,标签用于记录不同用户的相关信息,如毕业生的去向和现状,在校生的研究方向和能力树。
- 实验室认证界面,认证后通过审核和验证才能真正加入对应实验室,并在个人信息首页下添加对应实验室界面入口。
实验室界面
-
对应实验室的管理界面,用于记录对应成员的个人界面,也可以设置自己对该实验室人员的信息权限。
关注好友
- 关注与私聊好友可以在对方的个人界面下进行,如果没有关注下方会有红心关注选项,关注后将隐藏不显示,如下图。
内推申请与信息
- 消息管理界面,内推消息和私聊等消息会在这里进行分类和提醒。
搜索功能
-
通过关键词进行用户和实验室搜索的界面
私聊功能
-
私聊进入后的聊天界面,本着实用主义,没有添加过多的操作,只能是图片和文字的交流,需要更深入联系可以自行商榷。
github 提交记录
总结
- 学习和熟悉了github协同管理上传等等操作。
- 对软件设计初步的过程设计有了一定的学习和了解,对软件工程NABCD模型有了更深入的了解和应用。
- 对一款软件需要考虑的用户需求和功能有了更多的了解,开拓了自己的思维方式,并提升了自己思考问题的全面性。
- 学习和了解了模型设计的各种软件和设计方法。
- 明白了分工合作和团队合作的重要性,提高了自己与队友的配合能力。
- 了解了软工设计从思路到实现的跨度,明白了脚踏实地的重要性。