Functional and Modular Design

Size: px
Start display at page:

Download "Functional and Modular Design"

Transcription

1 Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie Functional and Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik

2 Contents Functional Design The Module and Information-Hiding Based Design Case Study KWIC 2von 43

3 Obligatory Readings Ghezzi Chapter 3, Chapter 4, esp. 4.2 Pfleeger Chapter 5, esp. 5.7 David Garlan and Mary Shaw. An Introduction to Software Architecture. In: Advances in Software Engineering and Knowledge Engineering, Volume I, edited by V.Ambriola and G.Tortora, World Scientific Publishing Company, New Jersey, Also appears as CMU Software Engineering Institute Technical Report CMU/SEI-94-TR-21, ESC-TR cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf cmu softarch/intro softarch pdf 3von 43

4 Literature [Parnas] David Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM Dec (15) 12. [Shaw/Garlan] Software Architecture Prentice-Hall. 4von 43

5 Functional Design 5von 43

6 Function-Oriented Methods Question: Which functionality will the system have? Examples: Function tree refinement Modular decomposition with information hiding (Change-oriented modularization, Parnas) Dijkstras axiomatic refinement Meyers Design-by-contract (see OCL lecture) 6von 43

7 A Start for a Function Tree How to design the control software for a tea automaton? Produce Tea produce tea 7von 43

8 First Refinement of a Function Tree Produce Tea Put tea in pot Add boiling water Wait put tea in pot produce tea add boiling water composition wait 8von 43

9 Second Refinement of a Function Tree produce tea Produce Tea Put tea in pot Fetch tea from tea box Open pot Close pot Add boiling water Wait put tea in pot add boiling water wait fetch tea from tea box open pot close pot 9von 43

10 Third Refinement of a Function Tree Produce Tea Put tea in pot Fetch tea from tea box Open pot Close pot Add boiling water Boil water Open pot Pour water in Close pot Wait fetch put tea in pot produce tea add boiling water wait pour open close boil open close tea from water tea box pot pot water pot pot in pot 10 von 43

11 Function Trees Function trees can be derived by a 1:1 mapping from a functional requirements tree (see requirements analysis lecture) Given a complex function, we can refine it by Stepwise Refinement Usually top-down But also middle-out and bottom-up possible Development of the subfunction-of relationship subfunction-of is a part-of for functions: the function has which parts (subfunctions)? Note: instead of function, also the word action can be used in the following. However, in functional design, state is disregarded. State is important in action-oriented design, actions are usually related to state transitions! 11 von 43

12 Grouping Functions to Modules Group functions according to cohesion: which function belongs to which other function? Minimize coupling of modules Module Tea Automaton Produce Tea Add boiling water Wait Module Water Boiler Boil water Module Tea Box Fetch tea from tea box Module Pot Open pot Put tea in pot Pour water in pot Close pot 12 von 43

13 Grouping Functions to Modules or Classes in UML <<module>> TeaAutomaton producetea() addboilingwater() wait() fetchtea() TeaBox Pot <<module>> WaterBoiler boilwater() open() putin(tea) pourin(water) close() 13 von 43

14 Heuristics Don't group too many items onto one abstraction level or into one module Technical classes (classes that do not stem from domain modeling) can be found in similar ways, by grouping cohesive functions together 14 von 43

15 Result: Call-Based Architectural Style Functional design leads to call-based architectural style System call call Module return Module call return return call return cal l return Module 15 von 43

16 Why is Function-Oriented Design Important? Implementation of function trees in a functional language... or a modular language, e.g., Modula, C, or Ada-83. In some areas, object-oriented oriented design and languages have severe disadvantages Safety-critical systems: Proofs about the behavior of a system are only possible if the architecture is static,, i.e., can be used for proofs Due to polymorphism, object-oriented systems have dynamic architectures (don't program your AKW with Java!) Embedded and real-time systems: Object-oriented language implementations usually are slower than those of modular languages... and eat up more memory High-speed systems: Operating systems, database systems, compilers, von 43

17 What is a Module? Software should, according to the divide-and-conquer principle, also physically be divided into basic parts, modules A module groups a set of functions A module can be developed independently errors can be traced down to modules modules can be tested before assembling A module can be exchanged independently Modules can be reused The terms module and component are pretty much the same Often, a module is a programming-language g g g supported component Here: a module is a simple component In the past, different component models have been developed A component model defines features of components, their compositionality, and how large systems are built with them (architecture) In course Component-based SE, we will learn about many different component models 18 von 43

18 Es gibt nirgends eine wirkliche Anleitung, wie man das anstellt Sondern nur bekannte Kriterien zur Beurteilung des Resultats Deshalb studieren wir das Problem an einem Fallbeispiel KWIC Key word in Context Achtung: Das Problem ist so einfach, dass die verwendete Modularisierung vielleicht stellenweise übertrieben erscheint Bitte stellen Sie sich dann vor, das Problem wäre viel komplexer und übertragen Sie die Überlegungen analog 19 von 43

19 How To Modularize a System? Parnas principle of change-oriented modularization (information hiding) [Parnas, CACM 1972]: 1) Fix all design decisions that are likely to change 2) Attach each of those decisions to a new module The design decision is now called module secret 3) Design module interface that does not change if module secret changes 20 von 43

20 Information Hiding Information hiding relies on module secrets Possible module secrets: How the algorithm works, in contrast to what it delivers Data formats Representation of data structures, states User interfaces (e.g., AWT) Texts (language e.g., gettext library) Ordering of processing (e.g., design patterns Strategy, Visitor) Location of computation in a distributed system Implementation language of a module Persistence of the data 21 von 43

21 Module Interfaces Should never change! Well, at least be stable Should consist only of functions Access to data is efficient, i but cannot easily be exchanged e.g., set/get methods for fields of objects Should specify what is Provided (exported) Required (imported) Many languages support only the former 22 von 43

22 Different Kinds of Modules Functional modules (without state) sin, cos, BCD arithmetic, gnu mp,... Data encapsulators Hide data and state by functions (symbol table in a compiler) Monitors in the parallel case Abstract Data Types Data is manipulated lists, trees, stacks,.. New objects of the data type can be created dynamically Singletons Modules with a singular instance of a data structure Data-flow processes (stream processors, filters) Eating and feeding pipelines Objects Modules that can be instantiated 23 von 43

23 The KWIC Example Problem Pfleeger , Shaw/Garlan von 43

24 The KWIC Problem "Keyword in Context" problem (KWIC) is one of the 10 model problems of architecture systems [Shaw- ModelProblems, Originally proposed by Parnas to illustrate advantages of different designs [Parnas72] For a text, a KWIC algorithm produces a permuted index Every sentence is replicated and permuted in its words, i.e., the words are shifted from left to right. Every first word of a permutation is entered into an alphabetical index, the permuted index. 25 von 43

25 KWIC The KWIC index system accepts an ordered set of lines Each line is an ordered set of words, and each word is an ordered d set of characters. Any line may be "circularly shifted" by repeatedly removing the first word and appending it at the end of the line. The KWIC index system output s a listing of all circular shifts of all lines in alphabetical order. [Parnas] 26 von 43

26 A KWIC Index.. every sentence is replicated and permuted permuted.. every sentence is replicated and every sentence is replicated and permuted.. every sentence is replicated and permuted.. every sentence is replicated and permuted.. every sentence is replicated and permuted 27 von 43

27 Modules in The KWIC Problem and Some of Their Secrets Input: reads the sentences Input formats Are all lines stored in memory? (bad for large texts) Packed or unpacked character storage Store the index? Distributed or non-distributed memory? Output: outputs the KWIC index Highlighting of keywords? Text or PS, or PDF-output Circular Shifter: permutes the generated sentences Sorter: sorts the shifted sentences so that they form a keyword-incontext index Sort all the index or look entries up? Complete or partial sorting Caps: replicates the sentences as necessary Lazy or eager replication 28 von 43

28 KWIC Questions 1. Änderungen bezüglich des Algorithmus und seiner Implementierung Wortweise Rotieren der Zeilen einzeln auf jede Zeile gleich nachdem sie von der Eingabe eingelesen wurde, auf alle Zeilen zusammen nachdem sie komplett eingelesen wurden oder interaktiv auf Anfrage einer neuen Menge von rotierten Zeilen angewendet werden. 2. Änderungen bezüglich der Datenstrukturen t und repräsentationen ti Zeilen, Wörter und Buchstaben können beispielsweise in unterschiedlicher Weise gespeichert werden. Ebenfalls können die rotierten Zeilen explizit oder implizit, d.h. z.b. als Paare von Indizes und Offsets, gespeichert werden. 3. Erweiterungen um zusätzliche Systemfunktionen (Füllwörter) 4. Performanz 5. Wiederverwendbarkeit 29 von 43

29 Problem? Diese Geheimnisse sind nicht so banal, wie Sie vielleicht denken z.b. "Was ist ein Wort"? Vorschläge für die Definition? Ist Ihre Definition für folgende Buchtitel angemessen? "Beitrag zur Populationsgenetik der sauren Erythrocytenphosphatase- acp-ec unter besonderer Berücksichtigung des reinerbigen Typus C" (1980) "Lepton-Hadron-Korrelationen in (2+1)-Jet-Produktion in tiefinelastischer Elektron-Proton-Streuung zur O(alpha2 s)"(1992) "Die molekulare Wirkung von 2,4,5-und 2,4,6-Trichlorphenol auf Eukaryontenzellen" (1990) "Aufklärung, Vernunft, Religion i Kant und Feuerbach" (2005) 30 von 43

30 History IF %1==12 GOTO MySubroutine Echo the input was NOT 12 goto:eof :MySubroutine Echo the input was 12 goto:eof 31 von 43

31 The KWIC Problem in Repository Call-Based Style Call KWIC-SHM Control input Input Circular Shifter Sorter Output output Characters Index Alphabetized Index 32 von 43

32 The KWIC Problem in Repository Call Style Bad: A change in the data affects all modules High costs if algorithm have to be changed The modules are not reusable Bad encapsulation of module secrets! Good: Fast, due to shared memory access Easy Shared memory is a fast concept, but provides few information hiding. 33 von 43

33 The KWIC Problem in Decentralized Memory (Abstract Data Types) Call KWIC-DEC Control output input Input Output Char Representation Characters -setchar -char() -word() Sentence Representation CircularShift -setup() -setchar() - char() -word() Index Representation Alphabetized Index - alph() -ith() 34 von 43

34 The KWIC Problem in Decentralized Memory Good: Data and algorithm are easier to change (e.g., packing and storing the whole character) since Data representation is hidden in functions Algorithm partly hidden The control flow works "on demand" d" from the Control through h the Output backwards to the Input More module secrets: char, sentence, and index representation Layering Bad: Adding new functions may be hard, since control flow intertwines the modules tightly 35 von 43

35 The KWIC Problem in Implicit Invocation Style (Events) Call Event (implicit invocation) KWIC-IMPLIMPL Control input Input Output output t Circular Shift Sorter Sentence Representation Lines -insert() - delete() -ith() Sentence Representation ti Lines -insert() - delete() -ith() 36 von 43

36 The KWIC Problem in Implicit Invocation Style Good: Data and algorithm are easy to change they are hidden in functions The control flow works forward by "implicit invocation", i.e., sending an event, from the Input/Lines through the Shifter and the Sorter Layering Adding new functions is easy since they may additionally listen to the events; event sources need not be changed (even more module secrets) Bad: Flow of control is hard to predict 37 von 43

37 The KWIC Problem in Pipe-and-Filter Data-flow Style pipe input KWIC-DFLOW Data Representation Input Data Representation Circular Shift Data Representation Sorter Output Data Representation output 38 von 43

38 The KWIC Problem in Pipe-And-Filter Data-Flow Style Good: Data and algorithm are easy to change (by filter exchange) Adding new functions is easy (new filters) Flow of control is easy to say Data representation is completely hidden in the filters Highly reusable filter modules Bad: No evolution to interactive system 39 von 43

39 Comparison of KWIC Designs Easy to use REP DEC IMPL DFLOW Algorithm Data representation Function Good performance Easy reuse [Shaw/Garlan 1996] Comparison can be improved with weighted priorities. 40 von 43

40 What Have We Learned? When designing with functions, use function trees and subfunction decomposition When grouping to modules, fix module secrets The more module secrets, the better the exchange and the reuseability Change-oriented design means to encapsulate module secrets Functional and modular design are still very important in areas with hard requirements (safety, speed, low memory) 41 von 43

41 Conclusion of Information-Hiding Based Design We have seen how important it is to focus on describing secrets rather than interfaces or roles of modules. When we have forgotten that, we have ended up with modules without clear responsibilities and eventually had to revise our design. [Parnas/Clements, The Modular Structure of Complex Systems, CACM] 42 von 43

42 The End 43 von 43

21) Functional and Modular Design

21) Functional and Modular Design Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - 21) Functional and Modular Design Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software-

More information

21) Functional and Modular Design

21) Functional and Modular Design Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - 21) Functional and Modular Design Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software-

More information

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

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development

More information

IMPORTANT NOTICE TO STUDENTS

IMPORTANT NOTICE TO STUDENTS IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion KWIC Case Study CS

More information

23. Action-Oriented Design Methods

23. Action-Oriented Design Methods Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - Softwaretechnologie II 23. Action-Oriented Design Methods Prof. Dr. Uwe Aßmann Technische Universität

More information

Action-Oriented Design Methods

Action-Oriented Design Methods Action-Oriented Design Methods Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik Gruppe Softwaretechnologie http://www-st.inf.tu-dresden.de Softwaretechnologie

More information

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

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

More information

In his paper of 1972, Parnas proposed the following problem [42]:

In his paper of 1972, Parnas proposed the following problem [42]: another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example

More information

A Sketchy Evolution of Software Design. Three Papers by David Parnas

A Sketchy Evolution of Software Design. Three Papers by David Parnas A Sketchy Evolution of Software Design 1960s Structured Programming ( Goto Considered Harmful, E.W.Dijkstra) Emerged from considerations of formally specifying the semantics of programming languages, and

More information

10.1 Big Objects, Business Objects, and UML Components

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

More information

Design and Information Hiding

Design and Information Hiding Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,

More information

Connection Guide Link ECU

Connection Guide Link ECU Connection Guide Link ECU Can Bus Connection Atom/Monsun: Pin 28 (Can High) + Pin 29 (CAN Low) Storm (Black)/Fury/Xtreme/Force GDI: Pin B27 (Can2 High) + Pin B28 (CAN2 Low) Kurofune: Pin JST3 (Can High)

More information

Software Architecture in Practice

Software Architecture in Practice Software Architecture in Practice Chapter 5: Architectural Styles - From Qualities to Architecture Pittsburgh, PA 15213-3890 Sponsored by the U.S. Department of Defense Chapter 5 - page 1 Lecture Objectives

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Problem Specification & Software Architecture Department of Computer Science University of Maryland, College Park Overview Problem specification Obstacles Software

More information

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

An Introduction to Software Architecture By David Garlan & Mary Shaw 94 IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion An Introduction to

More information

Search Engines Chapter 2 Architecture Felix Naumann

Search Engines Chapter 2 Architecture Felix Naumann Search Engines Chapter 2 Architecture 28.4.2009 Felix Naumann Overview 2 Basic Building Blocks Indexing Text Acquisition iti Text Transformation Index Creation Querying User Interaction Ranking Evaluation

More information

AUTOMATISIERUNG DER INFRASTRUKTUR

AUTOMATISIERUNG DER INFRASTRUKTUR AUTOMATISIERUNG DER INFRASTRUKTUR NÄCHSTER HALT: STORAGE! ULRICH HÖLSCHER SYSTEMS ENGINEER 1 ES GIBT EINE MENGE ARBEIT WIE GEHEN WIR ES AN? Cloud Management Systems Automatisierung, IT-Prozesse Cloud Readiness/Transformation

More information

Decomposition into modules

Decomposition into modules Programming Languages Seminar Program Structure and readability Lefel Yaniv Hagay Pollak 1 Decomposition into modules On the criteria to be used in decomposing systems into modules by D.L.Parnas.(1972)

More information

12. Finding Components with Metadata in Component Repositories

12. Finding Components with Metadata in Component Repositories Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE 12. Finding Components with Metadata in Component Repositories Lecturer: Dr. Sebastian Götz Prof.

More information

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

An Introduction to Software Architecture By David Garlan & Mary Shaw 94 IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion An Introduction to

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Transformational Design with

Transformational Design with Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie Transformational Design with Model-Driven Architecture () Prof. Dr. U. Aßmann Technische Universität

More information

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE Dave Clarke 1 THIS LECTURE At the end of this lecture you will know notations for expressing software architecture the design principles of cohesion

More information

3. Finding Components in Component Repositories

3. Finding Components in Component Repositories 3. Finding Components in Component Repositories 1. Component Search with Metadata 2. Searching and Browsing with Faceted Classication 3. Faceted Component Stores 4. Searching by Conformance to Protocols

More information

3. Finding Components in Component Repositories Component Search. Obligatory Literature. References

3. Finding Components in Component Repositories Component Search. Obligatory Literature. References 3. Finding Components in Component Repositories 1. Component Search with Metadata 2. Searching and Browsing with Faceted Classication 3. Faceted Component Stores 4. Searching by Conformance to Protocols

More information

CHAPTER 5 GENERAL OOP CONCEPTS

CHAPTER 5 GENERAL OOP CONCEPTS CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should

More information

TI-No. 4002TI05.doc PAGE NO. : 1/1. Settings after Installation of the Firmware Version 74

TI-No. 4002TI05.doc PAGE NO. : 1/1. Settings after Installation of the Firmware Version 74 TI-No. 4002TI05.doc PAGE NO. : 1/1 DEVELOP Technical Information MODEL NAME : D 4500/5500iD MODEL CODE : 4002/4003 TI-INFO-NO. : 05 DATE : 13.07.2001 SUBJECT : Firmware MSC/Message/IR Version 74 PERFORMANCE

More information

Software Architectures. taxonomy. Architectural taxonomy ( boxology ) CMPSCI520/ Architecture, Frameworks, Middleware

Software Architectures. taxonomy. Architectural taxonomy ( boxology ) CMPSCI520/ Architecture, Frameworks, Middleware 14 - Architecture, Frameworks, Middleware Reading & Sources David Garlan, Software Architecture: a Roadmap, Proceedings of the conference on The future of Software engineering, Limerick, Ireland, June

More information

1. Übungsblatt. Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte. Beispiellösung

1. Übungsblatt. Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte. Beispiellösung Technische Universität Darmstadt Fachbereich Informatik System Security Lab Prof. Dr.-Ing. Ahmad-Reza Sadeghi Raad Bahmani 1. Übungsblatt Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte

More information

Modularity Guidelines for design in any programming language

Modularity Guidelines for design in any programming language Modularity Guidelines for design in any programming language 14-1 Modular Software Software constructed as assemblies of small pieces» Each piece encompasses the data and operations necessary to do one

More information

10/25/ Recursion. Objectives. Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich.

10/25/ Recursion. Objectives. Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich. 11. Recursion Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch/info1! You think you know when you learn, are more sure when you can write, even more when you can

More information

Übungsblatt 2. Aufgabe 1 (Klassifikationen von Betriebssystemen)

Übungsblatt 2. Aufgabe 1 (Klassifikationen von Betriebssystemen) Übungsblatt 2 Aufgabe 1 (Klassifikationen von Betriebssystemen) 1. Zu jedem Zeitpunkt kann nur ein einziges Programm laufen. Wie ist der passende Fachbegriff für diese Betriebsart? 2. Was versteht man

More information

Development of an Object Oriented Data Model ADDAM for Applications in Aircraft Design

Development of an Object Oriented Data Model ADDAM for Applications in Aircraft Design Development of an Object Oriented Data Model ADDAM for Applications in Aircraft Design MATLAB EXPO 2014 9 th July, Munich Fellow of Munich Aerospace e.v. Research Associate, Technical University of Munich

More information

USB. USB Sticks in Design und Qualität

USB. USB Sticks in Design und Qualität USB Sticks in Design und Qualität 148 149 USB Touch Pen touch pen OTG (On-The-Go) USB Stick OTG (On-The-Go) USB Drive USB microsd Karte microsd card Werbefläche advertising space 1, 2, 4, 8, 16, 32 GB

More information

Modularity!! Guidelines for design! in any programming language!

Modularity!! Guidelines for design! in any programming language! Modularity!! Guidelines for design! in any programming language! 14-1! Modular Software! Software constructed as assemblies of small pieces! 14-2! Modular Software 2! Software constructed as assemblies

More information

MetriKon format guidelines for proceedings papers

MetriKon format guidelines for proceedings papers MetriKon Format Guidelines MetriKon format guidelines for proceedings papers First author, second author, third author Affiliation of the author/s (company/university) Email-address/es of the author/s

More information

Software Design Heuristics

Software Design Heuristics Software Design Heuristics Software Design Heuristics CONTENT 1. Introduction 2. Encapsulation/Information Hiding 3. Strong Cohesion 4. Loose Dr. Samira Sadaoui 1 Introduction Introduction Software Design

More information

14 Arch., FW & Design. Architecture: rules of thumb

14 Arch., FW & Design. Architecture: rules of thumb 14 Arch., FW & Design Software Architecture Readings David Garlan, Software Architecture: a Roadmap, Proceedings of the conference on The future of Software engineering, Limerick, Ireland, June 04-11,

More information

8. Negation 8-1. Deductive Databases and Logic Programming. (Winter 2007/2008) Chapter 8: Negation. Motivation, Differences to Logical Negation

8. Negation 8-1. Deductive Databases and Logic Programming. (Winter 2007/2008) Chapter 8: Negation. Motivation, Differences to Logical Negation 8. Negation 8-1 Deductive Databases and Logic Programming (Winter 2007/2008) Chapter 8: Negation Motivation, Differences to Logical Negation Syntax, Supported Models, Clark s Completion Stratification,

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

Advanced Object-Oriented Analysis Concepts

Advanced Object-Oriented Analysis Concepts Advanced Object-Oriented Analysis Concepts Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik Gruppe Softwaretechnologie http://www-st.inf.tu-dresden.de Version

More information

Software Architecture. Lecture 4

Software Architecture. Lecture 4 Software Architecture Lecture 4 Last time We discussed tactics to achieve architecture qualities We briefly surveyed architectural styles 23-Jan-08 http://www.users.abo.fi/lpetre/sa08/ 2 Today We check

More information

24. Framework Documentation

24. Framework Documentation 24. Framework Documentation 1 Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie 15-0.2, 23.01.16 Design Patterns and Frameworks, Prof. Uwe Aßmann Obligatory

More information

Flasher Utility. QUANCOM Informationssysteme GmbH

Flasher Utility. QUANCOM Informationssysteme GmbH Flasher Utility Copyright Alle Angaben in diesem Handbuch sind nach sorgfältiger Prüfung zusammengestellt worden, gelten jedoch nicht als Zusicherung von Produkteigenschaften. QUANCOM haftet ausschließlich

More information

Advice on Documentation (Faking it) Daniel M. Berry

Advice on Documentation (Faking it) Daniel M. Berry Advice on Documentation (Faking it) Daniel M. Berry Introduction -1 We are talking about documentation for the benefit of the designers, programmers, testers, and maintainers. We are not talking about

More information

Einsatz von Komponenten in JEE am Beispiel von IMIXS

Einsatz von Komponenten in JEE am Beispiel von IMIXS Einsatz von Komponenten in JEE am Beispiel von IMIXS the open source workflow technology Ralph.Soika@imixs.com Imixs Software Solutions GmbH Best IBM Lotus Sametime Collaboration Extension Imixs Software

More information

CS 292 Software Development

CS 292 Software Development CS 292 Software Development and Professional Practice Structured Design and More Design Principles CS 292 Design Principles 1 Unless otherwise expressly stated, all original material of whatever nature

More information

CPSC 410 Advanced Software Engineering Mid-term Examination (Term I ): Solution Instructor: Gail Murphy

CPSC 410 Advanced Software Engineering Mid-term Examination (Term I ): Solution Instructor: Gail Murphy CPSC 410 Advanced Software Engineering Mid-term Examination (Term I 2003-2004): Solution Instructor: Gail Murphy Do NOT start until you are informed you can start! This examination has 6 questions. The

More information

ESE Einführung in Software Engineering!

ESE Einführung in Software Engineering! ESE Einführung in Software Engineering! 10. Software Architecture! Prof. O. Nierstrasz" Roadmap! > What is Software Architecture?" > Coupling and Cohesion" > Architectural styles:" Layered" Client-Server"

More information

31. ArchJava A Lightweight Java Extension for Architecture Provided and Required Ports and Services

31. ArchJava A Lightweight Java Extension for Architecture Provided and Required Ports and Services Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE 31. ArchJava A Lightweight Java Extension for Architecture Provided and Required Ports and Services

More information

13.1 DECISION ANALYSIS WITH DECISION TREES AND TABLES (CONDITION-ACTION ANALYSIS)

13.1 DECISION ANALYSIS WITH DECISION TREES AND TABLES (CONDITION-ACTION ANALYSIS) Obligatory Reading Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie alzert, Kapitel über Entscheidungstabellen Ghezzi 6.3 Decision-table based testing

More information

An Introduction to Software Architecture

An Introduction to Software Architecture An Introduction to Software Architecture Software Engineering Design Lecture 11 Motivation for studying SW architecture As the size of SW systems increases, the algorithms and data structures of the computation

More information

Lecture 3. Parnas Information Hiding

Lecture 3. Parnas Information Hiding Lecture 3 Parnas Information Hiding Announcement SSE: Students in Software Engineering http://www.edge.utexas.edu/sse/ Software Engineering Reading Group 11AM - 12PM on every other friday http://users.ece.utexas.edu/~miryung/

More information

5. Architectural Glue Patterns

5. Architectural Glue Patterns 5. Architectural Glue Patterns 1 Prof. Dr. U. Aßmann Chair for Software Engineering Faculty of Computer Science Dresden University of Technology 14-0.1, 11/3/14 Lecturer: Dr. Sebastian Götz 1) Mismatch

More information

Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90)

Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90) Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90) 1 Proxy Pattern Pattern Name and Classification (Kategorisierung) Intent (Zweck) Motivation/ Forces

More information

An Introduction to Software Architecture

An Introduction to Software Architecture An Introduction to Software Architecture Software Requirements and Design CITS 4401 Lecture 11 Motivation for studying SW architecture As the size of SW systems increase, the algorithms and data structures

More information

09. Component-Level Design

09. Component-Level Design 09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a

More information

Anleitung zur Schnellinstallation TEW-684UB 1.01

Anleitung zur Schnellinstallation TEW-684UB 1.01 Anleitung zur Schnellinstallation TEW-684UB 1.01 Table of Contents Deutsch 1 1. Bevor Sie anfangen 1 2. Installation 2 3. Verwendung des drahtlosen Adapters 5 Troubleshooting 7 Wireless Tips 8 Version

More information

1. Problems of Big Software

1. Problems of Big Software Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie 1. Problems of Big Software Dr.-Ing. Sebastian Götz Institut für Software- und Multimediatechnik Lehrstuhl

More information

CS560: Formal Modelling and Implementation of Systems (Term II)

CS560: Formal Modelling and Implementation of Systems (Term II) CS560: Formal Modelling and Implementation of Systems (Term II) Software Design A.P.O Riordan, 2009 Email: a.oriordan@cs.ucc.ie Course Webpage: http://www.cs.ucc.ie/~adrian/cs560.html CS560 1 Design Design

More information

WebTransactions V7.1. Supplement

WebTransactions V7.1. Supplement WebTransactions V7.1 Supplement Edition: December 2006 This manual describes the new functions in WebTransactions V7.1. It is intended to supplement the WebTransactions V7.0 manuals. Comments Suggestions

More information

An Introduction to Software Architecture

An Introduction to Software Architecture An Introduction to Software Architecture David Garlan and Mary Shaw January 1994 CMU-CS-94-166 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213-3890 Also published as An Introduction

More information

Übungsstunde: Informatik 1 D-MAVT

Übungsstunde: Informatik 1 D-MAVT Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 18.04.2018 1 Ablauf Sorting Multidimensionale

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

Data Warehousing. Metadata Management. Spring Term 2016 Dr. Andreas Geppert Spring Term 2016 Slide 1

Data Warehousing. Metadata Management. Spring Term 2016 Dr. Andreas Geppert Spring Term 2016 Slide 1 Data Warehousing Metadata Management Spring Term 2016 Dr. Andreas Geppert geppert@acm.org Spring Term 2016 Slide 1 Outline of the Course Introduction DWH Architecture DWH-Design and multi-dimensional data

More information

Software Design and Implementation. Example Architecture KIWC

Software Design and Implementation. Example Architecture KIWC Software Design and Implementation Example Architecture KIWC Previously on SDI What is design? What is traceability? What is architecture? Why architectures are important? Architectural styles KWIC The

More information

Ulrich Stärk

Ulrich Stärk < Ulrich Stärk ulrich.staerk@fu-berlin.de http://www.plat-forms.org 2 Einige Vorurteile Everything in the box is kind of weird and quirky, but maybe not enough to make it completely worthless. PHP: a fractal

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2004 Professor Richard N. Taylor Lecture Notes Week 3: Architectures http://www.ics.uci.edu/~taylor/ics_52_fq04/syllabus.html Copyright 2004, Richard

More information

22) Generic Programming with Generic Components Full Genericity in BETA. Obligatory Reading. Literature

22) Generic Programming with Generic Components Full Genericity in BETA. Obligatory Reading. Literature 22) Generic Programming with Generic Components Obligatory Reading Invasive Software, Chapter 6 [BETA-DEF] The BETA language. Free book. http://www.daimi.au.dk/~beta/books/. Please, select appropriate

More information

Software Architecture

Software Architecture Software Architecture Lecture 6 Event Systems Rob Pettit George Mason University SWE 443 Software Architecture Event Systems 1 previously data flow and call-return styles data flow batch sequential dataflow

More information

R E L E A S E N O T I C E C O S M O S T O O L S V A. (c) Fujitsu Siemens Computers GmbH 2001

R E L E A S E N O T I C E C O S M O S T O O L S V A. (c) Fujitsu Siemens Computers GmbH 2001 R E L E A S E N O T I C E C O S M O S T O O L S V 1 4. 0 A (c) Fujitsu Siemens Computers GmbH 2001 Word and Excel are registered trademarks of Microsoft Postscript is a registered trademark of Adobe Contents

More information

23. Framework Documentation

23. Framework Documentation 23. Framework Documentation Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie 11-1.0, 23.12.11 Design Patterns and Frameworks, Prof. Uwe Aßmann 1 References

More information

Object Orientated Analysis and Design. Benjamin Kenwright

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

More information

FXD A new exchange format for fault symptom descriptions

FXD A new exchange format for fault symptom descriptions FXD A new exchange format for fault symptom descriptions Helmut Wellnhofer, Matthias Stampfer, Michael Hedenus, Michael Käsbauer Abstract A new format called FXD (=Fault symptom exchange Description) was

More information

TRANSPARENT COMPONENTS FOR SOFTWARE SYSTEMS

TRANSPARENT COMPONENTS FOR SOFTWARE SYSTEMS Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie TRANSPARENT COMPONENTS FOR SOFTWARE SYSTEMS Paul Peschel Dresden, summer term 2014 Content Transparent

More information

Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0

Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0 Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0 Inhalt 1. Versionsstand dieses Dokuments... 1 1.1 V1.0 Stammfassung... 1 2. Hinweise zu diesem Muster... 1 3. Musterbrief... 2 1.

More information

Introduction to Software Engineering 10. Software Architecture

Introduction to Software Engineering 10. Software Architecture Introduction to Software Engineering 10. Software Architecture Roadmap > What is Software Architecture? > Coupling and Cohesion > Architectural styles: Layered Client-Server Blackboard, Dataflow,... >

More information

Programmazione. Prof. Marco Bertini

Programmazione. Prof. Marco Bertini Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable

More information

CSE 435: Software Engineering. System Design

CSE 435: Software Engineering. System Design System Design Design: HOW to implement a system Goals: Satisfy the requirements Satisfy the customer Reduce development costs Provide reliability Support maintainability Plan for future modifications Design

More information

Setting the stage... Key Design Issues. Main purpose - Manage software system complexity by improving software quality factors

Setting the stage... Key Design Issues. Main purpose - Manage software system complexity by improving software quality factors Setting the stage... Dr. Radu Marinescu 1 1946 Key Design Issues Main purpose - Manage software system complexity by...... improving software quality factors... facilitating systematic reuse Dr. Radu Marinescu

More information

Structured Peer-to-Peer Services for Mobile Ad Hoc Networks

Structured Peer-to-Peer Services for Mobile Ad Hoc Networks DOCTORAL DISSERTATION Structured Peer-to-Peer Services for Mobile Ad Hoc Networks Dissertation zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften im Fachbereich Mathematik und

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

... Chair of Mobile Business & Multilateral Security. Lecture 14 Business Informatics 2 (PWIN) Q&A SS 2017

... Chair of Mobile Business & Multilateral Security. Lecture 14 Business Informatics 2 (PWIN) Q&A SS 2017 Lecture 14 Business Informatics 2 (PWIN) Q&A SS 2017 Prof. Dr. Kai Rannenberg Akos Grosz, M.Sc. Christopher Schmitz, M.Sc. www.m-chair.de Chair of Mobile Business & Multilateral Security Jenser (Flickr.com)

More information

Component-Based Software Engineering (CBSE) 10. Introduction

Component-Based Software Engineering (CBSE) 10. Introduction Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE 10. Introduction Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und

More information

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice) System Design Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice) C 870: Advanced Software Engineering (System Design): Cheng Design: HOW to implement a system Goals: Satisfy the

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2002 Professor Richard N. Taylor Lecture Notes Week 3: Architectures http://www.ics.uci.edu/~taylor/ics_52_fq02/syllabus.html Copyright 2002, Richard

More information

Modern and Lucid C++ for Professional Programmers. Week 15 Exam Preparation. Department I - C Plus Plus

Modern and Lucid C++ for Professional Programmers. Week 15 Exam Preparation. Department I - C Plus Plus Department I - C Plus Plus Modern and Lucid C++ for Professional Programmers Week 15 Exam Preparation Thomas Corbat / Prof. Peter Sommerlad Rapperswil, 08.01.2019 HS2018 Prüfung 2 Durchführung Mittwoch

More information

On the Criteria To Be Used in Decomposing Systems into Modules D.L. Parnas Carnegie-Mellon University

On the Criteria To Be Used in Decomposing Systems into Modules D.L. Parnas Carnegie-Mellon University On the Criteria To Be Used in Decomposing Systems into Modules D.L. Parnas Carnegie-Mellon University Reprinted from Communications of the ACM, Vol. 15, No. 12, December 1972 pp. 1053 1058 Copyright 1972,

More information

CSE403 Software engineering sp12

CSE403 Software engineering sp12 CSE403 Software engineering sp12 Week 3 Monday Tuesday Wednesday Thursday Friday Design Reading II due Group meetings SRS due Design UML Design Progress report due Design is not just what it looks like

More information

Examination cover sheet

Examination cover sheet Student name: Student number: Examination cover sheet (to be completed by the examiner) Course name: Software specification and architecture Course code: 2IW81 Date: 12-04-2016 Start time: 09:00 End time

More information

TriCore TM 1 Pipeline Behaviour & Instruction Execution Timing

TriCore TM 1 Pipeline Behaviour & Instruction Execution Timing Application Note, V 1.1, Jan. 2000 AP32071 TriCore TM 1 Pipeline Behaviour & Instruction Execution Timing TriCore TM 1 Modular (TC1M) Microcontrollers Never stop thinking. TriCore TM 1 Revision History:

More information

Copyright (C) Fujitsu Siemens Computers GmbH 2005 All rights reserved

Copyright (C) Fujitsu Siemens Computers GmbH 2005 All rights reserved Fujitsu Siemens Computers GmbH DRV (BS2000/OSD) Version 3.1A November 2005 Release Notice Copyright (C) Fujitsu Siemens Computers GmbH 2005 All rights reserved Release Notice DRV V3.1A 1 General 2 1.1

More information

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information

Creational. Structural

Creational. Structural Fitness for Future of Design Patterns & Architectural Styles Design patterns are difficult to teach, so we conducted a class collaboration where we all researched and reported on a variety of design patterns

More information

Object-Oriented Design

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

More information

Lecture Chapter 2 Software Development

Lecture Chapter 2 Software Development Lecture Chapter 2 Software Development Large Software Projects Software Design o Team of programmers o Cost effective development Organization Communication Problem Solving Analysis of the problem Multiple

More information

SD2IEC evo². Revision E3b

SD2IEC evo². Revision E3b SD2IEC evo² Installation Instructions Revision E3b 16xEight Wir danken für das uns mit dem Kauf dieses Produktes entgegengebrachte Vertrauen! Unser Ziel ist es nicht nur die Anforderungen unserer Kunden

More information

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

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

More information

Software Architectures

Software Architectures Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429

More information

Worth its Weight in Gold or Yet Another Resource

Worth its Weight in Gold or Yet Another Resource Worth its Weight in Gold or Yet Another Resource A Comparative Study of Wiktionary, OpenThesaurus and GermaNet Christian M. Meyer and Iryna Gurevych First Workshop on Automated Knowledge Base Construction

More information