资源描述
SOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGDesigning the System 系统设计5.1 what is design什么是设计?Design is the creative process to transform Design is the creative process to transform the problem into a solution.Design is the the problem into a solution.Design is the description of a solution.description of a solution.设计是将问题转化成解决方案的创造性的活动。是对解决方案的的描述。软件设计的本质过去软件设计曾被狭隘地认为是过去软件设计曾被狭隘地认为是过去软件设计曾被狭隘地认为是过去软件设计曾被狭隘地认为是“编程序编程序编程序编程序”或或或或“写代码写代码写代码写代码”,致使软件系统设计没有发挥它重要的,致使软件系统设计没有发挥它重要的,致使软件系统设计没有发挥它重要的,致使软件系统设计没有发挥它重要的作用,导致软件系统结构稳定性极差:作用,导致软件系统结构稳定性极差:作用,导致软件系统结构稳定性极差:作用,导致软件系统结构稳定性极差:软件设计的本质软件系统设计是软件开发过程中承前启后软件系统设计是软件开发过程中承前启后的工作,它依据软件需求规格说明书建立的工作,它依据软件需求规格说明书建立软件设计方案,作为下一步程序编码的依软件设计方案,作为下一步程序编码的依据据;是在软件开发中形成质量的地方:设计提是在软件开发中形成质量的地方:设计提供了可用于质量评估的表示;供了可用于质量评估的表示;是将需求准确转换为完整的软件产品或系是将需求准确转换为完整的软件产品或系统的唯一办法;统的唯一办法;软件设计的本质系统设计过程开发阶段的信息流开发阶段的信息流开发阶段的信息流开发阶段的信息流Conceptual Design 概念设计Technical Design 技术设计Two stages of design:设计的两个阶段Conceptual design 概念设计Tells the customer what the system will doTells the customer what the system will doAnswersAnswers:Where will the data come fromWhere will the data come fromWhat will happen to the data in the systemWhat will happen to the data in the systemWhat will the system look like to usersWhat will the system look like to usersWhat choices will be offered to usersWhat choices will be offered to usersWhat is the timing of eventsWhat is the timing of eventsWhat will the reports and screens look likeWhat will the reports and screens look like告诉顾客系统将要做什么(概念设计要回答以下问题)数据来自何地?系统中的数据会发生什么情况?系统对用户来说看起来像什么?能向用户提供什么选择?事件的时间安排如何?报告和窗口看起来像什么?Characteristics of good conceptual designin customer language with no technical in customer language with no technical jargonjargondescribes system functionsdescribes system functionsindependent of implementationindependent of implementationlinked to requirementslinked to requirements好的概念设计的特征用顾客语言而不是技术术语描述系统的功能独立于实现与需求相关概念设计的任务与步骤概念设计确定:软件系统的结构软件系统的结构各模块功能及模块各模块功能及模块间联系间联系(接口接口)概念设计的过程概念设计的过程 :(1)(1)设想可能的方案设想可能的方案(2)(2)选取合理的方案选取合理的方案(3)(3)推荐最佳方案推荐最佳方案(4)(4)功能分解功能分解(5)(5)设计软件结构设计软件结构(6)(6)数据库设计数据库设计(7)(7)制定测试计划制定测试计划(8)(8)编写文档编写文档(9)(9)审查与复审审查与复审Technical design 技术设计Description is a technical picture of the Description is a technical picture of the system specificationsystem specificationIncludesIncludes:major hardware components and their major hardware components and their functionfunction hierarchy and function of software hierarchy and function of software componentscomponents data structuresdata structures data flowdata flow系统规格说明的技术性描述(包括对以下条目的描述)主要硬件组件和功能软件组件的层次和功能数据结构数据流技术设计主要任务编写技术设计说明书:1 1、确定每个模块的算法,用工具表达算法、确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述。的过程,写出模块的详细过程性描述。2 2、确定每一模块的数据结构。、确定每一模块的数据结构。3 3、确定模块接口细节。、确定模块接口细节。技术(详细)设计是编码的先导。概念设计和技术设计概念和技术设计设计文档间的差异另一种分类概要设计概要设计:将软件需求转化为数据结构和:将软件需求转化为数据结构和软件的系统结构,即系统的模块划分。软件的系统结构,即系统的模块划分。详细设计详细设计:通过对系统的结构表示(每个:通过对系统的结构表示(每个模块的内部工作)进行细化,得到软件的模块的内部工作)进行细化,得到软件的详细的数据结构和算法。详细的数据结构和算法。1.1.设想供选择的方案:设想供选择的方案:需求分析阶段得出的数据流图是总体设计需求分析阶段得出的数据流图是总体设计的极好的出发点。的极好的出发点。设想供选择的方案的一种常用的方法是,设想供选择的方案的一种常用的方法是,设想把数据流图中的处理分组的各种可能的设想把数据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法方法,抛弃在技术上行不通的分组方法(例例如,组内不同处理的执行时间不相容如,组内不同处理的执行时间不相容),余下,余下的分组方法代表可能的实现策略,并且可以的分组方法代表可能的实现策略,并且可以启示供选择的物理系统。启示供选择的物理系统。软件概要设计过程2.2.选取合理的方案:选取合理的方案:选取合理的方案:选取合理的方案:从一系列方案中选取若干个合理的方案从一系列方案中选取若干个合理的方案从一系列方案中选取若干个合理的方案从一系列方案中选取若干个合理的方案,通常通常通常通常至少选取低成本、中等成本和高成本的至少选取低成本、中等成本和高成本的至少选取低成本、中等成本和高成本的至少选取低成本、中等成本和高成本的3 3 3 3种方案种方案种方案种方案 对每个合理的方案分析员都应该准备下列对每个合理的方案分析员都应该准备下列对每个合理的方案分析员都应该准备下列对每个合理的方案分析员都应该准备下列4 4 4 4份资份资份资份资料:料:料:料:(1)(1)(1)(1)系统流程图;系统流程图;系统流程图;系统流程图;(2)(2)(2)(2)组成系统的物理元素清单;组成系统的物理元素清单;组成系统的物理元素清单;组成系统的物理元素清单;(3)(3)(3)(3)成本效益分析;成本效益分析;成本效益分析;成本效益分析;(4)(4)(4)(4)实现这个系统的进度计划;实现这个系统的进度计划;实现这个系统的进度计划;实现这个系统的进度计划;软件概要设计过程3.3.推荐最佳方案:推荐最佳方案:分析员应该综合分析对比各种合理方案的分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划;方案制定详细的实现计划;用户和有关的技术专家应该认真审查分析用户和有关的技术专家应该认真审查分析员所推荐的最佳系统;员所推荐的最佳系统;使用部门负责人进一步审批;使用部门负责人进一步审批;进入总体设计过程的下一个重要阶段进入总体设计过程的下一个重要阶段结构设计。结构设计。软件概要设计过程4.4.4.4.功能分解:功能分解:功能分解:功能分解:对程序对程序对程序对程序(特别是复杂的大型程序特别是复杂的大型程序特别是复杂的大型程序特别是复杂的大型程序)的设计,通常分的设计,通常分的设计,通常分的设计,通常分为两个阶段完成:为两个阶段完成:为两个阶段完成:为两个阶段完成:结构设计:确定程序由哪些模块组成,以及结构设计:确定程序由哪些模块组成,以及结构设计:确定程序由哪些模块组成,以及结构设计:确定程序由哪些模块组成,以及这些模块之间的关系;是总体设计阶段的任务;这些模块之间的关系;是总体设计阶段的任务;这些模块之间的关系;是总体设计阶段的任务;这些模块之间的关系;是总体设计阶段的任务;过程设计:确定每个模块的处理过程;是详过程设计:确定每个模块的处理过程;是详过程设计:确定每个模块的处理过程;是详过程设计:确定每个模块的处理过程;是详细设计阶段的任务。细设计阶段的任务。细设计阶段的任务。细设计阶段的任务。为确定软件结构,首先需要从实现角度把复杂的为确定软件结构,首先需要从实现角度把复杂的为确定软件结构,首先需要从实现角度把复杂的为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。根据是数据流图。功能进一步分解。根据是数据流图。功能进一步分解。根据是数据流图。功能进一步分解。根据是数据流图。功能分解导致数据流图的进一步细化,同时还应该用功能分解导致数据流图的进一步细化,同时还应该用功能分解导致数据流图的进一步细化,同时还应该用功能分解导致数据流图的进一步细化,同时还应该用IPOIPOIPOIPO图或其他适当的工具简要描述细化后每个处理的算法。图或其他适当的工具简要描述细化后每个处理的算法。图或其他适当的工具简要描述细化后每个处理的算法。图或其他适当的工具简要描述细化后每个处理的算法。软件概要设计过程5.5.设计软件结构:设计软件结构:通常程序中的一个模块完成一个适当的子通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统。功能。应该把模块组织成良好的层次系统。软件结构软件结构(即由模块组成的层次系统即由模块组成的层次系统)可以可以用层次图或结构图来描绘。用层次图或结构图来描绘。如果数据流图已经细化到适当的层次,则如果数据流图已经细化到适当的层次,则可以直接从数据流图映射出软件结构。可以直接从数据流图映射出软件结构。软件概要设计过程6.6.设计数据库:设计数据库:在需求分析阶段所确
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索