第五章 软件设计-2

上传人:少*** 文档编号:243153824 上传时间:2024-09-17 格式:PPT 页数:63 大小:25.54MB
返回 下载 相关 举报
第五章 软件设计-2_第1页
第1页 / 共63页
第五章 软件设计-2_第2页
第2页 / 共63页
第五章 软件设计-2_第3页
第3页 / 共63页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,软件工程,罗晓宾,第五章 软件设计,软件设计概论,软件设计原理,软件体系结构设计,结构化设计方法,面向对象设计方法,软件设计文档,面向对象设计案例,5.1,5.2,5.3,5.4,5.5,5.6,5.7,5.4,结构化设计方法,结构化设计概述,体系结构设计,数据设计,过程设计,人机界面设计,结构化设计方法(,Structured Design,),结构化设计(,SD,)方法,是一种面向数据流的设计方法,以需求阶段产生的数据流图为基础,按一定的步骤映射成软件结构,。,采用自顶向下、逐步求精的设计过程,以模块为中心来解决问题。,采用结构化软件工程方法开发出来的软件系统可以看成是一组函数或过程的集合。,与结构化分析(,SA,)衔接,适用于变换型结构和事件型结构的目标软件系统,从整个程序的结构出发,利用模块结构图表述程序模块间的关系。,结构化设计方法(,Structured Design,),结构化设计(,SD,)方法,是一种面向数据流的设计方法,以需求阶段产生的数据流图为基础,按一定的步骤映射成软件结构,。,与结构化分析(,SA,)衔接,适用于变换型结构和事件型结构的目标软件系统,从整个程序的结构出发,利用模块结构图表述程序模块间的关系。,结构化设计方法(,Structured Design,),结构化软件,设计,方法,更关注于系统的功能,采用,自顶向下,、,逐步求精,的设计过程,以,模块,为中心来解决问题,。,采用,结构化软件工程方法,开发出来的软件系统可以看成是一组函数或过程的集合,。,结构化,软件设计从,系统的功能,入手,按照工程标准和严格的规范将目标系统划分为若干功能模块,。,结构化设计,方法,:,面向数据流的设计方法,面向,数据结构的设计方法,。,结构化设计方法概述,结构化软件设计任务:,把结构化分析阶段所建立的功能模型、数据模型和行为模型转换成数据设计、体系结构设计、接口设计和过程设计,结构化设计方法概述,数据设计:将实体一关系图描述的对象和关系,以及数据字典中描述的数据内容转换为数据结构的定义,体系结构设计:定义软件系统各主要成分间的关系,接口设计:根据数据流图定义软件内部各成分之间、与其他协同系统以及软件与用户间的交互机制,过程设计:把结构成分转换成软件的过程性描述,结构化设计方法概述,SETP1,:,评审和细化数据流图,确定数据流图的类型(变换型?事务型?)把数据流图映射到软件模块结构,设计出模块结构的上层,;,基于数据流图逐步分解高层模块,设计中小层模块,SETP2,:,根据分析模型蝗实体,-,关系图和数据字典进行数据设计(数据库设计、数据文件设计),SETP3,:,依据分析模型加工规格说明、状态迁移图及控制规格说明进行过程设计,SETP4,:,接口设计:软件界面设计、与硬件接口设计、与其他软件系统接口设计,结构化软件,设计的步骤:,体系结构设计,面向数据流的设计方法是常用的结构化设计方法,,多在概要设计阶段使用。,它主要是指,依据一定的映射规则,,,将需求分析阶段得到的数据描述从系统的输入端到输出端所经历的一系列变换或处理的,数据流图转换为目标系统的结构描述,。,在数据流图中,数据流分为,变换型数据流,和,事务型数据流,面向数据流的设计方法:,变换,是指把输入的数据处理后转变成另外的输出数据。,信息沿输入路径流入系统,在系统中经过加工处理后又离开系统,当信息流具备这种特征时就是,变换流,。,事务,是指非数据变换的处理,它将输入的数据流分散成许多数据流,形成若干个加工,然后选择其中一个路径来执行。,比如,对于一个邮件分发中心,把收进的邮件根据地址进行分发,有的用飞机邮送,有的用汽车邮送。,信息沿输入路径流入系统,到达一个事务中心,这个事务中心根据输入数据的特征和类型在若干个动作序列中选择一个执行方式,这种情况下的数据流称为,事务流,,它是以事务为中心的,。,数据流的类型,变换型数据流和事务型数据流的示意图分别如,下,图,所示,。,变换型数据流,事务型数据流,数据流的类型,在一个大型系统中,可能同时存在变换型数据流和事务型数据流。,对于变换型数据流,设计人员应该重点区分其输入和输出分支,,通过变换分析将数据流图映射为变换结构,从而构造出目标系统的结构图,。,对于事务型数据流,设计人员应该重点区分事务中心和数据接收通路,通过事务分析将数据流图映射为事务结构,数据流的类型,体系结构设计过程,体系结构设计过程,变换型映射设计方法,将具有变换数据流特点的数据流图按预先确定的模式映射成软件体系统结构,变换型映射方法步骤:,复审基本系统模型是(评估软件需求规格说明),复审和细化软件的数据流图,确定数据流图中流的特征,区分输入流、输出流和中心变换部分,标明流的边界,进行一级,“,因子化,”,分解,设计顶层与第一层模块,进行二级,“,因子化,”,分解,设计中、下层模块,利用启发式原则改进系统的初始结构图,直到得到符合要求的系统结构图,体系结构设计过程,变换型映射设计方法,启发式原则:,模块功能完善化,消除重复功能,模块的作用应在控制范围内,尽可能减少高扇出结构,避免或减少使用病态连接,模块大小要适中,设计功能可预测的模块,软件应满足设计约束和移植性,下面以某个“学生档案管理系统”为例,对其进行面向数据流的系统设计。已知该系统的数据流图如,下,图所示。,体系结构设计过程,学生档案管理系统的数据流都属于变换型数据流,其数据流图中并不存在事务中心。区分数据流图中的输入流、变换流和输出流,得到该系统具有边界的数据流图,如,下,图所示。,体系结构设计过程,通过,分析,得到学生档案管理系统的系统结构图,如,下,图所示。,体系结构设计过程,由于使用系统时需要对用户的身份进行验证,因此可对“统计分析数据”等模块进行进一步的细分。对初步得到的系统结构图进行优化,可以进一步得到该系统优化的系统结构图,如,下,图所示。,体系结构设计过程,例,5.1,在教务管理系统中,教师可以査询学生的成绩单。由需求分析知,学生成绩单 管理完在成以下功能,:1.,根据条件查询学生倌息,;2.,根据指定的范围和类型査询学生成绩数据;,3.,对学字成绩进行排序、唯一性检查,列表缓冲;,4.,计算学生成绩总体情况和成绩分段分布情况;,5.,输出报表。针对该学生成绩单管理系统,.,使用变换型映射方法得到软件的结构图,体系结构设计过程,第,1,步:,确定精化,后的数,据流图,第,2,步,:,由于学生成绩在输出之前,需要建立输出列表缓冲,根据成绩数据计算统计信息, 之后确定报表分页布局,是一个变换型问题。,第,3,步,:,确定输人流、输出流,如图,5.24,虚线所示。,第,4,步,:,对于成绩单管理,第一级映射得出的结构图如图,5.25,所示,每个控制模块的名字表明了被它所控制的那些模块的功能。,第,5,步,:,第二级映射的结果分别用图,5.2-28,描述。,第,6,步,:,对软件初始结构进行细化。,体系结构设计过程,事务型映射设计方法,将具有事务数据流特点的数据流图按预先确定的模式自顶向下,逐步分解建立软件体系统结构,事务型映射方法步骤:,复审基本系统模型是(评估软件需求规格说明),复审和细化软件的数据流图,确定数据流图中流的特征,识别事务中心和每一条操作路上的流特征,将数据流图映射到事务型系统结构图上,“,因子化,”,分解和细化事务结构和每一条操作路径的结构,利用启发式原则改进系统的初始结构图,直到得到符合要求的系统结构图,确定以事务为中心的结构,找出事务中心、接收数据、处理路径三个部分。,将数据流图转换为初始的系统结构图。,分解和细化接收分支和处理分支。,事务型映射设计方法,例,5.2,银行储蓄系统的业务流程如下,:,储户写好的存款单或取款单由业务员键入系 存款则系统记录存款人姓名、地址、身份证号、存款类型、存款日期、到期日期、利率 等信息,并打印出存单给储户;如果是取款而且开户时留有密码,则系统首先核对密码, 若密码正确,或存款时未留密码,则系统计算利息并打印出利息清单给储户。请针对该银行储 统使用事务型映射方法得到软件的结构图。,事务型映射设计方法,第,1,步,:,对银行储蓄系统的数据流图进行复查并细化,得到图,5,,,29,所示的数据流图。,事务型映射设计方法,第,2,步,:,通过对图,29,所示的数据流图进行分析,可以看到整个系统是对存款及取款两 种不同的事务进行处理,因此具有事务特性。,第,3,步,:,确定输人流和输出流的边界,如图,5.29,虚线所示。,第,4,步,:,完成第一级分解,如图,30,所示。,第,5,步,:,完成第二级分解,对图,5.30,所示的输入数据、输出数据、调度模块进行分解,得到 未经细化的输入结构、输出结构和事务结构,分别如图,5.31-33,所示,第,6,步:对软件结构时行细化,数据设计,互联网时代背景下,数据是企业(组织)的血液,对企业至关重要。,数据是软件系统中的重要组成部分,数据设计的好坏影响软件系统的成败。,数据设计好的软件系统具有很强的模块独立性和较低的程序复杂性,数据设计特点:,三分技术、七分管理、十二分基础数据,数据设计:数据库设计和数据文件设计,数据设计,将系统化的方法用于数据设计,应考虑几种不同的数据组织方案,分析数据设计对软件设计的影响,要确定所有的数据结构和在每种数据结构上的操作,建立数据字典并用它来定义数据和软件的设计,低层数据设计的决策应推迟到设计过程的后期进行,用逐步细化的方法进行数据设计,(需求分析时确定总体数据、概要设计时加以细化,详细设计时才规定具体的细节),数据结构的表示只限于那些必须直接使用数据结构内数据的模块才能知道,数据结构设计成可复用的,建立一个存在各种复用的数据结构模型的构件库,以减少数据定义和设计的工作量,做好数据设计的基本原则,数据设计,数据库设计,数据库的分类与选择:关系数据库和非关系型数据库,Oracle,SQL server,Mysql,DB2,Access,NoSQL,(Google,的,BigTable,与,Amazon,的,Dynamo,。开源的,NoSQL,体系,如,Facebook,的,Cassandra,,,Apache,的,Hbase,),数据设计,数据库结构设计,概念结构设计,逻辑结构设计,物理结构设计,数据库的概念结构,是系统中各种数据模型的共同基础,它描述了系统最基础的数据结构,独立于特定的数据库系统。,数据库的逻辑结构,提供了比较接近数据库内部构造的逻辑描述,它能够为数据库的物理结构创建提供便利。,数据库的物理结构,指数据库的物理数据模型,它包括数据库服务器物理空间上的表、存储过程、字段、视图、触发器、索引等,与特定的数据库系统密切相关。,数据库设计,数据库结构设计,数据库概念结构设计,建立,E-R,模型,(需求分析阶段工作),数据库逻辑结构设计,在设计数据库的逻辑结构的过程中,首先要将概念结构中的实体、属性、联系映射为数据表结构,。,在,关系型数据库中,数据表是数据的,存储单位,数据库逻辑结构设计,实体,-,关系映射:将,E-R,模型映射到关系数据库中,实体和实体属性的映射:,一个实体对应一个关系模式,实体的属性对应关系的属性实体的码对应关系模式的候选码。,实,体之间的联系和联系属性的映射:,实体之间的一对一,一对多和多对多二种联系分别按下述方法实现关系的映射。,一对一联系的转换,:,一个1:1联系转换为一个独立的关系模式,,也可,与任意一端实体对应的关系模式合并,实体类型之间一个1,:,1联系转换为一个独立的关系模式,则与该联系相连的实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。,实体类型之间一个1:1联系与任意一端实体对应的关系模式合并。则需要在该关系模式的属性中加人另一关系模式的码和联系本身的属性。,概念结构设计,实体,-,关系映射:将,E-R,模型映射到关系数据库中,一对多联系的转换:,一个,1:N,联系可以转换为一个独立的关系模式,也可以与,N,端对应的关系模式合并,实体间一个,1:,N,联系转换为一个独立的关系模式,则与该联系相连的,各,实体的码以及联系本身的属性均转换为,新,关系的属性,,新,关系的码,为,N,端实体的码,。,实体间一个1:1联系与,N,端实体对应的关系模式合并。,在,N,端,的子表中增加父表的关键字列,则,多对多联系的转换:,一个,M:N,联系必须转换为一个新关系模式,与该联系相连的各实体的码以及联系本身的属性均转为新关系的属性,而新关系的码是各实体码的组合。,形成初始的数据表后,要对其进行规范,在这里引入范式的概念。,一个好的关系模式,应当不会发生插入异常、更新异常、删除异常,数据冗余尽可能少,,在设计关系数据库时应该考虑上述问题。,数据库逻辑结构设计,各范式的定义如下,:,第一范式,所有关系中的每一个分量都必须是不可分的数据项。第一范式是建立关系型数据表的最基本的要求,。,第二范式,满足第一范式的条件,并且每个非键属性都由整个键决定。,第三范式,满足第二范式的条件,并且每个非键属性不依赖于其他非键属性值。,数据库逻辑结构设计,显然,数据表的范式级别越高,其规范性也就越强。对于小型软件开发项目而言,所设计的逻辑模式能满足第二范式的要求即可。但是,如果项目对数据库中数据的完整性要求较高,应保证所设计的关系模式满足第三范式甚至更高范式的要求。,设计好数据表后,若数据表之间存在关联关系,那么可以采用主键、外键的方法,这是数据表之间参照完整性规则的依据。此外,为了使数据具有更高的安全性、方便对数据的组织和操作,人们还会采用,数据视图的方法来进一步完善数据库的逻辑结构设计。,数据库逻辑结构设计,得到,数据库的逻辑结构之后,就可以将模型进一步表现为物理空间上的表、字段、索引、存储过程、触发器及相应的数据字典了,。,在数据库管理系统(,DBMS,)中创建数据库、数据表,数据表结构设计、索引、触发器、存储过程设计等,数据库物理结构设计,数据设计,数据文件设计,文件系统存储数据的特点:,可以存储数据量大的非结构化数据(音频、视频),临时存放的数据,对数据的存储速度要求极高的数据,非关系型层次化数据 (系统配置文件),文件设计的任务:,理解文件的特性:从业务处理的观点来研究数据文件的使用率,追加率、删除率、保护和保密等特性,确定文件的存储媒体,确定文件的组织方式,确定文件的记录格式,估计存取时间和存储容量,过程设计,过程设计也叫详细设计,不是具体地编写程序,而是为软件系统中的每个模块确定相应的算法及内部数据结构,获得目标系统具体实现的详细描述,为编码实现做准备。,确定每个模块的具体算法,:,根据概要结构设计所建立的系统软件结构,为划分的每个模块确定具体的算法,并选择某种,表达工具,将算法的详细处理过程描述出来。,确定每个模块内部数据结构及数据库的物理结构,:,为系统中的所有模块确定并构造算法实现所需的数据结构,;,根据数据设计阶段确定的数据库逻辑结构,对数据库的存存储结构 、存储方法等物理结构进行设计。,确定模块接口的具体细节,:按照模块的功能要求,确定模块接口的详细信息,包括模块间的接口信息、模块与系统外部的接口信息及用户界面等。,为每个镆块设计一组测试用例,:,由于负责详细设计的软件人员对模块的实现细节十分清楚,因此由他们在完成详细设计后提出模块的测试要求是非常恰当的。,编写文档,.,参加复审,:,过程设计阶段的成果主要以详细设计说明书的形式保留下来,在通过复审对其进行改进和完善后作为编码阶段进行程序设计的主要依据。,过程设计任务,过程设计,图形,(程序流程图、,N-S,图、,PAD,图),表格,(判定表),语言,(程序设计语言,PDL,),过程设计工具,流程图,流程图是对过程、算法、流程的一种图形表示,它对某个问题的定义、分析或解法进行描述,用定义完善的符号来表示操作、数据、流向等概念,。,程序流程图也称为,程序框图,是一种比较直观、形象地描述过程的控制流程的图形工具。,它包含,5,种基本的控制结构:,顺序型,选择型,先判定型循环(,WHILE-DO,),后判定型循环(,DO-WHILE,),多分支选择型。,流程图,程序流程图中使用的基本符号如,下,图所示。,输入,/,输出,连线,流程图,程序流程图的,5,种基本控制结构的图符如,下,图所示。,流程图,利用基本符号和控制结构图符,就可以画出简单的程序流程图了。某程序片断的程序流程图如,下,图所示。,流程图,程序流程图的主要优点是:,采用简单规范的符号,画法简单,结构清晰,逻辑性强,便于描述,容易理解,流程图,程序流程图的主要缺点是:,不利于逐步求精的设计,图中可用箭头随意地对控制进行转移,与结构化程序设计精神相悖,不易于表示系统中所含的数据结构,当目标系统比较复杂时,流程图会变得很繁杂、不清晰,N-S,图,N-S,图是由,Nassi,和,Shneiderman,提出的,又被称为盒图,是一种符合结构化程序设计原则的图形工具。,N-S,图的基本符号如,下,图所示。,A,调用子程序,N-S,图,可见,,N-S,图用类似盒子的矩形以及矩形之间的嵌套来表示语句或语句序列。,N-S,图内部没有箭头,因此,它所表示的控制流程不能随便进行转移。,N-S,图的主要特点可以归纳为:,不允许随意的控制转移,有利于严格的结构化程序设计;,可以很方便地确定一个特定控制结构的作用域,以及局部数据和全局数据的作用域;,可以很方便地表示嵌套关系以及模块之间的层次关系,。,N-S,图,N-S,图的优点:,能有效保证设计的质量和标准化,图形形象直观,具有良好的可见度,图形简单易学易用,N-S,图的,缺点,:,PAD,图,PAD,图(,Problem Analysis Diagram,)也叫问题分析图,它是由日本日立公司于,1973,年发明的。,PAD图基于结构化程序设计思想,用二维树形结构的图来表示程序的控制流及逻辑结构。,在,PAD,图中,一条竖线代表一个层次,最左边的竖线是第一层控制结构,随着层次的加深,图形不断地向右展开。,PAD,图,PAD,图的基本控制,符号,PAD,图,PAD,图为常用的高级程序设计语言的各种控制语句提供了对应的图形符号,它的主要特点是:,PAD,图表示的程序结构的执行顺序是自最左边的竖线的上端开始,自上而下,自左向右,用,PAD,图表示的程序片断结构清晰、层次分明,支持自顶向下、逐步求精的设计方法,只能用于结构化的程序设计,PAD,图不仅可以表示程序逻辑,还能表示数据结构,过程设计,过程设计工具,例,5.3,从,A(1)-A(10),求最大数和次最大数,用图形式具表示,过程设计,过程设计工具,例,5.3,从,A(1)-A(10),求最大数和次最大数,用图形式具表示,接口设计,-,软件界面设计,软件界面设计是软件接口设计的重要组成部分,设计的质量直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命。,软件界面设计是一个涉及认知心理学、设计学、人体工程学、语言学等交叉学科,软件界面分为感觉(视觉、触觉、听觉)和情感两个层次,接口设计,-,软件界面设计,置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性,规范性:便于用户操作;让用户感觉到统一、规范;降低培训、支撑成本,合理性:界面布局科学;界面颜色搭配合理,一致性:字体、标签风格、颜色、术语、显示错误信息保持一致,可靠性:界面具有容错能力和正常工作能力,功能性:界面为用户提供完成多种任务能力,,界面可定制性:界面根据用户提供个性化显现方式,,软件界面设计原则,接口设计,-,软件界面设计,用户界面设计的任务分析与软件的需求分析同步进行,用户特性分析:了解用户的操作技能和经验,用户工作分析:采用自顶向下、逐步进行功能分解,记录有关软件系统的概念和术语,确定界面类型,进行交互设计:错误提示、导航、,进行视觉设计:图标规范化易记忆、图片、文字清晰、颜色设计、布局设计,软件界面设计任务,接口设计,-,软件界面设计,用户界面设计流程,软件界面设计步骤,界面设计方案准则,界面规范说明,选择界面类型,用户需求,用户观点,增加存储机制,界面原型,用户测试,实际系统,反馈,功能设计描述,接口设计,-,软件界面设计,软件界面设计步骤,尽可能使界面与用户的原模型相一致,满足相容性原则,用新思维给出系统的结构,使用用户尽快适应新的系统模型,界面与用户预想的操作方式相吻合,界面展示了人机间有效的信息交流,根据软件需求,编写界面规范说明,界面规范说明基本格式:,范围,交付文档,界面和信息显示描述,界面描述,界面图,数据流程,交互方式,附表,接口设计,-,软件界面设计,软件界面设计步骤,软件界面功能:系统管理、会话管理、导航、错误信息处理、操作者支持(帮助和培训)、管理外部设备,软件界面类型:菜单界面、对话界面、窗口界面、图标界面、表格界面,选择合适的界面设计类型:,在系统需求和现有硬件、软件条件限制下,选择适当的界面设计类型来匹配用户特性,用户界面设计类型选择时先考虑人的需求,再考虑系统的需求,接口设计,-,软件界面设计,软件界面评价是把构成人机界面的软、硬件系统按性能、功能、界面形式、可用性与某种预定标准进行比较,对其作出评价。,按照界面开发过程将软件界面评价分为:总结评价和阶段评价,设计评价方法:经验性评价方法、数学分析类评价方法以、试验评介方法、虚拟仿真评价方法,软件界面设计评价,Thank you,!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!