Object Oriented Analysis And Design



What is an Object?
• A self-contained package, with specific variables (attributes) and methods (behaviors). • An object stands alone. • An object’s implementation is purposely hidden from us.

CIS 554


What is an Object?

Visual representation of a software object

CIS 554


What is an Object?

A bicycle modeled as a software object
CIS 554 4

CIS 554 5 .What is a Class? • A class is a blueprint or prototype that defines the variables and the methods common to all objects of a certain kind.

CIS 554 6 . • Memory is allocated for Objects not for Classes. • Classes just sit there. • Object is run-time instance of class. objects do the real work.What is a Class? • Class is an implementation of an abstract data type and so encapsulates both data and operations.

What is a Message? • The object to which the message is addressed (YourBicycle) The name of the method to perform (changeGears) Any parameters needed by the method (lowerGear) • • CIS 554 7 .

increment second.time of day.provides time of day. audible alarm – hour hand. second hand.time of day. sound bell CIS 554 8 .Example Object • Description . minute hand. and an audible indication of a user-defined time during the day • Interface • Attributes • Behaviors – Inputs . alarm time – Outputs . bell – Increment hour. increment minute.

An object can “morph” itself based on the context in which it is currently used. already defined object. adding to its capabilities and public interface. objects can be used in other parts of the system. – With very discrete and finite capabilities.. • Polymorphism • Re-useable CIS 554 9 . Only thing exposed is the “public interface” – Creating one object from another. and hidden from the rest of us. – Specific object behavior is determined within a run-time context.Key Object-Oriented Characteristics • Encapsulation (Information Hiding) • Inheritance – Attributes and behavior are rolled into the object. or within other systems.

more complex objects requiring time. CIS 554 10 . washing machine timer controller. – Polymorphism • Not applicable – Re-usable • Our clock can be used in thousands of applications as is. and alert us when a certain time has occurred. minutes and seconds.g. • Do we know the mechanisms for incrementing hours. E. and an alarm. minutes and seconds? Sounding the alarm? – Inheritance • We can use our simple clock object to create additional.Clock Object • How does our clock rate as an object? – Encapsulation • Provides hour. We can use it in any application that requires us to keep track of time.. etc. chronograph.

What is OOAD? • Object Oriented Analysis & Design is the art of developing systems based on a set of cooperating objects. – Success depends upon systems analysis and software development teams understanding OOAD and available tools. – Experience allows you to develop the craft. – This stuff is not an exact science. CIS 554 11 . – Smooth and natural transition occurs between analysis and design teams due to nature of defined processes. Anyone who tells you that is mistaken. but it can never be mastered.

Understanding the principles of OOAD.What is OOAD? • OOAD facilitates a variety of processes for analyzing and developing systems. – A methodology. allows you to “define” or tailor your own process. – The main advantage of OOAD is its integration of systems analysis and software development teams through process definition and modeling techniques available. CIS 554 12 . – There is no right or wrong process to implement OOAD. as well as the toolkits available.

James Rumbaugh • “A picture is worth a thousand words.” – Ancient Proverb Order Business Process Item CIS 554 Ship via 13 .Visual Modeling • “Modeling captures essential parts of the system. Visual modeling is modeling using standard graphical notations” – Dr.

What is UML? • UML stands for Unified Modeling Language • The UML combines the best of the best from – – – – Data Modeling concepts (Entity Relationship Diagrams) Business Modeling (work flow) Object Modeling Component Modeling • The UML is the standard language for visualizing. constructing. and documenting the artifacts of a softwareintensive system. specifying. • It can be used with all processes. throughout the development life cycle. and across different implementation technologies CIS 554 14 .

Implement. Test and Document systems. CIS 554 15 . • It is a visual modeling tool used to implement a process and methodology.What is UML? • The Unified Modeling Language is used to Specify. Visualize. • UML captures the elements and artifacts of the development of object oriented systems and software. • UML also facilitates the Specification and Visualization of ANY system (whether it appear as an object-oriented system or not).

What UML is NOT • A process. Third party vendors can build a tool based upon it without prior permission. • Proprietary – UML is free to use and distribute. – Companies can use it in their design documentation without prior permission. CIS 554 16 . Processes include: – – – – – Waterfall Spiral Development Incremental Agile etc.

For example: – What are the uses of the system? – What are the relationships between uses in the system? – What are the inputs and outputs. or interface to the system? – What are the objects in the system and their relationships? – How is the system deployed? CIS 554 17 .Static Modeling • This defines the non-changing characteristics of the system.

and circumstances of those states. that the objects in the system can be in at any particular time? – How does the system behave over time as a result of the environment in which it is in? CIS 554 18 .Dynamic Modeling • This defines the changing characteristics of the system. For example: – What are the various timing aspects of the uses of the system? – What are the states.

e. – Depicts relationships and dependencies of classes in the system. of the system. objects) in the system. – Depicts relationships and dependencies of instantiated classes (I.UML Static Diagrams • Use Case • Class – Depicts functional capabilities. • Object CIS 554 19 . or uses.

• Deployment – Depicts how system components are implemented in hardware in the system. • Component – Depicts relationships and dependencies of system components.UML Static Diagrams • Structure Diagrams – Depicts the main components of the system (hardware. CIS 554 20 . human) and the interfaces between. software. • Package – Depicts relationships and dependencies of high-level components in the system.

Use Case Diagram System Boundary Actor Bank System * * * Bank Member * * ** Deposit Withdrawal * ATM * * Borrow * * Bank Manager Association Print Account Information Role Use Case CIS 554 21 .

Class Diagram class role association name Customer -corporation owns4 1 -overseas Portfolio * 1 contains multiplicity * Instrument strict aggregation -discount broker 3 manages 1 Stock Broker 1 association generalization (inheritance) Bond Stock Mutual Fund CIS 554 22 .

Object Diagram IBM:Customer MegaFund:Portfolio George:Stock Broker contains contains Asia:Mutual Fund Europe:Mutual Fund CIS 554 23 .

Structure Diagram CIS 554 24 .

exe CIS 554 25 .src Main .obj Client Program .Component Diagram Window Handler .obj Graphics Lib Main .src Window Handler .

Package Diagram Resource Manager Window Manager DiskDrives KeyBoard CIS 554 26 .

Deployment Diagram Client A: Compaq Pro TCP/IP App Server: Ultra 20 TCP/IP Database Server: Ultra 20 TCP/IP Client B: Compaq Pro CIS 554 27 .

UML Dynamic Diagrams • Interaction Diagrams Depict timing of events and messages within Use Cases and classes in the system. They are interchangeable. left to right fashion. – Sequence • Depicts timing of events in a sequential top to bottom. CIS 554 28 . – Collaboration • Depicts timing of events using a sequential numbering.

though it can also be used to describe other activity flows. and which events cause the state to change. • Activity – Depicts the activities performed in an operation .UML Dynamic Diagrams • State – Depicts all the possible states that objects of the class can have. CIS 554 29 . such as a use case or an interaction.

Sequence Diagram : Computer Us er :Computer :PrintServer :Printer :Queue 1: Print (file) 2: Print (file) 3: Queue Job 4: Send J ob to Printer 5: Print Complete 6: Print Complete 7: Print Complete CIS 554 30 .

Collaboration Diagram :Computer :Queue 5: Job Complete 1: Print (file) 2: Queue Job 3: Print Job :PrintServer 4: Job Complete :Printer CIS 554 31 .

State Diagram On First Floor go up( floor ) Moving Up arrive at first floor Moving To First Floor arrive at floor go up( floor ) Moving Dow n arrive at floor Idle go dow n( floor ) time-out CIS 554 32 .

Activity Diagrams CIS 554 33 .

Visual Modeling With Class Diagrams CIS 554 34 .

Class Diagram ::TapeDeck currentState : boolean TurnON () Play () Stop () TurnOFF () ::Amplifier currentVolume : short 1 currentState : boolean TurnON () SetVolume () AmplifySignal () AdjustPreampInput () 1 * 2.4 ::Speaker InputPower : double OverdriveAlert : boolean OutputSound () ActivateOverdriveAlert () CIS 554 35 .

TurnON ON Indicator Illuminated View Equipment ON ON Indicator Illuminated Ins ert Tape P res s P lay Push PLAY Button TapeDeck.TurnON Push ON Button Amplifier.SetVolume Observe Correct Volume Current Volume Indicated Listen to Music CIS 554 36 .Play Amplifier.AmplifySignal Sound Heard Speaker.OutputSound S et V olum e Turn Volume Control Amplifier.Activity Diagram User Speaker TapeDeck Amplifier Turn Stereo ON Push ON Button TapeDeck.

Sequence Diagram User Instance :TapeDeck TurnON TurnON Play OutputSound SetVolume Instance :Amplifier Instance :Speaker Turn Stereo ON Turn Amp ON Insert Tape Start Tape Output Signal Adjust Volume Listen to Music CIS 554 37 .

the system must go through the Requirements and Analysis phases using Use Cases. – As a minimum. the systems and software teams must be an integrated team to gain the most benefits. CIS 554 38 . • Most importantly.Thoughts on OOAD/UML • The OOAD methodology. will only work if the entire project team embraces it. and any process that uses it. – More on this later. • You cannot implement a system successfully unless the entire system is analyzed and developed in a consistent manner. • Everyone from the Program Manager on down must be convinced of it’s utility.

construction. design. Goals: portability. – transforming the system specification into one for a particular choice of platform. maintenance and modification Three essential elements: – specifying a system independently of the platform that supports it. deployment. interoperability and reusability Prescribes the kinds of model to be used in specifying a system. – specifying platforms. how those models are prepared and the relationships between them • • CIS 554 39 .Model Driven Architecture (MDA) • • An approach to system development using models as a basis for understanding. operation.

• Specifies 3 kinds of viewpoint model for a system: • Specifies transformations between models CIS 554 40 . – a platform specific model (PSM): a view of a system that combines the specifications in the PIM with a specification of the use of a particular type of platform.reflecting different concerns – providing a way of dealing with system complexity – a computation independent model (CIM): a view of a system that specifies its function without specifying details of its structure – a platform independent model (PIM): a view of a system that specifies its computational structure independent of any specific platform .What MDA Does • Identifies different viewpoints on a system – different abstractions .usable with different platforms of similar type.

• Complete requirements.MDA Ultimate Goal? • Complete. executable model. CIS 554 41 . • 100% automatic code generation from the model. design and test information contained in models.

com – Rational site with a plethora of information about UML and the Rational process.0 specification CIS 554 42 .rational.org/technology/documents/formal/uml.UML Resources • http://www. • http://www.omg.htm – UML 2.

Sign up to vote on this title
UsefulNot useful