1 / 99
文档名称:

软件工程课件 SE05.ppt

格式:ppt   大小:1,312KB   页数:99页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件工程课件 SE05.ppt

上传人:清晨 2022/5/8 文件大小:1.28 MB

下载得到文件列表

软件工程课件 SE05.ppt

相关文档

文档介绍

文档介绍:*
广东工业大学计算机学院
*
软件工程 Software Engineering
*
广东工业大学计算机学院
*
第5章 总体设计
本章内容:
软件设计的重要性
设计过程
软件总体设计
细描述的过程。在高层抽象定义时,从功能说明或信息描述开始,就是说明功能或信息的概念,而不给出功能内部的工作细节或信息的内部结构。细化则是设计者在原始说明的基础上进行详细说明,随着不断的细化(详细说明)给出更多的细节。
*
广东工业大学计算机学院
*
模块化
模块具有以下几种基本属性:
(1)接口:指模块的输入与输出。
(2)功能:指模块实现什么功能。
(3)逻辑:描述内部如何实现要求的功能及所需的数据。
(4)状态:指该模块的运行环境,即模块的调用与被调用关系。
*
广东工业大学计算机学院
*
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
*
广东工业大学计算机学院
*
问题复杂性与工作量关系
设问题x,表示它的复杂性函数为C(x),解决它所需的工作量函数为E(x)。对于问题P1和P2;如果:
C(P1)>C(P2)
即P1比P2复杂,那么:
E(P1)>E(P2)
即问题越复杂,所需要的工作量越大。
*
广东工业大学计算机学院
*
根据解决一般问题的经验,规律为:
C(P1+P2)>C(P1)+C(P2)
即一个问题同问题组合而成的复杂度大于分别考虑每个问题的复杂度之和。这样,可以推出:
E(P1+P2)>E(P1)+E(P2)
所得结果对于模块化和软件具有重要的意义。那么,从上面所得的不等式是否可以得出这样的结论:
如果把软件无限细分,那么最后开发软件所需要的工作量就小得可以忽略了。但是,事实上,影响软件开发工作量的因素还有许多
*
广东工业大学计算机学院
*
模块数目与软件成本
*
广东工业大学计算机学院
*
软件体系结构
软件总体设计的主要任务就是软件结构的设计。软件体系结构(software architecture)包含了计算机程序的两个重要特性:
(1)过程构件(模块)的层次结构。
(2)数据结构。
*
广东工业大学计算机学院
*
结构化演化
*
广东工业大学计算机学院
*
不同结构
*
广东工业大学计算机学院
*
程序结构
程序结构(program structure)给出了程序构件(模块)的组织(通常叫分层),这种组织包含了控制的层次。它们不给出软件的过程方面,如过程的序列、决策的出现或次序,或操作的重复等。
*
广东工业大学计算机学院
*
结构专用名词
*
广东工业大学计算机学院
*
数据结构
在软件体系结构的表达式中,数据结构与程序结构同样重要。数据结构决定信息的组织、存取方法、结合的程度,以及可选的处理方法。
*
广东工业大学计算机学院
*
典型的数据结构
*
广东工业大学计算机学院
*
当组织标量项作为一列或连接的组时,就形成一个顺序向量(sequential vector)。向量是数据结构中最常用的。可看下面这个C语言程序段的例子:
int aa[100];

procedure ps (int aa;int n;int sum)
{ int i;
{
*
广东工业大学计算机学院
*
sum=0;
for (i=1;i<= n ;i++)
sum=sum +aa[i];
};
}

例子中定义aa为100个标量整数项的顺序向量。在过程ps中标引aa的每个元素的存储,这样数据结构的每个元素都可按定义的顺序引用。
*
广东工业大学计算机学院
*
软件过程
软件过程(software procedure),则侧重于每一个单独模块的处理细节研究。过程必须提供精确的事件的顺序、确切的抉择点、重复的操作,以及数据的组织与结构处理规格说明。
*
广东工业大学计算机学院
*
一个模块内的过程
*
广东工业大学计算机学院
*
过程的分层
*
广东工业大学计算机学院
*
体系结构设计
软件体系结构设计(architectural design)的主要目标是设计一个模块化的程序结构。体系结构设计融合了程序结构和数据结构,接口定义能使数据流经程序。要给出各个模块之间的控制关系。
*
广东工业大学计算机学院
*
软件