软件工程课件 5_第1页
软件工程课件 5_第2页
软件工程课件 5_第3页
软件工程课件 5_第4页
软件工程课件 5_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第五章软件设计

内容软件设计的原则和过程用Java进行面向对象设计软体系结构要素模式设计方法软体系结构建模用UML进行软体系结构的描述软件设计知识域主题的本体结构

软件设计质量的分析和评估软件设计符号软件设计策略方法软件结构与体系结构软件设计关键问题软件设计基础一般设计概念软件设计上下文软件设计过程使能技术并发性事件的控制与处理组件分布错误与异常处理、容错体系结构与视点体系结构风格(宏观体系结构模式)质量属性质量分析和评价技术度量结构描述(静态视图)行为描述(动态视图)一般策略面向工程的(结构化)设计面向对象的设计数据结构为中心的设计基于组件的设计交互与表现数据持久性设计模式(微观体系结构模式)程序和框架族其它方法软件设计软件设计十大原则(Davis)隧道视野原则分析模型原则模式复用原则智力差距原则集成原则可修改性原则可靠性原则抽象级别原则评估质量原则系统性原则软件设计十大原则困难原则需求原则文档原则复用原则理解应用原则避免例外原则概念完整原则适应性原则优秀人员原则可靠性原则“类森林”图

ABDECFGPQTURVS类提供4个级别的可见性

公有可见性(Public)私有可见性(Private)保护可见性(Protected)友类可见性(Friend)图书馆系统的用况图

读者馆员借书还书添加书馆员删除书添加借阅者更新借阅者场景读者找到一本要借的书,交给图书馆馆员图书馆馆员在图书馆系统中识别出读者图书馆馆员在图书馆系统中识别出那本书图书馆馆员通过图书馆系统将书借给读者图书馆系统记录下这次借阅对象发现检查清单检查问题空间,同时查看顾客提供的所有图片资料检查其他用要与正在建模的系统进行通信或互操作的系统检查将存在于环境中并与系统实现互操作的物理设备,不管用来实现系统本身的技术是什么检查系统必须记录并长期保存的事件检查与系统交互的不同的人所扮演的角色检查可能与系统相关的物理或地理位置检查可能与系统相关的组织单位(部门、分部等)评估对象的客观标准每个对象都应该有一些数据。如果候选对象只有一个属性,可能它应该作为其他对象的一个属性,而不是一个新的对象。因为每个对象都需要做一些事来证明它的存在,所以应该能够为候选对象识别出一个或多个方法。在分析阶段,候选对象的功能和目的应该独立于用来实现系统的硬件和软件技术。所建议的类的所有属性都应该适用于该类的所有对象很多“气味”导致程序需要进行重构的,也适合于设计阶段。

CRC卡

类名职责协作类发现对象属性作为一个X对象,我是如何被描述的?我在这个问题城里是怎样描述的?我需要长期记住的状态信息是什么?作为类X的—个成员,我可以处在什么状态?名字选择的建议

遵循例6.1描述的Java命名传统,特别要注意字母大小写;类名应该使用常用的名字短语,诸如Color或Sensor等;对象(引用对象的Java变量)的命名应该表明它们是有标识的特定实例,诸如theDoorSensor、foregroundColor、listOfSensors等;修改对象状态的方法或导致对象做某事的方法,应该使用主动的动词短语,诸如drawShape或者setColor等;返回状态信息的方法名应该表明它的结果,或者使用某种形式的be动词,诸如getColor或isColor等。

图书馆系统的时序图

aReaderaLibrariantheLibraryborrow(name,title)findReader(name)returntheReaderfindBook(title)returntheBookborrow(theReader,theBook)returnokreturnokABorrowingcreate()add(theReader)add(theBook)findReader(name)*findBook(title)Shape抽象类图

CircleRectangleShapeCircle类和Rectangle类从Shape类派生出来

-radius:doubleCircle+area():double+Circle(org:Point,rad:double)+Circle()+getRadius():double+perimeter():double+setRadius(r:double):void-height:double-wedth:doubleRectangle+area():double+getH():double+getW():double+perimeter():double+Rectangle(org:Point,h:double,w:double)+Rectangle()+setHW(h:double,w:double):void-color:Color-origin:PointShape+area():double+getColor():Color+getOrigin():Point+perimeter():double+setColor(col:Color):void+setOrigin(org:Point):void#Shape(col:Color,org:Point)#Shape()#Shape(org:Point)从整体上把握

理解问题理解目标环境从对象角度来思考获得帮助封装

最大化封装最小化耦合分离GUI设计类

类需要有一个目的类与属性关联与继承类不能什么事都做继承

是测试将属性和操作尽可能向上移别把属性和方法移到太高的位置发现超类通用指南

名字重要一次做一件事不要重新发明轮子不会一次就搞定简洁性您的软件不会消失参数化类的UML图标

LivingThing类是一个参数化类

带参数的类LivingThing隐式绑定的表示法

三类设计模式创建型模式(CreationalPattern)结构型模式(StructuralPattern)行为模式(BehavioralPattern)设计模式四要素

为了便于用文字描述而对模式所起的名称(Name)该模式所能解决的问题(Problem)说明如何解决问题以及模式中的对象或类之间如何协作的解决方案(Solution)运用模式所产生的后果(Consequence)职责链模式的结构

特定于餐馆领域的职责链设计模式

用参数化协作来表示特定于餐馆领域的职责链设计模式

IE打开Web页时的职责链模式

用参数化协作表示的IE打开Web页时的职责链模式

ComputeFib(n)操作的活动图,即计算Fibnacci数列的第n个数

数列计算器模式的类结构

数列计算器模式中对象之间的交互

计算三角数的参数化协作

计算阶乘的参数化协作

软件体系结构的元模型

软件体系结构软件体系结构描述体系结构设计过程体系结构风格向导逻辑视图过程视图实现视图部署视图用例视图体系结构风格体系结构模板需求系统结构体系结构蓝图窗体连接组件约束约束满意是一个…关系到产生描述组成体系结构视图有确定软件体系结构的建模空间与要素

软件体系结构的建模过程应考虑以下三点:与系统需求分析和设计的关系;软件体系结构自身建模的阶段和步骤;软件体系结构风格的选择、模型的分类和构件的组装及以上要素的描述过程。软件体系结构模型的分类:软件体系结构的模型从总体上可划分为静态模型和动态模型,不同人员从不同的角度在不同的生命周期观察体系结构所获得的模型视图也不尽相同,所以要从不同的视角建立模型,全面地反映系统的总体结构、行为、用法、功能、性能、复用、过程和可理解性等体系结构关注的内容。软件体系结构的描述:涉及对风格、模型和各构造要素的描述,包括非形式化描述和形式化描述。"4十1”模型

过程视角开发视角逻辑视角物理视角场景视角最终用户:功能需求编程人员:软件管理系统集成人员:性能可扩充性、吞吐量等系统工程人员:系统拓扑、安装、通信等软件体系结构的生命周期模型

体系结构的非形式化描述体系结构的性质分析体系结构的规范描述体系结构的终结体系结构提供、评价和度量体系结构的演化体系结构的实施体系结构的求精验证体系结构的求精体系结构的形式化基础需要演化或扩展否需要求精否yesnonoyes建立软件体系结构模型的三步骤

软件体系结构的非形式化描述软件体系结构的规范描述和分析软件体系结构的求精及其验证使用UML描述软件体系结构(1)用例视图由专门描述可被最终用户、分析人员和测试人员看到的系统行为的用例组成,它描述了形成系统体系结构的动力;逻辑视图包含了类、接口和协作,这些视图主要支持系统的功能需求,即系统最终提供给用户的服务;过程视图包含了形成系统并发与同步机制的线程和进程,主要针对性能、可延展性和系统的吞吐量,侧重于描述进程的主动类;实现视图包含了用于装配与发布物理系统的构成和文件:部署视图包含了形成系统硬件拓扑结构的节点,描述组成物理系统部件的分布、交付和安装。使用UML描述软件体系结构(2)Hofmeister等人讨论了一种使用UML的构造类型类(stereotypedclasses)、包、构件、结合关联和依赖,对软件体系结构的概念、模块、执行和代码四种视图模型进行描述的方法。使用UML描述软件体系结构(3)类和对象:用UML类表示构件类型,用UML对象表示构件实例②类和类:用UML类表示构件类型(可能使用构造类型),构件实例也是UML类来表示UML构件:用UML构件作为构件类型,并用UML构件作为构件实例子系统:用UML子系统作为构件类型,用子系统实例作为构件实例。

要点软件设计在软件开发中起着重要作用:它让软件工程师产生形成要实现的方案的蓝图的各种不同的模型,我们可以分析和评价这些模型,以确定使用它们能否实现各种不同的需求,我们可以检查和评价各种不同的候选方案,进行权衡,最后,除了作为构造和测试的输入和起始点外,我们可以使用作为结果的模型,来规划后续的开发活动。

要点本章从软件体系结构的元模型入手,分析了软件体系结构模型的内涵,确定了软件体系结构的建模空间和要素,指出软件体系结构建模应涉及到过程、构造元素、风格、模型分类、描述等各个方面,这些要素在软件体系结构的建模空间中相互作用和关联。接着探讨了软件体系结构在软件开发中的地位、软件体系结构的建模过程和软件体系结构的描述方法。使用设计模式具有很多优点。可以让设计者容易地重用已经被证明过的问题解方案,在设计中引入好的设计思想,并可以使文档的编制更加简化和清晰。

相关中国系统分析员论文题目论图形用户界面技术(1993)论数据仓库的设计与实现(2002)相关世界软件工程大会论文Efficientexplorationofservice-orientedarchitecturesusingaspectsHelpingusersavoidbugsinGUIapplicat

温馨提示

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

评论

0/150

提交评论