-软件工程实践者的研究方法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《-软件工程实践者的研究方法课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实践 研究 方法 课件
- 资源描述:
-
1、1Chapter 8nDesign ConceptsSoftware Engineering:A Practitioners Approach,7/e by Roger S.Pressman2DesignnGood software design should exhibit:nFirmness(稳定性):A program should not have any bugs that inhibit its function.nCommodity(适用性):A program should be suitable for the purposes for which it was intend
2、ed.nDelight(令人愉快):The experience of using the program should be pleasurable one.3Analysis Model=Design ModelAnal 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 o
3、w 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 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
4、 di agr am s st at e di agr am s sequence di agr am sD D a at ta a/C Cl 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 Model43 Characters
5、of Design Qualitythe design must implement all of the explicit(明确的)requirements contained in the analysis model,and it must accommodate all of the implicit(隐含的)requirements desired by the customer.the design must be a readable,understandable guide for those who generate code and for those who test a
6、nd subsequently support the software.the design should provide a complete picture(全貌)of the software,addressing the data,functional,and behavioral domains from an implementation perspective.5Quality GuidelinesA design should exhibit an architecture that(1)has been created using recognizable architec
7、tural styles or patterns,(2)is composed of components that exhibit good design characteristics and(3)can be implemented in an evolutionary fashionA design should be modular;that is,the software should be logically partitioned into elements or subsystemsA design should contain representations of data
8、,architecture,interfaces,and components.A design should lead to data structures that are appropriate for the classes to be implemented.A design should lead to components that exhibit independent functional characteristics.A design should lead to interfaces that reduce the complexity of connections b
9、etween components and with the external environment.A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis.A design should be represented using a notation that effectively communicates its meaning.6Design PrinciplesThe design
10、 should be traceable to the analysis model.The design should not reinvent(彻底改造)the wheel.The design should“minimize the distance”between the software and the problem as it exists in the real world.The design should exhibit uniformity and integration.The design should be structured to accommodate cha
11、nge.The design should be assessed for quality as it is being created,not after the fact.The design should be reviewed to minimize conceptual(semantic)errors.Design is not coding,coding is not design.From Davis DAV957Fundamental ConceptsnAbstractiondata,procedurenArchitecture(架构)the overall structure
12、 of the softwarenPatternsconveys(承载)the essence(精髓)of a proven design solutionnModularitycompartmentalization(划分)of data and functionnInformation hidingcontrolled interfacesnFunctional independencesingle-minded function and low couplingnAspectsa mechanism for understanding how global requirements af
13、fect designnRefactoring(重构)a reorganization technique that simplifies the designnDesign Classesprovide design detail that will enable analysis classes to be implemented8Data Abstractionimplemented as a data structure9Procedural Abstractionimplemented with a knowledge of the object that is associated
14、 with enter10ArchitectureStructural properties.Extra-functional properties.Families(族族)of related systems.11ArchitecturenIn the simplest form,architecture is the structure or organization of program components(modules),the manner in which these components interact,and the structure of data that are
15、used by the components.nIn a broader sense,components can be generalized to represent major system elements and their interactions.12Modularitynmodularity is the single attribute of software that allows a program to be intellectually manageable.nMonolithic(整块庞大的)software(i.e.,a large program compose
16、d of a single module)cannot be easily grasped()by a software engineer.nThe number of control paths,span of reference(引用跨度),number of variables,and overall complexity would make understanding close to impossible.nIn almost all instances,you should break the design into many modules,hoping to make und
17、erstanding easier and as a consequence,reduce the cost required to build the software.13Modularity:number of modules 14Why Information Hiding?nreduces the likelihood of“side effects”nlimits the global impact of local design decisionsnemphasizes communication through interfacesndiscourages the use of
18、 global datanleads to encapsulationan attribute of high quality designnresults in higher quality software15Information Hiding16Sizing Modules:Two ViewsMODULEWhats inside?How big is it?17Functional IndependencenFunctional independence is achieved by developing modules with single-minded function and
19、an aversion to excessive interaction with other modules.nCohesion(内聚性)is an indication of the relative functional strength of a module.nA cohesive module performs a single task,requiring little interaction with other components in other parts of a program.Stated simply,a cohesive module should(ideal
20、ly)do just one thing.nCoupling(耦合性)is an indication of the relative interdependence among modules.nCoupling depends on the interface complexity between modules,the point at which entry or reference is made to a module,and what data pass across the interface.18AspectnAn aspect is a representation of
展开阅读全文