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