上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)19 Aspect-Oriented Software Development(AOSD)

Shanghai Jiao Tong University 图 上海交通大学 Object Oriented Analysis and Design Aspect-Oriented Software Development (AOSD) 上海交通大学软件工程中心
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Aspect-Oriented Software Development (AOSD)

Introduction Evolution of Programming Languages -Assembly/Machine Languages Formula Translation Procedural Programming ■ Structured Programming Functional Programming Logic Programming Programming with abstract data types Evolution of Software Design Monolithic ---Modular Object Oriented Analysis and Design 2
Object Oriented Analysis and Design 2 Introduction w Evolution of Programming Languages § Assembly/Machine Languages § Formula Translation § Procedural Programming § Structured Programming § Functional Programming § Logic Programming § Programming with abstract data types w Evolution of Software Design § Monolithic ---> Modular

Design Principles Modularity ◆Abstraction Focus only on relevant properties ◆Decomposition -Divide software into separately named and addressable modules ◆Encapsulation Group related things together. ◆Information Hiding Hide implementation details from the outside Separation of Concerns Ensure that each module only deals with one concern ·Low Coupling aim for low coupling among the modules High Cohesion aim for high cohesion within one module Object Oriented Analysis and Design 3
Object Oriented Analysis and Design 3 Design Principles Modularity w Abstraction § Focus only on relevant properties w Decomposition § Divide software into separately named and addressable modules w Encapsulation § Group related things together. w Information Hiding § Hide implementation details from the outside w Separation of Concerns § Ensure that each module only deals with one concern § Low Coupling • aim for low coupling among the modules § High Cohesion • aim for high cohesion within one module

What is a Concern? Are properties or areas of interest Can be functional or nonfunctional (quality,systemic) At different abstraction levels: Problem domain concerns vs.solution domain concerns Requirements vs.design Design vs.implementation Object Oriented Analysis and Design 4
Object Oriented Analysis and Design 4 What is a Concern? w Are properties or areas of interest w Can be functional or nonfunctional (quality, systemic) w At different abstraction levels: § Problem domain concerns vs. solution domain concerns § Requirements vs. design § Design vs. implementation

Separation of Concerns The ability to identify,encapsulate and manipulate concerns A key principle of SW engineering Concerns are primary criteria for decomposing SW Object Oriented Analysis and Design 5
Object Oriented Analysis and Design 5 Separation of Concerns § The ability to identify, encapsulate and manipulate concerns § A key principle of SW engineering § Concerns are primary criteria for decomposing SW

Separation of Concerns (Cont.) “clean”separation can help: -Reduce complexity,improve comprehensibility Simplify evolution of SW Local,easy changes Smaller impact of change Facilitate reuse developers aren't burdened by extraneous parts Simplify component integration Object Oriented Analysis and Design 6
Object Oriented Analysis and Design 6 Separation of Concerns (Cont.) “clean” separation can help: § Reduce complexity, improve comprehensibility § Simplify evolution of SW § Local, easy changes § Smaller impact of change § Facilitate reuse § developers aren’t burdened by extraneous parts § Simplify component integration

Dijkstra:Separate Program in Layers... E.W.Dijkstra (1968-2002): ◆ "...Correct arrangement of the structure of software systems before simple programming...' ◆Layered Structure Programs are grouped into layers Programs in one layer can only communicate with programs in adjoining layers Conceptual integrity ■ Each layer has its own goal With easier development and -↓ maintenance Object Oriented Analysis and Design 7
Object Oriented Analysis and Design 7 Dijkstra: Separate Program in Layers... w E. W. Dijkstra (1968-2002): w ‘’...Correct arrangement of the structure of software systems before simple programming...‘’ w Layered Structure § Programs are grouped into layers § Programs in one layer can only communicate with programs in adjoining layers w Conceptual integrity § Each layer has its own goal § With easier development and maintenance

Parnas Design Principles for Decomposition Information hiding modules (1972) Identify design decisions that are likely to change Isolate these in separate modules (separation of concerns) Different design decisions might require different decompositions. D.Parnas,"On the Criteria to Be Used in Decomposing Systems into Modules.",Comm. ACM15,12(December1972),1053-1058 1972. Object Oriented Analysis and Design 8
Object Oriented Analysis and Design 8 Parnas - Design Principles for Decomposition w Information hiding modules (1972) § Identify design decisions that are likely to change § Isolate these in separate modules (separation of concerns) w Different design decisions might require different decompositions. § D. Parnas, "On the Criteria to Be Used in Decomposing Systems into Modules.“ , Comm. ACM 15, 12 (December 1972), 1053-1058. 1972

Separation of Concerns applied Separate software development into phases each dealing with specific activities (e.g. requirements,analysis,design, implementation) ◆ Separation of different artifacts:class, subsystems,attributes. ◆ Separation of different design views (static. dynamic,implementation, ◆ Separation of different roles Object Oriented Analysis and Design 9
Object Oriented Analysis and Design 9 Separation of Concerns applied w Separate software development into phases each dealing with specific activities (e.g. requirements, analysis, design, implementation) w Separation of different artifacts: class, subsystems, attributes. w Separation of different design views (static, dynamic, implementation, ...) w Separation of different roles w

Benefits of Separation of Concerns Supports high cohesion among components ◆ Supports low coupling among components Increases modularity Object Oriented Analysis and Design 10
Object Oriented Analysis and Design 10 Benefits of Separation of Concerns w Supports high cohesion among components w Supports low coupling among components w Increases modularity
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)17 Model Driven Development.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)16 Database Design.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)14 Subsystem Design.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)13 Use-Case Design.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)12 Architecture Design.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)11 Use-Case Analysis.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)10 Architectural Analysis.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)09 Analysis and Design Overview.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)08 Requirements Overview.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)07 Design Pattern.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)06 Other UML Diagrams.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)05 ClassDiagrams.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)04 Interaction Diagrams.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)02 Introduction to Visual Modeling.ppt
- 上海交通大学:《面向对象分析与设计 Object Oriented Analysis and Design》课程教学资源(PPT课件讲稿)01 Introduction to Object Technology.ppt
- 上海交通大学:《软件测试与质量控制》课程教学资源(课件讲稿)chapter 4 test case generation 1.pdf
- 上海交通大学:《软件测试与质量控制》课程教学资源(课件讲稿)Chapter 2 fundamentals of software test.pdf
- 上海交通大学:《软件测试与质量控制》课程教学资源(课件讲稿)chapter 3 Test environment and tools.pdf
- 上海交通大学:《软件测试与质量控制》课程教学资源(课件讲稿)教学大纲(高级软件测试).doc
- 上海交通大学:《软件测试与质量控制》课程教学资源(课件讲稿)chapter 1 Introduction of software testing.pdf
- 上海交通大学:《微型计算机技术及在材料加工中的应用》教学资源_微型计算机概述.pdf
- 上海交通大学:《微型计算机技术及在材料加工中的应用》教学资源_第三章作业.pdf
- 上海交通大学:《微型计算机技术及在材料加工中的应用》教学资源_第二章 微处理器.pdf
- 上海交通大学:《数据库(A类)》教学资源_参考资料_MFC ODBC编程.doc
- 上海交通大学:《程序设计思想与方法》课程教学资源_C 12.28上机测试题_C++ 上机测试题.pdf
- 《程序设计思想与方法》课程教学资源(书籍文献)Python Programming:An Introduction to Computer Science.pdf
- 《程序设计思想与方法》课程教学资源(书籍文献)Python Programming:An Introduction to Computer Science.pdf
- 《程序设计思想与方法》课程教学资源(书籍文献)简明Python教程.pdf
- 上海交通大学:《编译原理》教学资源_第一周讲义_Parameter Passing Mechanisms.pdf
- 上海交通大学:《编译原理》教学资源_第一周讲义_Introduction to Compilin.pdf
- 上海交通大学:《编译原理》教学资源_第一周讲义_A Simple Syntax-Directed Translator.pdf
- 上海交通大学:《编译原理》教学资源_第七周讲义_Code Generation.pdf
- 上海交通大学:《编译原理》教学资源_第三周讲义_Top-Down Parsing.pdf
- 上海交通大学:《编译原理》教学资源_第三周讲义_Bottom-Up Parsing.pdf
- 上海交通大学:《编译原理》教学资源_第九周讲义_CS308 Compiler Theor.pdf
- 上海交通大学:《编译原理》教学资源_第九周讲义_CS308 Compiler Theor.pdf
- 上海交通大学:《编译原理》教学资源_第九周讲义_Machine-Independent Optimizations Ⅳ.pdf
- 上海交通大学:《编译原理》教学资源_第二周讲义_Lexical Analyzer.pdf
- 上海交通大学:《编译原理》教学资源_第二周讲义_Syntax Analyzer.pdf
- 上海交通大学:《编译原理》教学资源_第二周讲义_lex.pdf