版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程软件工程1 1软件工程软件工程第十章第十章 构件级设计建模构件级设计建模101010.2 10.2 设计基于类的构件设计基于类的构件10.3 10.3 实施构件级设计实施构件级设计10.4 10.4 对象约束语言对象约束语言10.5 10.5 设计传统构件设计传统构件 软件工程软件工程2 2nOMG UML规范:系统中某一定型化的、可配规范:系统中某一定型化的、可配置的和可替换的部件,该部件封装实现并暴露一置的和可替换的部件,该部件封装实现并暴露一系列接口。系列接口。n面向对象的观点:一个互相协作的面向对象的观点:一个互相协作的类类的集合。的集合。10.1 10.1 什么是构件什么是构
2、件P rin tJo bc o m p u te Jo bin itia te Jo bnum berO fPages num berO fSi des paperType paperW ei ght paperSi ze paperC ol or m agni fi cati on col orRequi rem ents producti onFeatures col l ati onO pti ons bi ndi ngO pti ons coverStock bl eed pri ori ty total JobC ost W O num ber P ri n tJ o bcom pu
3、tePageC ost() com putePaperC ost () com puteProdC ost () com puteTotal JobC ost() bui l dW orkO rder() checkPri ori ty () passJobto Producti on() e l a b o ra te d d e s i g n c l a s s co m p u teJo bcom putePageC ost () com putePaperC ost () com puteProdC ost () com puteTotal JobC ost () i n i ti
4、ateJo bbui l dW orkO rder() checkPri ori ty () passJobto Producti on()d e sig n c o m p o n e n tn u m b e rO fP a g e s n u m b e rO fS id e s p a p e rT y p e m a g n ific a tio n p ro d u c tio n F e a tu re sP rin tJo bc o m p u te Jo b C o st() p a ssJo b to P rin te r() a n a ly sis c la ss软件工
5、程软件工程3 3什么是构件n传统观点:程序的功能要素,程序由处理逻辑、实现处理逻辑所需的内部数据结构、能够保证构件被调用和实现数据传递的接口构成。n承担的重要角色:n控制构件n问题域构件n基础设施构件C o m p utePag eC o std esi g n co m p o nentaccessC o stsD Bg etJo b D atael ab o rated m o d ul ePag eC o sti n: job si ze i n: col or= 1 , 2 , 3 , 4 i n: pageSi ze = A , B , C , B out: B PC out: SF
6、 i n: num berPages i n: num berD ocs i n: si des= 1 , 2 i n: col or= 1 , 2 , 3 , 4 i n: page si ze = A , B , C , B out: page cost jo b si ze (JS ) = n u m b e rP ag e s * n u m b e rD o cs;l o o ku p b ase p ag e co st (B P C ) - acce ssC o stsD B (JS , co l o r); l o o ku p si ze facto r ( S F) - a
7、cce ssC o stD B (JS , co l o r, si ze ) jo b co m p l e xi ty facto r ( JC F) = 1 + (si d e s-1 )* si d e C o st + S Fp ag e co st = B P C * JC F g e tJo b D ata (n u m b e rP ag e s, n u m b e rD o cs, si d e s, co l o r, p ag e S i ze , p ag e C o st)acce ssC o stsD B (jo b S i ze , co l o r, p ag
8、 e S i ze , B P C , S F )co m p u te P ag e C o st ()软件工程软件工程4 4什么是构件n过程相关的观点:强调使用已有的构件来构造系统,复用的思想。软件工程软件工程5 510.2 设计基于类的构件基本设计原则n开关原则:构件应该对外延具有开放性,对修改具有封闭性。软件工程软件工程6 6基本设计原则nLiskov替换原则:子类可以替换它们的基类;n依赖倒置原则:依赖于抽象,而非具体实现;n接口分离原则:多个用户专用接口比一个通用接口要好;软件工程软件工程7 7基本设计原则打包原则(构件如何打包):n发布复用等价性原则:复用的粒度就是发布的粒度;n
9、共同封装原则:一同变更的类应该合在一起;n共同复用原则:不能一起复用的类不能被分到一组;软件工程软件工程8 810.3 实施构件级设计n步骤1:标识出所有和问题域相对应的设计类;n步骤2:确定所有与基础设施域相对应的设计类;n步骤3:细化所有不能作为复用构件的设计类;n步骤4:说明持久数据源(数据库和文件)并确定管理数据源所需要的类;n步骤5:开发并且细化构件的行为表示。n步骤6:细化部署图以提供额外的实现细节;n步骤7:考虑每一个构件级设计表示,并且时刻考虑其他选择。buildingJobD ataentry/readJobD ata () exit/displayJobD ata () d
10、o/checkC onsistency() include/dataInputentry/com puteJob exit/save totalJobC ost form ingJobentry/buildJob exit/save W O num ber do/ com putingJobC ostsubm ittingJobentry/subm itJob exit/initiateJob do/place on JobQ ueue b eh avi o r w i th i n th e state b u i l d i n g Jo b D atad ataI n p u tC o
11、m p l eted al l d ata i tem s co n si sten t/d i sp l ayU serO p ti o n s d ataI n p u tI n co m p l ete jo b C o stA ccep ted cu sto m er i s au th o ri zed / g etEl ectro n i cS i g n atu re jo b S u b m i tted al l au th o ri zati o n s acq u i red / p ri n tW o rkO rd er 软件工程软件工程9 910.4 对象约束语言(O
12、CL)n对象约束语言的组成部分:(1)语境:定义哪些情况语句是正确的;(2)特性:描述语境的一些特征;(3)操作:用来操纵和限定一个特性;(4)关键字:用于说明条件表达式。软件工程软件工程1010OCL实例n从computingJobCost状态到formingJob状态有个条件:用户认证。n用OCL表示: customer self.authorizationAuthority=yes软件工程软件工程11 11OCL实例context PrintJob:validate(upperCostBound : Integer, custDeliveryReq : Integer) pre: upp
13、erCostBound 0 and custDeliveryReq 0 and self.jobAuthorization = no post: if self.totalJobCost = upperCostBound and self.deliveryDate = custDeliveryReq then self.jobAuthorization = yes endif软件工程软件工程121210.5 设计传统构件n也是一种逐步求精的过程软件工程软件工程1313设计传统构件 逻辑构成的元素是传统构件设计的基础,这些逻辑构成元素包括有:n顺序:实现了任何算法规约中的核心处理步骤;n条件:允
14、许根据逻辑情况选择处理的方式;n重复:提供了循环。软件工程软件工程1414图形化设计表示n流程图中,方框表示处理步骤,菱形表示逻辑条件,箭头表示控制流。n顺序由两个表示处理的方框以及连接两者的控制线表示n条件也称if-then-else结构,菱形表示;n重复n结构化的构成元素可以相互嵌套软件工程软件工程1515图形化设计表示 软件工程软件工程1616图形化设计表示软件工程软件工程1717 软件工程软件工程1818表格设计符号开发决策表的步骤:1.列出与特定过程(或模块)相关的动作2.列出执行该过程时的所有条件(或决策)3.将特定的条件组合与特定的动作相关联,消除不可能的条件组合;或者找出所有可
15、能的条件排列。4.定义规则,指出一组条件应对应哪个或哪些动作 软件工程软件工程1919软件工程软件工程2020反映程序逻辑的决策表软件工程软件工程2121程序设计语言(伪代码)n程序设计语言(PDL)也称为结构化的英语或伪码,是“一种混合语言,采用一种语言的词汇(即英语)和另一种语言的语法(即一种结构化编程语言)”n可随便修改不必担心语法错误,不能编译软件工程软件工程2222程序设计语言n基本的PDL语法:n子程序定义n接口描述n数据声明n针对块构成元素、条件构成元素、重复构成元素和I/O构成元素的技术 软件工程软件工程2323PDL实例n以前面提到的SafeHome安全系统的构件设计为例:n
16、SafeHome系统监控火、烟、盗贼、水(洪水)和温度(比如冬天房主外出时炉子熄火)等;产生报警信号;调用监控服务,发出合成的语音信息。软件工程软件工程2424PDL实例PROCEDURE security.monitor;INTERFACE RETURNS system.status;TYPE signal IS STRUCTURE DEFINEDName IS STRING LENGTH VAR;address IS HEX device location;bound.value IS upper bound SCALAR;message IS STRING LENGTH VAR;END
17、signal TYPE;软件工程软件工程2525TYPE system.statusISBIT(4);TYPE alarm.type DEFINEDsmoke.alarm ISINSTANCEOFsignal;fire.alarm IS INSTANCE OF signal;water.alarm IS INSTANCE OF signal;temp.alarm ISINSTANCEOFsignal;burglar.alarm IS INSTANCEOFsignal;TYPE phone.number IS area code+7-digit number;软件工程软件工程2626initia
18、lize all system ports and reset all hardware;CASE OF control.panel.switches(cps):WHEN cps=“test”SELECTCALL alarm PROCEDURE WITH“on” for test.time in seconds;WHEN cps=“alarm-off” SELECTCALL alarm PROCEDURE WITH“off”;WHEN cps=“new.bound.temp” SELECTCALL keypad.inputPROCEDURE;WHEN cps=“burglar.alarm.off” SELECTdeactivate signalburglar.alarm;DEFAULT none;ENDCASE软件工程软件工程2727REPEAT UNTIL activate.switchis turnedoffreset all signal.values and switches;DO FOR alarm.type=smoke,fire,water,temp,burglar;READ addressalarm.typesignal.value;IF signal.valuebound alarm.type THEN phone.message=messagea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级数学下册第七章平面直角坐标系平面直角坐标系平面直角坐标系习题新人教版教案
- 幼儿园大班社会活动教案特殊功能的车含反思(2025-2026学年)
- 心理学的起源和发展教案
- 班级表彰教案
- 员工关系管理高级管理晋升教案
- 跨文化商务沟通反馈技巧与误解规避及效率提升研究毕业答辩
- 戴尔公司组织架构图教案(2025-2026学年)
- 生猪养殖智能化管理技术研发与养殖效率提升研究毕业论文答辩
- 马工程艺术学概论第九章已改格式文档教案(2025-2026学年)
- 中考数学考点总复习实数的运算教案
- 《企业估值方法》课件
- 皮影艺术资源引入初中美术教学的应用研究
- 贵州省生态文明教育读本(高年级) -教案(教学设计)
- 《财务会计-学习指导习题与实训》全书参考答案
- 2021大庆让胡路万达广场商业购物中心开业活动策划方案预算-67P
- 2022年福建翔安区社区专职工作者招聘考试真题
- 2023年考研考博-考博英语-湖南师范大学考试历年真题摘选含答案解析
- 英语电影的艺术与科学智慧树知到答案章节测试2023年中国海洋大学
- 2023-2024学年新疆维吾尔自治区乌鲁木齐市小学数学六年级上册期末模考测试题
- GB/T 15814.1-1995烟花爆竹药剂成分定性测定
- GB/T 11446.7-2013电子级水中痕量阴离子的离子色谱测试方法
评论
0/150
提交评论