02291: System Integration

Size: px
Start display at page:

Download "02291: System Integration"

Transcription

1 02291: System Integration Week 4 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018

2 Contents From Requirements to Design CRC Cards Components (part Ia) Object-orientation: Centralized vs Decentralized Control/Computation Summary

3 From Requirements to Design Problem Given a requirements model consisting of: 1 use case diagram 2 detailed use case descriptions 3 glossary 4 non functional requirements how do I get a system design consisting of a component diagram b class diagram c behaviour design

4 From Requirements to Design: Solution Design process 1 Define the basic architecture of the system 2 The terms in the glossary give first candidates for classes, attributes, and operations 3 Realize one use case scenario / user story at a time simulate execution CRC cards

5 Contents From Requirements to Design CRC Cards Components (part Ia) Object-orientation: Centralized vs Decentralized Control/Computation Summary

6 Introduction CRC Cards Class Responsibility Collaboration Developed in the 80 s Used to Analyse a problem domain Discover object-oriented design Teach object-oriented design Object-oriented design Objects have state and behaviour Think objects

7 CRC Card Template A larger example

8 Process Basic: Simulate the execution of use case scenarios / user stories Steps 1. Brainstorm classes/objects/components 2. Assign classes/objects/components to persons (group up to 6 peopel) 4. Execute the scenarios one by one a) add new classes/objects/components as needed b) add new responsibilities c) delegate to other classes / persons

9 Library Example: Problem Description and Glossary Problem Description Library system for checking out, returning, and searching for books. No more than 5 books can be loaned by one borrower at a time. And if a book is returned after its overdue date, a fine has to be paid.

10 Library Example: Problem Description and Glossary Problem Description Library system for checking out, returning, and searching for books. No more than 5 books can be loaned by one borrower at a time. And if a book is returned after its overdue date, a fine has to be paid. Glossary Librarien The object in the system that fulfills User requests to check out, check in, and search for library materials Book The set of objects that represent Users who borrow items from the library Borrower The set of objects that represent Users who borrow items from the library...

11 Library Example: Use Case Diagram Use Cases LibrarySystem borrow book return book User search for book

12 Library Example: Detailed Use Case Check Out Book Name: Check Out Book Description: The user checks out a book from the library Actor: User Main scenario: 1 A user presents a book for check-out at the check-out counter 2 The system registers the loan Alternative scenarios: The user already has 5 books borrowed 2a The system denies the loan The user has one overdue book 2b The system denies the loan

13 Example II Set of initial CRC cards Librarien The object in the system that fulfills User requests to check out, check in, and search for library materials Borrower The set of objects that represent Users who borrow items from the library Book The set of objects that represent items to be borrowed from the library Use case Check out book main scenario What happens when Barbara Stewart, who has no accrued fines and one outstanding book, not overdue, checks out a book entitled Effective C++ Strategies+?

14 Library Example: CRC cards

15 Library Example: CRC cards

16 Library Example: CRC cards

17 Library Example: CRC cards

18 Library Example: CRC cards

19 Library Example: CRC cards

20 Library Example: CRC cards

21 Library Example: CRC cards

22 Library Example: CRC cards

23 Library Example: CRC cards

24 Library Example: CRC cards

25 Library Example: CRC cards

26 Library Example: CRC cards

27 Library Example: CRC cards

28 Library Example: CRC cards

29 Library Example: All CRC cards

30 Process: Next Steps Repeat the process with other scenarios completes the design Review the result Group cards Check cards Refactor Transfer the result UML class diagram UML interaction diagrams

31 Example: Class Diagram (so far) Librarien checkoutbook(b:book) * Borrower canborrow 0..1 * Book isoverdue checkout(b:borrower) calculateduedate * Date compare(d:date) 0..1 duedate

32 Example: Sequence Diagram for Check-out book Check Out Book Realization

33 Summary Process Further scenarios give more detail Repeat CRC process on a more detailed level e.g. to design database interaction, or user interface Choose your level of abstraction and stay there Alternative: Build sequence and class diagrams directly (the modern way) Danger: talk about the system instead of being part of the system Possible when object-oriented principles have been learned CRC cards help with object-oriented thinking

34 Contents From Requirements to Design CRC Cards Components (part Ia) Object-orientation: Centralized vs Decentralized Control/Computation Summary

35 Software architecture Software architecture building blocks: components glue: connectors ports: interfaces to the outside Decompose the system into smaller components and their interconnection E.g. browser, Web server, database E.g. presentation layer, application layer, domain layer

36 Components Components: replacable piece of software Resuable Pluggable Well-defined interfaces: provided and required ports connectors Similar to classes: better encapsulation Component = set of collaborating classes Microservices are components

37 Example Bank ATM: UML 2.0 Component Diagram BankATM Clearing Bank ATM Company CB BC BA AB Note: Cannot be expressed in Topcased and MagicDraw (cf. note on the home page)

38 Example Bank ATM: UML 2.0 Component Diagram BankATM verifypin verifypin withdraw Clearing Bank ATM Company CB BC BA AB pinok pinnotok pinok pinnotok withdrawok withdrawnotok

39 Example Bank ATM: Configuration (composite structure diagram) :BankATM atm 0 :ATM c:clearing Company :CB :BC b:bank :BA :BA :AB atm 1 :ATM :AB

40 Strong encapsulation of components Strong encapsulation What is provided to others What is needed of others Ports define a portal to a component Have interfaces: provided / required Connect to other components

41 Showing interfaces Required Interface by port BA Provided Interface by port AB Port AB Clearing Company Bank ATM Port BC Port BA Provided Interface by port BA Required Interface by port AB

42 Port BA Bank <<interface>> BankToAtm verifypin(iban:iban, pin:int) withdraw(iban, amount:money) <<interface>> AtmToBank pinok pinnotok withdrawok withdrawnotok ATM C1 «interface» I1 m1 m2 m3 «refine» «interface» I2 m1 m3 C2

43 Component Meta-Model Conceptual meta-model (not actual UML 2.0 meta-model) 1 Assembly * * Component CompositeComponent * SimpleComponent * Connector * Port Protocol 1 1 required * * Interface provided

44 Component Notation Component as a stereotype

45 Realizing components No runtime representation (usually) No programming language support (usually) Different types of component concepts EJB, CORBA, COM/DCOM,.NET, JavaBeans,... Microservices

46 Bank component with Implementation Bank component seen from the outside Bank component seen from the inside ClearingCompanyToBank BankToClearingCompany Bank «delegate» «delegate» BankToATMPort * Bank «delegate» «delegate» * BankToAtm AtmToBank Account Customer

47 Detailed Class Diagram for the Bank Component «interface» BankToAtm verifypin(a,p): bool withdraw(a,m): bool «interface» AtmToBank pinok pinnotok withdrawok withdrawnotok 1 atm BankToATMPort verifypin(a,p): bool withdraw(a,m): bool pinok pinnotok * Account number : IBAN balance : int withdraw(amount:int): bool * «interface» BankToClearingCompany pinok pinnotok «interface» ClearingCompanyToBank verifypin(a,p) 1 cc Bank name: String... pinok pinnotok accountfor(a): Account... 1 b * c * 1..* Customer name address... Rules for classes implementing components Provided interfaces must to be implemented by some class Required interfaces must to be used by one or serveral classes No access to and from classes of other components (exception: common datatypes) Use packages to indicate classes belonging to a component

48 Contents From Requirements to Design CRC Cards Components (part Ia) Object-orientation: Centralized vs Decentralized Control/Computation Summary

49 Marriage Agency: How to implement? MarriageAgency matchcustomer(c):customer[*] * Customer sex:string birthyear:int interests:string[*] public class MarriageAgency{ private List<Customer> customers = new ArrayList<Customer>(); public List<Customer> matchcustomer(c) { List<Customer> matches = new ArrayList<Customer>(); for (Customer candidate : customers) {... // if customer matches candidate add to variable matches } return candidate; } }

50 Marriage Agency: centralized control MarriageAgency matchcustomer(c):customer[*] match(c,p) : boolean * Customer sex:string birthyear:int interests:string[*] public class MarriageAgency{ private List<Customer> customers = new ArrayList<Customer>(); public List<Customer> matchcustomer(c) { List<Customer> matches = new ArrayList<Customer>(); for (Customer candidate : customers) { // if customer matches candidate add to variable matches if (match(c,candidate)) { matches.add(candidate); } return candidate; } } public bool match(customer customer, Customer candidate) {... } }

51 Marriage Agency: centralized control sd match centralized loop [for all customers p]

52 Marriage Agency: decentralized/distributed control sd match decentralized loop [for all customers]

53 Marriage Agency: decentralized/distributed control MarriageAgency matchcustomer(c):customer[*] * Customer sex:string birthyear:int interests:string[*] match(c:customer) hasoppositesex(c) hasappropriateagedifference(c) hasoneinterestincommon(c) public class MarriageAgency{ private List<Customer> customers = new ArrayList<Customer>(); public List<Customer> matchcustomer(c) { List<Customer> matches = new ArrayList<Customer>(); for (Customer candidate : customers) { if (c.match(candidate)) { matches.add(candidate); } return candidate; } } } public class Customer {... public bool match(customer candidate) {... } }

54 Design for change: centralized control MarriageAgency matchcustomer(c):customer[*] matchcustomertypea(c):boolean matchcustomertypeb(c):boolean * Customer sex:string birthyear:int interests:string[*] CustomerTypeA CustomerTypeB public List<Customer> matchcustomer(customer c) { List<Customer> r = new ArrayList<Customer>(); for (Customer p : customers) { if (c instanceof CustomerA) { if (matchcustomertypea(p)) { r.add(p); } continue; } if (c instanceof CustomerB) { if (matchcustomertypeb(p)) { r.add(p); } continue; } } return r; }

55 Design for change: centralized control sd match centralized loop [for all customers] alt [c instanceof CustomerTypeA]

56 Design for change: decentralized control sd match decentralized loop [for all customers] alt

57 Design for change: decentralized control MarriageAgency matchcustomer(c):customer[*] * Customer sex:string birthyear:int interests:string[*] match(c:customer) CustomerTypeA match(c:customer) CustomerTypeB match(c:customer) public List<Customer> matchcustomer(customer c) { List<Customer> matches = new ArrayList<Customer>(); for (Customer candidate : customers) { if (c.match(candidate)) { matches.add(p); } } return matches; }

58 Centralised control

59 Centralized control Order calculate price calculate base price calculate discounts 1 Customer name discount info * OrderLine quantity 1 name price Product

60 Distributed control

61 Class diagram

62 Distributed control

63 Distributed Control: Class diagram Order calculate price calculate base price calculate discounts 1 Customer name discount info calculate discount * OrderLine quantity calculate price 1 Product name price get price for quantity

64 Centralized vs Distributed control Centralized control One method Data objects procedural programming language Distributed control Objects collaborate Objects = data and behaviour Object-orientation Advantage Easy to adapt Design for change CRC cards lead to distributed control

65 Contents From Requirements to Design CRC Cards Components (part Ia) Object-orientation: Centralized vs Decentralized Control/Computation Summary

66 Next Week: UML Class Diagrams Read/Skim the lectures notes and the UML user manual on classes and class diagrams Send me questions and UML class diagrams for discussion by Monday 26.2 What is unclear to you? What would you like to hear more about? Why is this feature used in this digram? What does this notation in this diagram mean?... I am going to answer the questions and discuss your class diagrams in the lecture Your questions and diagrams determine the lecture

02291: System Integration

02291: System Integration 02291: System Integration Week 5 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2017 Contents Object-orientation: Centralized vs Decentralized Control/Computation Class

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 7 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2018 Contents Sequence Diagrams Object-orientation: Centralized vs Decentralized

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 5 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Contents Components (part Ia) Class Diagrams Important Concepts Class Diagrams Software

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 2: Class diagrams part 1 Hubert Baumeister Informatics and Mathematical Modelling Technical University of Denmark Spring 2010 c 2010 H. Baumeister (IMM) Software Engineering

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 6: Design 1: CRC cards, class and sequence diagram Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents Midterm evaluation

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 6 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Contents UML State Machines Components (part II) UML Behaviour Diagrams Activity Diagrams

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 5 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Contents From Requirements to Design: CRC Cards Class Diagrams I Sequence Diagrams

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 7 Hubert Baumeister hub@imm.dtu.dk DTU Compute Technical University of Denmark Spring 2016 Contents Components (part III) Sequence Diagrams Design Validation: Use Case Realization

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 6 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Contents Sequence Diagrams II Object-orientation: Centralized vs Decentralized

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 7 Hubert Baumeister hub@imm.dtu.dk DTU Compute Technical University of Denmark Spring 2013 Contents Sequence Diagrams Design Validation: Use Case Realization Example: Interaction

More information

Course System Integration Deriving the use case realization

Course System Integration Deriving the use case realization Course 02291 System Integration Deriving the use case realization Hubert Baumeister (huba@dtu.dk) March 21, 2017 The goal of the use case realization is to show that the use cases can be executed using

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

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 2 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents What are software requirements? Requirements Engineering Process Domain

More information

02291: System Integration

02291: System Integration 02291: System Integration Hubert Baumeister hub@imm.dtu.dk Spring 2011 Contents 1 Recap 1 2 More UML Diagrams 2 2.1 Object Diagrams........................................... 2 2.2 Communication Diagrams......................................

More information

02291: System Integration

02291: System Integration 02291: System Integration Introduction to UML Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2019 What is the UML? Unified Modelling Language (UML) Family of graphical

More information

Java/A Taking Components into Java

Java/A Taking Components into Java Java/A Taking Components into Java Florian Hacklinger Institut für Informatik Ludwig-Maximilians-Universität München Oettingenstraße 67, 80538 München, Germany florian.hacklinger@pst.ifi.lmu.de Abstract

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 11 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap I Software Development Processes (cont.) I Project Planning I Design

More information

02161: Software Engineering I

02161: Software Engineering I 02161: Software Engineering I Week 9: Version Control, Software Development Process, and Project Introduction Hubert Baumeister Informatics and Mathematical Modelling Technical University of Denmark Spring

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8: Principle of good Design, Project, and Design Patterns Hubert Baumeister Informatics and Mathematical Modelling Technical University of Denmark Spring 2009 c 2009

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

02291: System Integration

02291: System Integration 02291: System Integration Week 8 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Components: Synchronized communication Sequence Diagrams Use Case Realization

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2018 Contents Basic Principles of Good Design Design Patterns Low Coupling High coupling

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 4 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap week 1: Introduction week 2: Requirements: Domain model, Use Cases week

More information

Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures

Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

More information

Objectives Pre-Test Questions Introduction Collaboration Diagrams Flow of Events and Special Requirements...

Objectives Pre-Test Questions Introduction Collaboration Diagrams Flow of Events and Special Requirements... 10 Analysis Modeling M MAJOR A J O R T TOPICSO P I C S Objectives... 144 Pre-Test Questions...144 Introduction... 145 Collaboration Diagrams... 145 Flow of Events and Special Requirements... 151 Class-Responsibility-Collaboration

More information

02291: System Integration

02291: System Integration 02291: System Integration Hubert Baumeister hub@imm.dtu.dk Spring 2012 Contents 1 General Information 1 2 Overview 3 3 Introduction to UML 11 4 Summary 16 1 General Information System Integration Type

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 5 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2018 Contents User Stories Class Diagrams I Version control User stories Requirements

More information

10.1 Big Objects, Business Objects, and UML Components

10.1 Big Objects, Business Objects, and UML Components II Black-Box Composition Systems 10. Finding Business s in a -Based Development Process Literature J. Cheesman, J. Daniels. UML s. Addison-Wesley. 1. The UML component model 2. Business component model

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 1 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2013 Contents Course Introduction Introduction to Software Engineering Practical

More information

Software component interactions and sequence diagrams

Software component interactions and sequence diagrams Software component interactions and sequence diagrams Paul Jackson School of Informatics University of Edinburgh What do we need to know? Recap Recall that this is an overview of software engineering,

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

CS246 Software Abstraction and Specification Final Examination

CS246 Software Abstraction and Specification Final Examination CS246 Software Abstraction and Specification ination Spring 2007 Date: 04-Aug-2007 Time: 4.00 6.30pm Permitted Aids: None 14 pages Student Name: UW Student ID: Instructions: (Read carefully before the

More information

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer Unit-1 Concepts Oral Question/Assignment/Gate Question with Answer The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering Object Management Group (OMG)

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 3 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Contents User Stories Activity Diagrams Acceptance Tests User stories Basic requirements

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

Administrivia. IBM Info Session Date: Wed,, Jan 13 Time: 5:30 7 pm Location: Wesbrook 100

Administrivia. IBM Info Session Date: Wed,, Jan 13 Time: 5:30 7 pm Location: Wesbrook 100 Department of Computer Science Undergraduate Events Events this week Drop-In Resume Edition Date: Mon. Jan 11 Time: 11 am 2 pm Location: Rm 255, ICICS/CS Industry Panel Speakers: Managers from IBM, Microsoft,

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2013 Recap Requirements Engineering user- / system requirements functional- / non-functional

More information

Practical Session 2: Use Cases and a Requirements Model.

Practical Session 2: Use Cases and a Requirements Model. Practical Session 2: The Use Case and Requirements Model T he following report uses a retail banking scenario to illustrate how Enterprise Architect can be used to develop Use Cases and a Requirements

More information

Lecture 16: (Architecture IV)

Lecture 16: (Architecture IV) Lecture 16: (Architecture IV) Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Oct.

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

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 9: Principles of good design, Patterns, Layered Architecture Hubert Baumeister Informatics and Mathematical Modelling Technical University of Denmark Spring 2010 c 2010

More information

CS 451 Software Engineering

CS 451 Software Engineering CS 451 Software Engineering Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Design Engineering A systematical way to translate SRS into design Start with use cases from SRS

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 9 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week Software Development Process Version Control Contents Project planning

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 1 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Contents Course Introduction Introduction to Software Engineering Practical

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

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

COMP-361 Software Engineering Project. Final. February 24th 2013: 6pm - 9pm. (10% of final grade) February 24, 2014

COMP-361 Software Engineering Project. Final. February 24th 2013: 6pm - 9pm. (10% of final grade) February 24, 2014 COMP-36 Software Engineering Project Final February 24th 203: 6pm - 9pm (0% of final grade) February 24, 204 Student Name: Examiner: Jörg Kienzle McGill ID: Instructions: DO NOT TURN THIS PAGE UNTIL INSTRUCTED

More information

Model-based Transition from Requirements to High-level Software Design

Model-based Transition from Requirements to High-level Software Design Model-based Transition from Requirements to High-level Software Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria System overview

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

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

Ch t 8 Chapter 8. System Models

Ch t 8 Chapter 8. System Models Ch t 8 Chapter 8. System Models Objectives To explain why the context t of a system should be modelled d as a part of requirements engineering process To describe behavioural modelling, data modelling

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 1 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents Course Introduction Introduction to Software Engineering Practical

More information

OO Analysis and Design with UML 2 and UP

OO Analysis and Design with UML 2 and UP OO Analysis and Design with UML 2 and UP Dr. Jim Arlow, Zuhlke Engineering Limited Clear View Training 2008 v2.5 1 UML principles Clear View Training 2008 v2.5 2 1.2 What is UML? Unified Modelling Language

More information

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems Component Design Systems Engineering BSc Course Budapest University of Technology and Economics Department of Measurement and Information Systems Traceability Platform-based systems design Verification

More information

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1. THE OBJECT PRIMER THIRD EDITION Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE gile 1 odeling Contents Acknowledgments Foreword Preface

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

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

1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE

1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE 1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE LECTURE-1 Syllabus Introduction 1.1 Introduction to Object Oriented 1.2 Introduction to UML 1.3 Software Process and OOA&D 1.4 Component and CBSD 1.5 Patterns

More information

Use Case Model. Static Structure. Diagram. Collaboration. Collaboration. Diagram. Collaboration. Diagram. Diagram. Activity. Diagram.

Use Case Model. Static Structure. Diagram. Collaboration. Collaboration. Diagram. Collaboration. Diagram. Diagram. Activity. Diagram. !"# $%&' !" #" $%%&&& ! Static Structure Diagram Collaboration Collaboration Diagram Collaboration Diagram Diagram Activity Diagram CRC Card CRC Card UML defines a standard notation for object-oriented

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 9: Layered Architecture Persistency Layer; Software Development Process Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 10 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Principles of good design: layered architecture Software Development Processes

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

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

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Modeling Applications using Language Mappings Programmer s Reference Manual How to use this Reference Card: The consists of a set of fundamental modeling elements which appear

More information

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M)

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M) CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M) Sample Deployment diagram Component diagrams are different in

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

Today s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading:

Today s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading: CompSci 280 S2 2107 Introduction to Software Development Today s Agenda Topics: Introduction Activity Diagram Object interaction Sequence Diagram Reading: Booch G.,The Unified Modeling Language User Guide,

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 4 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Recap Test in general validation and defect test unit-, component-, system-,

More information

Summary of the course lectures

Summary of the course lectures Summary of the course lectures 1 Components and Interfaces Components: Compile-time: Packages, Classes, Methods, Run-time: Objects, Invocations, Interfaces: What the client needs to know: Syntactic and

More information

Business Modelling. PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e. Early phase of development Inputs: Activities: informal specification

Business Modelling. PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e. Early phase of development Inputs: Activities: informal specification PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 4: Restaurant System: Business Modelling Slide 1/1 Business Modelling Early phase of development Inputs: informal specification Activities: create use

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency

More information

S1 Informatic Engineering

S1 Informatic Engineering S1 Informatic Engineering Advanced Software Engineering WebE Design By: Egia Rosi Subhiyakto, M.Kom, M.CS Informatic Engineering Department egia@dsn.dinus.ac.id +6285640392988 SYLLABUS 8. Web App. Process

More information

SEEM4570 System Design and Implementation Lecture 11 UML

SEEM4570 System Design and Implementation Lecture 11 UML SEEM4570 System Design and Implementation Lecture 11 UML Introduction In the previous lecture, we talked about software development life cycle in a conceptual level E.g. we need to write documents, diagrams,

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Recap Requirements Engineering functional / non-functional requirements Elicitation,

More information

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development Progress Report Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) CS 4354 Summer II 2014 Jill Seaman So far we have learned about the tools used in object-oriented

More information

OO design. Classes, Responsibilities, Collaborations (CRC) 13/9/1999 COSC

OO design. Classes, Responsibilities, Collaborations (CRC) 13/9/1999 COSC OO design Classes, Responsibilities, Collaborations (CRC) 1 bank accounts the system to be modelled: bank accounts with differing fee structures purpose: evaluate different account types with respect to

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

UML DIAGRAM FOR PLATFORM ASSIGNMENT RAILWAY E-BOOK

UML DIAGRAM FOR PLATFORM ASSIGNMENT RAILWAY E-BOOK 01 January, 2018 UML DIAGRAM FOR PLATFORM ASSIGNMENT RAILWAY E-BOOK Document Filetype: PDF 200.01 KB 0 UML DIAGRAM FOR PLATFORM ASSIGNMENT RAILWAY E-BOOK Platform assignment system for the trains in a

More information

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček Lecture 5 STRUCTURED ANALYSIS PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall 2015 1 Outline ² Yourdon Modern Structured Analysis (YMSA) Context diagram (CD) Data flow diagram

More information

IS 0020 Program Design and Software Tools

IS 0020 Program Design and Software Tools 1 IS 0020 Program Design and Software Tools Unified Modeling Language Lecture 13 April 13, 2005 What is UML? 2 The Unified Modelling Language is a standard notation to model [object oriented] systems.

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents Programming Tips and Tricks Booleans Constants Delegation Requirements

More information

Computer Systems Ms Jennifer. Ms Jennifer Senior 4 1

Computer Systems Ms Jennifer. Ms Jennifer Senior 4 1 Computer Systems Ms Jennifer Ms Jennifer Senior 4 1 Systems Analysis stages and the Waterfall model Ms Jennifer Senior 4 2 What is Analysis? When we are very young we undergo through the process of learning

More information

Object Oriented Analysis and Design: An Overview

Object Oriented Analysis and Design: An Overview Object Oriented Analysis and Design: An Overview Balaji Rajagopalan Credits: Material for the slides is drawn from a variety of sources including Object Oriented Analysis and Design using UML by Ali Bahrami.

More information

Requirements Engineering

Requirements Engineering Chapter 3: Requirements Modeling Requirements Engineering Objectives In this chapter, you will learn about: Functional requirements Modeling requirements Overview of basic modeling paradigms Gus Requirements

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 A formal design process Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Optional

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Com S/Geron 415X Gerontechnology in Smart Home Environments Lecture 9 Intro to Service Computing. Dr. Hen-I Yang ComS Dept., ISU

Com S/Geron 415X Gerontechnology in Smart Home Environments Lecture 9 Intro to Service Computing. Dr. Hen-I Yang ComS Dept., ISU Com S/Geron 415X Gerontechnology in Smart Home Environments Lecture 9 Intro to Service Computing Dr. Hen-I Yang ComS Dept., ISU Feb. 22, 2011 Reflection Peeking Ahead Today (2/22) Introduction to Service

More information

Object Orientated Analysis and Design. Benjamin Kenwright

Object Orientated Analysis and Design. Benjamin Kenwright Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary

More information

Before We Start. How to Represent the Architecture of Your Application Using UML 2.0 and More. O que catchup, x-burger e Peter Pan têm em comum?

Before We Start. How to Represent the Architecture of Your Application Using UML 2.0 and More. O que catchup, x-burger e Peter Pan têm em comum? How to Represent the Architecture of Your Application Using UML 2.0 and More Paulo Merson Software Engineering Institute Pittsburgh, PA pfm@sei.cmu.edu www.sei.cmu.edu/architecture Before We Start O que

More information

02267: Software Development of Web Services

02267: Software Development of Web Services 02267: Software Development of Web Services Week 8 Hubert Baumeister huba@dtu.dk Department of Applied Mathematics and Computer Science Technical University of Denmark Fall 2016 1 Recap Midtterm Evaluation

More information

Design patterns. OOD Lecture 6

Design patterns. OOD Lecture 6 Design patterns OOD Lecture 6 Next lecture Monday, Oct 1, at 1:15 pm, in 1311 Remember that the poster sessions are in two days Thursday, Sep 27 1:15 or 3:15 pm (check which with your TA) Room 2244 + 2245

More information

Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process

Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process 1. Business component model of the Cheesman/ Daniels process 2. Identifying business components Prof.

More information

SEEM4570 System Design and Implementation. Lecture 10 UML

SEEM4570 System Design and Implementation. Lecture 10 UML SEEM4570 System Design and Implementation Lecture 10 UML Introduction In the previous lecture, we talked about software development life cycle in a conceptual level E.g. we need to write documents, diagrams,

More information

Object Oriented Analysis and Design - Part2(Design)

Object Oriented Analysis and Design - Part2(Design) Object Oriented Analysis and Design - Part2(Design) Exam A QUESTION 1 Which statement is true about elements within the subsystem and public visibility? A. Only the subset of elements that define the subsystems

More information

Enterprise Architect Training Courses

Enterprise Architect Training Courses On-site training from as little as 135 per delegate per day! Enterprise Architect Training Courses Tassc trainers are expert practitioners in Enterprise Architect with over 10 years experience in object

More information

3. UML Class Diagrams Page 1 of 15

3. UML Class Diagrams Page 1 of 15 3. UML Class Diagrams Page 1 of 15 The UML Class Diagram: Part 1 In the last article, we saw what use cases were, and how to identify and create use cases. Taking the series ahead, in this article, we

More information

Welcome to Blackboard

Welcome to Blackboard Welcome to Blackboard Logging In To access your course, go to http://online.dbu.edu. Click on Login, and enter your User Name and Password. This will be the same user name and password you use to check

More information

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages CS211 Lecture: Design Quality; Cohesion and Coupling; Packages Objectives: Last revised October 4, 2004 1. To introduce the notion of design quality, tradeoffs, and some principles of quality design 2.

More information

Topics. Overview- The UML Functional Model. Structural Model. Behavioral Models. Use Case Diagram (essential and system)

Topics. Overview- The UML Functional Model. Structural Model. Behavioral Models. Use Case Diagram (essential and system) Topics Overview- The UML Functional Model Use Case Diagram (essential and system) Structural Model Class/object, Component and Deployment Diagram Behavioral Models Activity, State chart, sequence /collaboration

More information