软件工程总体设计(PPT111页)

PPT
  • 阅读 169 次
  • 下载 0 次
  • 页数 111 页
  • 大小 2.619 MB
  • 2023-07-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档22.00 元 加入VIP免费下载
此文档由【精品优选】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
软件工程总体设计(PPT111页)
可在后台配置第一页与第二页中间广告代码
软件工程总体设计(PPT111页)
可在后台配置第二页与第三页中间广告代码
软件工程总体设计(PPT111页)
可在后台配置第三页与第四页中间广告代码
软件工程总体设计(PPT111页)
软件工程总体设计(PPT111页)
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 111
  • 收藏
  • 违规举报
  • © 版权认领
下载文档22.00 元 加入VIP免费下载
文本内容

【文档说明】软件工程总体设计(PPT111页).pptx,共(111)页,2.619 MB,由精品优选上传

转载请保留链接:https://www.ichengzhen.cn/view-290975.html

以下为本文档部分文字说明:

信息科学与技术学院闵笛软件工程第五章总体设计❖5.1设计过程❖5.2设计原理❖5.3启发规则❖5.4描绘软件结构的图形工具❖5.5面向数据流的设计方法❖5.6小结❖习题信息科学与技术学院闵笛软件工程学习要求❖掌握:❖1、软件设计过程中应遵循

的基本原理和相关概念;❖2、描绘软件结构的图形工具的运用;❖3、面向数据流设计方法概念;变换分析、事务分析法过程和应用。❖理解:❖1、典型的总体设计过程包括的步骤;❖2、设计中的启发式规则;信息科学与技术学院闵笛软件工程重点和难点❖重点

:❖软件设计过程中应遵循的基本原理;❖面向数据流的设计方法❖难点:❖变换分析、事务分析法的过程和应用信息科学与技术学院闵笛软件工程软件设计的目标和任务❖软件需求:解决“做什么”❖软件设计:解决“怎么做”.❖软件设计的任

务:以软件需求规格说明书为依据,着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中。❖软件设计的重要性:是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的难易程度。信息科学与技术学院闵笛软件工程软件设计的两个阶段❖第一阶段:概要设计(总体设计)❖根据软件需求,设计软件系统结构

和数据结构,确定程序的组成模块及模块之间的相互关系。❖回答“概括地说,系统应该如何实现?”。❖其重要性是:站在全局高度,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从

而用较低成本开发出较高质量的软件系统。信息科学与技术学院闵笛软件工程软件设计的两个阶段❖第二阶段:详细设计(过程设计)❖确定模块内部的算法和数据结构;选定某种过程的表达形式来描述各种算法;产生精确描述各模块程序过程的详细文档,并进行评审。信息科学与技术

学院闵笛软件工程将需求分析模型转换为软件设计❖软件结构设计以需求分析中得到的数据流图为基础而进行。信息科学与技术学院闵笛软件工程第一个阶段总体设计的任务❖①制定规范❖②设计软件系统结构(简称软件结构)

❖③处理方式设计❖④数据结构及数据库设计❖⑤可靠性设计❖⑥编写概要设计文档❖⑦概要设计评审信息科学与技术学院闵笛软件工程①制定规范❖为软件开发小组制定在进行软件设计时,应该共同遵守的标准,以便协调组内各成员的工作。信息科学与技术学院闵笛软件工程②软件结构设

计❖包括:❖将系统按功能划分成模块❖确定每个模块的功能❖确定模块之间的调用关系❖确定模块之间的接口,即模块之间传递的信息❖评价模块结构的质量信息科学与技术学院闵笛软件工程③处理方式设计❖包括:❖功能设计:确定实现功能

算法,评估算法的性能.❖性能设计:确定实现性能需求必须的算法和模块间的控制方式信息科学与技术学院闵笛软件工程5.1设计的过程信息科学与技术学院闵笛软件工程5.2设计原理❖5.2.1模块化❖5.2.2抽象❖5.2.3逐步求精❖5.2.4信息隐蔽和局部化❖5.2.5模块独立信息科学与技术学

院闵笛软件工程5.2.1模块化(Modularity)❖①什么是模块和模块化思想?❖采取自顶向下的方式,逐层把软件系统划分成若干可单独命名和可编址的部分-“模块”,每个模块完成一个特定的子功能;所有模块按某种方法组成一个整体,完成

整个系统所要求的功能。❖软件系统就是通过这些模块的组合来实现。信息科学与技术学院闵笛软件工程②模块化的优点❖模块化是软件解决复杂问题所具备的手段,可降低软件复杂性,减少开发工作量,从而降低开发成本,提高软件生产率,以下是模块化的依据。信息科学与技术学院闵笛软件工程③模块化与软件成本的关系接口信息科

学与技术学院闵笛软件工程④模块的基本属性❖接口:指模块的输入与输出。❖功能:指模块实现什么功能。❖模块化好处:❖模块化使软件容易测试和调试,因而有助提高软件的可靠性。❖模块化能提高软件的可修改性。❖模块化有助于软件开发工

程的组织管理。信息科学与技术学院闵笛软件工程5.2.2抽象(Abstraction)❖①什么是抽象?❖认识复杂事物和现象时,抽出事物本质的共同特性而暂不考虑它们的细节。❖②软件开发中的抽象❖过程的抽象❖数据的抽象学生大学生湛江师范学院的学生湛师信

息学院的学生湛师信息学院11计本的学生信息科学与技术学院闵笛软件工程抽象❖什么是抽象思想?在认识事物、分析和解决问题的过程中,忽略那些与当前研究目标不相关的部分,以便将注意力集中于与当前目标相关的方面❖软件开发实际上就是一个从高层次抽象到低层次抽象逐步过渡的过

程。❖一个复杂的系统先用一些高级的抽象概念构造和理解,这些高级概念又用较低级的概念构造和理解,如此进行下去,直到具体元素。信息科学与技术学院闵笛软件工程形体衣着性格抽象抽象例子外表信息科学与技术学院闵笛软件工程5.2.3逐步求精❖逐步求精:为了能集中精力解决主要问题而尽

量推迟对问题细节的考虑。❖可把逐步求精看作是一项把一个时期内必须解决的种种问题按优先级排序的技术。❖逐步求精是一种自顶向下的设计策略,按这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。信息科学与技术学院闵笛软件工程逐步求精外表形体衣着性格头发

脸形领带抽象逐步求精的例子信息科学与技术学院闵笛软件工程自顶向下,逐步求精的基本思想❖将功能、信息的说明分为多个层次,最高层也最抽象―仅仅只是概念性地描述功能或信息,不提供功能的内部工作情况或信息的内部结构;❖设计者从最高层开始,仔细推

敲,进行功能和信息的细化,给出下层实现的细节;❖随着每个后续细化逐步的完成,提供越来越多的细节,最终得出用程序设计语言表达的程序。信息科学与技术学院闵笛软件工程结合了模块化和逐步细化思想建立的软件结构图信息科学与技术学

院闵笛软件工程5.2.4信息隐蔽和局部化❖信息隐蔽:在设计和确定模块时,使得一个模块内包含的信息(过程或数据),不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。❖局部化:将一些关系密切的软件元素物理地放得彼此靠近。信息科学与技术学院闵笛软件工程5.2

.5模块独立❖1、什么是模块独立性(moduleindependence)❖模块只完成系统要求的相对独立的功能❖符合信息隐蔽原则❖模块间关联和依赖程度尽量小❖2、模块独立的优点❖容易开发、测试和维护信息

科学与技术学院闵笛软件工程3、衡量模块独立性的两个准则❖①耦合性(coupling)❖②内聚性(cohesion)信息科学与技术学院闵笛软件工程①耦合性(coupling)❖也称块间的联系。是对软件系统结构中,各模块间相互联系紧密程度的一种度量。❖设计目标:低耦合信息科学与技术

学院闵笛软件工程无直接耦合❖两个模块没有直接关系,模块独立性最强。信息科学与技术学院闵笛软件工程数据耦合❖属松散耦合。一模块访问另一模块时,通过数据参数交换输入、输出信息。信息科学与技术学院闵笛软件工程控制耦合❖模块之间传递的是控制信息(如开关、标志

、名字等),控制被调用模块的内部逻辑。信息科学与技术学院闵笛软件工程控制耦合举例信息科学与技术学院闵笛软件工程去除模块间控制耦合的方法❖控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖。解决方法:❖(1)将被调用模块内的判定上移到调用模块中进行❖(2)被调用

模块分解成若干单一功能模块信息科学与技术学院闵笛软件工程改控制耦合为数据耦合举例信息科学与技术学院闵笛软件工程特征耦合❖两个模块通过传递数据结构加以联系,或都与一个数据结构有关系,则称这两个模块间存在特征耦合。❖可能出现的情况:当把整个数据结构作为参数传递时,被调用的模块虽然

只需要使用其中的一部分数据元素,但实际可以使用的数据多于它真正需要的数据,这将导致对数据访问失去控制。信息科学与技术学院闵笛软件工程特征耦合举例❖说明:❖“住户情况”是一个数据结构,图中模块都与此数据结构有关。❖“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是

特征偶合。信息科学与技术学院闵笛软件工程将特征耦合修改为数据耦合举例信息科学与技术学院闵笛软件工程公共环境耦合❖一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。❖公共数据区指:❖全局数据结构。❖共享通讯区。❖

内存公共覆盖区等。信息科学与技术学院闵笛软件工程公共环境耦合举例❖模块A、B、C间存在错综复杂的联系信息科学与技术学院闵笛软件工程公共耦合存在的问题❖(1)软件可理解性降低❖(2)诊断错误困难❖(3)软件可维护性差❖(4)软件可靠性差信息科学与技术学院闵笛软件工程内容耦合❖有

下列情况之一的。是最不好的耦合形式!信息科学与技术学院闵笛软件工程模块间耦合强度信息科学与技术学院闵笛软件工程耦合强度依赖的因素:❖一模块对另一模块的引用❖一模块向另一模块传递的数据量❖一模块施加到另一模块的控制的数量

❖模块间接口的复杂程度信息科学与技术学院闵笛软件工程降低耦合度的设计原则❖1、根据问题特点,选择合适的耦合类型。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共耦合的范围,完全不用内容耦合❖2、降低模块接口的复杂性。❖减少每个模块的参数个数;尽量使用标准过程调用方式,少用直接引用的方式;传送的

信息以标准、直接的方式提供。❖3、把模块的通信信息放在缓冲区中。信息科学与技术学院闵笛软件工程②内聚性(cohesion)❖又称块内联系。指一个模块内部各个元素彼此结合的紧密程度的度量。❖若一个模块内各元素(语句之间、程序段之间)联系的越紧密

,则它的内聚性就越.❖设计目标:高内聚信息科学与技术学院闵笛软件工程巧合内聚(偶然内聚)❖块内各组成成份在功能上是互不相关的。模块M中的三个语句没有任何联系。缺点:可理解性差,可修改性差信息科学与技术学

院闵笛软件工程逻辑内聚❖把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。信息科学与技术学院闵笛软件工程逻辑内聚模块信息科学与技术学院闵笛软件工程时间内聚(经典内聚)❖

模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。❖例:初始化系统模块❖系统结束模块、❖紧急故障处理模块等信息科学与技术学院闵笛软件工程过程内聚(顺序性组合)❖模块内各处理成分相关,且必须以特定次序执行。信息科学与技术学院闵笛软件工程通信内聚❖模块内各部分

使用相同的输入数据,或产生相同的输出结果信息科学与技术学院闵笛软件工程顺序内聚❖模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口。信息科学与技术学院闵笛软件工程功能内聚❖模块仅包括为完成某个功能所必须的所有成分。❖模块所有成分共同完成一个功

能,缺一不可❖内聚性最强信息科学与技术学院闵笛软件工程模块间内聚的类型信息科学与技术学院闵笛软件工程总结:耦合、内聚与模块独立性关系❖耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。❖但耦合是直接的主导因素,内聚则辅助耦合

共同对模块独立性进行衡量。❖设计要求:低耦合,高内聚信息科学与技术学院闵笛软件工程5.3启发规则❖改进原则:高内聚、低耦合❖①改进软件结构,提高模块独立性❖②模块规模适中❖③深度、宽度、扇出和扇入适中❖④将模块的影响限制在控制范围内❖⑤降低模块接口的复杂性❖⑥设计单入口单出口

的模块❖⑦模块功能可预测信息科学与技术学院闵笛软件工程①改进软件结构,提高模块独立性❖通过模块分解或合并,降低耦合提高内聚信息科学与技术学院闵笛软件工程②模块规模适中❖模块过大:可理解程度下降❖模块过小:开销大于有效操作系统接口复杂❖在考虑模块的独立性同时,为了增加可理解性,模块的大小最好在5

0一150条语句左右,可以用1一2页打印纸打印,便于人们阅读与研究。信息科学与技术学院闵笛软件工程③深度、宽度、扇出和扇入适中❖软件结构度量术语信息科学与技术学院闵笛软件工程例:避免平铺结构信息科学与技术学院闵笛软件工程增加中间层降低扇出信息科学与技术学院闵笛软件

工程AABCDEFAACDFEB受E中判定影响❖作用域是指受模块内一个判定影响的所有模块的集合❖控制域是指这个模块本身及其所有的下属模块的集合④将模块的作用域限制在控制范围内信息科学与技术学院闵笛软件工程❖模块C的控制范围:C、D、E、F、G、H。❖如果模块

C作出的决策影响了模块L,L超出了C的控制范围使任一模块的作用域在其控制域内信息科学与技术学院闵笛软件工程⑤降低模块接口的复杂性❖接口传递信息应简单且和模块功能一致。❖模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。信息科学与技术学院闵笛软

件工程⑥设计单入口单出口的模块❖不要使模块间出现内容耦合。信息科学与技术学院闵笛软件工程⑦模块功能可预测,但防止模块功能过分局限❖如果一个模块可以当作一个黑盒子,相同输入产生相同输出,其功能为可预测的。❖若模块带有内部“存储器”,其功能可能是不可

预测的,难理解、难测试、难维护。❖单一的模块具有高内聚。但模块功能过分局限,可使用范围将过分狭窄,缺乏灵活性和扩充性。信息科学与技术学院闵笛软件工程5.4描绘软件结构的图形具❖5.4.1层次图和HIPO图❖描述软件的层次结构。❖层次图中,一个

方框代表一个模块,方框间的连线表示调用关系。❖HIPO图=层次图+IPO图信息科学与技术学院闵笛软件工程正文加工系统层次图主控模块信息科学与技术学院闵笛软件工程酒店管理信息系统功能结构图信息科学与技术学院闵笛软件工程5.4.2结构图(S

CStructureChart)信息科学与技术学院闵笛软件工程❖主要成分说明:❖一个方框表示一个模块;❖一个模块指向另一个模块的箭头或直线,表示前一模块对后一模块的调用;❖调用直线边的小箭头,表示调用时从一

个模块传给另一个模块的数据,也指出了传送方向。信息科学与技术学院闵笛软件工程SC中的四种模块❖从下属模块取得数据,经过处理,再传入上级模块❖从上级模块获得数据,经过处理,再传送给下属模块❖加工模块。从上级模块获得数据,经过处理,转换成其他形式,再送回上级模块。

❖对所有下属模块进行协调和管理的模块信息科学与技术学院闵笛软件工程结构图(SC)举例信息科学与技术学院闵笛软件工程SC中的选择调用信息科学与技术学院闵笛软件工程SC中的循环调用信息科学与技术学院闵笛软件工程5.5面向数据流的设计方法❖5.5.1概念❖把信息流映射成软件结构,信息流的类型决

定了映射的方法,信息流可分为两种类型❖变换型流❖事务型流信息科学与技术学院闵笛软件工程变换型数据流基本模型❖特点:具有明确的传入、变换(或称主加工)和传出界面的DFD信息科学与技术学院闵笛软件工程另一种表

示图信息科学与技术学院闵笛软件工程变换型数据流举例信息科学与技术学院闵笛软件工程事务型数据流基本模型事务中心的任务:•接受输入数据(事务)•分析每个事务以确定它的类型。•根据事务类型选取一条活动通路信息科学与技术学院闵笛软件工程事务型数据流举例信息科学与技术学院闵笛软件工程针对两种数

据流的设计方法信息科学与技术学院闵笛软件工程系统结构特征可归纳为两种典型形式信息科学与技术学院闵笛软件工程大型系统的DFD中,变换型和事务型往往共存信息科学与技术学院闵笛软件工程5.5.2变换分析❖例1:有如下数据流图信息科学与技术学院闵笛软件工程❖步骤1:区分输入、变换中心、输出部分,

在DFD上标明分界线注意;所谓“输入”、“输出”是站在整个系统的角度来看的,是整个系统的输入、输出部分信息科学与技术学院闵笛软件工程步骤2:第一级分解。设计顶层和第一层模块信息科学与技术学院闵笛软件工程第一级分解后SC的数据流

信息科学与技术学院闵笛软件工程步骤3:第二级分解。自顶向下分解SC各分支,设计出每个分支的中、下层模块信息科学与技术学院闵笛软件工程1、传入分支的分解(1)信息科学与技术学院闵笛软件工程1、传入分支的分解(2)❖若有必要,继续分解。❖以“输入金额”为例,可将此分支也看成一个变换型数据流

得结构图:信息科学与技术学院闵笛软件工程继续分解“金额校验”信息科学与技术学院闵笛软件工程11、传入分支的分解(3)信息科学与技术学院闵笛软件工程2.传出分支的分解信息科学与技术学院闵笛软件工程3、中心加工分支的分解信息科学与技术学院闵笛软件工程5.5.3事务分析❖当数据流具有明显的事务特征时

,应该采用事务流的分析方法❖基本步骤步骤1.复审基本系统模型步骤2.复审和精化数据流图步骤3.确定数据流图的类型:变换流还是事务流信息科学与技术学院闵笛软件工程步骤4.识别事务流各个组成部分❖把整个事务型DFD划分为以下三个部分接受路径部分:接受事务的输入事务处理中心动作路径部

分❖判定在每一条动作路径上数据流的特征:变换流或者事务流信息科学与技术学院闵笛软件工程ABCDEQRSP事务处理中心接受路径部分动作路径部分事务型DFD划分例子信息科学与技术学院闵笛软件工程ABCDEQ

RP总控模块输入控制模块CC1Cn一条动作路径事务处理中心散转步骤5.把事务型DFD映射为软件结构信息科学与技术学院闵笛软件工程ABCDEQRP总控模块BQCC1PAR一条动作路径事务处理中心输入控制步骤6.分解精化事务结构以及每个动作路径信息科学与技术学院闵笛软件工程步骤

7.精化初步软件结构ABCDEQRP总控模块BQCC1PAR一条动作路径事务处理中心信息科学与技术学院闵笛软件工程教材:事务分析的映射方法信息科学与技术学院闵笛软件工程配置信息信息科学与技术学院闵笛软件

工程用户命令交互子系统顶层SC信息科学与技术学院闵笛软件工程信息科学与技术学院闵笛软件工程分解了“系统设置控制器”分支的系统SC信息科学与技术学院闵笛软件工程信息科学与技术学院闵笛软件工程分解了“密码处理控制器”分支的系统SC信息科学与技术学院闵笛软件工程附:混合流设计信息科学

与技术学院闵笛软件工程总结:面向数据流的设计过程信息科学与技术学院闵笛软件工程总结:面向数据流设计方法的设计步骤1.精化DFD2.确定DFD类型3.把DFD映射到系统模块结构,设计模块结构的上层4.基于DFD逐步分解高层模块,设

计下层模块5.根据模块独立性原理,精化模块结构6.对模块接口进行描述

精品优选
精品优选
该用户很懒,什么也没有留下。
  • 文档 34925
  • 被下载 0
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?