第-5-讲-需求分析建模--readpudnc课件.ppt

上传人(卖家):三亚风情 文档编号:2880996 上传时间:2022-06-07 格式:PPT 页数:137 大小:691.50KB
下载 相关 举报
第-5-讲-需求分析建模--readpudnc课件.ppt_第1页
第1页 / 共137页
第-5-讲-需求分析建模--readpudnc课件.ppt_第2页
第2页 / 共137页
第-5-讲-需求分析建模--readpudnc课件.ppt_第3页
第3页 / 共137页
第-5-讲-需求分析建模--readpudnc课件.ppt_第4页
第4页 / 共137页
第-5-讲-需求分析建模--readpudnc课件.ppt_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、第 5 讲 需求分析建模需求分析建模 抽象与模型 需求分析建模的过程 需求分析建模的方法 结构化分析 面向对象分析 Jackson分析 结构化分析 数据建模 功能建模和信息流 行为建模抽象 (Abstract) 在处理复杂事务、构造系统、隐藏细节和获取重复模式方面使用抽象,通过对不同层次的细节和指标的抽象,能够表达一个实体和系统。模型 (model) 模型是对现实世界某些重要方面的抽象表示。 模型是一种抽象,从某个视点、在某种抽象层次上详细说明被建模的系统。 有时我们使用术语“抽象”来表示模型,因为我们从现实世界中抽象出对我们特别有用的东西。 分类 具体模型:直观模型、物理模型等; 抽象模型:

2、思维模型、符号模型、数学模型等。系统构架工程师构架工程师项目经理项目经理系统分析员系统分析员设计人员设计人员测试人员测试人员用户用户 1 通过对现实环境的调查,获得当前系统的物理模型。学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书信北信北107107张张教务科教务科信北信北206206王王会计室会计室信北信北206206李李出纳员出纳员( (实南实南) )赵赵教材科教材科需求分析的过程需求分析的过程 2 去掉具体模型中的非本质因素:抽取现实系统的实质,抽象出当前系统的逻辑模型。 学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书审查审查有效性有效性开发票

3、开发票开领开领书单书单发书发书需求分析的过程 3 分析当前系统与目标系统的差别,建立目标系 统的逻辑模型 。学学生生审查并审查并开发票开发票购书单购书单发票发票领书单领书单开领开领书单书单无效书单无效书单学学生生需求分析的过程 4 对目标系统的逻辑模型进行细化、改进与优化 5 需求分析的验证当前当前系统系统目标目标系统系统物理物理模型模型逻辑逻辑模型模型逻辑逻辑模型模型物理物理模型模型模型化模型化抽象化抽象化具体化具体化实例化实例化怎怎么么做做做做什什么么当前当前系统系统目标目标系统系统需需求求定定义义需求分析的过程 逻辑模型和物理模型 模型是对对象系统的形式化的特征抽象,概括性或近似地表示;

4、 构造模型的过程是一个抽象、分析的过程。描述重要的业务功描述重要的业务功能,无论系统是如能,无论系统是如何实施的。何实施的。描述现实系统是如何描述现实系统是如何在物理上实现的。在物理上实现的。描述新系统的主要业描述新系统的主要业务功能和用户新的需务功能和用户新的需求,无论系统应如何求,无论系统应如何实施。实施。描述新系统是如何实描述新系统是如何实施的(包括技术)。施的(包括技术)。模型的作用 在建模过程中了解系统 通过抽象降低复杂性 有助于回忆所有的细节 有助于开发小组间的交流 有助于与用户的交流 为系统的维护提供文档需求分析建模方法 按照信息的流向、结构、和内容三个方面可以将现有的需求分析建

5、模方法划分为:面向信息流向:结构化分析方法面向信息结构:Jackson分析方法面向信息内容:面向对象分析方法 描述系统需求时可以从系统的功能、行为和信息三个方面进行,侧重点可以不一样。传统的开发模型不能完全适应具体的应用领域开发 软件开发过程实际是:软件开发过程实际是:人通过抽象、归纳把客观系统人通过抽象、归纳把客观系统变换到软件系统,并保证软件系统的解等价客观系统的解变换到软件系统,并保证软件系统的解等价客观系统的解。 由于客观系统与软件系统差异很大,所以变由于客观系统与软件系统差异很大,所以变换过程必须通过一个换过程必须通过一个中间过渡系统。中间过渡系统。不同的软件不同的软件开发模型采用不

6、同的过度系统完成变换过程。开发模型采用不同的过度系统完成变换过程。客观系统客观系统客观系统的解客观系统的解软件系统软件系统软件系统的解软件系统的解变换变换解的等价解的等价OOAOODOOP结构化分析方法 SA 结构化分析(Structured Analysis,SA)是由Douglas Ross 提出的,由DeMarco进行推广的。 采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。 适用于分析大型的数据处理系统。 方法的特点:利用数据流图(Data Flow Diagram,DFD)来帮助理解问题,对问题进行分析。 一般工具:DFD、数据字典、结构化英语、判定表、判定树等。结构化

7、分析方法 功能分析工具:DFD、DD、结构化英语、判定表和判定树。 行为分析工具:状态迁移图、Petri网等。 数据分析工具:ER图或者EER(扩展ER)图。 SA主要针对数据处理领域,因此,系统分析的侧重点在于功能分析和数据分析,而行为分析使用得较少。结构化分析 结构化分析遵循的三条基本原则: 分解 抽象 映射 三个主要目标:描述用户需要建立创建软件设计的基础定义软件完成后可被确认的一组需求SA的结构E-R图图状态变迁图状态变迁图( (STD图图) )数据字典数据字典(DD)数据流图数据流图( (DFD) )分析模型的构成元素 数据字典(DD) 模型核心,包含了所有数据对象的描述的中心库。

8、E-R图(ERD) 表示数据对象以及相互的关系,用于数据建模。表示数据对象以及相互的关系,用于数据建模。 数据流图(DFD) 指明数据在系统中移动时如何被变换指明数据在系统中移动时如何被变换; 描述对数据流进行变换的功能描述对数据流进行变换的功能; DFD中每个功能的描述包含在加工规约中每个功能的描述包含在加工规约(小说明小说明)。 用于功能建模。用于功能建模。 状态变迁图(STD) 指明作为外部事件的结果指明作为外部事件的结果,系统将如何动作。用于行系统将如何动作。用于行为建模。为建模。数据建模 最常用的表示概念性数据模型的方法,是实体联系方法(Entity-Relationship App

9、roach) ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。E-R图元素 Entities 例:例: , ,StudentInstructorClass 实体是客观世界中存在的且可相互区分的事务。实体是客观世界中存在的且可相互区分的事务。实体可以是人也可以是物,可以是具体的事物也可实体可以是人也可以是物,可以是具体的事物也可以是抽象概念。例如,职工、学生、课程、教师等以是抽象概念。例如,职工、学生、课程、教师等都是实体。都是实体。E-R图元素 客观世界中的事物彼此间往往是有联系的,例如,教师与课程间存在“教”这种联系。 Relations 例:例:Enrolled inTea

10、ch111NMNE-R图元素 属性是实体或联系所具有的性质。通常一个实体由若干个属性来刻画。 例如,“学生”实体有学号、姓名、性别、系、年级 Attributes 例:例: ,NameI D#E-R图InstructorStudentEnrolled inTeachClassI D #I D #NameNameSexSexTitleInstructor IDClass IDGradeStudent IDClass IDCreditI D #Subject例:例:客人客人入住入住客房状态客房状态客房客房服务服务服务类别服务类别姓名姓名地址地址身份证号码身份证号码护照号码护照号码电话电话客房号客房

11、号床位数床位数房间类别房间类别价格价格1住宿编号住宿编号住宿时间住宿时间支付方式支付方式日期,客人数日期,客人数状态状态(已预定已预定/占用占用/维修中维修中)日期,数量日期,数量名称,价格名称,价格数据建模实例:简单的酒店系统数据模型变换变换输入信息输入信息信息流模型信息流模型输出信息输出信息外部实体外部实体外部实体外部实体外部实体外部实体输入信息输入信息外部实体外部实体外部实体外部实体输出信息输出信息输出信息输出信息功能建模和信息流功能建模和信息流数据存储数据存储1 数据流图 数据流图说明(Yourdon表示): 表示外部实体,代表数据源和数据池。 表示加工,代表接收输入,经过变换,继而产

12、生输出的处理过程。 表示数据流,代表数据的流向和路径。 表示数据存储,代表系统加工的数据所存储的地方。外部实体外部实体变换变换数据存储数据存储外部实体外部实体数据流数据流过程过程( (加工加工) )数据存储数据存储条目查条目查询请求询请求查询可查询可用条目用条目1 1客户客户目录目录产品条目产品条目库存条目库存条目可用条目可用条目查询结果查询结果目的地目的地响应响应来源来源触发器触发器动作动作DFD的Gane表示1 数据流图 数据流图(DFD,Data Flow Diagram)描述逻辑模型的图形工具,表示数据在系统内的变化。 DFD可以分层表示信息流和功能的细节,既提供了功能建模的机制,又提

13、供了信息流建模的机制。 第0层的DFD也被称为基本系统模型或语境模型。 DFD没有提供显式的处理顺序,过程或顺序式隐含在DFD中的,显式的推迟到系统设计时。 不要混淆DFD和程序流程图!人人事事部部门门人事工资人事工资管理系统管理系统会会计计部部门门职工出缺勤报表职工出缺勤报表职工出缺勤信息职工出缺勤信息职工工资信息职工工资信息职工工资报表职工工资报表职职工工职工基本信息职工基本信息职工工资单职工工资单人事工资管理系统的顶层人事工资管理系统的顶层DFD(DFD(概图概图) )范例范例职工基本职工基本信息管理信息管理子系统子系统1.01.02.02.0人事工资管理系统人事工资管理系统0层层DFD

14、DFD范例范例职工出缺勤信息职工出缺勤信息职工工资管职工工资管理子系统理子系统3.03.0职工出缺职工出缺勤管理勤管理子系统子系统职工基本信息职工基本信息职工工资信息职工工资信息人人事事部部门门会会计计部部门门职职工工职工出缺勤报表职工出缺勤报表职工出缺勤信息职工出缺勤信息职工工资信息职工工资信息职工工资报表职工工资报表职工基本信息职工基本信息职工工资单职工工资单建立职工建立职工出缺勤信息出缺勤信息3.13.1人事工资管理系统人事工资管理系统1层层DFDDFD:加工:加工3.03.0的分解图的分解图职工出缺勤信息职工出缺勤信息3.23.2制作职工出制作职工出缺勤信息缺勤信息统计表统计表职工基本

15、信息职工基本信息职工职工出缺勤报表出缺勤报表职工职工出缺勤信息出缺勤信息分层DFD实例一个简单的考务处理系统功能描述:(1)对考生送来的报名单进行检查;(2)对合格的报名单编好准考证号后将准考证送给 考生,并将汇总后的考生名单送给阅卷站;(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。考考生生考务考务处理系统处理系统考考试试中中心心阅卷站阅卷站不合格报名单不合格报名单报名单报名单准考证准考证考生通知单考生通知单成成绩绩清清单单合格标准合格标准错误错误

16、成绩成绩清单清单考考生生名名单单统计分析表统计分析表顶层数据流图登记登记报名单报名单报名单报名单准考证准考证1 1统计统计成绩成绩2 2不合格不合格报名单报名单考生通知单考生通知单成成统计分析表统计分析表考生名册考生名册绩绩清清单单合合格格标标准准考考生生名名单单成成绩绩清清单单错错误误0层数据流图1 1层数据流图层数据流图 (a)(a)检查检查报名单报名单报名单报名单准考证准考证1.11.1编准考编准考证号证号1.21.2不合格不合格报名单报名单考生名册考生名册考生名单考生名单合格合格报名单报名单登记登记考生考生1.31.3一层数据流图一层数据流图 (b)(b)检查检查成绩清单成绩清单2.1

17、2.1审定审定合格者合格者2.22.2考生名册考生名册正确正确成绩清单成绩清单制作制作通知单通知单2.32.3分析分析统计成绩统计成绩2.42.4分析分析试题难度试题难度2.52.5试题得分清试题得分清单单考生考生通知单通知单难度难度分析表分析表合格合格标准标准分类分类统计表统计表成绩清单成绩清单错误错误成绩清单成绩清单经审定的经审定的成绩清单成绩清单 数据流图分解原则 DFDDFD可以用来表示一个系统或软件在任何层次上的可以用来表示一个系统或软件在任何层次上的抽象。抽象。 较大型软件系统较大型软件系统DFDDFD分成多层分成多层( (子图、父图子图、父图概念概念),),可以表示数据流和功能的

18、进一步的细节。可以表示数据流和功能的进一步的细节。 0 0层数据流图应当把系统或软件作为一个单一的功层数据流图应当把系统或软件作为一个单一的功能来描述。能来描述。 应当注意原始的输入和输出。应当注意原始的输入和输出。 每个过程的每次细化一般控制在每个过程的每次细化一般控制在3 34 4个分过程。个分过程。 所有圆圈和箭头应用有意义的名称标注。一个名所有圆圈和箭头应用有意义的名称标注。一个名称标注在称标注在 同一个同一个DFDDFD中只能出现一次。中只能出现一次。 每次细化时,细化部分的输入和输出必须保持一每次细化时,细化部分的输入和输出必须保持一致,即保持致,即保持信息流连续性信息流连续性,有

19、时称为平衡。,有时称为平衡。 一次最好只对一个圆圈细化。一次最好只对一个圆圈细化。监控固件监控固件和和操作接口操作接口每个固件状态每个固件状态动作动作警告警告机器人机器人初始化初始化控制控制操作命令操作命令部件状态缓冲器部件状态缓冲器位置位置命令命令开始开始/ /停止停止处理处理机器人机器人命令命令机器人命令文件机器人命令文件操作操作设置设置处理活动处理活动记录机器记录机器人动作人动作位串位串数据流和控制流举例(使用Ward和Mellor符号)数据和控制模型的关系数据和控制模型的关系 SafeHomede控制面板控制面板与用户与用户交互交互SAFEHOMEARMED POWER1 12 23

20、34 45 56 67 78 89 9* *0 0# #OFF ARAY STAYMAX TEST BYPASSINSTANT CODE CHIMEREADYpanicSafeHomede的第的第0层层 SafeHomedeSafeHomede软件系统软件系统用户命令用户命令和数据和数据显示信息显示信息控制面板控制面板传感器传感器传感器传感器状态状态警铃警铃电话线电话线警告类型警告类型电话号码电话号码拨音拨音控制面控制面板显示板显示SafeHomede的第的第1层层控制控制面板面板与用户与用户交互交互控制控制面板面板显示显示密码密码电话号码拨音电话号码拨音传感器状态传感器状态显示显示信息信息配

21、置请求配置请求用户命令用户命令和数据和数据配置配置系统系统警警铃铃电电话话线线传感器传感器配置信息配置信息显示信息显示信息和状态和状态监控监控传感器传感器激活不激活不激活系统激活系统传感器信息传感器信息密码密码处理处理警告类型警告类型检验检验idid信息信息开始开始停止停止状态信息状态信息监控传感器的第监控传感器的第2层层电话号码拨音电话号码拨音传感器状态传感器状态配置数据配置数据显示格式显示格式配置信息配置信息产生警告产生警告信息信息拨号拨号评估设置评估设置传感器信息传感器信息读传感器读传感器警告类型警告类型传感器传感器idid类型类型传感器传感器idid类型定位类型定位SafeHomede

22、的第一层的第一层控制控制面板面板与用户与用户交互交互控制控制面板面板显示显示显示活动显示活动状态(完状态(完成、在处成、在处理中)理中)配置配置系统系统警警铃铃电电话话线线传感器传感器配置信息配置信息显示信息显示信息和状态和状态监控监控传感器传感器激活不激活不激活系统激活系统警告警告信号信号密码密码处理处理传感器传感器事件事件警告警告状态状态超超时时闪烁闪烁标志标志开关开关切换切换控制规格说明 控制规格说明用两种不同的方法表示系统的行为。 状态转换图STD 顺序说明 过程启动表PAT 组合说明过程规格说明 过程规格说明描述所有流模型的过程,该过程是最后的细化层次上的过程。 包括解说词文本、用P

23、DL描述的过程算法、数学方程、图或表。行为建模 采用动态分析方法,直观地分析系统的动作。 最常用的动态分析方法: 状态迁移图 STD STD通过描述状态以及导致系统改变状态的事件来表示系统的行为。 状态是任意可观察的行为模式,一个状态代表系统的一种行为模式。STD指明了系统如何在状态间移动。 时序图 Petri网状态迁移图SafeHomede的状态变迁图的状态变迁图关关数据字典 DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。数据字典的内容 名称 数据项或控制项、数据存储或外部实体的主要名称。要求命

24、名唯一性、一致性、“见名知义”。 别名(alias) 最早使用的另一个名称 何处用/如何用 使用数据或控制项的加工列表,以及如何使用。 内容描述 表示内容的符号。 附加信息 关于数据类型、预设值、限制或局限等信息。 操作符 含义描述 定义为定义为 与与( (顺序结构顺序结构) ) .n n 重复重复n n次次( (循环结构循环结构) ) . 或或( (选择结构选择结构) ) . , . . , . ( . ) ( . ) 任选任选 m.n m.n 界域界域 .,., 注释符注释符DD内容描述符号表示F1:F1:航班信息文件航班信息文件 航空公司名称航班号航空公司名称航班号起点终点日期起点终点日

25、期 起飞时间降落时间起飞时间降落时间 航空公司名称航空公司名称22字母字母44 航班号航班号33十进制数字十进制数字33 字母字母“A”A”“Z”“Z”十进制数字十进制数字“0”0”“9”“9”起点终点起点终点11汉字汉字1010 起飞时间降落时间时分起飞时间降落时间时分 时时“00”00”“23”“23” 分分“00”00”“59”“59” 日期年月日日期年月日 年年20002000200120012002200220042004 月月“01”01”“12”“12” 日日“01”01”“31”“31” 重复项:重复项:起点终点起点终点11汉字汉字1010 航空公司名称航空公司名称22字母字母

26、44 航班号航班号33十进制数字十进制数字33 组合项:组合项:日期年月日日期年月日 起飞时间降落时间时分起飞时间降落时间时分选择项:选择项:年年20002000200120012002200220042004原数据项:原数据项:字母字母“A”A”“Z”“Z” 十进制数字十进制数字“0”0”“9”“9” 时时“00”00”“23”“23” 分分“00”00”“59”“59” 月月“01”01”“12”“12” 日日“01”01”“31”“31”数据流条目数据流条目给出给出DFDDFD中某个数据流的定义,中某个数据流的定义,通常包括:通常包括: 数据流标识数据流标识 数据流来源数据流来源 数据流

27、去向数据流去向 数据流的数据组成数据流的数据组成 流动属性描述:频率、数据量流动属性描述:频率、数据量购购书书单单发票发票领书领书单单审查并审查并开发票开发票开领开领书单书单无效书单无效书单学生学生1 12 2各班学生各班学生用用 书书 表表举例:举例:学生学生教材存量表教材存量表数据流条目说明举例数据流条目说明举例数据流名数据流名: :发票发票别名别名: : 无无简述简述: : 学生购书时填写的项目学生购书时填写的项目来源来源: : 学生学生去向去向: : 加工加工1“1“审查并开发票审查并开发票”组成组成: : ( (学号学号) )姓名书号数量姓名书号数量数据流量数据流量: :100010

28、00次次/ /周周 高峰值:高峰值:开学期间开学期间10001000次次/ /天天 数据存储条目数据存储条目(数据文件词条数据文件词条)对某个文件的定义,包括:对某个文件的定义,包括: 文件名文件名 描述描述 数据结构数据结构 数据存储方式数据存储方式 关键码关键码 存取频率和数据量存取频率和数据量 安全性要求安全性要求数据存储条目说明举例数据存储条目说明举例文件名文件名: :库存记录库存记录别名别名: : 无无简述简述: :存放库存所有可供货物的信息存放库存所有可供货物的信息组成组成:货物名称编号生产厂家货物名称编号生产厂家 单价库存量单价库存量组织方式组织方式:索引文件,以货物编号:索引文

29、件,以货物编号为为 关键字关键字查询要求查询要求: :要求能够立即查询要求能够立即查询数据项条目数据项条目(数据元素词条数据元素词条)不可再分解的数据单位,包括:不可再分解的数据单位,包括: 名称名称 描述描述 数据类型数据类型 长度长度( (精度精度) ) 取值范围及缺省值取值范围及缺省值 计量单位计量单位 相关数据元素及数据结构相关数据元素及数据结构数据项条目说明举例数据项条目说明举例数据项名数据项名: :货物编号货物编号别名别名: :G-No,G-num简述简述: :本公司的所有货物的编号本公司的所有货物的编号类型类型: :字符串字符串长度:长度:1010取值范围及含义取值范围及含义:

30、: 第第1 1位:位:JJG G ( (进口进口/ /国产国产) ) 第第2 2 4 4位:位:LB01. LB29 (LB01. LB29 (类别类别) ) 第第5 5 7 7位:位:“A00”.“A99” (A00”.“A99” (规格规格) ) 第第8 8 1010位:位:“001”.“999”(001”.“999”(品名编品名编号号) ) (1)(1)人工方法人工方法 (2)(2)自动方法自动方法( (利用字典管理程序利用字典管理程序) )DDDD应具特点应具特点(1)(1)通过名字可方便查阅数据定义通过名字可方便查阅数据定义(2)(2)无冗余无冗余 (3)(3)易更新修改易更新修改数

31、据字典实现方法1. 1. 确定系统边界确定系统边界, , 画出系统环画出系统环境图境图2. 2. 自顶向下,画出各层数据流自顶向下,画出各层数据流图图3. 3. 定义数据字典定义数据字典结构化分析实施步骤结构化分析方法的弊病 基于功能分析和数据分析,将功能和数据分离,与人类现实世界环境不一样,和人的自然思维也就不一致了。 以功能为主,数据只是被动的信息载体。当系统行为发生变化时,系统维护非常困难。 DFD中不涉及系统的控制信息,因此,SA不适合于分析以控制信息为主的系统需求。小结 需求分析建模的过程 需求分析建模的方法 结构化分析 面向对象分析 Jackson分析 结构化分析 数据建模 功能建

32、模和信息流 行为建模第 6 讲 设计概念与原理内容提要 软件设计的重要性 设计过程 设计基本原则 设计概念 模块化设计 模块设计的启发规则概述 软件设计:应用各种技术和原理,对一个软件系统做出足够详细的决策,使之有可能在物理上得以实现的过程。软件是一个迭代的过程。 设计目标:将需求分析的结果(分析模型与需求分析规约)转化为实际软件系统的一个模型或软件表达式,即用于构造软件的“蓝图”。 最终产品:设计规约,包括描述体系结构、数据、过程和界面设计模型。 评审:清晰性、正确性、完整性。 软件设计与程序设计不同。1. 软件设计的重要性 软件需求分析和定义完成之后,进入软件设计阶段。 软件设计是构造和验

33、证软件所需的技术(设计、编码、测试)之一。开发阶段的信息流翻译分析模型到软件设计THE ANALYSIS MODELproceduraldesigninterfacedesignarchitecturaldesigndatadesignTHE DESIGN MODELData object descriptionProcess specificationControl specificationE-RDFDSTDDDRepresentations of software that can be assessed for quality翻译分析模型到软件设计 数据设计将分析时创建的信息域模型变换

34、为软件所需的数据结构,侧重于数据结构的定义。 体系结构设计定义软件系统各主要结构构件之间的关系。 过程设计则是把结构构件转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。 接口设计是建立软件内部的关系以及软件人机之间的交互机制。 软件设计的重要性可以用“质量”表达。软件设计的重要性总体设计 从回答“做什么”到回答“怎样做” 划分出组成系统的物理元素程序、文件、数据库、过程和文档等等 每个元素还是黑盒子 -“全局高度,抽象层次”2. 设计过程概要设计,将软件需求转化为数据结构和软件体系结构。详细设计,即过程设计。通过对体系结构表示进行细化

35、,得到软件的详细的数据结构和算法。 P. 63 设计技术和管理方面之间的关系设计技术和管理方面之间的关系设计和软件质量 McGlaughlin提出的良好设计的演化的特征: 设计必须实现所有在分析模型中的显式需求,并且满足用户希望的隐式需求。 设计必须是可读的、可理解的指南,对于编码和测试人员。 设计应该提供软件的完整概貌。设计和软件质量 指导性原则 设计应该展示一种层次性结构。 设计应该模块化。 设计应该包括数据、体系结构、接口和模块(构件)的清楚的表示。 设计应有性质不同的可区分的数据结构和过程。 设计应该具有独立功能特征的模块。 设计应该降低模块和外部环境之间接口的复杂性。 设计应该利用需

36、求分析中获得的信息和可重复的方法。软件设计的演化 模块化程序设计和自顶向下求精软件体系结构的方法。 结构化程序设计 面向数据流的程序设计 面向对象的设计方法 软件体系结构的设计 基于设计模式的软件设计3. 设计基本原理 软件设计概念提供了完善的设计方法,还可以帮助软件设计人员回答下列问题: 能使用什么标准将软件化分为单个构件? 如何将功能或数据结构的细节与软件的概念表达分离? 是否存在定义软件设计的技术质量的统一标准?设计基本原理 1. 抽象 Abstraction: 抽出事物的本质特性而暂时不考虑无关的细节。 忽略细节,分层理解问题,自顶向下层层细化,包括对过程、数据和控制抽象。 过程抽象:

37、一个命名的指令序列,具有特定和有限的功能。 数据抽象是命名的数据集合,描述一个数据对象。 控制抽象隐含了不必说明的内部细节的程序控制机制。 是实现模块化的手段之一。doorimplemented as a data structuremanufacturermodel numbertypeswing directioninsertslights type numberweightopening mechanismopenimplemented with a knowledge of the object that is associated with enterdetails of enter

38、 algorithmwalk to door;reach for knob;switch the knobopen door;walk through;close door.过程抽象例:开发一个CAD软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。 抽象层次I:用问题所处环境的术语来描述这个软件。 该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个CAD软件实现。过程抽象 抽象层次II:任务需求的描述。列出“What”而不是“How”。 CAD S

39、OFTWARE TASKS: user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; END过程抽象 抽象层次III:程序过程表示。以2-D绘图生成任务为例: PROCEDURE 2-D drawing creation REPEAT UNTILE (drawing creation task terminates) DO WHILE (digitizer interaction occurs) Digitizer interface task;

40、 DETERMINE drawing request CASE Line: line drawing task; Rectangle: rectangle drawing task; Circle: circle drawing task; END; DO WHILE (keyboard interaction occurs) keyboard interaction task; PROCESS analysis/computation CASE View: auxiliary view task; Section: cross sectioning task; END; END REPETI

41、TION; END PROCEDURE. 过程抽象 在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经开始显露。 逐步细化和模块化的概念与抽象紧密相连。数据抽象 定义“绘图 drawing”数据对象作为一种抽象数据类型。 TYPE drawing IS STRUCTURE DEFINED number IS STRING LENGTH (12) geometry DEFINED notes IS STRING LENGTH (256) ENF drawing TYPE; Blueprint IS INSTANCE OF drawing; Schematic I

42、S INSTANCE OF drawing;设计基本原理 2. 细化 Refinement: 自顶向下的设计策略。doorimplemented as a data structuremanufacturermodel numbertypeswing directioninsertslights type numberweightopening mechanismopenimplemented with a knowledge of the object that is associated with enterdetails of enter algorithmwalk to door;re

43、ach 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细化 设计的细化过程与需求分析的划分类似,只是考虑的细节层次不同,而不是方法。 细化实际是一个详细描述的过程。 抽象与细化是互补的概念。设计基本原理 模

44、块化: Modularity 模块是数据说明、可执行语句等程序对象的集合,是单独命名的并且可以通过名字来访问,例如过程、函数、子程序、宏、modula等。 软件被划分成独立命名和可独立访问的被称作模块的构件,每个模块完成一个子功能,它们集成到一起满足问题需求。easier to build, easier to change, easier to fix .模块化模块化论据: 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 + p

45、2) E(p1) + E(p2) 不要过度模块化!每个模块的简单性将被集成的复杂性所掩盖。模块化 模块化和软件成本 如何确定地预测最小成本区?成本成本成本成本 / / 模块模块最小成本区最小成本区接口成本接口成本软件总成本软件总成本模块数目模块数目模块化 如何确定模块的大小: 模块可分解性 模块可组装性 模块可理解性 模块连续性 模块保护设计基本原理 4. 软件体系结构 Architecture 是过程构件(模块)的层次结构、模块间交互的方式以及其使用的数据结构。 软件结构的演变从确定问题开始,当该问题的每个部分用一个或多个软件加以解决以后,整个问题的解也就有了。软件体系结构 结构的演化P3P

46、1P2P4P5S1S2S3S4S5体系结构设计基本原理 5. 控制层次 Control Hierarchy 也称为程序结构 深度:表示控制的层数。 宽度:表示控制(同一层次)总跨度。 扇出数:指由一模块直接控制的其他模块的数目。 扇入数:指有多少个模块直接控制一个给定的模块。 上级模块 从属模块控制层次McbalkedmfgihjnopqrWidth DepthFan-outFan-in控制层次 控制层次代表了两种不同的体系结构特征:可见性 visibility 和连接性 connectivity 。 可见性:构件集合可以直接或间接引用一个给定构件作为数据。 连接性:构件集合直接引用一个给定构

47、件作为数据。设计基本原理Mcbalkedmfgh 6. 结构划分 如体系结构是层次式的,则程序结构可以被水平划分和垂直划分。n设计基本原理Mcbalkedmfgh 6. 垂直划分n设计基本原理 7. 数据结构 数据结构是数据元素之间逻辑关系的表示。 数据结构决定了信息的组织、访问方法、关联程度、可替换的处理方法。 典型的数据结构: 标量项、顺序向量、数组、链表、树、堆等。设计基本原理 8. 软件过程 software procedure 体系结构定义了控制层次,而软件过程着重于每个单独模块的处理细节。 过程必须提供精确定义,包括事件顺序、准确的抉择点、重复的操作,以及数据组织和结构。 体系结构

48、与软件过程是相互关联的。设计基本原理 9. 信息隐藏 information hiding 信息隐蔽:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不可访问的。是实现模块化的手段之一。 The clients of a module know about its services only through its interface; the implementation is hidden from them (hence may change without affecting the clients). 隐藏就是有效的模块化可以通过定义一组

49、独立模块来实现。信息隐藏信息隐藏 “信息隐藏”,更准确地描述应是“细节隐藏”,因为隐藏的不是信息,而是实现的细节。4. 模块化设计 实现模块化的手段:抽象和信息隐蔽。 在软件体系结构中,从绑定时间、激活机制和控制模式来划分模块类型。 在程序结构中,分为顺序、增量和并行模块。模块化设计 模块独立性 通过开发具有单一功能和反对同其它模块的过多交互的模块而实现的。 好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。 好处:更有利于开发、设计/编码修改的副作用减小、模块的复用可能。 功能独立性是良好设计的关键,设计又是软件质量的关键。 度量标准:内聚 cohesion 和耦合

50、 coupling 。 内聚是一个模块内部的交互程度;耦合是模块之间交互的程度。内聚 内聚:The elements of a module are directed to perform the same task. Goal: as cohesive as possible. 内聚级别: 偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚最差最差最好最好 低内聚l偶然内聚(Coincidental cohesion): Unrelated functions, processes, or data are found in the same module (for con

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第-5-讲-需求分析建模--readpudnc课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|