Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns

Size: px
Start display at page:

Download "Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns"

Transcription

1 rel. 1.7 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno Corso di Ingegneria del Software Pattern seconda parte Renato Conte - Pattern II- 1/48 - Types of software patterns design patterns (software design) architectural (systems design) [POSA]* design (micro-architectures) [Gamma-GoF] idioms (low level)... analysis patterns (recurring & reusable analysis models) [Flower] organization patterns (structure of organizations/projects) process patterns (software process design) domain-specific patterns * Pattern Oriented Software Architecture Renato Conte - Pattern II- 2/48 - Architectural Patterns Types of patterns Expresses a fundamental structural organization or schema for software systems Design Patterns Provides a scheme for refining the subsystems or components of a software system, or the relationships between them. It describes a commonly-recurring structure of communicating components that solves a general design problem within a particular context....other good guidance... some GRASP Idioms An idiom describes how to implement particular aspects of components or the relationships between them using the features of the given language. An Idiom is a low-level pattern specific to a programming language. Renato Conte - Pattern II- 3/48 - Renato Conte - Pattern II- 4/48 -

2 GRASP General Responsibility Assignment Software Patterns (Pattern generali per l assegnamento delle responsabilità nel software) Which class, in the general case is responsible? You want to assign a responsibility to a class You want to avoid or minimize additional dependencies You want to maximise cohesion and minimise coupling You want to increase reuse and decrease maintenance You want to maximise understandability..etc. Low Coupling Problem: To support low dependency and increased reuse? Solution: Assign responsibilities so that coupling remains low. Renato Conte - Pattern II- 5/48 - Renato Conte - Pattern II- 6/48 - Coupling? TypeX? TypeY In object oriented languages, common form of coupling from TypeX to TypeY include: TypeX has an attribute (data member or instance variable) that refers to a TypeY instance, or TypeY itself. TypeX has a method which references an instance of TypeY, or TypeY itself, by any means. These typically include a parameter or local variable of type TypeY, or the object returned from a message being an instance of TypeY. TypeX is a direct or indirect subclass of TypeY. TypeY is an interface, and TypeX implements that interface. Coupling? Coupling is a measure of how strongly one class is connected to, has knowledge of, or relies upon other classes. A class with high coupling relies upon many other classes; this is undesirable because: Changes in related classes force local changes; Harder to understand in isolation; Harder to reuse because its use requires the additional presence of classes it is dependent upon Renato Conte - Pattern II- 7/48 - Renato Conte - Pattern II- 8/48 -

3 Low coupling High Cohesion How can we make classes independent of other classes? Classes are easier to maintain Easier to reuse Changes are localized Problem: To keep complexity manageable? Solution: Assign responsibilities so that cohesion remains high. Renato Conte - Pattern II- 9/48 - Renato Conte - Pattern II- 10/48 - Cohesion Cohesion is a measure of how strongly related and focused the responsibilities of a class are. A class with low cohesion does many unrelated things or does too much work. Low cohesion brings the following problems: hard to comprehend hard to reuse hard to maintain delicate; constantly effected by change Some examples: Very Low Cohesion: A Class is solely responsible for many things in very different functional areas Low Cohesion: A class has sole responsibility for a complex task in one functional area. High Cohesion. A class has moderate responsibilities in one functional area and collaborates with classes to fulfil tasks. Renato Conte - Pattern II- 11/48 - Renato Conte - Pattern II- 12/48 -

4 High cohesion Classes are easier to maintain Easier to understand Often support low coupling Supports reuse because of fine grained responsibility Renato Conte - Pattern II- 13/48 - Renato Conte - Pattern II- 14/48 - Architectural Patterns Architectural patters represent the highest-level patterns in our pattern system. They help you to specify the fundamental structure of an application. Architecture defined Architecture establishes the context for design and implementation Every development activity that follows is governed by this structure-for example, the detailed design of subsystems, the communication and collaboration between different parts of the system, and its later extension. Each architectural pattern helps you to achieve a specific global system property, such as the adaptability of the user interface. CODE design implementation architecture Architectural decisions are the most fundamental decisions; changing them will have significant ripple effects. Renato Conte - Pattern II- 15/48 - Renato Conte - Pattern II- 16/48 -

5 pattern architetturale [Buschmann+al., 1996] Un pattern architetturale esprime un'organizzazione fondamentale della struttura o lo schema di un sistema software. Definisce un insieme di sotto-sistemi predefiniti, specifica le loro responsabilità, e include regole e linee guida per organizzare le relazioni tra di loro. Architectural Patterns adaptable systems Reflection Microkernel pattern high-level system subdivisions Pipes and Filters interactive systems Broker Pattern Layers pattern Blackboard pattern Model View Controller Presentation-Abstraction-Control distributed systems Renato Conte - Pattern II- 17/48 - Renato Conte - Pattern II- 18/48 - Layers examples Layers pattern The Layers pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction Apart from the usual advantages of modular software with well defined interfaces, the tier architecture is intended to allow any of the tiers to be upgraded or replaced independently as requirements or technology change. networking protocols Renato Conte - Pattern II- 19/48 - Renato Conte - Pattern II- 20/48 -

6 multi-layer (multi-tier) Layered Architecture ( & reusable objects) Presentation Tier Application Tier Logic Tier Business Logic Tier Data Tier Application-specific layer Application Application Application Car Sales Management Presentazione GUI Logica Applicativa Oggetti del dominio del problema Vendita Pagamenti Oggetti dei servizi per l accesso ai dati Database Broker Security Manager Memorizzazione Dati Database Application-general layer Middleware layer -software layer Customer profile Order management Shopping cart Credit card authorization Object persistency mechanism Renato Conte - Pattern II- 21/48 - Renato Conte - Pattern II- 22/48 - Model-View-Controller pattern MVC: diagramma delle classi The Model-View-Controller pattern (MVC) divides an interactive application into three components: The model contains the core functionality and data. Views display information to the user Controllers handle user input Views and controllers together comprise the user interface. A change-propagation mechanism ensures consistency between the user interface and the model Renato Conte - Pattern II- 23/48 - Renato Conte - Pattern II- 24/48 -

7 Model-View-Controller :View User Actions Get Data State Change Notification :Controller User Event Model Encapsulates Data presented by view View Renders Model Data Controller Model Controller View Controller Responds to user actions :Model Call Model Action Model is loosely coupled from view State change communicated through notification. Multiple views can be implemented for same model Renato Conte - Pattern II- 26/48 - Esempio di diagramma di comunicazione per un MVC Renato Conte - Pattern II- 27/48 - Renato Conte - Pattern II- 28/48 -

8 Presentation-Abstraction-Control pattern PAC The Presentation-Abstraction-Control pattern (PAC) defines a structure for interactive software systems in the form of a hierarchy of cooperating agents. Every agent is responsible for a specific aspect of the application's functionality and consists of three components: presentation, abstraction, and control. This subdivision separates the human-computer interaction aspects of the agent from its functional core and its communication with other agents. hierarchical structure of agents Renato Conte - Pattern II- 29/48 - Renato Conte - Pattern II- 30/48 - Presentation-Abstraction-Control PAC Renato Conte - Pattern II- 31/48 - Renato Conte - Pattern II- 32/48 -

9 pac Broker pattern The Broker pattern can be used to structure distributed software systems with decoupled components that interact by remote service invocations. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions. CORBA Browser Web Renato Conte - Pattern II- 33/48 - Renato Conte - Pattern II- 34/48 - Blackboard pattern The Blackboard pattern is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution. Renato Conte - Pattern II- 35/48 - Renato Conte - Pattern II- 36/48 -

10 blackboard blackboard Renato Conte - Pattern II- 37/48 - Renato Conte - Pattern II- 38/48 - Reflection pattern reflection The Reflection pattern provides a mechanism for changing structure and behavior of software systems dynamically. It supports the modification of fundamental aspects, such as type structures and function call mechanisms. In this pattern, an application is split into two parts. A meta level provides information about selected system properties and makes the software self-aware. A base level includes the application logic. Its implementation builds on the meta level. Changes to information kept in the meta level affect subsequent base-level behavior. Renato Conte - Pattern II- 39/48 - Renato Conte - Pattern II- 40/48 -

11 Microkernel pattern microkernel The Microkernel pattern applies to software systems that must be able to adapt to changing system requirements. It separates a minimal functional core from extended functionality and customer-specific parts. The microkernel also serves as a socket for plugging in these extensions and coordinating their collaboration. Renato Conte - Pattern II- 41/48 - Renato Conte - Pattern II- 42/48 - Pipes and Filters pattern The Pipes and Filters pattern provides a structure for systems that process a stream of data. Each processing step is encapsulated in a filter component. Data is passed through pipes between adjacent filters. Recombining filters allows you to build families of related systems. Renato Conte - Pattern II- 44/48 -

12 pipe pipe Renato Conte - Pattern II- 45/48 - Renato Conte - Pattern II- 46/48 - Bibliografia Craig Larman Applying UML and Patterns An Introduction to Object-Oriented Analysis and Design and Iterative Development Edition Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software Addison-Wesley Professional Computing Series F. Buschmann,R. Meunier,H. Rohnert,P. Sornmerlad,M. Stal PATTERN-ORIENTED SOFTWARE ARCHITECTURE John Willey & sons Renato Conte - Pattern II- 47/48 - Web reference The Patterns Home Page - hillside.net/patterns/ Hosted by The Hillside Group provides information about patterns, links to online patterns, papers and books dealing with patterns, and patterns-related mailing lists. The Patterns-Discussion - g.oswego.edu/dl/pd-faq/pd-faq.html FAQ maintained by Doug Lea provides a very thorough and highly readable FAQ about patterns. Patterns and Software - Essential Concepts and Terminology by Brad Appleton provides another thorough and readable account of the patterns field. Patterns - home.earthlink.net/~huston2/dp/patterns.html Dozens of 1-page examples in C++ and Java. Before-and-After refactoring examples. Book summaries. Renato Conte - Pattern II- 48/48 -

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 7 GoV Patterns Architectural Part 1 1 GoV Patterns for Software Architecture According to Buschmann et al.: A pattern for software architecture

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

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

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

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

Architectural Patterns: From Mud to Structure

Architectural Patterns: From Mud to Structure DCC / ICEx / UFMG Architectural Patterns: From Mud to Structure Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo From Mud to Structure Layered Architecture It helps to structure applications that

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management GRASP. Davide Rossi Dipartimento di Informatica Università di Bologna

Ingegneria del Software Corso di Laurea in Informatica per il Management GRASP. Davide Rossi Dipartimento di Informatica Università di Bologna Ingegneria del Software Corso di Laurea in Informatica per il Management GRASP Davide Rossi Dipartimento di Informatica Università di Bologna Responsibility-driven design How to use OO principles to design

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

PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS

PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS M. Taleb, A. Seffah Human-Centred Software Engineering Group Concordia University, Montreal, Quebec, Canada Phone: +1 (514) 848 2424 ext 7165 and/or ext

More information

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE

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

Programma corso di formazione J2EE

Programma corso di formazione J2EE Programma corso di formazione J2EE Parte 1 Web Standard Introduction to Web Application Technologies Describe web applications Describe Java Platform, Enterprise Edition 5 (Java EE 5) Describe Java servlet

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

Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340

Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340 XIX. Software Architectures Software Architectures UML Packages Client- vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture

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

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

Customer Bank Account Management System Technical Specification Document

Customer Bank Account Management System Technical Specification Document Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6

More information

Client-server 3-tier N-tier

Client-server 3-tier N-tier Web Application Design Notes Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 642 Software Engineering for the World Wide Web N-Tier Architecture network middleware middleware Client Web Server Application

More information

Architectural Design

Architectural Design Software Engineering Architectural Design 1 Software architecture The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural

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

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

Pattern-Oriented Architecture for Web Applications

Pattern-Oriented Architecture for Web Applications Pattern-Oriented Architecture for Web Applications M. Taleb Human-Centred Software Engineering Group Concordia University, Montreal, Quebec, Canada Phone: +1 (514) 848 2424 ext 7165 Fax: +1 (514) 848-3028

More information

September 18, 2014. Modular development in Magento 2. Igor Miniailo Magento

September 18, 2014. Modular development in Magento 2. Igor Miniailo Magento September 18, 2014 Modular development in Magento 2 Igor Miniailo Magento Agenda 1 Magento 2 goals 2 Magento 1 modules 3 Decoupling techniques 4 Magento 2 is it getting better? 5 Modularity examples Magento

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

Structuring Product-lines: A Layered Architectural Style

Structuring Product-lines: A Layered Architectural Style Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland

More information

Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/

Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Architecture Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Some slides were adapted from L. Osterweil, B. Meyer, and P. Müller material Reda Bendraou LI386-S1

More information

Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model

Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model Software Design Design (I) Software Design is a process through which requirements are translated into a representation of software. Peter Lo CS213 Peter Lo 2005 1 CS213 Peter Lo 2005 2 Relationships between

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

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

[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

Understanding Architectural Assets

Understanding Architectural Assets IBM Software Group Understanding Architectural Assets Peter Eeles peter.eeles@uk.ibm.com 2008 IBM Corporation Agenda IBM Software Group Rational software Introduction Sources of architecture Types of architectural

More information

Client-Server Applications

Client-Server Applications Client-Server Applications Prof. Sanjeev Setia Distributed Software Systems CS 707 Distributed Software Systems 1 Client Server Systems Distributed Software Systems 2 1 Client/Server Application Distributed

More information

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

Literature Review Service Frameworks and Architectural Design Patterns in Web Development Literature Review Service Frameworks and Architectural Design Patterns in Web Development Connor Patrick ptrcon001@myuct.ac.za Computer Science Honours University of Cape Town 15 May 2014 Abstract Organizing

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

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:

More information

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

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

More information

Construction Principles and Design Patterns. Flyweight, Bridge, Builder

Construction Principles and Design Patterns. Flyweight, Bridge, Builder Construction Principles and Design Patterns Flyweight, Bridge, Builder 1 The Flyweight Design Pattern: Structure Use: To avoid employing a large number of objects with similar state When objects with intrinsic

More information

Definition: Software Architecture

Definition: Software Architecture Application Servers G22.3033-0 Session 2 Sub-Topic 2 Enterprise Architecture Frameworks (EAFs) & Pattern Driven EAFs Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute

More information

Web Application Architectures

Web Application Architectures Web Engineering Web Application Architectures Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering

More information

Software Life-Cycle Management

Software Life-Cycle Management Ingo Arnold Department Computer Science University of Basel Theory Software Life-Cycle Management Architecture Styles Overview An Architecture Style expresses a fundamental structural organization schema

More information

Service Oriented Architecture 1 COMPILED BY BJ

Service Oriented Architecture 1 COMPILED BY BJ Service Oriented Architecture 1 COMPILED BY BJ CHAPTER 9 Service Oriented architecture(soa) Defining SOA. Business value of SOA SOA characteristics. Concept of a service, Enterprise Service Bus (ESB) SOA

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

Designing framework for web development

Designing framework for web development Designing framework for web development Mohammad Hafijur Rahman Department of Informatics and Media Degree project 30 credits. Autumn term 2011 Supervisor: Dr. Jonas Sjöström Abstract In this software

More information

Developing GUI Applications: Architectural Patterns Revisited

Developing GUI Applications: Architectural Patterns Revisited Developing GUI Applications: Architectural Patterns Revisited A Survey on MVC, HMVC, and PAC Patterns Alexandros Karagkasidis karagkasidis@gmail.com Abstract. Developing large and complex GUI applications

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

More information

A HIERARCHICAL TASK ANALYSIS SOFTWARE TOOL BASED ON THE MODEL-VIEW-CONTROLLER ARCHITECTURE PATTERN. By Ateet Vora. A Thesis submitted to the

A HIERARCHICAL TASK ANALYSIS SOFTWARE TOOL BASED ON THE MODEL-VIEW-CONTROLLER ARCHITECTURE PATTERN. By Ateet Vora. A Thesis submitted to the A HIERARCHICAL TASK ANALYSIS SOFTWARE TOOL BASED ON THE MODEL-VIEW-CONTROLLER ARCHITECTURE PATTERN By Ateet Vora A Thesis submitted to the Graduate School-New Brunswick Rutgers, The State University of

More information

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business Software Engineering Design Theory and Practice Carlos E. Otero CRC Press Taylor & Francis Croup Boca Raton London New York CRC Press is an imprint of the Taylor St Francis Croup, an Informa business AN

More information

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable

More information

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering. Service Oriented Architecture Definition (1) Definitions Services Organizational Impact SOA principles Web services A service-oriented architecture is essentially a collection of services. These services

More information

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Component-Based Software Engineering Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain that CBSE is concerned with developing standardised components

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

Service Oriented Architecture (SOA) An Introduction

Service Oriented Architecture (SOA) An Introduction Oriented Architecture (SOA) An Introduction Application Evolution Time Oriented Applications Monolithic Applications Mainframe Client / Server Distributed Applications DCE/RPC CORBA DCOM EJB s Messages

More information

UML other structural. diagrams. (Implementation Diagrams UML 1.5) Università di Padova. Facoltà di Scienze MM.FF.NN. Informatica - anno 2009-10

UML other structural. diagrams. (Implementation Diagrams UML 1.5) Università di Padova. Facoltà di Scienze MM.FF.NN. Informatica - anno 2009-10 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2009-10 Corso di Ingegneria del Software - B UML other structural diagrams (Implementation Diagrams UML 1.5) v 2.3 Renato Conte - UML:

More information

Distributed Objects and Components

Distributed Objects and Components Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java

More information

Service-Oriented Architecture and Software Engineering

Service-Oriented Architecture and Software Engineering -Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based

More information

Component Based Development Methods - comparison

Component Based Development Methods - comparison Component Based Development Methods - comparison Dan Laurenţiu Jişa Abstract: This paper realizes a comparison among three of the best known component based development methods, emphazing on the earlier

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

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB) U III 1 Design Processes Design Axioms Class Design Object Storage Object Interoperability Design Processes: - o During the design phase the classes identified in OOA must be revisited with a shift in

More information

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Implementing reusable software components for SNOMED CT diagram and expression concept representations 1028 e-health For Continuity of Care C. Lovis et al. (Eds.) 2014 European Federation for Medical Informatics and IOS Press. This article is published online with Open Access by IOS Press and distributed

More information

Commercial software development with the help of J2EE architecture and MVC

Commercial software development with the help of J2EE architecture and MVC Journal of The International Association of Advanced Technology and Science Commercial software development with the help of J2EE architecture and MVC Anup Kumar Ranjeeta chauhan 1. Abstract The Java 2

More information

Application of MVC Platform in Bank E-CRM

Application of MVC Platform in Bank E-CRM Application of MVC Platform in Bank E-CRM Liancai Hao (School of Management, Harbin Institute of Technology, Harbin P. R. China 150001) Haolc@hit.edu.cn Abstract Customer relationship management (CRM)

More information

Query Engine. A Pattern for Performing Dynamic Searches in Information Systems. Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.

Query Engine. A Pattern for Performing Dynamic Searches in Information Systems. Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen. 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

COSC 3351 Software Design. Architectural Design (II) Edgar Gabriel. Spring 2008. Virtual Machine

COSC 3351 Software Design. Architectural Design (II) Edgar Gabriel. Spring 2008. Virtual Machine COSC 3351 Software Design Architectural Design (II) Spring 2008 Virtual Machine A software system of virtual machine architecture usually consists of 4 components: Program component: stores the program

More information

Structural Patterns. Structural Patterns. Fritz Solms. October 16, 2015

Structural Patterns. Structural Patterns. Fritz Solms. October 16, 2015 Structural Patterns Fritz Solms October 16, 2015 What are structural patterns What are structural patterns? Choice of architectural patterns one of the central architectural decisions. typically wide-ranging

More information

Software Engineering

Software Engineering Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in

More information

GenericServ, a Generic Server for Web Application Development

GenericServ, a Generic Server for Web Application Development EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student tawbi@irit.fr Bilal CHEBARO Assistant professor bchebaro@ul.edu.lb Abstract

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

A Brief Analysis of Web Design Patterns

A Brief Analysis of Web Design Patterns A Brief Analysis of Web Design Patterns Ginny Sharma M.Tech Student, Dept. of CSE, MRIU Faridabad, Haryana, India Abstract Design patterns document good design solutions to a recurring problem in a particular

More information

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment 1 2010. Marque Browne 0814547. Manuel Honegger - 0837997

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment 1 2010. Marque Browne 0814547. Manuel Honegger - 0837997 1 Swirl Multiplayer Gaming Simplified CS4512 Systems Analysis and Design Assignment 1 2010 Marque Browne 0814547 Manuel Honegger - 0837997 Kieran O' Brien 0866946 2 BLANK MARKING SCHEME 3 TABLE OF CONTENTS

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

Click DVDs. Just click to pick. CS4125 Systems Analysis and Design Chantelle Geoghegan - 0544981 Danielle Frawley- 0545511

Click DVDs. Just click to pick. CS4125 Systems Analysis and Design Chantelle Geoghegan - 0544981 Danielle Frawley- 0545511 Click DVDs Just click to pick CS4125 Systems Analysis and Design Chantelle Geoghegan - 0544981 Danielle Frawley- 0545511 BLANK MARKING SCHEME CS4125: Systems Analysis Assignment 1: Semester II, 2008-2009

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

Robust Object Oriented System Analysis

Robust Object Oriented System Analysis Robust Object Oriented System Analysis Dr Jie Zhao, Dunstan Thomas Consulting Summary Uses cases are widely accepted as the best approach to capturing system requirements, in particular, functional requirements.

More information

Experiences with ALM tools in Software Engineering course

Experiences with ALM tools in Software Engineering course Faculty of Mathematics, University of Belgrade 1/35 Vladimir Filipović Experiences with ALM tools in Software Engineering course Outline 2/35 Software Engineering course entitled Software development 2

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

Distributed systems. Distributed Systems Architectures

Distributed systems. Distributed Systems Architectures Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined

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

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

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

Moving from EAI to SOA An Infosys Perspective

Moving from EAI to SOA An Infosys Perspective Moving from EAI to SOA An Infosys Perspective Manas Kumar Sarkar Over years traditional Enterprise Application Integration (EAI) has provided its benefits in terms of solution re-use, application decoupling

More information

Lesson 18 Web Services and. Service Oriented Architectures

Lesson 18 Web Services and. Service Oriented Architectures Lesson 18 Web Services and Service Oriented Architectures Service Oriented Architectures Module 4 - Architectures Unit 1 Architectural features Ernesto Damiani Università di Milano A bit of history (1)

More information

Architectural patterns

Architectural patterns Open Learning Universiteit Unit 3 Learning Unit 3 Architectural patterns Contents Introduction............................................... 35 3.1 Patterns..............................................

More information

Service Oriented Architectures

Service Oriented Architectures 8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ The context for SOA A bit of history

More information

Server-Side Scripting and Web Development. By Susan L. Miertschin

Server-Side Scripting and Web Development. By Susan L. Miertschin Server-Side Scripting and Web Development By Susan L. Miertschin The OOP Development Approach OOP = Object Oriented Programming Large production projects are created by teams Each team works on a part

More information

Developing Mobile GUIs

Developing Mobile GUIs C HAPTER 6 Developing Mobile GUIs The rose and the thorn, and sorrow and gladness are linked together. Saadi 6.1 INTRODUCTION In Chapter 5, we saw why and how to build generic user interfaces. The two

More information

XFlash A Web Application Design Framework with Model-Driven Methodology

XFlash A Web Application Design Framework with Model-Driven Methodology International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,

More information

10 Years of Hype Cycles - Do We Forget Knowledge?

10 Years of Hype Cycles - Do We Forget Knowledge? 10 Years of Hype Cycles - Do We Forget Knowledge? Aaron McConnell Research Scientist IU-ATC School of Computing and Information Engineering University of Ulster at Coleraine Northern Ireland Aaron McConnell

More information

Java Technology in the Design and Implementation of Web Applications

Java Technology in the Design and Implementation of Web Applications Java Technology in the Design and Implementation of Web Applications Kavindra Kumar Singh School of Computer and Systems Sciences Jaipur National University Jaipur Abstract: This paper reviews the development

More information

Implementation of Model-View-Controller Architecture Pattern for Business Intelligence Architecture

Implementation of Model-View-Controller Architecture Pattern for Business Intelligence Architecture Implementation of -- Architecture Pattern for Business Intelligence Architecture Medha Kalelkar Vidyalankar Institute of Technology, University of Mumbai, Mumbai, India Prathamesh Churi Lecturer, Department

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

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

P09. Architecture Patterns

P09. Architecture Patterns Software Architecture Theory P09. Architecture Patterns 2014 Sungwon Kang Sungwon Kang 1 9. 아키텍처 패턴 9.1 정의 및 기술방법 9.2 아키텍처 패턴의 종류 9.3 아키텍처 패턴의 적용 9.4 아키텍처 스타일과 아키텍처 패턴의 비교 9.5 아키텍처 패턴과 디자인 패턴의 비교 Sungwon

More information

System for Distributed Project Management over the Internet: PI-CEE

System for Distributed Project Management over the Internet: PI-CEE UDC 621.395.74:681.3.068 System for Distributed Project Management over the Internet: PI-CEE VTakao Okubo VTakahide Matsutsuka VHirotaka Hara (Manuscript received June 21, 2000) Rapid information sharing

More information

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer) Software Architecture New wine in old bottles? (i.e., software architecture global design?, architect designer) Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural

More information

A Java Framework for Multi-Tier Web-Centric Applications Development

A Java Framework for Multi-Tier Web-Centric Applications Development 1 A Java Framework for Multi-Tier Web-Centric Applications Development Davide Brugali, Giuseppe Menga, and Franco Guidi-Polanco Abstract Web-centric applications can be understood as middle-size applications

More information

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture 1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté

More information

Definition of SOA. Capgemini University Technology Services School. 2006 Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2

Definition of SOA. Capgemini University Technology Services School. 2006 Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2 Gastcollege BPM Definition of SOA Services architecture is a specific approach of organizing the business and its IT support to reduce cost, deliver faster & better and leverage the value of IT. November

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

Architectural Design with Visualization Patterns

Architectural Design with Visualization Patterns Architectural Design with Visualization Patterns Markus Knauß Institute of Software Technology, Software Engineering Research Group University of Stuttgart, Germany knauss@informatik.uni-stuttgart.de Abstract

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information