object-oriented software engineering

92
vrije Universiteit amsterdam Postacademische Cursus Informatie Technologie Object-Oriented Software Engineering Anton Eliëns Vrije Universiteit, Amsterdam http://www.cs.vu.nl/~eliens/online/courses/oo

Upload: baxter-mcgee

Post on 01-Jan-2016

40 views

Category:

Documents


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

Page 1: 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

Page 2: Object-Oriented Software Engineering

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

Page 3: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

IntroductionIntroduction

If

OO

is the Answer,

What is

the Question?

Page 4: Object-Oriented Software Engineering

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

Page 5: Object-Oriented Software Engineering

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

Page 6: Object-Oriented Software Engineering

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

Page 7: Object-Oriented Software Engineering

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

Page 8: Object-Oriented Software Engineering

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

Page 9: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

The San Francisco FrameworkThe San Francisco Framework

How useful is an OO framework?

Page 10: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

•Example - San Francisco Framework

Page 11: Object-Oriented Software Engineering

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

Page 12: Object-Oriented Software Engineering

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 ...

Page 13: Object-Oriented Software Engineering

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

Page 14: Object-Oriented Software Engineering

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.

Page 15: Object-Oriented Software Engineering

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.

Page 16: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Page 17: Object-Oriented Software Engineering

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

Page 18: Object-Oriented Software Engineering

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

Page 19: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Page 20: Object-Oriented Software Engineering

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?

Page 21: Object-Oriented Software Engineering

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

Page 22: Object-Oriented Software Engineering

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 ...

Page 23: Object-Oriented Software Engineering

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 …

Page 24: Object-Oriented Software Engineering

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

Page 25: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Page 26: Object-Oriented Software Engineering

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 ...

Page 27: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Beyond Object-Orientation?Beyond Object-Orientation?

Page 28: Object-Oriented Software Engineering

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

Page 29: Object-Oriented Software Engineering

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

Page 30: Object-Oriented Software Engineering

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

Page 31: Object-Oriented Software Engineering

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

Page 32: Object-Oriented Software Engineering

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.

Page 33: Object-Oriented Software Engineering

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].

Page 34: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Class diagramsClass diagrams

Page 35: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Use casesUse cases

Page 36: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Interaction diagramsInteraction diagrams

Page 37: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Package and component diagramsPackage and component diagrams

Page 38: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

State and activity diagramsState and activity diagrams

Page 39: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Event annotations Event annotations

event(arguments)[conditions]/action

Page 40: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

DiscussionDiscussion

Page 41: Object-Oriented Software Engineering

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...

Page 42: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

ExamplesExamples

- interactive drawing tool

- the reactor pattern (events)

- business process modeling

- the observer pattern

Page 43: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Interactive drawing toolInteractive drawing tool

Page 44: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Reactor (event-handling) patternReactor (event-handling) pattern

Page 45: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Reactor - Interaction diagram (events)Reactor - Interaction diagram (events)

Page 46: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Business process modelingBusiness process modeling

Page 47: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

(simulation) event state transition diagram(simulation) event state transition diagram

Page 48: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Observer PatternObserver Pattern

Page 49: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Basic OO TechnologyBasic OO Technology

Technology determines the effectiveness of the approach

Page 50: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

ConceptsConcepts

• Encapsulation• Data hiding• Inheritance• Polymorphism

Page 51: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

EncapsulationEncapsulation

• An object contains data and methods• It provides a boundary:• to the world outside• to its ‘children’

Page 52: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Information hidingInformation hiding

• Reduces complexity• Allows you to defer implementations• Remember: Ignorance is bliss• Helps in decoupling components

Page 53: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

InheritanceInheritance

• A mechanism for code-sharing• Supports incremental development• Organize by classification• Allows for abstract interfaces

Page 54: Object-Oriented Software Engineering

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

Page 55: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Page 56: Object-Oriented Software Engineering

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

Page 57: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Design by ContractDesign by Contract

Abstract Data Types

ADT = state + behavior

Object-Oriented Modeling

data oriented

Page 58: Object-Oriented Software Engineering

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

Page 59: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

object = information + responsibilities

Contracts

a set of services

Behavioral refinement

improving contracts

Page 60: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Conformance -- behavioral refinement

if B refines A then B may be used wherever A is allowed

Page 61: Object-Oriented Software Engineering

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

Page 62: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Object-Oriented Modeling

prototyping, specification, refinement, interactions

OOP = Contracts + Refinements

Page 63: Object-Oriented Software Engineering

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

Page 64: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

A catalogue of design patternsA catalogue of design patterns

Subsections:

Creational Patterns Structural Patterns Behavioral Patterns

Page 65: Object-Oriented Software Engineering

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

Page 66: Object-Oriented Software Engineering

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

Page 67: Object-Oriented Software Engineering

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

Page 68: Object-Oriented Software Engineering

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,

Page 69: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Creational PatternsCreational Patterns

Page 70: Object-Oriented Software Engineering

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

Page 71: Object-Oriented Software Engineering

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

Page 72: Object-Oriented Software Engineering

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

Page 73: Object-Oriented Software Engineering

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!

Page 74: Object-Oriented Software Engineering

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

Page 75: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Page 76: Object-Oriented Software Engineering

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

Page 77: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Objects versus componentsObjects versus components

Subsections:

Definitions The technology matrix Component myths

Page 78: Object-Oriented Software Engineering

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

Page 79: Object-Oriented Software Engineering

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

Page 80: Object-Oriented Software Engineering

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 * +

Page 81: Object-Oriented Software Engineering

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

Page 82: Object-Oriented Software Engineering

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?

Page 83: Object-Oriented Software Engineering

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

Page 84: Object-Oriented Software Engineering

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]

Page 85: Object-Oriented Software Engineering

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]

Page 86: Object-Oriented Software Engineering

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.

Page 87: Object-Oriented Software Engineering

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]

Page 88: Object-Oriented Software Engineering

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]

Page 89: Object-Oriented Software Engineering

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

Page 90: Object-Oriented Software Engineering

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie

Yet beware ofYet beware of

• the learning curve• simplified hype• cutting edge technology• (over) ambitious projects

Page 91: Object-Oriented Software Engineering

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.

Page 92: Object-Oriented Software Engineering

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