软件工程理论与实践 课件 5结构化设计_第1页
软件工程理论与实践 课件 5结构化设计_第2页
软件工程理论与实践 课件 5结构化设计_第3页
软件工程理论与实践 课件 5结构化设计_第4页
软件工程理论与实践 课件 5结构化设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XXXXXX大学软件工程SOFTWARE

ENGINEERING教师:XXXXX2024教学目标:(1)了解结构化的设计原则;(2)掌握数据设计、软件结构设计、接口设计、过程设计的方法和过程;(3)能够利用软件设计工具编写设计文档。第5章结构化设计5.1结构化设计任务(1)数据设计:数据设计是根据需求阶段所建立的实体-关系图确定软件涉及的文件系统的结构及数据库表r结构。(2)软件结构设计:软件结构设计定义软件模块及其之间的关系,因此通常称为模块设计。软件结构设计表示可以从数据流图导出。(3)接口设计:接口设计包括外部接口设计和内部接口设计。外部接口设计依据分析模型的顶层数据流图,外部接口包括用户界面、本系统与其他硬件系统、软件系统的外部接口;内部接口是指系统内部各种元素之间的接口。(4)过程设计:过程设计是确定软件各个组成部分内的算法及内部数据结构,并选取某种表达形式来描述各种算法。从工程管理的角度来看,软件设计分为两个阶段。第一阶段是概要设计,将软件需求转化为数据结构和软件结构,并建立接口;第二阶段是详细设计,即过程设计,是对概要设计的一个细化,详细设计每个模块实现的算法等。结构化设计包含如下7个具体步骤。(1)从需求分析阶段的数据流图出发,制定几个方案,从中选择合理的方案。(2)将一个复杂的系统按功能划分成模块的层次结构。(3)确定每个模块的功能、模块间的调用关系,建立与已确定的软件需求的对应关系。(4)系统接口设计,确定模块间的接口信息。(5)数据结构及数据库设计,确定实现软件的数据结构和数据库模式。(6)依据分析模型中的处理(加工)规格说明、状态转换图等进行过程设计。(7)确定测试计划。(7)撰写软件设计文档。5.2数据设计数据设计就是将需求分析阶段定义的数据对象(实体-关系图、数据字典)转换为设计阶段的数据结构和数据库,包括两个方面。第一个方面是数据结构设计,采用伪代码的方式定义数据结构。第二个方面是数据库结构设计,包括概念结构设计、逻辑结构设计和物理结构设计。

【例5-1】高校教材管理系统的E-R图如图5-4所示。根据以上规则,某高校教材管理系统E-R模型可以映射为如下数据库的逻辑结构。教师表(工号、密码、姓名)管理员表(编号、密码、用户名)教材表(教材编号、教材名称、出版社编号、出版社名称、库存量、选用课程编号)课程表(课程编号、课程名称、选用教材编号、开设专业编号)专业表(专业编号、专业名称)领用表(教师工号、教材编号、时间、领书数量)订购表(管理员编号、教材编号、订书数量)5.3软件结构设计5.3.1软件结构设计基本原理1.模块模块是数据说明、可执行语句等程序对象的集合,是构成程序的基本构件。模块具有以下几种基本属性,其中接口、功能和状态反映模块的外部特性,逻辑反映模块的内部特性。(1)接口:模块的输入与输出。(2)功能:模块需要完成的任务。(3)状态:模块的运行环境,即模块的调用与被调用关系。(4)逻辑:描述内部功能实现及所需的数据。2.模块化模块化是软件设计中的一个重要属性,将软件设计模块化有助于一个软件被研发人员理解、设计、测试和维护。以下论据可以说明这一点。设问题M的复杂性为C(M),解决它所需要的工作量为E(M)。因此,对于问题M1和M2,如果C(M1)>C(M2)即问题M1和M2复杂,那么E(M1)>E(M2)即问题越复杂,所需要的工作量越大。根据解决一般总是的经验可知,C(M1+M2)>C(M1)+C(M2)即一个问题同另一个问题组合而成的复杂性要大于分别考虑每个问题的复杂性之和。这样可以推出E(M1+M2)>C(M1)+C(M2)通过以上得到的结论可知:如果把软件模块进行划分,那么开发软件所需要的工作量将降低很多。3.模块耦合性4.模块内聚性5.软件结构特征(1)深度:指模块的层数,图5-8示例中深度为5。(2)宽度:指一层中最大的模块个数,图5-8示例中宽度为7。(3)扇出:指一个模块直接下属模块的个数,图5-8示例中模块M的扇出为3。(4)扇入:指一个模块直接上属模块的个数,图5-8示例中模块T的扇入为4。5.3.2软件结构设计原则1.提高模块独立性2.选择合适的模块规模3.适当选择模块的深度、宽度、扇入和扇出4.降低模块接口的复杂程度5.3.3HIPO图HIPO图(HierarchyInputProcessOutput)是层次化的输入—处理—输出图。HIPO图实际上是层次图和IPO图的结合。

1.IPO图2.层次图3.HIPO图5.3.4结构图

1.数据流图分类(1)变换型数据流图根据信息系统的模型,信息一般是以外部形式进入系统,通过系统处理后离开系统。从其过程可以得出,变换型的数据流图是一个线性结构。变换型的数据流是由逻辑输入、变换中心(或称处理)和逻辑输出三部分组成。

(2)事务型数据流图2.结构图实施过程结构图实施过程,如图5-15所示,设计包括如下4个步骤。(1)对数据流图进行复审,必要时修改或细化;(2)根据数据流图确定软件结构是变换型还是事务型;(3)将数据流图映射成结构图;(4)优化并调整结构图,使设计更完善。3.变换型设计按照下列步骤设计:(1)确定数据流图中的变换中心、逻辑输入和逻辑输出;(2)设计结构图的顶层和第一层;(3)设计输入模块、输出模块和变换模块的下属模块;(4)根据设计准则对初始结构进行求精和改进。4.事务型设计按照下列3个步骤设计。(1)确定数据流图中的事务中心和加工路径;(2)设计结构图的顶层和第一层;(3)进行事务结构中、下层模块的设计和优化等工作。5.4接口设计概要设计中的接口设计主要包括以下3个方面。(1)用户界面接口。用户界面接口设计即人机接口的设计,突出用户如何操作系统以及系统如何向用户返回信息。(2)外部接口。用于说明系统同外界的所有接口的安排,包括软件与硬件之间的接口、系统与各支持软件之间的接口。(3)内部接口。用来说明系统之内的各个系统元素之间的接口。5.4.1用户界面接口设计1.用户界面设计原则

(1)界面形式应力求简单、友好。(2)界面设计应提供一定的容错或纠错机制。用户在与系统交互的过程中难免会进行错误操作,因此,应该提供友好提示并可以以使用户撤销错误操作。(3)界面设计应符合用户的实际需求和使用习惯。2.用户界面设计过程5.4.2外部接口设计和内部接口设计外部接口设计也称为部署设计,描述软件功能和子系统如何在支持软件的物理计算环境(如系统的硬件环境、软件环境和网络环境)内分布,以及系统如何部署。内部接口设计与模块设计是紧密联系的,需要设计各个模块之间的通信、协作。5.5过程设计5.5.1流程图1.流程图表示流程图表示了程序的操作顺序,包括指明实际处理操作的处理符号、根据逻辑条件确定要执行的路径的符号、指明控制流的流线符号、便于读写程序流程图的特殊符号。2.流程图基本结构【例5-2】输入数组A,计算其最大值MAX并输出。计算最大值流程图,如图5-27所示。5.5.2盒图【例5-3】输入数组A,计算其最大值MAX并输出。计算最大值N-S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论