软件工程习题解答 - 图文

更新时间:2024-06-09 23:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

期考试题题型构成:选择题20道 40分 填空题 10道 20分 应用题 5道 40分

软件工程习题解答

一、软件生存周期各阶段的基本任务? 1. 问题定义:

(1)回答要解决的问题是什么。

(2)系统分析员应该提出关于问题性质、工程目标和规模的书面报告。

(3)经过和用户讨论,澄清含糊不清的地方,改正理解不正确的地方,得出一份双方都满意的文档。 (4)问题定义是软件生命周期中最简短的阶段。 2.可行性研究:

(1)前一阶段定义的问题有可行的解决办法吗?

(2)系统分析员要进行一次大大压缩和简化了的系统分析和设计。导出高层逻辑模型(用数据流图表示)。确定工程规模和目标,准确估计系统的成本和效益。

(3)使用部门的负责人根据可行性研究的结果决定是否继续进行该工程的开发工作。 3.需求分析:

(1)主要确定目标系统必须具备哪些功能。

(2)系统分析员和用户密切配合,充分交流,得出经用户确认的系统逻辑模型(数据流图、数据字典、算法描述)。 4.总体设计:

(1)回答如何解决问题。 (2)系统分析员

应使用系统流程图或其他工具描述每种可能系统; 估计每种方案的成本和效益。 推荐一较好的系统──有其详细计划。 设计软件的结构(用层次图或结构图描述)。 5.详细设计:

(1)回答应该怎样具体地实现这个系统。

(2)设计出程序的详细规格说明(用HIPO层次图加输入/处理/输出图)或PDL语言(过程设计语言)。 6.编码和单元测试:

(1)写出正确的容易理解,容易维护的程序模块。 (2)程序员:

选取一种适当的用高级语言书写程序(或汇编语言)。 仔细测试编写出的每一个模块。 7.综合测试:

(1)通过各种类型的测试,使软件达到预定的要求。 (2)最基本的测试是集成测试和验收测试方法。

集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的过程中对程

序进行必要的测试。

验收测试是按照需求规格说明书的规定,由用户对目标系统进行验收。 (3)用正式文档将测试计划、详细测试方案以及实际测试结果保存。 (4)以正式或非正式的方式对用户进行培训。 8.软件维护:

(1)使系统持久地满足用户的需要。 (2)四类维护:

改正性维护:诊断和改正使用过程中发现的软件错误。 适应性维护:修改软件以适应环境变化。 完善性维护:根据用户要求,改进或扩充软件。 预防性维护:修改软件为将来的维护预先准备。

第二章 可行性研究

1.已知某软件包具有三个主要功能:输入数据、更新数据、产生报表。根据历史资料记载,实现每个功能所需源代码行数估算如下:

①输入数据: a=l00 m=200 b=300 ②更新数据: a=200 m=300 b=400 ③产生报表: a=300 m=400 b=500

三个功能的软件生产率都是 200行/人月,每行成本 lO元/行,请用LOC技术估算出该软件包的成本和工作量。 解:

2.某计算机系统投入使用后、 5年内每年可节省人民币 2 O0O元,假设系统的投资额为5 000元,年利率为 12%。试计算投资回收期和纯收入。 解:

1、投资回收期

最初投资额为5000元,经过3年后可以节省4814.28元,比最初投资还少185.72元,

第4年一年再次节省1273.89元,则 185.72÷1273.89=0.15 3 + 0.15=3.15 因此这项工程的投资回收期是3.15年。 2、纯收入

7224.53 - 5000=2224.53元 > 0,值得投资。

第三章 需求分析

1.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?

数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。 作 用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能. 基本符号有四种:

→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.

2.某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。请用DFD和IDEF0描绘该功能的需求,并建立相应的数据字典。 (1)数据流条目: 数据流名称:存款单 别 名:无

简 述:储户存款时填写的项目 来 源:储户 去 向:记帐 数据 流 量:未知

组 成:姓名+住址+存款类型+存款日期+利率 数据流名称:取款单 别 名:无

简 述:储户取款时填写的项目 来 源:储户 去 向:统计 数据 流 量:未知

组 成:姓名+住址+取款类型+取款日期+利率

数据流名称:清单 别 名:无

简 述:储户取款后得到的项目 来 源:记录 去 向:储户

数据 流 量:未知

组 成:姓名+住址+取款类型+取款日期+利率+余额 (2)数据存储条目: 数据存储名称:账单 别 名:无

简 述:存放储户信息及其账目

组 成:姓名+住址+余额+存款类型+最后修改日期+利率 组 织 方 式:未知 查 询 要 求:能立即查询 (3)数据项条目: 未知 (4)加工条目: 加工 名:分类检查 编 号:无

激发条件:接收到存/取款单 优 先 级:优先 输 入:存/取款单 输 出:存/取款单

加工逻辑:IF 存款单 THEN 把存款单输出到统计 ELSE

把取款单输出到统计 ENDIF

加工 名:统计 编 号:无 激发条件:取款单 优 先 级:无 输 入:取款单 输 出:清单

加工逻辑:根据账单检查此储户是否存在,不存在输出错误{ IF 取款数<余额 THEN 余额=余额-取款数 输出清单到储户,输出现金到储户 ELSE

输出错误清单到储户 ENDIF }

加工 名:记录 编 号:无 激发条件:存款单 优 先 级:无 输 入:存款单 输 出:存款单

加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{ 余额=余额+存款数 输出存款单到储户 }

储户存款单取款单存款单记录存单储户表单表单处理1存款单处理存款2取款单分类并检查取款单统计

帐单清单处理取款储户3

关于软件工程中的判定树和判定表

判定树又称决策树,是一种描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关。使用判定树进行描述时,应该从问题的文字描述中分清哪些是判定条件,哪些是判定的决策,根据描述材料中的联结词找出判定条件的从属关系、并列关系、选择关系,根据它们构造判定树。

【例4.5】某工厂对工人的超产奖励政策为:该厂生产两种产品A和B。凡工人每月的实际生产量超过计划指标者均有奖励。奖励政策为:

对于产品A的生产者,超产数N小于或等于100件时,每超产1件奖励2元;N大于100件小于等于150件时,大于100件的部分每件奖励2.5元,其余的每件奖励金额不变;N大于150件时,超过150件的部分每件奖励3元,其余按超产150件以内的方案处理。

对于产品B的生产者,超产数N小于或等于50件时,每超产1件奖励3元;N大于50件小于等于100件时,大于50件的部分每件奖励4元,其余的每件奖励金额不变;N大于100件时,超过100件的部分每件奖励5元,其余按超产100件以内的方案处理。 上述处理功能用判定树描述,如下图所示

判定树又称决策树,是一种描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关。使用判定树进行描述时,应该从问题的文字描述中分清哪些是判定条件,哪些是判定的决策,根据描述材料中的联结词找出判定条件的从属关系、并列关系、选择关系,根据它们构造判定树。

【例4.5】某工厂对工人的超产奖励政策为:该厂生产两种产品A和B。凡工人每月的实际生产量超过计划指标者均有奖励。奖励政策为:

对于产品A的生产者,超产数N小于或等于100件时,每超产1件奖励2元;N大于100件小于等于150件时,大于100件的部分每件奖励2.5元,其余的每件奖励金额不变;N大于150件时,超过150件的部分每件奖励3元,其余按超产150件以内的方案处理。

对于产品B的生产者,超产数N小于或等于50件时,每超产1件奖励3元;N大于50件小于等于100件时,大于50件的部分每件奖励4元,其余的每件奖励金额不变;N大于100件时,超过100件的部分每件奖励5元,其余按超产100件以内的方案处理。 上述处理功能用判定树描述,如下图所示

这一判定树比起文字叙述,使人一目了然,清晰地表达了在什么情况下采取什么策略,不易产生逻辑上的混乱。因而判定树是描述基本处理逻辑功能的有效工具。

==============================================

判定表由四部分组成。

第一部分即①表示的部分,判定标的左上部称为基本条件项,列出各种可能的条件。第二部分即②表示的部分,判定标的右上部称为条件项,它列出了各种可能的条件组合。第三部分即③表示的部分,判定标的左下部称为基本动作项,它列出了所有的操作。第四部分即④表示的部分,判定标的右下部称为动作项,它列出在对条件组合下所选的操作。

【例4.6】以学生的奖学金评定为例,说明判定表的应用。奖励的目的在于鼓励学生的品学兼优,此处理功能是要合理确定奖学金评定等级。决定受奖的条件为:成绩优秀占70%或50%以上,成绩为中或中以下占15%或20%以下,团结纪律为优良或一般者。奖励方案为一等奖、二等奖、三等奖、鼓励奖四种。因为受奖条件有些是相容的,相互组合的项较多。描述此学生奖励政策的判定表如下图所示:

由上图可见,判定表将比较复杂的决策问题简洁、明确、一目了然地描述出来,它是描述条件比较多的决策问题的有效工具。判定表或判定树都是以图形形式描述数据流的加工逻辑,它结构简单,易懂易读。尤其遇到组合条件的判定,利用判定表或判定树可以使问题的描述清晰,而且便于直接映射到程序代码。在表达一个加工逻辑时,判定数、判定表都是好的描述工具,根据需要可以交叉使用。

4.选择一个系统(例如人事档案管理系统、图书管理系统、医院监护系统、足球俱乐部管理系统、财务管理系统、学生选课系统、飞机订票系统等),用 SA方法对它进行分析,画出系统的分层 DFD图。 解:? 下面是一个学生选课系统的DFD 。

新补充:

1、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。客户可在其收到的目录上圈定自己要买的书。出版公司按照客户的反馈信息邮寄图书。要求为出版公司设计软件,以实现以下功能: (1)自动生成图书分类目录; (2)自动处理客户反馈信息。

试用面向数据流的方法给出系统的数据流图,并设计出软件结构图。

新书 录入 书籍信息 定书信息 图书出版公司 定书信息 定书信 息录入 修订 书库 图书目 定书信息 录生成 书籍信息 读者信 息录入 读者信息 读者文件 读者信息 打印书籍信息 书库文件 书库清单 书籍信息 书籍信息 显示器 读者信息

书籍管理系统 数据录入 图书目录生成 新书录入

读者录入 目录打印 查询显示

第四章 概要设计

3.衡量模块独立性的两个标准是什么?它们各表示什么含义? 两个定性的度量标准:耦合与内聚性

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。

6.什么是软件结构?简述软件结构设计优化准则。

软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。 软件结构设计优化准则:

a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。 b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近 c.软件的深度、宽度、扇入、扇出应适当。 D.模块的大小要适中。

E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。

2、已知模块C中的一个判定影响到模块B,如图所示,它违反了SD的设计原则。试问: 可以采用哪些手段对结构图作改进,请说明改进办法并画出改进的结构图。

3、已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。

A2T1B1EBAAABBBDDA1T2B2CCFFGC答:

4、高考录取统分子系统有如下功能:

(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;

(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 试根据要求画出该系统的数据流程图,并将其转换为软件结构图。

答:

(1) 数据流图:

(2) 软件结构图:

① 原始分 ② 标准分 ③ 招生计划 ④ 录取线

5、图书馆的预定图书子系统有如下功能: (1) 由供书部门提供书目给订购组。 (2) 订书组从各单位取得要订的书目。

(3) 根据供书目录和订书书目产生订书文档留底。 (4) 将订书信息(包括数目,数量等)反馈给供书单位。 (5) 将未订书目通知订书者。

(6) 对于重复订购的书目由系统自动检查,并把结果反馈给订书者。 试根据要求画出该问题的数据流程图,并把其转换为软件结构图。 答:

(1) 数据流图:

(2) 软件结构图:

第五章 详细设计

1. 选择一种将三个数从小到大排序的算法,分别用(1)流程图,(2)N-S图,(3)PAD图描述其详细过程。 设数为a,b,c,其详细过程如下: (1)流程图

(2)N-S图

(3)PAD图

第六章 实现

第七章 软件测试

1、对下列子程序进行调试: procedure example(y,z: real; var x: real) begin end.

该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。答题要求: (1)画出流程图。

(2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。 答:(1)流程图

if if

(y>1) and (z=0) then x:=x/y; (y=2) or (x=l) then x:=x+l;

(2)用白盒法中条件组合覆盖设计测试用例:

2、某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。现要求用黑盒测试法中的边界值法写出测试用例。 答: 输入条件

测试用例说明

测试数据 5 20035

报表日期的 1个数字字符 类型及长度 5个数字字符 日期范围

在有效范围 200301

① y=2, z=0, x=4; ② y=2, z=1, x=1; ③ y=1, z=0, x=2; ④ y=1, z=1, x=1.

7个数字字符 2003005

有1个非数字字符 2003.5 全部是非数字字符 MAY--- 6个数字字符 200305

边界上选取 200812 数据 200300

200813 月份范围 月份为1月 200301 月份为12月 200312 月份<1 200300 月份>12 200313

3、对以下程序进行测试:

PROCEDURE EX(A,B:REAL;VAR X:REAL); BEGIN

IF(A=3)OR(B> 1)THEN X:=A×B IF(A>2)AND(B=0)THEN X:=A-3 END

先画出程序流程图。 再按不同逻辑覆盖法设计一种(写出名称)测试数据。 答:

语句覆盖 A=3 B=0

4、程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。 (1)按等价分类法设计测试用例(要求列出设计过程) (2)按边缘值分析法设计测试用例。 答:

1)合理等价类

选修1门 选修2门 选修3门 没选课 选3门以上

不合理等价类

测试用例

选修=2 选修=0 选修>3 0,1,3,4

2) 边缘值法

5、设被测试的程序段为:

begin

s1 ;

if (x=0) and (y>2)

then s2; then s3 ; if (x<1) or (y=1) s4 ;

end

可供选择的测试数据组为: x y Ⅰ 0 3 Ⅱ 1 2 Ⅲ -1 2 Ⅳ 3 1

找出实现(1)语句覆盖;(2)条件覆盖;(3)判定覆盖至少要选择的数据组。 答:(1)Ⅰ (2) Ⅰ,Ⅳ (3) Ⅰ,Ⅱ

二.某电力公司有A、B、C、D共四类收费标准,并规定,居民用电每月200度以下按A类收费, 200度以上按B类收费。动力电以每月1万度为分界,非高峰用电不足1万度按B类收费,达到或超过1万度按C类收费。高峰用电不足1万度按C类收费,达到或超过1万度按D类收费。试用基于逻辑的测试方法为它设计足够的测试用例实现条件组合的完全覆概。

规则号 1 2 3 4 5 6 居民 用电 动力用电 收费 标准 用电类型 测试用例 输入数据 预期结果 非高峰 高峰 200度以下 200度以上 1万度以下 1万度以上 1万度以下 1万度以上 A类 B类 C类 D类 Y ▲ Y ▲ Y ▲ Y ▲ Y ▲ Y ▲ 居民 用电 动力用电 非 高峰 高峰 90度/月 110度/月 8000度/月 12000度/月 9000度/月 11000度/月 A B B C C D

三.如图显示某程序的逻辑结构。

试为它设计足够的测试用例,分别实现对程序的判定覆概、条件覆概和条件组合覆概。

YA>1 and B=0NS1S2覆盖种类 判定覆盖

设计测试方案 需满足的条件 A>1,B=0 A>1,B?0或 A?1,B=0或 A?1,B?0 测试数据 执行S2 执行S1 执行S2 执行S1 执行S2 执行S2 执行S2 期望结果 执行S1 A=2,B=0 A=2,B=1或 A=1,B=0或 A=1,B=1 A=2,B=0 A=1,B=1 A=2,B=0 A=2,B=1 A=1,B=0 A=1,B=1 B=0 B?0 条件覆盖 条件组合 覆盖 以下四种情况各出现一次 A>1 A?1 A>1,B=0 A>1,B?0 A?1,B=0 A?1,B?0

四.某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或三位数字;

前 缀:非‘0’或‘1’的三位数字; 后 缀:4位数字。

假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。 1.划分等价类 输入条件 有效等价类 无效等价类 地区码 前 缀 1.空白; 2.三位数; 3.从200到999之间的三位 1. 有非数字字符;2.少于三位数字; 3.多于三位数字。 4.有非数字字符;5.起始位为?0?; 6.起始位为?1?; 7.少于三位数字; 8.多于三位数字。 后 缀 4.四位数字。 9.有非数字字符;10.少于四位数字; 11.多于四位数字。

方案 1 2 3 4 5 6 7 8 9 地区码 空白 三位数字 有非数字字符 少于三位数字 多于三位数字 设计测试方案 内容 前缀 200~999之间的三位数字 有非数字字符 起始位为?0? 起始位为?1? 少于三位数字 多于三位数字 后缀 四位数字 四位数字 有非数字字符 少于四位数字 多于四位数字 ( )276-2345 (635)805-9321 (20A)723-4567 (33 )234-5678 (5555)345-6789 (345)5A2-3456 (345)012-3456 (345)132-3456 (345) 92-3456 (345)4562-3456 (345)342-3A56 (345)342- 356 (345)562-34567 输 入 预期 输出 有效 有效 无效 无效 无效 无效 无效 无效 无效 无效 无效 无效 无效 10 11 12 13

第八章 软件维护

1、软件维护有哪些内容?

a、校正性维护b、适应性维护c、完善性维护d、预防性维护

第九章

第十章 面向对象技术

1、 说明对象、类、类结构、消息的基本概念? 答:对象:是客观实体在问题域中的抽象。 类:具有相似或相同性质的对象的抽象就是类。

类结构:类的结构通常有一般----具体(分类结构)整体---抽象(组装结构) 消息:对象之间通信的构造。

2、 面向对象的特征和要素?

答:特征:一致性、多态性、分类性、继承性。要素:共享、封装、抽象。

第十二章 软件工程管理

3、软件开发成本估算方法有哪几种? 答:COCOMO、PUTANM 。。。。

4、 什么软件配置管理?什么是基线?

答:软件配置管理:软件配置管理(SCM)用于整个软件工程过程,目标是表示变更,控制变更,确保变更的正确实施,报告变更。SCM是用在整个软件生存周期个阶段中的变更活动。基线:是软件生存周期中各开发阶段的一个特定点,它的作用是把开发各阶段的工作划分的更加明确化,使本来连续的工作在这些点上断开,便于检查于肯定阶段成果。

图书馆信息系统UML实例

一、如何理解UML

1、UML统一建模语言

统一建模语言(Unified Modeling Language,UML)是一个通用的可视化建模语言,跨越软件开发的整个生命过程,详细描述系统结构的方法,为规范化、可视化、文档化软件系统提供了一致的建模语言。使用UML主要目的是是便于用户、开发人员、分析人员、测试人员、管理人员、其他涉及项目人员之间的通信。 建立“立体”的模型需要:点 、 线、 面

UML描述模型有三种词汇:要素、关系、图

2、UML有四种要素:

(1)表示结构的要素:Use Case、类、接口、协作 (2)表示行为的要素:交互、状态机 (3)表示组织的要素:包(Package) (4)表示辅助说明的要素:注释(Notes)

3、UML中有四种类型的关系:

(1)关联关系:表示两个类之间存在稳定的连接(传递消息)

关联关系(Association)的访问方向:单箭头表示一方的实例能够访问另一方实例 关联关系有两种强化形式:聚合关系(Aggregation)、组合关系(Composition)

聚合关系:表示两个类的实例之间“整体”与“部分”关系,处于空心菱形符号一端的类是整体。

组合关系:是进一步强化的聚合关系,增加“皮之不存,毛将焉附”的语义,“整体”一端用实心的菱形表示。

(2)依赖关系:表示“被依赖者”类的变化有可能影响“依赖者”类,用带有箭头的虚线表示。

(3)泛化关系:表示类A是类B的一种。

(4)实现关系:一方提出请求,另一方履行要求中声明的任务。

4、UML中有九种图,共三大类:

三种静态图

(1)业务用例图(Business Use Case Diagram):显示整个系统提供的功能。

(2)用例图(Use Case Diagram):从系统的用户角度出发,描述系统应该具有的功能。主要用于展示用例(Use Case)、角色(Actor)及其关系。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用

(3)类图(Class Diagram):主要用于展示类、接口、包及其关系。类(Class)是指一些具有相同属性(Attribute))和操作(Operation)的对象的集合,其中操作包含一组有序的参数(parameter),类之间的关系有联系(Association)和泛化(Generation)等。

四种动态图:

(4)状态图(State chart Diagram):展示对象在其生命周期中可能经历的状态、在这些状态上对事件的响应能力。 (5)活动图(Activity Diagram): 是状态机的一个变体,用来描述执行算法的工作流程中涉及的活动, 活动状态代表着一个活动、一个工作流程步骤或一个操作的执行,活动视图描述一组顺序的或并发的活动, 展示系统从一个活动转到另一个活动的可能路径与判断条件。

(6)顺序图(Sequence Diagram):用于按时序展示对象间的消息传递。当执行一个用例行为时,顺序图中的每条消息对应一个类操作或状态机中引起转换的触发事件。

(7)协作图(Collaboration Diagram):其核心内容与序列图相对应,强调(收发消息的)对象间的结构组织。

两种执行图:

(8)组件图(Component Diagram):显示系统中的组件及其相互依赖性。开发人员知道有哪些代码库,相互间

有什么关系,编译人员知道组件所需的编译的顺序。

(9)部署图(Deployment Diagram):它考虑应用程序的物理部署,如网络布局和组件在网络上的位置的问题。显示网络上的所有结点、结点间的连接、每个结点上运行的进程。

二、图书馆信息系统UML实例介绍

1、理解需求

图书馆信息系统文本需求说明:

(1)图书馆将书和杂志借给读者,读者、书、杂志系统中注册。 (2)图书馆负责购买图书、删除书目。

(3)图书管理员与借书者打交道,他们的工作要得到系统的支持。 (4)借书者可以增删预订书目

(5)图书馆可维护与书目、借书者、借阅(Loan)和预订等有关的信息。

(6)系统能够在Unix、Windows、OS/2等环境下运行,有一个非常友好的用户图形界面(GUI) (7)系统应该具有很好的扩展性。 2、需求分析

2.1、定义业务用例:描述图书馆提供的功能

Business Use case框图:显示业务用例与业务角色之间的交互。 业务用例:表示公司的执行的过程,为什么要建立系统。

业务角色:表示业务要交互的角色,如客户与厂家,不表示公司内的角色或人员。 业务工人:表示公司内的角色或人员。

2.2、定义用例,即描述图书馆系统的功能 Use Case 框图:显示使用案例与角色的交互。

使用案例:表示从用户角度对系统的要求(系统功能)。 角色:表示接受和提供系统信息的人或系统(系统主体)。 图书馆中的角色:图书馆管理员、借书者 图书馆信息系统中的用例(使用案例)如下:

借出书目(Lend Item)、返回书目(Return Item)、预订(Make Reservation)、删除预订(Remove Reservation) 增加标题(Add Title)、更新或删除标题(Update or Remove Title)、增加书目(Add Item)、删除书目(Remove Item)、增加借书者(Add Borrower)、更新或删除借书者(Update or Remove Borrower)

“标题(Title)”与“书目(Item)”的区别:在图书馆中,一个流行的标题可能有好几本,标题可能是书名或书的作者,这样可让借书者预定。

图书馆信息系统的用例图:增加系统用例模型包、Use Case框图、用例与角色

建立图书馆信息系统的用例图操作步骤:

(1)右击Use Case视图、New、Package,将新包命名为System Use Case Model(使用案例模型)。 (2)右击System Use Case Model包、New、UseCase Diagram,将新框图命名为Main。 (3)双击该框图,添加新用例、 添加新角色、增加关联。

3、领域分析

3.1、图书馆信息系统的类结构 Class框图

? Class框图:显示系统中类与类之间的交互。

? Class框图:可显示每个使用案例中类的相互作用,也可显示整个系统或子系统。 ? 开发人员用Class框图开发类,产生类的框架代码,用所选语言填充细节。 ? 分析人员用Class框图显示系统细节。 ? 架构师用Class框图显示系统设计。 类的含义

类包括三部分:类名、类包含的属性(与类相关的信息)、类的操作(类提供的功能)

连接类的直线:显示类之间的通信关系。我们将信息和影响信息的行为连接在一起,包装成类,对象是类的实例。在UML中,类用下列图注表示:

Class -Attribute +Operation() 图书馆信息系统的域类结构

建立图书馆信息系统域类的Class框图操作步骤:

(1)右击Logical视图、选New、Class Diagram、将新框图取名 “域类”、双击打开该框图、选Class类工具栏按钮、添加类:借书者信息(Borrower Information)、标题(Title)、书的标题、杂志标题、书目、预订、借书 (2)添加关联、泛化关系

(3)添加属性与操作 3.2、用例“借出书目”、“增加标题” 的序列图 用例“借出书目”的序列图操作步骤: (1)设置

选Tools、Options、Diagram标签、复选Focus of control Sequence Numbering、Collaboration Numbering、 (2)创建Sequence 框图

Use Case视图、包System Use Case Model(使用案例模型)下,右击“借出书目”用例,选 New、Sequence Diagram (3)将角色和对象加进框图

将“图书管理员”角色从浏览器拖到框图中、选Object工具栏按钮、单击框图顶部添加对象 (4)将消息加进框图

选Object Message工具栏按钮、从“图书管理员”角色的生命线拖到“借出书目窗口”对象的生命线、选中消息,输入find title()

用例“借出书目”的序列图(没有预定的情况)

“增加标题(Add Title)”用例的序列图

3.3、用例“借出书目” 、“增加标题”的协作图 协作图(Collaboration Diagram)

Sequence框图:演示的是对象与角色随时间变化的交互。 Collaboration框图:则不参照时间而显示对象与角色的交互

Collaboration框图显示的信息与Sequence框图相同,但Collaboration框图用不同方式显示这个信息。 质量保证工程师和系统架构师:用该框图显示对象间处理过程的分布。 创建Collaboration框图:打开Sequence框图,按F5键。 用例“借出书目”的协作图

“增加标题(Add Title)”用例的协作图

3.4、“标题”类的状态图 状态图(State chart Diagram)

State chart框图:显示对象的功能。方括号中的条件称为保证条件,控制过渡能不能发生。 开发人员开发类时可使用这种框图,不是对每个类创建,只用复杂的类。 State chart框图仅用于文档,从Rose模型产生代码时,没有任何代码是从State chart框图的信息产生的。 建立状态图操作步骤:

1、在浏览器Logical View中找到“标题”类,右击这个类选 New、 Sate chart Diagram。 2、增加状态、过渡、过渡细节 “标题”类的状态图

4、架构设计

图书馆信息系统架构设计

定义包(子系统)、包间的相关性和基本的通信机制。包:将完成一个任务所需要的类组合在一起。按功能组合类,可得到相互独立的包,即可在其它应用程序中复用。Component框图:显示系统中的组件及其相互依赖性。开发人员知道有哪些代码库,相互间有什么关系,编译人员知道组件所需的编译的顺序。 在Component框图中创建包显示应用包及包间相关性的类图

图书馆信息系统的包(子系统)如下:

(1)用户接口包(User Interface Package):通过用户接口类,用户可浏览、输入数据 (2)业务对象包(Business Object Package):包含分析模型中的域类

(3)数据库包(Database Package):提供服务给业务对象包中的类,包中只有一个类Persistent (4)应用包(Utility Package):提供服务给系统中其它种类的包,包中只有一个类ObjId

5、图书馆信息系统详细设计

将包的内容细化,详细描述每一个类,使的编程人员编码。 详细设计操作步骤:

(1)在“业务对象包”中增加组件和画出依赖性 (2)将类映射组件

数据库包:增加一个Persistent抽象组件类 :通过该类能实现数据库的store()、update()、delete()、find(), “业务对象包”中的类继承了Persistent类,实现了这些功能。 应用包:通过ObjId类组件,其它包为该应用包提供服务。

6、图书馆信息系统的部署图

Deployment框图:显示网络的物理布局和各种组件的位置,显示了系统的主要布局和物理设置。

用户、建筑师和部署人员通过该框图了解系统的物理布局和各种组件的位置,项目管理员通过该框图与用户沟通系统的布局, 部署人员用该框图进行部署规划。

主要采用B/S、C/S混合结构

本文来源:https://www.bwwdw.com/article/xow6.html

Top