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

Size: px
Start display at page:

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

Transcription

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

2 Today s Objectives To explain the basic concepts of OO(A)D To describe some best practices regarding to OO(A)D

3 What is NOT UML? The UML is NOT OOA/D or a method, it is just a diagramming notation. It is useless to learn UML and perhaps a UML CASE tool, but not really know how to create an excellent OO design, or evaluate and exisiting one. Source: Applying UML & Patterns, Craig Larman Page 4

4 You may follow Domain Model 2. Domain Model Refinement 3. System Sequence Diagrams (=SSD) 4. Operation Contracts (=OC) 5. UML Code Mapping 6. Software Class GUI Classes

5 What is a domain model? OOAD Applying UML notation, a domain model is illustrated with a set of class diagrams in which NO operations (method signatures) and NO software artifacts (e.g., a window, a database) are defined. Source: Applying UML & Patterns, Craig Larman Page 134

6 What is a domain model? OOAD (Cont.) Domain model may show Conceptual classes (or domain objects) Associations Attributes of Conceptual Classes Source: Applying UML & Patterns, Craig Larman Page 134

7 What is a domain model? OOAD (Cont.) A Domain Model is an OOA construct that: Shows abstractions (conceptual classes) in the problem domain, NOT the solution domain Is best kept at high level so as to verify with end users, and other stakeholders Is built over several iterations

8 What is a domain model? OOAD (Cont.) X X

9 Strategies for building a conceptual classes Method 1)Reuse or modify the existing models Method 2) Draw from a list of existing conceptual class categories best practices Method 3) From nouns in the use cases text (=descriptions)

10 What is a domain model? OOAD (Cont.) 1. List the candidate conceptual classes using the Conceptual Class Category List and noun phrase identification techniques related to the current requirements under consideration. 2. Draw them in a domain model. 3. Add the associations necessary to record relationships for which there is a need to preserve some memory. 4. Add the attributes necessary to fulfill the information requirements

11 List of existing conceptual class categories Method 2 Conceptual Class Categories business transactions Guideline: These are critical (they involve money), so start with transactions. transaction line items Example(s) Sale Payment Reservation SalesLineItem Guideline: Transactions often come with related line items, so consider these next. product or service related to a transaction or transaction line item Guideline: Transactions are for something (a product or service). Consider these next. Flight Seat Meal Item Source: Applying UML & Patterns, Craig Larman Page 140-1

12 List of existing conceptual class categories (Cont.) Conceptual Class Categories where is the transaction recorded? Guideline: Important. roles of people or organizations related to the transaction; actors in the use case Guideline: We usually need to know about the parties involved in a transaction. place of transaction; place of service Store Example(s) Register Ledger FlightManifest Cashier Customer Store MonopolyPlayer Passenger Airline Airport Plane Seat Source: Applying UML & Patterns, Craig Larman Page 140-1

13 List of existing conceptual class categories (Cont.) conceptual class categories catalogs Guideline: Descriptions are often in a catalog. containers of things (physical or information) things in a container other collaborating systems Example(s) ProductCatalog FlightCatalog Store Bin Board Airplane Item Square (in a Board) Passenger CreditAuthorizationSystem AirTrafficControl Source: Applying UML & Patterns, Craig Larman Page 140-1

14 List of existing conceptual class categories (Cont.) conceptual class categories noteworthy events, often with a time or place we need to remember physical objects Guideline: This is especially relevant when creating device-control software, or simulations. descriptions of things Guideline: See p. 147 for discussion. Example(s) Sale Payment MonopolyGame Flight Item Register Board Piece Die Airplane ProductDescription FlightDescription Source: Applying UML & Patterns, Craig Larman Page 140-1

15 List of existing conceptual class categories (Cont.) conceptual class categories records of finance, work, contracts, legal matters financial instruments schedules, manuals, documents that are regularly referred to in order to perform work Example(s) Receipt Ledger MaintenanceLog Cash Check, LineOfCredit TicketCredit DailyPriceChangeList RepairSchedule Source: Applying UML & Patterns, Craig Larman Page 140-1

16 From nouns in the use cases text Method 3 Linguistics Analysis Identify nouns & noun phrases in the textual description of domain, and consider them as candidate conceptual classes or attributes. Source: Applying UML & Patterns, Craig Larman Page 140-1

17 From nouns in the use cases text Method 3 Example Source: Applying UML & Patterns, Craig Larman Page 140-1

18 From nouns in the use cases text Method 3 (Cont.) Guideline: Care must be applied with this method; a mechanical noun-to-class mapping isn t possible, and words in natural languages are ambiguous. Source: Applying UML & Patterns, Craig Larman Page 140-1

19 Partial Domain Model Example Source: Applying UML & Patterns, Craig Larman Page 133

20 Benefit of Using Domain Models Lower the representation gap with OO modeling Source: Applying UML & Patterns, Craig Larman Page 138

21 Description Classes Add a description (conceptual) class (for example, ProductSpecification) when: There needs to be a description about an item or service, independent of the current existence of any examples of those items or services. Deleting instances of things they describe (for example, Item) results in a loss of information that needs to be maintained, due to the incorrect association of information with the deleted thing. It reduces redundant or duplicated information. Source: Applying UML & Patterns, Craig Larman Page 147

22 Description Classes WORSE BETTER Source: Applying UML & Patterns, Craig Larman Page 147

23 UML Association Notation Associations in a Domain Model Associations for which knowledge of the relationships needs to be preserved for some duration (miliseconds, maybe years) Associations derived from the Common Associations List Source: Applying UML & Patterns, Craig Larman Page 151

24 UML Association Notation (Cont.) An association is represented by a line between classes with Capitalized association name. An association is inherently bidirectional = Capitalized Source: Applying UML & Patterns, Craig Larman Page 151

25 UML Association Notation (Cont.) Association Name Reading Direction Arrow (Optional) Default Left Right Top Bottom Multiplicity Source: Applying UML & Patterns, Craig Larman Page 152

26 Common Association List Category A is a transaction related to another transaction B A is a line item of a transaction B A is a product or service for a transaction (or line item) B A is a role related to a transaction B A is a physical or logical part of B A is a description for B Examples CashPayment Sale Cancellation - Reservation SalesLineItem - Sale Item SalesLineItem (or Sale ) Flight Reservation Customer - Payment Passenger - List Seat Airplane Square Board Drawer Register ProductDescription Item FlightDescription Flight Square Board Source: Applying UML & Patterns, Craig Larman Page 155

27 Common Association List(Cont.) Category A is physically or logically contained in/on B A is known/logged/recorded/reported/c aptured in B A is a member of B A is an organizational subunit of B A uses or manages or owns B A is next to B Examples Register Store Passanger Airplane Sale Register Reservation FlightManifest Piece Square Cashier Store Pilot Airline Department Store Maintenance Airline Pilot Airplane Player Piece SalesLineItem SalesLineItem Square-Square City-City Source: Applying UML & Patterns, Craig Larman Page 155

28 No Attributes Representing Foreign Keys Attributes should NOT be used to relate concepts in the conceptual classes in domain model. The most common violation of this principle is to add a kind of foreign key attribute, as it is typically done in relational database designs, in order to associate two types. Source: Applying UML & Patterns, Craig Larman Page 165

29 No Attributes Representing Foreign Keys (Cont.) WORSE BETTER Do not use attributes as foreign keys Source: Applying UML & Patterns, Craig Larman Page 165

30 Domain Model (2) Refinement Generalization and specialization are fundamental concepts in domain modeling. Conceptual class hierarchies are often the basis of the inspiration for software class hierarchies that exploit inheritance. Source: Applying UML & Patterns, Craig Larman Page 501

31 Domain Model (2) Refinement (Cont.) Class hierarchy with separate and shared arrow notations. Source: Applying UML & Patterns, Craig Larman Page 505

32 Domain Model (2) Refinement (Cont.) Legal conceptual class partition, but is it useful in our domain? Source: Applying UML & Patterns, Craig Larman Page 505

33 Domain Model (2) Refinement (Cont.) Guideline Create a conceptual subclass of a superclass when: 1. The subclass has additional attributes of interest. 2. The subclass has additional associations of interest. 3. The subclass concept is operated on, handled, reacted to, or manipulated differently than the superclass or other subclasses, in ways that are of interest. 4. The subclass concept represents an animate thing (for example, animal, robot) that behaves differently than the superclass or other subclasses, in ways that are of interest. Source: Applying UML & Patterns, Craig Larman Page 508

34 Domain Model (2) Refinement (Cont.) Guideline Create a superclass in a generalization relationship to subclasses when: 1. The potential conceptual subclasses represent variations of a similar concept. 2. The subclasses will conform to the 100% and Isa rules. 3. All subclasses have the same attribute that can be factored out and expressed in the superclass. 4. All subclasses have the same association that can be factored out and related to the superclass. Source: Applying UML & Patterns, Craig Larman Page 508

35 Domain Model (2) Refinement (Cont.) Justifying Payment subclasses Source: Applying UML & Patterns, Craig Larman Page 511

36 Domain Model Refinement (2) Abstract Conceptual Classes Definition If every member of a class C must also be a member of a subclass, then class C is called an abstract conceptual class. Source: Applying UML & Patterns, Craig Larman Page 513

37 Domain Model Refinement (2) Abstract Conceptual Classes (Cont.) Source: Applying UML & Patterns, Craig Larman Page 514

38 Domain Model (2) Refinement Association Classes Multivalued Guideline In a domain model, if a class C can simultaneously have many values for the same kind of attribute A, do not place attribute A in C. Place attribute A in another class that is associated with C. For example: A Person may have many phone numbers. Place phone number in another class, such as PhoneNumber associate many of these to Person. Source: Applying UML & Patterns, Craig Larman Page 517

39 Domain Model (2) Refinement Association Classes (Cont.) Source: Applying UML & Patterns, Craig Larman Page 518

40 Domain Model (2) Refinement Association Classes Guideline Clues that an association class might be useful in a domain model: 1. An attribute is related to an association. 2. Instances of the association class have a lifetime dependency on the association. 3. There is a many-to-many association between two concepts and information associated with the association itself. Source: Applying UML & Patterns, Craig Larman Page 519

41 Domain Model (2) Refinement Association Role Names Guideline Each end of an association is a role, which has various properties, such as: name multiplicity Source: Applying UML & Patterns, Craig Larman Page 522

42 Domain Model (2) Refinement Association Role Names (Cont.) An explicit role name is NOT required it is useful when the role of the object is not clear. It usually starts with a lowercase letter. If not explicitly present, assume that the default role name is equal to the related class name, though starting with a lowercase letter. Source: Applying UML & Patterns, Craig Larman Page 519

43 Domain Model (2) Refinement Association Role Names (Cont.) Source: Applying UML & Patterns, Craig Larman Page 519

44 Domain Model (2) Refinement Association Role Names (Cont.) Same instance of a person takes on multiple (and dynamically changing) roles in various associations Source: Applying UML & Patterns, Craig Larman Page 519

45 You have done enough on STATIC modeling Need some DYNAMIC modeling

46 System Sequence Diagrams (=SSD) Having explored domain modeling, SSD will be used to identify SYSTEM operations. (their effect on the domain model objects will be discussed in OCs) An SSD shows, for a particular course of events within use case. Guideline: Draw an SSD for a main success scenario of each use case, and frequent or complex alternative scenarios. Source: Applying UML & Patterns, Craig Larman Page 175

47 System Sequence Diagrams (Cont.) Source: Applying UML & Patterns, Craig Larman Page 177

48 System Sequence Diagrams (=SSD) Don t draw an SSD for all scenarios, UNLESS you are using an estimation technique (such as Function Point Counting) that requires identification of all system operations. Source: Applying UML & Patterns, Craig Larman Page 180

49 Operation Contracts Having explored SSDs and system operations, Operation Contracts takes the system operations and define their effect of the domain object models. Source: Applying UML & Patterns, Craig Larman Page 181

50 Operation Contracts Example Operation: Cross References: Preconditions: Postconditions: Contract CO2: enteritem enteritem(itemid: ItemID, quantity: integer) Use Cases: Process Sale There is a sale underway. - A SalesLineItem instance sli was created (instance creation). - sli was associated with the current Sale (association formed). - sli.quantity became quantity (attribute modification). - sli was associated with a ProductDescription, based on itemid match (association formed). Source: Applying UML & Patterns, Craig Larman Page 183

51 Analogy: The Spirit of Postconditions: The Stage and Curtain Why write postconditions in the past tense? Think about them using the following image: The system and its objects are presented on a theatre stage. 1. Before the operation, take a picture of the stage. 2. Close the curtains on the stage, and apply the system operation (background noise of clanging, screams, and screeches ) 3. Open the curtains and take a second picture. 4. Compare the before and after pictures, and express as postconditions the changes in the state of the stage (A SalesLineItem was created ). Source: Applying UML & Patterns, Craig Larman Page 186

52 UML Code Mapping The enteritem interaction diagram Source: Applying UML & Patterns, Craig Larman Page 249

53 UML Code Mapping (Cont.) Source: Applying UML & Patterns, Craig Larman Page 249

54 UML Code Mapping (Cont.) Source: Applying UML & Patterns, Craig Larman Page 377

55 UML Code Mapping (Cont.) class Payment // all classes are probably in a package named // something like: package com.foo.nextgen.domain; public class Payment { private Money amount; public Payment( Money cashtendered ){ amount = cashtendered; } public Money getamount() { return amount; } } Source: Applying UML & Patterns, Craig Larman Page 377

56 UML Code Mapping (Cont.) Class ProductCatalog public class ProductCatalog { private Map<ItemID, ProductDescription> descriptions = new HashMap()<ItemID, ProductDescription>; public ProductCatalog() { // sample data ItemID id1 = new ItemID( 100 ); ItemID id2 = new ItemID( 200 ); Money price = new Money( 3 ); ProductDescription desc; desc = new ProductDescription( id1, price, "product 1" ); descriptions.put( id1, desc ); desc = new ProductDescription( id2, price, "product 2" ); descriptions.put( id2, desc ); } public ProductDescription getproductdescription( ItemID id ) { } return descriptions.get( id ); } Source: Applying UML & Patterns, Craig Larman Page 377

57 UML Code Mapping (Cont.) public class Register { private ProductCatalog catalog; private Sale currentsale; public Register( ProductCatalog catalog ) { this.catalog = catalog; } public void endsale() { currentsale.becomecomplete(); } public void enteritem( ItemID id, int quantity ) { ProductDescription desc = catalog.getproductdescription( id ); currentsale.makelineitem( desc, quantity ); } public void makenewsale() { currentsale = new Sale(); } public void makepayment( Money cashtendered ) } { currentsale.makepayment( cashtendered ); } Source: Applying UML & Patterns, Craig Larman Page 377

58 Software Class GUI Classes Source: Applying UML & Patterns, Craig Larman Page 313

59 OO Design OO Programming Language During the OO Design process, you should also consider the characteristics of the programming language that you are going to implement. Characteristics of the programming language impose critical constraints on the overall system design.

60 Characteristics of some widely used OO PL Feature Smalltalk C++ Eiffel Java C# Strong Typing optional Static/dynamic Typing D S S S+D S+D Garbage Collection X Multiple Inheritence X X X Pure Objects X X X Dynamic Loading X X Standardized class libraries Correctness Costructs X X X X X X Source: Object Oriented Systems Analysis and Design using UML, 3/e Page 87

61 End Any questions/suggestions?

Object-Oriented Functional Analysis and Design for POS Example

Object-Oriented Functional Analysis and Design for POS Example Object-Oriented Functional Analysis and Design for POS Example Focus in Analysis, Design, Implementation Analysis Investigation to the problem in problem domain Design Logical solution(model) for implementation

More information

Information Expert (or Expert)

Information Expert (or Expert) Page 2 Page 3 Pattern or Principle? Information Expert (or Expert) Class Responsibility Sale Knows Sale total SalesLineItem Knows line item total ProductDescription Knows product price The GRASP patterns

More information

Mapping Designs to Code

Mapping Designs to Code Mapping Designs to Code Creating Class Definitions from DCDs public class SalesLineItem private int quantity; private ProductDescription description ; public SalesLineItem(ProductDescription desc, int

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

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies COMP 6471 Software Design Methodologies Fall 2011 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp6471-fall2011.html Page 2 Sample UP Artifact Relationships Domain Model Context Business Modeling

More information

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.

More information

OO Design2. Design Artifacts

OO Design2. Design Artifacts OO Design2 POS example - revisited LAR Ch 8 has entire POS design explained READ THIS CHAPTER and ASK Q s in class Design class diagrams Kinds of visibility of objects to one another Navigability of associations

More information

Operations Contracts and Preliminaries on Design

Operations Contracts and Preliminaries on Design Operations Contracts and Preliminaries on Design CSSE 574: Week 2, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu We are at System Operation Contracts

More information

Domain Model and Domain Modeling

Domain Model and Domain Modeling Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Domain Model and Domain Modeling Resources: Craig Larman; Applying UML and

More information

Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)

Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937) Domain Modeling CSSE 574: Week 1, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu s g Where we re going Sample UP Artifact Relationships date...

More information

Domain Modeling- 2. Generalization

Domain Modeling- 2. Generalization Generalization Domain Modeling- 2 Conceptual superclasses and subclasses When to create a subclass? A superclass? Abstract classes Modeling state changes Operation contracts Attaching pre- /post-conditions

More information

Constantinos Constantinides Computer Science and Software Engineering Concordia University Montreal, Canada

Constantinos Constantinides Computer Science and Software Engineering Concordia University Montreal, Canada 1 Disclaimer: These slides are based on the 2 nd edition of Applying UML and Patterns; An introduction to OOAD and the Unified process by Craig Larman (2002). I take responsibility for any errors. Constantinos

More information

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.

More information

Domain Modeling: Associations and Attributes

Domain Modeling: Associations and Attributes Domain Modeling: Associations and Attributes CSSE 574: Week 2, Part Steve Chenoweth Phone: Office (82) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Q Description Classes A description class

More information

Responsibilities. Using several specific design principles to guide OO design decisions.

Responsibilities. Using several specific design principles to guide OO design decisions. Designing Objects with Responsibilities Using several specific design principles to guide OO design decisions. Challenge Old-school advice on OOD After identifying i your requirements and creating a domain

More information

Software Modeling & Analysis

Software Modeling & Analysis Software Modeling & Analysis OOPT (Object Oriented Process with Trace) Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr What is OOPT? OOPT (Object Oriented Process with Trace) A software process based on RUP Revision

More information

GRASP: Patterns for. chapter18

GRASP: Patterns for. chapter18 GRASP: Patterns for assigning responsibility chapter18 1 Chapter Objectives Learn about design patterns Learn how to apply five GRASP patterns 2 Building Collaboration diagrams System Design: how the system

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

PART 5 Elaboration Iteration 3 Intermediate topics. Iteration 3

PART 5 Elaboration Iteration 3 Intermediate topics. Iteration 3 PART 5 Elaboration Iteration 3 Intermediate topics development cycle iteration phase inc. elaboration construction transition Chapter 27 Iteration 3 Intermediate Topics 1 Objective Introduction Define

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

Principles of Software Construction: Objects, Design, and Concurrency. Assigning Responsibilities to Objects. toad. Jonathan Aldrich Charlie Garrod

Principles of Software Construction: Objects, Design, and Concurrency. Assigning Responsibilities to Objects. toad. Jonathan Aldrich Charlie Garrod Principles of Software Construction: Objects, Design, and Concurrency Assigning Responsibilities to Objects toad Fall 2014 Jonathan Aldrich Charlie Garrod School of Computer Science Key concepts from Thursday

More information

References: Applying UML and patterns Craig Larman

References: Applying UML and patterns Craig Larman References: Applying UML and patterns Craig Larman 1 2 What are patterns? Principles and solutions codified in a structured format describing a problem and a solution A named problem/solution pair that

More information

Last Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns

Last Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns Last Time: Object Design Comp435 Object-Oriented Design Week 7 Computer Science PSU HBG The main idea RDD: Responsibility-Driven Design Identify responsibilities Assign them to classes and objects Responsibilities

More information

Designing for Visibility & Mapping to Code CSSE 574: Session 4, Part 3

Designing for Visibility & Mapping to Code CSSE 574: Session 4, Part 3 Designing for Visibility & Mapping to Code CSSE 574: Session 4, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Agenda Designing for Visibility Mapping

More information

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS UNIT 1 UML DIAGRAMS Introduction to OOAD Unified Process - UML diagrams Use Case Class Diagrams Interaction Diagrams State Diagrams Activity Diagrams Package, component and Deployment Diagrams. INTRODUCTION

More information

Download FirstOODesignPractice from SVN. A Software Engineering Technique: (Class Diagrams)

Download FirstOODesignPractice from SVN. A Software Engineering Technique: (Class Diagrams) Download FirstOODesignPractice from SVN A Software Engineering Technique: (Class Diagrams) public class TicTacToe { private final int rows; private final int columns; private String[][] board; /** * Constructs

More information

From designing to coding

From designing to coding From designing to coding l st step: sensibly split work among team members Choose splits along thin interfaces l Probably not equal parts; split biggest parts again later Formalize the interfaces think

More information

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt What

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

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP Dave Clarke 1 TODAY S LECTURE We will discuss 7 of the GRASP design patterns cohesion and coupling were covered earlier. These provide principles for evaluating

More information

Some Software Engineering Techniques (Class Diagrams and Pair Programming)

Some Software Engineering Techniques (Class Diagrams and Pair Programming) Some Software Engineering Techniques (Class Diagrams and Pair Programming) } Programs typically begin as abstract ideas } These ideas form a set of abstract requirements } We must take these abstract requirements,

More information

Principles of Software Construction: Objects, Design and Concurrency. Object-Oriented Design: Assigning Responsibilities.

Principles of Software Construction: Objects, Design and Concurrency. Object-Oriented Design: Assigning Responsibilities. Principles of Software Construction: Objects, Design and Concurrency 15-214 toad Object-Oriented Design: Assigning Responsibilities Christian Kästner Charlie Garrod School of Computer Science With slides

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

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 http://data.science.uoit.ca -> Home -> Teaching -> Software Design and Analysis Software Design and Analysis CSCI 4030 2 Describe the goals. Define object-oriented

More information

Creating Class Definitions from Design Class Diagrams: public class SalesLineItem // Java { private int quantity;

Creating Class Definitions from Design Class Diagrams: public class SalesLineItem // Java { private int quantity; 24.3.204 Coding (Implementation) The design model (design class diagram and interaction diagrams) provides some of the information that is necessary to generate the code. (Not all of the code) Creating

More information

Assigning Responsibilities by Larman

Assigning Responsibilities by Larman Assigning Responsibilities by Larman Core design activity: The identification of objects and responsibilities and providing a solution in terms of an interaction diagram this is the creative part where

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

ROEVER ENGINEERING COLLEGE DEPARTMENT OF INFORMATION TECHNOLOGY CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

ROEVER ENGINEERING COLLEGE DEPARTMENT OF INFORMATION TECHNOLOGY CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD ROEVER ENGINEERING COLLEGE CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN 1. What is Object-Oriented Analysis? Unit-I Introduction to OOAD PART-A During object-oriented analysis there is an emphasis on finding

More information

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies COMP 647 Software Design Methodologies Fall 20 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-fall20.html Course Introduction Course People Course Components What the course is What the

More information

Sequence Diagram. A UML diagram used to show how objects interact. Example:

Sequence Diagram. A UML diagram used to show how objects interact. Example: Sequence Diagram A UML diagram used to show how objects interact. Example: r: Register s: Sale makepayment() makepayment() new() : Payment The above starts with a Register object, r, receiving a makepayment

More information

Sequence Diagram. r: Register s: Sale

Sequence Diagram. r: Register s: Sale ACS-3913 1 Sequence Diagram A UML diagram used to show how objects interact. Example: r: Register s: Sale makepayment() makepayment() new() : Payment The above starts with a Register object, r, receiving

More information

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS CS6502 - OBJECT ORIENTED ANALYSIS AND DESIGN L T P C 3 0 0 3 UNIT I- UML DIAGRAMS Introduction to OOAD Unified Process - UML diagrams Use Case Class Diagrams

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

COMP 354: INTRODUCTION TO SOFTWARE ENGINEERING

COMP 354: INTRODUCTION TO SOFTWARE ENGINEERING COMP 354: INTRODUCTION TO SOFTWARE ENGINEERING Introduction to UML d_sinnig@cs.concordia.ca Department for Computer Science and Software Engineering 28-May-14 Unified Modeling Language Structural Diagrams

More information

CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Two Marks Question with Answers Unit-I Introduction to OOAD

CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Two Marks Question with Answers Unit-I Introduction to OOAD CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Two Marks Question with Answers Unit-I Introduction to OOAD 1. What is Object-Oriented Analysis? Nov/Dec 2016 During object-oriented analysis there is an emphasis

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

What is a Model? Copyright hebley & Associates

What is a Model? Copyright hebley & Associates Modeling Overview... as we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there

More information

Tutorial notes on. Requirements analysis

Tutorial notes on. Requirements analysis Tutorial notes on Requirements analysis Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University Page 1 of 12 Exercise 1. Consider an email client software. The client

More information

2 GRASP Patterns and basic OO Design. Roel Wuyts OASS

2 GRASP Patterns and basic OO Design. Roel Wuyts OASS 2 GRASP Patterns and basic OO Design Roel Wuyts OASS1 2009-2010 Patterns 2 Bit of history... Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN

More information

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN 1. What is Object-Oriented Analysis? Unit-I Introduction to OOAD PART-A (UML Notations has to be used wherever necessary)

More information

SE203b: OO Design for Software Engineers. Office: TEB349, Ext

SE203b: OO Design for Software Engineers. Office: TEB349, Ext SE203b: OO Design for Software Engineers W0 : Course Overview Jan. 11, 2006 SE203b, ECE UWO, Hamada Ghenniwa Teaching Team Instructor TAs o Hamada Ghenniwa Office: TEB349, Ext. 88262 e-mail: hghenniwa@eng.uwo.ca

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

Object-Oriented Analysis and Design

Object-Oriented Analysis and Design Analysis and Design To develop an application, it is necessary a description of the problem and requirements: what the problem is about and what a system must do high-level and detailed descriptions of

More information

GRASP Design Patterns A.A. 2018/2019

GRASP Design Patterns A.A. 2018/2019 GRASP Design Patterns A.A. 2018/2019 Objectives Introducing design patterns Introduzione ai design pattern Designing objects and responsibilities GRASP design patterns A long corridor A passage room Does

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Logical Architecture & Design Preliminaries

Logical Architecture & Design Preliminaries Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu From Requirements to Architecture Customer

More information

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812) CSSE 374: Logical Architecture Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu An Engineering Decision Learning Outcomes: O-O Design Demonstrate object-oriented

More information

Introduction - SENG 330. Object-Oriented Analysis and Design

Introduction - SENG 330. Object-Oriented Analysis and Design Introduction - SENG 330 Object-Oriented Analysis and Design SENG 330 Fall 2006 Instructor: Alex Thomo Email: thomo@cs.uvic.ca Office hours: Office Hours: TWF 12:30-1:30 p.m. Location: ECS 556 Objective:

More information

4 Software models. often more than what people can handle not necessary to know all details at all times

4 Software models. often more than what people can handle not necessary to know all details at all times 4 Software models Software is complex often more than what people can handle not necessary to know all details at all times Models offer simplified view concentrate on the important issues and omit the

More information

Object Analysis & Design in the textbook. Introduction to GRASP: Assigning Responsibilities to Objects. Responsibility-Driven Design

Object Analysis & Design in the textbook. Introduction to GRASP: Assigning Responsibilities to Objects. Responsibility-Driven Design Object Analysis & Design in the textbook Chapter 2 Object Oriented Design Process Introduction to GRASP: Assigning Responsibilities to Objects CS 4354 Summer II 2016 Jill Seaman Much of the material in

More information

Modeling Dynamic Behavior

Modeling Dynamic Behavior Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Modeling Dynamic Behavior The following slides use material from: Craig Larman;

More information

On to Object-oriented Design

On to Object-oriented Design Dr. Michael Eichberg Software Technology Group Department of Computer Science Technische Universität Darmstadt Introduction to Software Engineering On to Object-oriented Design Object-oriented Design 2

More information

System Sequence Diagrams. Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes

System Sequence Diagrams. Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes System Sequence Diagrams Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes Dynamic behaviors Class diagrams represent static relationships. Why? What about modeling dynamic behavior? Interaction

More information

Chapter 3: Object Oriented Design

Chapter 3: Object Oriented Design Chapter 3: Object Oriented Design Object Oriented Design The boundaries between analysis and design are fuzzy, although the focus of each is quite distinct. In analysis, the focus is to fully analyze the

More information

MechEng SE3 Lecture 7 Domain Modelling

MechEng SE3 Lecture 7 Domain Modelling MechEng SE3 Lecture 7 Domain Modelling Simon Gay (slides by Phil Gray) 17 February 2010 1 This week s supplementary reading Zero Balances and Zero Responsibility Michael Bolton http://www.developsense.com/essays/zero.html

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

Object Fundamentals Part Three. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 4 09/06/2007

Object Fundamentals Part Three. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 4 09/06/2007 Object Fundamentals Part Three Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 4 09/06/2007 1 Lecture Goals Continue our tour of the basic concepts, terminology, and notations

More information

Applying UML & Patterns (3 rd ed.) Chapter 15

Applying UML & Patterns (3 rd ed.) Chapter 15 Applying UML & Patterns (3 rd ed.) Chapter 15 UML INTERACTION DIAGRAMS This document may not be used or altered without the express permission of the author. Dr. Glenn L. Ray School of Information Sciences

More information

Advanced Class Diagrams and Intro to Interaction Modeling

Advanced Class Diagrams and Intro to Interaction Modeling Advanced Class Diagrams and Intro to Interaction Modeling Or: Advance to Illinois Avenue. Do not pass Go. Jonathan Sprinkle 1 University of Arizona Department of Electrical and Computer Engineering PO

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Introduce UML State Machine Diagram Notation. Create State Machine Diagrams for Classes and Use Cases. Advanced techniques in Activity Diagrams. Software Design and

More information

The OO Solution. Objects

The OO Solution. Objects C870: Cheng The OO Solution The OO model closely resembles the problem domain Base your model on the objects in the problem domain Iteratively refine the high-level model until you have an implementation

More information

GRASP ing at the First 5 Patterns Principles CSSE 574: Session 3, Part 4

GRASP ing at the First 5 Patterns Principles CSSE 574: Session 3, Part 4 GRASP ing at the First 5 Patterns Principles CSSE 574: Session 3, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu GRASP General Responsibility Assignment

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

Object-Oriented Design

Object-Oriented Design Software and Programming I Object-Oriented Design Roman Kontchakov / Carsten Fuhs Birkbeck, University of London Outline Discovering classes and methods Relationships between classes An object-oriented

More information

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

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson January 13, 2005 January 18, 2005 1 of 38 Lecture Goals Introduce the basic concepts of object-oriented analysis/design/programming

More information

0. Database Systems 1.1 Introduction to DBMS Information is one of the most valuable resources in this information age! How do we effectively and efficiently manage this information? - How does Wal-Mart

More information

Object-Oriented Design I - SOLID

Object-Oriented Design I - SOLID Object-Oriented Design I - SOLID SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Single responsibility Open/close Liskov substitution

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

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering CS6502 - OBJECT ORIENTED ANALYSIS AND DESIGN 2 & 16 Mark Questions & Answers Year / Semester: III / V Regulation:

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

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

Sommerville Chapter 7 Fowler Chapters 1, 3, 5, and 6. Conceptual Modeling and Class Diagrams

Sommerville Chapter 7 Fowler Chapters 1, 3, 5, and 6. Conceptual Modeling and Class Diagrams Sommerville Chapter 7 Fowler Chapters, 3, 5, and 6 Conceptual Modeling and Class Diagrams ter> time> Announcements HW2 handout now available on the webpage. Interpration of throttle position and its relation

More information

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

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation Module Outline Fundamentals of Object Positioning Object Oriented Analysis Fundamentals of Object 1. Encapsulation 2. Abstraction 3. Inheritance 4. Polymorphism The need of Modeling Unified modeling language

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

Software Modeling & Analysis

Software Modeling & Analysis Software Modeling & Analysis KUPE (Konkuk Unified Process for Education) With Case Study -OOPT (Object Oriented Process with Trace) Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr What is KUPE? KUPE (Konkuk Unified

More information

Information Technology Audit & Cyber Security

Information Technology Audit & Cyber Security Information Technology Audit & Cyber Security Structural Modeling Systems & Infrastructure Lifecycle Management OBJECTIVES demonstrate the differences between object diagrams and class diagrams, explain

More information

CSSE 374: Design Class Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: Design Class Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812) CSSE 374: Design Class Diagrams Shawn Bohner Office: Moench Room F22 Phone: (82) 877-8685 Email: bohner@rose-hulman.edu General solutions get you a 50% tip Plan for the Day Pre-break course evaluations

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency Designing (sub-) systems Responsibility assignment Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Reading

More information

Software Life-Cycle Models

Software Life-Cycle Models Software Life-Cycle Models CMPSC 487 Lecture 03 Topics: UML Class Diagram Rosenburg Chap 2. Domain Modeling A. UML: Unified Modeling Language UML is a general-purpose, developmental, modeling language

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

Modeling Dynamic Behavior

Modeling Dynamic Behavior Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Modeling Dynamic Behavior The following slides use material from: Craig Larman;

More information

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae CS350 Lecture 2 Requirements Engineering Doo-Hwan Bae bae@se.kaist.ac.kr Contents Overview of Requirements Engineering OO Analysis: Domain modeling, Use-case, sequence, class Structured Analysis: Dataflow

More information

1 OBJECT-ORIENTED ANALYSIS

1 OBJECT-ORIENTED ANALYSIS UML and Patterns.book Page 3 Sunday, August 9, 200 2:50 PM Chapter OBJECT-ORIENTED ANALYSIS AND DESIGN The shift of focus (to patterns) will have a profound and enduring effect on the way we write programs.

More information

CS 215 Software Design Sample midterm solutions

CS 215 Software Design Sample midterm solutions Software Design Sample midterm solutions 1. The administration at Happy Valley School District is redesigning the software that manages information about its students. It has identified an abstract class

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

Building custom components IAT351

Building custom components IAT351 Building custom components IAT351 Week 1 Lecture 1 9.05.2012 Lyn Bartram lyn@sfu.ca Today Review assignment issues New submission method Object oriented design How to extend Java and how to scope Final

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Department of Computer Engineering Lecture 12: Object-Oriented Principles Sharif University of Technology 1 Open Closed Principle (OCP) Classes should be open for extension but closed

More information

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model.

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model. Chapter 6: Entity-Relationship Model The Next Step: Designing DB Schema Our Story So Far: Relational Tables Databases are structured collections of organized data The Relational model is the most common

More information

MSO Lecture 3. Wouter Swierstra. September 14, 2015

MSO Lecture 3. Wouter Swierstra. September 14, 2015 1 MSO Lecture 3 Wouter Swierstra September 14, 2015 2 Haven t found a lab partner yet? Come talk to me in the break. 3 LAST LECTURE How can I manage the process of constructing complex software? How do

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