面向对象建模技术-复习试卷

面向对象建模技术-复习试卷
面向对象建模技术-复习试卷

《面向对象建模技术》期末考试试题(A卷)

考试时间:2014年11月9日班级学号姓名

?请将答案写在答题册上,写明题号,不必抄题,字迹工整、清晰;

?请在答题册和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题册和草纸

一并交上来。

一、选择题,每题1分,共计25分。每个括号里的数字为该空的题号,从该题号对应的备

UML中有多种类型的图,其中,(1)对系统的使用方式进行分类,(2)显示了类及其相互关系,(3)显示人或对象的活动,其方式类似于流程图,通信(协作)图显示在某种情况下对象之间发送的消息,(4)与通信(协作)图类似,但强调的是顺序而不是连接。

(1) A. 用例图 B. 顺序图 C. 类图 D. 活动图

(2) A. 用例图 B. 顺序图 C. 类图 D. 活动图

(3) A. 用例图 B. 顺序图 C. 类图 D. 活动图

(4) A. 用例图 B. 顺序图 C. 类图 D. 活动图

下图属于UML中的(5),其中,AccountManagement需要(6)。

(5) A. 组件图 B. 部署图 C. 类图 D. 对象图

(6) A. 实现IdentityVerifier接口并被CreditCardServices调用

B. 调用CreditCardServices实现的IdentiyVerifier接口

C. 实现IdentityVerifier接口并被Logger调用

D. 调用Logger实现的IdentityVerifier接口

下列对状态图描述不正确的是(7)

(7) A. 状态图通过建立类对象的生命周期模型来描述对象随时间变化的动态行为

B. 状态图适用于描述状态和动作的顺序,不仅可以展现一个对象拥有的状态,还可与说

明事件如何随着时间的推移来影响这些状态

C. 状态图的主要目的是描述对象创建和撤销的过程中资源的不同状态,有利于开发人员

提高开发效率

D. 状态图描述了一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处状

态对不同的事件作出反应

在ATM自动取款机的工作模型中(用户通过输入正确的用户资料,从银行取钱的过程),下面哪个不是“Actor”(8 )

(8) A. 用户 B. A TM取款机 C. ATM取款机管理员 D. 取款

(9) 反映类、接口或构件的内部协作,用于表达运行时的体系结构、使用模式及关系。(9)A. composite structure diagram B. deployment diagram

C. use case diagram

D. sequence diagram

在RSA中包含很多模型模板,供开发者在系统建模时选用。(10)不是RSA提供的模型模板。

(10)A. Analysis Model B. Service Design Model

C. XSD Model

D. Eclipse plug-in Model

在UML的各种视图中,(11)显示外部参与者观察到的系统功能;(12)从系统的静态结构和动态行为角度显示系统内部如何实现系统的功能;(13)显示的是源代码以及实际执行代码的组织结构。在 ROSE中,时序图和协作图(或通信图)通常建立在(14)下的use case realization包中。

(11)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图(12)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图(13)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图(14)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图

在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(15)。

a b c

15.供选择的答案:

A. 边界对象、实体对象、控制对象

B. 实体对象、边界对象、控制对象

C. 控制对象、实体对象、边界对象

D. 边界对象、控制对象、实体对象

在建立系统的用例模型时,首先应该确定系统的参与者。以下问题中,对于确定参与者没有用处的是(16)。

16.供选择的答案:

A. 谁是系统的主要用户,即谁使用系统的主要功能

B. 谁来管理、维护系统,以保证系统的正常运行

C. 系统的功能应该如何实现

D. 系统需要与哪些其他的系统交互

UML 中的构件是遵从一组接口并提供一组接口的实现,下列说法错误的是(17)。

17.供选择的答案:

A. 构件应是可替换的

B. 构件表示的是逻辑模块而不是物理模块

C. 构件应是组成系统的一部分

D. 构件与类处于不同的抽象层次

采用UML进行软件建模过程中,类图是系统的一种静态视图,用(18)可明确表示两类事物之间存在的整体/部分形式的关联关系。

(18)A. 依赖关系 B. 聚合关系 C. 泛化关系 D. 实现关系

Round-Trip Engineering能够帮助维持软件架构的完整性。但(19)不是Round-trip Engineering的好处之一。

(19)A. 发现和评估软件架构上的改动 B. 为相同的接口提供不同的实现

C. 在每次迭代中保持模型和代码的同步

D. 传达被接受的架构改动

(20)设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。(21)模式将对象组合成树形结构以表示“部分-整体”的层次结构,并使得用户对单个对象和组合对象的使用具有一致性。

(20)A. Adapter(适配器) B. Iterator(迭代器)

C. Prototype(原型)

D. Observer(观察者)

(21)A. 组合(Composite) B. 桥接(Bridge)

C. 修饰(Decorator)

D. 外观(Facade)

(22)反映了类间的一种层次关系,而(23)反映了一种整体与部分的关系。(22)A. 继承 B. 组合 C. 封装 D. 多态

(23)A. 继承 B. 组合 C. 封装 D. 多态

(24)技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。

(24)A. 泳道 B. 分叉汇合 C. 分支 D. 转移

(25)是用于把元素组织成组的通用机制

(25)A. 包 B. 类 C. 接口 D. 组件

二、判断正误,每题1分,共计15分。请按如下表格在答题纸上答此题。

1、在用例建模中,Scenario(场景)强调的是完整性,而用例强调的是可理解性。

2、在两个用例中,如果一个用例拥有另一个用例的所有结构、行为和关系,并在此基础上

增加了新的特性,则此两个用例之间可以用扩展关系表示。

3、Controlled Unit是可以进行版本控制的模型元素,在ROSE中,模型文件本身被打包存储为.cat文件从而成为受控单元,Logical View和Use CaseView被打包成.mdl文件而成为受控单元。

4、每一种UML图都只能用于一个模型中,同样一个模型元素只能够出现在一个图中。

5、RSA所支持的查询图是UML2.0中新增加的一种图,它包括浏览图(Browse Diagram)和主题图(Topic Diagram)。

6、模型驱动的开发(Model-Driven Development)包含CIM、PIM和PSM等抽象层次。

7、在状态图中,内部转换可导致进入转换和离开转换的执行。

8、UML适用于以体系结构为中心的开发过程,但不适合在具有迭代特征的开发过程中使用。

9、请求接口(Required Interface)用于定义一个构件所提供的服务。

10、Use Case Realization 和相应的Use Case之间是一种泛化关系。

11、分析机制(Analysis mechanisms)通常用于分析阶段,通过提供对系统复杂行为(如安

全性、持久存储等)的简短描述来减少分析的复杂性并改善软件在各开发阶段一致性。

12、在RUP中,识别设计元素(Identify Design Elements)是精化体系结构(Refine the

Architecture)活动中的一个步骤。

13、在ROSE中,从Browser窗口删除图形元素和从Diagram窗口中删除模型元素的效果相

同。

14、需求工件(artifact)中至少应该包括用例模型、术语表(glossary)和补充说明(supplementary

specification)三份文档。

15、UML结构包括构造块、公共机制和图三个部分。

三、完成下列各题,在答题纸上写出答案。每题5分,共计25分。

1. 说明Sequence Diagram 和Collaboration Diagram (或UML

2.0中的Communication

Diagram)的异同点。(5分)

2. 说明在RSA中将模型进行分块(partition)的原因。为什么有时候会结合(combine)几

个没有共同祖先的模型?(5分)

3. 比较活动图和状态图,从描述重点和使用场合两个方面说明它们的不同之处。(5分)

4. Stereotypes(版型)有什么作用?给出两Stereotypes的例子。(5分)

5. 说明UML中的关联、泛化、实现、依赖四种关系各自的含义,并区分聚合(Aggregation)

和组合(Composition)两种关系的不同。(5分)

四、分析题(35分)

1. 阅读下列说明和图,完成问题1和问题2,并在答题纸上自行列表写出答案。

【说明】

在线会议审稿系统(Online Reviewing System, ORS)主要处理会议前期的投稿和审稿事务,其中提交稿件的流程描述如下:

作者登录(login)后方可提交稿件,提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要,选择稿件所属主题类型,选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。

系统采用面向对象的方法开发,使用UML进行建模。提交稿件涉及的活动名称参见表1-1,系统提交稿件的活动图如图1-1所示。

表1-1 活动名称列表

图1-1 提交稿件过程的活动图

【问题1】(4分)

根据【说明】中的描述,使用表1-1中的英文名称,给出图1中Action1~Action4对应的活动。

【问题2】(2分)

举例说明活动图中分支(branch)/合并(merge),与分叉(fork)/汇合(join)这两组概念的区别。

2. 某大型商场的管理信息系统是由一个中央服务器、每个楼层的楼层服务器、各柜台的收款机和各个业务部门的计算机终端组成的局域网络,它们分别负责商场数据的汇总与分析、当日数据的保存与整理、每笔销售款项的计算和进销存等各种业务的处理。用配置图(或称部署图)描述各项任务在不同硬件设备上的配置情况。(6分)

3. 某公司要开发一个旅店管理系统,该旅店可对外开放10个双人间和10个单人间,房间费用视情况按季节调整,但周一到周五半价(周末全价)折扣不变。对于外界请求,该系统应能根据请求入住时间预定指定档次的房间,记录旅客姓名、地址、联系电话、有效证件号、房间类型和预定天数,并计算出总费用。预定的同时旅客按规定须提交10%定金。六个小时之内旅店允许旅客取消预定,并退回所有定金,超过六个小时定金不退还。每周一系统自动打印一周预定情况清单。采用哪种费用支付方式和何种类型操作界面尚不确定。

参阅上述初步用户需求,完成下面所要求的内容

【问题1】(10分)

完成“旅店管理系统”的系统用例图,注意用例的命名和用例间的关系的使用.

4. 员工脸部识别考勤系统是为考察员工出勤情况而开发的,用于对员工的出勤情况进行监控。该系统要对员工的脸部图像信息进行采集,即系统识别员工的脸部图像,并根据员工输入的个人信息(包括姓名和工作号)生成员工图像记录;员工在每天上班和下班时使用该系

统进行身份识别,即系统识别员工的脸部图像,然后将识别的图像信息与系统中保存的员工脸部图像信息进行匹配,如果匹配成功则将识别出的员工身份和当前日期、时间等信息保存到员工出勤数据库中;如果匹配不成功,则返回错误信息,员工需再次进行脸部识别;考勤员可以在需要的时候使用该系统生成员工的出勤情况统计分析表。

假设在该员工脸部识别考勤系统中,有一个用例名为“上班登记”。此用例允许员工在

上班时使用系统识别自己的脸部图像进而识别自己的身份,同时系统可以将登录信息存储在

数据库中。该用例的一个基本事件流如下:

1.员工从系统菜单中选择“上班登记”(worker selects “entrance registry” from the system

menu);

2.系统显示脸部识别窗口;(the system displays the face recognition interface)

3.员工将脸部对准识别窗口;(worker watches the interface)

4.系统捕获并识别员工的脸部图像,向员工返回识别的身份信息;(the system captures

and recognizes the worker’s face and returns the recognized identity information )

5.员工选择“确认”按钮;(worker presses the “confirm” button)

6.系统生成一个关于该员工及当前日期和时间的新记录,并将该记录保存到数据库中。

(the system creates a new record about the worker, date and time, and saves this record to

the database)

【问题1】(5分)

请根据上述的事件流识别和标识类,

【问题2】(8分)

画出UML顺序图和类图。

UML面向对象分析与设计、建模与设计课后选择判断

第一章 1.选择题 (1)软件工程的概念是在()年被首次提出的。 A.1949 B.1968 C.1972 D.1989 (2)下列不属于软件工程的目标的一项是() A.提高软件产品的质量 B.提高软件产品的可靠性 C.减少软件产品的需求 D.控制软件开发成本 (3)软件危机产生的主要原因是() A.软件工具落后 B.软件生产能力不足 C.对软件认识不够 D.软件本身的特点及开发方法 (4)人们公认的第一门面向对象编程语言是()。 A. Simula B. Smalltalk C. C++ D. Java (5)下列编程语言中不支持面向对象的特性的是()。 A. C++ B. ANSI C C. Java D. Objetive c (6)下列选项中不是面向对象方法的相关原则的是()

A.封装 B.继承 C.多态 D.结构 (7)()是面向对象方法中用来描述”对客户隐藏对象的属性和实现细节”的概念。 A.封装 B.继承 C.多态 D.抽象 (8)下列选项中不属于面向对象方法的优势之-的是()。 A.复用性强 B.改善了软件结构 C.软件的执行效率更高 D.抽象更符合人类的思维习惯 2.判断题 (1)软件就是程序,编写软件就是编写程序。对错 (2)软件危机的主要表现是软件需求增加,软件价格上升。对错 (3) C语言对面向对象的发展起到了重要作用。对错 (4)面向对象方法中的对象是从客观世界中抽象出来的一个集合体。对错 (5)面向对象可以保证开发过程中的需求变化完全不会导致系统结构的变化。对错 (6)面向对象方法就是使用面向对象的程序设计语言进行编程。对错

(7)对象的自治性指的是对象是完全封闭的,不受任何外界影响。对错 (8)类是面向对象程序中的构造单位,也是面向对象程序设计语言的基本成分。对错 第二章 1.选择题 1.选择题 (1)下列关于模型的表述,不正确的项是()。 A.建模语言只能是图形表示的 B.模型所描绘的系统蓝團既可以包括详细的计划,也可以包括系统的总体计划 C.模型可以帮助开发组生成有用的工作产品 D.最好的模型总是与现实世界联系密切 (2) UML的全称是()。 A. Unify Modeling L.anguage B. Unified Modeling Language

面向对象技术引论(复习题)[参考解答]

《面向对象技术引论》复习题 一、概念与术语 1. 对象: 在现实世界中,对象定义为:问题的概念和抽象的或具有明确边界和意义的事物; 在数据世界中,对象定义为:一组数据以及施加于这组数据上的一组操作; 从系统的观点出发,我们可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位(单元),一个对象是由一组属性和对这组属性进行操作的一组服务构成的。 2.持久对象: 生存期可以超越程序的执行时间而长期存在的对象称为持久对象。换句话说:一个对象在程序运行结束后仍继续存在,则称该对象是持久的。 2.主动对象: 主动对象是一组属性和一组操作(服务)的封装体,其中至少有一个操作不需要接收消息就能主动执行(称为主动服务)。 3.被动对象: 被动对象(Passive object)是指其内部的操作需要通过外部消息驱动才能执行的对象。可以看出被动对象必须工作在消息驱动环境中。 4.类: 定义1 一组具有相同性质(属性和操作)的对象的抽象。 定义2 类是对一组具有相同属性、操作、关系和语义的对象的描述。 定义3 具有相同属性和容许操作的一组对象的一般描述称为类。 5.主动类: 主动类的对象至少拥有一个进程或线程,因此它能够自主执行(能够启动控制活动)。注意:主动类的对象所描述的元素的行为与其他元素的行为并发,这是它与一般类的唯一区别。6.接口: 接口是描述一个类或构件的一个服务的操作集。因此,接口描述元素的外部可见行为。接口描述了一组操作的规格,而不是操作的实现。图形上,用一个带有名称的圆表示接口。7.用况: 用况是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的结果。用况用于对系统语境和系统需求建模。图形上,用一个包含名称的实线椭圆表示用况。 8.协作: 协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的综合。因此协作有结构、行为和维度。图形上,用一个仅包含名称(协作名)的虚线椭圆表示协作。 9.构件: 构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。构件是物理的、可替代的部件。 10.节点: 节点也是物理的,是在系统运行时存在的物理元素,它表示了一种可计算的资源,通常至少有一些记忆能力和处理能力。 11.一般类/ 12. 特殊类: 如果类A具有类B的全部属性和服务,而且具有自己特有的某些属性和服务,则类A叫做类B的特殊类,类B叫做的类A的一般类。两者之间的关系称为“泛化”。可以看出一般

软件建模和设计试题

一.名词解释: 1.在软件工程中,对客观世界的问题领域进行抽象,并用某描述方法表示的结果称为模型。模型是现实系统的简化,它是抓住现实系统的主要方面而忽略次要方面的一种抽象,是对问题的书面上的、图形或文字的、无歧义的描述。人们常常在正式构造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握。 https://www.360docs.net/doc/246764895.html,e Case(用例):在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。一个Use Case表达了用户对系统的一项需求,也就是系统的一项责任或功能。 3.架构风格指一组原则。可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。软件体系架构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系架构风格定义了一个系统家族,即一个体系架构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。例如,如果某人把系统描述为“客户/服务器”模式,则不必给出设计细节,我们立刻会明白系统是如何组织和工作的。 4.类(Class)是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。类通过接口与外界发生关系。 5.软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 二、 1.面向对象建模的大致过程如下: 用UML进行面向对象建模首先要描述总体需求。在这一阶段中主要是建立用例模型和静态模型,以搭建系统体系结构。用例图是系统的高级视图,要求按照面向对象的原则,站在功能划分的角度将系统要实现的行为划分为用例;以用例之间的动态交互及交互时间为依据产生顺序图;接下来就在用例图的基础上抽象出系统的类,明确各模块之间的关系以适当的粒度画出类图,其中也包括了与用例图的相互迭代修改在分析完模块的静态交互关系后继而要绘制出构件图。以上这些过程中均不考虑系统的具体实现,如建立什么样的数据库或采用什么语言编码等,最好是以使用者的眼光去分析系统功能。为建立完整的系统模型,还要对模块交互和构件细节做进一步分析,补充状态图、活动图、协作图和实施图等,从尽可能多的角度对复杂系统进行描述。在模型确定后就可以借助相应的支撑软件将模型导出为

基于UML的面向对象建模方法

基于UML的面向对象建模方法 姓名: 赵付轩 学号: 10041156 专业: 信号与信息处理 学院: 信息科学与技术学院

基于UML的面向对象建模方法 摘要:本文介绍了一种基于UML(统一建模语言)的网上报名系统。首先对UML语言进行了简单说明,其次根据UML建模过程对网上报名系统进行了需求分析,构建了用例图、类图两个模型,最后根据该模型开发了大学英语四六级考试报名系统,该系统具有可操作性强、扩展性好、效率高的优点。 关键词:UML;网上报名;面向对象

目录 1 引言 (1) 1.1 UML概述 (1) 2 面向对象原理 (1) 2.1 基本概念 (1) 2.2 基本特征 (2) 3 运用UML进行系统建模 (2) 3.1 UML建模机制、步骤 (2) 4 网上报名系统的UML建模 (3) 4.1 需求分析 (3) 4.2 分析与设计 (4) 4.2.l 静态建模 (4) 4.2.2 动态建模 (5) 5 结语 (6) 参考文献 (6)

1 引言 面向对象方法已经成为软件开发的主要方法,面向对象的分析方法以对象作为分析问题,解决问题的核心,并对问题空间进行直接映射,使计算机实现的对象与真实世界具有一一对应关系,符合人类认识规律,有效地解决了需求分析模型和软件设计模型的不匹配现象。由于采用了数据抽象和封装技术,面向对象的程序设计降低了各模块间的耦合,可实现较高的代码利用率。基于UML建模技术可以进行面向对象的分析、设计、编程、测试以及面向对象的软件过程,它以统一建模语言作为分析工具,利用面向对象的思想对问题域进行建模。本文针对建模的方法和技术进行了讨论,并结合实例加以说明。 1.1 UML概述 统一建模语言是用来对软件密集系统进行可视化建模的一种语言。它是面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。UML具有庞大的体系结构和丰富的内容。不仅融合了Booch、OMT、OOSE方法的核心内容,同时也吸取了其他面向对象方法中的优势。在原有的面向对象概念和理论方法的基础上,创造和构建了许多全新的方法论,为采用面向对象方法进行工程分析与设计奠定了良好的基础,并提供了充分的理论依据和方法。 UML独立于开发过程,不仅可以与规范化的CASE工具配合使用,也可以在其他面向对象的开发过程中应用。同时,UML语言独立于程序设计语言,用UML建立的软件系统模型可以采用多种面向对象开发语言进行实现。 2 面向对象原理 2.1 基本概念 概括地说,面向对象就是把问题抽象为对象,设置属性(数据),指定事件或处理方式以达到目的,并强调从问题域的概念到软件程序和界面的直接映射。 (1)对象:事物的抽象对象可以被定义为一个封装了状态和行为的实体,或者说是数据结构和操作。所有对象都是类的实例。

第6章面向对象方法学引论

第6章 面向对象方法学引论 教学提示:本章主要讲述面向对象方法学的优缺点;面向对象的基本概念:对象、类、实例、消息、方法、封装、继承、多态性和重载等;面向对象的软件工程:OOA、OOD、 OOP、OOT;面向对象的建模及对象模型、动态模型、功能模型;面向对象的开发方法。 教学要求:面向对象的基本概念,比较抽象,教学中要注意结合面向对象的高级语言举一些例子来更深刻地领会。本章难点是面向对象的概念及特征和面向对象的模型。掌握面向对象的基本概念及特征,面向对象的建模,面向对象的软件工程。了解面向对象方法学的定义和优点,面向对象的开发方法。 面向对象的软件开发方法在20世纪60年代后期首次提出,经过将近20年这种技术才逐渐得到广泛应用。到了20世纪90年代前半期,面向对象的软件工程方法学已经成为人们在开发软件时首选的范例。今天看来,面向对象技术似乎是最好的软件开发技术 6.1 面向对象方法学概述 面向对象的技术是当前计算机界所关心的重点,是目前软件发展的主流。面向对象的概念来自面向对象的程序设计语言,实际上,面向对象的概念和应用已经超越了程序设计语言,扩展到很宽的范围,如面向对象的数据库系统、面向对象的系统分析与设计、CAD 技术、人工智能以及其他广泛的应用范围。 6.1.1 面向对象方法的发展历程 面向对象的方法的研究正在引起全世界越来越强烈的关注和高度重视,被誉为“研究最新技术的好方法”。针对日趋复杂的软件需求的挑战,软件业界开始崇尚利用面向对象的方法和思想进行软件开发。 与人类发明史上的许多创举不同,面向对象不是瞬间出现的。面向对象不是某个人的突发奇想,而是许多人经历多年研究积累的产物。 面向对象的方法起源于面向对象的程序设计语言。在20世纪60年代中期Simula-67的设计者Dahl和Nygaard 提出对象(object)的概念,在程序设计语言中开始使用数据封装(data encapsulation)的概念。在20世纪70年代,Liskov使用抽象数据类型(ADT)的理论和实现有了重大的进展,奠定了面向对象的基础。Liskov最著名的研究成果是CLU语言,支持隐藏内部数据表示方法。从20世纪70年代起,Xerox公司的 Palo Alto 研究中心经过对Smalltak 72、74连续不断的研究、改革后,在1980年推出了Smalltalk-80,它在系统设计中强调对象概念的统一,引入对象、对象类、方法和实例等概念及术语,采用了动态联编及单继承机制,体现了面向对象方法的许多重要概念,对面向对象方法学的形成和发展起

面向对象建模案例

例:超市进销存系统的需求描述如下: (1)销售 ①售货员接收顾客订购,输入顾客购买的商品,计算总价; ②顾客付款并接收清单; ③售货员保存顾客购买商品的记录清单。 (2)库存 ①库存管理员每天进行盘点一次; ②库存管理员当发现库存商品有损坏时,及时到相关部门报损; ③在供应商的商品到货时,库存管理员首先检查商品是否合格,并将合格的商品入库处理;当商品进入卖场时,进行商品出库处理; ④经理、订货员根据需要进行库存商品的模糊查询或详细查询。 (3)订货 ①订货员用新商品供应商信息更新供应商数据库的信息; ②订货员统计库存商品是否低于库存下限,然后制作订货单。 (4)统计 ①经理能够使用系统的统计功能,了解商品销售情况、库存情况、供应商情况,以便进行合理的营销策略。 ②经理按市场情况适时变动商品价格。 试建立超市进销存系统的用例模型。 顾客 图1 销售子系统

商品出入库 图2 库存子系统 制作订货单图3 订货子系统用例模型

特殊商品查询 图4 统计子系统用例模型 思考??在用例图中的用例通常只是简单地给出了系统应提供什么服务,并没有展示出如何提供服务,如服务的具体功能、处理流程、场景、出错情况以及异常情况等信息,如何能知道前述信息? !!!用例的描述常采用文字列表形式,也可采用UML图形描述,如交互图、活动图等。 3.试为以下各类建立UML类图及描述它们间的关系。 家用电器、电视机、液晶电视机、电视遥控器、DVD播放机、组合音响、音响功放、音箱、喇叭、低音泡、高音泡、厨具、电厨具、微波炉、电磁炉、电饭煲

销售管理子系统的部分用例描述:

比较四种典型面向对象方法的异同

普 通 本 科 毕 业 小 论 文 题目:比较四种典型面向对象方法的异同 学院软件与通信工程学院 学生姓名张伟聪学号 0123992 专业软件工程届别 125 指导教师廖汉成 二O一四年九月二十七日

一、引言 随着计算机科学的发展和应用领域的不断扩大,对计算机技术的要求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对软件提出了更高的要求。结构化程序设计语言和结构化分析与设计已无法满足用户需求的变化。发展软件质量,缩短软件开发周期,发展软件可靠性、可扩充性和可重用性迫使软件界人士不断研究新方法、新技术,探索新途径。 面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。面向对象程序设计方法起源于六十年代末期的语言SIMULA’67,到了七十年代末期,软件行业正受到软件危机的困扰,结构化的开发方法不能够很好地解决软件危机。面向对象语言Smalltalk的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象也和开发方法开始结合,出现了面向对象的开发方法。 自80年代后期以来,相继出现了多种面向对象开发方法,现将其中四种典型的方法作一个简介和比较。面向对象方法都支持三种基本的活动:识别对象和类,描述对象和类之间的关系,以及通过描述每个类的功能定义对象的行为。 一.Booch方法 Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。OOD[3](Object Oriented Design)方法是Grady Booch从1983年开始研究,1991年后走向成熟的一种方法。OOD主要包括下述概念:类(class)、对象(object)、使用(uses)、实例化(instantiates)、继承(inherits)、元类(meta class)、类范畴(class category)、消息(message)、域(field)、操作(operation)、机制(mechanism)、模块(module)、子系统(subsystem)、过程(process)等。其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。元类是类的类。类范畴是一组类,它们在一定抽象意义上是类同的。物理的一组类用模块来表达。机制是完成一个需求任务的一组类构成的结构。 Booch方法的过程包括以下步骤: (1)在给定的抽象层次上识别类和对象; (2)识别这些对象和类的语义; (3)识别这些类和对象之间的关系; (4)实现类和对象;

(最新版)面向对象分析与设计UML实验报告

《面向对象分析与设计UML》 实验报告

实验及作业一 一、实验目的 了解软件工程等基础知识,为后续的统一建模语言UML知识的学习做好准备工作。 二、实验设备与环境 装有Visio、RationalRose的计算机。 三、实验内容 1、复习阐述“软件工程开发模型”的相关概念,并分析各种模型的优缺点,写成实验报告。 2、熟悉UML软件设计工具Visio、Rational Rose的安装及环境 四、实验过程及结果 经过上网搜索相关信息进行了解软件工程开发模型的相关概念与优缺点 一,什么是软件工程概念模型 模型就是抽象,就是有意识地忽略事物的某些特征。抽象带来的好处是能够反映模型中元素之间的关系,清晰把握大局。 概念模型是模型的一种,简单说就是抽象程度极高的一种模型。 软件工程概念模型是对软件工程领域进行抽象描述的模型,它能够使我们对软件工程有一个完整把握。 二,软件工程开发模型的种类以及优缺点 瀑布模型由W.Royce于1970年首先提出。根据软件工程生存周期各个阶段的任务,瀑布模型从可行性研究开始,逐步进行阶段性变换,直至通过确认测试并得到用户确认的软件产品为止。瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密联系。一个阶段的失误将蔓延到以后的各个阶段。为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶

段的工作。评审过程发现错误和疏漏后,应该及时反馈到前面的有关阶段修正错误或弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段。瀑布模型如图1.1所示。 瀑布模型有许多优点,如可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证等。 但瀑布模型也存在缺点,其主要表现在:①在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。而瀑布模型在需求分析阶段要求客户和系统分析员必须做到这一点才能开展后续阶段的工作。②确定需求后,用户和软件项目负责人要等相当长的时间才能得到一份软件的最初版本。如果用户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力和时间方面的损失。 原型模型又称演化模型,主要是针对事先不能完整定义需求的软件项目开发而言的。许多软件开发项目由于人们对软件需求的认识模糊,很难一次开发成功,返工再开发难以避免。因此,人们对需开发的软件给出基本需求,作第一次试验开发,其目标仅在于探索可行性和弄清需求,取得有效的反馈信息,以支持软件的最终设计和实现。通常我们把第一次实验性开发出的软件称为原型(prototype)。这种开发模型可以减少由于需求不明给开发工作带来的风险,有较好的效果。相对瀑布模型来说,原型模型更符合人类认识真理

三种面向对象方法

三个著名的面向对象开发方法

摘要 主要介绍了3种典型的面向对象开发方法,并对它们进行了比较。面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。 关键字:面向对象;开发方法;OMT;BOOCH;JACOBSON; 1.引言 面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。 面向对象程序设计方法起源于六十年代末期的simnia语言.Smalltalk语言的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象与开发方法开始结合,出现 了面向对象的开发方法.自80年代后期以来,相继出现了多种面向对象开发方法,现将其中几种典型的方法作一比较分析. 2.三种典型的面向对象开发方法 2.1 OMT/Rumbaugh OMT(Object Modeling Technique)方法提出于1987年,曾扩展应用于关系数据库设计.1991年Jim Rumbaugh正式把OMT应用于面向对象的分析和设计.这种方法是在 实体关系模型上扩展了类、继承和行为而得到的.OMT覆盖了分析、设计和实现3个阶段,包括一组相互关联的类(class )、对象(object)、一般化(generalization)、继承(inheritance)、链(link)、链属性(link attribute)、聚合(aggregation)、操作(operation)、事件(event)、场景(scene)、属性(attribute)、子系统(subsystem)、模块(module)等概念. OMT方法把分析时收集的信息构造在3种模型中,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充.对象模型用ER图描述问题域中的列象及其相互关系,用类和关系来刻画系统的静态结构,包括系统中的对象、对象之间的关系、类的属性和操作等特征.动态模型用事件和对象状态来刻画系统的动态特性,包括系统对象的事件序列、状态和操作.功能模型按照对象的操作来描述如何从输入给出输出的结果,描述动态模型的动作所定义对象操作的意义。 OMT方法包含分析、系统设计、对象设计和实现4个步骤,它定义了3种模型,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充。这3种模型是:对象模型,用类和关系来刻画系统的静态结构;动态膜型,用事件和对象状态来刻画系统的动态特性;功能模型,按照对象的操作来描述如何从输人给出输出结果。分析的目的是建立可理解的现实世界模型。系统设计确定高层次的开发策略。对象设计的目的是确定对象的细节,包括定义对象的界面、算法和操作。实现对象则在良好的面向对象编程风格的编码原则指导下进行。 开发的四个阶段如下: (1)分析。基于问题和用户需求的描述,建立现实世界的模型。分析阶段的产物有: ●问题描述 ●对象模型=对象图+数据词典 ●动态模型=状态图+全局事件流图 ●功能模型=数据流图+约束 (2)系统设计。结合问题域的知识和目标系统的系统结构(求解域),将目标系统

面向对象建模技术模拟试卷A(带标注)

2010-2011学年第1学期 面向对象建模技术模拟试题(A卷) 考试时间:2010年12月30日 班级学号姓名 ?请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰; ?请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸 一并交上来。 一、选择题,每题1分,共计20分。每个括号里的数字为该空的题号,从该题号对应的备选答案中选择最佳的一项,每空限填一个选项。请按如下表格在答题纸上答此题。 在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(1)。 a b c 1.供选择的答案: A. 边界对象、实体对象、控制对象 B. 实体对象、边界对象、控制对象 C. 控制对象、实体对象、边界对象 D. 边界对象、控制对象、实体对象 (2)设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。 2.供选择的答案: A. Adapter(适配器) B. Iterator(迭代器) C. Prototype(原型) D. Observer(观察者) Round-Trip Engineering能够帮助维持软件架构的完整性。但(3) 不是Round-trip Engineering 的好处之一。 3.供选择的答案: A. 发现和评估软件架构上的改动 B. 为相同的接口提供不同的实现 C. 在每次迭代中保持模型和代码的同步 D. 传达被接受的架构改动

下面4种符号在Rose中表示的模型元素分别为(4) 4.供选择的答案: A. 接口(Interface) 类操作(Operation) 时序图(Sequence Diagram) 类属性(Attribute) B. 类操作(Operation) 接口(Interface) 类属性(Attribute) 时序图(Sequence Diagram) C. 接口(Interface) 类属性(Attribute) 类操作(Operation) 时序图(Sequence Diagram) D. 时序图(Sequence Diagram) 类属性(Attribute) 接口(Interface) 类操作(Operation) 在建立系统的用例模型时,首先应该确定系统的参与者。以下问题中,对于确定参与者没有用处的是(5)。 5.供选择的答案: A. 谁是系统的主要用户,即谁使用系统的主要功能 B. 谁来管理、维护系统,以保证系统的正常运行 C. 系统的功能应该如何实现 D. 系统需要与哪些其他的系统交互 (6)技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。 6.供选择的答案: A. 泳道 B. 分叉汇合 C. 分支 D. 转移 UML 中的构件是遵从一组接口并提供一组接口的实现,下列说法错误的是(7)。 7.供选择的答案: A. 构件应是可替换的 B. 构件表示的是逻辑模块而不是物理模块 C. 构件应是组成系统的一部分 D. 构件与类处于不同的抽象层次 下列对状态图描述不正确的是(8) 8.供选择的答案: A. 状态图通过建立类对象的生命周期模型来描述对象随时间变化的动态行为 B. 状态图适用于描述状态和动作的顺序,不仅可以展现一个对象拥有的状态,还可与说明事件 如何随着时间的推移来影响这些状态 C. 状态图的主要目的是描述对象创建和撤销的过程中资源的不同状态,有利于开发人员提高开 发效率 D. 状态图描述了一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处状态对不 同的事件作出反应

面向对象技术引论(复习题带术语题答案)

一、概念与术语 1. 对象:(1)从现实世界:问题的概念和抽象的或具 有明确边界和意义的事物 (2)从数据世界:一组数据以施加在这组数据上的一组操作 (3)从系统观点:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,一个对象是由一组属性和对整个属性进行操作的一 组服务构成的。(P19) 2.持久对象:生存期可以超越程序的执行时间而长 期存在的对象。(P24) 2.主动对象(3种解释):(1)一个能够启动消息传 递的对象。(2)一个能为其他对象提供服务的对象,能被拷贝成代理,并且需要并发控制。(3)其方法(操 作)由自身状态的改变而激活。(P25) 3.被动对象:其内部的操作需要通过外部消息驱动 才能执行的对象。(P25) 4. 类:一组具有相同性质(属性和操作)的对象的 抽象。(P20) 5. 主动类:主动类的对象至少拥有一个进程或线程, 因此它能够自主执行(P65) 6. 接口:描述一个类或构件的一个服务的操作集 (P64) 7. 用况:用况是对业务过程所包含的一组动作序列的 描述,系统执行这些动作将产生一个对特定的参与者 有价值且可观察的结果。(P42) 8. 协作:协作定义了一个交互,它是由一组共同工作 以提供某协作行为的角色和其他元素构成的一个群 体,这些协作行为大于所有元素的各自行为的综合 (P64) 9. 构件:构件是系统中物理的、可替代的部件,它遵 循且提供一组接口的实现。(P65) 10. 节点:节点也是物理的,是在系统运行时存在的 物理元素,它表示了一种可计算的资源,通常至少有 一些记忆能力和处理能力。(P65) 11. 一般类和12. 特殊类:如果类A具有类B的全部 属性和服务(操作),而且具有自己特有的某些属性 和服务,则类A叫做类B的特殊类,B叫做A的一 般类。(P22) 13. 关联(关系):事物(类)之间的一种结构关系, 或者说是对象之间连接的抽象,用来描述对象之间的 相互作用(P67) 14. 关联类:关联类是一种具有关联特性和类特性的 建模元素,可以将其看出是具有类特性的关联,或者 具有管理特征的类(P116) 15. 依赖(关系):依赖是两个事物之间的一种语义关 系,其中的一个事物的改变会影响另一个事物,反之 未必(P106) 16. 泛化(关系):泛化是一种“特殊/一般”关系, 即特殊事物和一般事物之间的关系。(P108) 17. 实现(关系):类元之间的语义关系(P16) 18. 链和链属性:对象之间的关联或相互作用表现出 不同的类的对象的实例之间的实际的或概念上的联 系,称为链。链属性:??(P110) 19. 聚合:聚合用来表示事物时间的“整体/部分”关 系,“整体”事物是一个较大的事物,它是由多个” 部分“事物组成的。(P113-114) 20. 问题域:是指特定应用系统的应用领域,即在现 实世界中由该系统进行处理的业务范围。(P47) 21. 系统责任:指系统应该具备的职能。(P47) 22. 消息:消息定义为向对象发出的服务请求(P23 和P127) 23. 交互:交互是发生在对象之间后对象内部的消息 传递行为(P66) 24. 事件:一个触发行为成为一个事件,换句话说, 所谓事件是指特定时刻内发生的动作。(P139) 25. 事件流:(P84) 26. 状态:指在对象的生命期中的一个条件或状况(通 过属性值体现),在此期间,对象将满足某些条件、 执行某些活动或等待某些事件。(p141) 27. 状态机:状态机描述了一个对象或一个交互在生 命期内响应事件所经历的状态序列,即描述其状态变 迁。(P66) 28.封装:封装是对拥有结构和行为的一个对象的元 素进行划分的过程,封装完成抽象的契约接口和对象 实施的分离(P28) 29. 继承:特殊类拥有一般类的全部属性和服务(操 作),称为特殊类对一般类的继承(P29) 30 多态:在一般类中定义的属性被特殊类继承之后, 可以具有不同的数据类型;同理,一般类中定义的操 作,可以在特殊类中具有不同的实现方法。(P31) 31. 抽象:抽象即指通过思考进行分离的行为。另一 种解释:表示某事物的本质特征(P27) 32. 角色:当一个类位于关联的某一端时,该类(的 某些实例)就在这个关系中扮演了特定的角色。(这 个算??)(P111) 33. 限定词(修饰关联):限定词是关联的一个特定的 属性,它的值划分了一个关联与一个对象相关的对象 集。(p116) 34. UML的规则(命名、范围、可见性、完整性、执 行):P70-P71太多了~不想打~ 35. UML的公共机制(详述、修饰、通用划分、扩展 机制(构造型、标记值、约束)) 36.OOPL:面向对象的编程语言,OOD:面向对象设 计范式,OOA:面向对象分析方法 37.准则包括标准与原则,模块化设计的标准包括:可 分解性、组合性、可理解性、连续性、保护性;设计 上应遵循的原则为:语言模块单元、接口很少、小接 口、显示接口、信息隐蔽等。 38.面向对象的四个基本要素:面向对象系统是由对象 组成的、组成系统的对象抽象成类、类之间存在泛化 关系,此种关系支持继承、对象之间通过消息获取对 方的服务。 39.应用开发过程六个阶段:需求描述、分析、设计、 实现、测试、维护。 40.UML对软件密集型系统的制品进行下述工作:可 视化、详述、构造、文档化。 41.UML三大建模元素:事物、关系、图,事物分为: 结构事物、行为事物、分组事物、注释事物,结构事 物分为:类、接口、协作、用况、主动类、构件、节 点。 42.提交一个应用系统的过程包括:计划和细化、构造、 实施。 二、思考题 1.为什么应用对象技术可以改变软件制造(生产) 方式? 由人工集约方式改变成资源集约方式,由重复性 的编程劳动变成基于组件的系统组装,从而带来软件生产 效率的大幅度提高。 2.试述建模的重要性,为什么建模可以降低系统实 现的复杂度。 建模是开发优秀软件所有活动的核心部分,其目 的是把所要设计的结构和系统的行为沟通起来,并对系统 的体系结构进行可视化和控制。建模是为了更好的理解正 在构造的系统,并经常提供简化和复用的机会。建模还可 以管理风险。一个成功的软件组织有很多成功的因素,其 中共同的一点就是对建模的采用。 模型可以提高系统的可测试性。提高可交流性。 增强开发过程的可视性,使得分析和设计思路、设计过程 可视化。降低实现的复杂度。 通过将复杂系统的重要部分分解成一次能理解 与处理的多个子部分,可以降低实现的复杂性。人对复杂 问题的理解能力是有限的,通过建模,缩小所研究问题的 范围,一次只着重研究它的一个方面,这就是所谓的“分 而治之”“各个击破”。 3.为什么面向对象方法能较好地管理复杂性并增强 伸缩性。 管理复杂性的一个好办法就是“分而治之”。“分” 就是对应用领域的分解,面向对象方法强调以客观世界的 事物为基础,把某一领域分割成各种对象,这显然比自顶 向下进行功能分解更自然、合理。“治”的基本方法就是: 采用封装技术对被分割的事物进行包装,以简化接口、减 少事物之间不必要的联系。利用事物之间的泛化管子构造 继承机制以获得重用。可用性和可扩展性意味着复杂系统 可以由简单系统组合而成,并且复杂系统可以采用“迭代” 方式,逐步增量形成。基于对象的分块技术也有助于解决 过程的伸缩性问题。 4.何谓“软件复用”,为什么说面向对象技术对“软 件复用”提供了卓有成效的支持? 软件重用是将已有软件的各种有关知识用于建 立新的软件,以缩减软件开发和维护的花费。包括分析模 型、设计模型、代码以及测试用例、测试信息等等的复用。 面向对象技术使软件重用技术更加完善和规范, 对象的重要特性。:抽象、封装、继承和多态都从不同角 度支持软件重用:抽象使得对象组件更具一般化,也即充 分考虑到对象自身的性质、性能和应用环境的复杂性等多 方面的要求,以此获得通用化和标准化方面的保证。封装 允许开发人员将对象视为“黑匣子”,只需通过界面去理 解、引用和操作对象,而不必关心其实现细节。继承使得 基于类的抽象层次和泛化结构的代码重用成为可能,也即 通过泛化关系使得特殊类可以共享一般类的性质。 5.“用况驱动的、迭代式的、增量”的开发方法的要 点、优点、时间盒。 要点:①软件开发过程要经历若干个开发周期, 每个周期都包含:分析、设计、实现和测试等活动。②在 经过一个初步的计划和细化阶段后,开发进入由一系列开 发周期组成的系统构造阶段,所以迭代主要发生在构造阶 段,当然也包含部分实施,因此严格讲,构造发生在构造 及实施阶段。③在每个开发周期中,通过增加新的功能使 系统得以扩充。④每个开发周期只针对比较小的一部分需 求,它要经历分析、设计、实现和测试等活动。每个开发 周期完成后,系统都获得一定程度的扩充。开发周期一般 是以用况为单位组织的。 优点:①因为每个开发周期只针对比较小的一部 分需求,所以就可以比较好的解决由于一个开发过程太庞 大、复杂使得开发人员无从下手的问题,也即能够比较有 效地管理复杂性。②因为每个开发周期只快速实现系统的 一小部分,所以在开发过程的早期就能够获得反馈信息。 用户的反馈信息越早越好,尽早听到和采纳用户的意见, 可以少犯错误。 时间盒即给开发周期限定时间,开发周期中的所 用工作都必须在这个时间内完成。 6.“计划和细化”阶段的主要工作和主要活动。 主要工作:初期概念的形成、为做出各种项 目选择所进行的调查研究、需求的规格化描述等。主 要活动:定义计划草案、编制初步调查报告、定义需 求、在术语表中记录术语、实现原型、定义用况、定 义概念模型草案、定义系统结构草案、精华计划。 7.“构造阶段”的主要工作和主要活动。 构造阶段包括一系列重复的开发周期,每个 开发周期主要工作:精华计划、同步制品、分析、设 计、实现、测试等。在这些开发周期中,系统得到了 扩展和完善。构造阶段的最终目标是得到一个能正确 符合需求的软件系统。 8.何谓链属性,试述链属性不应置入关联两端的某 一对象类中作为其属性的理由,请举例说明之。 由于关联特性与存在关联关系的两个类有 关,因此建模时经常会将这些属性随意地置入某一个 类中,当成类的属性。关联的特性是与被关联的两个 或多个类有关的那些属性,这些属性不是从属于单个 类的,因而不应该随意置入某个类中。 9.系统分析阶段如何识别类和排除虚假类?(分别 简述语法分析法和现实分析法的要点)。 现实分析法:确定问题陈述所涉及的哪些活动是 与需求密切相关的,分析这些活动涉及到哪些具体的事 物、概念、过程,遵循哪些规则等,它们都可能是系统内 部的对象类。 语法分析发:在问题陈述中,对象类通常对应于 名词或名词词组,因此从问题陈述中找出所有的名词或名 词词组,就得到大多数的候选类,运用排除法可以排除虚 假的类,就获得确定的类组。 虚假类:冗余类、无关类、模糊类、属性、操作、 角色、实现结构。 10.简述描述类的基本特征(名称、属性等)并举例 说明之。 名称:一个字符串;属性:已被命名的类的 特性;操作:一个服务的实现,该服务可以由类的任 何对象,甚至其他类的对象所请求,以影响其行为; 职责:类的契约或责任。 11.为什么“继承”可以简化对问题的认识? 这是因为在分析问题时,运用继承手段至少 可以从数量上减少必须理解和分析的不同情况。 12.列举引起需求变化的主要因素,面向对象方法如 何应对需求的不断变化? 问题域本身在系统开发过程中发生变化、用户因 素、竞争因素、经费因素、技术支持。 冻结需求法、以系统中最稳定的部分作为系统的基本单位 (对象)。 13. 简述软件维护的主要工作,并说明其重要性。 主要工作:对系统潜在的错误进行检测和改 正;不断地面对用户的新要求以及为适应新环境对系 统进行改进与增强。

面向对象建模方法

第十章 信息系统建设 10.11 面向对象建模方法

面向对象建模方法 面向对象(Object-oriented,OO)方法把对象作为系统建模的基本单元。 面向对象方法认为: 客观世界是由各种各样的对象组成的?对象即可以是具体的物理实体,也可以是抽象的逻辑实体。 ?每种对象都有各自的属性(静态特征)和行为或操作(动态特征)。 ?不同的对象之间的相互作用和联系构成了各种不同的系统。 2

3 面向对象建模方法 面向对象方法的本质就是从客观世界固有的事物出发来构造系统, 通过识别对象、分析对象间的关系,反映问题域中固有的事物及其相互关系。

1. 面向对象建模工具 UML(Unified Modeling Language,统一建模语言)是一种标准的图形化建模语言, 它是面向对象分析与设计的一种标准表示。 用例建模:用用例图和用例说明描述用户需求。 静态建模:通过类图/对象图描述系统中的对象如何组成系统。 动态建模:描述系统的动态行为和控制结构。主要有顺序图、协作图、状态图、 活动图。 实现模型:描述了系统实现时的特性,即物理架构,包括组件图和部署图。 4

52. 用例模型示例——用例图 管理员 商品信息维护 删除商品添加商品修改商品信息 《include》《include》《include》商品查询 《include》 新品查询特价品查询 热卖品查询会员

63. 静态模型示例——类图 雇员 雇员编号 姓名 地址 入职时间 职位 支付工资() 正式员工 年薪 奖金 计算工资()小时工每小时工资工作工时计算工资()临时工每日工资加班工资计算工资()

软件建模与分析课程设计

计算机技术与工程学院课程设计报告 课程名称:软件建模与分析课程设计 设计题目:教材管理系统 学生:耿誉 学号:1204431117 专业班级:软件1241 指导教师:欣健 起止时间:9月7日至9月18日 成绩评定 容表现成果报告总评成绩

2015-2016第1学期《软件建模分析课程设计》任务书 指导教师:欣健佘向飞付浩海班级:软件1241-2 地点:9教机房409,411时间:第1、2周 一、课程设计目的 1、进一步理解、掌握UML的基本概念、结构、语义与表示方法; 2、综合运用UML和其它先修课程的理论和知识,掌握面向对象的软件建模与分析的一般方法、常用技术及技巧,树立良好的软件建模思想,培养分析问题和解决实际问题的能力; 3、学会使用Star UML建模工具,运用UML建模思想及方法,对各类软件系统进行分析、设计、建模。 二、课程设计容 课程设计参考题目如下: 1. 小区物业管理系统 2. 高校工资管理系统 3. 教材管理系统 4. 酒店管理系统 5. 高校教职工管理系统6.图书管理系统 7.火车订票管理系统8.企业人事管理系统 9.商品库存管理系统10.医院药品管理系统 11. 学生成绩管理系统12. 高校学籍管理系统 13. 航空订票管理系统14. 学费管理系统 15. 城市居民户籍管理系统16.超市管理系统 17.学费管理系统18.车辆管理系统 19. 房地产管理系统20. 企业物资管理系统

21、其它自选题目 学生可任选一题或自拟题目(需经指导老师审核批准)。在分析设计题目,做好系统需求基础上,进行如下主要设计: 分析问题领域:确定系统围和系统边界,设计用例图 设计静态结构模型:建立类图,对象图,包图,数据库建模 设计动态行为模型:建立时序图,状态图,协作图,活动图 设计物理模型:建立组件图,配置图 设计要求:系统设计建模符合面向对象的设计准则及规则。如: 准则:模块化、抽象、信息隐藏、低耦合和高聚等; 规则:1)设计结果清晰易懂 2)一般到具体的抽象深度应适当 3)尽量设计小而简单的类 4)使用简单的消息协议、函数或方法 5)把设计变动减至最小 三、时间安排

相关文档
最新文档