Génie Logiciel et Gestion de Projets. Patterns

Size: px
Start display at page:

Download "Génie Logiciel et Gestion de Projets. Patterns"

Transcription

1 Génie Logiciel et Gestion de Projets Patterns 1

2 Alexander s patterns Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without doing it the same way twice Alexander uses this as part of the solution to capture the quality without a name 2

3 Illustrating Recurring Patterns... 3

4 Essential Elements in a Pattern Pattern name Increase of design vocabulary Problem description When to apply it, in what context to use it Solution description (generic!) The elements that make up the design, their relationships, responsibilities, and collaborations Consequences Results and trade-offs of applying the pattern 4

5 Roadmap Patterns in different contexts: design patterns analysis patterns architectural patterns reengineering patterns 5

6 Alert! Do not overreact seeing all these patterns! Do not apply too many patterns! Look at the trade-offs! Most patterns makes systems more complex! but address a certain need. As always: do good modeling. then see whether patterns can help, and where. 6

7 Design Patterns

8 Design Patterns A Design Pattern is a pattern that captures a solution to a recurring design problem It is not a pattern for implementation problems It is not a ready-made solution that has to be applied cfr Rational Modeler, where patterns are available as preconstructed class diagrams, even though in literature the class diagrams are to illustrate the pattern! 8

9 Design Patterns Example: We are implementing a drawing application. The application allows the user to draw several kinds of figures (circles, squares, lines, polymorphs, bezier splines). It also allows to group these figures (and ungroup them later). Groups can then be moved around and are treated like any other figure. Look at Composite Design Pattern 9

10 Patterns in Software Design A design pattern is a description of communicating objects and classes that are customized to solve a general design problem in a particular context. 10

11 Pattern structure A design pattern is a kind of blueprint Consists of different parts All of these parts make up the pattern! When we talk about the pattern we therefore mean all of these parts together not only the class diagram... 11

12 Why Patterns? Smart Elegant solutions that a novice would not think of Generic Independent on specific system type, language Allthough slightly biased towards C++ Well-proven Successfully tested in several systems Simple Combine them for more complex solutions 12

13 Design Patterns in Smalltalk MVC Model/View/Control is a triad of classes used to build interactive user interfaces in Smalltalk-80 Model: the application objects View: a screen presentation of application objects Controller: how the system reacts to user input 3 well known design patterns appear: Observer: MVC decouples views and models by establishing a subscribe/ notify protocol between them. Composite: MVC supports nested views. Strategy: MVC encapsulates the response mechanism to user input in a controller object and allows to associate a controller with a view 13

14 MVC example 14

15 Relationships in MVC View model Model controller dependents model view Controller 15

16 Categories of Design Patterns Creational Patterns Instantiation and configuration of classes and objects Structural Patterns usage of classes and objects in larger structures, separation of interfaces and implementation. Behavioural Patterns Algorithms and division of responsibility 16

17 Design Pattern Relationships 17

18 Design Patterns: Behavioural Patterns

19 Behavioural Patterns 11 patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor 19

20 Observer Pattern Intent: Assume a one to many relationship between objects, when one changes the dependents must be updated 20

21 Observer Pattern: Structure 21

22 Applying the Observer When reading the intent and need minimal and abstract coupling between Subject and Observer... So all our problems are solved, no? Well... mapping subjects to their observers who triggers the updates encapsulating complex update semantics the pull and push model 22

23 Observer Discussions Mapping subjects to their observer: the Subject keeps explicit references to the Observers it should notify or some associative lookup (e.g. a hash table) is installed; memory/time trade off must be made Who triggers the updates : have all state changing operations on Subject call notify after the subject s state is changed; make clients responsible for calling notify at the right time; 23

24 Observer Discussions Avoiding observer-specific update protocols, the pull and the push model: In the push model the Subject sends its Observers detailed information on what is changed; In the pull model the Subject sends nothing but the most minimal notification and the Observers ask for details explicitly; Encapsulate complex update semantics: install an explicit change manager that manages the Subject-Observer relationships and defines a particular update strategy. 24

25 25

26 Strategy Pattern Intent: Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. 26

27 Strategy Pattern: Structure 27

28 Applying the Strategy Many different classes differ only in their behavior; using Strategy provides a way to configure a class with one of many behaviors Many different variants of an algorithm are needed; using Strategy the variants can be implemented as a class hierarchy of algorithms The algorithms use data that clients should not know about; using Strategy avoids exposing complex, algorithm specific data 28

29 Advanced Strategy Pattern Discussions + Hierarchies of Strategy classes define a family of algorithms or behaviors to reuse: Inheritance can factor out common functionality of the algorithms + It is an alternative to subclassing: using a hierarchy of Context classes to implement the variations in behavior. The behavior is not hard-wired in the context so the algorithm can vary independently of the Context. + It is an alternative to using conditional statements for selecting desired behavior + Can offers a choice of implementations for the same behavior (e.g. space and time tradeoffs) 29

30 Advanced Strategy Pattern Discussions - Clients must be aware of different Strategies. The clients must understand the difference amongst what is offered to be able to select the appropriate one. Therefore the pattern should only be used when the variation in algorithm (implementation) is relevant for the client. - There is some communication overhead between Strategy and Context. Strategy defines a (general) interface. Many of the simpler algorithms will not need all the information that is passed. - The number of objects in the application increases. Sometimes this overhead can be reduced when ConcreteStrategies can be implemented by stateless objects that can be shared. 30

31 Visitor Pattern Intent: Represent an operation to be performed on the elements of an object structure in a class separate from the elements themselves. Visitor lets you define a new operation without changing the classes of the elements on which it operates. 31

32 The Visitor Pattern: Structure Client AbstractVisitor visitelementa: visitelementb: Visitor1 visitelementa: visitelementb: Visitor1 visitelementa: visitelementb: AbstractElement acceptvisitor: ElementA acceptvisitor: operationa ElementB acceptvisitor: operationb avisitor visitelementa: self avisitor visitelementb: self 32

33 Applying the Visitor When reading the intent and seeing the structure we can use the visitor in our design... So all our problems are solved, no? Well... when to use a visitor control over item traversal choosing the granularity of visitor methods implementation tricks 33

34 When to use a Visitor Use a Visitor: when the operations on items change a lot. Do not use a visitor: when the items you want to visit change a lot. Question: But how do we know what to choose up-front? 34

35 Advanced Visitor Discussions When looking more closely at the visitor and its implementation, we can discuss a number of things in more detail: Who controls the traversal? Implementation tricks 35

36 Controlling the traversal Somewhere in the visitor, items are traversed. Different places where the traversal can be implemented: in the visitor on the items hierarchy 36

37 Traversal on the Visitor Number acceptvisitor:... Expression acceptvisitor: Plus acceptvisitor:... Operation left right acceptvisitor:... Times acceptvisitor:... Printer visitnumber: visitoperation: visitplus: visittimes: Visitor visitnumber: visitoperation: visitplus: visittimes: Evaluator visitnumber: visitoperation: visitplus: visittimes: avisitor visitplus: self aplus left acceptvisitor: self. self printplus. aplus right acceptvisitor: self. l r l := aplus left acceptvisitor: self. r := aplus right acceptvisitor: self. ^l + r 37

38 Traversel on the items Number acceptvisitor:... Expression acceptvisitor: Plus acceptvisitor:... Operation left right acceptvisitor:... Times acceptvisitor:... Printer visitnumber: visitoperation: visitplus: visittimes: Visitor visitnumber: visitoperation: visitplus: visittimes: Evaluator numberstack visitnumber: visitoperation: visitplus: visittimes: ^self sumstack self left visit: avisitor. self right visit: avisitor. avisitor visitplus: self. self push: anumber 38

39 Implementation tricks You can implement it as we have shown before. But notice the general structure of the methods! This can be taken as advantage: code can be generated for a visitor. the method can be performed/invoked But take care: only works when there is a full correspondence. can make the code hard to understand. 39

40 Using #perform: ^avisitor perform: ('visit', self class name, ':') assymbol with: self... Number Expression acceptvisitor:... Plus Operation left right Times Printer visitnumber: visitoperation: visitplus: visittimes: Visitor visitnumber: visitoperation: visitplus: visittimes: Evaluator visitnumber: visitoperation: visitplus: visittimes: 40

41 Design Patterns: Structural Patterns

42 Structural Patterns 7 patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy 42

43 Composite Pattern Intent: Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. 43

44 The Composite Pattern Structure 44

45 When to use a Composite? you want to represent part-whole hierarchies of objects you want clients to be able to ignore the difference between compositions of objects and individual objects. Clients will treat all objects in the composite structure uniformly. 45

46 Composite Pattern: Participants Component: declares the interface for objects in the composition implements default behavior for the interface common to all objects declares an interface for accessing and managing child components (optional) defines/implements an interface for accessing a component s parent Leaf: defines behavior for primitive objects in the composition 46

47 Composite Pattern: Participants Composite: defines behavior for components having children stores child components implements child access and management operations in the component interface Client: manipulates objects in the composition through the component interface 47

48 48

49 Composite Pattern: Collaboration Clients use the Component class interface to interact with objects in the composition If the recipient is a Leaf, the request is handled directly If the recipient is a Composite the request is usually forwarded to child components, some additional operations before and/or after the forwarding can happen 49

50 Composite Pattern: Consequences + Makes the Client simple: clients can treat composite structures and individual objects uniformly, clients normally don t know and should not care whether they are dealing with a leaf or a composite + Makes it easier to add new types of components: client code works automatically with newly defined Composite or Leaf subclasses - Can make a design overly general: the disadvantage of making it easy to add new components is that it is difficult to restrict the components of a composite, sometimes you want a composite to have only certain types of children, with the Composite Patterns you cannot rely on the type system to enforce this for you, you have to implement and use run-time checks 50

51 Advanced Composite Discussions When looking more closely at the composite and its implementation, we can discuss a number of things in more detail: Who is in charge of child management? Do we need explicit parent references? 51

52 Child Management Where to define the child management operations? Defining these operations at the root of the class hierarchy gives transparency because you can treat all components uniformly. It costs safety because any attempt to remove or add object from leaves give compilation errors. But loss of transparency because leaves and composites have different interfaces. this must be captured in a default implementation: do nothing or throw error??? 52

53 Child Management The datastructure for storing children a variety of datastructures is available: lists, trees, arrays, hash tables, the choice depends on efficiency; alternatively each child can be kept in a separate instance variable, all access and management operations must then be implemented on each Composite subclass Child ordering: when child order is an issue the child access and management interface must be designed carefully to manage this sequence 53

54 Parent References Maintaining references from child components to their parents: simplify traversal and management of composite structures; are best defined in the Component class; it is essential to maintain the invariant that all children of a composite have as their parent the composite that in turn has them as children. 54

55 Decorator Pattern Intent: Attach additional responsibilities tot an object dynamically instead of relying on subclassing to extend functionality. (cf. Wrapper) 55

56 Decorator Pattern: Structure 56

57 57

58 Implementation Tricks Interface conformance. A decorator object's interface must conform to the interface of the component it decorates Omit the abstract Decorator class when only one extra responsibility is needed. Keep Component class lightweight. Focus on interface not storing data. Definition of data representation should be deferred to subclasses. Changing the skin of an object versus changing its guts (Decorator pattern versus Strategy pattern) 58

59 59

60 Design Patterns Creational Patterns

61 Creational Patterns 5 patterns Abstract Factory Builder Factory Method Prototype Singleton 61

62 Abstract Factory Intent: Provide an Interface for creating families of related or dependent objects without specifying their concrete classes 62

63 Abstract Factory: Structure 63

64 Abstract Factory: Participants AbstractFactory declares an interface for operations that create abstract product objects ConcreteFactory implements the operations to create concrete product objects AbstractProduct declares an interface for a type of product object 64

65 Abstract Factory: Participants ConcreteProduct defines a product object to be created by the corresponding concrete factory; implements the AbstractProduct interface Client uses only interfaces declared by AbstractProduct and AbstractFactory 65

66 Abstract Factory Pattern 66

67 Abstract Factory: Consequences + Isolates concrete classes: the AbstractFactory encapsulates the responsibility and the process to create product objects, it isolates clients from implementation classes; clients manipulate instances through their abstract interfaces, the product class names do not appear in the client code + Makes exchanging product families easy: the ConcreteFactory class appears only once in an application -that is, where it is instantiated- so it is easy to replace; because the abstract factory creates an entire family of products the whole product family changes at once 67

68 Abstract Factory: Consequences + Promotes consistency between products: when products in a family are designed to work together it is important for an application to use objects from one family only; the abstract factory pattern makes this easy to enforce +- Supporting new types of products is difficult: extending abstract factories to produce new kinds of products is not easy because the set of Products that can be created is fixed in the AbstractFactory interface; supporting new kinds of products requires extending the factory interface which involves changing the AbstractFactory class and all its subclasses 68

69 Defining Extensible Factories a more flexible but less safe design is to provide AbstractFactory with a single make function that takes as a parameter (a class identifier, a string) the kind of object to create is easier to realise in a dynamically typed language than in a statically typed language because of the return type of this make operation 69

70 Analysis Patterns

71 Analysis Patterns Reusable Object Models Groups of concepts that represent common construction in business modelling relevant to one domain or spanning many domains conceptual models -> about the business!! Domains considered: health care, accountability, trading, planning, etc. Pattern format: context/problem/solutions, make it work, when to use it. 71

72 Account Pattern Collect together related accounting entries and provide summarizing behaviour. Accounts: personal bank accounts, project cost accounts, What is an account? container of entries plus behaviour the history of some value tying together all the elements of an entry that describe the kind of entry it is. 72

73 Account balance balance(daterange) withdrawals(daterange) deposits(daterange) 1 * Entry * Entry * 1 * 1 Customer Location 1 Entry Type 73

74 Account balance balance(daterange) withdrawals(daterange) deposits(daterange) 1 * Entry 1 Customer Entry * 1 * Account * 1 Location * 1 Entry Type 73

75 Account Pattern Making it work: Two essential qualities keeping a collection of entries, providing summarizing information over those entries. large amount of entries optimize calculation, cache value, no details required: replace by a single entry When to use it? need of current value, historical values and keep a history of changes to that value, pull together all the entries for a common set of descriptors. 74

76 Architectural Patterns

77 Architectural Patterns Architectural patterns often dictate a particular high-level, modular system decomposition. context/problem/solution triplet consequences!! Differ from Design Patterns they act more like blueprints Some are widely accepted layered architecture pipes and filters architecture Improve -ility s! 76

78 Layered Architecture A layered system divides a system in layers each layer: provides services to layers above requires services from layer below The connectors are defined by the protocols that determine how layers will interact Examples: layered communication protocols, operating systems 77

79 Layered system graphically Usually invocations Usefull Systems Base Utility Core Level Composites of various Users elements 78

80 Layered Systems Discussion Pros increasing level of abstraction support enhancement & support reuse Cons not always applicable performance penalties 79

81 Pipes and Filters Architecture Filter reads from input & writes to output stream incrementally transforms input to output So output begins for input is complete! are independent (no sharing of state) Examples: Unix shell, compilers, DSP, functional programming 80

82 Pipes and Filters graphically 81

83 Pipes And Filters Discussion Pros understand overall behavior a composition of individual filter behaviors support enhancement & reuse specialized analysis possible Cons lead to batch processing (interactivity problems) synchronization problems 82

84 Plugin plugin is a program that interacts with a host application provides certain, usually very specific, function on demand. reasons: enable third-party developers to create capabilities to extend an application to support features yet unforeseen separate source code from an application because of incompatible software licenses. 83

85 Plugin Examples clients use plugins to decrypt and encrypt . Graphics software use plugins to support file formats and process images (Adobe Photoshop). Media players use plugins to support file formats and apply filters (e.g. Winamp) to support programming languages. (e.g. Eclipse) Web Browsers use plugins to play video and Software development environments use plugins presentation formats (e.g., Flash, QuickTime) 84

86 Plugin Discussion Pros host application is independent of the plugins. plugins can be added and updated dynamically without changing the host application Cons plugins depend on the services of the host application 85

87 How not to use patterns Do not apply patterns indiscriminately Flexibility and variability is achieved at a cost typically extra indirections can complicate design or cost performance Only apply when flexibility is needed do not overdesign your application Study the trade-off issue for each pattern for more information!! 86

88 Wrap-up Architectures "can't be made, but only generated, indirectly, by the ordinary actions of the people, just as a flower cannot be made, but only generated from the seed." (Alexander) patterns describe such building blocks applying them implicitly changes the overall structure (architecture) whether it is on classes, business concepts, components,... 87

89 Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns, Addison Wesley, Reading, MA, Frank Buschmann, et al., Pattern-Oriented Software Architecture A System of Patterns, Wiley, 1996 Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz, Object-Oriented Reengineering Patterns, Morgan-Kaufmann, 2002 Martin Fowler. Analysis Patterns, Reusable Object Models. Addison Wesley, References 88

90 References Special issue on Software Patterns, IEEE Software, volume 24, number 4, July/August P. Avgeriou and U. Zdun, Architectural Patterns Revisited - A Pattern Language. Proceedings of 10th European Conference on Pattern Languages of Programs (EuroPLoP), 2005, pp

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 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

Structural Design Patterns Used in Data Structures Implementation

Structural Design Patterns Used in Data Structures Implementation Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION

ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION Vijay K Kerji Department of Computer Science and Engineering, PDA College of Engineering,Gulbarga,

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

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

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

Design Patterns. Advanced Software Paradigms (A. Bellaachia) 1

Design Patterns. Advanced Software Paradigms (A. Bellaachia) 1 Design Patterns 1. Objectives... 2 2. Definitions... 3 2.1. What is a Pattern?... 3 2.2. Categories of Patterns... 4 3. Pattern Characteristics [Buschmann]:... 5 4. Essential Elements of a Design Pattern

More information

Génie Logiciel et Gestion de Projets. Evolution

Génie Logiciel et Gestion de Projets. Evolution Génie Logiciel et Gestion de Projets Evolution 1 Roadmap Evolution: definitions Re-engineering Legacy systems Reverse engineering Software Visualisation Re-engineering Patterns 2 Evolution: Definitions

More information

Designing and Writing a Program DESIGNING, CODING, AND DOCUMENTING. The Design-Code-Debug Cycle. Divide and Conquer! Documentation is Code

Designing and Writing a Program DESIGNING, CODING, AND DOCUMENTING. The Design-Code-Debug Cycle. Divide and Conquer! Documentation is Code Designing and Writing a Program DESIGNING, CODING, AND DOCUMENTING Lecture 16 CS2110 Spring 2013 2 Don't sit down at the terminal immediately and start hacking Design stage THINK first about the data you

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

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

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

An Automatic Reversible Transformation from Composite to Visitor in Java

An Automatic Reversible Transformation from Composite to Visitor in Java An Automatic Reversible Transformation from Composite to Visitor in Java Akram To cite this version: Akram. An Automatic Reversible Transformation from Composite to Visitor in Java. CIEL 2012, P. Collet,

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

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

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

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

More information

Chapter 1 Fundamentals of Java Programming

Chapter 1 Fundamentals of Java Programming Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The

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

Architecture Design & Sequence Diagram. Week 7

Architecture Design & Sequence Diagram. Week 7 Architecture Design & Sequence Diagram Week 7 Announcement Reminder Midterm I: 1:00 1:50 pm Wednesday 23 rd March Ch. 1, 2, 3 and 26.5 Hour 1, 6, 7 and 19 (pp.331 335) Multiple choice Agenda (Lecture)

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

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

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

The Phases of an Object-Oriented Application

The Phases of an Object-Oriented Application The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

MiniDraw Introducing a framework... and a few patterns

MiniDraw Introducing a framework... and a few patterns MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation

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

PHP5 Design Patterns in a Nutshell. By Janne Ohtonen, August 2006

PHP5 Design Patterns in a Nutshell. By Janne Ohtonen, August 2006 By Janne Ohtonen, August 2006 Contents PHP5 Design Patterns in a Nutshell... 1 Introduction... 3 Acknowledgments... 3 The Active Record Pattern... 4 The Adapter Pattern... 4 The Data Mapper Pattern...

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

Design Patterns. V22.0474-001 Software Engineering Lecture 8. Adapted from Prof. Necula CS 169, Berkeley 1

Design Patterns. V22.0474-001 Software Engineering Lecture 8. Adapted from Prof. Necula CS 169, Berkeley 1 Design Patterns V22.0474-001 Software Engineering Lecture 8 1 How Do We Design Software? We all understand Algorithms Data structures Classes When describing a design, algorithms/data structures/classes

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

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

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

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

Brokerage in web application frameworks

Brokerage in web application frameworks Brokerage in web application frameworks Issues of framework re-use in OpenACS Stefan Sobernig Vienna University of Economics and Business Administration 1 von 33 15.02.2008 16:03 Uhr Overview 1. On concepts:

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

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

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns rel. 1.7 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software Pattern seconda parte Renato Conte - Pattern II- 1/48 - Types of software patterns

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

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

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

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

Business Modeling with UML

Business Modeling with UML Business Modeling with UML Hans-Erik Eriksson and Magnus Penker, Open Training Hans-Erik In order to keep up and be competitive, all companies Ericsson is and enterprises must assess the quality of their

More information

Guiding Principles for Modeling and Designing Reusable Services

Guiding Principles for Modeling and Designing Reusable Services Guiding Principles for Modeling and Designing Reusable Services Max Dolgicer Managing Director International Systems Group, Inc. mdolgicer@isg-inc.com http://www.isg-inc.com Agenda The changing notion

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

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

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

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns Analysis Martin Fowler fowler@acm acm.org http://ourworld ourworld.compuserve.com/homepages/martin_fowler Page Martin Fowler 9//99 What we will cover Introduction Observation Accounting How to use Page

More information

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat Page 1 of 14 Roadmap Client-Server Architecture Introduction Two-tier Architecture Three-tier Architecture The MVC Architecture

More information

The Facade Pattern. According to the Gang of Four, the intent of the Facade pattern is to

The Facade Pattern. According to the Gang of Four, the intent of the Facade pattern is to CHAPTER 6 The Facade Pattern Overview I start the study of design patterns with a pattern that you have probably implemented in the past but may not have had a name for: the Facade pattern. In this chapter

More information

Aerospace Software Engineering

Aerospace Software Engineering 16.35 Aerospace Software Engineering Software Architecture The 4+1 view Patterns Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT Why Care About Software Architecture? An architecture provides a vehicle

More information

Design Patterns for Managing Product Lifecycle Information

Design Patterns for Managing Product Lifecycle Information Design Patterns for Managing Product Lifecycle Information Introduction Kary Främling, Timo Ala-Risku, Mikko Kärkkäinen, Jan Holmström The increasing demands on product lifecycle management means that

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

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Business-Driven Software Engineering Lecture 3 Foundations of Processes Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster jku@zurich.ibm.com Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary

More information

A Catalogue of General-Purpose Software Design Patterns

A Catalogue of General-Purpose Software Design Patterns A Catalogue of General-Purpose Software Design Patterns Walter F. Tichy University of Karlsruhe Karlsruhe, Germany Abstract Software design patterns describe proven solutions to recurring software design

More information

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components

More information

10 Proxy Pattern [Gamma et al]

10 Proxy Pattern [Gamma et al] 10 Pattern [Gamma et al] pattern is used in scenarios when it is required to use avoid heavy-weight objects. So lightweight objects that are actually replica of the original objects exposing the same interface

More information

MAESTRO: The Declarative Middleware Proposal for the SBTVD

MAESTRO: The Declarative Middleware Proposal for the SBTVD MAESTRO: The Declarative Middleware Proposal for the SBTVD TeleMidia Laboratory PUC-Rio R. Marquês de São Vicente, 225 Rio de Janeiro 22453-900 Brazil lfgs@inf.puc-rio.br ACM, (2006). This is the author's

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

Lecture 2 - Design. 1) Why would you want to make a radical problem normal? We know how to solve normal problems already.

Lecture 2 - Design. 1) Why would you want to make a radical problem normal? We know how to solve normal problems already. Lecture 2 - Design 1) Why would you want to make a radical problem normal? We know how to solve normal problems already. Lecture 3 - Context 1) What are the 4 criteria for design analysis? a) Fitness for

More information

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Mobile optimized user experience Simplified access to

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

CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly

More information

EpochX: Genetic Programming in Java with Statistics and Event Monitoring

EpochX: Genetic Programming in Java with Statistics and Event Monitoring EpochX: Genetic Programming in Java with Statistics and Event Monitoring Fernando E. B. Otero School of Computing University of Kent, Canterbury Kent, CT2 7NF F.E.B.Otero@kent.ac.uk Tom Castle School of

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

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

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

Stock Trader System. Architecture Description

Stock Trader System. Architecture Description Stock Trader System Architecture Description Michael Stevens mike@mestevens.com http://www.mestevens.com Table of Contents 1. Purpose of Document 2 2. System Synopsis 2 3. Current Situation and Environment

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

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

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

Architecture for a Massively Multiplayer Online Role Playing Game Engine

Architecture for a Massively Multiplayer Online Role Playing Game Engine Architecture for a Massively Multiplayer Online Role Playing Game Engine Sergio Caltagirone scaltagi@up.edu Bryan Schlief bschlief@up.edu Matthew Keys mkeys@up.edu Mary Jane Willshire, PhD willshir@up.edu

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

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

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

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

Java (12 Weeks) Introduction to Java Programming Language

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

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

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

Application Problems. Agenda. Design Patterns. What is a Pattern? Architectural choices when building COM(+) Applications

Application Problems. Agenda. Design Patterns. What is a Pattern? Architectural choices when building COM(+) Applications Architectural choices when building COM(+) Applications Astrid Hackenberg class-a astrid.hackenberg@class-a.nl Agenda Application Problems Application problems Design Patterns Scalability Performance Integration

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

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

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 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

View Controller Programming Guide for ios

View Controller Programming Guide for ios View Controller Programming Guide for ios Contents About View Controllers 10 At a Glance 11 A View Controller Manages a Set of Views 11 You Manage Your Content Using Content View Controllers 11 Container

More information

Web Presentation Layer Architecture

Web Presentation Layer Architecture Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results

More information

THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS

THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS David L. Spooner Computer Science Department Rensselaer Polytechnic Institute Troy, New York 12180 The object-oriented programming

More information

Command Pattern and Combinations

Command Pattern and Combinations CS 342: Object-Oriented Software Development Lab Command Pattern and Combinations David L. Levine Christopher D. Gill Department of Computer Science Washington University, St. Louis levine,cdgill@cs.wustl.edu

More information

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

I219 Software Design Methodology

I219 Software Design Methodology I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts

More information

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description Sun Educational Services Instructor-Led Course Description Fundamentals of Java SL-110 The Fundamentals of the Java course provides students, with little or no programming experience, with the basics of

More information

Design Patterns for Games

Design Patterns for Games Design Patterns for Games Dung ( Zung ) Nguyen and Stephen B. Wong Dept. of Computer Science Rice University Houston, TX 77005 dxnguyen@rice.edu, swong@rice.edu Abstract Designing a two-person game involves

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto lft@inescporto.pt Luís Teixeira INESC Porto, Universidade Católica Portuguesa lmt@inescporto.pt Luís Corte-Real

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

Xcode Project Management Guide. (Legacy)

Xcode Project Management Guide. (Legacy) Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project

More information

Introduction to Patterns and Frameworks

Introduction to Patterns and Frameworks Patterns and Frameworks Introduction to Patterns and Frameworks Professor Department of EECS d.schmidt@vanderbilt.edu Vanderbilt University www.cs.wustl.edu/schmidt/ (615) 343-8197 Motivation for Patterns

More information

CS330 Design Patterns - Midterm 1 - Fall 2015

CS330 Design Patterns - Midterm 1 - Fall 2015 Name: Please read all instructions carefully. The exam is closed book & no laptops / phones / computers shall be present nor be used. Please write your answers in the space provided. You may use the backs

More information

Button, Button, Whose got the Button?

Button, Button, Whose got the Button? ,, Whose got the?,, Whose got the? (Patterns for breaking client/server relationships) By Robert C. Martin Introduction How many design patterns does it take to turn on a table lamp? This question was

More information

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology Jackie Zheqing Zhang Bill Hopkinson, Ph.D. 12479 Research Parkway Orlando, FL 32826-3248 407-207-0976 jackie.z.zhang@saic.com,

More information

Object Oriented Design

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

More information

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