




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第7章 设计概念2设计nMitch Kapor,Lotus 1-2-3的创始人,在 Dr. Dobbs杂志上发表了“软件设计宣言”,他说:n良好的软件设计应该展示:n坚固:程序应该不含任何妨碍其功能的缺陷。n适用:程序应该符合开发的目标。 n愉悦:使用程序的体验应是愉快的。实现设计目标的途径n先实现多样化(获取所有方案和设计的原始资料,包括目录、教科书和头脑中的构件、构件方案和知识),然后再进行聚合。n汇聚信息后,挑选合适的元素,考虑取舍候选方案,然后聚合,使之成为“构件的某种特定的配置,从而创建最终的产品。These slides are designed to accompany So
2、ftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 34设计的任务n分析模型 设计模型 设计文档n回答How to do?n可以分为概要设计、详细设计n把分析阶段产生的软件需求分析说明转换为用适当手段表示的软件设计文档。需求分析设计用户需求需求分析规格说明过程设计接口设计体系结构数据设计5设计模型n数据设计n信息模型 软件数据结构n体系结构设计n定义软件部件间的关系n接口设计n软件内部、外部及与人之间的通信n构件级(过程)设计
3、n软件组件的过程性描述6分析模型- 设计模型Anal ysi s M odeluse- cases - t ext use- case di agr am s act i vi t y di agr am s swi m l ane di agr am sdat a f l ow di agr am s cont r ol - f l ow di agr am s pr ocessi ng nar r at i vesf fl lo ow w - -o or ri ie en nt te ed d e el le em m e en nt ts sb be eh ha av vi io or
4、ra al le el le em m e en nt ts sc cl la as ss s- -b ba as se ed de el le em m e en nt ts ss sc ce en na ar ri io o- -b ba as se ed de el le em m e en nt ts scl ass di agr am s anal ysi s packages CRC m odel s col l abor at i on di agr am s st at e di agr am s sequence di agr am sD D a at ta a/ /C Cl
5、 la as ss s D D e es si ig gn nA A r rc ch hi it te ec ct tu ur ra al l D D e es si ig gn nI In nt te er rf fa ac ce e D D e es si ig gn nC Co om m p po on ne en nt t- - L Le ev ve el l D D e es si ig gn nDesi gn Model基于场景的元素用例文本用例图活动图泳道图基于类的元素类图分析包CRC模型协作图行为元素状态图顺序图面向流的元素数据流图控制流图处理叙述设计模型数据/类设计体系结构设
6、计接口设计构件级设计分析模型数据/类设计n将类模型转化为设计类的实现以及软件实现所要求的数据结构。nCRC图中定义的对象和关系、类属性和其他表示法刻画的详细数据内容为数据设计活动提供了基础。These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 7体系结构设计n定义软件的主要构造元素之间的关系n可用于达到系统所定义的体系结构风格和设计模式n影响体系结
7、构实现方式的约束These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 8接口设计n描述了软件和协作系统之间、软件和使用人员之间是如何通信的n使用场景和行为模型为接口设计提供了所需的大量信息。These slides are designed to accompany Software Engineering: A Practitioners App
8、roach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 9构件级设计n将软件体系结构的构造元素变换为对软件构件的过程性描述。n从基于类的模型、流模型和行为模型获得的信息作为构件设计的基础These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 1011设计和质量n设
9、计必须实现所有包含在需求模型中的明确需求,而且必须满足利益相关者期望的所有隐含需求。n对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的、可理解的指南。n设计必须提供软件的全貌,从实现的角度说明数据域、功能域和行为域。12质量指导原则n设计应展示出这样一种结构:(a)已经使用可识别的体系结构风格或模式创建;(b)由展示出良好设计特征的构件构成;(c)能够以演化的方式实现,从而便于实现和测试。n对于更小的系统,设计有时可以线性开发。n设计应该模块化;也就是说,应将软件逻辑地划分为元素或子系统。n设计应该包含数据、体系结构、接口和构件的清晰表示。n设计应导出数据结构,这些
10、数据结构适用于要实现的类,并从可识别的数据模式提取。n设计应导出显示独立功能特征的构件。n设计应导出接口,这些接口降低了构件之间以及与外部环境连接的复杂性。n设计的导出应根据软件需求分析过程中获取的信息采用可重复的方法进行。n应使用能够有效传达其意义的表示法来表达设计。13设计原则n设计过程中不要有“井蛙之见”。n设计应起源于分析模型。n设计不要白费力气做重复工作。n在软件和真实世界的问题之间,设计应能“最小化知识距离” DAV95 。n设计应表现出一致性和集成性。n设计结构应适应变化。n即使遇到数据、事件或操作条件异常时,设计结构应能温和处理。n设计不是编码,编码不是设计。n创建设计时就应对
11、其质量进行评估,而不是创建之后。n评审设计以最小化概念上的(语义的)错误。来自来自 Davis DAV9514基本概念n抽象数据、过程、控制n体系结构软件的整个结构n模式已证实的解决方案的“精髓”n关注点分离任何复杂问题如果被分解为若干块,该复杂问题更容易地被处理。n模块化数据和功能的划分n信息隐蔽控制接口n功能独立专一的功能和低耦合n求精所有抽象精化的细节n方面一种理解全部需求如何影响设计的机制n重构一种简化设计的重新组织的技术n面向对象设计概念附录IIn设计类提供设计细节,使分析类得以实现15数据抽象实现为一个数据结构制造商模块数类型转动方向插入灯数量类型重量打开机制implemented
12、 as a data structure16过程抽象实现为一个“知识”对象,与进门有关implemented with a knowledge of the object that is associated with enter17体系结构结构特性。结构特性。外部功能特性。外部功能特性。相关系统族。相关系统族。18定义设计模式换句话说,换句话说,19模式20关注点分离n任何复杂问题如果被分解为可以独立解决和(或)优化的若干块,该复杂问题能够更容易地被处理。n一个关注点是一个特征或行为,被指定为软件需求模型的一部分。n通过将关注点分割为更小的关注点,使得解决一个问题需要付出更少的工作量和时间。
13、C (P1+P2)C (P1)+C (P2)E (P1+P2)E (P1)+E (P2) C为问题的复杂度,E为解题需要的工作量21模块化n“模块化是软件的单一属性,它使程序能被智能化地管理”Mye78。 n软件工程师难以掌握单块软件(即由一个单独模块构成的大程序) 。n其控制路径的数量、引用的跨度、变量的数量和整体的复杂度使得理解这样的软件几乎是不可能的。n几乎所有的情况下,为了理解更容易,都应当将设计划分成许多模块,这样做的结果,构建软件所需要的成本将会随之降低。22模块化: 权衡23模块化: 权衡模块数接口成本最小成本区M软件开发工作量总成本模块成本24信息隐藏25为什么要信息隐藏?n减
14、少“负效应”的可能性n限制全局影响局部的设计决策n强调通过控制接口通信n不提倡使用全局数据n导致封装高质量设计的属性n导致高质量软件26功能独立n通过开发具有“专一”功能和“避免”与其他模块过多的交互的模块,可以实现功能独立。模块的独立性有两条定性标准进行评估:n内聚性显示了某个模块相关功能的强度。n一个内聚的模块执行一个独立的任务,与程序的其他部分构件只需要很少的交互。简单地说,一个内聚的模块应该(理想情况下)只完成一件事情。n耦合性显示了模块间的相互依赖性。n耦合性依赖于模块之间的接口复杂性、引用或进入模块所在的点以及什么数据通过接口进行传递。模块的独立性高 n块内联系强 n块间联系弱 2
15、7内聚 弱 强低内聚中内聚高内聚 28七种内聚n偶然内聚偶然内聚模块内各元素间无实质性联系,功能无关;如:“读A”和“写B”等操作,就是被整合在一个模块中,供其他模块调用。n逻辑内聚逻辑内聚模块内各元素在逻辑上相似功能;如:两个逻辑上相似的两个功能放在同一个模块中,可以省去其中重复的部分。n时间内聚时间内聚模块内各元素在同一时间段内执行;如:变量初始化等,在同一时间内执行29七种内聚n过程内聚过程内聚模块内元素必须以特定次序执行;n通信内聚通信内聚模块内所有元素使用同一输入,产生同一输出;n顺序内聚顺序内聚模块内元素必须以特定次序执行,前者输出为后者输入;n功能内聚功能内聚模块内元素组成不可分
16、的整体,完成特定功能。30七种耦合n非直接耦合非直接耦合两模块间没有直接联系n数据耦合数据耦合通过数据参数访问另一模块n特征耦合特征耦合通过数据结构传递记录信息n控制耦合控制耦合通过控制参数或开关量来访问另一模块n外部耦合外部耦合一组模块访问同一全局简单变量n公共耦合公共耦合一组模块访问同一公共数据结构n内容耦合内容耦合一个模块直接转入另一模块内31逐步求精开门走向门伸向把手打开门;走进门关门一直重复直至门打开顺时针转动把手;If 把手不能转动,拿出钥匙; 找到正确的钥匙;插进锁孔;endif推/拉门移动脚步end 重复turn knob clockwise; find correct key
17、;endifpull/push doormove out of way;end repeatrepeat until door opensif knob doesnt turn, then insert in lock; take key out;openwalk to door;reach for knob;walk through;close door.open door;32测量模型:两种视角MODULEWhats inside?How big is it?里面是什么?它多大?模块33方面n考虑两个需求,A和B。“如果已经选择了一种软件分解 精化,在这种分解中,如果不考虑需求A的话,需求
18、B就不能得到满足” Ros04 ,那么需求A横切需求B。n方面是一个横切关注点的表示。34方面举例n考虑SafeHomeA 网站应用中的两个需求。通过用例Access camera surveillance via the Internet描述需求A,设计求精将集中于那些能够使注册用户通过放置在空间中的相机访问视频的规模。需求B是一个通过的安全需求,要求注册用户在使用SafeHomeA 之前必须先进行验证,改需求用于Safehome注册用户可使用的所有功能中。当设计求精开始的时候, A*是需求A的一个设计表示, B* 是需求B的一个设计表示。因此,A* 和B* 是关注点的表示,且B* 横切A*
19、 。n方面是一个横切关注点的表示,因此,需求“注册用户在使用SafehomeA之前必须先进行验证”的设计表示B* 是Safehome网站应用的一个方面。35重构nFowler FOW99 用下面的方式定义重构:n“重构是使用这样一种方式改变软件系统的过程:不改变代码设计的外部行为而是改进其内部结构。”n当重构软件时,检查现有设计:n冗余性n没有使用的设计元素n低效的或不必要的算法n拙劣的或不恰当的数据结构n其他设计不足,修改这些不足以获取更好的设计。36OO 设计概念n设计类n实体类n边界类n控制类n继承超类的所有特点立即被所有子类继承。n消息刺激接收对象产生某种行为n多态一种可以显著减少扩展
20、已存在的设计的特性37设计类n在设计时,分析类被精化变为实体类n边界类是在设计中创建接口被开发的(例如:交互式屏幕或打印报表),用户看到并与使用的软件交互。 n边界类的设计,其职责管理将实体对象呈现给用户的方式。n控制类被设计用来管理n实体对象的创建和更新;n边界对象的实例化,因为它们获得来自实体对象的信息;n对象集之间的复杂通信;n验证对象之间或用户与应用程序之间的数据通信。38设计模型p pr ro oc ce es ss s d di i m m e en ns si i o on narchi tecture el em entsi nterface el em entscom pon
21、ent-l evel el em entsdepl oym ent-l evel el em entsl owhi ghcl ass di agram s anal ysi s packages CRC m odel s col l aborati on di agram s use-cases - text use-case di agram s acti vi ty di agram s sw i m l ane di agram s col l aborati on di agram sdata fl ow di agram s control -fl ow di agram s pro
22、cessi ng narrati vesdata fl ow di agram s control -fl ow di agram s processi ng narrati vesstate di agram s sequence di agram sstate di agram s sequence di agram sdesi gn cl ass real i zati ons subsystem s col l aborati on di agram s desi gn cl ass real i zati ons subsystem s col l aborati on di agr
23、am s refi nem ents to:depl oym ent di agram scl ass di agram s anal ysi s packages CRC m odel s col l aborati on di agram s com ponent di agram s desi gn cl asses acti vi ty di agram s sequence di agram srefi nem ents to:com ponent di agram s desi gn cl asses acti vi ty di agram s sequence di agram
24、sdesi gn cl ass real i zati ons subsystem s col l aborati on di agram s com ponent di agram s desi gn cl asses acti vi ty di agram s sequence di agram sa an na al l y ys si i s s m m o od de el ld de es si i g gn n m m o od de el lRequi r em ents: constr ai nts i nter oper abi l i ty tar gets and co
25、nfi gur ati ontechni cal i nterface desi gn Navi gati on desi gn GUI desi gn 类图分析包CRC模型协作图数据流图控制流图处理过程描述分析模型高抽象维度设计模型低系统结构元素接口元素构件级元素部署级元素部署图需求约束交互操作目标和配置设计类实现子系统协作图构件图设计类活动图顺序图类图分析包CRC模型协作图数据流图控制流图处理过程描述状态图顺序图用例文本用例图活动图泳道图协作图状态图顺序图过程维度求精:构件图设计类活动图顺序图构件图设计类活动图顺序图技术接口设计导航设计图形用户界面设计求精:设计类的实现子系统协作图设计类实现子系统协作图39设计模型元素n数据元素n数据模型- 数据结构n数据模型- 数据库体系结构n体系结构元素n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025公寓单元转让合同样本
- 2025二手汽车买卖合同协议书
- 2025物业管理员的劳动合同
- 梅竹言志的文化解读
- 普通心理学(第2版)课件 第七章 思维
- 人教版小学一年级语文上册期末考试题
- 新质生产力绿色
- 电力AI系列报告三:AI服务器电源乘势而起252mb
- 山东省济宁市兖州区2024-2025学年高一下学期期中考试历史试题(含答案)
- 某电子集团王牌彩电推广策略
- 大学生创业计划书word文档(三篇)
- 土工织物防护施工
- 生产性服务业集聚对城市产业结构优化的影响共3篇
- 施工单位考察记录表
- YY/T 1244-2014体外诊断试剂用纯化水
- GB/T 26192-2010双向拉伸聚丙烯可涂覆合成纸薄膜
- GB/T 2546.1-2006塑料聚丙烯(PP)模塑和挤出材料第1部分:命名系统和分类基础
- GB/T 17702-2021电力电子电容器
- GB/T 17215.421-2008交流测量费率和负荷控制第21部分:时间开关的特殊要求
- 保洁员日常工作记录表
- 水利工程房屋建筑工程外观质量评定标准
评论
0/150
提交评论