结构化设计概念和原理精选PPT.ppt
《结构化设计概念和原理精选PPT.ppt》由会员分享,可在线阅读,更多相关《结构化设计概念和原理精选PPT.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、结构化设计概念和原理第1页,此课件共45页哦内容提要内容提要软件设计的重要性、过程及其基本原则软件设计的重要性、过程及其基本原则设计的相关概念设计的相关概念模块化设计模块化设计模块设计的启发规则模块设计的启发规则第2页,此课件共45页哦概述概述软件设计软件设计:应用各种技术和原理,对一个软件系统:应用各种技术和原理,对一个软件系统做出足够详细的决策,使之有可能在物理上得以实做出足够详细的决策,使之有可能在物理上得以实现的过程。现的过程。软件设计是一个迭代的过程软件设计是一个迭代的过程。设计目标设计目标:将:将需求分析的结果需求分析的结果(分析模型与需求分(分析模型与需求分析规约)转化为实际析规
2、约)转化为实际软件系统的一个模型或软件表软件系统的一个模型或软件表达式达式,即用于构造软件的,即用于构造软件的“蓝图蓝图”。最终产品最终产品:设计规约,包括描述体系结构、数据、过程:设计规约,包括描述体系结构、数据、过程和界面设计模型。和界面设计模型。评审评审:清晰性、正确性、完整性。:清晰性、正确性、完整性。软件设计与程序设计不同。软件设计与程序设计不同。第3页,此课件共45页哦开发阶段的信息流开发阶段的信息流第4页,此课件共45页哦翻译需求模型到软件设计翻译需求模型到软件设计需求分析模型需求分析模型设计模型设计模型数据对象数据对象描述描述处理规格说明处理规格说明控制规格说明控制规格说明E-
3、RDFDSTDDD过程设计过程设计接口设计接口设计体系结构设计体系结构设计数据设计数据设计第5页,此课件共45页哦翻译分析模型到软件设计翻译分析模型到软件设计数据设计数据设计将分析时创建的信息域模型变换为软件将分析时创建的信息域模型变换为软件所需的数据结构,所需的数据结构,侧重于数据结构的定义侧重于数据结构的定义。体系结构设计体系结构设计定义软件系统各定义软件系统各主要结构构件之间的主要结构构件之间的关系。关系。过程设计过程设计则是把则是把结构构件结构构件转换成转换成软件的过程性描软件的过程性描述述。在编码步骤,根据这种过程性描述,生成源。在编码步骤,根据这种过程性描述,生成源程序代码,然后通
4、过测试最终得到完整有效的软程序代码,然后通过测试最终得到完整有效的软件。件。接口设计接口设计是建立软件内部的关系以及软件人机之是建立软件内部的关系以及软件人机之间的交互机制。间的交互机制。软件设计的重要性可以用软件设计的重要性可以用“质量质量”表达。表达。第6页,此课件共45页哦1.1.软件设计的重要性软件设计的重要性软件设计软件设计是后续开发步骤及软件维护工是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一作的基础。如果没有设计,只能建立一个个不稳定的系统结构不稳定的系统结构。第7页,此课件共45页哦设计和软件质量设计和软件质量指导性原则指导性原则n设计应该展示一种设计应该展示一种
5、层次性结构层次性结构。n设计应该设计应该模块化模块化。n设计应该包括设计应该包括数据数据、体系结构体系结构、接口接口和和模块模块(构件)的清楚的表示。(构件)的清楚的表示。n设计应有性质不同的可区分的数据结构和过设计应有性质不同的可区分的数据结构和过程。程。n设计应该具有设计应该具有独立功能独立功能特征的模块。特征的模块。n设计应该设计应该降低降低模块和外部环境之间接口模块和外部环境之间接口的的复复杂性杂性。n设计应该利用需求分析中获得的信息和可重设计应该利用需求分析中获得的信息和可重复的方法。复的方法。第8页,此课件共45页哦2.2.设计过程设计过程从项目管理的角度来看,软件设计分两从项目管
6、理的角度来看,软件设计分两步完成。步完成。n概要设计概要设计,将软件需求转化为数据结构和软件,将软件需求转化为数据结构和软件体系结构。体系结构。n详细设计详细设计,即过程设计。通过对体系结构表,即过程设计。通过对体系结构表示进行细化,得到软件的详细的数据结构和示进行细化,得到软件的详细的数据结构和算法。算法。第9页,此课件共45页哦总体设计总体设计从回答从回答“做什么做什么”到回答到回答“怎样做怎样做”划分出组成系统的物理元素划分出组成系统的物理元素程序、程序、文件、数据库、过程和文档等等文件、数据库、过程和文档等等每个元素还是每个元素还是黑盒子黑盒子-“-“全局高度,抽象层次全局高度,抽象层
7、次”第10页,此课件共45页哦3.3.设计基本原理设计基本原理1.模块化:模块化:Modularityn模块模块是数据说明、可执行语句等程序对象的集是数据说明、可执行语句等程序对象的集合,是单独命名的并且可以通过名字来访问,合,是单独命名的并且可以通过名字来访问,例如过程、函数、子程序、宏、例如过程、函数、子程序、宏、modula等。等。n软件被划分成独立命名和可独立访问的被称作软件被划分成独立命名和可独立访问的被称作模块的模块的构件构件,每个,每个构件构件完成一个子功能,它们完成一个子功能,它们集成到一起满足问题需求。集成到一起满足问题需求。easier to build,easier to
8、 change,easier to fix.第11页,此课件共45页哦模块化模块化模块化论据:模块化论据:C(x)C(x)定义为问题定义为问题x x的复杂性的复杂性E(x)E(x)定义为解决问题定义为解决问题x x所需要的工作量所需要的工作量对对p1p1和和p2p2两个问题,两个问题,若若 C(p1)C(p2)C(p1)C(p2),则,则 E(p1)E(p2)E(p1)E(p2)C(p1+p2)C(p1)+C(p2)C(p1+p2)C(p1)+C(p2)E(p1+p2)E(p1)+E(p2)E(p1+p2)E(p1)+E(p2)不要过度模块化!每个模块的简单性将被集成的不要过度模块化!每个模块
9、的简单性将被集成的复杂性所掩盖。复杂性所掩盖。第12页,此课件共45页哦模块化模块化模块化和软件成本模块化和软件成本n如何确定地预测最小成本区?如何确定地预测最小成本区?成成本本成本成本/模块模块最小成本区最小成本区接口成本接口成本软件总成本软件总成本模块数目模块数目第13页,此课件共45页哦模块化模块化如何确定模块的大小:如何确定模块的大小:n模块可分解性模块可分解性n模块可组装性模块可组装性n模块可理解性模块可理解性n模块的连续性模块的连续性n模块的可保护性模块的可保护性第14页,此课件共45页哦设计基本原理设计基本原理2.抽象抽象 Abstraction:n忽略细节,分层理解问题,自顶向
10、下层层细化,包括忽略细节,分层理解问题,自顶向下层层细化,包括对对过程过程、数据数据和和控制控制的抽象。的抽象。n过程抽象过程抽象:一个命名的指令序列,具有特定和有限的:一个命名的指令序列,具有特定和有限的功能功能。n数据抽象数据抽象是命名的数据集合,描述一个是命名的数据集合,描述一个数据对象数据对象。n控制抽象控制抽象隐含了不必说明的内部细节的程序控制机制。隐含了不必说明的内部细节的程序控制机制。n是实现模块化的手段之一。是实现模块化的手段之一。第15页,此课件共45页哦过程抽象过程抽象在这个抽象层次上,给出了在这个抽象层次上,给出了初步的过程初步的过程表示表示,所用的术语都已面向软件,而且
11、,所用的术语都已面向软件,而且模块化的工作已经开始显露。模块化的工作已经开始显露。逐步细化和模块化的概念与抽象紧密相逐步细化和模块化的概念与抽象紧密相连。连。第16页,此课件共45页哦数据抽象数据抽象定义定义“绘图绘图 drawing”数据对象作为一种抽象数据类型数据对象作为一种抽象数据类型。nTYPE drawing IS STRUCTURE DEFINED number IS STRING LENGTH(12)geometry DEFINED notes IS STRING LENGTH(256)ENF drawing TYPE;nBlueprint IS INSTANCE OF draw
12、ing;nSchematic IS INSTANCE OF drawing;第17页,此课件共45页哦设计基本原理设计基本原理3.求精求精Refinementn自顶向下的设计策略。自顶向下的设计策略。doorimplemented as a data structuremanufacturermodel numbertypeswing directioninsertslights type numberweightopening mechanismopenimplemented with a knowledge of the object that is associated with ent
13、erdetails of enter algorithmwalk to door;reach for knob;Switch the knob;open door;walk through;close door.repeat until door opensturn knob clockwise;if knob doesnt turn,then take key out;find correct key;insert in lock;endifpull/push doormove out of way;end repeat第18页,此课件共45页哦求精求精设计的设计的求精求精过程与需求分析的划
14、分类似,过程与需求分析的划分类似,只是考虑的细节层次不同。只是考虑的细节层次不同。求精求精实际是一个实际是一个详细描述详细描述的过程。的过程。抽象与抽象与求精求精是是互补互补的概念。的概念。第19页,此课件共45页哦设计基本原理设计基本原理4.信息隐藏信息隐藏 information hiding n信息隐藏:在设计和确定模块时,使得一个信息隐藏:在设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于模块内包含的信息(过程和数据)对于不需不需要这些信息的模块来说,是不可访问的要这些信息的模块来说,是不可访问的。n每个客户只能通过每个客户只能通过接口接口来了解该模块,而所来了解该模块,而
15、所有的实现都隐藏起来。有的实现都隐藏起来。n隐藏就是有效的模块化可以通过定义一组独隐藏就是有效的模块化可以通过定义一组独立模块来实现。立模块来实现。第20页,此课件共45页哦信息隐藏信息隐藏modulemodulecontrolledcontrolledinterfaceinterface secretsecret algorithmalgorithm data structuredata structure details of external interfacedetails of external interface resource allocation policyresource
16、 allocation policyclientsclientsa specific design decision“信息隐藏信息隐藏”,更准确地描述应是,更准确地描述应是“细节隐藏细节隐藏”,因为隐藏的,因为隐藏的不是信息不是信息,而是实现的细节而是实现的细节。第21页,此课件共45页哦4 4、模块化设计、模块化设计模块独立性模块独立性n度量标准:度量标准:内聚内聚 cohesion 和和耦合耦合 couplingn内聚是一个内聚是一个模块内部模块内部的交互程度;耦合是的交互程度;耦合是模块模块之间之间交互的程度。交互的程度。n好处:更有利于开发、设计好处:更有利于开发、设计/编码修改的副作
17、编码修改的副作用减小、模块的复用可能。用减小、模块的复用可能。n功能独立性是良好设计的关键,设计又是软件功能独立性是良好设计的关键,设计又是软件质量的关键。质量的关键。第22页,此课件共45页哦耦合耦合(couple)是度量系统中模块之间的交互是度量系统中模块之间的交互程度。程度。Goal:模块之间尽可能独立模块之间尽可能独立耦合从低到高依次为:耦合从低到高依次为:非直接耦合非直接耦合(最好),(最好),数据耦合,标数据耦合,标记耦合,控制耦合,外部耦合,公共耦合和内容耦合记耦合,控制耦合,外部耦合,公共耦合和内容耦合(最差)(最差)。Great deal of dependenceIndep
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 设计 概念 原理 精选 PPT
限制150内