欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    软件工程实践者的研究方法.ppt

    • 资源ID:3499383       资源大小:862.55KB        全文页数:30页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程实践者的研究方法.ppt

    1,Chapter 8,Design Concepts,Software Engineering: A Practitioners Approach, 7/e by Roger S. Pressman,2,Design,Good software design should exhibit: Firmness(稳定性): A program should not have any bugs that inhibit its function. Commodity(适用性): A program should be suitable for the purposes for which it was intended. Delight(令人愉快): The experience of using the program should be pleasurable one.,3,Analysis Model = Design Model,4,3 Characters of Design Quality,the 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 and 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.,5,Quality Guidelines,A design should exhibit an architecture that (1) has been created using recognizable architectural styles or patterns, (2) is composed of components that exhibit good design characteristics and (3) can be implemented in an evolutionary fashion A design should be modular; that is, the software should be logically partitioned into elements or subsystems A design should contain representations of data, 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 between 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.,6,Design Principles,The design 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 change. 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 DAV95,7,Fundamental Concepts,Abstractiondata, procedure Architecture(架构)the overall structure of the software Patternsconveys(承载) the essence(精髓) of a proven design solution Modularitycompartmentalization(划分) of data and function Information hidingcontrolled interfaces Functional independencesingle-minded function and low coupling Aspectsa mechanism for understanding how global requirements affect design Refactoring(重构)a reorganization technique that simplifies the design Design Classesprovide design detail that will enable analysis classes to be implemented,8,Data Abstraction,9,Procedural Abstraction,10,Architecture,“The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.”,Structural properties. This aspect of the architectural design representation defines the components of a system (e.g., modules, objects) and the manner in which those components are packaged and interact with one another. For example, objects encapsulate both data and the processing that manipulates the data. Extra-functional properties. The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics. Families(族) of related systems. The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems. The design should have the ability to reuse architectural building blocks.,11,Architecture,In 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 used by the components. In a broader sense, components can be generalized to represent major system elements and their interactions.,12,Modularity,“modularity is the single attribute of software that allows a program to be intellectually manageable“. Monolithic(整块庞大的) software (i.e., a large program composed of a single module) cannot be easily grasped() by a software engineer. The number of control paths, span of reference(引用跨度) , number of variables, and overall complexity would make understanding close to impossible. In almost all instances, you should break the design into many modules, hoping to make understanding easier and as a consequence, reduce the cost required to build the software.,13,Modularity: number of modules,14,Why Information Hiding?,reduces the likelihood of “side effects” limits the global impact of local design decisions emphasizes communication through interfaces discourages the use of global data leads to encapsulationan attribute of high quality design results in higher quality software,15,Information Hiding,16,Sizing Modules: Two Views,17,Functional Independence,Functional independence is achieved by developing modules with “single-minded“ function and an “aversion“ to excessive interaction with other modules. Cohesion(内聚性) is an indication of the relative functional strength of a module. A cohesive module performs a single task, requiring little interaction with other components in other parts of a program. Stated simply, a cohesive module should (ideally) do just one thing. Coupling(耦合性) is an indication of the relative interdependence among modules. Coupling 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.,18,Aspect,An aspect is a representation of a cross-cutting concern. (横切关注点: 利用“横切”技术,剖开封装的对象内部,将那些影响多个类的公共行为封装成一个可重用对象,称为Aspect)。 Consider two requirements A and B. B crosscuts A if a software decomposition has been chosen in which A cannot be satisfied without taking B. AOP(Aspect Oriented Programming)是OOP的补充和完善。 如:业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点, 如权限认证、日志、事务处理等,可以将核心关注点和横切关注点分离开来。,19,显示更新的需求:无论图元何时移动、移动到哪里,都要通知屏幕管理器(Display)其位置发生了改变。,Aspect - Example,20,采用OOP,典型做法是在每个移动图元的操作代码中,插入一段通知Display其位置发生改变的代码,即:调用Display.update( )。,Class Line private Point _p1,_p2; Point getP1( ) return _p1; Point getP2( ) return _p2; void setP1(Point p1) this._p1=p1; Display.update( ); void setP2(Point p2) this._p2=p2; Display.update( ); ,Class Point private int _x1,_x2; int getX( ) return _x1; int getY( ) return _x2; void setX (int x1) this._x1=x1; Display.update( ); void setY(int x2) this._x2=x2; Display.update( ); ,Aspect - Example,21,Aspect DisplayUpdating Pointcut move(): call(void Line.setP1(Point)| call(void Line.setP2(Point)| call(void Point.setX(int)| call(void Point.setY(int); after() returning:move() Display.update(); ,Class Line private Point _p1,_p2; Point getP1( ) return _p1; Point getP2( ) return _p2; void setP1(Point p1) this._p1=p1; void setP2(Point p2) this._p2=p2; Class Point private int _x1,_x2; int getX( ) return _x1; int getY( ) return _x2; void setX (int x1) this._x1=x1; void setY(int x2) this._x2=x2; ,采用AOP,典型做法是在将所有移动图元的代码封装成一个Aspect: DisplayUpdating 。,Aspect - Example,22,AspectAn Example,Consider two requirements for the SafeHomeAssured.com WebApp. Requirement A is described via the use-case Access camera surveillance via the Internet. A design refinement would focus on those modules that would enable a registered user to access video from cameras placed throughout a space. Requirement B is a generic security requirement that states that a registered user must be validated prior to using SafeHomeAssured.com. This requirement is applicable for all functions that are available to registered SafeHome users. As design refinement occurs, A* is a design representation for requirement A and B* is a design representation for requirement B. Therefore, A* and B* are representations of concerns, and B* cross-cuts A*. An aspect is a representation of a cross-cutting concern. Therefore, the design representation, B*, of the requirement, a registered user must be validated prior to using SafeHomeAssured.com, is an aspect of the SafeHome WebApp.,23,Refactoring,Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code design yet improves its internal structure. When software is refactored, the existing design is examined for redundancy unused design elements inefficient or unnecessary algorithms poorly constructed or inappropriate data structures any other design failure that can be corrected to yield a better design.,24,The Design Model,25,Design Model Elements,Data elements Data model data structures Data model database architecture Architectural elements Application domain Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations Interface elements Component elements Deployment elements,26,Architectural Elements,The architectural model is derived from three sources: information about the application domain for the software to be built; specific requirements model elements such as data flow diagrams or analysis classes, their relationships and collaborations. the availability of architectural patterns.,27,Interface Elements,user interface external interfaces to other systems, devices. -include checking and definitive information about the information is sent or received (3) internal interfaces between various design components. -an interface is a set of operations that describes some part of the behavior of a class and provides access to these operations.,28,Interface Elements,29,Component Elements,component-level design defines data structures for all local data objects and algorithmic detail for all processing that occurs within a component and an interface that allows access to all component operations.,30,Deployment Elements,Indicate how software functionality and subsystems will be allocated within the physical computing environment,

    注意事项

    本文(软件工程实践者的研究方法.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开