******十七 ******、软设笔记【软件工程】-软件开发方法

软件开发方法
一、结构化分析和设计
1.结构化分析(SA)
一种面向数据流的需求分析方法,利用图像表达用户需求,常用工具有数据流图、数据字典。
(1)数据流图(DFD)
用来描述数据从输入到输出的变换流程。
*DFD不同于程序流程图。
*DFD可以表现大到整个系统,小到一个模块
*分层数据流图
(2)数据字典(DD)
对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。
数据项:只含有一个数据,又称为数据元素
数据流:由多个相关数据项组成
数据文件(数据库):


2.结构化设计(SD)
是一种面向数据流的设计方法,以分析阶段产生的文档(数据流图、数据字典、软件需求说明书)为基础,逐步求精和模块化的过程。结构化设计通常可以分为概要设计和详细设计。
(1)概要设计
概要设计也称为结构设计或总体设计。
概要设计和基本任务:设计软件系统结构,进行模块划分,确定每个模块的功能、接口、模块间的调用关系。
概要设计工具:结构图、数据字典(DD)、判断树和判定表
(2)详细设计
为每个模块设计其实现的细节。
详细设计工具:
*程序流程图
*盒图(NS图)
*问题分析图(PAD)
*程序设计语言(PDL)




二、面向数据结构的设计
根据输入/输出数据结构导出程序结构。
Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法。


三、面向对象的分析和设计
面向对象的方法是一种运行对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。
面向对象=对象(Object)
+类(Classification)
+继承(Inheritance)
+通信(Conmmunication with messages)
采用这四个概念开发的软件系统是面向对象的。


1.对象(Object)
*对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位。
*属性(attribute)也称为状态或数据,用来描述对象的静态特征。
*操作(Operation)(也称方法或服务)规定了对象的行为,表示对象所能提供的服务。
*封装(Encapsulation)是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户的隐蔽的。


2.类(Class)
类是一组具有相同属性和相同操作的对象的集合。
*一个类中的每个对象都是这个类的一个实例(Instance)
*类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。


对象和类的描述
对象和类一般采用“对象图”和“类图”来描述。


3.继承(Inheritance)
继承是指特殊类(子类)的对象拥有其一般类(父类)的全部属性和服务
父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。


4.多态性
多态性(Polymorphism)是指同一个操作作用用于不同的对象上可以有不同的解释,并产生不同的执行结果。
例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。


5.消息(Message)
消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接受对象名、调用的操作名和适当的参数(如果有必要的话)。
消息只告诉接受对象需要完成什么操作,但并不只是接收者怎样完成操作。消息完全由接收者解释执行。


面向对象方法的优点:
*与人类习惯的思维方法一致
*稳定性好
*可重用性好
*较易开发大型软件产品
*可维护性好
posted @ 2018-05-12 11:27  CHANGEMAX  阅读(73)  评论(0编辑  收藏  举报