第七章 面向对象的系统分析和设计
本章将把第一章阐述的理论原则进一步具体化,对面向对象软件系统分析设计的方法和步骤进行详细讨论。
本章目的:
.结合典型实例,系统介绍OOA/OOD方法
.掌握系统分析设计过程模式
.学会使用三视图模型标识对象
.掌握对象设计的步骤和方法
.了解如何评审和修正OO模型
.了解OO系统预测为何必须在系统级和对象级进行
7.1 面向对象系统分析和系统设计
所谓面向对象的系统分析和设计,就是将面向对象的方法运用到软件工程的分析和设计阶段。其主要目的是完成对某个特定应用论域(application domain)分析和对系统的建模。具体讲,在该阶段需要完成的任务是描述系统中的对象、对象的属性和操作、对象的动态特性、对象间的构造关系及通信关系等,从而建立系统的静态结构和动态活动模型。
在系统分析阶段,需要解决的问题集中在确定系统所需要完成的工作上;在系统设计阶段,则需要决策如何完成系统预定的功能。
系统分析和设计是为了开发一个软件所进行工作的一个重要组成部分,其考虑得较多的是如何开发一个完整的自动信息系统。该系统包括硬件、软件、人、过程和数据。在系统分析和设计中,对这五个组件及其相互间关系应引起足够的重视,否则,极有可能导致系统的失败。
系统分析和设计的最终目标是推出一个可被接收的自动信息系统,该系统可用于以下几种方式中的一种或多种:
(1)应用于系统开发所期待的事务领域内的软件。
(2)面向零售商、邮购客户等进行出售的软件。
(3)应用于为一个事务所开发的产品内部的软件。
此外,自动信息系统的其他4个部件——硬件、数据、过程和人——必须被精心地分析和设计,以便能够与软件较好地进行配合并协调工作。
面向对象分析就是运用面向对象方法进行需求分析。系统分析过程是在软件工程的环境中建立基本系统行为的过程,其基本目标是按照某种机制,构造待开发软件系统的形式模型,捕捉系统最基本的需求。该模型应该清晰地体现各种需求,提供一个软件需求和软件开发之间的基础,并成为后续的设计和实现等阶段的框架。
在面向对象分析中需要完成的基本任务是运用面向对象方法,分析和理解问题论域和系统责任,正确认识其中的事物和它们之间的关系,及其它们之间所形成的结构、静态联系和动态联系,最终产生一个符合用户需求并能直接反映问题论域和责任的OOA模型及其详细说明。其中OOA模型涉及到对象的三个方面:静态结构(对象模型)、相互作用的序列(动态模型)和数据转移(功能模型)。
OMT(object modeling technique)定义的三种模型的结构如下:
对象模型=对象模型图+数据字典
动态模型=状态图+全局事件流图
功能模型=数据流图+约束系统分析阶段研究一个事务的问题和需求,以便确定硬件、软件、人、过程和数据如何能够最佳地实现事务的改进。事务的改进主要体现在以下三个方面:
(1)增加事务的回报和/或利润。
(2)降低事务的消耗。
(3)提高事务所提供服务的质量。
在系统分析中,必须时刻谨记这三个方面,它们是使系统分析可以对事务作出有价值的贡献的物质途径。
在面向对象软件设计中,系统分析的模型描述了表示某个特定应用论域中的对象,以及各种各样的结构关系和通信关系。
论域指的是将要被计划、分析、设计并最终被作为一个自动的信息系统而执行的事务问题或功能。
问题论域指被开发的应用系统所考虑的整个业务范围。
系统指的是相互联系的一组部件,这些部件是为了实现一个共同的目标而组合在一起协同工作的。
为了认清问题的真实面目,抓住问题的本质,可以通过系统分析,对真实系统进行简化,建立系统模型。
系统模型一般包括以下六个组成部分:系统输入、处理过程、系统输出、系统控制、系统响应和系统界面,如图7.1所示。
图中数据可以是输入数据、输出数据或系统内所存储的数据;功能是指所执行的事务动作;行为指的是对请求所做的可观察到的效果。
系统设计是软件设计的首要阶段,在该阶段,需要选择解决问题的基本方法,并从高层到低层逐步进行细化。在系统设计期间,需要确定整个系统的结构和风格。所谓的系统结构是指一个系统的全面的组织形式,即将系统划分为子系统的全部的组织结构,这些结构提供了更细化的决策和后续的设计阶段的依据。将高层决策应用于子系统,可以把整个分解为若干子系统,使得后续的系统开发工作可以由不同风格的设计者在不同的子系统中独立完成。
系统分析和设计是由多个必需的步骤组成、为创建一个成功的信息系统服务的过程。图7.2是系统分析和设计(包括实施)的一个一般模型。该模型包括3个主要的要素:活动(分析、设计和实施)、活动中所涉及的人(客户、信息技术人员)和输入输出(在图中所有带有标号的区域)。图中对输入输出进行标号是为了提供一个标准事件序列的可视化流程。
该系统分析和设计的模型的工作过程。
对于系统分析,可以分为以下步骤:
(1)系统计划:寻求可以对事务产生更大利益的同等的或更优的技术和事务应用。
(2)可行性研究(可选):从技术、操作和经济等各方面综合考虑,确定开发一个信息系统的优点,分析其目标、客观情况及限制条件,确定该项目是否可行。
(3)需求分析:系统分析员和客户一起确定信息系统的需求并进行归档(最困难的一步)。
(4)客户接受:客户对需求文档的正式或非正式批准。
(5)原型设计(可选):为了更好地理解客户的要求或增加客户接受预期系统的可能性而开发信息系统原型。
系统分析阶段结束后,应该提交的成果有需求指定文档和系统原型(可选)。
系统分析和设计应该遵守的原则有:
(1)系统的开发是面向客户的,应从客户的角度考虑。
(2)诸如系统开发生命周期之类的产品更新换代机构应该在所有的信息系统开发项目中建立起来。
(3)信息系统开发的过程并不是一个顺序的过程,它允许步骤的重叠、倒转等。
(4)如果系统的成功可能性受到很大限制时应该取消整个项目。
(5)文档材料是系统开发生命周期各个阶段中重要的可递交成果,应加以重视。
以上是一些总体性的介绍,为了使读者能够较好的掌握面向对象分析和面向对象设计的方法,在本章中采用Coad/Yourdon的OOA图示法,结合一个中英文双向电子字典系统的面向对象分析和面向对象设计的例子,详细说明面向对象分析和面向对象设计的方法和步骤。
本章将把第一章阐述的理论原则进一步具体化,对面向对象软件系统分析设计的方法和步骤进行详细讨论。
本章目的:
.结合典型实例,系统介绍OOA/OOD方法
.掌握系统分析设计过程模式
.学会使用三视图模型标识对象
.掌握对象设计的步骤和方法
.了解如何评审和修正OO模型
.了解OO系统预测为何必须在系统级和对象级进行
7.1 面向对象系统分析和系统设计
所谓面向对象的系统分析和设计,就是将面向对象的方法运用到软件工程的分析和设计阶段。其主要目的是完成对某个特定应用论域(application domain)分析和对系统的建模。具体讲,在该阶段需要完成的任务是描述系统中的对象、对象的属性和操作、对象的动态特性、对象间的构造关系及通信关系等,从而建立系统的静态结构和动态活动模型。
在系统分析阶段,需要解决的问题集中在确定系统所需要完成的工作上;在系统设计阶段,则需要决策如何完成系统预定的功能。
系统分析和设计是为了开发一个软件所进行工作的一个重要组成部分,其考虑得较多的是如何开发一个完整的自动信息系统。该系统包括硬件、软件、人、过程和数据。在系统分析和设计中,对这五个组件及其相互间关系应引起足够的重视,否则,极有可能导致系统的失败。
系统分析和设计的最终目标是推出一个可被接收的自动信息系统,该系统可用于以下几种方式中的一种或多种:
(1)应用于系统开发所期待的事务领域内的软件。
(2)面向零售商、邮购客户等进行出售的软件。
(3)应用于为一个事务所开发的产品内部的软件。
此外,自动信息系统的其他4个部件——硬件、数据、过程和人——必须被精心地分析和设计,以便能够与软件较好地进行配合并协调工作。
面向对象分析就是运用面向对象方法进行需求分析。系统分析过程是在软件工程的环境中建立基本系统行为的过程,其基本目标是按照某种机制,构造待开发软件系统的形式模型,捕捉系统最基本的需求。该模型应该清晰地体现各种需求,提供一个软件需求和软件开发之间的基础,并成为后续的设计和实现等阶段的框架。
在面向对象分析中需要完成的基本任务是运用面向对象方法,分析和理解问题论域和系统责任,正确认识其中的事物和它们之间的关系,及其它们之间所形成的结构、静态联系和动态联系,最终产生一个符合用户需求并能直接反映问题论域和责任的OOA模型及其详细说明。其中OOA模型涉及到对象的三个方面:静态结构(对象模型)、相互作用的序列(动态模型)和数据转移(功能模型)。
OMT(object modeling technique)定义的三种模型的结构如下:
对象模型=对象模型图+数据字典
动态模型=状态图+全局事件流图
功能模型=数据流图+约束系统分析阶段研究一个事务的问题和需求,以便确定硬件、软件、人、过程和数据如何能够最佳地实现事务的改进。事务的改进主要体现在以下三个方面:
(1)增加事务的回报和/或利润。
(2)降低事务的消耗。
(3)提高事务所提供服务的质量。
在系统分析中,必须时刻谨记这三个方面,它们是使系统分析可以对事务作出有价值的贡献的物质途径。
在面向对象软件设计中,系统分析的模型描述了表示某个特定应用论域中的对象,以及各种各样的结构关系和通信关系。
论域指的是将要被计划、分析、设计并最终被作为一个自动的信息系统而执行的事务问题或功能。
问题论域指被开发的应用系统所考虑的整个业务范围。
系统指的是相互联系的一组部件,这些部件是为了实现一个共同的目标而组合在一起协同工作的。
为了认清问题的真实面目,抓住问题的本质,可以通过系统分析,对真实系统进行简化,建立系统模型。
系统模型一般包括以下六个组成部分:系统输入、处理过程、系统输出、系统控制、系统响应和系统界面,如图7.1所示。
图中数据可以是输入数据、输出数据或系统内所存储的数据;功能是指所执行的事务动作;行为指的是对请求所做的可观察到的效果。
系统设计是软件设计的首要阶段,在该阶段,需要选择解决问题的基本方法,并从高层到低层逐步进行细化。在系统设计期间,需要确定整个系统的结构和风格。所谓的系统结构是指一个系统的全面的组织形式,即将系统划分为子系统的全部的组织结构,这些结构提供了更细化的决策和后续的设计阶段的依据。将高层决策应用于子系统,可以把整个分解为若干子系统,使得后续的系统开发工作可以由不同风格的设计者在不同的子系统中独立完成。
系统分析和设计是由多个必需的步骤组成、为创建一个成功的信息系统服务的过程。图7.2是系统分析和设计(包括实施)的一个一般模型。该模型包括3个主要的要素:活动(分析、设计和实施)、活动中所涉及的人(客户、信息技术人员)和输入输出(在图中所有带有标号的区域)。图中对输入输出进行标号是为了提供一个标准事件序列的可视化流程。
该系统分析和设计的模型的工作过程。
对于系统分析,可以分为以下步骤:
(1)系统计划:寻求可以对事务产生更大利益的同等的或更优的技术和事务应用。
(2)可行性研究(可选):从技术、操作和经济等各方面综合考虑,确定开发一个信息系统的优点,分析其目标、客观情况及限制条件,确定该项目是否可行。
(3)需求分析:系统分析员和客户一起确定信息系统的需求并进行归档(最困难的一步)。
(4)客户接受:客户对需求文档的正式或非正式批准。
(5)原型设计(可选):为了更好地理解客户的要求或增加客户接受预期系统的可能性而开发信息系统原型。
系统分析阶段结束后,应该提交的成果有需求指定文档和系统原型(可选)。
系统分析和设计应该遵守的原则有:
(1)系统的开发是面向客户的,应从客户的角度考虑。
(2)诸如系统开发生命周期之类的产品更新换代机构应该在所有的信息系统开发项目中建立起来。
(3)信息系统开发的过程并不是一个顺序的过程,它允许步骤的重叠、倒转等。
(4)如果系统的成功可能性受到很大限制时应该取消整个项目。
(5)文档材料是系统开发生命周期各个阶段中重要的可递交成果,应加以重视。
以上是一些总体性的介绍,为了使读者能够较好的掌握面向对象分析和面向对象设计的方法,在本章中采用Coad/Yourdon的OOA图示法,结合一个中英文双向电子字典系统的面向对象分析和面向对象设计的例子,详细说明面向对象分析和面向对象设计的方法和步骤。