服务外包系统-软件需求分析+原型
【整体背景】
随着公司业务的发展以及在 AI 和人工智能领域的持续深入,需要把部分工作外包。外包可以更加有效的利用社会资源,优化资源利用率。但在外包实践中,遇到诸如任务跟踪,人员管理,资源访问控制的问题,希望开发一套外包人员管理平台,更好地管理人员和任务。
【问题说明】
在外包的过程中,主要遇到了如下问题:
(1)外包人员来源比较广泛,通常一个任务会有不止一个接包公司承担,如何登记和管理这些人员是一个比较大的难题。
(2)外包人员工作时间千差万别,有些工作的工作时间并不确定,如何对这些人员进行考勤是也是一个问题。
(3)外包人员的工作内容的安排没有系统记录,存在不方便查找,归类,统计的问题。
(4)如何防止工作资料,工作成果被未授权人员访问也是一个比较大的难题。
【用户期望】
我们期望外包平台能够同时提供 PC 端,手机端访问,以方便我们的外包人员可以随时参与到外包任务,并及时反馈工作进度,最重要的,我们希望我们的资源能够被授权访问,我们的工作素材,工作成果都严格保密,具体来说,我们希望能够具有下面的功能。
人员管理
系统需要对这些人员提供下面的管理功能:
(1)外包人员信息登记;
(2)外包人员各项保密协议,合同签订情况登记;
(3)人员信息的查询和维护。
人员考勤
我们希望系统能够提供下面的功能:
(1)每个外包人员的开始工作时间,结束工作时间被记录;
(2)希望可以很方便的知道在一个时间区间内,我们外包的各项工作的大
致完成情况;
(3)在考勤时,系统需要对当前的用户进行必要的身份验证。
任务管理
我们希望系统能够可以外包任务管理方面,提供下面的功能:
(1)可以以项目的方式被管理,发包人员可以制定项目实施计划,指定参与人员,确定项目安全等级。
(2)接包人员可以登录到系统,通过人员识别验证后,查看分配到自己的任务,选择任务,开始工作。
(3)在任务完成之后,提交工作成果。
(4)任务的发包人员可以在系统上看到各个分发出去的任务状态,及时跟进各个任务的完成情况。
1、需求定义:(20分)
(1)根据上述描述,绘制系统工作上下范围图。(10分)
(2)绘制系统业务流程图。(10分)
2、结构化建模案例分析:(20分)
(1)绘制系统的整体功能结构图。(10分)
(2)根据上述描述,绘制完整的数据流图。(10分)
3、面向对象建模案例分析:(30分)
(1)绘制系统顶层用例图。(10分)
(2)绘制系统细化完整用例图。(10分)
(3)分析系统类模型,找出类之间的关系并画出类图。(10分)
4、系统原型展示:根据你的类图,开发系统原型,并录制视频或撰写文档展示说明。(30分)
(1)根据类图,用源代码定义类的变量和方法名(具体的方法体不用写);
Staff.java:
package staffs; public abstract class Staff { //外包人员抽象类 private String name; private String password; } Sender.java: package staffs; import task.Task; public class Sender extends Staff { //发包人员类 public Sender(){ super(); } public Task sendTask() {//发布任务 return new Task(); } public void showTaskState() {//查看任务状态 } }
Receiver.java:
package staffs; public class Receiver extends Staff { //接包人员类 public Receiver() { super(); } public void receiveTask() {//接收任务 } public void submitTask() {//提交任务成果 } }
Task.java:
package task; public class Task { //任务类 private String task_name; //任务名称 private String[] task_receiver; //任务接包人员 private int task_level; //安全等级 private String task_state; //任务状态 public String getTask_name() { return task_name; } public String[] getTask_receiver() { return task_receiver; } public int getTask_level() { return task_level; } public String getTask_state() { return task_state; } public void setTask_name(String task_name) { this.task_name = task_name; } public void setTask_receiver(String[] task_receiver) { this.task_receiver = task_receiver; } public void setTask_level(int task_level) { this.task_level = task_level; } public void setTask_state(String task_state) { this.task_state = task_state; } }
Validation.java:
package tools; public class Validation { //验证类 public boolean isPass(String name,String password) { //验证是否通过 return true; } }
(2)用HTML或者JSP等前端工具撰写页面原型,要求页面上元素完整,界面风格统一,页面之间跳转流畅,可以完整表现主业务流程执行顺序。
登录界面,点击登录按钮下方的超链接登录内置账号
首先登录发包人账号,发布任务界面中可以看到以发布的任务,点击上侧“发布新任务”按钮发布新任务
权限管理界面中,可以分配任务小组人员的权限
任务状态界面查看任务的状态
登录接包人员账号
在接收任务界面中接收任务
在提交任务界面中提交任务