UML and Design Patterns Prof. Dr. Eric Dubuis, V. June Engineering and Information Technology. On Package Design

Size: px
Start display at page:

Download "UML and Design Patterns Prof. Dr. Eric Dubuis, V. June Engineering and Information Technology. On Package Design"

Transcription

1 On Package Design Berner Fachhochschule Engineering and Information Technology Prof. Dr. Eric Dubuis Software Engineering and Design Version June

2 Content Package Design: Basic Principle Dependency Inversion Principle (DIP) Package Design: Coupling Principles Acyclic Dependency Principle (ADP) Stable-Dependencies Principle (SDP) Stable-Abstractions Principle (SAP) 2

3 Dependency Inversion Principle (DIP) The DIP stated: a) High-level classes should not depend on low-level classes. Both should depend on abstractions. b) Abstractions should not depend on details. Details should depend on abstractions. 3

4 Example: Layering Made Too Simple Policy Layer Policy Class Mechanism Layer Mechanism Class Utility Layer Utility Class 4

5 Example: Layering Respecting the DIP Policy Layer Policy Class «interface» Policy Service Interface Mechanism Layer Mechanism Class «interface» Mechanism Service IF Note: Factories are needed to create instances implementing the interfaces. Utility Layer Utility Class 5

6 Package Coupling: Acyclic-Dependency Principle (ADP) Consider: periodic or continuous builds per package testing The Acyclic-Dependency Principle stated: Allow no cycles in the package-dependency graph. Note: Cannot be avoided sometimes. 6

7 Example: Package Dependency Graph MyApplication TaskWindow MyTasks Database Windows Tasks MyDialogs 7

8 Example: Package Dependency Graph with a Cycle MyApplication TaskWindow MyTasks Database Windows Tasks MyDialogs 8

9 Example: Breaking the Cycle with Dependency Inversion MyDialogs MyApplication X Y MyDialogs MyApplication X X IF Y 9

10 Example: Breaking the Cycle with a New Package MyApplication TaskWindow MyTasks Database Windows Tasks MyDialogs New Package 10

11 Package Coupling: Stable-Dependency Principle (SDP) Stability: A software package is stable if lots of other packages depend on it. SDP stated: Depend in the direction of stability. 11

12 Illustration: Stable, Independent Package X Package X has three good reasons to be stable. It is responsible for those three packages. Package X depends on nothing, it is independent. 12

13 Illustration: Instable, Irresponsible, and Dependent Package Y Package Y is very instable. It has no other packages that depend on it; it is irresponsible. However, there are three other packages it depends on. Y is dependent. 13

14 Stability Metric The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package. (Ca) Afferent Couplings: The number of other packages that depend upon classes within the package. (Responsibility) (Ce) Efferent Couplings: The number of other packages that the classes in the package depend upon. (Independence) (I) Instability: (Range [0, 1]) I = Ce Ca + Ce 14 Note: Originally [Martin2], the classes and interfaces were counted, not the packages.

15 Stability Metric Interpretation I = 1: no other package depend on this package (Ca = 0) this package depends on other packages (Ce > 0) it is instable, irresponsible, and dependent I = 0: this package is depended by other packages (Ca > 0) does not depend on other packages (Ce = 0) it is stable, responsible and independent 15

16 Stable-Dependencies Principle (SDP) and Stability Metric The SDP says that the instability metrics of a package should be larger than the instability metrics of the packages that it depends on. Or: The instability metrics should decrease in the direction of dependency. 16

17 Ideal Situation I = 1 I = 1 I = 1 Instable 1 Instable 2 Instable 3 I = 0 Stable 17

18 Example of SDP Violation Flexible: a package intended to be easy to change Stable: a package intended to be as stable as possible. Some developer, however, added a dependency on Flexible: e.g., some class in Stable depends on some class in Flexible Stable Flexible 18

19 Solution: Employing DIP Stable Flexible U C I Stable < I Flexible Stable not good... U I stable > 0 UInterface Flexible UI I UInterface = 0 C I Flexible = 1 19

20 On High-Level Design Some parts of the software should not change very often. (==> high-level [design] decisions.) We don't want these decisions to be volatile! ==> Put these decisions into stable packages (I = 0). Dilemma: Source code that represents these decisions will be difficult to change! How to package with maximal stability and still some flexibility for a change? ==> abstract classes, interfaces 20

21 Package Coupling: Stable-Abstractions Principle (SAP) The SAP stated: A package should be as abstract as it is stable. 21

22 Measuring Abstraction Nc: The number of classes in a package. Na: The number of abstract classes (and of interfaces in Java) in a package. A: Abstractness: A = Na Nc 22

23 The A-I Graph (0, 1) Zone of Uselessness A Axis outlined as it is with the JDepend plugin for Eclipse (0, 0) Zone of Pain I (1, 0) 23

24 Bibliography [Martin] Robert C. Martin, Agile Software Development, Prentice Hall, [Martin 2] Robert C. Martin, Stability, read December 20, 2007, 24

Dependency Inversion Principle (DIP) Package Design: Coupling Principles

Dependency Inversion Principle (DIP) Package Design: Coupling Principles Berner Fachhochschule Prof. Dr. Eric Dubuis Software Engineering and Design Version December 2007 1 Package Design: Basic Principle Dependency Inversion Principle (DIP) Package Design: Coupling Principles

More information

Principles of Object-Oriented Design

Principles of Object-Oriented Design Principles of Object-Oriented Design Part II 1 The Law of Demeter Any object receiving a message in a given method must be one of a restricted set of objects. 1. Strict Form: Every supplier class or object

More information

OO Package Design Principles

OO Package Design Principles 4 4.1 Packages Introduction 4.2 Packages in UML 4.3 Three Package Design Principles 4.4 Development Environment (Three more principles) 4.5 Summary 1 4.1 Packages Introduction What is a package? Classes

More information

Stability. Introduction

Stability. Introduction Stability This is the sixth of my Engineering Notebook columns for The C++ Report. The articles that appear in this column focus on the use of C++ and OOD, and address issues of software engineering. I

More information

The Release Reuse Equivalency Principle (REP) The Common Closure Principle (CCP) The Common Reuse Principle (CRP)

The Release Reuse Equivalency Principle (REP) The Common Closure Principle (CCP) The Common Reuse Principle (CRP) Package Cohesion Principles The Release Reuse Equivalency Principle (REP) The Common Closure Principle (CCP) The Common Reuse Principle (CRP) Portions Copyright 2000 by Robert C. Martin. Page 1 The Release

More information

On Polymorphism and the Open-Closed Principle

On Polymorphism and the Open-Closed Principle Berner Fachhochschule Engineering and Information Technology On Polymorphism and the Open-Closed Principle Prof. Dr. Eric Dubuis Berner Fachhochschule, Engineering and Information Technology @ Biel Course

More information

Introduction to software metics

Introduction to software metics Introduction to software metics Alexander Voigt Version_05_21 Technische Universität Dresden Institut für Kern- und Teilchenphysik /01234/546 78994:!"##$%&'$()*+,%&-,,$)*.$ IKTP Computing Kaffee 12 December

More information

Software Engineering Design & Construction

Software Engineering Design & Construction Summer Semester 2015 Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Dependency-Inversion Principle 2 Dependency-Inversion Principle

More information

Software Engineering Design & Construction

Software Engineering Design & Construction Winter Semester 16/17 Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Dependency-Inversion Principle 2 Dependency-Inversion Principle

More information

Kostis Kapelonis Athens Greece, March 2010

Kostis Kapelonis Athens Greece, March 2010 Quality Metrics: GTE, CAP and CKJM Kostis Kapelonis Athens Greece, March 2010 Menu More Quality metrics: Google Testability Explorer (Starter) Code Analysis Plugin (Main Course) CKJM metrics (Dessert)

More information

On Polymorphism and the Open-Closed Principle

On Polymorphism and the Open-Closed Principle On Polymorphism and the Open-Closed Principle Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version March 2008 BFH/TI/Software

More information

Granularity. Inheritance Bi-directional. Association. Derived A1

Granularity. Inheritance Bi-directional. Association. Derived A1 Granularity This is the fifth of my Engineering Notebook columns for The C++ Report. The articles that appear in this column focus on the use of C++ and OOD, and address issues of software engineering.

More information

Assessing Package Reusability in Object-Oriented Design

Assessing Package Reusability in Object-Oriented Design , pp.75-84 http://dx.doi.org/10.14257/ijseia.2014.8.4.09 Assessing Package Reusability in Object-Oriented Design Vinay Singh 1 and Vandana Bhattacherjee 2 1 Usha Martin Academy, Ranchi, India 2 Birla Institute

More information

Object design. François Schwarzentruber ENS Cachan Antenne de Bretagne

Object design. François Schwarzentruber ENS Cachan Antenne de Bretagne Object design François Schwarzentruber ENS Cachan Antenne de Bretagne Outline Symptoms of rotting systems Principles of object oriented class design Principles of Package Architecture Dreams Outline Symptoms

More information

Software Metrics. Lines of Code

Software Metrics. Lines of Code Software Metrics Naveed Arshad Lines of Code The total number of lines of executable code in the software program or module being measured But lines of code could mean anything e.g. count only executable

More information

Agile Software Development

Agile Software Development Agile Software Development Principles, Patterns, and Practices Robert Cecil Martin Alan Apt Series Prentice Hall Pearson Education, Inc. Upper Saddle River, New Jersey 07458 Foreword Preface About the

More information

Object design. François Schwarzentruber ENS Cachan Antenne de Bretagne

Object design. François Schwarzentruber ENS Cachan Antenne de Bretagne Object design François Schwarzentruber ENS Cachan Antenne de Bretagne Symptoms of rotting systems (according to Robert C. Martin) Four behaviors of the developer team: Rigidity Fragility Immobility Viscosity

More information

Technical Metrics for OO Systems

Technical Metrics for OO Systems Technical Metrics for OO Systems 1 Last time: Metrics Non-technical: about process Technical: about product Size, complexity (cyclomatic, function points) How to use metrics Prioritize work Measure programmer

More information

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik 2IS55 Software Evolution Software metrics (3) Alexander Serebrenik Sources / SET / W&I 19-3-2013 PAGE 1 From imperative to OO All metrics so far were designed for imperative languages Applicable for OO

More information

Effectiveness of software metrics for object-oriented system

Effectiveness of software metrics for object-oriented system Available online at www.sciencedirect.com Procedia Technology 6 (2012 ) 420 427 2nd International Conference on Communication, Computing & Security [ICCCS-2012] Effectiveness of software metrics for object-oriented

More information

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology Software Reengineering P1: Intro & Organization Martin Pinzger Delft University of Technology Greenfield software development 2 Non-greenfield software development? 3 How often did you...... encounter

More information

Quality-Driven Build Scripts for Java Applications. Duy (uu-eee) B. Vo Graduate Student San José State University Department of Computer Science

Quality-Driven Build Scripts for Java Applications. Duy (uu-eee) B. Vo Graduate Student San José State University Department of Computer Science Quality-Driven Build Scripts for Java Applications Duy (uu-eee) B. Vo Graduate Student San José State University Department of Computer Science Some Measures of a Quality Software Product Is the product

More information

Software Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006

Software Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006 Software Testing 2 Jens Dietrich OOD and Testability Component based design and component based unit testing. Design that isolates component that are difficult to test (automatically) (such as user interfaces).

More information

Agile Principles, Patterns, and Practices in C#

Agile Principles, Patterns, and Practices in C# Agile Principles, Patterns, and Practices in C# Robert C. Martin Micah Martin 22 Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid!ENTICE,,,.

More information

Estimation of a Set of Package Metrics to Determine the Package Testability Efforts on Open Source Software

Estimation of a Set of Package Metrics to Determine the Package Testability Efforts on Open Source Software Estimation of a Set of Package Metrics to Determine the Package Testability Efforts on Open Source Software Aleem Khalid Alvi Computer Engineering Department, College of Computer Sciences and Engineering,

More information

Object-oriented metrics for Java programs

Object-oriented metrics for Java programs Object-oriented metrics for Java programs Project in Computer Science EDAN70 January 22, 2015 Olle Tervalampi-Olsson D11, Lund Institute of Technology, Sweden dat11ote@student.lu.se Marcus Lacerda D11,

More information

Object-oriented design principles

Object-oriented design principles Object-oriented design principles Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline OO concepts Single Responsibility Principle (SRP) Open/Closed Principle

More information

SonarJ White Paper. Sonar stands for Software and Architecture. It is meant to support software developers and architects in their daily work.

SonarJ White Paper. Sonar stands for Software and Architecture. It is meant to support software developers and architects in their daily work. SonarJ White Paper Sonar stands for Software and Architecture. It is meant to support software developers and architects in their daily work. Software over its lifecycle needs to be changed, adapted, enhanced

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Other 1 2 3 4 Other Principle of Least Privilege Principle of Fail-Safe Defaults Principle of

More information

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles Abstraction Design fundamentals in OO Systems Tool for abstraction: object Object structure: properties and values for those properties operations to query and update those properties We refer to the collection

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

More information

A Metric of the Relative Abstraction Level of Software Patterns

A Metric of the Relative Abstraction Level of Software Patterns A Metric of the Relative Abstraction Level of Software Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,

More information

Course "UML and Design Patterns" of module "Software Engineering and Design", version November 2011

Course UML and Design Patterns of module Software Engineering and Design, version November 2011 The Observer Pattern Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version November 20 BFH/TI/Software Engineering and

More information

This document licensed exclusively to: Mark Richards No Fluff Just Stuff TM. Redistribution strictly prohibited.

This document licensed exclusively to: Mark Richards No Fluff Just Stuff TM. Redistribution strictly prohibited. Mark Richards FINDING STRUCTURAL DECAY IN ARCHITECTURES Most things around us wear out and eventually experience decay; the we drive, household appliances and electronics, highway bridges, even ourselves.

More information

SELECTED TOPICS in APPLIED COMPUTER SCIENCE

SELECTED TOPICS in APPLIED COMPUTER SCIENCE A Tool for Detecting Detects on Class Implementation in Object Oriented Program on the Basis of the Law of Demeter: Focusing on Dependency between Packages RYOTA CHIBA, HIROAKI HASHIURA and SEIICHI KOMIYA

More information

Course UML and Design Patterns of module Software Engineering and Design, version November 18, 2013.

Course UML and Design Patterns of module Software Engineering and Design, version November 18, 2013. The Observer Pattern Prof. Dr. Eric Dubuis Berner Fachhochschule, Engineering and Information Technology @ Biel Course UML and Design Patterns of module Software Engineering and Design, version November

More information

Object Oriented Metrics. Impact on Software Quality

Object Oriented Metrics. Impact on Software Quality Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines

More information

Eliminate enterprise software design instability - protect variations! Nickolay Kofanov

Eliminate enterprise software design instability - protect variations! Nickolay Kofanov Eliminate enterprise software design instability - protect variations! Nickolay Kofanov Owning a hammer doesn't make one an architect. Responsibility-Driven-Design The way of thinking about the design

More information

A Metric for Measuring the Abstraction Level of Design Patterns

A Metric for Measuring the Abstraction Level of Design Patterns A Metric for Measuring the Abstraction Level of Design Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,

More information

Dependency Inversion, Dependency Injection and Inversion of Control. Dependency Inversion Principle by Robert Martin of Agile Fame

Dependency Inversion, Dependency Injection and Inversion of Control. Dependency Inversion Principle by Robert Martin of Agile Fame Dependency Inversion, Dependency Injection and Inversion of Control Dependency Inversion Principle by Robert Martin of Agile Fame Dependency Inversion Principle History Postulated by Robert C. Martin Described

More information

Designing Object-Oriented C++ Applications

Designing Object-Oriented C++ Applications Designing Object-Oriented C++ Applications Using the Booch Method Robert Cecil Martin Object Mentor Associates Technieche Universftat Dermstadt FACHBEREUCH INFORMATIK B1BL1OTHEK Sachgebtete: Stendort Cliffs,

More information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 307: Software Engineering. Lecture 10: Software Design and Architecture CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office

More information

CSC207H: Software Design SOLID. CSC207 Winter 2018

CSC207H: Software Design SOLID. CSC207 Winter 2018 SOLID CSC207 Winter 2018 1 SOLID Principles of Object-Oriented Design How do we make decisions about what is better and what is worse design? Principles to aim for instead of rules. e.g. there is no maximum

More information

Design Principles in Architectural Evolution: a Case Study

Design Principles in Architectural Evolution: a Case Study Design Principles in Architectural Evolution: a Case Study Michel Wermelinger Yijun Yu Angela Lozano Computing Department & Centre for Research in Computing The Open University, UK Abstract We wish to

More information

FOR0383 Software Quality Assurance

FOR0383 Software Quality Assurance This method seems much, much bigger than all the other methods. FOR0383 Software Quality Assurance Lecture 15 Code metrics "You cannot control what you cannot measure." Tom DeMarco 2/11/2009 Dr Andy Brooks

More information

Update on AADL Requirements Annex

Update on AADL Requirements Annex Open-PEOPLE Open Power and Energy Optimization PLatform and Estimator Update on AADL Requirements Annex Dominique BLOUIN* *Lab-STICC, Université de Bretagne Sud, Lorient, FRANCE AADL Standards Meeting,

More information

Introducing Design Patterns

Introducing Design Patterns Introducing Design Patterns Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version April 2009 (X) BFH/TI/Software Engineering

More information

Automatic Detection of Instability Architectural Smells

Automatic Detection of Instability Architectural Smells Automatic Detection of Instability Architectural Smells Francesca Arcelli Fontana, Ilaria Pigazzini, Riccardo Roveda and Marco Zanoni Università degli Studi di Milano - Bicocca, Milan, Italy Email: {arcelli,riccardo.roveda,marco.zanoni}@disco.unimib.it

More information

SourceViz: A Tool for Supporting Software Metrics Visualization

SourceViz: A Tool for Supporting Software Metrics Visualization I.J. Information Engineering and Electronic Business, 2017, 3, 18-25 Published Online May 2017 in MECS (http://www.mecs-press.org/) DOI: 10.5815/ijieeb.2017.03.03 SourceViz: A Tool for Supporting Software

More information

An Introduction to Dependency Inversion

An Introduction to Dependency Inversion Page 1 of 12 Page 1 of 12 An Introduction to Dependency Inversion Originaly posted by AdrianK, 1-Nov-2010 at: http://www.morphological.geek.nz/blogs/viewpost/peruse Muse Infuse/An Introduction to Dependency

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Software quality and Object Oriented Principles

Ingegneria del Software Corso di Laurea in Informatica per il Management. Software quality and Object Oriented Principles Ingegneria del Software Corso di Laurea in Informatica per il Management Software quality and Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal

More information

Single Responsibility Principle (SRP)

Single Responsibility Principle (SRP) Single Responsibility Principle (SRP) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design

More information

Outline. Software Rots

Outline. Software Rots Outline Design Principles: Part 1 ENGI 5895: Software Design 1 The Need for Design Principles Andrew Vardy 2 Refactoring Faculty of Engineering & Applied Science Memorial University of Newfoundland January

More information

Open Closed Principle (OCP)

Open Closed Principle (OCP) Open Closed Principle (OCP) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design Principles

More information

JIVE: Dynamic Analysis for Java

JIVE: Dynamic Analysis for Java JIVE: Dynamic Analysis for Java Overview, Architecture, and Implementation Demian Lessa Computer Science and Engineering State University of New York, Buffalo Dec. 01, 2010 Outline 1 Overview 2 Architecture

More information

3 Continuous Integration 3. Automated system finding bugs is better than people

3 Continuous Integration 3. Automated system finding bugs is better than people This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can

More information

Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt

Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt Partly based on slides from Peter Müller, ETH Zurich 1 Warm-up Quiz What does the following code print?

More information

S.O.L.I.D: Software Engineering Principles

S.O.L.I.D: Software Engineering Principles DCC / ICEx / UFMG S.O.L.I.D: Software Engineering Principles Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo S.O.L.I.D Principles These principles intend to create systems that are easier to maintain

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Reengineering II. Transforming the System

Reengineering II. Transforming the System Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have

More information

Design Quality Assessment in Practice

Design Quality Assessment in Practice Design Quality Assessment in Practice my two hats... Radu Marinescu radum@cs.upt.ro Associate Professor since 006 Co-Founder and Head since 003 http://www.intooitus.com/ Co-Founder (008) Assessment with

More information

Software modular bauen. Ulf Fildebrandt

Software modular bauen. Ulf Fildebrandt Software modular bauen Ulf Fildebrandt Some words before This presentation should give some insights in big software products and how the structure of these products is managed About the presenter Ulf

More information

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

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

More information

UML Sequence Diagrams

UML Sequence Diagrams UML Sequence Diagrams Prof. Dr. Eric Dubuis Berner Fachhochschule, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version October 2008 BFH/TI/Software Engineering

More information

Berner Fachhochschule. Technik und Informatik JAX-WS. Java API for XML-Based Web Services. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel

Berner Fachhochschule. Technik und Informatik JAX-WS. Java API for XML-Based Web Services. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Berner Fachhochschule Technik und Informatik JAX-WS Java API for XML-Based Web Services Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Overview The motivation for JAX-WS Architecture of JAX-WS and WSDL

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

EJB 3 Entity Relationships

EJB 3 Entity Relationships Berner Fachhochschule Technik und Informatik EJB 3 Entity Relationships Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content What are relationships?

More information

Object Oriented Software Design - I

Object Oriented Software Design - I Object Oriented Software Design - I Object Oriented Design Principles Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2011 G. Lipari (Scuola Superiore Sant Anna)

More information

Berner Fachhochschule. Technik und Informatik. Web Services. An Introduction. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel

Berner Fachhochschule. Technik und Informatik. Web Services. An Introduction. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Berner Fachhochschule Technik und Informatik Web Services An Introduction Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Overview Web Service versus Web Application A Definition for the Term Web Service

More information

Object-oriented metrics 1

Object-oriented metrics 1 Advanced Object-Oriented Design Lecture 4 Object-oriented metrics Bartosz Walter 1. Motivation and goals 2. omplexity metrics 3. Metrics for Object-Oriented Design (MOOD suite)

More information

EJB 3 Entity Relationships

EJB 3 Entity Relationships Berner Fachhochschule Technik und Informatik EJB 3 Entity Relationships Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content What are relationships?

More information

Software Reengineering Assignment Decomposing ArgoUML

Software Reengineering Assignment Decomposing ArgoUML Software Reengineering Assignment Decomposing ArgoUML Steven Aerts Bart Braem th June 00 The Assignment The assignment consists of transforming ArgoUML into a nearly decomposable system : A nearly decomposable

More information

Factors Modulating Software Design Quality

Factors Modulating Software Design Quality Factors Modulating Software Design Quality 1 Poornima U. S. 2 Suma. V. 1,2 Research and Industry Incubation Centre, DSCE 1 RajaReddy Institute of Technology, Bangalore, India. 2 Dayananda Sagar College

More information

Build Testable Client and Service Applications

Build Testable Client and Service Applications Build Testable Client and Service Applications Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director MVP

More information

Object-Oriented Design

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

More information

Princípy tvorby softvéru Dizajnové princípy

Princípy tvorby softvéru Dizajnové princípy Robert Luko ka lukotka@dcs.fmph.uniba.sk www.dcs.fmph.uniba.sk/~lukotka M-255 Analýza a dizajn - úrovne Architektúra Vysokoúrov ový analytický model... Nízkoúrov ový analytický model Implementa ný model

More information

Improve Your SystemVerilog OOP Skills

Improve Your SystemVerilog OOP Skills 1 Improve Your SystemVerilog OOP Skills By Learning Principles and Patterns Jason Sprott Verilab Email: jason.sprott@verilab.com www.verilab.com Experts in SV Learn Design Patterns 2 Look, you don t need

More information

34. Recursion. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

34. Recursion. Java. Summer 2008 Instructor: Dr. Masoud Yaghini 34. Recursion Java Summer 2008 Instructor: Dr. Masoud Yaghini Outline Introduction Example: Factorials Example: Fibonacci Numbers Recursion vs. Iteration References Introduction Introduction Recursion

More information

Er. Himanshi Vashisht, Sanjay Bharadwaj, Sushma Sharma

Er. Himanshi Vashisht, Sanjay Bharadwaj, Sushma Sharma International Journal Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 8 ISSN : 2456-3307 DOI : https://doi.org/10.32628/cseit183833 Impact

More information

Program to an Interface, Not an Implementation

Program to an Interface, Not an Implementation Program to an Interface, Not an Implementation Early in the WeatherStation constructor: Barometer bar = new Barometer() ; Why is this problematic: WeatherStation depends on a specific implementation of

More information

Design Patterns: Part 2

Design Patterns: Part 2 Design Patterns: Part 2 ENGI 5895: Software Design Andrew Vardy with code samples from Dr. Rodrigue Byrne and [Martin(2003)] Faculty of Engineering & Applied Science Memorial University of Newfoundland

More information

Internet Research Task Force (IRTF) Category: Informational May 2011 ISSN:

Internet Research Task Force (IRTF) Category: Informational May 2011 ISSN: Internet Research Task Force (IRTF) T. Li, Ed. Request for Comments: 6227 Cisco Systems, Inc. Category: Informational May 2011 ISSN: 2070-1721 Abstract Design Goals for Scalable Internet Routing It is

More information

Stateful Session Beans

Stateful Session Beans Berner Fachhochschule Technik und Informatik Stateful Session Beans Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content Characteristics of stateful

More information

CS342: Software Design. Oct 9, 2017

CS342: Software Design. Oct 9, 2017 CS342: Software Design Oct 9, 2017 Outline Facade pattern Observer pattern Homework 1 classes Human player replaces a card 1. Main UserPlayer 2. Main ->CardPile 3. CardPile -> Card -> Main 4. Main

More information

8. Decision-Making Statements. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

8. Decision-Making Statements. Java. Summer 2008 Instructor: Dr. Masoud Yaghini 8. Decision-Making Statements Java Summer 2008 Instructor: Dr. Masoud Yaghini Decision-Making Statements Outline Introduction The if-then Statement The if-then-else Statement The switch Statement References

More information

Introducing Design Patterns

Introducing Design Patterns Introducing Design Patterns Prof. Dr. Eric Dubuis, @ Biel Course "UML and Design Patterns" of module "Software Engineering and Design", version October 2007 BFH/TI/UML and Design Patterns/Software Engineering

More information

Course 1 October, 9, Adrian Iftene

Course 1 October, 9, Adrian Iftene Course 1 October, 9, 2017 Adrian Iftene adiftene@info.uaic.ro SWEBOK: place and role of software engineering, knowledge areas (KAs), related disciplines Development and maintenance of the systems: model

More information

17.11 Bean Rules persistent

17.11 Bean Rules persistent 17.10 Java Beans Java beans are a framework for creating components in Java. AWT and Swing packages are built within this framework Made to fit in with graphic development environments such as Jbuilder

More information

Web Applications: A Simple Pluggable Architecture for Business Rich Clients

Web Applications: A Simple Pluggable Architecture for Business Rich Clients Web Applications: A Simple Pluggable Architecture for Business Rich Clients Duncan Mac-Vicar and Jaime Navón Computer Science Department, Pontificia Universidad Católica de Chile {duncan,jnavon}@ing.puc.cl

More information

Language alone won t pay your bills. Alan Franzoni - EP 2012 twitter: franzeur website:

Language alone won t pay your bills. Alan Franzoni - EP 2012 twitter: franzeur website: Language alone won t pay your bills Alan Franzoni - EP 2012 twitter: franzeur website: www.franzoni.eu What s this about? What s this about? Original idea: Why Python sucks What s this about? Original

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Introduce a logical architecture using layers Illustrate the logical architecture with UML Package Diagrams 2 Where the class Register should be? 4 Where class Register

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should

More information

Introduction. O.Univ.-Prof. DI Dr. Wolfgang Pree. Universität Salzburg

Introduction. O.Univ.-Prof. DI Dr. Wolfgang Pree.  Universität Salzburg OO Reengineering Patterns O.Univ.-Prof. DI Dr. Wolfgang Pree Universität Salzburg www.softwareresearch.net Introduction 2 Goals Convince you about the following: 3 Lehman s laws 4 What is a legacy system?

More information

Software Engineering Testing and Debugging Testing

Software Engineering Testing and Debugging Testing Software Engineering Testing and Debugging Testing Prof. Dr. Peter Thiemann Universitt Freiburg 08.06.2011 Recap Testing detect the presence of bugs by observing failures Debugging find the bug causing

More information

Power Provisioning for Diverse Datacenter Workloads

Power Provisioning for Diverse Datacenter Workloads Power Provisioning for Diverse Datacenter Workloads Christopher Stewart The Ohio State University Jing Li The Ohio State University Datacenters: A New Research Area Datacenters are the de facto architecture

More information

The Join the Club Interpretation of Some. Graph Algorithms

The Join the Club Interpretation of Some. Graph Algorithms The Join the Club Interpretation of Some Graph Algorithms Harold Reiter Isaac Sonin June 8, 2000 Abstract Several important tree construction algorithms of graph theory are described and discussed using

More information

A Power-hardware-in-the Loop Test Bench for Electric Machine Emulation

A Power-hardware-in-the Loop Test Bench for Electric Machine Emulation A Power-hardware-in-the Loop Test Bench for Electric Machine Emulation Amitkumar K. S and Prof. Pragasen Pillay Power Electronics and Energy Research (PEER Group) Concordia University Outline Motor model

More information

EC4205 Microprocessor and Microcontroller

EC4205 Microprocessor and Microcontroller EC4205 Microprocessor and Microcontroller Webcast link: https://sites.google.com/a/bitmesra.ac.in/aminulislam/home All announcement made through webpage: check back often Students are welcome outside the

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

Standard Development Timeline

Standard Development Timeline Standard Development Timeline This section is maintained by the drafting team during the development of the standard and will be removed when the standard becomes effective. Description of Current Draft

More information