系统分析阶段是应用系统思想和方法,把复杂的对象分解成简单的组成部分。其基本任务是系统分析师和用户在充分了解用户需求的基础上,把双方对新系统的理解表达为系统的需求规格说明书。
系统设计的目标是根据系统分析的结果,完成系统的构建过程。其主要目的是绘制系统的蓝图,权衡和比较各种技术和实施方法的利弊。
系统分析主要分为概要设计和详细设计
一、人机界面设计
黄金三准则:1. 置于用户控制之下;2. 减少用户记忆负担;3. 保持界面一致性
二、结构化方法(SASD)
1. 结构化分析(SA)
主要手段有:数据流图、数据字典(核心)、结构化语言、判定表及判定树等。
数据流图(DFD):被称为过程建模或功能建模。
数据流图由以下四部分组成:
1. 数据流:用箭头表示,是数据流图的核心
2. 处理:表示对数据的加工和处理,用矩形框表示
3. 数据存储:表示用数据库或文件存储数据,箭头表示存储和读取
4. 外部:也被称为数据源或数据终点,表示数据的提供者或使
用者,用圆角矩形或平行四边形表示
数据字典:指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定
义和描述,其目的是对数据流程图中的各个元素做出详细的说明。是描
述数据的信息集合,是对系统中用的所有数据元素定义的集合。
2. 结构化设计(SA)
结构化设计是一种面向数据流的设计方法,以SRS和SA阶段产生的数据流图和数据字段为基础,是一个自顶向下、逐步求精和模块化的过程。
主要分为概要设计和详细设计两个阶段:概要设计阶段主要任务是确定软件系统的结构,对系统进行模块划分,确定每个模块功能、接口和模块之间的调用关系。详细设计阶段的主要任务是为每个模块设计实现的细节。
1. 模块结构(追求高内聚低耦合)
信息隐藏与抽象:信息隐藏:采用封装技术。抽象原则:要求抽取食物最基本的
特性和行为
模块化:在SD中,模块是实现功能的基本单位,他一般具有功能、逻辑、状态
三个基本属性
耦合:表示模块之间的联系程度,从低到高依次为:非直接耦合、数据耦合、标
记耦合、控制耦合、通信耦合、公共耦合、内容耦合
内聚:表示模块内部各代码成分之间联系的紧密程度,从功能角度来度量模块内
的联系,从低到高依次为:偶然内聚、逻内聚、时间内聚、过程内聚、通
信内聚、顺序内聚、功能内聚
2. 系统逻辑图(模块结构图):
可以用来表示的图:业务流图、程序流程图、问题分析图(PAD)、NS流程图
3. 结构化编程(SP)
结构化程序的表示: 程序 = 算法 + 数据结构
结构化程序设计的原则:自顶向下、逐步细化;
清晰第一,效率第二;
书写规范,缩进格式;
基本结构,组合而成
二、面向对象方法
将变相对象的思想应用于软件开发过程中,面向对象开发方法是以用例驱动的、以体系结构为中心的、迭代和渐增式的开发过程,主要包括需求分析、系统分析、系统设计和系统实现四个阶段。各个阶段的划分没有结构化开发那样清晰,而是各个阶段之间迭代进行的。
1. 面向对象分析(OOA)
2个模型:用例模型;分析模型(领域模型)
5个层次:主题层、对象层、结构层、属性层、服务层
5个活动:标识对象类、标识结构、定义主题、定义属性、定义服务
OOA的原则:抽象、封装、继承、分类、聚合、关联、消息通信、力度控制、行为分析
2. 面向对象设计(OOD)
三种类:边界类、控制类、实体类
实体类:映射需求中的每一个实体,是指实体类保存需要存储在永久存储体中的消
息,实体类是对用户最有意义的类。
控制类:控制类是控制用例工作的类,用于对一个活几个用例所特有的控制行为进
行机那么,控制对象通常控制其他对象。
边界类:边界类用于封装用例内、外流动的信息活数据流,位于系统和外界的交互处。
面向对象设计的基本原则
1. 单一职责原则:设计目的单一的类
2. 开发-封闭原则:对扩展开放,对修改封闭
3. 李氏替换原则:子类可以替换父类
4. 接口隔离原则:多个转门的接口比使用一个的总接口要好
5. 依赖导致原则:面向接口编程
6. 组合重用原则:尽量使用组合而不是继承
7. 最少知识原则(迪米特原则):一个对象对另一个对象的了解要尽可能少
3. 面向对象编程(OOP)
OOP是尽可能模拟人类的思维方式,使得软件的开发方式与过程尽可能接近人类认识世界、解决实现问题的方法和过程。OOP以对象为核心,达到了软件工程的三个主要目标:重用性、灵活性和扩展性,基本特点是:封装、继承、多态