Introduction. Observation Patterns. Accounting Patterns. How to use Patterns

Size: px
Start display at page:

Download "Introduction. Observation Patterns. Accounting Patterns. How to use Patterns"

Transcription

1 Analysis Martin Fowler acm.org ourworld.compuserve.com/homepages/martin_fowler Page Martin Fowler 9//99 What we will cover Introduction Observation Accounting How to use Page 2 Martin Fowler 9//99

2 projects fail despite the latest technology for lack of ordinary solutions. Ralph Johnson and Ward Cunningham Gang of Four : Design book Pattern Languages of Programming (PLoP) conferences A pattern is an idea that has been useful in one practical context and will probably be useful in others. [Fowler] Page 3 Martin Fowler 9//99 Design Pattern: Mediator Mediator Colleague Concrete Colleague Concrete Mediator Concrete Colleague Define an object that encapsulates how a set of objects interact. Gamma, E., Helm, R., Johnson, R. and Vlissides, J. Design : elements of reusable object-oriented software, Addison-Wesley, Reading, MA, Page 4 Martin Fowler 9//99 2

3 David Hay Relational data models Not connected with patterns community, but still patterns Hay, D. Data Model : conventions of thought, Dorset House, New York, NY, 996. Martin Fowler OO conceptual models Healthcare, Accounting, Financial Trading, Planning Fowler, M. Analysis : reusable object models, Addison-Wesley, Reading MA, 997. Analysis Page 5 Martin Fowler 9//99 Notation Each customer may have many orders Each order has a single customer Order Customer placedon : Date dispatch() Priority Order Individual Customer Corporate Customer A customer may be a corporate customer or an individual customer An order may be a priority order Interface not implementation Martin Fowler with Kendall Scott, UML Distilled: Applying the Standard Object Modeling Language, Addison-Wesley 997 Page 6 Martin Fowler 9//99 3

4 application in 3 tier architecture application 2 domain database application 3 Visibility is from application to domain Domain carries shared services Applications do not see database used in domain tier Page 7 Martin Fowler 9//99 Observation Introduction Observation Accounting How to use Page 8 Martin Fowler 9//99 4

5 Attributes of Person Person height : Number weight : Number blood glucose level : Number What are the problems with this model? Page 9 Martin Fowler 9//99 Quantity Quantity Person height : Quantity weight : Quantity blood glucose level : Quantity amount: Number units: Unit +, -, *, / <, >, =, <=, >= as(unit) : Quantity tostring() : String valueof(string) : Quantity Define arithmetic operations for quantity Money is a kind of quantity Use Conversion Ratio to convert to other units What if there are tens or hundreds of attributes? Page 0 Martin Fowler 9//99 5

6 Measurement Martin Fowler is six feet tall Phenomenon Type Person Measurement amountof(phenomenontype) : Quantity amount: Quantity For each attribute of person, define an instance of phenomenon type To record a value for a person create a measurement When should we use this model? Page Martin Fowler 9//99 Observation Phenomenon Phenomenon Type Observation {overlapping} Category Observation Measurement amount: Quantity Person amountof(phenomenontype) : Quantity valueof(phenomenontype) : Phenomenon Martin Fowler is blood group O Martin Fowler is Male Page 2 Martin Fowler 9//99 6

7 Knowledge and Operational Levels Knowledge Associative Function arguments result Phenomenon Operational Person Observation Category Observation Operational regular day to day objects Knowledge Meta-Data Objects that capture domain rules Page 3 Martin Fowler 9//99 Range Range upper: Magnitude lower: Magnitude isupperinclusive: Boolean islowerinclusive: Boolean includes (Magnitude) : Boolean overlaps (Range) : Boolean abuts (Range) : Boolean Magnitude = < =< > >= Between 0 miles and 50 miles 6m < x 5m Page 4 Martin Fowler 9//99 7

8 Phenomenon with Range Range Phenomenon {phenomena's ranges should not overlap} Phenomenon Type Normal Heart Rate is beats per minute Page 5 Martin Fowler 9//99 Assigning a phenomenon new a Measurement heart rate: Phenomenon Type normal heart rate: Phenomenon fast heart rate: Phenomenon phenomenon = phenomenonincluding(ameasurement) includes (ameasurement) false includes (ameasurement) true fastheartrate setphenomenon(fastheartrate) Page 6 Martin Fowler 9//99 8

9 Corporate Finance Problem Each month we get a large number of indicators (revenue, income, units sold ) Each indicator is given values for good, reasonable, poor, or bad If revenue is over 05 million that is good, over 95 is reasonable, over 90 is poor and under 90 is bad. Indicators can be calculated based on other indicators Revenue = income - costs Income = units sold * average price Page 7 Martin Fowler 9//99 Measurement Protocol Measurement Measurement Protocol {list} Phenomenon Type Source Measurement Protocol Calculated Measurement Protocol Source Protocols read from external systems Calculated Protocols are calculations Page 8 Martin Fowler 9//99 9

10 Calculated Measurement Measurement Protocol result type Phenomenon Type Formula Calculated Measurement Protocol argument types {list} Calculated measurement protocol has formula and arguments Revenue = Income - Costs Income = Number sold X Average Price Body Mass Index = weight / height 2 Page 9 Martin Fowler 9//99 Creating a Measurement a Measurement Protocol a Formula create Measurement find arguments execute return quantity new a Measurement Factory method for measurements Page 20 Martin Fowler 9//99 0

11 Observation Quantity Measurement Observation Range Phenomenon with Range Measurement Protocol Page 2 Martin Fowler 9//99 Accounting Introduction Observation Accounting How to use Page 22 Martin Fowler 9//99

12 Account Account balance: Money Entry amount: Money whencharged: Timepoint whenbooked: Timepoint {balance = sum(entries)} Entries record history of changes to an account Where might we use this model? Page 23 Martin Fowler 9//99 Transaction Account Entry amount: Money 2.. Transaction {sum(entries.amount) = 0} I withdraw $00 from my checking account The Willenhall Coal Company delivers 30 tons of coal to Bilston Gasworks Why are transactions useful? Page 24 Martin Fowler 9//99 2

13 Posting Rule (simple) Account trigger output Posting Rule multiplier: Number execute() 5% of state tax is deducted from gross income Page 25 Martin Fowler 9//99 Individual Instance Method Posting Rule calculation Method output trigger Account Income tax is deducted at 5% for first $3,500 28% to $80,750 3% to $30,800 Each instance of posting rule has its own method Conceptual statement Page 26 Martin Fowler 9//99 3

14 Account Types output Account Type trigger Knowledge Posting Rule Method Operational Employee Account Employee Apply the graduated tax algorithm to the gross pay of Doug and Dinsdale Piranha to yield their net pay. Page 27 Martin Fowler 9//99 Network of Posting Rules 3 hours (Tuesday) raw Overtime: Account Type OT hours PR straight += input if (Sunday) excess += input else excess += input * 0.5 straight OT hours : 3 hours.5 hours Account Type Excess Hours: Account Type Straight OT Payment : Posting Rule out = input * employee.rate Excess Payment: Posting Rule excess = input * employee.otrate * 2/3 premium = input * employee.otrate * /3 $50 Straight Dollars : Account Type Excess Hours: $50 $25 Account Type Premium Hours: Account Type $225 Total Overtime : Summary Account Type Page 28 Martin Fowler 9//99 4

15 Executing the network a list of Posting Rules a Posting Rule an Employee input Account output Account pay (employee) *[for all elements] run (employee) get account (input account type) get unprocessed entries * [for each entry] execute posting rule post entry Page 29 Martin Fowler 9//99 Procedural Approach H H Process Hours Get straight hours account Dollarize Straight Hours get unprocessed entries [for all entries] Dollarize Excess Hours multiply by rate H post to straight dollars Page 30 Martin Fowler 9//99 5

16 Changing the Rules H H Process Hours Get straight hours account Dollarize Straight Hours get unprocessed entries [for all entries] Dollarize Excess Hours [before April 5] [on or after April 5] H multiply by rate multiply by rate * 0.9 post to straight dollars Page 3 Martin Fowler 9//99 Adding an effectivity time output Account Type trigger Posting Rule effectivity: Date Range Method Employee Account Employee Add a date range for each posting rule instance Page 32 Martin Fowler 9//99 6

17 New Behavior a list of Posting Rules a Posting Rule an Employee input Account output Account pay (employee) *[for all elements] run (employee) get account (input account type) get unprocessed entries in (date range) * [for each entry] execute posting rule post entry Page 33 Martin Fowler 9//99 Implementing with singleton State Tax PR state: State {Singleton} CA Tax PR state: State {Singleton} MA Tax PR state: State {Singleton} NY Tax PR state: State What are the strengths and weaknesses? Page 34 Martin Fowler 9//99 7

18 State Tax PR state: State {abstract} Strategy Pattern Calculation Strategy «Method» return strategy. {Singleton} CA Tax {Singleton} MA Tax {Singleton} NY Tax What are the strengths and weaknesses? Page 35 Martin Fowler 9//99 Parameterized Method State Tax PR state: State rate: Number «Method» multiply by rate What are the strengths and weaknesses? Page 36 Martin Fowler 9//99 8

19 Combining Implementations State Tax PR state: State {Singleton} CA Tax PR Multiplier PR rate: Number {Singleton} NYTax PR Combination of singleton and parameterized approaches Page 37 Martin Fowler 9//99 Posting Rule Execution Eager firing Fire when entry added to account Find all posting rules looking at that account and fire them (etc, etc) Posting rule based Have a coordinator which tells posting rules when to fire Account based based Have a coordinator tell which accounts when to fire their outbound posting rules Backward Chained When you ask an account for its balance All input accounts must be asked for value (etc, etc) Which would you choose? Page 38 Martin Fowler 9//99 9

20 Accounting Account Transaction Posting Rule Individual Instance Method Posting Rule Execution Posting Rules for Many Accounts Accounting Practice Page 39 Martin Fowler 9//99 How to use Introduction Observation Accounting How to use Page 40 Martin Fowler 9//99 20

21 Using Starting point for development Inspiration to get things going Comparison for review Why are we different to this pattern? Documentation of complex frameworks Highlight the key patterns Informal standardization Mining from legacy systems Training The next step after basic training The why is at least as important as the what Page 4 Martin Fowler 9//99 Learning about Read the books Use a book group Discuss two chapters a week over lunch Take a training course Training must emphasize using patterns Instructors expertise is central Try using the patterns You cannot understand a pattern till you have tried it Trying a pattern and finding it does not fit is valuable Write some patterns Page 42 Martin Fowler 9//99 2

22 Books Beck, K. Smalltalk Best Practice. Volume : Coding, Prentice Hall, Englewood Cliffs, NJ, 997. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal., M. Pattern-Oriented Software Architecture - A System of, John Wiley, 996. Coad, P., North, D. and Mayfield, M. Object Models: strategies, patterns and applications, Prentice Hall, Englewood Cliffs, 995. Coplien, J.O. and Schmidt, D.C. Pattern Languages of Program Design, Addison-Wesley, Reading, MA, 995. Gamma, E., Helm, R., Johnson, R. and Vlissides, J. Design : elements of reusable object-oriented software, Addison-Wesley, Reading, MA, 995. Fowler, M. Analysis, Addison-Wesley, Reading MA, 997 Hay, D. Data Model : conventions of thought, Dorset House, New York, NY, 996. Vlissides, J.M., Coplien, J.O. and Kerth, N.L. ed.pattern Languages of Program Design 2, Addison-Wesley, Page 43 Martin Fowler 9//99 Final Thoughts are relevant for all aspects of software engineering and for Business Process Reengineering Analysis patterns can be used across traditional vertical business domains A model is not right or wrong, only more or less useful are a starting point, not a final destination Still learning about teaching, using, and discovering patterns Page 44 Martin Fowler 9//99 22

Patterns in a Nutshell

Patterns in a Nutshell Patterns in a Nutshell http://www.enteract.com/~bradapp/ January 27, 1998 Patterns in a Nutshell Page 2 of 12 Trendy: Literary: 1.0 What are Patterns? Recent hot topic, OOD buzzword, lots of hype! Form

More information

A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS

A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS C. Rolland*, G. Grosz*, P. Loucopoulos**, S. Nurcan* * Centre de Recherche en Informatique Université

More information

Recurring Events for Calendars

Recurring Events for Calendars PLop Submission Recurring Events for Calendars Martin Fowler 100031.3311@compuserve.com I had a happy time when I lived in the South End of Boston. I had a nice apartment in an attractive brownstone building.

More information

Dealing with Roles. Martin Fowler. fowler@acm.org

Dealing with Roles. Martin Fowler. fowler@acm.org Dealing with Roles Martin Fowler fowler@acm.org Anyone who runs a company deals with other companies. Such companies may act as suppliers of goods or services, they may be customers of your products, they

More information

A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS

A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS C. Rolland*, G. Grosz*, P. Loucopoulos**, S. Nurcan* * Centre de Recherche en Informatique Université

More information

The Different Types of Search and Execution Systems

The Different Types of Search and Execution Systems Query Engine A Pattern for Performing Dynamic Searches in Information Systems Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.de Jan 24, 2006 Abstract: This paper presents an architecture

More information

A methodology for secure software design

A methodology for secure software design A methodology for secure software design Eduardo B. Fernandez Dept. of Computer Science and Eng. Florida Atlantic University Boca Raton, FL 33431 ed@cse.fau.edu 1. Introduction A good percentage of the

More information

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

Encapsulating Crosscutting Concerns in System Software

Encapsulating Crosscutting Concerns in System Software Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com

More information

A Componentware Methodology based on Process Patterns Klaus Bergner, Andreas Rausch Marc Sihling, Alexander Vilbig Institut fur Informatik Technische Universitat Munchen D-80290 Munchen http://www4.informatik.tu-muenchen.de

More information

A Review of an MVC Framework based Software Development

A Review of an MVC Framework based Software Development , pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University

More information

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or

More information

A Confederation of Patterns for Resource Management

A Confederation of Patterns for Resource Management Abstract A Confederation of Patterns for Resource Management Rosana T. Vaccare Braga ICMCUniversidade de S o Paulo/ Universidade de Franca C. P. 668, 3560970 S o Carlos SP Brazil Phone Number: 55 6 2739679

More information

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Michael Falkenthal 1, Dierk Jugel 1, Alfred Zimmermann 1, René Reiners 2, Wilfried Reimann 3, Michael

More information

Architectural Patterns (3)

Architectural Patterns (3) Scatter/Gather Architectural Patterns (3) Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Goal: send the same message to multiple recipients which will (or may) reply to

More information

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying

More information

Patterns as Topics in Computer Science Courses

Patterns as Topics in Computer Science Courses Patterns as Topics in Computer Science Courses Introduction Dwight Deugo deugo@scs.carleton.ca, 103163.2657@compuserve.com http://www.scs.carleon.ca/~deugo School of Computer Science, Carleton University

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN

More information

Teaching Software Engineering Through Game Design

Teaching Software Engineering Through Game Design Teaching Software Engineering Through Game Design Kajal Claypool Computer Science Department University of Massachusetts 1 University Avenue Lowell, MA, USA kajal@cs.uml.edu Mark Claypool Computer Science

More information

Quality Ensuring Development of Software Processes

Quality Ensuring Development of Software Processes Quality Ensuring Development of Software Processes ALEXANDER FÖRSTER,GREGOR ENGELS Department of Computer Science University of Paderborn D-33095 Paderborn, Germany {alfo engels}@upb.de ABSTRACT: Software

More information

A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS

A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS UDC: 004.42 Original scientific paper A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS Dragutin Kermek 1, Tomislav Jakupi 2, Neven Vr ek 1 1 University of Zagreb,Faculty

More information

A Reusability Concept for Process Automation Software

A Reusability Concept for Process Automation Software A Reusability Concept for Process Automation Software Wolfgang Narzt, Josef Pichler, Klaus Pirklbauer, Martin Zwinz Business Information Systems C. Doppler Laboratory for Software Engineering University

More information

The WebShop E-Commerce Framework

The WebShop E-Commerce Framework The WebShop E-Commerce Framework Marcus Fontoura IBM Almaden Research Center 650 Harry Road, San Jose, CA 95120, U.S.A. e-mail: fontouraalmaden.ibm.com Wolfgang Pree Professor of Computer Science Software

More information

From Systems to Services

From Systems to Services From Systems to Services How we can collaborate in the new paradigm? Randy Ballew, Chief Technology Architect, IST-AS Steve Masover, Architecture Group, IST-AS Overview What is "software as services"?

More information

EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS

EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS David URTING, Stefan VAN BAELEN, Tom HOLVOET and Yolande BERBERS {David.Urting, Stefan.VanBaelen, Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be

More information

Using MDA in Web Software Architectures

Using MDA in Web Software Architectures Using MDA in Web Software Architectures SANTIAGO MELIA, CRISTINA CACHERO AND JAIME GOMEZ 1 Universidad de Alicante, Spain The new challenges posed by the Internet market have increased the need for Web

More information

A Pattern System for Network Management Interfaces

A Pattern System for Network Management Interfaces A Pattern System for Network Management Interfaces Rudolf K. Keller Jean Tessier Gregor v. Bochmann Network management systems are used to control and monitor the components of distributed systems such

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Peter Coad and Edward Yourdon Technische Hochschule Darmstadt FACHBKREICH INFORMATIK BIBLIOTHEK Inventar-Nr.:...A.Q.HA&. Sachg biete:.../??/.4, Standort: YOURQDN PRESS PRENTICE HALL

More information

The WebShop e-commerce framework

The WebShop e-commerce framework The WebShop e-commerce framework Marcus Fontoura 1, Wolfgang Pree 2, and Bernhard Rumpe 3 1 Cyberspace and Web Technology Department, IBM Almaden Research Center 650 Harry Rd., San Jose, CA, 91520, U.S.A

More information

DEGREE CURRICULUM SOFTWARE ARCHITECTURES Degree in Computer Engineering. Teaching staff: GIL IRANZO, ROSA MARIA GARCIA GONZALEZ, ROBERTO

DEGREE CURRICULUM SOFTWARE ARCHITECTURES Degree in Computer Engineering. Teaching staff: GIL IRANZO, ROSA MARIA GARCIA GONZALEZ, ROBERTO Academic year 2014-15 DEGREE CURRICULUM SOFTWARE ARCHITECTURES Degree in Computer Engineering Teaching staff: GIL IRANZO, ROSA MARIA GARCIA GONZALEZ, ROBERTO Subject's general information Subject name

More information

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION I: OVERVIEW AND HISTORY OF STYLES AND PATTERNS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012

More information

Towards an Automated Pattern Selection Procedure in Software Models

Towards an Automated Pattern Selection Procedure in Software Models Towards an Automated Pattern Selection Procedure in Software Models Alexander van den Berghe, Jan Van Haaren, Stefan Van Baelen, Yolande Berbers, and Wouter Joosen {firstname.lastname}@cs.kuleuven.be IBBT-DistriNet,

More information

Understanding and Using Patterns in Software Development

Understanding and Using Patterns in Software Development Understanding and Using Patterns in Software Development Dirk Riehle and Heinz Züllighoven UBILAB, Union Bank of Switzerland. Bahnhofstrasse 45, CH-8021 Zürich, Switzerland E-mail: riehle@ubilab.ubs.ch

More information

IC-AI 99 502SA Patterns as a Means for Intelligent Software Engineering

IC-AI 99 502SA Patterns as a Means for Intelligent Software Engineering IC-AI 99 502SA Patterns as a Means for Intelligent Software Engineering Patterns as a Means for Intelligent Software Engineering D. Deugo, F. Oppacher, J. Kuester *, I. Von Otte * School of Computer Science,

More information

Twin A Design Pattern for Modeling Multiple Inheritance

Twin A Design Pattern for Modeling Multiple Inheritance Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce

More information

APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL

APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL Saluka R. Kodituwakku 1, Peter Bertok 1, and Liping Zhao 2 1 Department of Computer Science RMIT University, Australia

More information

A Pattern System for Network Management Interfaces

A Pattern System for Network Management Interfaces A Pattern System for Network Management Interfaces Jean Tessier Rudolf K. Keller Abstract: The development of network management interfaces (NMIs) involves a variety of software layers, application programming

More information

SOFTWARE ESTIMATING RULES OF THUMB. Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007

SOFTWARE ESTIMATING RULES OF THUMB. Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007 SOFTWARE ESTIMATING RULES OF THUMB Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007 Abstract Accurate software estimating is too difficult for simple rules of thumb. Yet in spite

More information

SAPM Overview Semester Summary

SAPM Overview Semester Summary SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

Framework Development for Large Systems

Framework Development for Large Systems Framework Development for Large Systems Dirk Bäumer 1, Guido Gryczan 2, Rolf Knoll 3, Carola Lilienthal 2, Dirk Riehle 4, and Heinz Züllighoven 2 Abstract Frameworks are a key asset in large-scale object-oriented

More information

Software Refactoring using New Architecture of Java Design Patterns

Software Refactoring using New Architecture of Java Design Patterns Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:

More information

Patterns of Input Processing Software

Patterns of Input Processing Software 1 Patterns of Input Processing Software Neil B. Harrison Lucent Technologies 11900 North Pecos st. Denver CO 80234 (303) 538-1541 nbharrison@lucent.com Background: Setting the Stage Many programs accept

More information

Framework Development for Large Systems

Framework Development for Large Systems Framework Development for Large Systems Dirk Bäumer RWG Stuttgart Guido Gryczan University of Hamburg Vogt-Kölln-Str. 30 22527 Hamburg Germany Phone: +49-40-54 94-2302 Fax: +49-40-54 94-2303 Email:gryczan@informatik.uni-hamburg.de

More information

Organization. Introduction to Software Engineering

Organization. Introduction to Software Engineering Dr. Michael Eichberg Software Technology Group Department of Computer Science Technische Universität Darmstadt Introduction to Software Engineering Organization Teaser Background Information 3 As long

More information

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS Lech MADEYSKI *, Michał STOCHMIAŁEK Abstract. Architectural design is about decisions which influence characteristics of arising system e.g. maintainability

More information

The Command Dispatcher Pattern

The Command Dispatcher Pattern The Command Dispatcher Pattern Can also be called: Command Evaluator Pattern. Benoit Dupire and Eduardo B Fernandez {bdupire@seatech.fau.edu, ed@cse.fau.edu} Department of Computer Science and Engineering.

More information

Research Topics in Software Engineering

Research Topics in Software Engineering MAP-I Programa Doutoral em Informática Research Topics in Software Engineering Unidade Curricular em Paradigmas da Computação Paradigms of Computation (UCPC) UMinho, FEUP July 23, 2009 Abstract This document

More information

Manager-Agent and Remote Operation: Two Key Patterns for Network Management Interfaces

Manager-Agent and Remote Operation: Two Key Patterns for Network Management Interfaces Manager-Agent and Remote Operation: Two Key Patterns for Network Management Interfaces Jean Tessier* Rudolf K. Keller Département d informatique et de recherche opérationnelle Université de Montréal C.P.

More information

Génie Logiciel et Gestion de Projets. Patterns

Génie Logiciel et Gestion de Projets. Patterns Génie Logiciel et Gestion de Projets Patterns 1 Alexander s patterns Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN 0195024028 Each pattern

More information

Software Development Process

Software Development Process Software Development Process 台 北 科 技 大 學 資 訊 工 程 系 鄭 有 進 教 授 2005 copyright Y C Cheng Software development process Software development process addresses requirements, expectations and realities simultaneously

More information

Automated Software Evolution via Design Pattern Transformations

Automated Software Evolution via Design Pattern Transformations Automated Software Evolution via Design Pattern Transformations Lance Tokuda and Don Batory Department of Computer Sciences University of Texas at Austin Austin, Texas 78712-1188 {unicron, batory@cs.utexas.edu

More information

Pattern Based Transformation and Evolution of Software Systems

Pattern Based Transformation and Evolution of Software Systems Pattern-based Evolution of Software Architectures Isabelle Côté, Maritta Heisel, and Ina Wentzlaff University Duisburg-Essen, Faculty of Engineering, Department of Computational and Cognitive Sciences

More information

Ontological Representations of Software Patterns

Ontological Representations of Software Patterns Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software

More information

Developing Collaborative Environments A Holistic Software Development Methodology Marge Petersen and John Mitchiner Sandia National Laboratories

Developing Collaborative Environments A Holistic Software Development Methodology Marge Petersen and John Mitchiner Sandia National Laboratories Developing Collaborative Environments A Holistic Software Development Methodology Marge Petersen and John Mitchiner Sandia National Laboratories mbpeter@sandia.gov jlmitch@sandia.gov Abstract Sandia National

More information

A First Set of Design Patterns for Algorithm Animation

A First Set of Design Patterns for Algorithm Animation Fifth Program Visualization Workshop 119 A First Set of Design Patterns for Algorithm Animation Guido Rößling CS Department, TU Darmstadt Hochschulstr. 10 64289 Darmstadt, Germany roessling@acm.org Abstract

More information

Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture

Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture M S Rajasree, P Jithendra Kumar Reddy, D Janakiram Distributed & Object Systems Lab Department of Computer Science

More information

A Process View on Architecture-Based Software Development

A Process View on Architecture-Based Software Development A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany

More information

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

An Analysis Pattern for Invoice Processing Eduardo B. Fernandez 1 and Xiaohong Yuan 2

An Analysis Pattern for Invoice Processing Eduardo B. Fernandez 1 and Xiaohong Yuan 2 An Analysis Pattern for Invoice Processing Eduardo B. Fernandez and Xiaohong Yuan 2 Department of Computer Science and Engineering Florida Atlantic University, Boca Raton, FL 2 Department of Computer Science

More information

Section 2.5 Average Rate of Change

Section 2.5 Average Rate of Change Section.5 Average Rate of Change Suppose that the revenue realized on the sale of a company s product can be modeled by the function R( x) 600x 0.3x, where x is the number of units sold and R( x ) is given

More information

270015 - IES - Introduction to Software Engineering

270015 - IES - Introduction to Software Engineering Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 747 - ESSI - Department of Service and Information System Engineering Academic year: Degree: 2015 BACHELOR'S DEGREE IN INFORMATICS

More information

Monitor Object. An Object Behavioral Pattern for Concurrent Programming. Douglas C. Schmidt

Monitor Object. An Object Behavioral Pattern for Concurrent Programming. Douglas C. Schmidt Monitor Object An Object Behavioral Pattern for Concurrent Programming Douglas C. Schmidt schmidt@cs.wustl.edu Department of Computer Science Washington University, St. Louis 1 Intent The Monitor Object

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

Programming Language Constructs as Basis for Software Architectures

Programming Language Constructs as Basis for Software Architectures Programming Language Constructs as Basis for Software Architectures 1 From individual parts to components In the 50s: Machine/Assembler programs: bound to specific hardware In the 60s-70s: Higher programming

More information

Information systems modelling UML and service description languages

Information systems modelling UML and service description languages Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:

More information

Detection of Problems in the Application of Software Process Patterns

Detection of Problems in the Application of Software Process Patterns Detection of Problems in the Application of Software Process Patterns Chintan Amrit & Jos van Hillegersberg Department of IS & CM, BBT, University of Twente, P.O. Box 217,7500 AE Enschede c.amrit, J.vanHillegersberg@utwente.nl

More information

Composing Concerns with a Framework Approach

Composing Concerns with a Framework Approach Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago cac@cs.luc.edu 2 Concurrent

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Software Architecture and Patterns for Electronic Commerce Systems

Software Architecture and Patterns for Electronic Commerce Systems Software Architecture and Patterns for Electronic Commerce Systems André Widhani, Stefan Böge, Andreas Bartelt, and Winfried Lamersdorf University of Hamburg, Department of Computer Science, Distributed

More information

MANAGEMENT S ROLE 1/16/2002 152. Copyright 2001, Net Objectives

MANAGEMENT S ROLE 1/16/2002 152. Copyright 2001, Net Objectives MANAGEMENT S ROLE 1/16/2002 152 Continuous Overtime Is Counterproductive Working more hours does not increase productivity Overwork is usually an indication of something wrong - working more doesn t fix

More information

Eugene Wallingford Department of Computer Science University of Northern Iowa Cedar Falls, Iowa 50614-0507 wallingf@cs.uni.edu

Eugene Wallingford Department of Computer Science University of Northern Iowa Cedar Falls, Iowa 50614-0507 wallingf@cs.uni.edu TOWARD A FIRST COURSE BASED ON OBJECT-ORIENTED PATTERNS Eugene Wallingford Department of Computer Science University of Northern Iowa Cedar Falls, Iowa 50614-0507 wallingf@cs.uni.edu 1 INTRODUCTION Many

More information

A Meeting Room Scheduling Problem

A Meeting Room Scheduling Problem A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 ooinfo@oeng.com http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,

More information

Code Qualities and Coding Practices

Code Qualities and Coding Practices Code Qualities and Coding Practices Practices to Achieve Quality Scott L. Bain and the Net Objectives Agile Practice 13 December 2007 Contents Overview... 3 The Code Quality Practices... 5 Write Tests

More information

CONFLICT PATTERNS: TOWARD IDENTIFYING SUITABLE MIDDLEWARE

CONFLICT PATTERNS: TOWARD IDENTIFYING SUITABLE MIDDLEWARE CONFLICT PATTERNS: TOWARD IDENTIFYING SUITABLE MIDDLEWARE Abstract Architectural patterns aid developers in resolving coarse-grained integration problems among components. These patterns are assembled

More information

Developing Flexible and High-performance Web Servers with Frameworks and Patterns

Developing Flexible and High-performance Web Servers with Frameworks and Patterns Developing Flexible and High-performance Web Servers with Frameworks and Patterns Douglas C. Schmidt schmidt@cs.wustl.edu James C. Hu jxh@cs.wustl.edu Department of Computer Science Washington University

More information

DECORATOR PATTERN IN WEB APPLICATION

DECORATOR PATTERN IN WEB APPLICATION DECORATOR PATTERN IN WEB APPLICATION Viliam Malcher Faculty of Management, Department of Information Systems, Comenius University, 820 05 Bratislava 25, Odbojárov 10, P.O. Box 95, Slovak Republic, Europe

More information

Applying Design Patterns in Distributing a Genetic Algorithm Application

Applying Design Patterns in Distributing a Genetic Algorithm Application Applying Design Patterns in Distributing a Genetic Algorithm Application Nick Burns Mike Bradley Mei-Ling L. Liu California Polytechnic State University Computer Science Department San Luis Obispo, CA

More information

XXI. Object-Oriented Database Design

XXI. Object-Oriented Database Design XXI. Object-Oriented Database Design Object-Oriented Database Management Systems (OODBMS) Distributed Information Systems and CORBA Designing Data Management Classes The Persistent Object Approach The

More information

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2. Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm

More information

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4

Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4 Deployment Pattern Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4 Samsung Electronics 1,2,3, Hanyang University 4 alroad.son 1, jiwon.ss.kim 2, dude.kim 3 @samsung.net, undersense3538@gmail.com 4

More information

Building Systems Using Analysis Patterns Eduardo B. Fernandez Florida Atlantic University Boca Raton, FL ed@cse.fau.edu

Building Systems Using Analysis Patterns Eduardo B. Fernandez Florida Atlantic University Boca Raton, FL ed@cse.fau.edu Building Systems Using Analysis Patterns Eduardo B. Fernandez Florida Atlantic University Boca Raton, FL ed@cse.fau.edu 1. ABSTRACT We consider the use of analysis patterns in the definition of initial

More information

Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal

Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal {Michael.Kircher,Klaus.Jank,Christa.Schwanninger, Michael.Stal}@siemens.com Corporate Technology, Siemens

More information

[2006] IEEE. Reprinted, with permission, from [M. Ye and K. Sandrasegaran, Teaching about Firewall Concepts using the inetwork Simulator, Information

[2006] IEEE. Reprinted, with permission, from [M. Ye and K. Sandrasegaran, Teaching about Firewall Concepts using the inetwork Simulator, Information [2006] IEEE. Reprinted, with permission, from [M. Ye and K. Sandrasegaran, Teaching about Firewall Concepts using the inetwork Simulator, Information Technology Based Higher Education and Training, 2006.

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, 2009 Vol. 8, No. 2, March-April 2009 A Survey of Design Pattern Based Web Applications

More information

Scenario-based Evaluation of Software Architecture Styles from the Security Viewpoint

Scenario-based Evaluation of Software Architecture Styles from the Security Viewpoint International Journal of Computer Sciences and Engineering Open Access Research Paper Volume-4, Issue-04 E-ISSN: 347-693 Scenario-based Evaluation of Software Architecture Styles from the Security Viewpoint

More information

9.2 Summation Notation

9.2 Summation Notation 9. Summation Notation 66 9. Summation Notation In the previous section, we introduced sequences and now we shall present notation and theorems concerning the sum of terms of a sequence. We begin with a

More information

What are the place values to the left of the decimal point and their associated powers of ten?

What are the place values to the left of the decimal point and their associated powers of ten? The verbal answers to all of the following questions should be memorized before completion of algebra. Answers that are not memorized will hinder your ability to succeed in geometry and algebra. (Everything

More information

COORDINATION CONTRACTS AS CONNECTORS IN COMPONENT-BASED DEVELOPMENT

COORDINATION CONTRACTS AS CONNECTORS IN COMPONENT-BASED DEVELOPMENT Integrated Design and Process Technology, IDPT-2002 Printed in the United States of America, June, 2002 2002 Society for Design and Process Science COORDINATION CONTRACTS AS CONNECTORS IN COMPONENT-BASED

More information

An overview to Software Architecture in Intrusion Detection System

An overview to Software Architecture in Intrusion Detection System An overview to Software Architecture in Intrusion Detection System * Mehdi Bahrami 1, Mohammad Bahrami 2 Department of Computer Engineering, I.A.U., Booshehr Branch, Iran Bahrami 1 ;Shayan 2 @LianPro.com

More information

TEACHING AGGREGATE PLANNING IN AN OPERATIONS MANAGEMENT COURSE

TEACHING AGGREGATE PLANNING IN AN OPERATIONS MANAGEMENT COURSE TEACHING AGGREGATE PLANNING IN AN OPERATIONS MANAGEMENT COURSE Johnny C. Ho, Turner College of Business, Columbus State University, Columbus, GA 31907 David Ang, School of Business, Auburn University Montgomery,

More information

How To Write An Architectural Description Framework For Health Care

How To Write An Architectural Description Framework For Health Care MAFIIA - an Architectural Description Framework: Experience from the Health Care Domain Erlend Stav, Ståle Walderhaug, Stein Løkke Tomassen, Lillian Røstad, Nils Brede Moe SINTEF ICT, 7465 Trondheim, Norway

More information

An Introduction to Software Engineering

An Introduction to Software Engineering An Introduction to Software Engineering Software engineering is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it

More information

ABSTRACT. KEYWORDS: analysis patterns, conceptual model, water 1. INTRODUCTION

ABSTRACT. KEYWORDS: analysis patterns, conceptual model, water 1. INTRODUCTION JCS&T Vol. 3 No. April 2003 Conceptual Patterns for Water Resources Information Systems Adriana B. Urciuolo, Rodolfo J. Iturraspe Facultad de Ingeniería, Universidad Nacional de la Patagonia San Juan Bosco

More information

Classification of Fuzzy Data in Database Management System

Classification of Fuzzy Data in Database Management System Classification of Fuzzy Data in Database Management System Deval Popat, Hema Sharda, and David Taniar 2 School of Electrical and Computer Engineering, RMIT University, Melbourne, Australia Phone: +6 3

More information

Categories and Subject Descriptors. General Terms Algorithms, Design, Languages. Keywords Polymorphism, Object-Oriented Programming, Learning

Categories and Subject Descriptors. General Terms Algorithms, Design, Languages. Keywords Polymorphism, Object-Oriented Programming, Learning Variations on a Polymorphic Theme: An Etude for Computer Programming Joseph Bergin Pace University Computer Science New York, NY USA 1 (212) 346 1499 b erginf@p ace.edu ABSTRACT This paper describes a

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

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions

More information

Design Pattern Management System: A Support Tool Based on Design Patterns Applicability

Design Pattern Management System: A Support Tool Based on Design Patterns Applicability Design Pattern Management System: A Support Tool Based on Design Patterns Applicability Zakaria Moudam, Radouan Belhissi, Noureddine Chenfour Computer Science Department Faculty of Sciences Dhar Mehraz

More information