欢迎来到天天文库
浏览记录
ID:46923016
大小:260.00 KB
页数:45页
时间:2019-11-30
《结构化设计概念和原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7讲设计概念与原理内容提要软件设计的重要性、过程及其基本原则设计的相关概念模块化设计模块设计的启发规则概述软件设计:应用各种技术和原理,对一个软件系统做出足够详细的决策,使之有可能在物理上得以实现的过程。软件设计是一个迭代的过程。设计目标:将需求分析的结果(分析模型与需求分析规约)转化为实际软件系统的一个模型或软件表达式,即用于构造软件的“蓝图”。最终产品:设计规约,包括描述体系结构、数据、过程和界面设计模型。评审:清晰性、正确性、完整性。软件设计与程序设计不同。开发阶段的信息流翻译需求模型到软件设计需求分析模型设计模型数据对象描述处理规格说明控制规格说明E-RDFDSTDDD过程
2、设计接口设计体系结构设计数据设计翻译分析模型到软件设计数据设计将分析时创建的信息域模型变换为软件所需的数据结构,侧重于数据结构的定义。体系结构设计定义软件系统各主要结构构件之间的关系。过程设计则是把结构构件转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。接口设计是建立软件内部的关系以及软件人-机之间的交互机制。软件设计的重要性可以用“质量”表达。1.软件设计的重要性软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构。设计和软件质量指导性原则设计应该展示一种层次性结构。设计应该模块化。设计应
3、该包括数据、体系结构、接口和模块(构件)的清楚的表示。设计应有性质不同的可区分的数据结构和过程。设计应该具有独立功能特征的模块。设计应该降低模块和外部环境之间接口的复杂性。设计应该利用需求分析中获得的信息和可重复的方法。2.设计过程从项目管理的角度来看,软件设计分两步完成。概要设计,将软件需求转化为数据结构和软件体系结构。详细设计,即过程设计。通过对体系结构表示进行细化,得到软件的详细的数据结构和算法。总体设计从回答“做什么”到回答“怎样做”划分出组成系统的物理元素——程序、文件、数据库、过程和文档等等每个元素还是黑盒子---“全局高度,抽象层次”3.设计基本原理1.模块化:Modu
4、larity模块是数据说明、可执行语句等程序对象的集合,是单独命名的并且可以通过名字来访问,例如过程、函数、子程序、宏、modula等。软件被划分成独立命名和可独立访问的被称作模块的构件,每个构件完成一个子功能,它们集成到一起满足问题需求。easiertobuild,easiertochange,easiertofix...模块化模块化论据:C(x)定义为问题x的复杂性E(x)定义为解决问题x所需要的工作量对p1和p2两个问题,若C(p1)>C(p2),则E(p1)>E(p2)C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)不要过度模块化!每个模块的简
5、单性将被集成的复杂性所掩盖。模块化模块化和软件成本如何确定地预测最小成本区?成本成本/模块最小成本区接口成本软件总成本模块数目模块化如何确定模块的大小:模块可分解性模块可组装性模块可理解性模块的连续性模块的可保护性设计基本原理2.抽象Abstraction:忽略细节,分层理解问题,自顶向下层层细化,包括对过程、数据和控制的抽象。过程抽象:一个命名的指令序列,具有特定和有限的功能。数据抽象是命名的数据集合,描述一个数据对象。控制抽象隐含了不必说明的内部细节的程序控制机制。是实现模块化的手段之一。过程抽象在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经
6、开始显露。逐步细化和模块化的概念与抽象紧密相连。数据抽象定义“绘图drawing”数据对象作为一种抽象数据类型。TYPEdrawingISSTRUCTUREDEFINEDnumberISSTRINGLENGTH(12)geometryDEFINED…notesISSTRINGLENGTH(256)…ENFdrawingTYPE;BlueprintISINSTANCEOFdrawing;SchematicISINSTANCEOFdrawing;设计基本原理3.求精Refinement自顶向下的设计策略。doorimplementedasadatastructuremanufacture
7、rmodelnumbertypeswingdirectioninsertslightstypenumberweightopeningmechanismopenimplementedwitha"knowledge"oftheobjectthatisassociatedwithenterdetailsofenteralgorithmwalktodoor;reachforknob;Switchtheknob;opendoor;walkthrough;closed
此文档下载收益归作者所有