面向对象学习(2):软件设计方法学概叙

分解的作用:

控制复杂性的技巧-------分而治之

1:算法分解 : 系统中的每个模块代表了某一个总体过程的一个重要步奏。(强调事件的顺序)

2:面向对象分解:把世界看成一组自动化的代理。每个对象都有自己的独特行为,每个对象都是真实世界中某个对象的模型。(强调代理)

分析和设计方法的分类:

方法一个有规定的过程,目的是生成一组模型

方法的重要性

1:在开发中注入纪律

2:定义一些产品,成为开发团队中成员沟通的载体

3:定义了管理层次测量进度管理风险所需的里程碑。

三类设计方法:

1: 自顶向下的结构化设计:设计者通过算法分解,将大问题分解为较小的步奏。

                              缺点:不考虑数据抽象和信息隐藏。没有足够手段处理并发(可伸缩性不太好)  

2:数据驱动设计:系统输入和系统输出之间的映射关系驱动着软件系统的结构

                              缺点:在考虑时间相关的事件方面要求不高。

3:面向对象设计:将系统建模为一组协作的对象,单个对象作为类的实例,而类之间具有层次关系。

分解系统-----得到结构------生产框架

面向对象设计方法的优点:

有助于组织软件系统的内在复杂性。

1,表达经济性:复用共同机制,得到较小的系统。

2,灵活适应性:应对变化具有弹性,能随时间演变。(因为设计基于——稳定的中间状态。即:稳定的抽象结构)

面向对象开发原则抽象、封装、模块化、层次结构、类型、并发,持久

抽象的作用:选择忽略非本质的细节,转而处理一个对象的一般化的、理想化的模型。

                    (只关注需要关注的部分,忽略不需要关注的部分,从而建立具有基本特性的模型

层次结构的作用:通过显式地组织类和对象层次结构,可以增加单块信息的语义内容。

                           对象结构:展示了不同对象之间的协作机制(交互模式),

                           类结构:强调系统中的公共结构行为。

设计的含义

设计的目的:创建一个干净的、相对简单的内部结构(架构)(在一组竞争的需求中寻求平衡)(寻找系统蓝图)

设计的目的是要构建出如下一个系统:

 1:满足给定的功能规格说明。

 2:符合目标介质的限制。

 3:满足隐含的性能、明确的性能及资源使用需求。

 4:满足隐含的和明确的关于产品形式方面的设计限制条件。

 5:满足对设计过程本身的限制条件,如:时间、费用、进行设计可用的工具。

建模的重要性:

设计中的每个模型都描述了被考虑的系统的某个方面。为了表达一个复杂系统的所有精妙之处,必须使用多种模型。

模型让我们有机会在受控制的条件下失败。

软件设计方法学的要素:

三类设计方法的共同要素:

1.表示法:表达每个模型的语言。

2.过程:导致有序构建系统模型的过程。

3.工具:消除建模中枯燥工作,并强制实现模型本身的规则的工件, 可以揭示错误和不一致性。




你可能感兴趣的:(面向对象,软件设计)