沈阳理工大学高等职业技术学院学士学位论文
3 系统设计
3.1 系统结构设计
3.1.1 软件设计的原则
1、模块化
模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
下面五条标准可以评价一种设计方法定义有效的模块系统的能力。 (1)模块可分解性
如果一种设计方法提供了把问题分解为子问题的系统化机制,它就能降低整个问题的复杂性,从而可以实现一种有效的模块化解决方案。
(2)模块可组装性
如果一种设计方法能把现有的(可重用的)设计构件组装成新系统,它就能提供一种并非一切都从头开始做的模块化解决方案。
(3)模块可理解性
如果可以把一个模块作为一种独立单元(无需参考其他模块)来理解,那么,这样的模块是易于构造和易于修改的。
(4)模块连续性
如果对系统需求的微小修改只导致对个别模块,而不是对整个系统的修改,则修改所引起的副作用将最小。
(5)模块保护性
如果在一个模块内出现异常情况时,它的影响局限在该模块内部,则由错误引起的副作用将最。
采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。
2、抽象
人类在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。
16
沈阳理工大学高等职业技术学院学士学位论文
3、逐步求精
逐步求精是人类解决复杂问题时采用的基本技术,是许多软件工程技术的基础。可把逐步求精定义为:“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑”。
求精实际上是细化过程。要从在高抽象级别定义的功能陈述(或信息描述)开始。求精要求设计者细化原始陈述,随着每个后续求精(细化)步骤的完成而提供越来越多的细节。
4、信息隐藏
应用模块化原理时,自然会产生的一个问题是:“为了得到最好的一组模块,应该怎样分解软件”。信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。 3.1.2 系统层次结构
HIPO图是IBM公司发明的“层次图加输人/处理/输出图”的英文缩写。它既可以描述软件总的模块层次结构H图(层次图),又可以描述每个模块输入/输出数据/处理功能及模块调用的详细情况IPO图(也称IPO表)。HIPO图以模块分解的层次性以及模块内部输入、处理、输出三大基本部分为基础建立的。
本系统的最顶层的矩形框代表人事工资管理系统的主控模块,调用下层模块以完成全部管理功能;第二层的每个模块控制完成系统的一个主要功能,如此实现自顶向下逐步求精,系统的H图如图3.1所示。
图3.1 系统的H图
17
沈阳理工大学高等职业技术学院学士学位论文
H图只说明了系统由那些模块组成及其控制层次结构,并未说明模块间的信息传递及模块内部的处理。因此对一些重要模块还必须根据H图绘制具体的IPO表。用户和管理人员可利用IPO表编写、修改和维护程序。IPO表中包含的附加信息主要有系统名称、图的作者,完成的日期,本图描述的模块的名字,模块在层次图中的编号,调用本模块的模块清单,本模块调用的模块的清单、注释以及本模块使用的局部数据元素等。
信息查询的上层调用模块为人事管理,没有下层模块可调用,信息查询的IPO表如表3.1所示。
表3.1 信息查询的IPO表
系统名称:人事工资管理系统 模块名:信息查询 模块编号:2.1
上层调用模块:人事管理 输入数据:要查询的人事信息
设计者:杨凌霄 日期:2009-10-20
下层被调用的模块:无 输出数据:查询得到的结果
处理:根据查询的信息判断库中是否有相应的记录,如果有则显示查询的结果
修改信息的上层调用模块为人事管理,没有下层模块可调用,修改信息的IPO表如表3.2所示。
表3.2 修改信息的IPO表
系统名称:人事工资管理系统 模块名:修改信息 模块编号:2.3
上层调用模块:工资管理 输入数据:填写要修改的信息
设计者:杨凌霄 日期:2009-10-20
下层被调用的模块:无 输出数据:对数据库的更新结果
处理:判断修改信息的合法性,修改成功后显示更新的结果
3.2 设计阶段类图
在系统分析阶段,已经找出了主要的概念类和类的方法、类间的关系。到了系统设计阶段,需要从软件系统的角度来重新设计类图。分析阶段的类到了设计阶段有的可能变成一组类,有的可能消失。
18
沈阳理工大学高等职业技术学院学士学位论文
分析阶段的类图主要是用来描述现实世界中的问题;而设计阶段的类图主要是对解决方案进行描述。因此设计阶段的类图描述了软件的系统结构。创建设计类图的过程包括以下几步:
1.识别设计阶段出现的类,为这些类添加属性和方法。 2.建立类间关系,最终完成对属性和方法的细节描述。 系统设计阶段的类图如图3.2所示。
图3.2 系统设计阶段的类图
3.3 数据库设计
3.3.1 数据库概念设计
1.考评管理信息表:用于保存员工考评管理基本信息 2.员工档案信息表:用于保存员工档案的详细信息 3.员工工资信息表:用于保存员工工资的详细信息 4.奖罚管理信息表:用于保存奖罚管理信息 5.调动管理信息表:用于保存员工的调动管理信息
19
沈阳理工大学高等职业技术学院学士学位论文
3.3.2 数据库逻辑设计
用户信息表是用来存放管理员的详细信息的数据表,里面存有不同级别的用户,可以在系统中实现不同的功能操作,内容如表3.3所示。
表3.3 考评管理信息表
字段名
ID PID Pname Pdep PKpcontent PKpResult PKpscore PKpPeople PKkDate
类型
int varchar varchar varchar varchar varchar int varchar dateime
长度
4 10 10 10 20 10 4 10 8
主键否
主键 否 否 否 否 否 否 否 否
描述
系统编号 员工编号 员工姓名 员工部门 考评内容 考评结果 考评分数 考评人 考评日期
员工档案信息表:用于保存员工档案的详细信息,内容如表3.4所示。
表3.4 员工档案信息表
字段名
id
employeeID employeeName employeeSex employeeDept employeeBirthday employeeNation employeeMarriage employeeDuty employeePhone employeeAccession employeePay
类型
int varchar varchar varchar varchar datetime varchar varchar varchar varchar datetime decimal
长度
4 10 10 2 10 8 10 10 10 11 8 9
主键否
主键 否 否 否 否 否 否 否 否 否 否 否
描述
系统编号 员工编号 员工姓名 员工性别 员工部门 员工生日 员工民族 婚姻状况 职务名称 联系电话 就职日期 基本工资
20