400 likes | 570 Views
第十一章. 系统开发其他方法. OO 方法; 快速原型法; Jackson 方法。. 11.1 面向对象方法. OO 方法的基本概念 OO 方法的原理 OO 方法是与 SA&D 方法并行的软件开发方法。它有独立的概念、方法、模型、技术。是 90 年代后的新兴技术。目前发展势态良好 。. 一、什么是 00 方法. 00 方法的定义是: 00 方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。特点: 1 .从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。.
E N D
第十一章 系统开发其他方法 OO方法; 快速原型法; Jackson方法。
11.1 面向对象方法 • OO方法的基本概念 • OO方法的原理 • OO方法是与SA&D方法并行的软件开发方法。它有独立的概念、方法、模型、技术。是90年代后的新兴技术。目前发展势态良好。
一、什么是00方法 00方法的定义是:00方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。特点: 1.从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。
一、什么是00方法 2.事物的静态特征用对象的属性表示,动态特征用对象的服务表示。 3.对象的属性与服务结合成为一个独立的实体。 4.对事物进行分类。把具有相同屑性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。
5.通过在不同程度上运用抽象的原则,可以得到一般类和特殊类。特殊类继承一般类的属性与服务,简化系统的构造过程及其文档。5.通过在不同程度上运用抽象的原则,可以得到一般类和特殊类。特殊类继承一般类的属性与服务,简化系统的构造过程及其文档。 6.复杂对象可以用简单的对象组合称作聚合。 7.对象间通过消息通信实现之间的动态联系。 8.通过关联表达对象之间的静态关系。
二、00开发方法 面向对象的软件工程方法,是OO方法在软件工程领域的全面运用。它也是沿着软件的生命周期展开的开发方法.包括面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(OOT)和面向对象软件维护(OOM)。
11.1 基本概念 一、对象:系统中用来描述客观事物的实体。它是构成系统的基本单位。对象由一组属性和对属性操作的一组服务组成。对象是一个封闭体,它由标识,属性,服务组成。 二、类:是对象的抽象。类和类间可以构成各种联系。 OOA模型就是由构成系统的类积类间关系的描述组成的。
三、消息:是类间联系的一种。消息可理解为调用。三、消息:是类间联系的一种。消息可理解为调用。 四、继承:子类把父类的属性,服务接收下来。 五、封装:对象和类都是实行和服务的抽象,外界只能通过消息出发其服务来改变自身的属性。
11.2 OO方法的原理 OO方法分五个阶段: OOA OOD OOP OOT OOM 在OOA阶段建立OOA模型,到OOD阶段建立OOD模型。 OO方法使用喷泉模型
OOM OOT OOP OOD OOA 喷泉模型
use case交 互 图 对象层 特征层 关系层 主 题 图 详 细 说 明 OOA阶段建立OOA模型 其中,中间部分叫基本模型,左右两部分称辅助模型。基本模型和详细说明是必需的,扶助模型可选。
OO方法 对于OO方法,目前流行的有几十种,较有名气得也有4,5种。但我向大家推荐北大青鸟的OO方法。它是在博采众长的基础上开发出来的适合中国国情的OO方法。 推荐OO技术的书籍: 《面向对象的系统分析》 《面向对象的系统设计》 由邵维忠 杨芙清著,清华大学出版社出版
OO方法的优势与不足 作为一种新型软件开发方法,其优势是明显的:使用喷泉模型,不严格区分阶段,回溯容易;封装,继承等概念有独到的优势;已有众多的新型CASE工具的支持。 不足:缺少系统规划,问题严重; 自底向上,问题多多。
11.2 原型法 一、什么是原型法(Prototyping) 又称快速原形法。针对结构化方法的“慢”和”严”等弱点提出“快”和“像”。开发组在最短的时间内(快)拿出一个原型,它能反映用户主要需求(像)。交给用户使用并提出意见。开发组改进原型,再交给用户。
11.2 原型法 通过反复使用、评价和修改原型,提高原型的质量,直至最终建立符合用户要求的系统.因此可以认为原型法是确定用户需求的策略,它对用户需求的定义采用启发方式.引导用户在对系统逐渐加深理解的过程中确认需求。
原型法主要有以下优点: 启发式需求定义。 允许在系统开发生命期的早期进行人机交互测试; 加强了开发过程中的用户参与; 可以缓和通信和交流的困难; 可以简化开发过程的项目管理和文档编编; 提供了最终系统的操作训练。
二、原刑法的工作流程 本质上原刑法不是独立的开发方法。它需依附于某种方法,代替其几个开发阶段。完成开发。 可以代替结构化方法的SA,SD或同时代替这两个阶段。 原型法自身的生命周期有9个阶段:
原型法实施步骤 1、识别基本需求; 2、开发出初始型; 3、验证原型; 4、改进-验证-判断原型迭代; 5、细部说明; 6、判断原型效果; 7、整理原型、提供文档。
三、原型法的开发环境 1、对软件的基本要求: ⑴集成化的数据字典;辅助生成某些部件。 ⑵高性能的DBMS; ⑶超高级语言,如4GL等; ⑷执行生成器; ⑸屏幕格式生成器; ⑹自动文档编制机制。
2、对工作环境的要求: (1)快速响应的环境。无论是交互式过程响应,还是批处理方式的响应都要很快。 (2)规范的原型构成过程。必要的规范和标准能加快原型的建立和向最终系统的转换。利用规范的开发技术,可由现有程序“切割和粘贴”出新程序,加快开发速度。 (3)好的演示原型的设施。
11.3 Jackson方法 M.Jackson提出的开发方法是面向数据结构的方法,是按数据的输入/输出/内部存储结构进行设计的,就是把对数据结构的描述变换为对软件结构的描述。 许多应用领域,问题的结构层次清楚,输入/输出/内部存储的数据都有一定的结构。面向数据结构的设计方法,就利用这一特点作为软件设计基础的。
数据结构不只是影响软件结构的设计,还影响软件过程的设计,即算法设计。如果一个数据结构具有重复的性质,软件可用循环结构来实现;如果一个数据结构具有选择的性质,则软件可用选择结构来控制;如何一个数据结构是分层次的,软件结构也必然是分层次的。所以,数据结构充分地揭示了软件的结构。面向数据结构的设计方法定义了一组以数据结构为指导的映射过程。数据结构不只是影响软件结构的设计,还影响软件过程的设计,即算法设计。如果一个数据结构具有重复的性质,软件可用循环结构来实现;如果一个数据结构具有选择的性质,则软件可用选择结构来控制;如何一个数据结构是分层次的,软件结构也必然是分层次的。所以,数据结构充分地揭示了软件的结构。面向数据结构的设计方法定义了一组以数据结构为指导的映射过程。
一、数据结构的表示 Jackson方法把问题分解为可由三种基本结构形式表示的层次结构。三种基本结构是:顺序、选择和循环。三种基本结构类型的表示,分别如图(a)、(b)、(c)所示。数据A是B、C、D三部分的有序集合。 A A A * ○ ○ B C D B C B 顺序结构 选择结构 循环结构
A * B * D C ○ ○ E F 组合数据结构 三种基本结构可以组合,形成复杂的结构体系。如图1l—3所示。图中数据A由数据B多次重复组成;子数据B是由子数据C的多次重复和另一个子数据D组成;D又是由E或F组成。
Jackson数据结构层次图都表示为树形结构,有一个树根。层次结构有三种基本形式,可用于表示输入/输出或数据库结构。Jackson数据结构层次图都表示为树形结构,有一个树根。层次结构有三种基本形式,可用于表示输入/输出或数据库结构。 Jackson层次方框图即可用来描述数据结构,也可以用来描述程序结构和客观事物。
二、Jackson结构设计方法 第一步、确定数据结构 确定数据的逻辑结构并用Jackson数据结构层次图描述。如果输入和输出都是二维表,这是容易做到的。在其它情况下,可以通过对问题的分析,找出井确定输入、输出的逻辑结构。 这一步可以看作是需求分析。在用Jackson图表示数据结构时,应该省略与问题无关的细节仅保留有用的数据单元。
第二步、找出输入/输出结构有对应关系的数据单元,并按着下列映射规则导出相应的程序结构。仍用Jackson图表示.规则是:第二步、找出输入/输出结构有对应关系的数据单元,并按着下列映射规则导出相应的程序结构。仍用Jackson图表示.规则是: 1、为每对有对应关系的数据单元,按照它们在数据结构中所在的层次,在程序结构中的相应位置上画一个框。 2、为辖人数据中每个在辅出数据中汉有对应单元的数据单元,在程序结构的适当位置画一个框。
3、为输出数据中每个在输入数据中没有对应单元的数据单元,在程序结构的适当位置画一个框。3、为输出数据中每个在输入数据中没有对应单元的数据单元,在程序结构的适当位置画一个框。 筒言之:每对有对应关系的数据单元合画一个框,没有对应关系的数据单元各画一个框。 第三步、用Jackson伪码写出算法。 第四步、列出和分配可执行操作,列出所有操作以及遗择条件和重复条件,并把它们分配到程序结构的适当位置。
例1,设计一个打印表格程序.表中类别栏可以是教师/学生;状态栏中教师行中填他的工龄、学生填他的年级.根据表格的形式可以画出数据结构,如图。表格由表头和表体顺序组成;表体由行重复组成;每行又是由姓名、年龄、类别、状态顺序组成;状态由年龄或年级组成。例1,设计一个打印表格程序.表中类别栏可以是教师/学生;状态栏中教师行中填他的工龄、学生填他的年级.根据表格的形式可以画出数据结构,如图。表格由表头和表体顺序组成;表体由行重复组成;每行又是由姓名、年龄、类别、状态顺序组成;状态由年龄或年级组成。
本例操作如下: 1读表头数据; 2读行数据项 3打印符号行; 4打印数字行;5读表头结束符;6读行结束符; 7读文件结束符。 将上述操作和条件分配到图的适当位置:
例2,将考生情况文件(a)和考分文件(b)合并成一个文件:考生新文件。例2,将考生情况文件(a)和考分文件(b)合并成一个文件:考生新文件。 考生情况文件的结构:准考证号、姓名、地址; 考分文件的结构,准考证号、考分。 三个文件都由‘考生记录”重复组成。
找出输入/输出数据结构有对应关系的数据单元.所谓有对应关系是指有直接因果关系,程序可以同时处理的数据单元。对于重复的数据单元,必须重复的次序和次数都相同才算有对应关系。找出输入/输出数据结构有对应关系的数据单元.所谓有对应关系是指有直接因果关系,程序可以同时处理的数据单元。对于重复的数据单元,必须重复的次序和次数都相同才算有对应关系。 显然,三个文件中的考生记录排列次序(按准考证号递增排列)是相同的.考生新文件中的考生记录的内容来自于考生情况文件和考分文件的相应记录。所以,可以说输入结构中 的“考生记录”这个数据单元与输出结构中的”考生记录”有对应关系。在图中可用双向箭头线标出。