george wilkie

28
Object-Oriented Software Engineering - The professional Developer’s Guide(on OMG’s OOA/OOD proposal) George Wilkie

Upload: sabin

Post on 02-Feb-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Object-Oriented Software Engineering - The professional Developer’s Guide(on OMG’s OOA/OOD proposal). George Wilkie. Contents. Why should I consider OOA&D OO analysis OO design A reference model for OOA&D Summary of some OOA&D methods. Experience with OOA&D Choosing an OOA&D method - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: George Wilkie

Object-Oriented Software Engineering - The professional Developer’s Guide(on OMG’s

OOA/OOD proposal)

George Wilkie

Page 2: George Wilkie

Contents

• Why should I consider OOA&D• OO analysis• OO design• A reference model for OOA&D• Summary of some OOA&D methods.• Experience with OOA&D• Choosing an OOA&D method• Summary and conclusion.

Page 3: George Wilkie

4.1 Why should I consider OO analysis and design

• OO approaches are seeking to resolve some problems that tranditional structured analysis and design.

• The Objects model in OOA&D provide a more realistic representation, which an end user can more readily understand.

• OOA&D provides a consistent approach which maps cleanly onto a physical design and implementation.

• OOA&D provides a framework which supports reuse and extensibility.

Page 4: George Wilkie

4.2 OO analysis

• The result of analysis are requirements specifications which clearly describe what the software external behavior should be, without any prejudgement about how the software will produce this exact behaviour.

• Phases of analysis and design. (P74 figure 4.2)

Page 5: George Wilkie

4.2.1 Essence of OO analysis

• Class relationship diagrams

• Class inheritance diagrams.

• Object interaction diagrams

• Object state tables.

• User access diagrams.

• Textual specification documents.

Page 6: George Wilkie

4.2.2 OO analysis vs Structured analysis

• OO technique provides a more consistent approach to system modelling.

• OO view more closely reflects the real world where humans are used to thinking in terms of things which possess both attributes and behaviours.

• OO provides reuse possibility from the class hierarchy views of the system.

• OO analysis is able to model the user interface to a system.

Page 7: George Wilkie

4.2.3 Shortcomings of OOA

• OO analysis techniques are still the subject of much debate and research.

• The mixing of analysis and design methods is a problem with OO techniques.

Page 8: George Wilkie

4.3 OO design.

• The difference between OO analysis and design is not always very clear.

• Design considerationsinclude hardware and software issues.

Page 9: George Wilkie

4.3.1 Problem with traditional structured design

• It fails to take the evolutionary nature of software systems into accounts.

• Often the data structure aspect is neglected.

• Working top-down does not promote reusability.

Page 10: George Wilkie

4.3.2 Class and application design

• Class design– Identify classes.

– Identify subclass within each class.

– Identify abstract behaviour of each class

– Identify common behavior

– Identify specific types of behavior

• Application design is a top-down adn bottom-up process, designing teh application from the existign building blocks.

Page 11: George Wilkie

4.3.3 Benefits from OO design

• Information hidding.

• Weak coupling

• Strong cohesion

• Exensibility

Page 12: George Wilkie

4.3.4 Shortcomings of OOD

• Identifying class.

• Blurred boundaries between design and both analysis and implemetation.

• Variable degrees of OO support in existing CASE tools.

• Elaborate and complex notations.

Page 13: George Wilkie

4.4 A reference Model for analysis and design

• A reference model is defined in order to compare OO analysis and design methods.

• P99 Figure 4.12

• P100 Figure 4.13

Page 14: George Wilkie

4.5 Summary of some OO analysis and design methods

• OO analysis and design• Booch method• OOSE • OSMOSYS• OO systems analysis• OMT• RDD• OORASS• HOOD• OOSD• Object-Oriented software development

Page 15: George Wilkie

4.5.1 OO analysis and design (Coad and Yourdon)

• Analysis process: five layers

• P108 notation

• Design process: four components

• Pragramtics: CASE tool support

• Discussion: Simplcity of notation, design phase is sketchy and need evlove.

Page 16: George Wilkie

4.5.2 Booch method

• Design process: Incremental design, a spiral development model.

• Notation: rich in symbols.

• Pragmatics: Rational Rose.

• Discussion: complicated notation, a set of techniques without a well-defined process.

Page 17: George Wilkie

4.5.3 OOSE

• The method encompass analysis and design.• From requirements models to implementation

models.• Notation: P122 P123• Pragmatic: CASE tool, documentation and published

text.• Discussion: Two stage analysis procedure provides a

more robust model.(use-case, analysis model)

Page 18: George Wilkie

4.5.4 OSMOSYS

• A propretary method• The process: Two development apporaches:

Functional approach and OO approach.• Notation: 8 main diagrams.• Pragmatic: A toolset.• Discussion: well-documented process and

the tool support. Concentrated on teh techniques and overall process.

Page 19: George Wilkie

4.5.5 Object-oriented systems analysis

• An adaptation of traditional structured methods using entity modelling.

• The analysis process: three steps.

• Notation: different diagrams at different stages.

• Discussion: most applicable to real-time systems. Lack design procedure and process

Page 20: George Wilkie

4.5.6 OMT

• The process: three phase (analysis, system design and object design)

• Notation: P134 Fig 4.30

• Pragmatic: OMTool. Published text.

• Discussion: place more emphasis on specifying what an object is rather than how it is used.

Page 21: George Wilkie

4.5.7 RDD• A revolutionary approach.• The process: The process requires that a written

specificaton existes and concentrates on analysing these requirements.

• Notation: CRC (class, responsibility and collaboration)

• Pragmatic: CRC is limited in use to about 20-30 classes.

• Discussion: Truely OO approach to analysis. In RDD the analysis phase is part of design.

Page 22: George Wilkie

4.5.8 OORASS• The concepts and techniques used in OORASS is

quite different from others.• Concepts: Role and role modelling. Role models

focus on describing patterns of interaction without connecting the interactionto particular objects.

• Process: Iterative, 6 steps.• Notation: P141 Fig 4.33 , text notation exists.• Pragmatic: published articles. CASE tool, courses.• Discussion: A proprietary method. Using roles to

view analysis .

Page 23: George Wilkie

4.5.9 OOSD

• Notation:elaborate notations.

• Pragmatic: CASE tool (from IDE)

• Discussion: Only a notation for OO design.

Page 24: George Wilkie

4.5.10 HOOD method

• Grew out of Ada community

• Map its features directly to Ada concepts.

• Not properly Object-oriented.

Page 25: George Wilkie

4.5.11 The Object-oriented software development method

• The process: requirement analysis, preliminary design and detailed design.

• Notation: interaction, hierarchy and class diagrams, P148 Fig 4.34

• Pragmatic: a highly extensible CASE tool• Discussion: well suited to the development of real

time applications.Object interaction diagrams are the best feature, while class diagrams are not well defined.

Page 26: George Wilkie

4.6 Experience with OO analysis and design

• A foundamental objective of OO analysis and design is to derive a good class hierarchy.

• Four basic kind of class can be identified during the developement .– Foundation class.– Application framework classes. – Business classes. – Application classes.

Page 27: George Wilkie

4.7 Choosing a OO analysis and design method

• Conceptual issues.

• General method issues.

• Techniques.

Page 28: George Wilkie

4.8 summary

• Introduced techniques adn tools to support OO analysis and design.

• Discussed the relative merits and problems with OO compared to structured techniques.

• Some methods are strong on process adn techniques but weak on notation while other others are strong on notation but the process is almost non-existent.