How To Understand The Purpose Of A Class Diagram In Java.Io (Java)

Size: px
Start display at page:

Download "How To Understand The Purpose Of A Class Diagram In Java.Io 2.5.2.2 (Java)"

Transcription

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

2 Contents 1 Class Diagrams 2 Domain Model 3 Design and Implementation 4 Implementing Class Diagrams 5 Example 6 Summary Next Week: Generalisation / Inheritance / Subclass, Qualified Associations / Use of tables / Map datatype c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

3 Class Diagrams Class Diagrams Purpose to model concepts to identify important objects their state and interface to give an overview over the domain as part of the requirements analysis to give an overview over the systems as part of the design of the system to give an overview over the sytems implementation c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

4 Example Class Diagrams Example of a class diagram used for implementation c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

5 Example 2 Class Diagrams The same information as in the class diagram presented as Java source code public class Assembly extends Component { public double cost() { } public void add(component c) {} private Collection<Component> components; } public class CatalogueEntry { private String name = ""; public String getname() {} private long number; public long getnumber() {} private double cost; public double getcost() {} } public abstract class Component { public abstract double cost(); } public class Part extends Component { private CatalogueEntry entry; public CatalogueEntry getentry() {} public double cost(){} public Part(CatalogueEntry entry){} c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

6 Contents Domain Model 1 Class Diagrams 2 Domain Model Introduction Glossary Domain Model 3 Design and Implementation 4 Implementing Class Diagrams 5 Example 6 Summary c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

7 Domain model Domain Model Introduction Purpose: capture the customer s knowledge of the domain so that the system builders have the same knowledge Helps customer and system builders to speak the same language Necessary to define the terminology used Glossary Relationships between terms are shown in a class diagram Related to the concept of an ontology c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

8 Glossary Domain Model Glossary glossary (plural glossaries) 1. (lexicography) A list of terms in a particular domain of knowledge with the definitions for those terms. (Wikitionary) List of terms with explanations Terms can be nouns (e.g. those mentioned in a problem description) but also verbs or adjectives e.t.c. A glossary is prerequisit for defining an ontology c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

9 Example Domain Model Glossary Part of a glossary for a library application Book Copy... A book is a is a conceptual entity in a library. A book is defined by its title, the name of his authors, the publisher and the edition. A library can have several copies of the same book. A copy is a physical copy of a particular book. For example, the library has three copies of the book Using UML by Perdiate Stevens.... Warning Capture only knowledge relevant for the application Don t try to capture all possible knowledge c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

10 Domain Model Domain Model Domain model (concepts and their relations) Class diagrams can be used for showing terms and their relations Generalization Associations Name of the association Multiplicities Class Attributes Reading direction Classes Represent concepts of the domain Associations Represent relationships between concepts Generalizations is-a relationship between concepts c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

11 Contents Design and Implementation 1 Class Diagrams 2 Domain Model 3 Design and Implementation Introduction Classes Unidirectional Associations Bi-directional associations Aggregation 4 Implementing Class Diagrams 5 Example c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

12 Design and Implementation Introduction Class Diagram in Design and Implementations A class describes a collection of objects that a common characteristics regarding state (attributes) behaviour (operations) relations to other classes (associations and generalisations) c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

13 Design and Implementation The purpose of a class Introduction The interface of a class has to purposes to describe the functionality that is provided to the environment (programs using that class) to describe the functionality that needs to be implemented Private attributes encapsulate data Private operations are helper functions for other operations Level of detail of a class description depends on the purpose of the class diagram Domain Modelling : typically low level of detail Implementation. : typically high level of detail c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

14 Class Description Design and Implementation Classes - : private + : public # : protected KlasseNavn +navn1: String = "abc" -navn2: int #navn3: boolean -f1(a1:int,a2:string []): float +f2(x1:string,x2:boolean): void #f3(a:double): String Klassens navn Attributter Operationer navn3 og f1 er statiske størrelser private : only visible in the same class protected : visible also in subclasses public : visible also in other classes package : ( ) visible for other classes in the same package Attributes and operations that are underlined are static Attributes can be accessed without that an instance of that class exists Operations can be called without that an instance of that class exists c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

15 Design and Implementation Associations between classes Unidirectional Associations A association between classes means, that the objects belonging to the tow classes have knowledge of each other Associations can be navigable in one direction or two directions (a.k.a. bidirectional association) this means that knowledge can be only on one side or on two sides c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

16 Design and Implementation Unidirectional Associations Navigable associations in one direction I Example: Persons and their employers: * 0..1 Person Firma every person is associated to an employer (company/firma) every company has 0, 1, or more ( * ) employees (persons) The arrow means that a company has knowledge about all employees (persons) a company object has a reference to all the objects representing employees Conversely, a person object does not need to have a reference to the company object A at an arrow denotes that it should not be possible to navigate in this direction Navigability in the direction of the arrow 0 and are called multiplicities or cardinality c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

17 Design and Implementation Unidirectional Associations Navigable associations in one direction II Example: Persons and their employers: * 0..1 Person ansatte Firma a role (here employee) describes objects (here persons) at the end of an association, seen from the objects belonging to the classes at the opposite end of the (here company) in an implementation a role name is typically a variable. For example: public class Firma {... private Collection<Person> ansatte;... } c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

18 Design and Implementation Attributes and Associations Unidirectional Associations There is in principle no distinction between attributes and associations Associations can be drawn as attributes and vice versa c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

19 Design and Implementation Attributes versus Associations Unidirectional Associations When to use attributes and when to use associations? Associations When the target class of an association is shown in the diagram The target class of an association is a major class of the model e.g. Part, Assembly, Component,... Attributes When the target class of an associations is not shown in the diagram With datatypes / Value objects Datatypes consists of a set of values and set of operations on the values In contrast to classes are datatypes stateless e.g. int, boolean, String... Library classes However final choice depends on what one wants to express with the diagram E.g. Is it important to show a relationship to another class? c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

20 Multiplicities Design and Implementation Unidirectional Associations At the end of associations (or at other places) one often denotes how often an object can appear. E.g. how many employees a company can have These denotations are called multiplicities or cardinalities. Typical values used as cardinalities: values meaning m..n integer interval m to n (m and n inclusive) * 0, 1, 2,... m..* m, m + 1, m + 2, m + 3,... c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

21 Design and Implementation Bi-directional associations Bi-directional associations forældre 2 Person barn * ansatte * 0..1 * * kunde Firma when associations don t have any arrows, can this be understood as bi-directional, i..e. navigable in both directions, where on has decided not to show navigability, e.g. every person object has a reference to his employer every company object has a reference to his employee or as an under specification of navigability The example shows also two different associations between person and companies and a self-association c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

22 Design and Implementation Composite Aggregation (I) Aggregation A special relation between part-of between objects Sammensat Del Example: An consists of a header, a content and a collection of attachments 1 1 * 1 Hoved 1 Inhold * Attachment c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

23 Design and Implementation Composite Aggregation (II) Aggregation The basic two properties of a composite aggregation are: A part can only be part of one object The of the part object is tied to the life of the containing object This results in requirements to the implementation c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

24 Design and Implementation Composite Aggregation (III) Aggregation A part can only be part of one object Allowed c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

25 Design and Implementation Composite Aggregation (IV) Aggregation The life of the part object is tied to the life of the containing object If the containing object dies, so does the part object c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

26 Design and Implementation Composite Aggregation (V) Aggregation But: A part can be removed before the composite object is destroyed c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

27 Design and Implementation Aggregation Composite Aggregation (VI): Styklister A complex component (assembly) cannot have itself as a component Styklister can therefore be modelled using aggregation Component * Part 0..1 Assembly c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

28 Design and Implementation Shared Aggregation Aggregation Shared Aggregation General part of relationship Notation: empty diamond Precise semantics of shared aggregation varies by application area and modeller. (from the UML 2.0 standard) c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

29 Contents Implementing Class Diagrams 1 Class Diagrams 2 Domain Model 3 Design and Implementation 4 Implementing Class Diagrams Implementing classes Implemnting Associations Implementing bi-directional associations 5 Example 6 Summary c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

30 Implementing Class Diagrams Implementing classes Class descriptions and program skeleton (I) When classes are used to describe implementations, they correspond to program skeletons, e.g. public class ClaslName { public String name1 = "abc" private int name2 protected static boolean name3 } private static float f1(int a1, String[] a2) {... public void f2(string x1, boolean x2) {... } protected String f3(double a) {... } Development tools use this connection Diagram Program skeleton Program Diagram software development reverse engineering c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

31 Implementing Class Diagrams Implementing classes Class descriptions and program skeleton (II): Implementing public attributes Attributes are implemented as fields A +int a public class A { public int a; } In Java one uses setter and getter methods to access public fields instead of directly accessing the field This corresponds to the following class diagram public class A { private int a; } public void seta(int a) {this.a = a;} public int geta() { return a; } A -int a +seta(int a) +geta() However, a lot of tools support the generation of above Java code from the original diagram c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

32 Implementing Class Diagrams Implemnting Associations Implementing Associations: Cardinality 0..1 A 0..1 B public class A { private B b; } public B getb() { return b; } public void setb(b b) { this.b = b; } c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

33 Implementing Class Diagrams Implemnting Associations Implementing Associations: Cardinality * A * B public class A { private Collection<B> bs = new java.util.arraylist<b>(); } public Collection<B> getb() { return bs;} public void setb(collection<b> bs) { this.bs = bs; } If the multiplicity is >1, one adds a plural s to the role name: b bs Access to the implementation of the association using setb and getb poses encapsulation problems A client of A can change the association without A knowing it! c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

34 Implementing Class Diagrams Interface Collection<E> Implemnting Associations Operation boolean add(e e) boolean remove(e e) boolean contains(e e) Iterator<E> iterator() int size() Description returns false if e is in the collection returns true if e is in the collection returns true if e is in the collection allows to iterate over the collection number of elements Example of iterating over a collection Collection<String> names = new HashSet<String>() ; names.add("hans");... for (String name : names) { // Do something with name, e.g. System.out.println(name); } Collection cannot be instantiated directly One needs to use concrete implementation classes like HashSet or ArrayList c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

35 Implementing Class Diagrams Implemnting Associations Implementing Associations: Cardinality * (II) A * B public class A { private Collection<B> bs = new java.util.arraylist<b>(); } public void addb(b b) { bs.add(b);} public void contains(b b) { return bs.contains(b); } public void removeb(b b) { bs.remove(b); } addb, removeb,... control the access to the association The methods should have more intention revealing names, like registerstudent for addstudent c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

36 Implementing Class Diagrams Encapsulation problem Implemnting Associations University * Student University dtu = new University("DTU");.. Student hans = new Student("Hans"); Collection<Student> students = dtu.getstudents(); students.add(hans); students.remove(ole);... Students can be added and removed, without the university knowing about it! c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

37 Implementing Class Diagrams Implementing bi-directional associations Implementing bi-directional associations Example: Note: Person -navn: String +setfirma(firma:firma) * 0..1 ansatte arbejdsgiver Firma -navn: String +addansat(ansat:person,) +sletansat(ansat:person) Changes of a person objects employer gives rise to changes in up to two company objects list of employees Changes in the company s objects list of employees gives rise to a change in the person objects employer referential integrity Person private String navn; private Firma arbejdsgiver; public Person(String nv){navn = nv;} public void setfirma(firma f){... } Firma private String navn; private ArrayList<Person> ansatte =... public Firma(String nv){navn = nv; } public void addansat(person p} {... } public void sletansat(person p) {... } c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

38 Implementing Class Diagrams Implementing bi-directional associations Implementing bidirectional associations (II) Bidirectional associations are implemented as two unidirectional associations Person: Firma arbejdsgiver = null; Firma: Collection<Person>ansatte = new ArrayList<Person>(); consistency problem public void testaddansatte() { Firma firma = new Firma(); Person hans = new Person(); firma.addansatte(hans); // hans.setarbejdgiver(firma) needs to be tested too! } asserttrue(firma.containsansatte(hans)); assertequals(firma,hans.getarbejdsgiver()); sletansatte and setarbejdsgiver(null) have similar problems c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

39 Implementing Class Diagrams Consistency via helper functions Implementing bi-directional associations Three extra operations are used to ensure consistency Person: Implementation of role arbejdsgiver in Person Firma arbejdsgiver = null; protected void setf(firma f){arbejdsgiver = f;} public void setfirma(firma f){ if (arbejdsgiver!= null) arbejdsgiver.sletp(this); if (f!= null) f.addp(this); arbejdsgiver = f;} Firma: Implementation of role ansatte in Firma Collection<Person>ansatte = new ArrayList<Person>(); public void addansat(person p) {if (!ansatte.contains(p)) {ansatte.add(p); p.setf(this);} } public void sletansat(person p) {if (ansatte.contains(p)) {ansatte.remove(i); p.setf(null);}} protected void addp(person p){if (!ansatte.contains(p)) ansatte.add(p);} protected void sletp(person p) {if (ansatte.contains(p) ansatte.remove(p);} c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

40 Exercise Implementing Class Diagrams Implementing bi-directional associations Is the implementation correct? What happens if a compnay adds an emplyee that works already for another company? c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

41 Contents Example 1 Class Diagrams 2 Domain Model 3 Design and Implementation 4 Implementing Class Diagrams 5 Example 6 Summary c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

42 Example Eksempel: Svømmere og klubber Problem description En svømmer kan være medlem af en klub, men behøver det ikke hvis hun f.eks. svømmer på et elitecenter. En svømmer kan højst stille op til stævner for en klub. En svømmer beskrives ved navn, bedste tider, osv. En klub har en række medlemmer, og beskrives ved et navn. Man skal kunne oprette svømmere og klubber Man skal kunne tilføje, slette og ændre medlemskab How does one address this problem? What is the user relevant functionality of the system? What are possible use scenarios? For each scenario identify the important concepts create / enhance the domain model (glossary and domain class diagram) Write a test for the scenario Design and implement c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

43 Example Step 1: Identify functionality Functionality #1: Add a swimmer to a club Create a club with name Holte Create a swimmer with name Ole Add swimmer Ole to club Holte Add swimmer Ole to club Holte Check that Ole is member of Holte Check that Ole is member of Holte Functionality #2: Remove a swimmer from a club Create a club with name Virum Create a swimmer with name Per Add swimmer Per to club Virum Check that Per is member of Virum Remove swimmer Per from club Virum Check that Per is not member of Virum anymore c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

44 Example Step 2: Identify relevant notions Problem Description En svømmer kan være medlem af en klub, men behøver det ikke hvis hun f.eks. svømmer på et elitecenter. En svømmer kan højst stille op til stævner for en klub. En svømmer beskrives ved navn, bedste tider, osv. En klub har en række medlemmer, og beskrives ved et navn Add swimmer scenario Create a club with name Holte Create a swimmer with name Ole Add swimmer Ole to club Holte Check that Ole is member of Holte Nouns Classes Relationship between nouns Attributes and Associations Actions Methods c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

45 Example Step 3: Glossary and Domain modelling Glossary Swimmer (Svømmer) Klub A swimmer has a name and is member of at most one swim club. Swimmers are organized in clubs. A club has a name and can have several swimmers as members. c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

46 Example Step 4: Write a test case for the scenario public void testaddsvoemmer1() { Klub holte = new Klub("Holte"); Svoemmer ole = new Svoemmer("Ole"); assertfalse(holte.containssvoemmer(ole)); holte.addsvoemmer(ole); } asserttrue(holte.containssvoemmer(ole)); assertsame(holte,ole.getklub()); public void testaddsvoemmer2() { Klub holte = new Klub("Holte"); Svoemmer ole = new Svoemmer("Ole"); assertfalse(holte.containssvoemmer(ole)); ole.setklub(holte); } assertsame(holte,ole.getklub()); asserttrue(holte.containssvoemmer(ole)); c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

47 Example Step 5a: Design Svoemmer Svoemmer +navn: String +Svoemmer() * +medlemmer +klub 0..1 Klub +navn: String +Klub() +addsvoemmer() +containssvoemmer() c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

48 Example Step 5b: Implement Svoemmer package imm.swe1.svoemmer; public class Svoemmer { private String navn; private Klub klub; public Svoemmer(String navn) { this.navn = navn; } public String getnavn() { return navn; } public Klub getklub() { return klub; } public void setklub(klub klub) { if (this.klub == klub) return; this.klub = klub; klub.addsvoemmer(this); } } protected void setk(klub klub) { this.klub = klub; } c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

49 Example Step 6: Implement Klub public class Klub { private String navn ; private Collection<Svoemmer> medlemmer = new java.util.arraylist<svoemmer>() public Klub(String navn) { this.navn = navn; } public String getnavn() { return navn; } public void addsvoemmer(svoemmer svoemmer) { if (containssvoemmer(svoemmer)) return; medlemmer.add(svoemmer); svoemmer.setk(this); } } public boolean containssvoemmer(svoemmer svoemmer) { return medlemmer.contains(svoemmer); } c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

50 Example Step 2: Identify relevant notions Problem description En svømmer kan være medlem af en klub, men behøver det ikke hvis hun f.eks. svømmer på et elitecenter. En svømmer kan højst stille op til stævner for en klub. En svømmer beskrives ved navn, bedste tider, osv. En klub har en række medlemmer, og beskrives ved et navn. Remove svimmer scenario Create a club with name Virum Create a swimmer with name Per Add swimmer Per to club Virum Check that Per is member of Virum Remove swimmer Per from club Virum Check that Per is not member of Virum anymore Nouns Classes Relationship between nouns Attributes and Associations Actions Methods c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

51 Example Step 3: Domain Class modelling No changes to the domain model and the glossary Glossary Swimmer (Svømmer) Klub A swimmer has a name and is member of at most one swim club. Swimmers are organized in clubs. A club has a name and can have several swimmers as members. c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

52 Example Step 4: Write a test case for the scenario public void testsletsvoemmer1() { Klub virum = new Klub("Virum"); Svoemmer per = new Svoemmer("Per"); virum.addsvoemmer(per); } asserttrue(virum.containssvoemmer(per)); virum.sletsvoemmer(per); assertfalse(virum.containssvoemmer(per)); assertnull(per.getklub()); public void testsletsvoemmer2() { Klub virum = new Klub("Virum"); Svoemmer per = new Svoemmer("Per"); virum.addsvoemmer(per); asserttrue(virum.containssvoemmer(per)); per.setklub(null); } assertnull(per.getklub()); assertfalse(virum.containssvoemmer(per)); c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

53 Example Step 5a: Extend the Svoemmer Design Svoemmer +navn: String +Svoemmer() * +medlemmer +klub 0..1 Klub +navn: String +Klub() +addsvoemmer() +containssvoemmer() +sletsvoemmer() Added operation sletsvoemmer c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

54 Example Step 5: Extend the Svoemmer Implementation Additions to class Svoemmer public void setklub(klub klub) { if (this.klub == klub) return; Klub oldklub = this.klub; this.klub = klub; if (oldklub!= null) { oldklub.slets(this); } if (this.klub!= null) { this.klub.addsvoemmer(this); } } c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

55 Example Step 5: Implement Klub Additions to class Klub public void sletsvoemmer(svoemmer svoemmer) { if (!medlemmer.contains(svoemmer)) return; medlemmer.remove(svoemmer); svoemmer.setk(null); } protected void slets(svoemmer svoemmer) { medlemmer.remove(svoemmer); } c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

56 Summary Summary Introduction to Class Diagrams Domain Modelling Class Diagrams for Design and Implementation Implementing Class Diagrams c 2009 H. Baumeister (IMM) Software Engineering I (02161) Spring / 58

An Introduction To UML Class Diagrams Classes

An Introduction To UML Class Diagrams Classes An Introduction To UML Class Diagrams Classes 1. Represent a user-created or defined data type a. they are an abstract data type (ADT) b. they implement data hiding and encapsulation c. they establish

More information

UML Class Diagrams. Lesson Objectives

UML Class Diagrams. Lesson Objectives UML Class Diagrams 1 Lesson Objectives Understand UML class diagrams and object modelling Be able to identify the components needed to produce a class diagram from a specification Be able to produce class

More information

Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model

Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Outline Using High-Level Conceptual Data Models for

More information

11 November 2015. www.isbe.tue.nl. www.isbe.tue.nl

11 November 2015. www.isbe.tue.nl. www.isbe.tue.nl UML Class Diagrams 11 November 2015 UML Class Diagrams The class diagram provides a static structure of all the classes that exist within the system. Classes are arranged in hierarchies sharing common

More information

Getting Started With UML Class Modeling. An Oracle White Paper May 2007

Getting Started With UML Class Modeling. An Oracle White Paper May 2007 Getting Started With UML Class Modeling An Oracle White Paper May 2007 Getting Started With UML Class Modeling INTRODUCTION... 3 WHAT IS CLASS MODELING... 3 CLASSES, ATTRIBUTES AND OPERATIONS... 4 GENERALIZATION...

More information

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming

More information

UML: Classes -- Association

UML: Classes -- Association UML: Classes -- Association Class1 You can indicate that two classes have an association by using a simple line connector. Class2 Web Development for Business 69 UML: Classes -- Association Class1 You

More information

ATM Case Study OBJECTIVES. 2005 Pearson Education, Inc. All rights reserved. 2005 Pearson Education, Inc. All rights reserved.

ATM Case Study OBJECTIVES. 2005 Pearson Education, Inc. All rights reserved. 2005 Pearson Education, Inc. All rights reserved. 1 ATM Case Study 2 OBJECTIVES.. 3 2 Requirements 2.9 (Optional) Software Engineering Case Study: Examining the Requirements Document 4 Object-oriented design (OOD) process using UML Chapters 3 to 8, 10

More information

How to Make a Domain Model. Tutorial

How to Make a Domain Model. Tutorial How to Make a Domain Model Tutorial What is a Domain Model? Illustrates meaningful conceptual classes in problem domain Represents real-world concepts, not software components Software-oriented class diagrams

More information

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Chapter 8 The Enhanced Entity- Relationship (EER) Model Chapter 8 The Enhanced Entity- Relationship (EER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 Outline Subclasses, Superclasses, and Inheritance Specialization

More information

III. Class and Object Diagrams

III. Class and Object Diagrams III. Class and Object Diagrams Classes, Attributes and Operations Objects and Multi-objects Generalization and Inheritance Associations and Multiplicity Aggregation and Composition Business Objects and

More information

IV. The (Extended) Entity-Relationship Model

IV. The (Extended) Entity-Relationship Model IV. The (Extended) Entity-Relationship Model The Extended Entity-Relationship (EER) Model Entities, Relationships and Attributes Cardinalities, Identifiers and Generalization Documentation of EER Diagrams

More information

Graphical Systems Modeling with UML / SysML Class diagrams

Graphical Systems Modeling with UML / SysML Class diagrams Graphical Systems Modeling with UML / SysML Class diagrams Piotr Ciskowski Perspectives - views: architecture class diagram object diagram composite structure diagram package diagram Logical view Use case

More information

1 Class Diagrams and Entity Relationship Diagrams (ERD)

1 Class Diagrams and Entity Relationship Diagrams (ERD) 1 Class Diagrams and Entity Relationship Diagrams (ERD) Class diagrams and ERDs both model the structure of a system. Class diagrams represent the dynamic aspects of a system: both the structural and behavioural

More information

2. Conceptual Modeling using the Entity-Relationship Model

2. Conceptual Modeling using the Entity-Relationship Model ECS-165A WQ 11 15 Contents 2. Conceptual Modeling using the Entity-Relationship Model Basic concepts: entities and entity types, attributes and keys, relationships and relationship types Entity-Relationship

More information

COMP 378 Database Systems Notes for Chapter 7 of Database System Concepts Database Design and the Entity-Relationship Model

COMP 378 Database Systems Notes for Chapter 7 of Database System Concepts Database Design and the Entity-Relationship Model COMP 378 Database Systems Notes for Chapter 7 of Database System Concepts Database Design and the Entity-Relationship Model The entity-relationship (E-R) model is a a data model in which information stored

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 2015 1 Recap I BPEL: I Doing

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

STORM. Simulation TOol for Real-time Multiprocessor scheduling. Designer Guide V3.3.1 September 2009

STORM. Simulation TOol for Real-time Multiprocessor scheduling. Designer Guide V3.3.1 September 2009 STORM Simulation TOol for Real-time Multiprocessor scheduling Designer Guide V3.3.1 September 2009 Richard Urunuela, Anne-Marie Déplanche, Yvon Trinquet This work is part of the project PHERMA supported

More information

CS 111 Classes I 1. Software Organization View to this point:

CS 111 Classes I 1. Software Organization View to this point: CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects

More information

Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013

Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013 Masters programmes in Computer Science and Information Systems Object-Oriented Design and Programming Sample module entry test xxth December 2013 This sample paper has more questions than the real paper

More information

GUIDE to completion of the Excel spreadsheet

GUIDE to completion of the Excel spreadsheet GUIDE to completion of the Excel spreadsheet 1 S i d e 1 TABLE OF CONTENTS 1 TABLE OF CONTENTS... 2 1.1 Data Entry Generalities... 3 1.2 Prepare data... 5 1.3 Simple Data Entry (horizontal direction)...

More information

How To Design Software

How To Design Software The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies

More information

The UML Class Diagram

The UML Class Diagram The UML Class Diagram Is a static diagram (describes system structure) Combines a number of model elements: Classes Attributes Operations (methods) Associations Aggregations Compositions Generalisations

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February

More information

Chapter 2: Entity-Relationship Model. E-R R Diagrams

Chapter 2: Entity-Relationship Model. E-R R Diagrams Chapter 2: Entity-Relationship Model What s the use of the E-R model? Entity Sets Relationship Sets Design Issues Mapping Constraints Keys E-R Diagram Extended E-R Features Design of an E-R Database Schema

More information

Lecture 12: Entity Relationship Modelling

Lecture 12: Entity Relationship Modelling Lecture 12: Entity Relationship Modelling The Entity-Relationship Model Entities Relationships Attributes Constraining the instances Cardinalities Identifiers Generalization 2004-5 Steve Easterbrook. This

More information

Chapter 2: Entity-Relationship Model. Entity Sets. " Example: specific person, company, event, plant

Chapter 2: Entity-Relationship Model. Entity Sets.  Example: specific person, company, event, plant Chapter 2: Entity-Relationship Model! Entity Sets! Relationship Sets! Design Issues! Mapping Constraints! Keys! E-R Diagram! Extended E-R Features! Design of an E-R Database Schema! Reduction of an E-R

More information

Database Modelling in UML

Database Modelling in UML Database Modelling in UML By Geoffrey Sparks, sparks@sparxsystems.com.au : http://www.sparxsystems.com.au Originally published in Methods & Tools e-newsletter : http://www.martinig.ch/mt/index.html Introduction

More information

Principles of Software Construction: Objects, Design, and Concurrency. Domain Modeling and Specifying System Behavior. toad

Principles of Software Construction: Objects, Design, and Concurrency. Domain Modeling and Specifying System Behavior. toad Principles of Software Construction: Objects, Design, and Concurrency Domain Modeling and Specifying System Behavior toad Fall 2014 Jonathan Aldrich Charlie Garrod School of Computer Science Administrivia:

More information

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

Data Analysis 1. SET08104 Database Systems. Copyright @ Napier University

Data Analysis 1. SET08104 Database Systems. Copyright @ Napier University Data Analysis 1 SET08104 Database Systems Copyright @ Napier University Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship?

More information

COSC 1020 3.0 Introduction to Computer Science I Section A, Summer 2005. Question Out of Mark A Total 16. B-1 7 B-2 4 B-3 4 B-4 4 B Total 19

COSC 1020 3.0 Introduction to Computer Science I Section A, Summer 2005. Question Out of Mark A Total 16. B-1 7 B-2 4 B-3 4 B-4 4 B Total 19 Term Test #2 COSC 1020 3.0 Introduction to Computer Science I Section A, Summer 2005 Family Name: Given Name(s): Student Number: Question Out of Mark A Total 16 B-1 7 B-2 4 B-3 4 B-4 4 B Total 19 C-1 4

More information

Unit 2.1. Data Analysis 1 - V2.0 1. Data Analysis 1. Dr Gordon Russell, Copyright @ Napier University

Unit 2.1. Data Analysis 1 - V2.0 1. Data Analysis 1. Dr Gordon Russell, Copyright @ Napier University Data Analysis 1 Unit 2.1 Data Analysis 1 - V2.0 1 Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship? Entities, attributes,

More information

Tutorial - Building a Use Case Diagram

Tutorial - Building a Use Case Diagram Tutorial - Building a Use Case Diagram 1. Introduction A Use Case diagram is a graphical representation of the high-level system scope. It includes use cases, which are pieces of functionality the system

More information

CSC 742 Database Management Systems

CSC 742 Database Management Systems CSC 742 Database Management Systems Topic #4: Data Modeling Spring 2002 CSC 742: DBMS by Dr. Peng Ning 1 Phases of Database Design Requirement Collection/Analysis Functional Requirements Functional Analysis

More information

More on Objects and Classes

More on Objects and Classes Software and Programming I More on Objects and Classes Roman Kontchakov Birkbeck, University of London Outline Object References Class Variables and Methods Packages Testing a Class Discovering Classes

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

CS 106 Introduction to Computer Science I

CS 106 Introduction to Computer Science I CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper

More information

public void setusername(string username) { this.username = username; } public void setname(string name) { this.name = name; }

public void setusername(string username) { this.username = username; } public void setname(string name) { this.name = name; } User-klassen package domain; import dk.au.hum.imv.persistence.db.databasepersistent; public class User extends DatabasePersistent { private String username; private String name; private String address;

More information

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,

More information

The modal verbs kan sende modtage Same word for must and may Future expressed without modal verb

The modal verbs kan sende modtage Same word for must and may Future expressed without modal verb The modal verbs A modal verb can, may must, shall or will is an auxiliary it modifies the verb and expresses whether the action described is seen as plan, intention, necessity, possibility, prediction,

More information

THE BCS PROFESSIONAL EXAMINATION Diploma October 2014 EXAMINERS REPORT Systems Analysis and Design

THE BCS PROFESSIONAL EXAMINATION Diploma October 2014 EXAMINERS REPORT Systems Analysis and Design THE BCS PROFESSIONAL EXAMINATION Diploma October 2014 EXAMINERS REPORT Systems Analysis and Design Section A General Comments Many candidates lack the skill of being able to apply theoretical knowledge

More information

UML Modeling Guidelines

UML Modeling Guidelines UML Modeling Guidelines Version 1.0 March 13, 2015 ONF TR-514 ONF Document Type: Technical Recommendation ONF Document Name: UML Modeling Guidelines V1.0 Disclaimer THIS SPECIFICATION IS PROVIDED AS IS

More information

Introduktion til distribuerede systemer uge 37 - fil og webserver

Introduktion til distribuerede systemer uge 37 - fil og webserver Introduktion til distribuerede systemer uge 37 - fil og webserver Rune Højsgaard 090678 1. delsstuderende 13. september 2005 1 Kort beskrivelse Implementationen af filserver og webserver virker, men håndterer

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

Java Cheatsheet. http://introcs.cs.princeton.edu/java/11cheatsheet/ Tim Coppieters Laure Philips Elisa Gonzalez Boix

Java Cheatsheet. http://introcs.cs.princeton.edu/java/11cheatsheet/ Tim Coppieters Laure Philips Elisa Gonzalez Boix Java Cheatsheet http://introcs.cs.princeton.edu/java/11cheatsheet/ Tim Coppieters Laure Philips Elisa Gonzalez Boix Hello World bestand genaamd HelloWorld.java naam klasse main methode public class HelloWorld

More information

Outline. Data Modeling. Conceptual Design. ER Model Basics: Entities. ER Model Basics: Relationships. Ternary Relationships. Yanlei Diao UMass Amherst

Outline. Data Modeling. Conceptual Design. ER Model Basics: Entities. ER Model Basics: Relationships. Ternary Relationships. Yanlei Diao UMass Amherst Outline Data Modeling Yanlei Diao UMass Amherst v Conceptual Design: ER Model v Relational Model v Logical Design: from ER to Relational Slides Courtesy of R. Ramakrishnan and J. Gehrke 1 2 Conceptual

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

VHDL programmering H2

VHDL programmering H2 VHDL programmering H2 VHDL (Very high speed Integrated circuits) Hardware Description Language IEEE standard 1076-1993 Den benytter vi!! Hvornår blev den frigivet som standard første gang?? Ca. 1980!!

More information

Part 1 Foundations of object orientation

Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed

More information

Student evaluation form

Student evaluation form Student evaluation form Back Number of respondents: 17 1. Multiple choice question Percentage Name of course: [Insert name of course here!] Course Objectives: [Insert course objectives (målbeskrivelse)

More information

Schema Classes. Polyhedra Ltd

Schema Classes. Polyhedra Ltd Schema Classes Polyhedra Ltd Copyright notice This document is copyright 1994-2006 by Polyhedra Ltd. All Rights Reserved. This document contains information proprietary to Polyhedra Ltd. It is supplied

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2003 Vol. 2, No. 5, September-October 2003 Mapping UML Associations into Java Code

More information

DISCLAIMER OVERVIEW WHY DO WE MODEL WHAT IS QUALITY? Jeff Jacobs, jmjacobs@jeffreyjacobs.com

DISCLAIMER OVERVIEW WHY DO WE MODEL WHAT IS QUALITY? Jeff Jacobs, jmjacobs@jeffreyjacobs.com DEVELOPING HIGH CLASS UML CLASS MODELS Jeff Jacobs, jmjacobs@jeffreyjacobs.com DISCLAIMER The views presented here are those of the presenter and do not represent those of any other person, organization,

More information

CSE 1020 Introduction to Computer Science I A sample nal exam

CSE 1020 Introduction to Computer Science I A sample nal exam 1 1 (8 marks) CSE 1020 Introduction to Computer Science I A sample nal exam For each of the following pairs of objects, determine whether they are related by aggregation or inheritance. Explain your answers.

More information

How To Use The Command Pattern In Java.Com (Programming) To Create A Program That Is Atomic And Is Not A Command Pattern (Programmer)

How To Use The Command Pattern In Java.Com (Programming) To Create A Program That Is Atomic And Is Not A Command Pattern (Programmer) CS 342: Object-Oriented Software Development Lab Command Pattern and Combinations David L. Levine Christopher D. Gill Department of Computer Science Washington University, St. Louis levine,cdgill@cs.wustl.edu

More information

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1 The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions

More information

Draft Martin Doerr ICS-FORTH, Heraklion, Crete Oct 4, 2001

Draft Martin Doerr ICS-FORTH, Heraklion, Crete Oct 4, 2001 A comparison of the OpenGIS TM Abstract Specification with the CIDOC CRM 3.2 Draft Martin Doerr ICS-FORTH, Heraklion, Crete Oct 4, 2001 1 Introduction This Mapping has the purpose to identify, if the OpenGIS

More information

Part I. Multiple Choice Questions (2 points each):

Part I. Multiple Choice Questions (2 points each): Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******

More information

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Electronic Communications of the EASST Volume 34 (2010) Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Position Paper: m2n A Tool for Translating

More information

Informationsteknologi Små computersystemers. Del 251: USB-fæstnet SCSI (UAS)

Informationsteknologi Små computersystemers. Del 251: USB-fæstnet SCSI (UAS) Dansk standard DS/ISO/IEC 14776-251 1. udgave 2014-05-27 Informationsteknologi Små computersystemers grænseflade (SCSI) Del 251: USB-fæstnet SCSI (UAS) Information technology Small computer system interface

More information

Design and UML Class Diagrams. Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.

Design and UML Class Diagrams. Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear. Design and UML Class Diagrams Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML Distilled Ch. 3, by M. Fowler 1 Big questions What is UML?

More information

Database Design Methodology

Database Design Methodology Topic 7 Database Design Methodology LEARNING OUTCOMES When you have completed this Topic you should be able to: 1. Discuss the purpose of a design methodology. 2. Explain three main phases of design methodology.

More information

Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import

Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import Classes and Objects 2 4 pm Tuesday 7/1/2008 @JD2211 1 Agenda The Background of the Object-Oriented Approach Class Object Package and import 2 Quiz Who was the oldest profession in the world? 1. Physician

More information

Entity-Relationship Model

Entity-Relationship Model UNIT -2 Entity-Relationship Model Introduction to ER Model ER model is represents real world situations using concepts, which are commonly used by people. It allows defining a representation of the real

More information

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson Mathematics for Computer Science/Software Engineering Notes for the course MSM1F3 Dr. R. A. Wilson October 1996 Chapter 1 Logic Lecture no. 1. We introduce the concept of a proposition, which is a statement

More information

Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism

Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism Composability Gary R. Mayer Gary.Mayer@asu.edu Hessam S. Sarjoughian Sarjougian@asu.edu Arizona Center for Integrative Modeling

More information

El Dorado Union High School District Educational Services

El Dorado Union High School District Educational Services El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.

More information

CMSC 132: Object-Oriented Programming II. Design Patterns I. Department of Computer Science University of Maryland, College Park

CMSC 132: Object-Oriented Programming II. Design Patterns I. Department of Computer Science University of Maryland, College Park CMSC 132: Object-Oriented Programming II Design Patterns I Department of Computer Science University of Maryland, College Park Design Patterns Descriptions of reusable solutions to common software design

More information

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects. Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez pa.gomez398@uniandes.edu.co Hector Florez ha.florez39@uniandes.edu.co ABSTRACT The linguistic conformance and the ontological

More information

30-11-2009. Softwaretest. Kvalitetssikring og kvalitetskontrol. Kvalitetssikring og kvalitetskontrol. Kvalitetssikring.

30-11-2009. Softwaretest. Kvalitetssikring og kvalitetskontrol. Kvalitetssikring og kvalitetskontrol. Kvalitetssikring. Softwaretest Version: 30/11 10:30 Kvalitetssikring og kvalitetskontrol Kvalitetssikring The planned and systematic activities implemented in a quality system so that quality requirements for a product

More information

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language. UML 1 Introduction UML = Unified Modeling Language It is a standardized visual modeling language. Primarily intended for modeling software systems. Also used for business modeling. UML evolved from earlier

More information

Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions

Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Kathrin Lehmann, Florian Matthes Chair for Software Engineering for Business Information Systems Technische

More information

Object Relational Database Mapping. Alex Boughton Spring 2011

Object Relational Database Mapping. Alex Boughton Spring 2011 + Object Relational Database Mapping Alex Boughton Spring 2011 + Presentation Overview Overview of database management systems What is ORDM Comparison of ORDM with other DBMSs Motivation for ORDM Quick

More information

3.1 Use Case Diagrams

3.1 Use Case Diagrams 3.1 Subject/Topic/Focus: Introduction to Use Cases Summary: System Boundary Actors Use Cases Generalization, Inclusion, Extension Literature: [Fowler99], UML Distilled, Second Edition [Booch98] Last change:

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 2013 Contents RESTful Services

More information

IMM / Informatics and Mathematical Modeling Master thesis. Business Modeling. Alla Morozova. Kgs. Lyngby 2003 DTU

IMM / Informatics and Mathematical Modeling Master thesis. Business Modeling. Alla Morozova. Kgs. Lyngby 2003 DTU IMM / Informatics and Mathematical Modeling Master thesis Business Modeling Alla Morozova Kgs. Lyngby 2003 DTU PREFACE The author of this project would like to thank the master thesis project supervisor

More information

Using UML Part One Structural Modeling Diagrams

Using UML Part One Structural Modeling Diagrams UML Tutorials Using UML Part One Structural Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,

More information

THE ENTITY- RELATIONSHIP (ER) MODEL CHAPTER 7 (6/E) CHAPTER 3 (5/E)

THE ENTITY- RELATIONSHIP (ER) MODEL CHAPTER 7 (6/E) CHAPTER 3 (5/E) THE ENTITY- RELATIONSHIP (ER) MODEL CHAPTER 7 (6/E) CHAPTER 3 (5/E) 2 LECTURE OUTLINE Using High-Level, Conceptual Data Models for Database Design Entity-Relationship (ER) model Popular high-level conceptual

More information

A technical discussion on modeling with UML 06/11/03 Entity Relationship Modeling with UML

A technical discussion on modeling with UML 06/11/03 Entity Relationship Modeling with UML A technical discussion on modeling with UML 06/11/03 Entity Relationship Modeling with UML Davor Gornik Improving software development capability 2 Table of Contents Entity Relationship Modeling... 1 Core

More information

CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: Class Diagrams A. O Riordan, 2009 Includes notes by J Herbert, K Brown.

CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: Class Diagrams A. O Riordan, 2009 Includes notes by J Herbert, K Brown. CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: Class Diagrams A. O Riordan, 2009 Includes notes by J Herbert, K Brown. OOD - Classes Design includes specification of classes UML

More information

Programming and Software Development CTAG Alignments

Programming and Software Development CTAG Alignments Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical

More information

Modern Systems Analysis and Design

Modern Systems Analysis and Design Modern Systems Analysis and Design Prof. David Gadish Structuring System Data Requirements Learning Objectives Concisely define each of the following key data modeling terms: entity type, attribute, multivalued

More information

Computer Programming I

Computer Programming I Computer Programming I COP 2210 Syllabus Spring Semester 2012 Instructor: Greg Shaw Office: ECS 313 (Engineering and Computer Science Bldg) Office Hours: Tuesday: 2:50 4:50, 7:45 8:30 Thursday: 2:50 4:50,

More information

Abstract. a http://www.eiffel.com

Abstract. a http://www.eiffel.com Abstract Eiffel Software a provides a compiler for the Eiffel programming language capable of generating C code or Common Intermediate Language byte code. The CLI code can be executed on the Common Language

More information

Design and UML Class Diagrams

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

More information

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.

More information

Research on the Danish heroin assisted treatment programme

Research on the Danish heroin assisted treatment programme Research on the Danish heroin assisted treatment programme Katrine Schepelern Johansen Anthropologist, PhD Post.doc, Department of Anthropology, University of Copenhagen Treatment with heroin in Denmark

More information

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics: Organization of DSLE part Domain Specific Language Engineering Tooling Eclipse plus EMF Xtext, Xtend, Xpand, QVTo and ATL Prof.dr. Mark van den Brand GLT 2010/11 Topics: Meta-modeling Model transformations

More information

Information og dokumentation Ledelsessystem for dokumentstyring Krav

Information og dokumentation Ledelsessystem for dokumentstyring Krav Dansk standard DS/ISO 30301 1. udgave 2011-11-22 Information og dokumentation Ledelsessystem for dokumentstyring Krav Information and documentation Management systems for records Requirements DS/ISO 30301

More information

Chapter 2: Entity-Relationship Model

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

More information

The Entity-Relationship Model

The Entity-Relationship Model The Entity-Relationship Model 221 After completing this chapter, you should be able to explain the three phases of database design, Why are multiple phases useful? evaluate the significance of the Entity-Relationship

More information

Opdatering af metadata via SAS -programmer

Opdatering af metadata via SAS -programmer Opdatering af metadata via SAS -programmer Henrik Dorf, chefkonsulent, PS Commercial Metadata SAS Management Console Meta browser SAS Data Integration Studio SAS Metadata Server Administrerer adgangen

More information

Developer Guide. Christian W. Günther christian@fluxicon.com. Library version: 1.0 RC7 Revision: 7

Developer Guide. Christian W. Günther christian@fluxicon.com. Library version: 1.0 RC7 Revision: 7 Developer Guide Christian W. Günther christian@fluxicon.com Library version: 1.0 RC7 Revision: 7 November 14, 2009 The XES Meta-model Introduction Event logs, as they occur in practice and research, can

More information

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml) UML Tutorial: Collaboration Diagrams Robert C. Martin Engineering Notebook Column Nov/Dec, 97 In this column we will explore UML collaboration diagrams. We will investigate how they are drawn, how they

More information

How To Understand Software Quality

How To Understand Software Quality Chapter 24 - Quality Management Letizia Jaccheri 1 Topics covered Software quality (project, product, organization) Software standards (product, process) Reviews and inspections (code, progress, standards)

More information

XV. The Entity-Relationship Model

XV. The Entity-Relationship Model XV. The Entity-Relationship Model The Entity-Relationship Model Entities, Relationships and Attributes Cardinalities, Identifiers and Generalization Documentation of E-R Diagrams and Business Rules The

More information

Analysis and Design with UML

Analysis and Design with UML Analysis and Design with UML Page 1 Agenda Benefits of Visual Modeling History of the UML Visual Modeling with UML The Rational Iterative Development Process Page 2 What is Visual Modeling? Item Order

More information

Advanced Topics in Software Construction

Advanced Topics in Software Construction Advanced Topics in Software Construction Winter Semester 2009/10 Final Exam (10.02.2010) Please read the exercises carefully. Total time: 90 min. Name Matriculation Number 1 2 3 4 5 12 14 14 12 13 65 Grade

More information