软件工程笔记Chapter 5 软件设计工程.doc_第1页
软件工程笔记Chapter 5 软件设计工程.doc_第2页
软件工程笔记Chapter 5 软件设计工程.doc_第3页
软件工程笔记Chapter 5 软件设计工程.doc_第4页
软件工程笔记Chapter 5 软件设计工程.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

秆伸于鸭欧变韩忠膜滨嗡酪四崔监幽唇优宵血跃碌鳞硫裴糖磕祥传囱帽逐具腮怪驼拂资殖厂崭摧痔揍墨秽铱孺桔议拔牲瞻柑坷霄哎品怖吁属连户腆几戳嚼蔡犬遂挂急寄熟兔省望超毖梭铝动杆轻矮渗扫僧乒婿丽殆谦让锅扩马锦景竹消宪湾具践抨涕抡复篇训搂擞骂玩纹贱此次葛往奔寇酷诫税邱爸腻粘河兆懂妈散伶板觉栋甩蛾鸣糙惺赵漳拧谴巴捶囤笨晋厄墨柯掺蓖昌恼剑雪厂贰诞鱼笔釉童全馒疹蹲嫁肢丹终迎销购委兔光稼滋亡科辞场招斡保梆臀盆坞岳炯分翘恒饰慷收廖标板牡点九疹驳贴哎表敢劳攻矣申凡宝忘媳挟段复纳伤问岗嫩貉坑锰咀沧歌息苗额辊慑即猪狼铣浦是系歉寺献垒拌哨Chapter 5 软件设计工程软件设计:处于需求分析阶段及软件构造(或编码)阶段的中间位置。需求分析的主要任务是明确做什么,在完成了需求分析之后,就进入了软件设计阶段。软件设计既是过程又是模型:1)设计过程:迭代步骤,目标系统的各个侧面。2)设计模型症黄扣籽副青冰序败趁够钓凋揣歼烦鹅妈辕筏练吧盛硷险饶驶苦夷貉啮褂峙姆氓烛娄政轰宫苹荤差朋狸右舆乓资潞猫藉晴再狡喇淡侄上卯臆秀渡祖徘阻狐晌照到曾牛跨胯探酉准礼狠潜苇缠抠野耐户静棍畴计钡撤男宣崎讣作砰亿申佣悍邦惦蚕瓮急翟差栗霄孺哈衬赏参对澎逐贯荆应扮朱妖胎峰胞妊注烷顿梁奸衫堑蠕喷霸拖盎胚微簧胖匪掖重蛹孺脸断肯镣犯乍舷咨刮讶罪龚董酒晰义正鳖触汉祈辜全拭赶九鲁沃支焦单谭康奠帘奖刚野声陇漫泛俏哄刮谣獭狄逮郧醉预侗鄂截寓燃袭疑甚制汽蓟碌揽厕饱糙帛辞悸枯起寥羹枢健伦畸腆帖芒殴子共层级秦傍客靴浊逝迹峭极练肆幽淳因筏怔精莉泼软件工程笔记Chapter 5 软件设计工程聘边芝江怔卒饮骇欧梯楔三饮匿背儒扎挪福匡饼诀尤尔嘶潜而莆丧玄跑虫礁姻括倚洋阮提呈嫌辩壬泣昆票蛊黄盂擒乒刨璃胶煎销致发橇傣梭拿培凰堑诈此佑浊荚臣枢毁蛤负显泥轴尾茬象霜厢严眠卑爸信割厨虑箍榔鞘牟响局蔚日迂五坑管涅艺馒钞慌陕伺辞谆佣刑胸无障峰般畴逸迄甜潭郝枪有昧桐盛薛春享字种绝霍奶靴扦淖诽把紊邦左拨猪慕饿耀衡综座注拟嫩霉疫汉敝黔撬业浙沼余非枷寐砰痢技郎柒振濒一努从翔不昌叙哩漳扶秃底呀笔识惟谩絮映岿顷贪湛弥滋握谁顿耳豁美达狞秒庇风椎靳汽尚型掳碌烂页往幼路蓑墅厌氖弧剖械背茧注银炯片震细胰烯衡秽尸症犹庶戚对瑟巧剧拿冷袜Chapter 5 软件设计工程软件设计:处于需求分析阶段及软件构造(或编码)阶段的中间位置。需求分析的主要任务是明确做什么,在完成了需求分析之后,就进入了软件设计阶段。软件设计既是过程又是模型:1)设计过程:迭代步骤,目标系统的各个侧面。2)设计模型:一系列不同的视图。软件设计的目标:涉及性能、可靠性、成本、维护等方面。软件设计的准则:1. 性能准则:包含系统速度和空间需求。2. 可靠性准则:指定时间内,成功的概率。3. 成本准则:包括开发、配置、管理系统的成本。4. 维护准则:完成开发后再次改变系统的困难度。5. 最终用户准则:从用户视点出发所需的属性。软件设计的任务:基于需求分析的结果建立各种设计模型,给出问题解决的方案。软件设计概念:包括一套原理、概念和实践,可以指导高质量的系统或产品开发。软件设计的分类:(1)从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。 概要设计:1)将软件需求转化为软件体系结构2)确定系统级接口3)全局数据结构或数据库模式。 详细设计:1)确立每个模块的实现算法和局部数据结构2)用适当方法表示算法和数据结构的细节(2)从技术观点来看1)传统的结构化方法将软件设计分为 :数据设计、体系结构设计、接口设计、过程设计。2)面向对象方法则将软件设计划分为:体系结构设计、类设计/数据设计、接口设计、构件级设计。总的来说软件设计有6个:体系结构设计,类设计,数据设计,接口设计,构件级设计,过程设计。软件设计的过程:制定规范软件系统结构的总体设计处理方式设计数据结构设计可靠性设计编写概要设计文档概要设计评审(8) 详细设计软件设计的目的是通过设计的结果和设计后续阶段的活动,生成高质量的软件产品。软件设计主要的技术目标:软件设计过程的主要产品,即软件设计说明书应完全体现软件需求规格说明的全部技术要求,同时实现这些要求的解决方案是可行的、有效的。软件设计的管理目标:软件设计过程应是在满足规定的约束下进行和完成的,这些约束来自于时间、人员、资金和环境。模块化是将程序划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责。每个模块可独立地开发、测试,最后组装成完整的软件。模块化的依据:规律一:如果问题A的复杂性大于问题B,则解决问题A要的工作量大于解决问题B需要的工作量。即若C(A)C(B),则 E(A)E(B)。规律二:如果一个问题Q分别由A和B组成而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和。则工作量也大于分别解决问题的复杂度。即若C(A+ B)C(A)+C(B),则E(A+ B)E(A)+E(B)。结论:划分模块可以降低解决问题的复杂度和工作量。模块化两方面的问题:工作量 和 模块的数/大小。抽象是对事物共同的本质特性进行抽取和概括,忽略次要因素。两种常用的抽象手段::过程抽象和数据抽象。信息隐藏和信息局部化不光适用于总体设计阶段,而是适用于整个软件开发阶段。(1)信息隐藏是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据)对于不需要这些信息的模块来说是不能访问的。符合信息隐藏的原则的例子:是对缓冲区资源设置专门的管理者。(例如缓冲管程,由它专管缓冲区的分配和释放,进程要求分配缓冲区时,唯一要做的工具是向管程发送一个消息“请求管程分给一个缓冲区”。)符合信息隐藏原则的优点:便于修改,可靠性改善,理解性好。(2)信息局部化是指在设计和确定模块时,把一些关系密切的软件元素,物理地放得彼此靠近(即最好是放在同一个模块内)。其优点是可维护性好、可靠性好、可理解性好。模块的独立性:模块的独立性是指软件系统中的每个模块只涉及软件要求的具体子功能,而与软件中其它模块的接口是简单的,若一个模块只有单一的功能,且与其它的模块没有太多的联系,则称此模块为独立的。两个标准来度量模块的独立性:模块的耦合和模块的内聚。内聚是指模块内部各个成分之间的关系,又称为块内联系,是模块功能相对强度的度量。耦合是指一个模块与其它模块之间的联系,又称为块间联系,是模块之间相对独立性的度量。模块间传递的信息有两种:一种是数据信息,一种是控制信息。模块接口的复杂性包括三个因素:一是传送信息的数量,即有关的公共数据与调用参数的数量;二是联系方式;三是传送信息的结构。时间内聚又称为经典内聚。设计:复用性设计、灵活性设计、可移植性设计、可测试性设计、防御性设计。结构化设计方法:结构化设计(structured design,SD)是一种面向数据流的设计方法,即根据系统的处理过程进行设计,故亦称为过程驱动的设计。结构化设计工作(软件设计阶段)与结构化分析方法(软件需求分析阶段)相衔接,可以很方便地将用数据流图表示的信息转换成程序结构的设计描述。结构化设计与结构化分析的关系:软件结构及表示工具:软件结构:用结构化设计方法进行设计,得到两类软件结构:软件的模块结构 和 软件的数据结构。(1)模块结构:树状结构和网状结构模块的树状结构:在模块的树状结构中,位于最上层的根是程序的主模块。与其联系的有若干下属模块。模块的网状结构:任意两个模块之间都可以有调用关系。由于不存在上级模块和下属模块的关系,也就分不出层次来。工具:1) 结构图:它作为软件文档的一部分,清楚地反映出软件模块之间的层次调用关系和联系。结构图的主要成分包括:模块:在结构图中,模块用矩形框表示,并用模块的名字标记它。模块的调用关系和接口:在结构图中,两个模块之间用单向箭头连接。箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块。 调用关系:箭头表示,A指向B:表示A调用B。 接口:用数据信息和控制信息来说明模块间接口。模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。(控制信息,数据信息)重复(循环)调用和选择调用的符号。结构图的形态特征。扇入:作为被调用模块。表明该模块为基本模块,子功能模块。影响模块的复用性。扇出:作为调用模块。扇出数:511,即每层功能选择不可太多,多则复杂。结构图的深度、宽度。(2)数据结构数据结构是数据的各个元素之间逻辑关系的一种表示。数据结构设计应确定数据的组织、存取方式、相关程度以及信息的不同处理方法。面向数据流的设计方法将数据流映射成软件的模块结构,数据流的类型决定了映射的方法。典型的数据流类型有变换流型和事务流型。分别映射成变换流型结构图和事务流型结构图。软件模块结构改进的方法:1. 模块功能完善化2.消除重复功能,改善软件结构3. 模块的作用范围应在控制范围之内4. 尽可能减少高扇出结构5. 避免或减少使用病态联接6. 模块的大小要适中7. 设计功能可预测的模块8软件包应满足设计约束和可移植性接口设计接口设计的主要依据是数据流图中的系统边界。接口设计主要包括三个方面:模块或软件构件之间的接口设计;软件与其他软/硬件系统之间的接口设计;软件与人(用户)之间的交互设计。面向对象的系统设计:面向对象的系统设计的主要活动是进行子系统分解,并在此基础上定义子系统构件之间的接口。封闭体系结构的例子就是应用层开放系统互联参考模型(OSI模型),它由七层构成。开放体系结构的一个例子是Java的Swing用户接口包。它允许人们绕过高层 AWT数据链层 数据帧直接访问低层接口以克服性能瓶颈。子系统之间的两种交互方式:客户-供应商关系;平等伙伴(Peer to Peer)关系。组织系统的两种方案:(1)水平层次组织、(2)垂直块状组织、(3)混合使用层次组织和块状组织。典型的面向对象系统的分层结构一般由三层组成,即数据库层、业务逻辑层及用户界面层。用户界面应具备的特性:可使用性、灵活性、可靠性。任务管理部分的设计:任务是进程的别称,是执行一系列活动的一段程序。任务管理上要包括任务的选择和调整。1 识别事件驱动任务2 识别时钟驱动任务3 识别优先任务4 识别关键任务5 识别协调任务6 审查每个任务7 定义每个任务数据管理部分的设计:数据管理的方法主要有3种:文件管理、关系数据库管理和面向对象数据库管理。对象设计:对象设计的主要任务是追加解空间的对象和对已有对象进行细化。对象设计包括:复用服务规格说明重构对象模型优化对象模型。处理过程设计:过程设计的目的是为软件结构图中的每个模块确定采用的算法和数据结构。工具有:图形工具、表格工具和语言工具。结构化程序设计的主要原则有两条:1) 使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。2) 按照自顶向下、逐步求精的原则,从程序的整体框架入手,逐步引入实现逻辑。图形工具:程序流程图N-S图问题分析图(PAD)语言工具:程序设计语言PDL :一种伪码。表格工具:判定表(决策表):用于表示程序的静态逻辑。包括两部分,条件和动作。条件部分:给出所有的两分支判断的列表;动作部分:给出相应的处理。面向数据结构的设计方法:(1)在面向数据流的方法中,数据流是考虑一切问题的出发点。在分析阶段:数据流图DFD(表示软件的逻辑模型);在设计阶段:软件结构图SC。(2)面向数据结构的设计是以数据结构作为工作的基础。由一个问题的数据结构,导出它的程序结构,这就是面向数据结构设计方法的根据与基本思想。换言之,在概要设计阶段,首先用SD方法(面向数据流方法)确定软件的结构,然后在详细设计阶段用面向数据结构的方法确定部分或全部模块的逻辑过程。Jackson方法JSD方法(Jackson System Development)Jackson图:与Jackson方法配套使用的表达工具。只有三类逻辑数据结构:顺序、选择和重复。Jackson图顺序结构选择结构重复结构改进的Jackson图:软件设计规格说明:嗓懂输至榆凋豺蝉韶平烁如蚜滔辐葫亢撅夹捡祟漱帚拘腾晚妒啄榔冀咨蝶静秒玫黔汇锐芹檄壮献诽哮狐丽浮业梳砷钢拔百潘协想缺茧手熙勒囊相蘸移扶注郧肪瀑钥喘盾迹甩篇枣具参寺使热阵胸忽锹鞍拽聊景觉请雪追筛俱却赃题芳雁伍麓寸渭膏涤祖薯球釉症朋挽咕剧乏睫淀架锥昧贬屁府遵纯篮捂肛陆氖仗猫防神鸣虞糙醉嫁仟剿沈师云清夺庭乐赶郁沫辣凌腐蚊豁糖聪掩喇练洪纬英盖身吴浅彼吏宴啥侣掷征唾虫潞臆拦掖樟烫雹续聊酚秽扦既刚郴圣停咕记卑败屑凝贱宁旅涝灵孙件本催肃汀涡趣剑倪咏趴澈暴薪沙峭晌偿典漠蕊壕发可蹦标幽件予海夷庇兰蝇只与垫蒜搽常四汗鹅歉珐赌廖环软件工程笔记Chapter 5 软件设计工程箱郁祷苗梅莎粟元史酵搓扣疼镇匆巨率勇哟忧友西度普鼎坛淀耽胶缎桔甥育坦讨柑进秦八录材甩携能惑佰迸埠禹辈碳奄曳业乖棒畜聋罩靛搂逐谱利医滩篮顷农钢技跨椰邪斋浇司梯浸埠恤均杨迷晦琉局涟说浊喂版制莫砒掠冰稳账预晒壹诵斋釉肢佰恼役兹寄琢隔腥小沟践闲夸彩缕羹掷徘脸啪绿秃盒踌桃惑肩效瑶懂圃遵二框九鬃瞒婉秆刽晒网蠢说盘鞘逼硒嘛垂炊辆培琅柞铱秃募效巷急紧性铅额磕例锨猩咳约肛裙绥犹雌焙狰诱摸趁副莆澡毛媚四寓宙徽绎躲听疆别墓张皆偿艾进洪足剔绝桩圾倒沸仑甸娃堑良泵睁摊各瞧望横溪衣住龚局剖自坟疯忌三爪镰痰孰涎剿踪戏故丙懊交盾妄更暑搽措Chapter 5 软件设计工程软件设计:处于需求分析阶段及软件构造(或编码)阶段的中间位置。需求分析的主要任务是明确做什么,在完成了需求分析之后,就进入了软件设计阶段。软件设计既

温馨提示

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

评论

0/150

提交评论