当前位置:文档之家› 面向对象系统设计循序渐进

面向对象系统设计循序渐进

面向对象系统设计循序渐进
面向对象系统设计循序渐进

面向对象系统设计循序渐进(第一版)

OOD循序渐进

作为一名软件开发人员,我深刻地体会到面向对象系统设计带来的种种便利:

1、良好的可复用性。开发同类项目的次数与开发新项目的时间成反

比,谁也不愿做重复劳动吧?。

2、易维护。基本上不用花太大的精力跟维护人员讲解,他们可以自己

读懂源程序并修改了,要不然开发的系统越多,你的负担就越重

?,不是吗?。

3、良好的可扩充性。以前,在向一个用结构化思想设计的庞大系统中

加一个功能则必须考虑兼容前面的数据结构、理顺原来的设计思

路,即使客户愿意花钱修改,作为开发人员多少都有点恐惧。在向

一个用面向对象思想设计的系统中加入新功能,不外乎是加入一些

新的类,基本上不用修改原来的东西,这种感觉真爽?。

前言

本书是一本介绍面向对象软件系统设计的书,从组织结构上分为两大部分:面向对象的概念与UML概述、面向对象系统设计。第一部分是基础,第二部分是核心。

本书对面向对象概念和UML语言的介绍并不是面面具到,介绍的基本上是本书需要用到的那部分内容,所有不适合作为面向对象概念或UML语言的参考手册。

阅读本书的基础

●至少熟悉一种编程语言,最好熟悉的是面向对象编程语言。

●对软件工程有一定的了解。

●如果你只有结构化思想的开发经验,那么阅读本书后会对你有所启发。

●如果你有面向对象思想的开发经验,那么就让我们一起来探讨吧。

阅读指南

如果你已经熟悉了面向对象概念,当我提到“封装”、“消息”、“对象类”等术语时,你可以不查阅资料,那么你可以跳过第一、第二章,直接阅读第三章的内容,否则你还是从头看起。

建立共同语言

为了避免在下面的讨论中因一些名称的问题而产生错误的理解,我觉得有必要先说明一下我的一些口语习惯和一些中英文名称对应关系。叙述中具体使用哪个名词或用中文还是英文,要根据具体上下文而定。如:我是计算机专业的。我买了一台手提电脑。其中计算机和电脑都是指Computer。

目录

OOD循序渐进 (1)

前言 (2)

目录 (4)

面向对象的概念与UML概述 (5)

第一章、面向对象的概念与UML概述 (5)

1.1分析与设计概述 (5)

1.2面向对象的概念 (7)

1.3UML概述 (10)

第二章、UML语言 (11)

2.1UML语言的体系结构 (11)

2.2符号与图形 (11)

面向对象系统设计 (16)

第三章、架构设计 (16)

3.1架构设计原则 (16)

3.2信息系统的架构设计 (17)

第四章、类设计 (23)

4.1类设计指南 (23)

4.2通用日记帐财务系统-系统分析模型 (23)

4.3通用日记帐财务系统-类图 (27)

第五章、数据库设计 (29)

5.1映射原则 (29)

5.2映射 (30)

5.3ER 图 (30)

第六章、其他资料..........................................................错误!未定义书签。

面向对象的概念与UML概述

第一章、面向对象的概念与UML概述

1.1分析与设计概述

当接触一个新事物时,就会问这个东西是干什么用的?进一步的,怎么使用呢?

它需要改进吗?要改进什么?如何改进呢?

从接触新事物到要改进什么,可以总结为是对事物的分析。

如何改进可以总结为是对目标(改进后)事物的设计。

这个事物是一个对象。

再来看看我们开发软件的分析、设计过程:

当接触到一个系统时,首先了解当前系统提供什么服务、当前系统的服务如何操作,再分析目标系统必须提供什么服务,目标系统提供的这些服务如何操作,进而考虑如何实现这些服务(这里的实现是逻辑上的,指系统设计,程序设计是指物理上的实现)。

1.1.1 系统分析

系统分析是指对当前系统和对目标系统进行抽象。可以分为当前系统分析和目标系统分析。对于分析的结果可以建立当前系统分析模型和目标系统分析模型(后面会详细讨论)。它用来表达当前系统提供什么服务、当前系统的服务如何操作,目标系统必须提供什么服务,目标系统提供的这些服务如何操作等问题。建立分析模型的方法有很多,常用的有面向数据流的分析方法(SA)和面向对象分析方法(OOA)等。

1.1.2 系统设计

系统分析主要关心系统必须做什么,而不必太多的考虑其中的实现细节,它注重的是问题领域与系统责任。系统设计就要考虑实现的细节问题了,它主要说明如何实现分析中的元素,注重的是实现相关的问题,并做为实施阶段的依据。一般包括:软件架构设计、子系统设计、详细设计和数据库设计。常用的方法与系统分析相对应有面向数据流的设计方法(SD)和面向对象设计方法(OOD)等

1.1.3 面向对象方法

面向对象是认识事物的一种方法。

用面向对象方法来认识青蛙

1.2 面向对象的概念

面向对象(OO )是认识事物的一种方法,是一种以对象为中心的思维方式。这里介绍它的几个主要概念:对象、类、封装、继承、多态性、消息、关联。

1、对象

世界上所有的事物都可以称为对象。对象可以是有形的如:一台电视机等。

也可以是无形的如:帐户、一项记录等。对象具有静态特征和动态特征。

一个对象就是一个独立存在的客观事物,它由一组属性和对属性进行操作的一组操作构成。

属性和操作是对象的两大要素。属性是对象静态特征的描述,操作是对象动态特征的描述。对象名也称为对象标识。

如电视的属性有:品牌、尺寸、重量等。操作有:收视、选台、音量调节等。

2、类

根据抽象的原则对客观事物进行归纳和划分,只关注与当前目标相关的特征,把具有相同特征的事物归为一个类。它是一个抽象的概念。

类是具有相同属性和相同操作(服务)的对象的集合。它包括属性和操作(注:类的服务和操作只是叫法上的区别)。

客观世界中的每一匹马都属于动物类,其中的一匹马就是动物类的一个实例,即一个动物对象。

对象

经过人类的抽象

用一个叫“动物”的类来概括它们

3、封装

封装是指按照信息屏蔽的原则,把对象的属性和操作结合在一起,构成一个独立的对象。

外部对象不能直接操作对象的属性,只能使用对象提供的服务。

4、继承

继承表达了对象的一般与特殊的关系。特殊类的对象具有一般类的全部属性和服务。

机动车具有车的全部属性和服务,同样汽车具有机动车的全部属性和服务。

一般和特殊是相对而言的,在车和机动车之间,车是一般类(基类、超类、父类),机动车是特殊类(子类);在机动车和汽车之间机动车是一般类,汽车是特殊类。

继承具有传递性,如汽车具有车的全部属性和服务。

5、消息

向某个对象发出的服务请求称作消息。对象提供的服务规定的消息格式称作消息协议。

消息包括:被请求的对象标识、被请求的服务标识、输入信息和应答信息。 如:用电视遥控器发送一个选台消息,请求电视机执行换台服务。

6、结构与连接

一个系统一般由很多对象组成,对象之间并不是互相孤立的,而是存在着各种各样的关系。包括:部分/整体、一般/特殊、实例连接、消息连接。

(1)部分/整体

Jack

我们不用关心电视机的内部工作原理,

电视机提供了选台、调节音量等功能让我们使用。

对象之间存在的部分与整体的结构关系。如CPU 是PC 机的一个部分,PC 机由CPU 、内存、硬盘、显示器、键盘等组成。

部分/整体关系中有两种方式:组合和聚合。

上面PC 机就是一个组合的例子,一个部分对象(CPU )只能属于一个唯一的整体对象(PC 机)。组合关系中部分和整体的关系很紧密。聚合关系中则比较松散,一个部分对象可以属于几个整体对象。

(2)一般/特殊

对象之间存在着一般和特殊的结构关系,也就是说它们存在继承关系。很多时候也称作泛化和特化关系。

(3)实例连接

实例连接表现了对象之间的静态联系,它通过对象的属性来表现出对象之间的依赖关系。对象之间的实例连接称作链接,对象类之间的实例连接称作关联

(4)消息连接

消息连接表现了对象之间的动态联系,它表现了这样一种联系:一个对象发送消息请求另一个对象的服务,接收消息的对象响应消息,执行相应的服务。

7、多态性

多态性是指一般类中定义的属性和服务,在特殊类中不改变其名字,但通过各自不同的实现后,可以具有不同的数据类型或具有不同的行为。 如一个绘图系统中类的多态性:

当向图形对象发送消息进行绘图服务请求后,图形对象会自动判断自己的

所属类然后执行相应的绘图服务。

1.3UML概述

既然面向对象是一种思维方式,当然就需要用一种语言来表达、来交流。UML就是表达面向对象的标准化语言。UML只是语言,不是方法。

任何语言都有语法和语义两个方面。UML采用元-元模型、元模型、模型和用户对象四个层次来定义其体系结构。

UML是基于面向对象的可视化建模语言,支持面向对象的各种概念,提供了丰富的概念元素和图形表示元素,就像英语语言中提供了丰富的单词。

通过用UML元素按照规定的语法建立系统模型,可以按照不同的抽象层次建立如分析模型和设计模型。

UML的公共机制包括:说明、装饰、通用划分、扩展机制。

下一章我们将进一步讨论UML语言。

第二章、UML语言

前面介绍了面向对象方法的概念。下面介绍表达面向对象方法的有力工具:UML语言。

2.1UML语言的体系结构

这四个层次中,除元-元模型外,每一层都是上一层的实例。

(1)元-元模型是定义描述元模型的语言,它是任何模型的基础。

(2)元模型是描述模型的语言。在UML语言的元模型中,定义了面向对象范畴的概念,如:对象类、关联、链接等。

(3)模型是对现实世界的抽象,用来描述信息领域,如:银行系统中的储户、帐户等它们都是元模型中对象类的实例。

(4)用户对象是一个特定的信息领域对象,如:张三(张三是储户对象类的一个实例)。

2.2符号与图形

在UML元模型中定义了很多模型元素,如:Use Case、对象类、接口、组件等,为了模型的可视化,UML为每个模型元素规定的特定的图形符号来表示。

1、活动者(Actor)

活动者名

活动者是作用于系统的一个角色或者说是一个外部用户。活动者可以是一个人,也可以是使用本系统的外部系统。

2、用例(Use Case)

用例名

用例就是对活动者使用系统的一项功能的交互过程的陈述。如:

用户进行登录的用例图可以表示为:

用户

登录

3、对象类(Class)

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

(1)属性(Attribute)

(2)操作(Operation)

如用户类:

可视性属性名 [多重性] :类型=初始值

可视性操作名(参数列表):返回列表

4、接口(Interface)

接口是一种抽象类,它对外提供一组操作,但自己没有属性和方法(操作的实现),它是在没有给出对象实现的情况下对对象行为的描述。接口使用对象类的图形表示方法,接口名前面加构造型《interface》。

5、组件(Component)

组件体现了系统中逻辑模型元素的物理实现。

6、包(Package)

包也是一种模型元素,可以把语义相近的模型元素组织在一个包里,增加对模型元素的可维护性。

7、节点(Node)

节点是表示计算机资源运行时的物理对象,一般指有处理能力的硬件设备。节点上可以包含对象和组件的实例。

8、关联(Association)

关联就是类或对象之类链接的描述。

9、组合(Composition)

组合关系用于表示对象之间部分和整体关系,关系很紧密。

10、聚合(Aggregation)

聚合关系也用于表示对象之间部分和整体关系,但关系比较松散。11、泛化(Generalization)

泛化用于表示对象之间一般和特殊的结构关系。

12、依赖(Dependency)

依赖表示两个或多个模型元素之间语义上的关系。

13、实现(Realization)

实现是指一个模型元素(如:类)是另一个模型元素(如:接口)的实现。

14、消息(Message)

一般消息

返回消息

15、状态(State)

状态描述了对象在生命周期中的一个时间段。

16、注释(Comment)

注释没有特定的语义,它用于对其他模型元素的补充说明。

面向对象系统设计

当你阅读到这里时,我假设你已经理解了面向对象的基本概念,初步掌握了的UML语言。

第三章、架构设计

3.1架构设计原则

系统设计的第一步就是确定软件的架构,它决定了各子系统如何组织以及如何协调工作。架构设计的好坏影响到软件的好坏,系统越大越是这样。进行架构设计时,有两个重要的原则可以遵循:

一、分层。

将系统分层是简化系统的好方法,而且已经得到了很好的证实,如OSI七层模型网络协议,数据库管理系统的外模式、模式、内模式等。分层的思路是将系统按功能职责进行划分,将同一类职责的功能抽象为一层。在信息系统中软件架构通常采用典型的三层结构:

1、表示层――用户界面。

2、业务层――业务处理流程。

3、数据层――持久化存储。

与传统的两层结构相比,它最大的特征是将业务层独立了出来,从而提高了业务层的可复用性。在两层结构中,用户界面和业务处理流程放在一起,因此无法直接复用业务处理的相关功能,也无法将业务处理功能进行灵活的部署。在三层结构中,表示层只处理用户界面相关的功能,业务层专心处理业务流程,可以对业务层进行灵活的部署,开发时也便于业务处理的开发和用户界面的开发同时进行。

当然也可以分为更多的层,关键是尽量提高层内各功能的内聚,降低各层之间的耦合。

二、各层之间通讯。

OSI中要求高层只能调用它的下一层提供的接口,我们设计接口时也尽量遵守这样的约束,例如典型的三层结构的访问关系为:

数据层在业务层中是可见的,业务层在表示层中是可见的,反之则不可见。为什么在业务层中不能直接访问表示层呢?因为业务层要相对独立,它不能依赖于任何表示层,以至于一个业务层可以对应多个表示层。业务层可以间接与表示层通讯,这种通讯方式根据实际需要来确定。 3.2

信息系统的架构设计

下面我们将根据架构设计原则和信息系统原理来建立一个信息系统的架构设计模型。将信息系统中比较关心的对象分层,可分为三层:用户界面层、业务层、数据访问层,再把各层中的一些公共部分提出来:权限管理、异常处理,这样得到包图如下:

3.2.1 用户界面包

用户界面层的职责是:

1、与用户的交互,接收用户的各种输入以及输出各种提示信息或处理结果。

2、对于输入的数据进行数据校验,过滤非法数据。

3、向业务处理对象发送处理请求。

包含类:

3.2.2 业务处理包

业务处理实现各种业务逻辑或处理算法

权限管理

业务处理层的职责是:

1、实现各种业务处理逻辑或处理算法。

2、验证请求者的权限。

3、向数据访问对象发送数据持久化操作的请求。

4、向用户界面层返回处理结果。

包含类:

这里使用了代理(Proxy)模式,用户界面对象只能通过业务代理对象来向业务对象发送请求。业务代理对象首先判断请求者的权限,然后转发合法请求者的请求。

3.2.3 数据访问包

数据访问

实现数据的持久化操作

实现事务处理

数据访问层的职责是:

1、实现数据的持久化操作(本书假设数据的存储由关系数据库来完成)。

2、实现事务处理。

包含类:

对于每一个业务处理中需要持久化操作的对象都可以对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理。这里的数据库连接类的创建用到了单件(Singleton)模式,保证一个类仅有一个实例,一个客户在同一时刻只能用一个数据库连接对象。

3.2.4权限管理包

权限管理的主要职责是:

1、验证请求者的请求权限。

2、提供请求者的权限列表。

包含类:

业务处理对象通过权限管理对象来验证权限。

面向对象软件开发教程

软件是在代码之外发生的一切事情。 如何继续学习过程 你将从本章学到什么? 两千年后(P2K)的软件环境是什么样的? P2K软件环境中的技术和技能是什么?有关P2K技能和技术有哪些概述性的资源?软件专家在面向对象项目中充当什么角色/职位? 如何继续面向对象的学习过程? 为什么需要阅读本章? 你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。 至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。 11.1 P2K 环境 在你的整个职业生涯中一直要学习新的技能。 软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在 Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。 在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增 量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本 书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境, 必需考虑下面几项内容:

面向对象的软件开发方法简介

1面向对象的软件开发方法简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点。 ●把软件系统看成是各种对象的集合,这更接近人类的思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 换。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封 装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性, 从而提高了软件的可维护性。 ●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。 1.1 对象模型 在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。开发人员需要进行以下自底向上的抽象思维。 ●把问题领域中的事物抽象为具有特定属性和行为的对象。 ●把具有相同属性和行为的对象抽象为类。 ●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。 再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。 2.自顶向下的分解 再建立对象模型的过程中,也包括自顶向下的分解。例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。 1.1.2UML:可视化建模语言 面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。 1.2 面向对象开发中的核心思想和概念 在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。

常用的开发方法:结构化方法、原型法、面向对象方法

常用的开发方法:结构化方法、原型法、面向对象方法 常用的开发方法有:结构化方法、原型法、面向对象方法。 结构化方法:结构化方法是应用最为广泛的一种开发方法。按照信息系统生命周期,应用结构化系统开发方法,把整个系统的开发过程分为若干阶段,然后一步一步她依次进行,前一阶段是后一阶段的工作依据;每个阶段又划分详细的工作步骤,顺序作业。每个阶段和主要步骤都有明确详尽的文档编制要求,各个阶段和各个步骤的向下转移都是通过建立各自的软件文档和对关键阶段、步骤进行审核和控制实现的。它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。 以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。 结构化方法方法具有如下特点。 (l)遵循用户至上原则。 (2)严格区分工作阶段,每个阶段有明确的任务和取

得的成果。 (3)强调系统开发过程的整体性和全局性。 (4)系统开发过程工程化,文档资料标准化。 该方法的优点是:理论基础严密,它的指导思想是用户需求在系统建立之前就能被充分了解和理解。由此可见,结构化方法注重开发过程的整体性和全局性。 该方法的缺点是:开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的信息需求,充分预料各种可能发生的变化,但这并不十分现实;若用户参与系统开发的积极性没有充分调动,造成系统交接过程不平稳,系统运行与维护管理难度加大。 原型法:原型法的基本思想与结构化方法不同,原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。 是在投入大量的人力,物力之前,在限定的时间内,用最经济的方法开发出一个可实际运行的系统模型,用户在运行使用整个原型的基础上,通过对其评价,提出改进意见,对原型进行修改,统一使用,评价过程反复进行,使原型逐步完善,直到完全满足用户的需求为止。 适用范围:处理过程明确、简单系统;涉及面窄的小型系统

面向对象系统设计循序渐进

软件系统设计面向对象系统设计 循序渐进(第一版) 面向对象概念 U 架构设计 类设计 数据库设计 作者:蒋能学 https://www.doczj.com/doc/c58968406.html, 版权所有!

OOD循序渐进 作为一名软件开发人员,我深刻地体会到面向对象系统设计带来的种种便利: 1、良好的可复用性。开发同类项目的次数与开发新项目的时间成反 比,谁也不愿做重复劳动吧J。 2、易维护。基本上不用花太大的精力跟维护人员讲解,他们可以自己 读懂源程序并修改了,要不然开发的系统越多,你的负担就越重 L,不是吗?。 3、良好的可扩充性。以前,在向一个用结构化思想设计的庞大系统中 加一个功能则必须考虑兼容前面的数据结构、理顺原来的设计思 路,即使客户愿意花钱修改,作为开发人员多少都有点恐惧。在向 一个用面向对象思想设计的系统中加入新功能,不外乎是加入一些 新的类,基本上不用修改原来的东西,这种感觉真爽J。 我写本书的愿望是让大家也来分享面向对象系统设计带来的种种乐趣。真的,系统设计已经是一种创造上的享受了! 由于作者水平有限、时间仓促,错误之处欢迎读者批评指正。 网址:https://www.doczj.com/doc/c58968406.html, Email:jnx@https://www.doczj.com/doc/c58968406.html, 蒋能学 2003年10月

前言 本书是一本介绍面向对象软件系统设计的书,从组织结构上分为两大部分:面向对象的概念与UML概述、面向对象系统设计。第一部分是基础,第二部分是核心。 本书对面向对象概念和UML语言的介绍并不是面面具到,介绍的基本上是本书需要用到的那部分内容,所有不适合作为面向对象概念或UML语言的参考手册。 阅读本书的基础 l至少熟悉一种编程语言,最好熟悉的是面向对象编程语言。 l对软件工程有一定的了解。 l如果你只有结构化思想的开发经验,那么阅读本书后会对你有所启发。 l如果你有面向对象思想的开发经验,那么就让我们一起来探讨吧。 阅读指南 如果你已经熟悉了面向对象概念,当我提到“封装”、“消息”、“对象类”等术语时,你可以不查阅资料,那么你可以跳过第一、第二章,直接阅读第三章的内容,否则你还是从头看起。 建立共同语言 为了避免在下面的讨论中因一些名称的问题而产生错误的理解,我觉得有必要先说明一下我的一些口语习惯和一些中英文名称对应关系。叙述中具体使用哪个名词或用中文还是英文,要根据具体上下文而定。如:我是计算机专业的。我买了一台手提电脑。其中计算机和电脑都是指Computer。 下面是部分中英文对照表: 英文中文简称 Object Oriented 面向对象OO Object Oriented Analysis 面向对象分析OOA Object Oriented Design 面向对象设计OOD Object Oriented Programming 面向对象的程序设计OOP Unified Modeling Language 统一建模语言UML Actor 活动者 Use Case 用例 Class 对象类、类 Attribute 属性 Operation 操作、方法 Interface 接口 Component 组件 Package 包 Node 接点

面向对象方法题库1-0-5

面向对象方法题库1- 0-5

问题: [单选]当()时,用例是捕获系统需求最好的选择。 A.系统具有很少的用户 B.系统具有很少的接口 C.系统算法复杂,功能单一 D.系统有很多参与者 用例描述的是系统的执行者(参与者)与系统的交互,同时也是开发人员与用户进行交流的工具,可用来很好地定义系统的边界。所以,当执行者较多的时候,用例是捕获系统需求最好的选择。

问题: [单选]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。 A.局部化 B.封装 C.信息隐藏 D.继承 面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。 (1)局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系不必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。

面向对象的建模方法

面向对象的建模方法 [摘要]评述面向对象的几种建模方法并作一比较,阐述统一建模语言的优越性,并对其组成、特征、建模过程进行描述。 [关键词]软件工程建模面向对象 一、引言 面向对象方法学也称为面向对象的开发方法,它属于软件工程的范畴。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。也就是说,面向对象方法是一种崭新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。由于对象的独立封装,模块的可构造性、可扩充性、可重用性也大大加强,从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。 面向对象的软件工程要求首先对系统建立模型是对现实的简化,它提供了系统的蓝图。一个好的模型只需抓住影响事物发展的主要矛盾,而忽略那些次要矛盾。每个系统可以从不同方面用不同的模型来描述。因而每个模型都是在语义上闭合的系统抽象。通过建模可以按照实际情况对系统进行可视化模型详细地说明了系统结构或行为,指导我们构造系统模板 二、面向对象建模方法 建模是构造软件系统最基本的步骤,在软件工程学科中提供了多种多样的建模方法和高效的工具,其目的是为了在软件开发过程的早期就发现设计中可能隐含的缺陷和错误,对于今日的大型软件系统,采用一种合适的建模方法,建立一个良好的模型是成功的关键。在市场上已有一些公司,如Rationa1,Cayenne,Platinum等开始提供商品化的建模工具,即通常所谓的CASE工具,使得建模过程实现了一定的自动化的标准化,并逐步走向实用,而这些工具的后面,便是具有不同特色的建模方法。 下面分析比较Booch,OMT,OOSE,UML等几种主要的面向对象的建模方法: (一)Booch方法 Booch方法是由Grady Booch提出的,是一种主要面向设计的方法,它通过二维图形来建立面向对象的分析和设计模型,强调设计过程的不断反复知道满足要求为止。Booch 方法特别注重对系统内对象之间相互行为的描述,注重可交流性和图示表达。但在方法学上并不注重严格的过程,既不推荐软件设计人员该做什么,只是指出了其可做的工作。Booch 方法把几类不同的图表有机地结合起来,以反映系统的各个方面是如何可相互联系而又相互影响的。这些图贯穿于逻辑设计到物理实现的开发过程中,包括类图、状态图、对象图、交互图、模块图和进程图。 (二)OMT方法 OMT(Object Modeling Technology对象建模技术)是由JamesRumbaugh 等人提出的。OMT方法包含了一整套的面向对象的概念和独立于语言的图示符号。它可用于分析问题需求,设计问题的解法以及用程序设计语言或数据库来实现这个解法。OMT方法用一致的概念和图示贯穿于软件开发的全过程,这样软件开发人员不必在每一开发阶段便换新的表示方法。 OMT方法从对象模型、动态模型、功能模型3个不同但又相关的角度来进行系统建模。这3个角度各自用不同的观点抓住了系统的实质,全面地反映了系统的需求。其中,对象模型表示了静态的、结构化的系统数据性质,动态模型表示了瞬时的、行为化的系统的控制性质,功能模型则表示了变化的系统的功能性质。在软件开发的周期中,这3种模型都在逐渐发展:在分析阶段,构造出不考虑最终设计的应用域模型;在设计阶段,求解域的结构被

面向对象系统设计(超经典的指导手册)

面向对象系统设计 当你阅读到这里时,我假设你已经理解了面向对象的基本概念,初步掌握了的UML语言。 第三章、架构设计 3.1 架构设计原则 系统设计的第一步就是确定软件的架构,它决定了各子系统如何组织以及 如何协调工作。架构设计的好坏影响到软件的好坏,系统越大越是这样。进行架构设计时,有两个重要的原则可以遵循: 一、分层。 将系统分层是简化系统的好方法,而且已经得到了很好的证实,如OSI 七 层模型网络协议,数据库管理系统的外模式、模式、内模式等。分层的思路是将系统按功能职责进行划分,将同一类职责的功能抽象为一层。在信息系统中软件架构通常采用典型的三层结构: 1、表示层――用户界面。 2、业务层――业务处理流程。 3、数据层――持久化存储。 与传统的两层结构相比,它最大的特征是将业务层独立了出来,从而提高 了业务层的可复用性。在两层结构中,用户界面和业务处理流程放在一起,因此无法直接复用业务处理的相关功能,也无法将业务处理功能进行灵活的部署。在三层结构中,表示层只处理用户界面相关的功能,业务层专心处理业务流程,可以对业务层进行灵活的部署,开发时也便于业务处理的开发和用户界面的开发同时进行。 当然也可以分为更多的层,关键是尽量提高层内各功能的内聚,降低各层 之间的耦合。 二、各层之间通讯。 OSI 中要求高层只能调用它的下一层提供的接口,我们设计接口时也尽量 遵守这样的约束,例如典型的三层结构的访问关系为: 数据层在业务层中是可见的,业务层在表示层中是可见的,反之则不可见。为什么在业务层中不能直接访问表示层呢?因为业务层要相对独立,它不能依赖于任何表示层,以至于一个业务层可以对应多个表示层。业务层可以间接与表示层通讯,这种通讯方式根据实际需要来确定。 3.2 信息系统的架构设计 下面我们将根据架构设计原则和信息系统原理来建立一个信息系统的架构设计模型。将信息系统中比较关心的对象分层,可分为三层:用户界面层、业务层、数据访问层,再把各层中的一些公共部分提出来:权限管理、异常处理,这样得到包图如下:

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

普 通 本 科 毕 业 小 论 文 题目:比较四种典型面向对象方法的异同 学院软件与通信工程学院 学生姓名张伟聪学号 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)实现类和对象;

第八章 面向对象的系统开发方法

面向对象的系统开发方法 一、单项选择题 1. 面向对象技术中,对已有实例稍作修改生成新实例的机制被称为(c )。 a. 委托 b. 代理 c. 继承 d. 封装 2. UML是一种面向对象的统一建模语言。它包含若干种图,其中,用例图展示了外部actor与系统所提供的用例之间的连接,UML中的外部actor是指( d)。 a. 人员 b. 单位 c. 人员或单位 d. 人员或外部系统 3. UML中用例可以用( c)图来描述。 a. 类 b. 状态 c. 活动 d. 协作 4. 协作图描述了协作的(a )之间的交互和链接,它画成对象图的形式。 a. 对象 b. 类 c. 用例 d. 状态 5. 在使用UML建模时,若需要描述跨越多个用例的单个对象行为,用( d)最合适。 a. 协作图 b. 序列图 c.活动图 d. 状态图 二、名词解释 1 对象 2 消息 3 类 4 面向对象

5 统一建模语言(UML) 三、问答题 1 与传统开发方法相比,面向对象的系统开发方法主要解决了哪些问题? 2 试述消息的目的及消息的运作原理。 3 试简述UML的主要内容 4 为什么面向对象系统开发过程需要如此多的图形工具来支持? 第九章答案 一、单项选择题答案 1. c 2. d 3.c 4.a 5. d 二、名词解释 1 对象是由一组数据合适驾驭这些数据上的一组操作封装而成的基本实体。 2 类是由内部状态和外部行为相似的对象构成的集合。 3 消息是对象之间的通信载体,用来请求对象执行某个处理或回答某些消息的要求。 4 面向对象=数据抽象+数据抽象类型+继承机制,既是一种认识世界的认知方法,又是一种解决问题的思维方式。

三种面向对象方法

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

摘要 主要介绍了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)系统设计。结合问题域的知识和目标系统的系统结构(求解域),将目标系统

面向对象系统分析与设计——超星试题及答案

第一章面向对象方法概论 1.1传统开发方法及存在的问题 1 【单选题】下面关于功能分解法的优点描述错误的是() A、以系统需要提供的功能为中心组织系统 B、与模块化编程结合使用后,使开发效率有很大提高 C、删除了 GoTo语句,使软件能得到有效维护 D、具有较强的应对需求变化的能力 我的答案:D 2 【单选题】下面的开发方法能够兼顾功能和数据的是() A、功能分解法 B、结构化方法 C、信息建模法 D、面向对象方法 我的答案:D 3 【填空题】_______开发方法强调对数据的组织,忽略系统功能。 我的答案: 第一空:信息建模法 4 【填空题】 功能分解法是以系统需要提供的_______为中心组织系统。 我的答案: 第一空:功能 5 【判断题】结构化方法采用数据流、加工进行建模,需求变化极易引起两者的变动,进而 引起其他数据流和加工的变化。 我的答案:√ 6 【判断题】功能分解法以功能作为系统的构造块,数据组织能力强。 我的答案:× 1.2面向对象方法的基本思想 1 【单选题】面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过 程。因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 A、开发过程基于功能分析和功能分解 B、强调需求分析重要性

C、把对象划分成类,每个对象类都定义一组数据和方法 D、对既存类进行调整 我的答案:C 2 【单选题】一个设计良好的信息系统应具有()的特征 A、低内聚、低耦合 B、高内聚、低耦合 C、高内聚、高耦合 D、低内聚、高耦合 我的答案:B 3 【填空题】面向对象方法通 过 我的答案: 第一空:关联 _______关系表达类之间的静态关系。 4 【填空题】对象 的 细节。 我的答案: 第一空:属性 _______与操作结为一体,成为一个独立不可分的实体,对外屏蔽其内部 5 【判断题】面向对象方法比以往的方法更接近人类的日常思维方式,强调运用人类 在日常的逻辑思维中经常采用的思想方法与原则。()我的答案:√ 6 【判断题】面向对象方法中,对象是用操作描述事物的数据特征,用属性描述事物 的行为特征。() 我的答案:× 1.3面向对象方法的基本概念(上) 1 【单选题】下面那个不是面向对象的基本原则() A、抽象 B、多态性 C、封装 D、关联 我的答案:D 2 【单选题】以下关于超类、子类、基类的叙述中,正确的是() A、子类是超类的特化 B、基类是超类的特化 C、基类是子类的特化 D、超类是基类的特化 我的答案:A

面向对象方法系统设计说明书模板

设计说明 目录 1 概述 (1) 1.1 编写目的 (1) 1.2 参考资料 (1) 1.3 术语和缩写词* (1) 2 需求概述 (1) 3 结构设计 (1) 3.1 总体设计 (1) 3.2 功能分配 (1) 3.3 接口设计 (1) 3.4 数据结构设计 (1) 3.4.1 公共数据结构设计 (1) 3.4.2 数据库设计 (2) 3.4.3 数据结构同程序的关系* (2) 3.5 出错处理设计* (2) 3.6 其它* (2) 4 类的设计 (2) 4.1 类1设计 (2) 4.1.1 功能说明 (2) 4.1.2 属性说明 (2) 4.1.3 公有方法说明 (2) 4.1.4 私有方法说明 (2) 4.2 类2设计 (3) 4.2.1 功能说明 (3) 4.2.2 属性说明 (3) 4.2.3 公有方法说明 (3) 4.2.4 私有方法说明 (3) 5 用例实现的设计 (3) 5.1 用例1设计 (3) 5.1.1 功能说明 (3) 5.1.2 界面设计 (3) 5.1.3 交互设计 (3) 5.2 用例2设计 (3) 5.2.1 功能说明 (3) 5.2.2 界面设计 (3) 5.2.3 交互设计 (3) 【注】本编写指南中带有“*”标志的表示可选部分,即在文档编写过程中可以依据实际项目的具体情况进行取舍,文档完成后这些“*”标记应该去掉。

1 概述 1.1 编写目的 本文档的编写目的是:详细定义×××××软件的总体功能;给出系统的结构设计和过程设计,作为程序编写的依据。 1.2 参考资料 包括: a. 项目来源; b. 本文档中引用到的规范和资料等; c. 列出这些规范和资料的作者、编号、标题、发表日期、出版单位或资料来源。 1.3 术语和缩写词* 列出本文档中用到的专门术语的定义和缩写词,缩写词要给出中文译名和英文全称,常用的不需要定义。 2 需求概述 概述系统的特性和需求,扩充软件需求说明中的信息,给出增加的细节,详尽地指出对软件需求说明中有关特性和需求作出的变更。(本次大作业只写:需求详细说明见《需求说明》)。 3 结构设计 3.1 总体设计 绘制类图(Class Diagram),必要时辅以包图(Package Diagram)和组件图(Component Diagram)。 对系统体系架构和所绘制图形加以文字说明。 3.2 功能分配 3.3 接口设计 对和硬件及其他外部系统的接口进行说明。 3.4 数据结构设计 3.4.1 公共数据结构设计 对程序当中所定义的全局变量、全局数据结构或类当中Public数据结构进行定义和说

面向对象方法与结构化方法的比较

课程名称:系统分析与设计 结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。 面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。 结构化方法和面向对象方法二者的比较如下。 一、基本思想的比较 结构化方法的基本思想主要体现在三个方面。一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。三、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。 面向对象方法的基本思想主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等。 二、基本原则的比较 结构化方法遵循基本原则有:一、抽象原则:是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。二、分解原则:是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。三、模块化原则:结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。 面向对象方法遵循基本原则有:一、抽象:是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。二、封装:是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。三、模块化:是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块

面向对象系统开发环境

第1章面向对象系统开发环境 目标 通过本章内容的学习,读者可以: ●定义信息系统分析与设计。 ●解释系统的基本特性。 ●描述信息SDC(System Develop Cycle,系统开发周期)。 ●描述信息系统的三种类型——事务处理系统、管理信息系统和决策支持系统。 ●描述信息系统开发中系统分析员的组织角色。 ●叙述系统开发方法理论的发展历程。 内容 ●本章内容预览 ●什么是信息系统分析和设计 ●系统分析和设计:核心概念 ●系统 ●系统分析和设计 ●信息系统与系统开发的各种类型 ●分析员在系统开发中的角色 ●系统开发中的系统分析员 ●系统开发方法理论的发展历程 ●为什么使用面向对象的系统分析和设计(OOSAD) ●迭代递增的开发 ●本书面向对象的系统分析和设计的方法 本章内容预览 业务成功的关键是收集、组织和解释信息的能力。开发信息系统的面向对象的系统分析和设计(OOSAD)方法正在迅速流行开来。与OOSAD关系最为密切的人就是系统分析员,在其他系统分析与设计方法中也同样如此。作为一名系统分析员,你将享有丰富的职业经历,这些经历能增强自身的计算机技术、组织、分析和人际关系能力。 虽然OOSAD是基于面向对象概念并与20世纪70年形成的目前还在流行的结构化分析方法有区别,但是二者在开发高效信息系统上的总体焦点是一致的。系统开发中的四个主要步骤是所有系统分析和设计方法的基石:(1)项目管理与计划,(2)系统分析,

2 面向对象的系统分析与设计 (3)系统设计,(4)系统实现与操作。这些步骤表示了解决系统开发问题的基本方法。它们包括了很多基本的开发活动,诸如评价经济和技术可行性、理解用户需求、评价候选设计方案、确定最佳方案、将设计规范转换为代码,以及将软硬件和数据通信组件整合并测试等等。实际的方法会随方式和组织的不同而不同,而开发的各种前提也会带来更多的设计选择,但是必要的步骤依然相同。这种系统开发周期如图1-1所示。本书的大部分章节都包括系统开发周期的更新版,其中突出了已经讨论过的各步骤以及剩余的步骤。 本书需要读者对信息系统介绍课程所介绍过的计算机信息系统有一个大体的了解。第1章概述了OOSAD,并且是后续章节的基础。 图1-1 系统开发周期 1.1 什么是信息系统分析和设计 信息系统分析和设计 开发和维护信息系统的过程。 系统分析员 主要负责分析和设计信息系统的组织角色。 信息系统分析和设计是各公司(像,IBM、Pepsi和https://www.doczj.com/doc/c58968406.html,)用来创建和维护信息系统的方法,这些系统可以实现基本的业务功能(如保存客户的姓名和地址、处理订单以及发放工资)。系统分析和设计的主要目的是改善组织的系统,通常通过使用那些能帮助员工更轻松有效地完成关键业务的软件来达到这一目的。在开发这类软件的过程中系统分析员处于核心地位。信息系统的分析和设计建立在下述基础之上: ●对组织的目的、结构和处理过程的了解。 ●发挥信息技术优势的知识。 为了成功完成这项工作,必须遵循系统性的方法,比如图1-1所示的用来确定、分析、设计和实现信息系统的四步式方法。本书详细介绍了基于面向对象系统分析和设计的系统开发方法理论。首先来看一些和系统分析与设计有关的核心概念。

北邮 面向对象系统分析与设计2

一、判断题(共5道小题,共50.0分) 1.后置条件是用例完成后必须为真的条件。描述用例执行期间,系统应当出 现什么变化。 A.正确 B.错误 知识点: 面向对象分析 学生答 案: [A;] 得分: [10] 试题分 值: 10.0 提示: 2.(错误)用例描述只描述系统的功能需求,而不描述性能需求。 A.正确 B.错误 知识点: 面向对象分析 学生答 案: [A;] 得分: [0] 试题分 值: 10.0 提示: 3.(错误)用例图是描述用例步骤先后顺序的图示。它用于发现该用例的可供 选择的路径和测试用例叙述的完整性或正确性。 A.正确 B.错误 知识点: 面向对象分析 学生答 案: [A;] 得分: [0] 试题分 值: 10.0 提示:

4.(错误)事件的参与者只能是与系统交互的人或组织。 A.正确 B.错误 知识点: 面向对象分析 学生答 案: [A;] 得分: [0] 试题分 值: 10.0 提示: 5.组合、聚合、泛化是三种常见的总体和部分的关联。 A.正确 B.错误 知识点: 面向对象分析 学生答 案: [A;] 得分: [10] 试题分 值: 10.0 提示: 6. 二、单项选择题(共5道小题,共50.0分) 1.面向对象分析的一般步骤() (1)标识业务事件并制作事件表 (2)为每个用例场景绘制系统顺序图 (3)为每个业务事件的系统响应编写基本用例描述 (4)标识用例并生成用例图 (5)为每项系统操作编写约定 (6)生成域模型,以表示问题域中的概念、属性和关联 A.1,2,3,4,5,6 B.2,1,4,6,5,3 C.1,4,3,2,6,5 D.1,3,2, 4, 6, 5 知识点: 面向对象分析

面向对象系统分析与设计教学大纲

《面向对象系统分析与设计》教学大纲 一、课程的性质和任务 面向对象系统分析与设计课程是计算机科学与技术本科专业的一门重要的专业课。通过本课程的学习,使学生在已有的计算机软、硬件基础知识、程序设计知识、数据库和网络通信知识的基础上系统掌握面向对象系统分析与设计的基本方法和技术,并具有针对特定环境下的应用问题进行信息系统开发(包括系统分析、设计与实现)的能力。 二、课程的基本要求 1.掌握系统分析与设计的基本概念和方法。 2.掌握面向对象的基本概念。 3.掌握面向对象系统分析与设计的常用方法和UML统一建摸语言。 4.能运用面向对象系统分析与设计的基本技术方法和开发工具,承当软件 项目的开发,设计和管理。 三、课程的核心 1.基本概念:系统、系统分析与设计、面向对象基本概念(对象和类、属 性、消息、方法等) 2.基本方法:面向对象系统分析与设计方法(包括OMT方法、UML统一建模语言等)、项目管理方法 四、预备知识 在学习本课程之前,应具有计算机、网络和数据库的基础知识、并应至少掌握一门面向对象程序设计语言(如VC++、JAVA或VB),至少掌握一种数据库管理系统(如ORACLE、SQL SERVER或ACCESS)的使用。 五、教学环节 本课程由课堂教学、实验和课程设计等教学环节组成。针对本课程的特点:技术新、外文资料多,课堂教学采用双语教学方式,使用多媒体教学手段,将理论教学与案例讲解、实际系统演示相结合,使学生系统掌握本课程的基本理论知

识以及方法和技术;实验环节中要求学生学习并熟练掌握一种或几种流行的系统建模工具、数据库和编程语言以及项目管理软件的使用;课程设计环节包括设计题目的讨论、分析、设计和实现,通过课程设计使学生将理论应用于实践,加强学生对实际问题的分析和解决能力,以及团体协作和项目管理能力。通过这些教学环节,将学生培养成为基础理论扎实、动手能力强,并且能力全面的综合型人才。 六、教学内容 (一)课堂教学内容 第一章系统分析与设计概论 (Introduction to System Analysis and Design) 1.1系统分析与设计基本概念 (What is System Analysis and Design) 1.1.1 系统和信息系统 (System and Information System) 1.1.2 系统分析与设计 (System Analysis and Design) 1.1.3信息系统生命期和信息系统开发生命期 (System Life Cycle and the Process of System Development) 1.1.4 信息系统分析和设计的基本原则 (The Principles for System Analysis and Design) 1.2系统开发模型和方法 (System Development Models and Methods) 1.2.1 常用模型: 瀑布模型(Waterfall Model) 螺旋模型(Spiral Model) 喷泉模型(Fountain Model) 1.2.2 结构化系统分析与设计方法

相关主题
相关文档 最新文档