欢迎来到天天文库
浏览记录
ID:57180124
大小:171.00 KB
页数:49页
时间:2020-08-02
《软件工程 第五章 软件设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章软件设计内容软件设计的原则和过程用Java进行面向对象设计软体系结构要素模式设计方法软体系结构建模用UML进行软体系结构的描述软件设计知识域主题的本体结构软件设计质量的分析和评估软件设计符号软件设计策略方法软件结构与体系结构软件设计关键问题软件设计基础一般设计概念软件设计上下文软件设计过程使能技术并发性事件的控制与处理组件分布错误与异常处理、容错体系结构与视点体系结构风格(宏观体系结构模式)质量属性质量分析和评价技术度量结构描述(静态视图)行为描述(动态视图)一般策略面向工程的(结构化)设计面向对象的设计数据结构为中心的设计基于组件的设计交互与表现数据持久性设计模
2、式(微观体系结构模式)程序和框架族其它方法软件设计软件设计十大原则(Davis)隧道视野原则分析模型原则模式复用原则智力差距原则集成原则可修改性原则可靠性原则抽象级别原则评估质量原则系统性原则软件设计十大原则困难原则需求原则文档原则复用原则理解应用原则避免例外原则概念完整原则适应性原则优秀人员原则可靠性原则“类森林”图ABDECFGPQTURVS类提供4个级别的可见性公有可见性(Public)私有可见性(Private)保护可见性(Protected)友类可见性(Friend)图书馆系统的用况图读者馆员借书还书添加书馆员删除书添加借阅者更新借阅者场景读者找到一本要借的书
3、,交给图书馆馆员图书馆馆员在图书馆系统中识别出读者图书馆馆员在图书馆系统中识别出那本书图书馆馆员通过图书馆系统将书借给读者图书馆系统记录下这次借阅对象发现检查清单检查问题空间,同时查看顾客提供的所有图片资料检查其他用要与正在建模的系统进行通信或互操作的系统检查将存在于环境中并与系统实现互操作的物理设备,不管用来实现系统本身的技术是什么检查系统必须记录并长期保存的事件检查与系统交互的不同的人所扮演的角色检查可能与系统相关的物理或地理位置检查可能与系统相关的组织单位(部门、分部等)评估对象的客观标准每个对象都应该有一些数据。如果候选对象只有一个属性,可能它应该作为其他对象的
4、一个属性,而不是一个新的对象。因为每个对象都需要做一些事来证明它的存在,所以应该能够为候选对象识别出一个或多个方法。在分析阶段,候选对象的功能和目的应该独立于用来实现系统的硬件和软件技术。所建议的类的所有属性都应该适用于该类的所有对象很多“气味”导致程序需要进行重构的,也适合于设计阶段。CRC卡类名职责协作类发现对象属性作为一个X对象,我是如何被描述的?我在这个问题城里是怎样描述的?我需要长期记住的状态信息是什么?作为类X的—个成员,我可以处在什么状态?名字选择的建议遵循例6.1描述的Java命名传统,特别要注意字母大小写;类名应该使用常用的名字短语,诸如Color或S
5、ensor等;对象(引用对象的Java变量)的命名应该表明它们是有标识的特定实例,诸如theDoorSensor、foregroundColor、listOfSensors等;修改对象状态的方法或导致对象做某事的方法,应该使用主动的动词短语,诸如drawShape或者setColor等;返回状态信息的方法名应该表明它的结果,或者使用某种形式的be动词,诸如getColor或isColor等。图书馆系统的时序图aReaderaLibrariantheLibraryborrow(name,title)findReader(name)returntheReaderfindBo
6、ok(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
7、+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+getCo
此文档下载收益归作者所有