页数:79页文件大小:576.0 KB来源: 软件工程ppt课件
本课件讲解如何把软件需求变换成软件表示,先说明设计工程在软件生存周期中的位置,再系统讲解抽象、模块化、信息隐藏等设计原则,随后展开体系结构设计与部件级设计技术,最后给出设计规约的内容与设计评审的组织方式。
软件工程第4章设计工程
内容摘要
内容摘要
软件设计工程概述
为什么要进行软件系统设计
软件系统设计的重要性
软件设计的任务
设计任务1—数据/类设计
设计任务2—体系结构设计
设计任务3—接口设计
设计任务4—部件级设计
软件设计的(质量)目标
衡量设计的技术原则-1
衡量设计的技术原则-2
软件设计的过程-1
软件设计的过程-2
内容摘要
软件设计的基本原则
抽象
过程抽象与数据抽象
逐步求精
模块化(分解)
通过模块化降低开发复杂度C(x):问题x的复杂性E(x):解决问题x所需工作量对于两个问题p1和p2:1)如果C(p1)>C(p2)那么E(p1)>E(p2)问题越复杂解决问题所需要的花费更多2) C(p1+p2)>C(p1)+C(p2)因此E(p1+p2)>E(p1)+E(p2)将复杂问题分解成可以多个子问题分别解决会更加容易(模块化思想的依据)
模块化例:智能灌溉
误区:无限制地进行模块化分?
结论:适度的模块化
信息隐藏
模块独立(高内聚/低耦合)
模块独立的重要性
模块独立性的指标
内聚度的七个层次-1
内聚度的七个层次-2
耦合度的七个层次-1
耦合度的七个层次-2
模块独立性:高内聚低耦合
内容摘要
软件体系结构设计
体系结构发展过程-1
体系结构发展过程-2
软件体系结构风格
数据为中心体系结构
数据流风格的体系结构
调用和返回风格的体系结构
面向对象风格的体系结构
层次式风格的体系结构
评估可选的体系结构
ATAM(architecture trade-offanalysis method)1)定义应用场景(scenarios):通过usecase图来从用户的角度表现系统。2)得出需求、约束和环境描述:这是需求工程的一部分,用以确定所有客户方关心的问题都被列出。3)描述能处理上述情境和需求的体系结构风格。4)单独地评价系统的各项性能。针对体系结构设计的性能包括:可靠性,性能、安全性,可维护性,灵活性,可测试性,可移植性,可重用性和互操作性等。
ATAM(architecture trade-offanalysis method)5)针对不同的架构形式,评价第4步提到的这些性能的敏感程度。可以通过这样的方法来评价:在整个架构中做一些小的变更,分析并确定上诉性能有没有很敏感的变化。那些在体系结构改动中受到较大影响的性能被称为敏感点(sensitive point)。6)通过第5步的敏感度分析来评价第三步中提出的那些体系结构。SEI描述的方法如下:当一个架构的敏感点被确定,我们需要找到在系统中最需要权衡利弊的因素(trade-off point)。权衡因素就是指改变架构中的这项内容系统的很多性能就会发生敏感的变化。比如说,一个client-server结构的系统的表现性能和系统中server的数量是息息相关的(比如增加server的数量,一定程度上系统的表现性能就会提高)……这样的话,server的数量就是这个架构中的平衡点。
内容摘要
部件级设计技术
部件级设计技术在部件级设计阶段,主要完成如下工作:(1)为每个部件确定采用的算法,选择某种适当的工具表达算法的过程,编写部件的详细过程性描述;(2)确定每一部件内部使用的数据结构;(3)在部件级设计结束时,应该把上述结果写入部件级设计说明书,并且通过复审形成正式文档,作为下一阶段(编码阶段)的工作依据。
结构化程序设计方法
图形表示法
程序流程图
控制结构相互组合和嵌套的实例
N-S图
控制结构相互组合和嵌套的实例
PAD
PAD实例
判定表
不包含多分支结构的流程图实例
反映程序逻辑的判定表
设计性语言PDL
PDL的使用实例
PDL特点1.有固定的关键字外语法,提供全部结构化控制结构、数据说明和部件特征。属于外语法的关键字是有限的词汇集,它们能对PDL正文进行结构分割,使之变得易于理解。为了区别关键字,规定关键字一律大写,其它单词一律小写。2.内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。3.有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。4.有子程序定义与调用机制,用以表达各种方式的接口说明。
内容摘要
设计规约A.系统目标Ⅰ.工作范围B.运行环境C.主要软件需求D.设计约束∕限制A.数据流与控制流复审Ⅱ.体系结构设计B.导出的程序结构C.功能与程序交叉索引A.数据对象与形成的数据结构Ⅲ.数据设计B.文件和数据库结构ⅰ文件的逻辑结构ⅱ文件逻辑记录描述ⅲ访问方式C.全局数据D.文件∕数据与程序交叉索引A.人机界面规格说明Ⅳ.接口设计B.人机界面设计规则C.外部接口设计ⅰ外部数据接口ⅱ外部系统或设备接口D.内部接口设计规则
A.处理与算法描述Ⅴ.各部件的过程设计B.接口描述C.设计语言(或其它)描述D.使用的部件E.内部程序逻辑描述F.注释∕约束∕限制A.运行部件组合Ⅵ.运行设计B.运行控制规则C.运行时间安排A.出错处理信息Ⅶ.出错处理设计B.出错处理对策ⅰ设置后备ⅱ性能降级ⅲ恢复和再启动Ⅷ.安全保密设计Ⅸ.需求∕设计交叉索引A.测试方针Ⅹ.测试部分B.集成策略C.特殊考虑Ⅺ.特殊注解Ⅻ.附录
设计评审
设计评审的内容(续)5.技术清晰度:即确认该软件设计是否以一种易于翻译成代码的形式表达。6.可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护。7.质量:即确认该软件设计是否表现出良好的质量特征。8.各种选择方案:看是否考虑过其它方案,比较各种选择方案的标准是什么。9.限制:评估对该软件的限制是否现实,是否与需求一致。10.其它具体问题:对于文档、可测试性、设计过程等等进行评估。
设计评审
作业-1第三章需求工程后习题99.软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。注:可选择一个自己所了解的某个较小的软件系统,例如小型管理系统、你们所使用的选课系统、一个小型的网上购物网站、编译器原型等
作业-2第四章设计工程后习题33.为下面软件问题之一开发一个多层的设计抽象:a.消费者银行应用软件b.计算机图形应用软件的3维变换包c. BASIC语言解释器d.两个自由的机器人控制器e.你和你的导师同意的任何问题随着抽象层次的降低,你的注意力会逐步集中,这样在最后的层次中(源代码)只需要描述单个任务。注:可选择一个自己所了解的某个较小的软件系统,请结合框图等图形手段说明你的多层设计抽象4月14日课上交
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}