当前位置:文档之家› 软件工程课程设计项目管理系统

软件工程课程设计项目管理系统

软件工程课程设计报告

( 2014 -- 2015 学年 第二学期)

课程名称: 软件工程课程设计 题 目: 软件项目管理系统 院 系: 班 级: 组 号: 组 长: 组 员: 指导教师: 设计周数: 两周

小组成绩:

日期:2015 年 7月 17日

《软件工程》课程设计

任务书

一、目的、要求

通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。

具体如下:

1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编

码和测试方面的知识;

2.熟悉自动化的软件开发工具Rational Rose,并将其运用于软件开发的全过程;

3.进一步加强和提高软件工程文档的编写能力;

4.培养协作能力和团队精神。

二、主要内容

1.运用面向对象方法进行软件项目管理系统的需求分析与设计;

2.建模语言采用UML,以Rational Rose为建模工具,进行系统的静态建模和动态建模;

3.利用对象模型自动生成数据模型,自动建立数据库;

4.使用Java语言对系统的主要模块进行界面层的设计并给出实现;

5.撰写课程设计报告。

三、任务分配

四、进度计划

五、设计成果要求

1.建立系统分析模型与设计模型;

2.初步建立系统原型,实现关键的功能;

3.编写课程设计报告。

六、考核方式

1.系统演示及讲解

占50%。

2.设计报告

占50%。

指导教师:

日期:2015 年7 月2 日

《软件工程》课程设计

成绩评定

一、指导教师评语

二、成绩

指导教师:

日期:2015 年7 月17 日

摘要:

“按时、保质地完成项目”大概是每一位项目经理最希望做到的。但工期托延的情况却时常发生。因而合理地安排项目时间是项目管理中一项关键内容,它的目的是保证按时完成项目、合理分配资源、发挥最佳工作效率。它的主要工作包括定义项目活动、任务、活动排序、每项活动的合理工期估算、制定项目完整的进度计划、资源共享分配、监控项目进度等内容。

时间管理工作开始以前应该先完成项目管理工作中的范围管理部分。如果只图节省时间,把这些前期工作省略,后面的工作必然会走弯路,反而会耽误时间。项目一开始首先要有明确项目目标、可交付产品的范围定义文档和项目的工作分解结构(WBS)。由于一些是明显的、项目所必须的工作,而另一些则具有一定的隐蔽性,所以要以经验为基础,列出完整的完成项目所必需的工作,同时要有专家审定过程,以此为基础才能制定出可行的项目时间计划,进行合理的时间管理。

通过项目实际进度与预计时间花费对比,进而分析进度快慢,标注项目开发进度,及时地对时间延误的事件做出记录,反馈。开发人员可以随时关注自己的开发进度,管理人员可以得到项目宏观上的进度分析,对于严重延误时间的某个具体过程做出及时处理,不至于堆积最后严重延误进度。以此努力尽可能达到按照预计时间完成软件项目开发。

关键词:软件项目,资源,任务,进度,UML,Java EE

一、课程设计的目的与要求

1.1 课程设计的目的

通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。

具体如下:

1)学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码

和测试方面的知识;

2)熟悉自动化的软件开发工具Rational Rose,并将其运用于软件开发的全过程;

3)进一步加强和提高软件工程文档的编写能力;

4)培养协作能力和团队精神。

1.2 课程设计的要求

1)综合运用软件工程方法、技术和工具完成软件项目管理系统的分析与设计任务;

2)使用Rational Rose作为需求分析与设计的建模工具,要求进行静态建模和动态建模,并利用对

象模型自动生成数据模型,自动建立数据库;

3)对软件项目管理系统中关键的模块进行界面层的设计并给出实现,选择Java EE平台;

4)撰写课程设计报告。

二、设计正文

1.概述

1.1 系统开发的目的和意义

1)目的:本软件旨在帮助软件开发团队更好地规划,细化软件开发的每一步,在规定的时间内

做好项目,合理分配资源,发挥最佳工作效率。

2)意义:使开发人员可以随时关注自己的开发进度,使管理人员可以得到项目宏观上的进度分

析,尽可能按照预计时间完成软件项目开发。

1.2 系统开发环境及运行环境

1)操作系统:Windows 7及以上。

2)建模工具:IBM Rational Rose(Enterprise Edition).

3)数据库系统:MySQL和Navicat.

4)编程工具:Eclipse Java EE IDE for Web Developers.

5)开发语言:Java, JavaScript, JSP, HTML

2.系统需求分析

2.1 系统需求概述

2.1.1 功能需求

软件项目时间管理系统旨在为软件项目开发人员提供合理安排项目时间的功能,主要分为系统管理、用户管理、联系人管理、项目管理和任务管理。

a)系统管理

1)系统参数设定。管理员设定工作日天数和单个工作日的工作小时数,设置用户日志、用户日

志路径和问题跟踪单存储路径。

2)添加角色及设置权限。在角色管理部分,添加角色并设置其相应的管理权限。

3)删除角色。当系统不需要某角色时,可以对该角色进行删除。

b)用户管理

1)添加用户。创建新用户时,同时需要选定用户类型、设置用户密码、设定用户状态、填写联

系方式和Email以及添加个人简介。

2)启用用户。当用户状态为“暂停”时,对于项目中存在该用户的情况下,可以将其用户状态

开启为“启用”。

3)暂停用户。与启用用户功能相对应,当用户状态为“启用”时,对于项目中不存在该用户的

情况下,可以将其用户状态开启为“暂停”。

4)删除用户。从用户管理的用户列表里删除某用户的信息。

5)搜索用户。在用户管理的用户列表中搜索相关用户,可以查找到相关用户的所有信息。

6)用户日志。

c)联系人管理

1)添加联系人。在联系人管理内,可以实现添加联系人的功能,联系人的信息有姓名、用户ID、

联系方式、邮箱和用户角色。

2)删除联系人。

3)编辑联系人信息。

4)搜索联系人。输入联系人的姓名查找相关联系人,可以得到相关联系人的信息。

d)项目管理

1)查看项目。查看所有项目的开始时间、预期结束时间、项目进度、项目经理和项目状态。

2)新建项目。新建一个项目,需要设定项目名称、项目开始时间、项目预期结束时间、项目预

算、项目优先级、计划耗时(小时)和项目概述并选择项目经理。

3)搜索项目。用户可以搜索并查看某个项目的信息。

e)任务管理

1)查看任务。查看所有任务的开始时间、预期结束时间、任务进度、所属项目、任务状态及对

应的问题跟踪单。

2)查看问题跟踪单。查看所有问题跟踪单的问题单号、所属任务、创建时间、创建人和对应的

状态。

3)查看日志。

4)创建任务及对应的日志。新建一个任务,需要设定任务名称、任务状态、任务优先级、任务

进度并选择所属项目和判断是否是里程碑。另外,任务的详细信息包括任务开始时间、任务

结束时间、任务预期结束时间、预算指标(万元)、分配人力资源和任务概述。

5)创建问题跟踪单。新建一个问题跟踪单,需要设定创建人、选择问题处理人以及添加问题概

述。

6)处理问题跟踪单。管理界面内包括所有问题跟踪单,每个问题跟踪单包括问题单号、所属任

务、创建时间、创建人和对应的处理状态。

2.1.2 性能需求

系统的用户访问量、系统处理能力、业务处理能力、系统响应时间、容灾需求性能指标和网络流量等主要性能指标均满足小型软件项目团队的需要。

2.2 用例图

系统的外部角色有:管理员(ADMIN)、项目经理和项目成员。

主要用例有:系统管理,用户管理,项目管理,任务管理和联系人管理。

2.2.1 系统管理

图 1 “系统管理”用例图

1)“系统管理”用例:用于设置系统的参数和管理角色。

前置条件:显示系统管理界面。

主事件流:用户点击界面功能按钮,系统获取用户点击按钮的操作类型。

辅事件流:用户未点击任何功能按钮,系统无响应操作。

后置条件:系统进入相应的功能界面。

2)“系统参数设定”用例:设定系统某人的工时数据。

前置条件:显示系统管理参数设定界面。

主事件流:管理员输入工作日天数、日工作小时数、用户日志、用户日志路径和问题跟踪单存储路径,系统获取并进行系统参数设置。提示参数设置成功,返回系统管理界面。

辅事件流1:管理员未输入工作天数或工作小时数等参数。系统显示信息:输入参数为空将采用默认参数。

辅事件流2:管理员输入不合法的工作天数或工作小时数等参数。系统显示错误信息:输入参数不合法。

后置条件:设定工作日天数和日工作小时数等参数成功。

3)“添加角色”用例:管理员用户可以添加本系统用户的角色。

4)“删除角色”用例:管理员用户可以删除本系统用户的角色。

5)“设置权限”用例:给添加的角色设置对系统访问的权限。

前置条件:显示系统管理的用户角色管理界面。

主事件流:用户点击角色后面的设置权限按钮,系统获取用户的点击操作,进行响应,用户对角色权限进行选择设置,系统对用户操作进行监听并保存设置。

辅事件流:用户未点击角色后面的设置权限按钮,系统无响应。

后置条件:角色权限设置成功。

2.2.2 用户管理

图 2 “用户管理”和“项目管理”用例图

1)“用户管理”用例:可以对用户进行添加、删除、启用、暂停和搜索等一系列操作。

前置条件:显示用户管理界面。

主事件流:用户点击界面功能按钮,系统获取用户点击按钮的操作类型。

辅事件流:用户未点击任何功能按钮,系统无响应操作。

后置条件:系统进入相应的功能界面。

2)“添加用户”用例:用户可以添加项目用户成员。

3)“设定角色”用例:给添加的用户设定用户角色。

前置条件:用户进行添加用户,要对用户角色进行选择。

主事件流:用户点击设定角色的下拉列表,系统从系统参数中获取角色列表并显示在下拉列表中,用户选择要设定的角色,系统获取用户选择的角色并显示在界面中。

辅事件流:用户未选择角色,提交时系统显示消息:用户角色不能为空。

后置条件:根据用户角色赋予给用户相应的权限。

4)“搜索用户”用例:在用户管理的用户列表中搜索相关用户,可以查找到相关用户的所有信息。

5)“启用用户”用例:将用户属性的状态由false改为true,表示用户参与某项目。

6)“暂停用户”用例:将某用户的状态从true设置回false。

7)“删除用户”用例:从员工信息的用户列表里删除某用户的信息。

8)“查看用户日志”用例:查看某用户对系统的操作的日志文件。

2.2.3 项目管理

1)“项目管理”用例:用户可以对项目进行创建,查看等一系列操作。

前置条件:显示项目管理的界面。

主事件流:用户点击界面功能按钮,系统获取用户点击按钮的操作类型。

辅事件流:用户未点击任何功能按钮,系统无响应操作。

后置条件:系统进入相应的功能界面。

2)“创建项目”用例:用户可以新建一个项目。

前置条件:用户在项目管理界面点击创建项目按钮,进入创建项目界面。

主事件流:用户按提示输入项目信息,系统获取用户输入的信息,进行校验。

辅事件流:用户未输入必须的项目信息,系统显示信息:**不能为空。

后置条件:新建的项目放入项目管理的项目列表。

3)“查看项目”用例:用户可以查看所有项目的信息。

4)“查看任务”用例:用户可以查看项目的任务的信息。

5)“搜索项目”用例:用户可以搜索并查看某个项目的信息。

图 3 “任务管理”和“联系人管理”用例图

2.2.4 联系人管理

1)“联系人管理”用例:用户可以查看到联系人列表,还可以进行添加,删除,编辑联系人等操作。前置条件:显示联系人界面。

主事件流:用户点击界面功能按钮,系统获取用户点击按钮的操作类型。

辅事件流:用户未点击任何功能按钮,系统无响应操作。

后置条件:系统进入相应的功能界面。

2)“添加联系人”用例:用户可以添加自己的联系人,用于合作项目时可以相互联系。

3)“删除联系人”用例:用户可以删除一些联系人。

4)“编辑联系人信息”用例:用户可以修改某些联系人的信息。

2.2.5 任务管理

1)“任务管理”用例:用户可以对任务进行创建任务,查看任务,创建任务日志,查看任务日志,创建问题跟踪单,处理问题跟踪单等一系列操作。

前置条件:显示任务管理界面。

主事件流:用户点击界面功能按钮,系统获取用户点击按钮的操作类型。

辅事件流:用户未点击任何功能按钮,系统无响应操作。

后置条件:系统进入相应的功能界面。

2)“创建任务”用例:对某项目创建一个新任务。

前置条件:用户点击创建任务功能按钮,进入创建任务界面。

主事件流:用户按提示输入任务信息,系统获取用户输入的信息,进行校验。

辅事件流:用户未输入必须的任务信息,系统显示信息:**不能为空。

后置条件:新建的任务放入相应项目的任务列表。

3)“查看任务”用例:用户可以查看自己的所有任务,项目经理可以查看所有人的任务。

4)“查看任务日志”用例:用户可以查看任务的任务日志。

5)“创建问题跟踪单”用例:用户可以创建自己任务出现的问题的跟踪单。

6)“处理问题跟踪单”用例:用户可以根据问题跟踪单的问题做出相应的处理。

2.3 类图

图 4 类图

Project:项目类,主要属性有:项目ID(pID),任务列表(tasklist),和项目持续时间(duration);主要方法有查看任务(displayTask),创建任务(createTask),查看任务日志(displayTasklog),创建问题日志(createProblemlog),处理问题日志(dealwithProblemlog)。

ProjectManagement:项目管理类,主要属性有:项目列表(projectlist);主要方法有:创建项目(creatProject),查看项目(displayProject)和搜索项目(searchProject)。

Task:任务类,主要属性有:任务ID(tID),日志路径(logpath),问题日志列表(problemloglist)和员工列表(stafflist);主要方法有:创建任务日志(createTasklog),查看任务日志(displayTasklog),创建问题日志(createProblemlog),处理问题日志(dealwithProblemlog)。

TaskManagement:任务管理类,主要方法有:创建任务(createTask),查看任务(displayTask),创建任务日志(createTasklog),查看任务日志(displayTasklog),创建问题日志(createProblemlog),

处理问题日志(dealwithProblemlog)。

ProblemLog:问题日志类,主要属性有:问题(problem)。

Userpublic:用户公用信息类,主要属性有:用户ID(userid),姓名(name),电话(phone),邮件(E-mail)。

Contacts:联系人类,主要属性有:联系人列表(stafflist);主要方法有:添加联系人(add),删除联系人(delete),编辑联系人(edit)。

User:用户类,继承Userpublic,主要属性有:联系人(contacts),用户角色(userrole),密码(password),用户状态(userstate),用户日志路径(userlogpath);主要方法有:获取角色列表(getRole)。

MemberInformation:员工信息类,主要属性有:用户列表(userlist),员工人数(staffnum);主要方法有:添加用户(addUser),启用用户(startUser),删除用户(deleteUser),暂停用户(pauseUser),搜索用户日志(searchUserlog)。

Role:角色类,主要属性有:角色名(rolename),权限名(powername)。

SystemSetting:系统参数设置类,主要属性有:工作天数(duration-day),工作小时数(duration-hour),角色列表(rolelist);主要方法有:获取角色(getRole),添加角色(addrole),删除角色(deleteRole)。

2.4 顺序图

1)设置系统参数的顺序图如图5所示。

( )

图 5 设置系统参数

2)设置角色和权限的顺序图如图6所示。

: ADMIN

图 6 设置角色和权限

3)创建项目的顺序图如图7所示。

图 7 创建项目

4)查看和搜索项目的顺序图如图8所示。

图 8 查看和搜索项目

5)创建任务的顺序图如图9所示。

图9 创建任务

6)查看任务的顺序图如图10所示。

ID)

图10 查看任务

7)创建任务日志的顺序图如图11所示。

图11 创建任务日志

8)查看任务日志和创建问题跟踪单的顺序图如图12所示。

图12 查看任务日志和创建问题跟踪单9)添加用户的顺序图如图13所示。

图13 添加用户

10)添加联系人的顺序图如图14所示。

图14 添加联系人

3.系统总体设计

3.1 系统体系结构设计

系统可分解成三层结构,分别是表示层、业务逻辑层和数据访问层,这样有利于系统的开发、维护、部署和扩展。系统体系结构图(使用包图的形式描述)如图15所示。

分层是为了实现“高内聚、低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,易于延展,易于分配资源。

表示层:负责直接跟用户进行交互,一般也就是指系统的界面,用于数据录入,数据显示等。意味着

只做与外观显示相关的工作。

业务逻辑层:用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确及数据类型验证;用户的权限的合法性判断等等,通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。

数据访问层:顾名思义,就是用于专门跟数据库进行交互。执行数据的添加、删除、修改和显示等。需要强调的是,所有的数据对象只在这一层被引用,如System.Data.SqlClient等,除数据层之外的任何地方都不应该出现这样的引用。

图15系统体系结构图

3.2 设计问题域子系统

图16 问题域子系统

各个类对应的具体操作如下:

ProjectManagement为项目管理类,其操作有创建项目,根据项目ID搜索项目,获得所有项目,根据项目名称搜索项目,根据名字模糊搜索项目,更新项目状态,maxtime为辅助方法,获取参数最大值。

TaskManager为任务管理类,其操作有对任务的创建,编辑,搜索,搜索全部,还有给任务创建问题跟踪单以及搜索全部问题跟踪单。

MemberInformation类有初始化、获取系统参数、设置系统参数、添加用户,删除用户、搜索用户角色、搜索用户日志主要操作。

WorktimeInfomation位系统管理类,其操作有初始化、添加用户角色、删除用户角色、获取系统参数、设置系统参数操作函数。

FileOperation为对文件的读写类,其操作有对问题件的读和写。

其他都是对象类,其本上没有变化。

各类中的关系如上图的类图所示。

3.3 设计数据管理子系统

图17 数据库表

1)myuser表:存储系统用户信息,具体表结构如表一所示。

表一myuser表结构

2)contacts表:存储联系人信息,具体表结构如表二所示。

表二contacts表结构

3)userTask表:存储员工及对应的任务信息,具体表结构如表三所示。

表三userTask表结构

4)project表:存储项目信息,具体表结构如表四所示。

5)problemlog表:存储联系人信息,具体表结构如表五所示。

6)role表:存储角色信息,具体表结构如表六所示。

7)task表:存储任务信息,具体表结构如表七所示。

8)worktime表:存储工作时间信息,具体表结构如表八所示。

表八userTask表结构

3.4 设计人机交互子系统

人机交互子系统包括系统登录界面、用户操作主界面和一般子功能界面。

图18 系统登录界面

图19 用户操作主界面

相关主题
文本预览
相关文档 最新文档