7. Object-Oriented Design

Size: px
Start display at page:

Download "7. Object-Oriented Design"

Transcription

1 Computer Science and Software Engineering University of Wisconsin - Platteville 7. Object-Oriented Design Yan Shi SE 2730, Lecture Notes Summerville s textbook 8.4, 14.1

2 Analysis Phase and Design Phase Requirements and Use Case development are often referred to as the Analysis Phase. The Analysis phase addresses WHAT needs to go into a software system. The Design Phase addresses HOW the system will be implemented. It is important to verify that the design satisfies the needs specified by requirements and/or use cases.

3 Object models Object models describe the system in terms of object classes and their relationships. Natural ways of reflecting the real-world entities manipulated by the system More abstract entities are more difficult to model using this approach Objects represent tangible things in the domain (world) of the system NOUNs Object Models can be used to represent relationships among objects. We use class diagrams to represent the object model.

4 Domain, Design, Implementation Levels Domain level class diagram: Analysis level modeling is at a higher level. We only model real entities of the domain. We can identify Objects by looking for Nouns in requirements or other artifacts. Design level class diagram: Go into much more detail and add items that are not necessarily part of the domain, but will be used in the implementation, for instance different programming constructs. Implementation level class diagram: should be of sufficient detail so that someone with very little knowledge of the domain should be able to implement the framework for the modeled system.

5 Class Diagram: Class UML represents classes using boxes: Class names are at the top of box. Class names generally start with a capital letter. Operations define the functionality of a class. When an operation is implemented it is called a method. Some classes may not have operations. Attributes define the data of a class. In an implementation, the attributes become variables. Some classes may not have attributes. Attribute names generally start with lower case letters. Generally, insignificant class variables (like loop control variables, etc.) are not included in class designs.

6 Class Example Class name attributes... operations... Customer name:string address:string UpdateProfile():void

7 How to Draw a Class Diagram? If it is a domain level class diagram: Step 1: identify classes Step 2: add associations Step 3: refine relationships Step 4: add major attributes and operations

8 Step 1: Identify Classes How to find the classes in a problem? Note: classes abstract things - nouns classes do actions verbs Noun Identification method to find objects!

9 Noun Identification Method Given the requirement description (scenarios, use cases, requirement specifications): 1. Underline all nouns and noun phrases in requirements and/or use case scenarios 2. Combine redundant terms 3. Remove nouns that are out of scope of the system 4. Remove items that are programming constructs 5. Information that does not have state often are attributes of other objects 6. System rules translate to behaviors

10 Example: Ticketing System Purpose: Automate sale of rail tickets. Inputs: Credit card, Personal identification number Outputs: Rail ticket Purchasing a ticket 1. Upon startup, the system shall present the customer with a menu of potential destinations. 2. In the destination list, each destination shall include a location name, estimated arrival time, and cost. 3. After the user has selected a destination, the system shall request the user insert a credit or debit card for payment. 4. If a debit card has been inserted, the system shall prompt the user for a PIN. 5. After the card information has been collected, the system shall transmit the information to a payment processing agency for verification. 6. All information transmitted to and received from the payment processing agency shall be encrypted. 7. Upon receiving an approval from the payment processing agency, the system shall issue a ticket for the specified destination.

11 Example: Ticketing underline all nouns System Purpose: Automate sale of rail tickets. Inputs: Credit card, Personal identification number Outputs: Rail ticket Purchasing a ticket 1. Upon startup, the system shall present the customer with a menu of potential destinations. 2. In the destination list, each destination shall include a location name, estimated arrival time, and cost. 3. After the user has selected a destination, the system shall request the user insert a credit or debit card for payment. 4. If a debit card has been inserted, the system shall prompt the user for a PIN. 5. After the card information has been collected, the system shall transmit the information to a payment processing agency for verification. 6. All information transmitted to and received from the payment processing agency shall be encrypted. 7. Upon receiving an approval from the payment processing agency, the system shall issue a ticket for the specified destination.

12 Example: Ticketing combine redundant nouns system customer menu destination destination list location name estimated arrival time cost user credit card debit card PIN card information information payment processing agency approval ticket system customer menu destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket In some cases, "nearly redundant" terms imply generalization: card" and credit card"

13 Example: Ticketing remove out of scope nouns system customer menu destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket If we saw ticket kiosk, it would be out of scope for the ticket system. The system is the system being analyzed! payment processing agency is somebody you interface with, so should be included in the model.

14 Example: Ticketing remove program constructs customer menu destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket o menu o button o screen o window o etc. Do we see any?

15 Example: Ticketing identify attributes customer destination destination list location name estimated arrival time cost credit card debit card PIN card information payment processing agency approval ticket Attributes contains simple information. Later, we can list these attributes in appropriate classes.

16 Example: Ticketing identify system rules customer destination destination list credit card debit card payment processing agency ticket Upon receiving an approval from the payment processing agency, the system shall issue a ticket for the specified destination. approval should not be identified as a class also because it describes a system rule.

17 Example: Ticketing Step 1 DestinationList Destination Customer CreditCard Ticket PaymentAuthAgency DebitCard

18 Step 2: Add Associations Classes can also have associations with other classes. There are many different relationship types. We will discuss: Association Inheritance (is-a) Aggregation (part-of) These relationships will be denoted by the line and arrow type connecting the classes that are associated.

19 Association Objects rely on each other for services and data. We identify associations with lines connecting the class boxes and labeling the line with the name of the relationship. These relationships identify public methods that are used to promote the relationship.

20 Navigation If a particular relationship only works in one direction, we use an open arrow to specialize this relationship. Otherwise we don t use an arrow. Easy test: in an association, if end1 knows end2 but end2 doesn t know end1, then put an arrow towards end2. By knowing, we mean calling a public method of that object.

21 Multiplicities Given an association between two objects, A and B, we state how many A s are associated with B s. Place the multiplicity right next to each class with the following notations: Most commonly used 0..1 No instances, or one instance (optional, may) 1 Exactly one instance * Zero or more instances 1..* One or more instances (at least one) 3 Three only 2 9 Two to nine

22 Relationship Example:

23 Example: Ticketing Step 2 DestinationList 1 searches 1 Customer 1 * contains chooses Destination uses PaymentA uthagency 1 buys use DebitCard * 1 processes 1 1 includes 1 CreditCard procees Ticket * * 1

24 Step 3: Refine Relationships Inheritance Aggregation Composition

25 Inheritance Classes support inheritance: child and parent classes. Child classes derived from a parent class will inherit all of the operations and attributes of the parent. Child classes may override or modify attributes and operations that they inherit from the parent. Child classes may also define new attributes and operations that are not part of the parent class. This is called specialization. In UML, inheritance is referred to as generalization.

26 Inheritance Example: FacePart We are doing a system for face recognition and we have a parent class FacePart. FacePart contains attributes location, name, center, length, and width. Nose, Ear and Chin children classes are derived from the parent FacePart class. This means that the Nose class also contains the attributes: location, name, center, length, and width. In addition, the Nose class adds specific attributes for shape and color, Also methods Blow(). The child class Ear also inherits all attributes and operations from FacePart. In addition it adds attributes like pierced or piercings, and clean. Chin adds an additional attribute bearded.

27 Inheritance Example: FacePart FacePart location:int[] name:string length:int w idth:int Clean():void hurt():void Nose color:int shape:int Blow ():void Ear pieced:bool piercings:int clean:bool Chin bearded:bool

28 Hierarchical Inheritance

29 Inheritance Inheritance has the advantages of (when done properly) reducing the amount of code that needs to be developed, tested, and documented as well as promoting commonality of function within a system, All of these reduce the total lifecycle cost of software. IMPORTANT NOTE: When considering Inheritance, make sure that the children objects are NOT just instances of the parent. A test for this is whether the child actually has additional attributes, and/or operations, and/or overrides parent attributes and/or operations. In most programming languages, private members will not be inherited.

30 Multiple Inheritance A child class can be derived from multiple parent classes. The resulting child class inherits all operations and attributes from each of its parents. Multiple inheritance is supported by many programming languages and often can help produce very rich objects.

31 Multiple Inheritance problems Major problems or complexities with multiple inheritance during design are name collisions and difficulty with modifying diagrams (due to the complexity). Name collision is when two base or parent classes have common attribute or operation names. Major problems later in the software lifecycle can include debugging and maintenance issues once the code is implemented. It may be hard to figure out where attributes and operators are actually coming from. Use Multiple Inheritance sparingly.

32 Aggregation Some objects are made up of other objects. These are type of collection class. For instance a peanut butter and jelly sandwich is made up of bread, peanut butter, jelly (and sometimes other things like bananas, etc.). PBJSanwich Bread 1...* Jelly 1...* 1...* PeanutButter

33 Composition A composition relationship represents a whole part relationship and is a type of aggregation. A composition relationship specifies that the lifetime of the part classifier is dependent on the lifetime of the whole classifier.

34 Example: Ticketing Step 3 DestinationList Customer Card PaymentAut hagency searches 1 1 pay_with 1 1 * 1 proce ss chooses buys * Destination * Ticket CreditCard DebitCard 1 1

35 Step 4: Add Attributes and Operations Attributes: previously identified using noun identification method additional properties/information related to each object Operations: circle all verbs, remove redundancies, and add as methods Key issue: make sure operation is of the correct class! Appropriate names! See programming ground rules.

36 Example: Ticketing Step 4 DestinationList Customer Card PaymentAuthAgency search():void sort():void searches cusname BuyTicket Pay CancelTicket pay_with 1 1 name:string number:string ProcessPayment():void * 1 process 1 1 * Destination name:string EAT:String cost:float buys chooses * Ticket departure:string time:string CreditCard expiredate:string securitycode:string DebitCard PIN:String

37 Rules for Class Diagrams class names: nouns (occasionally, noun phrases) Capital first letter attributes: nouns usually: lower case first letter operations: verbs/verb phrases or nouns if value-returning carefully distinguish, place attributes and operations use associations for complex objects, don't duplicate as attributes All: legal identifiers in target language no reserved words no illegal characters Just a starting point - more later

38 CRC Method CRC: Class Responsibility Collaboration CRC cards are an object oriented design tool (for brain storming) CRC cards are index cards including: the class name its super and sub classes (if applicable) responsibilities of the class names of other class with which the class will collaborate to fulfill its responsibilities the author Class: Superclass or Subclasses: Responsibilities Collaborators

39 CRC Design Process For each candidate class, the team fills in a card that contains the name of the class, the functionality of the class (responsibilities), and a list of the other classes it invokes to achieve that functionality (collaborations). This information comes from requirements and/or scenarios Next, the Cards are taped to a wall and lines or strings connect the public methods and data of all classes. Too many lines means high interconnectivity, which causes problems Can also mean class is doing too much Solution: split the class or move responsibilities to another class Finally, add details for attributes and methods

40 CRC Card Example Class: Elevator Button Superclass: Responsibilities Collaborators

41 CRC Card Example Class: Elevator Button Superclass: Button Responsibilities Request desired floor Request close door Request door open Request alarm Request elevator halt Collaborators User Elevator Control Elevator Control Elevator Bell, Elevator Phone Elevator Control Issue: 5 responsibilities is a lot! Use inheritance, introduce more button types Floor button, Door button, Close button, Alarm button, Halt button

42 Cohesion and Coupling Cohesion: A measure of the extent to which related aspects of a system are kept together in the same module, and unrelated aspects are kept out. A component should be single minded! Coupling: A measure of interconnection and dependency between modules/classes. Make components as independent as possible! Most popular phrase in OO design: high cohesion and low coupling!

43 Cohesion For simple systems, cohesion is not a significant problem. For large, complex systems, low cohesion generally means more maintenance and testing costs; it can also lead to security problems. The evolution of cohesion includes: Coincidental cohesion (worst) Logical cohesion Temporal cohesion Procedural cohesion Communicational cohesion Functional cohesion (best)

44 Coincidental Cohesion Parts of a module are grouped arbitrarily (randomly). Parts have no significant relationship. Example: put all code in the main function Causes: lack of creativity and/or experience rigid rules about module lengths maintenance without a design process can destroy structure, (for example we need to add this someplace, let s just put it in here. )

45 Coincidental Cohesion (2) Problems created by low cohesion: maintenance nightmares: cannot find defects or good places to extend functionality, hard to reuse such pieces, low efficiency, lots of data passing, harder to test, etc.

46 Logical Cohesion Parts of a module are grouped because they are logically categorized to do the same thing, even if they are different by nature. Example: group all I/O handling into one class (diskio(), screenio(), etc.) At least this is predictable and one can generally find a function when needed!

47 Logical Cohesion (2) Sometimes it is used to isolate code that is platform dependent and will need to be rewritten or seriously modified when ported to another platform. Example: put all device drivers in one module. Problems: interfaces hard to understand may lose efficiency due to data passing hard to scale up/distribute across multiple processors or computers. hard to reuse pieces may be nearly impossible to follow the flow.

48 Temporal Cohesion Parts of a module are grouped by when they are processed. The parts are processed at a particular time in program execution. Example: a function which is called after catching an exception which closes open files, creates an error log, and notifies the user. There use to be a need for this: When memory was very small (32K or smaller) and virtual memory was not common, programs had to be overlaid We wanted to minimize the number of times needed to save state, roll a chunk of program out of memory, and roll in a new chunk of program. Problems: not any better than logical cohesion.

49 Procedural Cohesion Parts of a module are grouped because they always follow a certain sequence of execution Example: a function to check file permissions and then open the file Problem: no better than temporal cohesion it is essentially temporal cohesion with added restriction that all the parts of the module correspond to a related action sequence in the program

50 Communicational Cohesion Parts of a module are grouped because they operate on the same data. Example: Combine multiple calculations in a loop like mean, min, max and standard deviation computed in the same loop. Functions that calculate and print based on the same data: addscorescomputemeanprintmean(). Benefit: Sometimes this is done to improve efficiency (avoid multiple data passing). Problem: low reusability.

51 Functional Cohesion Parts of a module are grouped because they all contribute to a single well-defined task of the module. Example: I/O One directory structure for each device, within which a class for Input and a class for Output, who are children of abstract I/O class. Functional cohesion is the ultimate goal! Methods are short and to the point. Ones related are grouped together locally in a file. Advantages: high reusability, extensibility, and maintainability

52 Exercise class Areas { double circlearea() {... } double rectanglearea() {... } double trianglearea() {... } } class Plane { double speed, altitude; takeoff() {... } void fly() {... } void land() {... } } class MyFunctions { void initprinter() {... } double calcinterest() {... } Date getdate() {... } } class Init { void initdisk() {... } void initprinter() {... } void initmonitor() {... } } // logical cohesion // communicational cohesion: // they all work on speed and altitude // coincidental cohesion // temporal cohesion

53 Coupling Coupling is a measure of interconnection and dependency between modules/classes. Given two classes A and B: If A knows B through its interface only Loosely coupled If A interacts with B also via non-interface stuff of B Tightly coupled Goal: low coupling This gives simple connections between modules.

54 Different Types of Coupling Content coupling (Worst/highest) Common coupling Control coupling Stamp coupling Data coupling (Best/lowest)

55 Content Coupling Module A modifies or relies on the internal workings of another module B (e.g. accessing local data of another module). Therefore changing the way B produces data (location, type, timing) will lead to changing the dependent module A. Example: no get/set methods, all data are public. goto statement Identify a content coupling issue if you are: using pointer to access private data of other classes (C++) branching into the middle of a subroutine (multiple entry points)

56 Common coupling Two modules have read/write access to the same global data. Changing the shared resource implies changing all the modules using it. Example: global variables. Always try your best to avoid using global variables! Single module with write access where all other modules have read access is not common coupling Problem: Hard to track down who made the change and who is changing.

57 Control Coupling One module A controls the logic of another module B, by passing B information on what to do. Example: passing a control flag or switches. Class B{ public void Do(int what){ if (what == 1) do_wow; else if ( what == 2 ) do_blabla; } } Class A{ void ControlDo( ) { B.Do(1); } Problem: often generalize a function beyond their original purpose, adding unnecessary complication. Module A and B are not independent: hard to reuse code. }

58 Stamp Coupling Also known as Data-structured coupling. Modules share a composite data structure and use only a part of it, possibly a different part. Example: passing a whole record to a function which only needs one field of it. Problem: Efficiency? Reusability? maintenance? employee = { age = 24, compensation = 2000 } def age_range(employee) range = 1 if employee.age < 10 range = 2 if employee.age > 10 && < 20;... return range end def compensation_range(employee)... only relies on employee.compensation end

59 Data Coupling Modules share data through parameters. Just the data needed are passed between the calling and called modules through parameters. A simple argument list and every item is used. Parameters are not passed several levels deep. Variables are not reused. Example: // In Class A: B.add(num1,num2); Parameter based communications: GOOD! a parameter has one and only one purpose in life.

60 Summary Analysis Phase and Design Phase Object Models Object Classes and Associations Class Diagrams Name Identification Method Associations Inheritance (is-a) Aggregation (part-of) Relationships CRC card Cohesion and Coupling

SE 2730 Final Review

SE 2730 Final Review SE 2730 Final Review 1. Introduction 1) What is software: programs, associated documentations and data 2) Three types of software products: generic, custom, semi-custom Why is semi-custom product more

More information

Basic Structural Modeling. Copyright Joey Paquet,

Basic Structural Modeling. Copyright Joey Paquet, Basic Structural Modeling Copyright Joey Paquet, 2000 1 Part I Classes Copyright Joey Paquet, 2000 2 Classes Description of a set of objects sharing the same attributes, operations and semantics Abstraction

More information

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

Object- Oriented Design with UML and Java Part I: Fundamentals Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html

More information

Object-Oriented Design and Modeling Using the UML

Object-Oriented Design and Modeling Using the UML Design Classes Object-Oriented Design and Modeling Using the UML Based on Chapter 18 of Whitten, Bentley, and Dittman: Systems Analysis and Design for the Global Enterprise (7th Ed). McGraw Hill. 2007

More information

Object-Oriented Systems Development: Using the Unified Modeling Language

Object-Oriented Systems Development: Using the Unified Modeling Language Object-Oriented Systems Development: Using the Unified Modeling Language Chapter 8: Identifying Object Relationships, Attributes, and Methods Goals Analyzing relationships among classes. Identifying association.

More information

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

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Introduction to UML. Danang Wahyu utomo

Introduction to UML. Danang Wahyu utomo Introduction to UML Danang Wahyu utomo danang.wu@dsn.dinus.ac.id 085 740 955 623 Evolution of OO Development Methods History of OOAD leading to UML Why Model? Analyse the problem domain - Simplify reality

More information

Design Engineering. Dr. Marouane Kessentini Department of Computer Science

Design Engineering. Dr. Marouane Kessentini Department of Computer Science Design Engineering Dr. Marouane Kessentini Department of Computer Science 1 Design Starts mostly from/with requirements (evolving mostly from functionalities and other non functional characteristics) How

More information

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

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Intro to: Design Principles

Intro to: Design Principles Intro to: Design Principles Pragmatic Programmer: Eliminate Effects Between Unrelated Things design components that are: self-contained, independent, and have a single, well-defined purpose Software Design

More information

Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP)

Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP) Subsystem design basics Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP) Dept. of Computer Science Baylor University Focus on modeling how subsystems accomplish goals

More information

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A G R A M S ) WHAT IS CLASS DIAGRAM? A class diagram

More information

Chapter 5: Structural Modeling

Chapter 5: Structural Modeling Chapter 5: Structural Modeling Objectives Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. Understand the processes used to create CRC cards, class

More information

UNIT II Requirements Analysis and Specification & Software Design

UNIT II Requirements Analysis and Specification & Software Design UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they

More information

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

More information

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

Design Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns

Design Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns Structural Design Patterns, 1 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 2 3 Department of Computer Science The Australian National University 4 18.1 18.2 GoF Structural

More information

Design Patterns IV Structural Design Patterns, 1

Design Patterns IV Structural Design Patterns, 1 Structural Design Patterns, 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Class Object Department of Computer Science The Australian National University 18.1 1 2 Class Object

More information

Chapter 10 Object-Oriented Design Principles

Chapter 10 Object-Oriented Design Principles Chapter 10 Object-Oriented Design Principles Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Object-oriented design: bridging from analysis

More information

Object Oriented Software Development CIS Today: Object Oriented Analysis

Object Oriented Software Development CIS Today: Object Oriented Analysis 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

More information

OO System Models Static Views

OO System Models Static Views OO System Models Static Views UML Class & Object Diagrams Software Engineering OO Models Class Diagram Slide 1 Objective Introduces the evolutionary approach for building classes Explain how to identify

More information

COSC 3351 Software Design. An Introduction to UML (I)

COSC 3351 Software Design. An Introduction to UML (I) COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt

More information

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

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models CS 494 Object-Oriented Analysis & Design UML Class Models Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation

More information

Unified Modeling Language (UML) Class Diagram

Unified Modeling Language (UML) Class Diagram 1 / 10 Unified Modeling Language (UML) Class Diagram Miaoqing Huang University of Arkansas Spring 2010 2 / 10 Outline 1 2 3 / 10 Class Diagram Class diagrams show the static structure of the classes that

More information

SE 1: Software Requirements Specification and Analysis

SE 1: Software Requirements Specification and Analysis SE 1: Software Requirements Specification and Analysis Lecture 9: UML Class (Concept), Object, Communication Diagrams Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445

More information

Overview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017

Overview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017 Overview of OOP Dr. Zhang COSC 1436 Summer, 2017 7/18/2017 Review Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in square brackets: l = [1, 2, "a"] (access by index, is mutable

More information

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

22/09/2012 INFO2110. Copyright Warning. Revision of class diagram. Overview. Purpose of class diagram. Generalization Relationship 22/09/202 INFO20 Copyright Warning System Analysis and Modelling Semester 2, 202 Lecture 8, Structural Modelling (II) COMMONWEALTH OF AUSTRALIA Copyright Regulations 969 WARNING This material has been

More information

From Module To Objects

From Module To Objects From Module To Objects It is very difficult to maintain a large monolithic block of code The solution is to divide the code into smaller pieces, called modules What is a Module? A small and manageable

More information

Object-Oriented Systems Analysis and Design Using UML

Object-Oriented Systems Analysis and Design Using UML 10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand

More information

Recap : UML artefacts. Black Box Requirements. Functional Specification. System. System. Test. Design. System. System. Development.

Recap : UML artefacts. Black Box Requirements. Functional Specification. System. System. Test. Design. System. System. Development. L5-1 Recap : UML artefacts Actors Use Cases Use Case Diagrams Storyboards Black Box Requirements System Validation Test Cases System Test Functional Specification System Development Notes Details Signatures

More information

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

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language

More information

INTERNAL ASSESSMENT TEST III Answer Schema

INTERNAL ASSESSMENT TEST III Answer Schema INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object

More information

Accessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis)

Accessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis) Accessibility EEC 521: Software Engineering Classes and Objects (OO Analysis) Attributes and Methods can be declared at three levels of accessibility Public (+) Visible everywhere Private (-) Visible only

More information

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

Data Structures (list, dictionary, tuples, sets, strings) Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in brackets: l = [1, 2, "a"] (access by index, is mutable sequence) Tuples are enclosed in parentheses: t = (1, 2, "a") (access

More information

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) A process has a: 1) A) pronoun label B) noun phrase label C) verb phrase label D) adjective

More information

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) By: Mr.Prachet Bhuyan Assistant Professor, School of Computer Engineering, KIIT Topics to be Discussed 9.1 INTRODUCTION 9.2 THE O-O DESIGN PROCESS

More information

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

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD Domain analysis Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD OOA concerned with what, not how OOA activities focus on the domain layer

More information

CSC207H: Software Design Lecture 6

CSC207H: Software Design Lecture 6 CSC207H: Software Design Lecture 6 Wael Aboelsaadat wael@cs.toronto.edu http://ccnet.utoronto.ca/20075/csc207h1y/ Office: BA 4261 Office hours: R 5-7 Acknowledgement: These slides are based on material

More information

CSE 403 Lecture 8. UML Class Diagrams. Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403

CSE 403 Lecture 8. UML Class Diagrams. Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403 CSE 403 Lecture 8 UML Class Diagrams Thanks to Marty Stepp, Michael Ernst, and other past instructors of CSE 403 http://www.cs.washington.edu/403/ See also: Object-Oriented Design Heuristics by Arthur

More information

06. Analysis Modeling

06. Analysis Modeling 06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches

More information

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification Object Oriented Design Part 2 Analysis Design Implementation Program Design Analysis Phase Functional Specification Completely defines tasks to be solved Free from internal contradictions Readable both

More information

Object interconnections

Object interconnections Object interconnections 2 Roadmap In this chapter we move up a level of abstraction, and consider collections of objects working together Our focus will be on how objects are connected to each other, and

More information

Lecture Notes. Structured Systems Analysis

Lecture Notes. Structured Systems Analysis Lecture Notes Structured Systems Analysis Lecture 3 Structured Analysis & Data Flow Diagrams Written by Dr. Fred Grossman Copyright 1999 Fred Grossman All Rights Reserved Structured Systems Analysis Structured

More information

Design and UML Class Diagrams

Design and UML Class Diagrams Design and UML Class Diagrams 1 Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML DistilledCh. 3, by M. Fowler How do people draw / write

More information

Chapter 11: Data Management Layer Design

Chapter 11: Data Management Layer Design Systems Analysis and Design With UML 2.0 An Object-Oriented Oriented Approach, Second Edition Chapter 11: Data Management Layer Design Alan Dennis, Barbara Wixom, and David Tegarden 2005 John Wiley & Sons,

More information

Entity-Relationship Modelling. Entities Attributes Relationships Mapping Cardinality Keys Reduction of an E-R Diagram to Tables

Entity-Relationship Modelling. Entities Attributes Relationships Mapping Cardinality Keys Reduction of an E-R Diagram to Tables Entity-Relationship Modelling Entities Attributes Relationships Mapping Cardinality Keys Reduction of an E-R Diagram to Tables 1 Entity Sets A enterprise can be modeled as a collection of: entities, and

More information

Class Diagrams in Analysis

Class Diagrams in Analysis 3.2 Subject/Topic/Focus: Introduction to Classes Summary: Conceptual Modeling Notation: Classes Associations: Multiplicity, Roles, Aggregation, Composition Generalization Objects Analysis Process Literature:

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Lecture 8: Use Case -Driven Design. Where UML fits in

Lecture 8: Use Case -Driven Design. Where UML fits in Lecture 8: Use Case -Driven Design The Role of UML in the Software Process E.g. ICONIX Domain Models Use Cases 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution

More information

Object interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Object interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון Object interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we move up a level of abstraction, and consider collections of objects working together Our focus will

More information

OBJECT ORİENTATİON ENCAPSULATİON

OBJECT ORİENTATİON ENCAPSULATİON OBJECT ORİENTATİON Software development can be seen as a modeling activity. The first step in the software development is the modeling of the problem we are trying to solve and building the conceptual

More information

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

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized

More information

UML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc.

UML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc. UML Modeling UML diagrams UML (Unified Modeling Language) is a general purpose visual modeling language that provides different types of diagrammatic techniques and notations to specify, visualize, analyze,

More information

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) Software Engineering Prof.N.L.Sarda IIT Bombay Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue our discussion on process modeling. In the previous lecture

More information

Entity Relationship Modelling

Entity Relationship Modelling Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship? Entities, attributes, and relationships in a system The degree of

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch Class diagrams Modeling with UML Chapter 2, part 2 CS 4354 Summer II 2015 Jill Seaman Used to describe the internal structure of the system. Also used to describe the application domain. They describe

More information

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

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects Lecture 4: Fundamentals of Object Technology Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture

More information

Introduction to Unified Modelling Language (UML)

Introduction to Unified Modelling Language (UML) IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Introduction to Unified

More information

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

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams. Emina Torlak CSE 403: Software Engineering, Spring 2015 courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams Emina Torlak emina@cs.washington.edu Outline Designing classes Overview of UML UML class diagrams

More information

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman CS314, Colorado State University Software Engineering Notes 4: Principles of Design and Architecture for OO Software Focus: Determining the Overall Structure of a Software System Describes the process

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : , Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

Lecture 13: Analysis Modeling

Lecture 13: Analysis Modeling Lecture 13: Analysis Modeling Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Oct. 16, 2008 Announcements Midterms graded

More information

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram UML Fundamental NetFusion Tech. Co., Ltd. Jack Lee 2008/4/7 1 Use-case diagram Class diagram Sequence diagram OutLine Communication diagram State machine Activity diagram 2 1 What is UML? Unified Modeling

More information

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram Modeling with UML A language or notation intended for analyzing, describing and documenting all aspects of the object-oriented software system. UML uses graphical notations to express the design of software

More information

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

Lecturer: Sebastian Coope Ashton Building, Room G.18   COMP 201 web-page: Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Lecture 17 Concepts of Object Oriented Design Object-Oriented

More information

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) Subject Code: 17630 Model Answer Page No: 1 /32 Important Instructions to examiners: 1) The answers should be examined by keywords and not as word-to-word as given in the model answer scheme. 2) The model

More information

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts Software methodologies Extreme Programming Object-Oriented Design CRC Cards - UML class diagrams Analysis Design Implementation Software

More information

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

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011 UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011 1 Goals of the Lecture Review the material in Chapter 2 of the Textbook Cover key parts of the UML notation

More information

Patterns and Testing

Patterns and Testing and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3

More information

From Analysis to Design. LTOOD/OOAD Verified Software Systems

From Analysis to Design. LTOOD/OOAD Verified Software Systems From Analysis to Design 1 Use Cases: Notation Overview Actor Use case System X System boundary UCBase «extend» UCExt Actor A UCVar1 UCVar2 Extending case Generalization «include» Actor B UCIncl Included

More information

Object Relationships

Object Relationships Object Relationships Objects can work together in three different types of relationships: Uses: An object can use another to do some work (association). Composition: A complex object may be composed of

More information

17. GRASP: Designing Objects with Responsibilities

17. GRASP: Designing Objects with Responsibilities 17. GRASP: Designing Objects with Responsibilities Objectives Learn to apply five of the GRASP principles or patterns for OOD. Dr. Ziad Kobti School of Computer Science University of Windsor Understanding

More information

CSC/ECE 517: Object-Oriented Languages and Systems Summer 2008 Test 2 with Answers

CSC/ECE 517: Object-Oriented Languages and Systems Summer 2008 Test 2 with Answers CSC/ECE 517: Object-Oriented Languages and Systems Summer 2008 Test 2 with Answers This was a 100-minute open-book test. There were a total of 105 points on this test.. If you answered more than 100% worth

More information

Modelling with Classes. CITS1220 Software Engineering

Modelling with Classes. CITS1220 Software Engineering Modelling with Classes CITS1220 Software Engineering Lecture Overview Classes and UML Associations between classes Special types of association: is-a, has-a, is-part-of Modelling Example Implementing associations

More information

Data Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell

Data Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell Data Analysis 1 Chapter 2.1 V3.1 Copyright @ Napier University Dr Gordon Russell Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is

More information

Emergency Nurses Association Privacy Policy

Emergency Nurses Association Privacy Policy Emergency Nurses Association Privacy Policy The Emergency Nurses Association ( ENA, we, or us ) has created and posted this privacy policy in an effort to maintain efficient service while respecting your

More information

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

CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D Today s Objectives To explain the basic concepts of OO(A)D To describe some best practices regarding to OO(A)D What is NOT UML? The UML

More information

ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow

ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow Box Leangsuksun SWECO Endowed Professor, Computer Science Louisiana Tech University box@latech.edu CTO, PB Tech International

More information

Design Patterns. Design Patterns

Design Patterns. Design Patterns Design Patterns As software engineers, we commonly have to make decisions about how to create complex objects, how to encapsulate some actions, how to allow for the undoing of certain operations, etc.

More information

Chapter 2: Entity-Relationship Model

Chapter 2: Entity-Relationship Model Chapter 2: Entity-Relationship Model! Entity Sets! Relationship Sets! Design Issues! Mapping Constraints! Keys! E-R Diagram! Extended E-R Features! Design of an E-R Database Schema! Reduction of an E-R

More information

5 Object Oriented Analysis

5 Object Oriented Analysis 5 Object Oriented Analysis 5.1 What is OOA? 5.2 Analysis Techniques 5.3 Booch's Criteria for Quality Classes 5.4 Project Management and Iterative OOAD 1 5.1 What is OOA? How to get understanding of what

More information

Programmazione. Prof. Marco Bertini

Programmazione. Prof. Marco Bertini Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Software engineering techniques and tools A fool with a tool is still a fool. - Grady Booch Use case A use case

More information

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

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction

More information

user.book Page 45 Friday, April 8, :05 AM Part 2 BASIC STRUCTURAL MODELING

user.book Page 45 Friday, April 8, :05 AM Part 2 BASIC STRUCTURAL MODELING user.book Page 45 Friday, April 8, 2005 10:05 AM Part 2 BASIC STRUCTURAL MODELING user.book Page 46 Friday, April 8, 2005 10:05 AM user.book Page 47 Friday, April 8, 2005 10:05 AM Chapter 4 CLASSES In

More information

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel Enn Õunapuu enn.ounapuu@ttu.ee What is a domain model? A domain model captures the most important types of objects in the context

More information

Review The Big Picture

Review The Big Picture CS445 - Introduction to Database Management Systems Fall Semester 2015 LECTURE 6 The Entity-Relationship Model Introduction TEXTBOOK REFERENCE: CHAPTERS 2,3 R&G 1 Review The Big Picture Data Modeling Relational

More information

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

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering Module UFC016QM Object-Oriented Design and Programming O-O Design Unit 2: Objects and Classes Faculty of Computing, Engineering and Mathematical Sciences Schedule Quick recap on Use Case diagrams UWE Flix

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies REQUIREMENTS GATHERING AND ANALYSIS The analyst starts requirement gathering activity by collecting all information that could be useful to develop system. In practice it is very difficult to gather all

More information

9 Structured design. Overview of structured design. Transaction analysis. Transform analysis. System integration

9 Structured design. Overview of structured design. Transaction analysis. Transform analysis. System integration 9 Structured design Overview of structured design Transaction analysis Transform analysis System integration 9.3 Structured design After SSA has produced a set of DFDs, there are three steps to turn the

More information

The Unified Modeling Language. Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL

The Unified Modeling Language. Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL The Unified Modeling Language Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL UML: requirement VS. Design models Identify 2 All the classes or things Elementary business process Necessary step to carry out

More information

Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7

Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7 Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7 1 Problem Ralph owns the Trinidad Fruit Stand that sells its fruit on the street, and he wants to use a computer

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 17 Inheritance Overview Problem: Can we create bigger classes from smaller ones without having to repeat information? Subclasses: a class inherits

More information

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

Inheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L Inheritance Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 9.4 1 Inheritance Inheritance allows a software developer to derive

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 09/29/2015 http://cs.gsu.edu/~ncasturi1 Class Announcements Grading is done for the Deliverable #2 (Requirement Elicitation)

More information

Chapter 6: Entity-Relationship Model

Chapter 6: Entity-Relationship Model Chapter 6: Entity-Relationship Model Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 6: Entity-Relationship Model Design Process Modeling Constraints E-R Diagram

More information

American Dental Hygienists Association Privacy Policy

American Dental Hygienists Association Privacy Policy American Dental Hygienists Association Privacy Policy The American Dental Hygienists Association ( ADHA, we, or us ) has created and posted this privacy policy in an effort to maintain efficient service

More information

Understading Refactorings

Understading Refactorings Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations

More information

Object Design II: Design Patterns

Object Design II: Design Patterns Object-Oriented Software Engineering Using UML, Patterns, and Java Object Design II: Design Patterns Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen A Game: Get-15 The game

More information