详谈软件工程之系统设计模式
- 一:人机界面设计
-
-
- 1、至于用户控制之下:
- 2、减少用户的记忆负担
- 3、保持界面的一致性:
-
- 二、结构化设计
-
-
- 1、结构化设计需要遵循的原则:
-
- (1)抽象化
- (2)自顶向下、逐步求精
- (3)信息隐蔽
- (4)模块独立(高内聚、低耦合)
-
- 三、面向对象设计
-
-
- 1、面向对象设计的基本过程
- 2、设计原则
- 3、设计模式的概念
- 4、设计模式的分类
-
- (1)创建型模式:
- (2)结构型模式:
- (3)行为性模式:
-
题外话:本博客讲的是软件工程中的系统设计部分,其中软件架构设计放到后面板块来详细说明,这里主要讲的是系统设计中的界面设计、结构化设计以及面向对象设计。
一:人机界面设计
概要设计:做的是子系统的划分,子系统接口的设计,模块划分等工作。概要设计也称为高层设计或总体设计,即将软件需求转化为数据结构和软件的系统结构。
详细设计:是指对某一功能点的具体设计。详细设计也称为低层设计,即对结构图进行细化,得到详细的数据结构与算法。
概要设计偏架构一点,详细设计是单个模块的设计。
总的来说,在整个软件设计过程中,需完成以下工作任务:
(1)制定规范,作为设计的共同标准。
(2)完成软件系统结构的总体设计,将复杂系统按功能划分为模块的层次结构,然后确定模块的功能,以及模块间的调用关系和组成关系。
(3)设计处理方式,包括算法、性能、周转时间、响应时间、吞吐量和精度等。
(4)设计数据结构。
(5)可靠性设计。
(6)编写设计文档,包括概要设计说明书、详细设计说明书、数据库设计说明书、用户手册和初步的测试计划等。
(7)设计评审,主要是对设计文档进行评审。
1、结构化设计需要遵循的原则:
(1)抽象化
对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所
处环境的语言描述问题的解法。而在较低的抽象层次上,则宜采用过程化的方法。抽象化包括对过
程的抽象、对数据的抽象和对控制的抽象。
(2)自顶向下、逐步求精
将软件的架构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个架构。
(3)信息隐蔽
信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,并且尽可能少地暴露其内部的处理过程。
(4)模块独立(高内聚、低耦合)
强调每个模块之间是相互独立的,每个模块做到单一职责,并且与其他模块之间的联系最简单。通常用耦合(模块之间联系的紧密程度)和内聚(模块内部各元素之间联系的紧密程度)两个标准来衡量,我们的目标是“高内聚、低耦合”。
高内聚:指的是一个模块内部的联系紧密程度较高;
低耦合:模块之间的联系较少。
2、设计原则
- 单一职责原则:设计目的单一的类;
- 开发-封闭原则:对扩张开放,对修改封闭;
- 李氏(Liskov)替换原则:子类可以替换父类;
- 依赖倒置原则:要依赖于抽象,而不是具体实现;要面向接口编程,不要针对实现编程;
- 接口隔离原则:使用多个专门的接口比使用一个总接口要好;
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的;
- 迪米将(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
3、设计模式的概念
架构模式:软件设计中的高层决策,例如C/S结构就属于架构模式 架构模式反映了开发软件系统过程中所作的基本设计决策
设计模式:主要关注软件系统的设计 与具体的实现语言无关
惯用法:是最低层的模式,关注软件系统的设计与实现 实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有它自己特定的模式 即语言的惯用法。例如引用计数就是 C++语言中的一种惯用法
4、设计模式的分类
(2)结构型模式:
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93540 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!