Object-Oriented Software Engineering

Post on 01-Jan-2016

38 views 0 download

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

Transcript of Object-Oriented Software Engineering

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