面向对象软件工程实现工作流文档格式.docx

上传人:b****5 文档编号:19457865 上传时间:2023-01-06 格式:DOCX 页数:11 大小:40.68KB
下载 相关 举报
面向对象软件工程实现工作流文档格式.docx_第1页
第1页 / 共11页
面向对象软件工程实现工作流文档格式.docx_第2页
第2页 / 共11页
面向对象软件工程实现工作流文档格式.docx_第3页
第3页 / 共11页
面向对象软件工程实现工作流文档格式.docx_第4页
第4页 / 共11页
面向对象软件工程实现工作流文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

面向对象软件工程实现工作流文档格式.docx

《面向对象软件工程实现工作流文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象软件工程实现工作流文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

面向对象软件工程实现工作流文档格式.docx

对象(Object)

对象(Object)从不同的角度有不同的含义。

从所面对的问题论域而言,对象是指现实世界中的一个事物,是在建立系统模型中与目标有关的有待抽象的事物,它有自己的静态特征和动态特征。

从系统的建模和实现而言,对象描述客观事物的一个实体,是构成系统的基本单元,它由一组属性和一组服务(操作)组成。

系统的服务功能是通过新对象的建立和对象之间的消息(Message)通信来实现的。

1.5.2. 

类(Class)

类(Class)是一组具有相同属性和相同操作的对象的集合。

类是对象的抽象,它给出了属于该类的全部对象的抽象定义,包括类的属性、服务和其他性质。

一个具体的对象只是类的一个实例(Instance)。

1.5.3. 

封装(Encapsulation)

封装(Encapsulation)是面向对象方法的一个重要原则。

封装是指把对象的属性和操作结合在一起,构成一个独立的对象,它的内部信息对外界是隐蔽的,不允许外界直接存取对象的属性,而只能通过有限的接口与对象发生联系,对于对象的外界而言,只需要知道对象所表现的外部行为(接口),不必了解对象行为的内部实现细节。

封装体现了面向对象方法的“信息隐蔽与局部化”原则。

1.5.4. 

继承(Inheritance)

继承(Inheritance)是指子类(特化类、派生类)可以自动拥有父类(基类、泛化类、超类)的全部属性和服务。

在面向对象方法中的继承机制,使得子类可以自动地拥有父类的全部属性和服务。

继承简化了对现实世界的认识和描述。

在定义子类时,不必重复定义那些已经在父类中定义的属性和服务,只要声明自己是某个父类的子类就可以了,把精力集中于定义本子类所特有的属性和服务上。

继承提高了软件的可复用性。

同时继承也可以被传递。

1.5.5. 

消息(Message)

消息(Message)是指对象之间在交互中所传送的通信信息。

通常,一个对象向另一个对象发消息请求服务,接受消息的对象响应该消息,激发所要求的服务操作,并把操作的结果返回给请求服务的对象。

一个消息应当包含以下信息:

消息名、接受消息的对象的标识、服务标识、输入信息、回答信息。

面向对象技术中封装机制使得对象各自独立,各司其职。

对象之间通过消息相互联系、互发消息、响应消息、协同工作,实现系统的各种服务功能。

1.5.6. 

结构和连接(StructureandConnection)

世界万物都不是孤立的、互不相关的,而是彼此联系的,表达客观事物的对象之间也存在着联系。

对象之间的联系常见的有:

分类关系(一般与特殊的关系)、组成关系(部分与整体的关系)、对象属性之间的静态的联系以及对象行为的动态联系。

在面向对象方法中通常采用以下的结构和连接表现这些联系:

(1)分类结构(ClassificationStructure):

它是对象抽象的基础。

分类结构表现的是事物的一般与特殊的关系,即“akindof”或“isa”关系。

在面向对象的术语中我们采用泛化(Generalization)和特化(Specialization)联系。

(2)组装结构(CompositionStructure):

它表示对象类之间的组成关系,即:

部分与整体的关系,部分对整体是“apartof”关系,整体对部分是“hasa”关系。

同时组装结构体现了面向对象方法的聚合(Aggregation)原则。

(3)实例连接(InstanceConnection):

它表现了对象之间的静态联系,它是通过对象的属性来表现的对象之间的依赖关系。

在面向对象的术语中常把对象之间的实例连接称为链接(Link),而把存在实例连接的对象类之间的联系称为关联(Association)。

实例连接是从一个实例集合到另一个实例集合的映射。

实例连接可以发生在两个对象之间,也可以发生在一个对象类的不同实例集合之间。

另外实例连接还有多种类型:

一对一的连接、一对多的连接、多对多的连接、0对一的连接、0对多的连接等。

(4)消息连接(MessageConnection):

它是对象之间的通信联系。

一个对象需要另一个对象的服务,便向它发送请求服务的消息,接受消息的对象响应消息,触发所要求的服务操作。

当然也可以不响应,然后触发不响应的操作服务。

这种对象之间的联系称为消息连接,表现了对象行为的动态联系。

所以两个对象之间要发生消息,就必须这两个对象之间存在交互。

1.5.7. 

多态性(Polymorphism)

多态性(Polymorphism)是指在基类中定义的属性和服务被其子类继承后,可以具有不同的数据类型或表现不同的行为。

在体现一般与特殊关系的一个类层次结构中,不同层次的类可以共享一个方法或操作的名字,但是却有各自不同的实现过程。

当一个对象接收到一个消息请求进行某一个服务的时,将根据该对象的所属类,动态地选用该类中定义地操作。

这样可以给系统设计提供了灵活性,减少信息冗余,而且也提高了软件地可复用性和可扩充性。

2人事管理系统实现过程

2.1物理实现

PAMIS系统开发工具选用Delphi6.0,主要是因为Delphi在开发数据库及设计应用程序界面方面有着不同寻常的优势:

开发简单、设计方便、帮助系统完善。

并且提供了大量的控件,可用于设计界面和实现各种功能,更主要原因Delphi支持面向对象的主要概念。

在数据库方面开发工具选用SQLServer2000,因为它提供了强大的查询,存储等功能,且操作方便。

运行操作系统一般选用Windows2000及以上版本,并配有打印机,或网络共享打印机。

该数据库(PersonnelManagementSystem)共分3个表,各表的字段如下:

1)员工信息表(员工号、姓名、性别、民族、出生年月、学历、职务、部门、权限、工作时间、联系方式、备注)

2)员工工资表(员工编号、员工姓名、基本工资、加班费用、出差补助、个人奖金、迟到扣款、旷工扣款、处罚金额)

3)员工考勤表(员工编号、本月天数、公休假天数、应出勤天数、请假天数、请假日期、节假日加班、其他加班、加班天数)

2.2软件实现

2.2.1窗口设计

Delphi的窗口本身就是一个类,并且每一个窗体类创建了一个默认的全局对象,并且都封装在.pas的模块中。

根据对象模型和分析模型,一个窗口完成一个功能,并在窗口中放置一些文本框供用户自己输入信息,而组合框可以提供用户自己选择相应信息,以及一些按钮,来实现各种功能。

通过点击按钮,相当于实现面向对象中消息的传递,然后触发相应按钮的Click事件,完成该功能。

这样就使得整个操作,在消息的控制下有条不紊的完成。

某一事件得不到消息的时候,就不触发该事件,处于休眠状态。

图12就是登记人事档案信息的窗口设计。

另外通过采用分页形式登记各类信息。

关于数据库方面的窗口设计,也是通过采用文本框,显示相应的记录,并通过按钮『第一位』,『上一位』,『下一位』,『最后一位』来选择所需要人员信息,并且通过各种窗口中按钮,完成对记录的增加、删除、修改等操作。

此外由于PAMIS信息系统需要频繁的访问数据库中的记录,为此单独建立一个数据模块,在其他窗口需要访问数据库数据的时候只要引用该模块就可以了。

要使用或访问此数据库的所有应用程序的名称和版本号:

1)登录

2)浏览员工信息

3)浏览员工工资

4)浏览考勤信息

5)修改员工信息

6)修改员工工资

7)修改考勤信息

8)删除员工信息

9)删除员工工资

10)删除考勤信息

2.2.2数据库设计

对数据库的设计,主要还要根据人事档案信息这个对象来具体考虑的。

根据人事档案信息的各个属性,我们采用一人一表的方式登记和保存各种信息。

并且将数据库的冗余度降为最低,本文依照第三范式来设计数据库。

将复杂关系拆分成几个较简单的关系。

最后拆分成7张表格,基本信息表,工作经历表,联系方式表,受教育情况表,职务情况表,业绩情况表,合同情况表(详见4.3.2),尽可能减少数据的冗余,节省建库的工作量和磁盘的存储空间。

用户在使用PAMIS系统的数据结构形式,都可以通过两个或两个以上的数据库经过关联后得到。

这一方面可以通过设计SQL查询语句实现表之间的关联,获取所要查询的记录集。

另一方面也可以通过数据库管理系统,本文采用SQLServer2000系统,来实现数据的关联。

通过设计关系图,设计各表格之间的关系,可以选择“级联更新相关字段”和“级联删除相关字段”,以期达到数据库参考完整性。

2.2.3前后台操作关联设计

在窗口设计和数据库设计的同时,下面我们来考虑一下前后台操作的关联设计,也就是如何对数据库中数据的操作与窗口对数据的编辑联系起来。

首先,在PAMIS系统实现中,可以运行Delphi开发系统提供的数据库工具访问数据,主要是运用了BDE的Query和DataAccess的DataSource控件。

另外Delphi系统自己也带有数据库访问控件(DBNavigator)控件,可以直接对数据库中的记录进行添加、删除、修改等操作。

该方法容易实现,操作方便,但灵活性比较差,而且界面也不较难看,介于此,本系统不采用Delphi系统提供的控件。

自己编写代码实现访问数据库的记录的控件。

然后,可以使用公用数据变量方式来实现前后台操作的关联。

通过定义数组变量,首先依据给定的条件,访问数据库,建立数据记录,并将记录赋值给数组变量,然后再将数组的值赋给相应的窗体中的控件(文本框),设计向窗体界面及对应数据变量进行添加、修改、删除、查询浏览等操作,最后将数据转换成符合数据表结构的格式,存入数据表中。

在PAMIS系统实现过程,基本上使用定义公用变量来实现数据的转换,虽然灵活性较好,易于实现复杂的数据表格的设计,但其设计工作量比较大,数据结构也比较复杂。

在完成系统的设计之后,我也曾想过,能否使用一个公用的数据类模块的方式来实现。

这样可以提高代码的重用性。

类模块的设计依据的还是面向对象分析中所建立的模型。

其设计思想主要是:

依据对象模型,选择确定类模块中的属性,依据动态行为模型,设计类模块的服务即方法和事件。

在PAMIS系统中类模块的属性就是人事档案信息类的属性,此外还需要加入:

数据库的工作区(动态数组),建立SQL查询的字符串和返回查询后得到的记录数三个。

所加入的服务,因为主要是建立所需要的代码记录集,要将指针移到指定位置,实现数据间的转换,所以加入移动记录的指针所需要的MoveFirst、MoveLast、MoveNext、MovePrevious和MoveN,以及add、delete、update等方法。

这样可以使设计更加简化。

但系统要使用该类模块的时候,只要在相应的程序中说明它的一个实例名,便可以直接引用。

这很好的体现的面向对象的封装的思想,也就只要知道它所具有的属性和方法,而无需知道其具体实现过程。

若要增加属性或方法,也就只要对类模块进行适当的修改就可以,从而使得整个系统也便于维护。

2.3约定

该数据库(PersonnelManagementSystem)的表及各个字段的约定如下:

1)员工信息(员工号、姓名、性别、民族、出生年月、学历、职务、部门、权限、工作时间、联系方式、备注)

Users(user_iduser_nameuser_sexnationalbirthdayeducationpositiondepartmentspermissionsworktimecontactremarks)

2)工资信息(员工编号、员工姓名、基本工资、加班费用、出差补助、个人奖金、迟到扣款、旷工扣款、处罚金额)

Wage_information(user_iduser_namebasic_wageovertime_coststravel_grantsindividualbonuslate_chargeabsenteeism_chargepenalty_amount)

3)考勤信息(员工编号、员工姓名、本月天数、公休假天数、应出勤天数、请假天数、请假日期、节假日加班、其他加班、加班天数)

Attendance_information(user_iduser_namedaysnumrest_dayattendance_daysLeavedaysLeave_dateholidayoverworkother_overtimeovertime_days)

2.4专门指导

如果这些指导的内容篇幅很长,列出可参阅的文件资料的名称和章条。

使用SQL语言对数据库及表的操作如下:

1)创建数据库使用格式:

CREATEDATABASE数据库名

2)使用数据库使用格式:

USEDATABASESET数据库名

3)删除数据库使用格式:

DROPDATABASE数据库名

4)表的创建使用格式:

CREATETABLEtable_name

(column_name1data_type[Null/NOTNull]

[PRIMARY/UNIQUE]

Column_name2data_type[]

5)删除关联和表使用格式:

DROPTABLEtable_name

6)查询表中所有的列使用格式:

SELECT*FROM表名

3结构设计

3.1概念结构设计

每一个表所生成的SQL脚本如下:

1..

CREATETABLE`users`(

`user_id`int(10)defaultNULLCOMMENT'

员工号'

`user_name`varchar(50)defaultNULLCOMMENT'

姓名'

`user_sex`int(10)defaultNULLCOMMENT'

性别'

`national`varchar(50)defaultNULLCOMMENT'

民族'

`birthday`int(10)defaultNULLCOMMENT'

出生年月'

`education`varchar(50)defaultNULLCOMMENT'

学历'

`position`varchar(50)defaultNULLCOMMENT'

职务'

`departments`varchar(50)defaultNULLCOMMENT'

部门'

`permissions`int(10)defaultNULLCOMMENT'

权限'

`worktime`int(10)defaultNULLCOMMENT'

工作时间'

`contact`varchar(50)defaultNULLCOMMENT'

联系方式'

`remarks`tinytextCOMMENT'

备注'

)ENGINE=InnoDBDEFAULTCHARSET=gbk

2.

CREATETABLE`wage_information`(

员工编号'

员工姓名'

`basic_wage`floatdefaultNULLCOMMENT'

基本工资'

`overtime_costs`floatdefaultNULLCOMMENT'

加班费用'

`travel_grants`floatdefaultNULLCOMMENT'

出差补助'

`individualbonus`floatdefaultNULLCOMMENT'

个人奖金'

`late_charge`floatdefaultNULLCOMMENT'

迟到扣款'

`absenteeism_charge`floatdefaultNULLCOMMENT'

旷工扣款'

`penalty_amount`floatdefaultNULLCOMMENT'

处罚金额'

)ENGINE=InnoDBDEFAULTCHARSET=gbk

3.

CREATETABLE`attendance_information`(

`daysnum`int(10)defaultNULLCOMMENT'

本月天数'

`rest_day`int(10)defaultNULLCOMMENT'

公休假天数'

`attendance_days`int(10)defaultNULLCOMMENT'

应出勤天数'

`Leave_days`int(10)defaultNULLCOMMENT'

请假天数'

`Leave_date`int(10)defaultNULLCOMMENT'

请假日期'

`holidayoverwork`int(10)defaultNULLCOMMENT'

节假日加班'

`other_overtime`int(10)defaultNULLCOMMENT'

其他加班'

`overtime_days`int(10)defaultNULLCOMMENT'

加班天数'

3.2物理结构设计

●内存设计:

对于windows操作系统下的数据库,由于在正常情况下SQL对SGA的管理能力不超过1.7G。

所以总的物理内存在4G以下。

SGA的大小为物理内存的50%—75%。

对于64位的小型系统,SQL数据库对SGA的管理超过2G的限制,SGA设计在一个合适的范围内约物理内存的50%—70%。

交换区设计:

当物理内存在2G以下的情况下,交换分区swap为物理内存的3倍,当物理内存>

2G的情况下,swap大小为物理内存的1—2倍。

●数据库文件放在磁盘上,因此磁盘的良好使用和布局很重要。

数据文件大小和I/O不能超过磁盘的大小和I/O。

多个容量小的磁盘比用一个大的磁盘效果更好,因为可以进行更高级的并行I/O操作,使用RAID可以改善数据的可靠性,而I/O的性能又取决于RAID配置的方式。

综合考虑存储磁盘的最小字节、I/O的输出和响应时间。

SQL在运行期间向数据库高速缓存读写数据,高速缓存命中表示信息已在内存中,高速缓存失败意味着Oracle必需进行磁盘I/O。

保持高速缓存失败率最小的关键是确保高速缓存的大小。

3.3数据字典设计

数据字典提供一个可自定义的不依赖于应用程序的存储区域,在这个区域中,可以创建扩展的字段属性集和描述数据的内容和外观。

数据字典包括数据项、数据结构、数据流、数据存储和处理过程五个部分,包含每个字段的数据类型和在每个表内的主外键。

数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,

取值范围,取值含义,与其他数据项的逻辑关系}

数据结构描述={数据结构名,含义说明,组成:

{数据项或数据结构}}

数据流描述={数据流名,说明,数据流来源,数据流去向,

组成:

{数据结构},平均流量,高峰期流量}

数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,  

{数据结构},数据量,存取方式}

处理过程描述={处理过程名,说明,输入:

{数据流},输出:

{数据流},

处理:

{简要说明}}

3.4安全保密设计

本系统的权限设计在数据库的users的permissions字段有体现,三种不同的权限用不同的数字id代表,分别为3,2,1

职员权限:

可以浏览公司概况、自己的人员信息、看自己的工资、考勤情况

经理权限:

可以浏览公司概况、自己部门(包括自己)人员信息和考勤情况

管理员权限:

可以浏览公司概况

浏览所有的人员信息

查看所有员工工资信息和考勤情况

添加新职员(添加时同时填写该员工信息)

添加员工工资(就是录入一个员工的工资)

添加员工考情情况(录入一个员工的考勤情况)

修改公司所有员工权限

修改公司所有员工信息

修改公司所有员工工资

修改公司所有员工考勤

删除公司所有员工权限

删除公司所有员工信息

删除公司所有员工工资

删除公司所有员工考勤

·

数据的备份

Mysql为一个开源型数据库,具有多种备份工具;

使用mysqldump备份和拷贝数据库

当你使用mysqldump程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。

换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。

你可以将整个数据库倾倒进一个单独的文本文件中,如下:

%mysqldumpsamp_db>

/usr/archives/mysql/samp_db.1999-10-02

输出文件的开头看起来象这样:

#MySQLDump6.0##Host:

loca

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1