资源描述
软件工程总复习
考试题型:选择(20道)、辨析(4道)、计算(1道)、设计(3)。
软件危机的定义:
指在计算机软件的开发和维护过程中所碰到的一系列严重的问题。
软件工程的定义:
指导计算机软件开发和维护的工程性学科,涉及管理和技术两方面内容。
软件工程的基本原理:
1)用分阶段的生命周期计划严格管理;
2)坚持进行阶段评审;
3)实行严格的产品控制——变动管理;
4)采用现代程序设计技术;
5)结果应当可以清楚地审查;
6)开发小组的人员应当少而精;(最重要的)
7)认可不断改善软件工程实践的必要性。
软件生命周期的组成:
由软件定义、软件开发、运营维护3个时期组成。
软件生命周期的8个阶段:
1)问题定义:解决“问题是什么?”
2)可行性研究:问题是否有行得通的解决办法?
3)需求分析:回答出“目的系统必须做什么?”
4)总体设计:解决“如何实现目的系统?”
5)具体设计:回答出“如何具体地实现这个系统?”
6)编码和单元测试:写出对的的容易理解、容易维护的程序模块。
7)综合测试:涉及集成测试、系统测试、验收测试。
8)软件维护:实质上是一次压缩和简化了的软件定义和开发的全过程。(软件生命周期中时间最长的阶段)
软件维护的4种类型:
1)改正性维护:诊断和改正在使用过程中发现的软件错误。
2)适应性维护:为适应环境变化而实行的修改。
3)完善性维护:根据用户的规定改善或扩充软件。
4)防止性维护:为将来的维护活动预先做准备而对软件进行的修改。
软件开发中某些观点辨析:(考试在辨析题中必考)
1)有一个对目的的概括描述就足以着手编写程序了,许多细节可以以后再补充。(×)
2)所谓软件开发就是编写程序并设法使它运营。(×)
3)用户对软件的规定不断变化,然而软件是非常灵活的,可以容易地改动。(×)
4)软件投入生产性运营以后需要的维护工作并不多,并且维护是一种很容易做的简朴工作。(×)
5)不完善的系统定义往往是导致软件项目失败的重要因素。(√)
6)只有质量差的软件产品才需要维护。(×)
7)在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会减少。(×)
8)只要我们写出了程序并使其正常运营,我们的工作就结束了。(×)
9)我们拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助我们解决软件开发中碰到的任何问题。(×)
10)在项目计划发生延迟的情况下,增长更多的程序员一定会加快进度。(×)
11)文档是软件产品的一部分,没有文档的软件就不称其为软件。(√)
12)一个成功的项目唯一提交的就是运营程序。(×)
软件工程方法学的定义:
指在软件生命周期全过程中使用的一整套技术的集合。
传统软件工程方法学的定义:
也称为生命周期方法学,它采用结构化技术来完毕软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
传统的软件过程的定义:
即生命周期模型规定了生命周期各个阶段的执行顺序。
典型的软件过程模型:
1)瀑布模型:
2)快速原型模型:
3)增量模型:
4)螺旋模型:
面向对象软件工程方法学涉及:
1)喷泉模型:
2)灵敏开发:
可行性研究的目的:
用最小的代价在尽也许短的时间内研究并拟定所面临的问题是否可以解决。
一般需要考虑:
1)是否有足够的工具、足够的人员和相关的技术来支持系统开发;
2)待开发软件是否有市场、经济上是否合算等。
经济可行性的定义:
通过成本效益分析,进行成本估算(计算出收入和投资回收周期)。
货币的时间价值:
假设年利率为i,若现在存入P元,则n年后可以得到的钱数为:F=P(1+i)。
纯收入=累计效益现在值 — 投资
需求分析的任务:
对目的系统提出完整、准确、清楚、具体的规定——需求规格说明书(系统开发的基础)。
辨析题:
1)某程序员认为:系统在屏幕格式、编码等方面应具有一致性和清楚性,否则会影响操作人员的工作效率。(√)
2)某程序员认为:由于本公司中有很多较大的文献,文献的查找很费时间,交互式会话系统在响应时间较长时应给予使用者以提醒信息。(√)
3)某程序员认为:终端会话也应当符合程序员编制程序时的习惯,这样可以更高效地维护人事管理系统。(×)
4)某操作人员认为:在交互式会话过程中,操作人员也许会忘掉或记错某些事情,系统应当提供help功能。(√)
5)某操作人员认为:在犯错的时候,交互式会话系统应当给出犯错信息,并且极也许告诉我们犯错的性质和错在什么地方。(√)
6)某操作人员认为:既然是交互式会话,那么对所有的输入都应当作出响应,不应出现击键后,计算机没有任何反映的情况。(√)
7)干部甲认为:应当对操作员进行一些必要的培训,让他们掌握交互式会话系统的设计技巧,有助于提高系统的使用效率。(×)
8)干部乙认为:尽管操作人员的指法已经强化训练但在交互式会话时应尽也许缩短和减少操作员输入的信息,以减少犯错概率。(√)
9)干部丙认为:我们公司的人事资料相称复杂,格式非常之多,希望交互式系统使用十分清楚的格式,并容易对输入数据中的错误进行修改。(√)
10)干部丁认为:人事管理系统应当具有相称的保密性和数据安全性,因此在屏幕上显示出的信息应当含混一些,以免泄密。(×)
软件设计:
通常分为总体(概要)设计和具体设计两个阶段。
目的:设计出所要开发的软件的模型。
软件设计在软件工程过程中处在技术核心地位,是软件开发过程中决定软件产品质量的关键阶段。
注意:软件测试是保证软件质量的关键环节,但软件质量问题不能通过软件测试得到彻底解决。
为了获得高质量的软件设计结果,应当遵循模块化、抽象、逐步求精、信息隐藏和模块独立等基本原理。基本原理涉及:
1)低耦合、高内聚的软件结构才是最佳的。
2)结构化程序设计采用的三种基本控制结构。
3)必须掌握环形复杂度的计算方法。
面向对象的概念:
1)对象:属性数据与操作构成的统一体。
2)类:对具有相同属性和行为的一个或多个对象的描述。
3)实例:由某个特定的类所描述的一个具体的对象。
4)消息:规定某个对象执行某个操作的规格说明。
5)方法:对象所能执行的操作。
6)属性:类中所定义的数据,是客观实体的性质的抽象。
7)封装:把数据和实现操作的代码集中在对象内部。
8)继承:子类自动地共享基类中定义的数据和方法的机制。
9)多态性:指子类对象可以像父类对象那样使用。
10)重载:涉及函数重载和运算符重载。
UML:
可用于面向对象软件系统开发的全过程。
运用UML构建的模型涉及:
1)功能模型:用例图
2)对象(数据)模型:类图、对象图
3)动态(行为)模型:状态图、活动图
4)交互模型:时序图(顺序图)、协作图
5)实现模型:组件图、分布图
用例图的组成:
由参与者、用例、系统边界、关联组成。
注意一下关系:
1)参与者与参与者之间重要是泛化关系(或称为继承关系),只把某些参与者的共同行为提取出来表达成通用行为,即参与者之间的一般/特殊关系。
2)用例除了与参与者发生关联外,用例之间还可以存在一定的关系,涉及:包含、扩展、泛化等3种关系。
包含关系:不同的用例之间也许存在一些相同的行为,这时可以将这些相同的行为提取出来组成一个用例。当其他用例使用该用例时,用例之间便形成了包含关系。
扩展关系:在用例的执行过程中,也许会出现异常行为,也也许会在不同的流程分支中选择执行,这时可以将异常行为或可选分支抽象成一个单独的扩展用例,它与主用例之间形成扩展关系。
泛化关系:描述用例之间一般与特殊关系的,不同的子用例代表了父用例的不同实现方法。
类图的定义:
是一种静态模型,一个系统可以由多张类图来描述,一个类也可以出现在几张类图中。
类图由类、类与类之间的关系构成。
类与类之间通常有关联、泛化(继承)、依赖、细化(实现)等四种关系。
关联:普通关联、受限关联、关联类、聚集(聚合)(共享聚集、组合聚集)。
共享聚集(聚集):在聚集关系中处在部分方的对象可以同时参与多个处在整体方的对象的构成。
组合聚集(组合或组成):部分类对象完全从属于整体类对象,部分与整体共存,整体不存在了部分也会随之消失(或失去了存在价值)。
泛化:普通泛化(子类自动地共享基类中定义的数据和方法的机制)、受限泛化(给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法)
状态图:
表现从一个状态到另一个状态的控制流。一般情况下,状态图可以由表达状态的节点和表达状态之间转化的带箭头的直线刻画出来。
创建状态图的环节:
1)辨认出建模实体;
2)辨认出实体的各种状态;
3)创建相关事件并创建状态图。
软件实现:
指编码和测试两个阶段。
编码:是把软件设计结果翻译成用某种程序设计语言书写的程序的过程。
一定注意编码要规范。
测试:为了发现程序中的错误而执行程序的过程。
什么是好的测试?
是极也许发现迄今为止尚未发现的错误的测试方案。
什么是成功的测试?
是发现了迄今为止尚未发现的错误的测试。
测试的环节:
1)单元测试:集中监测软件设计的模块。
2)集成测试:是测试和组装软件的系统化技术。
3)确认测试:也称验收测试,其目的是验证软件的有效性。
4)系统测试:把通过测试的子系统装配成一个完整的系统来测试。
5)验收测试:把软件系统作为单一的实体进行测试。
调试的定义:
在测试发现错误之后排除错误的过程。
软件可靠性的概念及计算方法:
估算错误总数的方法:
1)植入错误法:
2)分别测试法:
测试方法涉及:
1、白盒测试:
按照程序内部预期应有的逻辑测试程序,检查程序中的每条执行通路是否都能按预定规定对的工作。又称为结构测试,也叫玻璃盒测试。
设计白盒测试方案的两种常用技术:
1) 逻辑覆盖:
⑴从覆盖语句的详尽限度分析(语句覆盖、鉴定覆盖、鉴定/条件覆盖、条件组合覆盖);
⑵从程序途径的覆盖限度分析:点、边、途径。
2) 控制结构测试:
⑴ 基本途径测试:
① 依据过程设计得结果画出响应的流图;
② 计算流图的环形复杂度;
③ 拟定线性独立途径的基本集合;(程序的环形复杂度=程序中独立途径的数量)
④ 设计出可强制执行基本集合中每条途径的测试用例。
⑵ 条件测试:
⑶ 循环测试:
2、黑盒测试:
已知产品应当具有的功能,通过在程序接口进行的测试来检查是否每个功能都能按照规格说明书的规定正常使用。
黑盒测试的方法重要有:
1)等边划分(重点):
2)边界值分析(重点):
3)错误推测:
测试的注意事项:
1)不同的测试阶段设计测试用例时,使用的文档依据不同;
2)测试的关键问题是如何选择测试用例;
3)测试用例重要由输入数据和预期输出结果两部分组成。
面向对象设计原则:
1)单一职责原则:一个类应当仅有一个职责。
注意:职责是否应当分开依赖于具体的应用。
2)开放——封闭原则:
在设计一个软件系统模块(类、方法)时,应当可以在不修改原有的模块(修改封闭)的基础上,可以扩展其功能(扩展开发)。
在面向对象的程序中是可以做到的,运用面向对象的抽象和多态。
程序对于修改不是100%封闭。
一种抽象只能解决一类变化。抽象后的系统对这类变化是封闭的,但是对于其它类型的变化仍然不是封闭的。
依赖倒置原则:系统框架设计的核心原则。
1)高层模块不应当依赖于低层模块,两者都应当依赖于抽象。
2)抽象不应当依赖于细节;细节应当依赖于抽象。
3)使用何种语言来编写程序是无关紧要的,假如程序的依赖关系是倒置的,它就是面向对象的设计;假如程序的依赖关系不是倒置的,它就是过程化的设计。
接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
1)不能逼迫用户去依赖那些他们不使用的接口;
2)程序所依赖的接口中不要包含该程序不使用的方法。
包的设计原则:
1)内聚性原则:
⑴ 重用发布等价原则:以包重用的粒度作为包发布的粒度。
⑵ 共同封闭原则:一个包中的所有类应当是共同重用的。假如重用了包中的一个类,那么就要重用包中的所有类。
互相之间没有紧密联系的类不应当在同一个包中。
⑶ 共同重用原则:包中的所有类对于同一类性质的变化应当是共同封闭的。
2)耦合性原则:
⑴ 无环依赖原则:在包的依赖关系图中不允许存在“环”。
① 解除依赖环有两个重要的方法:建立一个新包;使用依赖倒置原则。
② 认为包结构图是描述系统功能的,这是错误的。
在进行面向对象的系统设计时,我们应先设计出系统中的类,然后再设计包。
⑵ 稳定依赖原则:朝着稳定的方向进行依赖。
① 让不稳定的模块依赖稳定的模块;
② 度量一个包的稳定性:不稳定性I = Ce / (Ca+ Ce)
⑶ 稳定抽象原则:稳定的包应当是抽象的包。
① 一个稳定的包应当是抽象的,这样它的稳定性就不会使它无法扩展;
② 一个不稳定的包应当是具体的,它的不稳定性使它内部的具体代码易于更改。
③ 稳定性(I)和抽象性(A)之间的关系:
包的最佳位置位于主序列的两个端点处。
作业:
1-1、软件生命周期的3个阶段是什么?又能细分为哪几个阶段?
软件生命周期的3个阶段:软件定义、软件开发、运营维护。
细分为8个阶段:1)问题定义、2)可行性研究、3)需求分析、4)总体设计、
5)具体设计、6)编码和单元测试、7)综合测试、8)软件维护。
1-2、说明灵敏过程的合用范围?为什么?
灵敏过程具有对变化和不拟定性的更快速、更灵敏的反映特性,并且在快速的同时仍然可以保持可连续的开发速度。因此,较合用于开发可用资源及开发时间都有较苛刻约束的小型项目。
2-1、考虑一个修改磁带上主文献的系统。文献管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息并按照记录号把修改信息顺序排列好。然后系统逐个读入主文献上的记录,根据记录上的校验码核对每个读入的记录,丢掉犯错的记录,按照修改信息修改余下的记录,产生的新文献存储在磁盘上。最后,系统输出一份修改报告供文献管理员参阅。请分层次地画出上述主文献修改系统的数据流图。
源点/终点
解决
数据流
数据存储
文献
管理员
接受修改信息
修改信息
修改信息
读入主文献
主文献
主文献
核对记录
对的的记录
修改后的主文献
修改记录
修改后的主文献
产生报告
修改报告
3-1、如何理解模块独立性?用什么指标来衡量模块独立性?
对于模块的独立性可以这样理解:
假如两个模块互相独立,那么对其中一个模块进行编码、测试和修改时可以完全不考虑另一个模块对它的影响。因此用模块独立性作为衡量模块结构是否容易编码、测试和修改的标准是合适的。
但是,在一个系统的模块结构中没有哪两个模块可以完全独立,所以要力争模块之间尽量独立,以得到一个质量良好的模块结构。
衡量模块独立性的标准为:内聚和耦合。
4-1、教材第141页第4题。
如图给出的程序流程图代表一个非结构化的程序,问:
1)为什么说它是非结构化的?
2)设计一个等价的结构化程序。
3)在2)题的设计中使用附加的标志变量flag了吗?若没有,再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。
1)由于此程序有两个出口,显然不符合结构化程序的经典定义,因此是非结构化的程序。
2)
×
×
3)
4-2、用3种方法计算下图的环形复杂度。
法一、直接数:环形复杂度=5;
法二、边-点+2:11-8+2=5;
法三、判断数+1:1+1+(3-1)+1=5。
5-1、教材229页第5题。
什么是模型?开发软件为什么要建模?
模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
通常是由一组图示符号和组织这些符号的规则,运用它们来定义和描述问题域中的术语和概念。进一步讲,模型是一种思维工具,运用这种工具可以把知识规范地表达出来。
建模因素:
1)描述系统复杂性;
2)便于交流;
3)为软件的维护和升级提供了文档。
6-1、教材230页第10题:建立定货系统的用例模型。
仓库管理员通过放在仓库中的终端把零件入库/出库事务报告给订货系统,系统接受到事务信息后应当解决事务;采购员需要使用订货系统提供的产生报表功能,以获取订货报表。
7-1、建立图形系统的对象模型,问题陈述如下:
图形分为0维图形、一维图形和二维图形。0维图形是指实际中的一个点;一维图形又分为直线、圆弧、折线;二维图形分为圆、椭圆、矩形、多边形,其中折线与多边形由若干有序顶点组成。
10-1、教材187页第10题。
在测试一个长度为24000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。经一个月测试后,甲发现并改正20个错误,使MTTF达成10h。与此同时,乙发现了24个错误,其中6个甲也发现了。以后由甲一个人继续测试这个程序。问:
1)刚开始测试时程序中总共有多少个潜藏的错误?
2)为使MTTF达成60h,必须再改正多少个错误?
B1:甲改正的错误数;B2:乙改正的错误数;bc:错误的交集;
开始测试前共有潜藏错误(24/6)*20 = 80 个
由于甲发现并改正了20个错误,使MTTF达成了10小时, 根据公式:
有:10 = 24000 / (K *(80 - 20)),则K=40;
运用同一公式:60 = 24000 / (40 * (80 – Ec)),所以 Ec = 70,甲已经改正了20个错误,因此还需要改正50个错误。
11-1、读教材184页第4题的程序伪码(如下),规定画出流程图和控制流图,并完毕语句覆盖和基本途径测试用例设计。
START IF C>15
INPUT(A,B,C) TNEN Z=30
IF A>5 ELSE Z=3
THEN X=10 END IF
ELSE X=1 PRINT(X,Y,Z)
END IF STOP
IF B>10
THEN Y=20
ELSE Y=2
END IF
R4
R3
R1
R2
基本途径测试用例(4条):
1)输入:A=6, B=11, C=16;输出:X=10, Y=20, Z=30
覆盖途径:1,2,3,4,6,7,9,10,12,13
2)输入:A=4, B=11, C=16;输出:X=1, Y=20, Z=30
覆盖途径:1,2,3,5,6,7,9,10,12,13
3)输入:A=4, B=9, C=16;输出:X=1, Y=2, Z=30
覆盖途径:1,2,3,5,6,8,9,10,12,13
4)输入:A=4, B=9, C=14;输出:X=1, Y=2, Z=3
覆盖途径:1,2,3,5,6,8,9,11,12,13
12-1、程序规格说明为:“一个程序读入三个整数。把此三个数值当作是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。” 请使用等价类划分法,从输入域定义等价类,完毕测试用例设计。
14-1、软件测试是软件质量保证的重要手段之一,测试的费用已超过( A )的30%以上。因此,提高测试的有效性十分重要。“高产”的测试是指( B )。根据国家标准GB 8566-88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在( C )阶段完毕的,集成测试的计划是在( D )阶段制定的,确认测试的计划在( E )阶段制定的。
A:① 软件开发费用 ② 软件维护费用 ③ 软件开发和维护费用 ④ 软件研制费用 ⑤ 软件生存期所有
B:① 用适量的测试用例运营程序,证明被测程序对的无误
② 用适量的测试用例运营程序,证明被测程序符合相应的规定
③ 用少量的测试用例运营程序,发现被测程序尽也许多的错误
④ 用少量的测试用例运营程序,纠正被测程序尽也许多的错误
C~E:① 可行性研究和计划 ② 需求分析 ③ 概要设计 ④ 具体设计
⑤ 实现 ⑥ 集成测试 ⑦ 确认测试 ⑧ 使用和维护
14-2、集成测试也叫做( A )或( B )。通常,在( C )的基础上,将所有模块按照设计规定组装成为系统。子系统的集成测试特别称为( D ),它所做的工作是找出子系统和系统需求规格说明之间的( E )。需要考虑的问题是:在把各个模块连接起来的时候,穿越模块接口的数据是否会( F );一个模块的功能是否会对另一个模块的功能产生不利的影响;各个( G )组合起来,能否达成预期规定的( H );( I )是否有问题;单个模块的误差积累起来是否会放大。
A~D:① 单元测试 ② 部件测试 ③ 组装测试 ④ 系统测试 ⑤ 确认测试 ⑥ 联合测试
E~I:① 子功能 ② 丢失 ③ 父功能 ④ 局部数据结构
⑤ 全局数据结构 ⑥ 不一致 ⑦一致
实验:
2-1、绘制书中73页习题3的数据流图:
银行计算机储蓄系统的工作过程大体如下:储户填写的存款单或取款单由业务员键入系统,假如是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款单给储户;假如是取款并且存款时留有密码,则系统一方面核对储户密码,若密码对的或存款时未留密码,则系记录算利息并印出利息清单给储户。
储户
1
记录存款
信息
2
打印存款
存单
3
核对
密码
4
计算
利息
5
打印利息
清单
储户
存款单
取款单
存款信息
存款信息
利息值
D
1
存款信息
存款信息
存款信息
利息清单
存款存单
2-2、绘制书中73页习题4的数据流图:
为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票告知和账单,旅客在飞机起飞的前一天凭取告知和账单交款取票,系统校对无误即印出机票给旅客。
本系统的基本系统模型如下:
2-3、绘制书中73页习题5的数据流图:
医院对患者监护系统的基本规定是随时接受每个病人的生理信号(脉搏、体温、血压、心电图等),定期记录病人情况以形成患者日记,当某个病人的生理信号超过医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以规定系统印出某个指定病人的病情报告。
本系统的基本系统模型如下:
绘制本系统的功能及数据流图过程如下:
3-1、根据电影、影星和制片公司的描述绘制ER图:
电影、影星和制片公司为三个实体,电影的属性是:名称、生产日期、长度、影片类型,影星的属性为:姓名、电子邮件地址,制片公司的属性是:公司名称、地址。分析三个实体的联系,绘制ER图。
3-2、根据图书、出版社和借书人的描述绘制ER图:
图书、出版社和借书人为三个实体,图书的属性是:书号、书名、单价,出版社的属性为:出版社名称、邮编、地址、电话,借书人的属性是:姓名、单位、借证号。图书与出版社之间存在出版的联系,图书与借书人之间存在借阅的联系,分析出这两个联系所拥有的属性,绘制ER图。
3-3、为某仓库的管理设计一个ER模型:该仓库重要管理零件的定购和供应等事项,仓库向工程项目供应零件,并且根据需要向供应商订购零件。
3-4、绘制书中73页习题3的ER图:银行计算机储蓄系统的工作过程大体如下:储户填写的存款单或取款单由业务员键入系统,假如是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款存单给储户;假如是取款并且存款时留有密码,则系统一方面核对储户密码,若密码对的或存款时未留密码,则系记录算利息并印出利息清单给储户。
3-5、绘制书中73页习题4的ER图:
为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票告知和帐单,旅客在飞机起飞的前一天凭取票告知和帐单交款取票,系统校对无误即印出机票给旅客。
4-1、一个超市管理系统的功能性需求描述如下:
1)超市信息管理系统功能支持售货员的平常售货功能。每一个售货员通过自己的用户名和密码登录到售货系统中,为顾客提供服务。在售货员为顾客提供售货服务时,顾客购买商品,售货员根据系统的定价计算出商品的总价,顾客付款并接受售货员打印的货品清单,系统自动保存顾客购买的商品记录。
2)超市信息管理系统可认为超市的管理者提供管理功能。超市的管理涉及库存管理、订货管理、报表管理、售货人员管理和系统维护等。库存管理员负责超市的库存管理;订货员负责超市的订货管理;记录分析员负责超市的记录分析管理;系统管理员负责超市的售货人员管理和系统维护。每种管理者都通过自己的用户名和密码登录到各自的管理系统中。
3)库存管理涉及商品入库管理、解决盘点信息、解决报销商品信息和管理设立信息。这些设立信息涉及供应商信息、商品信息和特殊商品信息。库存管理员天天对商品进行一次盘点,当发现库存商品有损坏时,及时解决损坏信息。当商品到货时,库存管理员检查商品是否合格后将合格商品入库。当商品进入卖场时,商品进行出库解决。
4)订货管理是对超市所缺货品进行订货解决,涉及记录订货商品和制作订单等环节。当订货员发现库存商品低于库存下限时,根据系统供应商信息制作订单,进行商品订货解决。
5)记录分析管理涉及查询商品信息、查询销售信息、查询供应商信息、查询缺货信息、查询报表信息和查询特殊商品信息,并制作报表。记录分析员使用系统的记录分析功能了解商品信息、销售信息、供应商信息、库存信息和特殊商品信息,以便可以制定出合理的销售计划。
6)系统管理涉及维护员工信息,维护会员信息和系统维护。系统管理员通过系统管理功能,可以了解公司员工信息、会员信息,还可以对系统进行维护工作。
通过度析本系统的参与者及其关系如下图所示:
系统的顶层用例图如下:
请根据顶层用例图,再新创建一个包(超市管理系统),在其中按照每个参与者所需执行的用例完毕“员工用例图”、“售货员用例图”、“库存管理员用例图”、“订货员用例图”、“记录分析员用例图”和“系统管理员用例图”。
5-1、图书馆馆藏出版物需求描述如下:
一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD、录音图书磁带和报纸等出版物,供读者借阅。这些出版物有出版物名、出版者、获得日期、目录编号、书架位置、借出状态和借出限制等属性,并有借出、收回等服务。
创建图书馆馆藏出版物的类图。
5-2、一台微机有一个显示器,一个主机,一个键盘,一个鼠标,汉王笔可有可无。主机涉及一个机箱,一个主板,一个电源,存储器等部件。存储器又分为固定存储器、活动存储器,固定存储器又分为内存和硬盘,活动存储器又分为软盘、光盘、优盘。请建立微机的类图。
5-3、交通工具分为空中、陆地、水上三种。空中交通工具分为客机、货机、专用轻型机。陆地交通工具分为列车、汽车;列车又分为旅客列车、货运列车;汽车又分为客车、货车。水上交通工具分为客轮、货轮、客货混合轮。建立交通工具的类图。
6-1、人们烧水的状态描述如下:
初始状态进入烧水过程时先处在炉子关闭状态,当打开炉子的触发事件发生时,需要检查是否满足监护条件“壶里是否有水”,假如满足则执行烧水的动作,触发转换进入到炉子打开状态,在此状态下,假如出现水烧开了,或壶烧坏了的情况,状态图应如何表达?试创建烧水的状态图。
6-2、图形用户界面具有一个主菜单和一个带有文献打开命令的文献菜单,在每个菜单上都有一条退出命令。假设每次只有一个文献可以打开。建立图形用户界面的状态图。
6-3、航班机票预订系统状态描述:在刚拟定飞行计划时,显然没有任何预订的,并且在有人预订机票之前都将处在这种“无预订”的状态。对于订座而言,显然有“部分预订”和“预订完”两种状态,当航班快要起飞时,显然要“预订关闭”。请建立航班机票预订系统的状态图。
7-1、请根据使用电话的通常情况画出描述交互行为状态图来。 电话系统的一般操作过程为:没人打电话时电话处在闲置状态;有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音;这时假如拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重又回到闲置状态;假如拿起听筒很长时间不拨号(超时),则进入超时状态……
7-2、请根据下述电梯系统的需求描述画出类图来。
在一幢m层楼的大厦中,用电梯内的和每个楼层的按钮来控制n部电梯的移动。 每部电梯有m个按钮,每个按钮代表一个楼层。当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,当到达由按钮指定的楼层时指示灯熄灭。
除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行。当这两个按钮之一被按下时相应的指示灯亮,当电梯达成此楼层时灯熄灭,电梯向请求的方向移动。
当电梯无升降动作时,关门并停在当前楼层。
展开阅读全文