Object Oriented Software Development CIS Today: Object Oriented Analysis

Similar documents
Patterns and Testing

Chapter 5: Structural Modeling

What are the characteristics of Object Oriented programming language?

OO System Models Static Views

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel

Object-Oriented Systems Analysis and Design Using UML

MechEng SE3 Lecture 7 Domain Modelling

Inheritance and Polymorphism

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

University of Calgary Department of Electrical and Computer Engineering. SENG : Object Oriented Analysis and Design Behrouz Homayoun Far

Java Object Oriented Design. CSC207 Fall 2014

CMSC201 Computer Science I for Majors

CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D

Objects and Classes. Amirishetty Anjan Kumar. November 27, Computer Science and Engineering Indian Institue of Technology Bombay

SE 1: Software Requirements Specification and Analysis

UML Primer. -Elango Sundaram

LECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge

Object Oriented Analysis & Design (OOAD)

COP 3330 Final Exam Review

Classes, objects, methods and properties

Exam Duration: 2hrs and 30min Software Design

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

Object-Oriented Design

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright

2D1358 Object Oriented Program Construction in C++ Exercises & Labs. Course Registration / Accounts. Course Literature

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

CS-202 Introduction to Object Oriented Programming

Inheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

C++ Important Questions with Answers

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation

Object-Oriented Design (OOD) and C++

Object- Oriented Design with UML and Java Part I: Fundamentals

Object-oriented basics. Object Class vs object Inheritance Overloading Interface

Overview. OOP: model, map, reuse, extend. Examples of objects. Introduction to Object Oriented Design

Design issues for objectoriented. languages. Objects-only "pure" language vs mixed. Are subclasses subtypes of the superclass?

Inheritance. OOP components. Another Example. Is a Vs Has a. Virtual Destructor rule. Virtual Functions 4/13/2017

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci)

Inheritance and Substitution (Budd chapter 8, 10)

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

Lecture 3. COMP1006/1406 (the Java course) Summer M. Jason Hinek Carleton University

MSO Lecture 3. Wouter Swierstra. September 14, 2015

CS111: PROGRAMMING LANGUAGE II. Lecture 1: Introduction to classes

Building custom components IAT351

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011

System Analysis and Design/ Object-Oriented System Modeling

Object-Oriented Programming in C++/Handout 01 Page 1 of 8

Programming I. Course 9 Introduction to programming

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

May Comp-B 11, Advanced Software Design. 3 hours duration

1. Write two major differences between Object-oriented programming and procedural programming?

Object-Oriented Software Engineering Practical Software Development using UML and Java

06. Analysis Modeling

Chapter 2: The Object-Oriented Design Process

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism

Data Abstraction. Hwansoo Han

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams. Emina Torlak

JAVA: A Primer. By: Amrita Rajagopal

Software Engineering II - Specimen Exam Answers Page 1 of 10

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

1B1b Inheritance. Inheritance. Agenda. Subclass and Superclass. Superclass. Generalisation & Specialisation. Shapes and Squares. 1B1b Lecture Slides

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.

Modelling with Classes. CITS1220 Software Engineering

Basic Structural Modeling. Copyright Joey Paquet,

22/09/2012 INFO2110. Copyright Warning. Revision of class diagram. Overview. Purpose of class diagram. Generalization Relationship

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Programming Language Concepts Object-Oriented Programming. Janyl Jumadinova 28 February, 2017

Introduction to Object-Oriented Programming

Object oriented Programming

Introduction to OOP. Procedural Programming sequence of statements to solve a problem.

Requirements & Domain Models. Lecture 13: Object Oriented Modelling. Nearly anything can be an object. Object Oriented Analysis

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson

Inheritance, and Polymorphism.

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation

Why use inheritance? The most important slide of the lecture. Programming in C++ Reasons for Inheritance (revision) Inheritance in C++

1. Introduction to Object Oriented Software Development

Day 4. COMP1006/1406 Summer M. Jason Hinek Carleton University

1B1b Classes in Java Part I

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1

Data Structures (list, dictionary, tuples, sets, strings)

2. The object-oriented paradigm!

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Inheritance, Polymorphism, and Interfaces

CREATED BY: Muhammad Bilal Arslan Ahmad Shaad. JAVA Chapter No 5. Instructor: Muhammad Naveed

CSCU9T4: Managing Information

Introduction to Inheritance

OBJECT ORIENTED PROGRAMMING

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

CS 251 Intermediate Programming Inheritance

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

Inheritance CSC9Y4. Inheritance

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

Transcription:

Object Oriented Software Development CIS 50-3 Marc Conrad D104 (Park Square Building) Marc.Conrad@luton.ac.uk Today: Object Oriented Analysis The most single important ability in object oriented analysis and design is to skillfully assign responsibilities to software components. 13/09/04 18:01:07 Marc Conrad - University of Luton 1

What is an Object? An object is an entity which consists of a number of operations and a state which remembers the effect of the operations. State is regarded as information which is saved in a set of variables. Operations (aka. methods) read and/or affect the information. The only part that can be seen by an outsider are the operations. For this reason, operations are also known as behaviours. Information is hidden to the outsider. 13/09/04 18:01:07 Marc Conrad - University of Luton 2

What is an object? Tangible Things as a car, printer,... Roles as employee, boss,... Incidents as flight, overflow,... Interactions as contract, sale,... Specifications as colour, shape, 90 80 70 60 50 40 30 20 10 0 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr East West North An object represents an individual, identifiable item, unit, or entity, either real or abstract, with a well-defined role in the problem domain. An "object" is anything to which a concept applies. 13/09/04 18:01:07 Marc Conrad - University of Luton 3

Example: A Person as an Object I nformation: Name, Age, Address, Friends,... Behaviour: jump bend legs stretch legs lift arms,... walk talk 13/09/04 18:01:07 Marc Conrad - University of Luton 4

UML diagram of the Person class -name: string -yearofbirth: int Person +create(thename: string,theyear: int) +jump() +getage(this year: int):int Name Private data (attributes) Initialisation (constructor) Public behaviour (methods)

Java code of the Person class public class Person { private String name; private int yearofbirth; Name Private data (attributes) public Person(String thename, int theyear) { name = thename; yearofbirth = theyear; } public void jump() { System.out.println(name + " jumps"); } public int getage(int thisyear) { return thisyear - yearofbirth; } } Initialisation (constructor) Public behaviour (methods)

C++ code of the Person class #include <iostream> class Person{ private: char name[20]; int yearofbirth; public: Person(char *thename, int theyear) { yearofbirth = theyear; sprintf(name, thename); } void jump() { std::cout << name << " jumps" << std::endl; } int getage(int thisyear) { return thisyear - yearofbirth; } }; Name Private data (attributes) Initialisation (constructor) Public behaviour (methods)

Basic Terminology: Classes and Instances A Class is a template or abstract description of the same type of objects. It defines the common features of the objects, that is the operations and information structure. An Instance is an object created from a class. An instance s behaviour and information structure is defined in the class. Its current state (values of instance variables) is determined by operations performed on it. 13/09/04 18:01:07 Marc Conrad - University of Luton 8

Basic Terminology: Inheritance http://www.cs.nmsu.edu/~rth/cs/cs177/map/inheritd.html: Inheritance is a way of relating two classes so that one class may use another class's members without redefining them. http://www.parashift.com/c++-faq-lite/basics-of-inheritance.html: Inheritance is what separates abstract data type (ADT) programming from OO programming. The basic principle is simple: A class gets the state and behaviour of another class and adds additional state and behaviour. 13/09/04 18:01:07 Marc Conrad - University of Luton 9

What is the purpose of Inheritance? Specialisation: Extending the functionality of an existing class. Generalisation: Sharing commonality between two or more classes. Polymorphism. Implementation of different behaviour to the same message (depending on the type of the object). 13/09/04 18:01:07 Marc Conrad - University of Luton 10

Inheritance - related Terminology Derived class or subclass or child class. A class which inherits some of its attributes and methods from another class. Base class or superclass or parent class. A class from which another class inherits. Ancestor. A class s ancestors are those from which its own superclasses inherit. Descendant. A class s descendants are those which inherit from its subclasses. 13/09/04 18:01:07 Marc Conrad - University of Luton 11

Inheritance vs. Aggregation Inheritance means that one class inherits the characteristics of another class. This is also called a is a relationship: A car is a vehicle Aggregation describes a has a relationship. One object is a part of another object. A car has wheels A student is a person A person has legs 13/09/04 18:01:07 Marc Conrad - University of Luton 12

Basic Terminology: Polymorphism Original meaning: Having many forms The sender of a stimulus doesn t need to know the receiver s class. Different receivers can interpret the message in their own way. Consequence: different receivers can response to the same stimulus based on their interpretation. So we can have a variety of objects who process the same piece of data in different ways. Implemented via method overloading and overriding. 13/09/04 18:01:07 Marc Conrad - University of Luton 13

Basic Terminology: Encapsulation Encapsulation is the process of hiding the implementation details of an object. The only access to manipulate the object data is through its interface. It protects an object s internal state from being corrupted by other objects. Also, other objects are protected from changes in the object implementation. Encapsulation allows objects to be viewed as black boxes. Communication is achieved through an interface. 13/09/04 18:01:07 Marc Conrad - University of Luton 14

Example: Encapsulation Encapsulation is the practice of including in an object everything it needs hidden from other objects. The internal state is usually not accessible by other objects. But see also: http://www.parashift.com/c++-faq-lite/classes-and-objects.html#faq-7.6 Public: Has an age and can jump. Private: Has a name and a year of birth. 13/09/04 18:01:07 Marc Conrad - University of Luton 15

The Analysis Phase In software engineering, analysis is the process of converting the user requirements to system specification (system means the software to be developed). System specification, also known as the logic structure, is the developer s view of the system. Function-oriented analysis concentrating on the decomposition of complex functions to simply ones. Object-oriented analysis identifying objects and the relationship between objects. 13/09/04 18:01:07 Marc Conrad - University of Luton 16

Object Oriented Analysis Identifying objects: Using concepts, CRC cards, stereotypes, etc. Organising the objects: classifying the objects identified, so similar objects can later be defined in the same class. Identifying relationships between objects: this helps to determine inputs and outputs of an object. Defining operations of the objects: the way of processing data within an object. Defining objects internally: information held within the objects. 13/09/04 18:01:07 Marc Conrad - University of Luton 17

Three ways to do Object Oriented Analysis (there are more ). Conceptual model (Larman) Produce a light class diagram. CRC cards (Beck, Cunningham) Index cards and role playing. Analysis model with stereotypes (Jacobson) Boundaries, entities, control. A good analyst knows more than one strategy and even may mix strategies in order to identify the objects and relationships for the design phase. 13/09/04 18:01:07 Marc Conrad - University of Luton 18

Conceptual Model - Overview A conceptual model is a representation of concepts in a problem domain. In UML it is basically a class diagram without operations. It may show: Concepts Associations of concepts Attributes of concepts 13/09/04 18:01:07 Marc Conrad - University of Luton 19

The conceptual model: Strategies to Identify Concepts Finding Concepts with the Concept Category List. Finding Concepts with Noun Phrase Identification. A central distinction between object oriented and structures analysis: division by concepts (objects) rather than division by functions. 13/09/04 18:01:07 Marc Conrad - University of Luton 20

The Concept Category List physical or tangible objects specifications, designs, descriptions of things places transactions transaction line items roles of people containers of other things things in a container abstract noun concepts organisations events processes rules and policies catalogues records services manuals, books 13/09/04 18:01:07 Marc Conrad - University of Luton 21

Finding Concepts with Noun Phrase Identification Identify the noun and noun phrases in textual descriptions of a problem domain and consider them as candidate concepts or attributes. Care must be applied with this method. A mechanical noun-to-concept mapping isn t possible, and words in natural languages are ambiguous (especially English). 13/09/04 18:01:07 Marc Conrad - University of Luton 22

The return item Use case. Exercise: Find the Nouns! The system controls a recycling machine for returnable bottles, cans and crates. The machine can be used by several customers at the same time and each customer can return all three types of item on the same occasion. The system has to check, for each item, what type has been returned. The system will register how many items each customer returns and when the customer asks for a receipt, the system will print out what was deposited, the value of the returned items and the total return sum that will be paid to the customer. An operator also (not in return item Use Case) 13/09/04 18:01:07 Marc Conrad - University of Luton 23

Case Study: Nouns in The Recycling machine - The return item Use case. The system controls a recycling machine for returnable bottles, cans and crates. The machine can be used by several customers at the same time and each customer can return all three types of item on the same occasion. The system has to check, for each item, what type has been returned. The system will register how many items each customer returns and when the customer asks for a receipt, the system will print out what was deposited, the value of the returned items and the total return sum that will be paid to the customer. An operator also (not in return item Use Case) 13/09/04 18:01:07 Marc Conrad - University of Luton 24

Case Study: Nouns found in the description: recycling machine bottles, cans, and crates machine customers, customer types of item, item, type, returned items system receipt return sum 13/09/04 18:01:07 Marc Conrad - University of Luton 25

Case Study: Discussion of recycling machine. recycling machine bottles, cans and crates machine customers, customer types of item, item, type, returned items system receipt return sum This concept is the overall system. As we consider only one single use case, it is better to name this concept in the context of this use case, e.g. Deposit item receiver 13/09/04 18:01:07 Marc Conrad - University of Luton 26

Case Study: Discussion of bottles, cans, and crates. deposit item receiver bottles, cans, and crates machine customers, customer types of item, item, type returned items plural. system receipt return sum In a conceptual model it is usually better to use singular and multiplicities instead of As bottle, can and crate have much in common (they are processed as items), they could be generalised to an item. We should remember this for later (inheritance). 13/09/04 18:01:07 Marc Conrad - University of Luton 27

Case Study: Discussion of machine and system. deposit item receiver bottle, can, crate machine customers, customer types of item, item, type, returned items system receipt return sum Machine and System mean here the same, namely the Recycling machine, i.e. the Deposit item receiver 13/09/04 18:01:07 Marc Conrad - University of Luton 28

Case Study: Discussion of customers and customer. deposit item receiver bottle, can, crate They are outside of the system. customers, customer We establish a concept, that types of item, item, type, returned interfaces with the customer (and items is inside the system): receipt return sum The customer has already been identified as an actor. Customer panel 13/09/04 18:01:07 Marc Conrad - University of Luton 29

Case Study: Discussion of item (etc.). deposit item receiver bottle, can, crate customer panel types of item, item, type, returned items receipt return sum The items that are inserted in the machine. Good candidate as superclass for bottle, can, crate. Let s call it Deposit item 13/09/04 18:01:07 Marc Conrad - University of Luton 30

Case Study: Discussion of receipt. deposit item receiver bottle, can, crate customer panel deposit item receipt return sum The concept that remembers all items inserted in the machine. To distinguish it from the piece of paper returned to the customer, call it Receipt basis 13/09/04 18:01:07 Marc Conrad - University of Luton 31

Case Study: Discussion of return sum. deposit item receiver bottle, can, crate customer panel deposit item receipt basis return sum The sum that it is returned to the customer is actually computed by adding up all values of the items stored in the receipt basis. The sum itself is only a primitive data value, and may therefore not be considered as a concept. 13/09/04 18:01:07 Marc Conrad - University of Luton 32

Case Study: Discussion of other concepts. deposit item receiver bottle, can, crate customer panel deposit item receipt basis These are the concepts identified by nouns. Did we forget something? Check the Concept Category List! The system interfaces with the physical object printer, so we add an interface concept Receipt printer 13/09/04 18:01:07 Marc Conrad - University of Luton 33

Case Study: Summary of concepts identified in the analysis deposit item receiver bottle, can, crate customer panel deposit item receipt basis receipt printer So far we have identified: Concepts A generalisation relationship. Next step: Finding associations. 13/09/04 18:01:07 Marc Conrad - University of Luton 34

How to make a conceptual model. Find the concepts Draw them in a conceptual model Add associations Add attributes 13/09/04 18:01:07 Marc Conrad - University of Luton 35

Drawing of Concepts Customer panel Deposit item receiver Receipt basis Deposit item Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 36

Adding Associations If one concept needs to know of a another concept for some duration they should be linked by an association. Also use the following list in order to identify associations. 13/09/04 18:01:07 Marc Conrad - University of Luton 37

Common Association List A is a part of B A is contained in B A is a description for B A is a line item of a transaction or report B A is known or reported in B A is a member of B A is a organisational subunit of B A uses or manages B A communicates with B A is related to a transaction B A is a transaction related to another transaction B A is next to B A is owned by B 13/09/04 18:01:07 Marc Conrad - University of Luton 38

Adding associations The Customer panel communicates to the receiver when an item is inserted. Also when the receipt is requested. Customer panel initiates action Deposit item receiver Receipt basis Deposit item Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 39

Adding associations The Deposit item receiver manages Deposit items: The items are classified. Customer panel initiates action Deposit item receiver Receipt basis Deposit item classifies Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 40

Adding associations The Deposit item receiver communicates to Receipt basis: Items received and classified are stored. It also creates the receipt basis when it is needed for the first time. Customer panel initiates action Deposit item receiver creates & notifies Receipt basis Deposit item classifies Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 41

Adding associations The Receipt basis collects Deposit items. Customer panel initiates action Deposit item receiver creates & notifies Receipt basis captures Deposit item classifies Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 42

Adding associations On request by the Customer Panel the Deposit item receiver initiates printing of a receipt on the printer. Customer panel initiates action Deposit item receiver creates & notifies captures Deposit item classifies prints on Receipt basis Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 43

Adding associations Adding multiplicities Only one association here is a 1 to many relationship All others are 1 to 1. Customer panel initiates action Deposit item receiver creates & notifies Receipt basis captures 1..* Deposit item classifies prints on Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 44

Adding Attributes An attribute is a logical data value of an object. Attributes in a conceptual model are simple data values as Boolean, Date, Number, String (Text), Time, Address, Colour, Price, Phone Numbers, Product Codes, etc. Sometimes it is difficult to distinguish between attributed and concepts E.g. Concept Car vs. attribute Reg. Number. 13/09/04 18:01:07 Marc Conrad - University of Luton 45

Adding attributes The Deposit item has a value. Also it will be assigned a number that shows later on the receipt. Customer panel initiates action Deposit item receiver creates & notifies Receipt basis captures 1..* Deposit item number value classifies prints on Receipt printer Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 46

Adding attributes In order to be classified by the Deposit item receiver each item has also a weight and a size. However this is the same for each type of item, but different between the types. Customer panel initiates action Deposit item receiver creates & notifies Receipt basis captures 1..* Deposit item number value classifies prints on Receipt printer Can weight size Bottle weight size Crate weight size 13/09/04 18:01:07 Marc Conrad - University of Luton 47

Summary NOT in a conceptual model: arrows dotted lines methods, operations, functions Customer panel initiates action Deposit item receiver creates & notifies Receipt basis captures 1..* Deposit item number value classifies prints on Receipt printer Can weight size Bottle weight size Crate weight size 13/09/04 18:01:07 Marc Conrad - University of Luton 48

CRC cards & Role playing Not part of the UML design process but useful in detecting responsibilities of objects are CRC cards (developed by Kent Beck and Ward Cunningham). CRC stands for Class-Responsibility- Collaborator. They look like: Name Responsibilities Collaborators 13/09/04 18:01:07 Marc Conrad - University of Luton 49

CRC cards & Role playing CRC cards are index cards, one for each class, upon which the responsibilities and collaborators of a class are written. They are developed in a small group session where people role play being the various classes. Each person holds onto the CRC cards for the classes that they are playing the role of. http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/crc_b/ 13/09/04 18:01:07 Marc Conrad - University of Luton 50

Example: Recycling machine CRC cards Customer panel receive items Deposit item receiver receive print request Dep. item receiver Printer Deposit Item Receipt Basis classify items create Receipt Basis print receipt Etc. 13/09/04 18:01:07 Marc Conrad - University of Luton 51

The Object Oriented Analysis Model (Jacobson) An analysis model is used to represent the system specification. To achieve robustness and stability the model must be implementation environment independent. Any change in the implementation environment will not affect the logical structure of the system. The model must be able to capture information, behaviour (operations) and presentation (inputs and outputs). 13/09/04 18:01:07 Marc Conrad - University of Luton 52

Behaviour - Information - Presentation The model is defined in information - behaviour - presentation space. behaviour information presentation 13/09/04 18:01:07 Marc Conrad - University of Luton 53

Syntax of the Object Oriented Analysis Model Within an use case, we employ three types of objects (in Rational Rose, they are known as three types of entities or stereotypes): Entity On information behaviour plane and incline to information axis Boundary / Interface Control On the presentation axis On information behaviour plane but incline towards behaviour axis 13/09/04 18:01:07 Marc Conrad - University of Luton 54

Entity, Control, Interface behaviour information presentation 13/09/04 18:01:07 Marc Conrad - University of Luton 55

Semantics of the Object Oriented Analysis Model An entity object models information that shows the state of a system. This information is often used to record the effects of operations and therefore is related to the behaviours of the system. A boundary/interface object models inputs and outputs and operations that process them. A control object models functionality/operations regarding to validate and decide whether to process and pass information from the interface object to the entity object or the way around. 13/09/04 18:01:07 Marc Conrad - University of Luton 56

Pragmatics of the Object Oriented Analysis Model Identifying interface objects functions directly related to actors. Identifying entity objects information used in an use case and functions of processing the information. Identifying control objects functions that link interface objects and entity objects 13/09/04 18:01:07 Marc Conrad - University of Luton 57

Example: The Recycling machine Identifying interface objects Printer, Customer Panel Identifying entity objects Long term information: Crate, Bottle, Can Superclass: Deposit item Short term information: Receipt basis Identifying control objects Deposit item receiver 13/09/04 18:01:07 Marc Conrad - University of Luton 58

The Recycling machine Interface Objects Customer panel Receipt printer 13/09/04 18:01:07 Marc Conrad - University of Luton 59

The Recycling machine Entity Objects Receipt basis Deposit items Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 60

The Recycling machine Link Interface and Entity Objects by a Control Object Deposit item receiver Customer panel Receipt printer Receipt basis Deposit items Can Bottle Crate 13/09/04 18:01:07 Marc Conrad - University of Luton 61

Summary - Object Oriented Analysis The main task is identifying the objects. Also: Relationships between objects. Three strategies: Conceptual Model (concepts as objects) CRC cards (index cards as objects) Analysis Model (Stereotypes as objects) Next step: Design. 13/09/04 18:01:07 Marc Conrad - University of Luton 62