Upload
baxter-mcgee
View
42
Download
0
Embed Size (px)
DESCRIPTION
Object-Oriented Software Engineering. Anton Eliëns Vrije Universiteit, Amsterdam http://www.cs.vu.nl/~eliens/online/courses/oo. Topics:. Basic OO technology Application Framework(s) Universal Modeling Language Design Patterns Project Management Current developments and trends. - PowerPoint PPT Presentation
Citation preview
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Object-Oriented Software EngineeringObject-Oriented Software Engineering
Anton Eliëns
Vrije Universiteit, Amsterdam
http://www.cs.vu.nl/~eliens/online/courses/oo
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Topics:Topics:
• Basic OO technology• Application Framework(s)• Universal Modeling Language• Design Patterns• Project Management• Current developments and trends
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
IntroductionIntroduction
If
OO
is the Answer,
What is
the Question?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Keywords and phrasesKeywords and phrases
• the OO lifecycle -- modelling• encapsulation, inheritance, delegation, polymorphism• specification and implementation inheritance• design by contract• interfaces, components and frameworks• idioms, patterns, software architecture
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Themes and VariationsThemes and Variations
• abstraction -- the object metaphor • modeling -- understanding structure and behavior • software architecture -- mastering complexity • frameworks -- patterns for problem solving • components -- scalable software
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Object TerminologyObject Terminology
• objects -- packet containing data and procedures • methods -- deliver service • message -- request to execute a method • class -- template for creating objects • instance -- an object that belongs to a class • encapsulation -- information hiding by objects • inheritance -- allowing the reuse of class spec.s class• hierarchy -- tree structure inheritance relations • polymorphism -- to hide different implementations
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Features of OOPFeatures of OOP
• information hiding: state, autonomous behavior • data abstraction: emphasis on what rather than how • dynamic binding: binding at runtime, polymorphism , virtual functions• inheritance: incremental changes (specialization), reusability
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Benefits of OOPBenefits of OOP
• OO = encapsulation + inheritance• modularity -- autonomous entities, cooperation through exchanges of
messages • deferred commitment -- the internal workings of an object can be redefined
without changing other parts of the system • reusability -- refining classes through inheritance • naturalness -- object-oriented analysis/design, modeling
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The San Francisco FrameworkThe San Francisco Framework
How useful is an OO framework?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
•Example - San Francisco Framework
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
A framework is ...A framework is ...
• a collection of components• a generic solution for a class of problems• a frame of mind for solving problems• a set of architectural constraints
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The San Francisco FrameworkThe San Francisco Framework
• is meant to develop business applications• is based on Java technology• may solve 70% of your problem• leaves 30% (minimum) to solve for you• may set a standard• or may fail to do so ...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
San Francisco - motivationSan Francisco - motivation
• The project was started when several software vendors asked IBM to help modernizing their application products
• However, there were several barriers preventing them from being able to update their applications
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Barriers to modernizingBarriers to modernizing
• (1) The problem of how to retrain their development staff to effectively use OO technology.
• (2) The risk involved in moving to a new technology.• (3) moving -> the cost of the change• The software developers realized they needed some basic infrastructure.• Many companies could not develop this infrastructure themselves.
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
San Francisco - the pressSan Francisco - the press
• The San Francisco project helps to solve these problems by offering developers Business Process Components,
• designed as frameworks that provides an object oriented infrastructure,• a consistent application programming model, and• some default business logic• The frameworks make it easier to move to OO technology because developers
use well-tested services instead of building their own.
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
San Francisco Framework - layersSan Francisco Framework - layers
• Core Business Process Layer - the highest• Common Business Objects Layer - middle• Foundation Layer - lowest
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Core Business ProcessesCore Business Processes
• The objective for this layer is to create a sound architecture and highly extensible OO implementation for the basic structure and behavior which any application provider delivering a solution in the application doamin would require:
• Accounts Receivable/Payable Ledger• General Ledger Framework• Sales Order Management Framework• Purchase Order Management
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Common Business ObjectsCommon Business Objects
• Business Objects common to multiple domains• Common Application level Services• CBO:• Business Partner• Address• Number - decimal structure• Currency - how many euros in a dollar?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Foundation LayerFoundation Layer
• Foundation Object Model Classes• Utilities
• in other words: it provides the infrastructure• comment: reinventing the wheel is not a big problem, because the wheel is a
terrific invention
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Foundation Object Model ClassesFoundation Object Model Classes
• Command• Entity• Dependent• Collection/Iterator• Factory
• you need to study Design Patterns to appreciate these ...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Using the San Francisco FrameworkUsing the San Francisco Framework
• … The San Francisco Frameworks are designed to make many types of extensions easy for application developers:
• overriding the default business logic in supplied methods• adding additional attributes to existing classes• adding additional methods to existing classes
• from the report: Complete documentation will be provided …
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
ExampleExample
• Two classes: Receipt and Purchase order Line• default attributes, methods• default business logic: inspect Quality on receipt• Extension: enhance this logic• subclass Receipt • override inspection method• change logic to include checks against supplier tables, and hazardous or high
value products
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
San Francisco - issuesSan Francisco - issues
• Standards: OMG/CORBA Business Issues• Technology Integration:• Compound Documents: Lotus Notes, JavaBeans, Active X• Business process Modeling and Control: workflow engines may be used as
glue …• Internet/Intranet and Java: applications may be designed ….• Conclusions: … a bit premature ...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Beyond Object-Orientation?Beyond Object-Orientation?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Trends -- modeling
patterns -- examples of design UML -- Unified Modeling Language
Technologies -- components
Web -- global infrastructure CORBA/DCOM - the software bus Java -- the platform?
Challenges
Applications -> Frameworks <- Patterns
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Challenges in O-OChallenges in O-O
• vertical framework development -- finance, medical care, insurance • separation of 'logic' from 'control' -- business rules • distributed object technology -- heterogeneous systems • visualisation -- structure and processes • knowledge intensive applications -- declarative • heterogeneous systems - fragmented applications
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Universal Modeling LanguageUniversal Modeling Language
• … why you need models?• Models are necessary to communicate,• to stabilize abstractions• as a reference for the implementation• and maintenance• and you need an agreement on the notation and formalisms in which you
express your models
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Unified Modeling LanguageUnified Modeling Language
Introduction Class diagrams Use cases Interaction diagrams Package and deployment diagrams State and activity diagrams Discussion
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The Unified Modeling Language(UML) resulted from a joint effort ofleading experts in object-orientedanalysis and design, Grady Booch,Jim Rumbaugh and Ivar Jacobson,also known as the three amigos, allcurrently employees of Rational.
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Unified Modeling LanguageUnified Modeling Language
• class diagrams -- conceptual structure • use cases -- functional requirements • interaction diagrams -- operational characteristics • package and deployment diagrams -- implementation • state and activity diagrams -- dynamic behavior
UML
See http://www.rational.com/uml and UML Distilled, [Fowler97].
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Class diagramsClass diagrams
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Use casesUse cases
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Interaction diagramsInteraction diagrams
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Package and component diagramsPackage and component diagrams
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
State and activity diagramsState and activity diagrams
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Event annotations Event annotations
event(arguments)[conditions]/action
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
DiscussionDiscussion
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The UML toolbox is very rich. Itallows you to model everyconceivable aspect of the system.Nevertheless, to my mind, graphicalmodels are not always appropriate.But, on the other hand, most peoplelike them and they often make agood impression, suggesting clarity...
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
ExamplesExamples
- interactive drawing tool
- the reactor pattern (events)
- business process modeling
- the observer pattern
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Interactive drawing toolInteractive drawing tool
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Reactor (event-handling) patternReactor (event-handling) pattern
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Reactor - Interaction diagram (events)Reactor - Interaction diagram (events)
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Business process modelingBusiness process modeling
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
(simulation) event state transition diagram(simulation) event state transition diagram
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Observer PatternObserver Pattern
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Basic OO TechnologyBasic OO Technology
Technology determines the effectiveness of the approach
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
ConceptsConcepts
• Encapsulation• Data hiding• Inheritance• Polymorphism
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
EncapsulationEncapsulation
• An object contains data and methods• It provides a boundary:• to the world outside• to its ‘children’
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Information hidingInformation hiding
• Reduces complexity• Allows you to defer implementations• Remember: Ignorance is bliss• Helps in decoupling components
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
InheritanceInheritance
• A mechanism for code-sharing• Supports incremental development• Organize by classification• Allows for abstract interfaces
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
PolymorphismPolymorphism
• An object may have multiple types• An abstract type: when it is used• A concrete type: when it is created• An object’s type is determined by its behavior• An object’s type is determined by the messages it allows
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Design by ContractDesign by Contract
• formal basis -- pre and post conditions• refinement -- by inheritance or polymorphism• runtime checks -- division of responsibility
see Ch. 3, Contracts
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Design by ContractDesign by Contract
Abstract Data Types
ADT = state + behavior
Object-Oriented Modeling
data oriented
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Responsibilities what rather than how
to specify behavior
Client client/server model
makes request to perform a service
Server
provides service upon request
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
object = information + responsibilities
Contracts
a set of services
Behavioral refinement
improving contracts
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Conformance -- behavioral refinement
if B refines A then B may be used wherever A is allowed
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Attributes refine more information
Services better services
Contracts more and better services
A better service fewer restrictions for the client more obligations for the server
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Object-Oriented Modeling
prototyping, specification, refinement, interactions
OOP = Contracts + Refinements
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Idioms and PatternsIdioms and Patterns
• polymorphism -- inheritance and delegation • idioms -- realizing concrete types • patterns -- a catalogue of design patterns • events -- the reactor pattern
Additional keywords and phrases:generic types, assertions, canonicalclasses, event-driven computation
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
A catalogue of design patternsA catalogue of design patterns
Subsections:
Creational Patterns Structural Patterns Behavioral Patterns
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
A Catalogue of Design PatternsA Catalogue of Design Patterns
• a common design vocabulary • documentation and learning aid • an adjunct to existing methods • a target for redesign
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The Pattern Schema Name - handle
increases design vocabulary
Problem - when to apply
explains the problem and the conflict
Solution - general arrangement
design, responsibilities, collaborations
Consequences - tradeoffs
to understand the costs and benefits
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Causes for RedesignCauses for Redesign
• creating an object by specifying a class explicitly -- Abstract Factory, Factory Method, Prototype
• dependence on specific operations -- Chain of Responsibilty, Command • dependence on hardware & software platforms -- Abstract Factory, Bridge • dependence on object implementation or representation --Abstract Factory,
Bridge, Memento, Proxy
design for change
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
• algorithm dependence -- Iterator, Strategy, Template Method, Visitor • extending functionality by subclassing -- Bridge, Composite, Decorator,
Observer • tight coupling -- Abstract Factory, Bridge, Chain of Responsibilities,
Command, Facade, Mediator, Observer • inability to alter classes conveniently -- Adaptor, Decorator,
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Creational PatternsCreational Patterns
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Creational PatternsCreational Patterns
• Factory -- hide concrete classes • Factory Method -- virtual constructors • Prototype -- dynamic creation by cloning • Singleton -- one instance only
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Structural PatternsStructural Patterns
Pattern Alias Remarks
Composite part/whole collections of components Flyweight part/whole* extrinsic state, many objects Adaptor wrapper resolves inconsistenciesBridge handle/body abstraction to implementationDecorator wrapper to introduce functionalityFacade wrapper* provides unified interfaceProxy surrogate to defer ... remote, virtual, protection
object and class composition
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Behavioral PatternsBehavioral Patterns
cooperation
algorithms and the assignment of responsibilities between objects
class
Template Method -- the skeleton of an algorithm Interpreter -- to evaluate expressions
object composition
Mediator -- provides indirection Chain of Responsibility -- connect objects to interact Observer -- to handle dependencies
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Encapsulating behaviorEncapsulating behavior
• Command -- action + undo • Strategy -- choice of algorithms • Visitor -- decouple traversal and operations • Iterator -- access and traversal • State -- object state -> behavioral change
objectify!
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The Observer PatternThe Observer Pattern
Observer
one-to-many dependencies and notification
Consequences
abstract coupling between subject and observer constraint propagation deals with unexpected updates
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Component TechnologyComponent Technology
• objects versus components -- definitions • interoperability • requirements for distribution • a simple workgroup application • extending hush with CORBA
Additional keywords and phrases:(D)COM, Java, CORBA, OLE, persistent objects, ODMG,workgroup
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Objects versus componentsObjects versus components
Subsections:
Definitions The technology matrix Component myths
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
DefinitionsDefinitions
Component substitutability
unit of independent deployment unit of third party composition no persistent state
Object identity
unit of instantiation (persistent) state encapsulation of state and behavior
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
A software component is a unit ofcomposition with contractuallyspecified interfaces and explicitcontext dependencies only. Asoftware component can bedeployed independently and issubject to composition by thirdparties.
Szyperski
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The technology matrixThe technology matrix
distribution mobility language platform reflection COM - - * - +/- DCOM + - * +/- +/- CORBA + - * * +/- Java/Beans - classes Java * + Java/RMI + classes Java * + Voyager + objects Java * +
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Components: Myths and Reality
component-ware allows for combining components if semantical issues can be resolved
component-ware simplifies software distribution and maintenance development becomes more complex
component-ware support mega applications it affects performance significantly
component-ware is a revolution wrong, it is an evolution from OO and C/S
unknown source
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Component QuestionsComponent Questions
• How to describe the interaction between components? • How to manage variety and flexibility? • How to guarantee critical system-wide properties?
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Software architectureSoftware architecture
• architecture -- components and boundaries • case study -- a framework for multimedia feature detection • native objects -- the language boundary • embedded logic -- the paradigm boundary • architectural styles -- distributed object technology • cross-platform development -- Unix versus Windows
Additional keywords and phrases:components, information architecture, multimedia information retrieval, feature detection, portability
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Elements of ArchitectureElements of Architecture
• processing elements -- transformation on data • data elements -- contain information • connections -- glue that holds elements together
[Wolf]
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Models and ViewsModels and Views
• logical -- functional requirements • process -- performance, availability, distribution • physical -- scalability, configuration • development -- organization of software modules • scenarios -- instances of use cases
Definitions
http://www.sei.cmu.edu/architecture/definitions.html
[Kruchten95]
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
The software architecture of aprogram or computing system is thestructure of the system, whichcomprises software components, theexternally visible properties of thosecomponents, and theirinterrelationships.
Bass et al.
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Technological infrastructureTechnological infrastructure
• client-platform -- hardware, OS • presentation services -- windows, multimedia • application software -- code, business logic • network -- communication support • middleware -- distribution, (object) brokers • server platform -- hardware, OS • database -- data management system
[CS2001]
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Distributed Object PatternsDistributed Object Patterns
Framework (class hierarchies)
Applications (wrappers)
System (horizontal, vertical, metadata)
Enterprise (reference models, infrastructure, policies)
Intra/Internet (standards)
[CorbaPatterns]
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
ConclusionsConclusions
• OO offers– a valid metaphor for SE– powerful technology– maturing design methods and notations– a rich set of patterns
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Yet beware ofYet beware of
• the learning curve• simplified hype• cutting edge technology• (over) ambitious projects
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Assignments:Assignments:
• Write a paper about one of the following topics. The paper may discuss concepts or focus on a case study.– The Unified Modelling Language -- UML– Frameworks -- for example San Francisco
• Write a comparative study of object-oriented analysis and design methods, focussing on aspects of project management.
• Describe a case study concerning the deployment of design patterns.
vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie
Course materialCourse material
• Chapter 1• Additional material
– Ch 3: Design by Contract
– Ch 11: Methods and Tools
– Object Tutorials
• Resources– http://www.rational.com -- Rational Rose, UML– http://www.ibm.com/java/sanfrancisco -- IBM Java San Francisco Framework
• Papers and Reports– http://www.rational.com/uml/html/summary -- UML Summary– http://www.ibm.com/Java/Sanfrancisco/prd_summary.html -- San Francisco Technical Summary