vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Object-Oriented Software Engineering Anton Eliëns Vrije Universiteit, Amsterdam.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie The San Francisco Framework How useful is an OO framework?
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Object-Oriented Software Engineering Anton Eliëns Vrije Universiteit, Amsterdam.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Web Applications – The Object Web combining servers and client-applications multiple.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Software architecture architecture -- components and boundaries case study --
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
COM vs. CORBA.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Basic OO Technology Technology determines the effectiveness of the approach.
Basic Concepts in Component-Based Software Engineering
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Chapter Object-Oriented Practices. Agenda Object-Oriented Concepts Terminology Object-Oriented Modeling Tips Object-Oriented Data Models and DBMSs.
1 IBM SanFrancisco Product Evaluation Negotiated Option Presentation By Les Beckford May 2001.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Conclusions OO offers –a valid metaphor for SE –powerful technology –maturing.
Object Oriented System Development with VB .NET
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Principles of Object-Oriented Software Development Introduction.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Themes and Variations abstraction -- the object metaphor modeling -- understanding.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Component Technology objects versus components -- definitions interoperability.
Course Instructor: Aisha Azeem
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Idioms and Patterns polymorphism -- inheritance and delegation idioms -- realizing.
Introduction To System Analysis and design
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Design Patterns.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
Chapter 1: Introduction to Systems Analysis and Design
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
Object Oriented Analysis & Design & UML (Unified Modeling Language)1 Part V: Design The Design Workflow Design Classes Refining Analysis Relationships.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 3: SOA Reference Model OASIS 2006.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Object-Oriented Software Engineering Anton Eliëns Vrije Universiteit, Amsterdam.
25 April Unified Cryptologic Architecture: A Framework for a Service Based Architecture Unified Cryptologic Architecture: A Framework for a Service.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 SOA Seminar Seminar on Service Oriented Architecture SOA Reference Model OASIS 2006.
Basic Characteristics of Object-Oriented Systems
Design Patterns: MORE Examples
Chapter 1: Introduction to Systems Analysis and Design
Systems Analysis and Design With UML 2
OO Methodology OO Architecture.
Inventory of Distributed Computing Concepts and Web services
Inventory of Distributed Computing Concepts
Chapter 20 Object-Oriented Analysis and Design
An Introduction to Software Architecture
Chapter 1: Introduction to Systems Analysis and Design
Quality Assurance for Component-Based Software Development
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Object-Oriented Software Engineering Anton Eliëns Vrije Universiteit, Amsterdam

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Topics: Basic OO technology Application Framework(s) Universal Modeling Language Design Patterns Project Management Current developments and trends

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Introduction If OO is the Answer, What is the Question?

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Keywords 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 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 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 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 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 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 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 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 - 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 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 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 - layers Core Business Process Layer - the highest Common Business Objects Layer - middle Foundation Layer - lowest

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Core 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 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 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 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 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 Example 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 - 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?

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-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 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 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 of leading experts in object-oriented analysis and design, Grady Booch, Jim Rumbaugh and Ivar Jacobson, also known as the three amigos, all currently employees of Rational.

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Unified 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 and UML Distilled, [Fowler97].

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Class diagrams

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Use cases

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Interaction diagrams

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Package and component diagrams

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie State and activity diagrams

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Event annotations event(arguments)[conditions]/action

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Discussion

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie The UML toolbox is very rich. It allows you to model every conceivable aspect of the system. Nevertheless, to my mind, graphical models are not always appropriate. But, on the other hand, most people like them and they often make a good impression, suggesting clarity...

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Examples - interactive drawing tool - the reactor pattern (events) - business process modeling - the observer pattern

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Interactive drawing tool

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Reactor (event-handling) pattern

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Reactor - Interaction diagram (events)

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Business process modeling

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie (simulation) event state transition diagram

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Observer Pattern

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Basic OO Technology Technology determines the effectiveness of the approach

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Concepts Encapsulation Data hiding Inheritance Polymorphism

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Encapsulation An object contains data and methods It provides a boundary: to the world outside to its ‘children’

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Information hiding Reduces complexity Allows you to defer implementations Remember: Ignorance is bliss Helps in decoupling components

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Inheritance A mechanism for code-sharing Supports incremental development Organize by classification Allows for abstract interfaces

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Polymorphism 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 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 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 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, canonical classes, event-driven computation

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie A catalogue of design patterns Subsections: Creational Patterns Structural Patterns Behavioral Patterns

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie A 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 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 Patterns

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Creational 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 Patterns Pattern Alias Remarks Composite part/whole collections of components Flyweight part/whole* extrinsic state, many objects Adaptor wrapper resolves inconsistencies Bridge handle/body abstraction to implementation Decorator wrapper to introduce functionality Facade wrapper* provides unified interface Proxy surrogate to defer... remote, virtual, protection object and class composition

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Behavioral 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 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 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 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 components Subsections: Definitions The technology matrix Component myths

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Definitions 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 of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties. Szyperski

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie The 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 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 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 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 Views logical -- functional requirements process -- performance, availability, distribution physical -- scalability, configuration development -- organization of software modules scenarios -- instances of use cases Definitions [Kruchten95]

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie The software architecture of a program or computing system is the structure of the system, which comprises software components, the externally visible properties of those components, and their interrelationships. Bass et al.

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Technological 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 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 Conclusions 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 of the learning curve simplified hype cutting edge technology (over) ambitious projects

vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie 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 material Chapter 1 Additional material –Ch 3: Design by Contract –Ch 11: Methods and Tools –Object Tutorials Resources – -- Rational Rose, UML – -- IBM Java San Francisco Framework Papers and Reports – -- UML Summary – -- San Francisco Technical Summary