软件设计的目标和任务
1.根据用信息域表示的软件需求,以及功能和性能需求,进行:
(1)数据设计
(2)系统结构设计
(3)过程设计
软件设计任务
1.从工程管理的角度来看,软件设计分为两步完成。
(1)概要设计
(2)详细设计
开发阶段的信息流
软件设计对比
软件设计过程
1.制定规范
2.软件系统结构的总体设计
3.处理方式设计
4.数据结构设计
5.可靠性设计
6.编写概要设计阶段的文档
7.概要设计评审
软件设计基础
1.自顶向下,逐步细化
将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化。
2.软件结构
软件结构包括两部分。程序的模块结构和数据的结构
3.程序结构
4.结构图
结构图反映程序中模块之间的层次调用关系和联系
③模块间的信息传递
5.模块化
能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。
6.抽象化
软件系统进行模块设计时,可有不同的抽象层次。
7.信息屏蔽
模块的独立性
模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能。
一般采用两个准则度量模块独立性。即模块间耦合和模块内聚
模块(MOdule),“模块”一般具有如下三个基本属性:
1.功能:描述该模块实现什么功能
2.逻辑:描述模块内部怎么做
3.状态:该模块使用时的环境和条件
模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能。
一般采用两个准则度量模块独立性。即模块间耦合和模块内
模块间耦合
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。
公共耦合有两种情况。松散公共耦合和紧密公共耦合。
内容耦合
模块内聚
功能内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分,是不可分割的。
信息内聚:这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。
通信内聚:如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。
过程内聚:使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。
时间内聚:时间内聚模块的各个功能的执行一时间有关,通常要求所有功能必须在同一时间段内执行。
逻辑内聚:这种模块把几种相关的功能组合在一起。
巧合内聚:巧合内聚模块内各部分之间没有联系,或者即使有联系,这种联系也很松散。
结构设计原则
软件概要设计包括模块构成的程序结构和输入输出数据结构。其目标是产生一个模块化的程序结构,并明确模块间的控制关系,以及定义界面、说明程序的数据进一步调整程序结构和数据结构。
改进软件设计、提高软件质量的原则。
1.显著改进软件结构提高模块独立性
2.模块规模应该适中
3.适当选择深度、宽度、扇出和扇入
4.模块的作用域应该在控制域之内
5.力争降低模块接口的复杂程度
6.设计单入口单出口的模块
7.模块功能应该可以预测
面向数据流的设计方法
基本概念
1.变换流
2.事物流
3.设计过程
系统结构图(SC图)的组成
变换分析
事物分析
设计优化
面向数据结构的分析设计方法
Jackson系统开发方法(JSD)
Jackson系统开发方法(JSD,Jackson,System Development)是一种典型的面向数据结构的分析设计方法。
Jackson系统开发方法的系统模型就是相互通讯的一组进程的集合。进程间的通讯方式有一下三种:
(1)进程同步发生。
(2)通过数据通道发送/接受活动发生。
(3)访问公用储存信息。
1.Jackson图
(1)表达基本结构
对于种类繁多的程序中使用的数据结构,各种数据元素之间的逻辑关系只有顺序、选择、重复三种,所以逻辑数据结构也只有三种。
顺序结构
选择结构
重复结构
(2)改进的Jackson图
Jackson图的缺点是:用这种图形工具表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力,也不易直接把图翻译成程序,此外,框内连线为斜线,不易在行式打印机上输出。
(3)如何使用Jackson图
①表示数据结构
②表示程序结构
③Jackson伪代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!