欢迎来到天天文库
浏览记录
ID:49412106
大小:277.50 KB
页数:77页
时间:2020-02-06
《软件工程——原理、方法与应用第3章需求分析电子教案.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章软件设计学习目标:掌握软件设计的任务掌握模块划分的评价准则——模块独立性的判别掌握结构化设计方法掌握一些常用的详细设计工具1第3章软件设计教学内容3.1软件设计的任务3.2软件设计的基本概念3.3结构化设计方法3.4设计优化3.5详细设计本章小结返回总目录23.1软件设计的任务需求分析阶段的结果是需求规格说明书,它明确地描述了用户对系统的需求,解决了软件“做什么”的问题。在明确了要做的“问题”之后,现在应该着手寻求问题的“解答”,即解决软件“怎么做”的问题。软件设计是一个把软件需求转换成软件表示的过程,软件设计分为两个阶段:概要设计,
2、将软件需求转换为软件结构和数据结构,并编写概要设计说明书;详细设计,通过对软件结构的细化,得到软件的详细的算法和数据结构,产生描述软件的详细设计文档。33.1软件设计的任务概要设计的基本任务有:①制定规范②软件系统结构的总体设计③处理方式设计④数据结构设计⑤可靠性设计⑥编写概要设计阶段的文档⑦概要设计评审43.2软件设计的基本概念返回目录主要教学内容:3.2.1软件设计的概念3.2.2模块化与模块独立性3.2.3抽象与信息隐蔽3.2.4软件设计原则53.2软件设计的基本概念3.2.1软件设计的概念1.逐步求精逐步求精是把问题的求解过程分成若
3、干步骤或阶段,每个步骤或阶段都比上一个步骤更精化,更接近问题的解法。逐步求精是与抽象化紧密相关的概念,是一个由抽象到具体的过程。软件工程的每一个阶段都是对软件解法的一次求精。可行性研究阶段是对软件设计的最高层次抽象。而在编码阶段,用源程序写出了问题的解法,这是软件设计的最低层次抽象。63.2软件设计的基本概念2.程序结构程序结构最常用的是树状结构,它蕴涵了程序控制上的层次关系。位于最上层根部的是顶层模块,它是程序的主模块。与其联系的有若干下属模块,受其控制和调用。程序结构可以按水平方向或垂直方向进行划分。水平划分按主要的程序功能来定义模块结
4、构的各个分支。顶层模块是控制模块,用来协调程序各个功能之间的通信和运行。其下级模块的最简单的水平划分方法是建立3个分支:输入、处理(数据变换)和输出。这种划分的优点是:由于主要的功能相互分离,易于修改、易于扩充,且没有副作用。缺点是:需要通过模块接口传递更多的数据,使程序流的整体控制复杂化。73.2软件设计的基本概念垂直划分也叫作因子划分,主要用在程序的体系结构中,划分时自顶向下逐层分布:顶层模块执行控制功能,极少涉及实际处理工作;而低层模块是实际输入、计算和输出的具体执行者。这种划分的优点是:对低层模块的修改不太可能引起副作用的传播,而恰
5、恰对计算机程序的修改常常发生在低层的输入、计算或输出模块中。因此,程序的整体控制结构不太可能被修改,便于将来的维护。83.2软件设计的基本概念3.数据结构数据结构是数据的各个元素之间的逻辑关系的一种表示。数据结构设计应确定数据的组织、存取方式、相关程度,以及信息的不同处理方法。数据结构的组织方法和复杂程度可以灵活多样,但典型的数据结构种类是有限的,它们是构成一些更复杂结构的基本构件块。常用的数据结构类型有标量、数组、链表、自定义类型等。4.局部化局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素就是局部化的一个例
6、子。显然局部化有利于实现信息隐蔽。返回目录93.2软件设计的基本概念3.2.2模块化与模块独立性1.模块化模块是数据说明、语句等程序对象的集合,单独命名而且可通过名字来访问,如过程、函数、子程序、宏等都可以作为模块。模块具有3个基本属性:(1)功能:模块实现的功能(含子模块的功能)。(2)逻辑:描述模块内部怎么做。(3)状态:模块使用时的环境和条件。模块具有内部和外部两个特性:(1)外部特性:模块的名字、参数表等。(2)内部特性:完成模块功能的程序代码和模块内部数据。103.2软件设计的基本概念2.模块的独立性是指软件系统中每个模块只涉及软
7、件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。例如,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么,则称此模块具有模块独立性。它的重要性在于:模块独立性好的软件比较容易开发,便于多人合作开发同一个软件。独立的模块比较容易测试和维护。一般采用两个准则度量模块独立性,即模块与模块间的耦合性和模块内部的内聚性。113.2软件设计的基本概念3.藕合性藕合是程序结构内不同模块之间相互关联程度的度量。它是由模块间接口的复杂程度、调用模块的方式及通过接口传递的信息类型决定的。模块之间的连接越紧密,联系越多,耦合性就越高,而其模
8、块独立性就越弱。(1)非直接耦合如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用实现的,这就是非直接耦合,其模块独立性最强。123.2软件设计的基本概念(
此文档下载收益归作者所有