SOFTWARE ENGINEERING SOFTWARE DESIGN. Saulius Ragaišis.
|
|
- Dwayne Poole
- 6 years ago
- Views:
Transcription
1 SOFTWARE ENGINEERING SOFTWARE DESIGN Saulius Ragaišis
2 CSC2008 SE Software Design Learning Objectives: Discuss the properties of good software design including the nature and the role of associated documentation. Evaluate the quality of multiple software designs based on key design principles and concepts. Select and apply appropriate design patterns in the construction of a software application. Create and specify the software design for a medium-size software product using a software requirement specification, an accepted program design methodology (e.g., structured or object-oriented), and appropriate design notation. Conduct a software design review of open-source materials using appropriate guidelines. Evaluate a software design at the component level. Evaluate a software design from the perspective of reuse.
3 DESIGN CONCEPTS
4 Definition Design is the process of transforming customer requirements, business needs, and technical considerations into the formulation of a product or system. Design is a meaningful engineering representation of something that is to be built. It can be traced to a customer's requirements and at the same time assessed for quality against a set of predefined criteria for 'good' design. Design focuses on four major areas of concern: data, architecture, interfaces, and components.
5 Design quality R. McLaughlin: The design must implement all of the explicit requirements. The design must be a readable, understandable guide for further activities. The design should provide a complete picture of the software
6 Fundamental concepts Abstraction: data, procedure, control Architecture: the overall structure of the software Patterns: conveys the essence of a proven design solution Separation of concerns: any complex problem can be more easily handled if it is subdivided into pieces Modularity: compartmentalization of data and function Hiding: controlled interfaces Functional independence: single-minded function and low coupling Refinement: elaboration of detail for all abstractions
7 Fundamental concepts (2) Aspects: a mechanism for understanding how global requirements affect design Refactoring: a reorganization technique that simplifies the design OO design concepts: Inheritance: all responsibilities of a superclass is immediately inherited by all subclasses Messages: stimulate some behavior to occur in the receiving object Polymorphism: a characteristic that greatly reduces the effort required to extend the design Design Classes: provide design detail that will enable analysis classes to be implemented
8 Cohesion and coupling Cohesion is an indication of the relative functional strength of a module. A cohesive module performs a single task, requiring little interaction with other components in other parts of a program. Stated simply, a cohesive module should (ideally) do just one thing. Coupling is an indication of the relative interdependence among modules. Coupling depends on the interface complexity between modules, the point at which entry or reference is made to a module, and what data pass across the interface.
9 Dimensions of the design model
10 DESIGN PATTERNS
11 Patterns Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution a million times over, without ever doing it the same way twice Christopher Alexander, 1977
12 Design Patterns: Elements of Reusable Object-Oriented Software Author(s) : Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (The "Gang of Four") Subject(s) : Design patterns, software engineering, object-oriented programming Publisher : Addison-Wesley Publication date : 1994 Pages: 395 ISBN:
13 Design patterns (GoF) Description of communicating objects and classes that are customized to solve a general design problem in a particular context Names, abstracts, identifies key aspects of a common design structure that makes it useful for creating a reusable object-oriented design. Bigger than single class, smaller than whole framework/application
14 Design pattern elements Pattern name: Handle for describing design problem Problem: When to apply pattern. Explains problem and its context. Solution: Elements making up design (relationships, responsibilities, collaborations) Consequences: Results and trade-offs of applying pattern (implementation issues, performance, reuse etc.)
15 Design pattern description Name: Essence in one word Intent: Short statement Also known as: Alias Motivation: Concrete scenario Applicability: Situations for application Structure: Graphical representation of design (UML) Participants: Classes and objects Collaborations: How participants collaborate Consequences: Results, trade-offs of use Implementation: Pitfalls, hints, variations Sample code Known uses Related patterns
16 Gang of Four patterns 23 design patterns Organized in 2 dimensions: Scope: class object Purpose: creational (how to create objects) structural (composition of classes and objects) behavioral (ways of interaction and distribution of responsibility)
17 General themes Loose coupling: Add indirection to achieve decoupling, flexibility and reuse Abstraction: Naming, encapsulation, parameterization (same purpose as above) Dynamic : Delegation instead of implementation inheritance Object-orientation: object-oriented (re)design Principles of object-oriented design: Program to an interface, not an implementation Favor object composition over class inheritance.
18 GoF patterns list Abstract factory Builder Factory method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor
19 Singleton Lazy initialization public class SingletonDemo { private static SingletonDemo instance = null; private SingletonDemo() { } public static SingletonDemo getinstance() { if (instance == null) { synchronized (SingletonDemo.class){ if (instance == null) { instance = new SingletonDemo (); } } } return instance; } }
20 Composite pattern
21 GoF patterns overview Composite: Define tree-like structure, where internal and leaf nodes have same interface. Decorator: Functional composition of objects with same interface. Chain of responsibility: Chain objects and delegate requests along the chain. Proxy: Define local object that delegates (most) functionality that other objects.
22 GoF patterns overview (2) Command: Turn requests into objects Interpreter: Define (programming) language of requests Strategy: Parameterize over different algorithms Visitor: Receive and invoke any programmable operation on object (not just built-in methods)
23 GoF patterns overview (3) Singleton: Make sure only one instance of a class exists during any program run (shared state) Adapter: Connect two (existing) interfaces (have class with interface I1, and another one that needs I2) Flyweight: Split object state into mutable (context) and immutable (flyweight) and share flyweights. Iterator: Iterate over collection
24 GoF patterns overview (4) Facade: Centralize interface for collection of classes Mediator: Localize control, make centralized controller for orchestrating collaborating objects Memento: Checkpoint object (save state) Observer: Publish-subscribe interface for pushing state changes to arbitrary number of clients State: Object-oriented state representation for finite state machines
25 ARCHITECTURAL DESIGN
26 Software architecture Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471]
27 Key characteristics of architecture defines structure; defines behavior; focuses on significant elements; balances stakeholder needs; embodies decisions based on rationale; may conform to an architectural style; is influenced by its environment; influences team structure; is present in every system; has a particular scope.
28 Architectural style Center hall colonial house Software architectural style describes a system category that encompasses: a set of components that perform a function required by a system; a set of connectors that enable communication, coordination and cooperation among components; constraints that define how components can be integrated to form the system; semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.
29 Taxonomy of architectural styles Data-centered architecture Data flow architectures Call and return architectures Object-oriented architectures Layered architectures
30 Architectural patterns Architectural patterns define some specific approach for handling some behavioral characteristics of the system. Concurrency: applications must handle multiple tasks in a manner that simulates parallelism: operating system process management pattern task scheduler pattern
31 Architectural patterns (2) Persistence: data persists if it survives past the execution of the process that created it. Two patterns are common: a database management system pattern that applies the storage and retrieval capability of a DBMS to the application architecture an application level persistence pattern that builds persistence features into the application architecture Distribution: the manner in which systems or components within systems communicate with one another in a distributed environment: a broker acts as a middle-man between the client component and a server component
32 Architectural Design The software must be placed into context A set of architectural archetypes should be identified The designer specifies the structure of the system by defining and refining software components that implement each archetype
33 Assessing alternative architectures 1. Collect scenarios. 2. Elicit requirements, constraints, and environment description. 3. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements. 4. Evaluate quality attributes by considered each attribute in isolation. 5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style. 6. Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5.
34 Architectural complexity The overall complexity of a proposed architecture is assessed by considering the dependencies between components. Types of dependencies: Sharing dependencies: relationships among consumers who use the same resource or producers who produce for the same consumers. Flow dependencies: relationships between producers and consumers of resources. Constrained dependencies: constraints on the relative flow of control among a set of activities.
35 Architectural description languages Architectural description language (ADL) provides a semantics and syntax for describing a software architecture. Provide the designer with the ability to: decompose architectural components compose individual components into larger architectural blocks represent interfaces (connection mechanisms) between components
36 Structured design Objective: to derive a program architecture that is partitioned. Approach: a DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module Notation: structure chart
37 Why partitioned architecture? results in software that is easier to test leads to software that is easier to maintain results in propagation of fewer side effects results in software that is easier to extend
38 Partitioning the architecture Horizontal partitioning: define separate branches of the module hierarchy for each major function; use control modules to coordinate communication between functions. Vertical partitioning: design so that decision making and work are stratified; decision making modules should reside at the top of the architecture.
39 COMPONENT-LEVEL DESIGN
40 Definition of component OMG UML Specification: a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces. OO view: a component contains a set of collaborating classes Conventional view: a component contains processing logic, the internal data structures that are required to implement the processing logic, and an interface that enables the component to be invoked and data to be passed to it.
41 Basic design principles The Open-Closed Principle (OCP). A module [component] should be open for extension but closed for modification. The Liskov Substitution Principle (LSP). Subclasses should be substitutable for their base classes. Dependency Inversion Principle (DIP). Depend on abstractions. Do not depend on concretions. The Interface Segregation Principle (ISP). Many client-specific interfaces are better than one general purpose interface. [R. Martin]
42 Basic design principles (2) The Release Reuse Equivalency Principle (REP). The granule of reuse is the granule of release. The Common Closure Principle (CCP). Classes that change together belong together. The Common Reuse Principle (CRP). Classes that aren t reused together should not be grouped together. [R.Martin]
43 Design Guidelines Components Interfaces Dependencies and inheritance Cohesion Coupling
44 Design steps 1. Identify all design classes that correspond to the problem domain. 2. Identify all design classes that correspond to the infrastructure domain. 3. Elaborate all design classes that are not acquired as reusable components. a. Specify message details when classes or component collaborate. b. Identify appropriate interfaces for each component. c. Elaborate attributes and define data types and data structures required to implement them. d. Describe processing flow within each operation in detail.
45 Design steps (2) 4. Describe persistent data sources (databases and files) and identify the classes required to manage them. 5. Develop and elaborate behavioral representations for a class or component. 6. Elaborate deployment diagrams to provide additional implementation detail. 7. Factor every component-level design representation and always consider alternatives.
46 Designing conventional components The design of processing logic is governed by the basic principles of algorithm design and structured programming. The design of data structures is defined by the data model developed for the system. The design of interfaces is governed by the collaborations that a component must effect. Design notations: Graphical: flowcharts. Tabular: decision table. Program Design Language (PDL).
47 USER INTERFACE DESIGN
48 Typical user-interface design errors?
49 Golden rules Place the user in control Reduce the user s memory load Make the interface consistent
50 Place the user in control Define interaction modes in a way that does not force a user into unnecessary or undesired actions. Provide for flexible interaction. Allow user interaction to be interruptible and undoable. Streamline interaction as skill levels advance and allow the interaction to be customized Hide technical internals from the casual user. Design for direct interaction with objects that appear on the screen.
51 Reduce the user s memory load Reduce demand on short term memory. Establish meaningful defaults Define shortcuts that are intuitive The visual layout of the interface should be based on a real world metaphor Disclose information in a progressive fashion.
52 Make the interface consistent Allow the user to put the current task into a meaningful context. Maintain consistency across a family of applications. If past interactive models have created user expectations, do not make changes unless there is a compelling reason to do so.
53 User interface design models User model: a profile of all end users of the system. Design model: a design realization of the user model. Mental model (system perception): the user s mental image of what the interface is. Implementation model: the interface look and feel coupled with supporting information that describe interface syntax and semantics.
54 Categories of users Novices Knowledgeable, intermittent users Knowledgeable, frequent users
55 User analysis User interviews Sales input Marketing input Support input
56 Task analysis and modeling Use-cases define basic interaction Task elaboration refines interactive tasks Object elaboration identifies interface objects (classes) Workflow analysis defines how a work process is completed when several people (and roles) are involved Hierarchical representation Analysis of display content Analysis of the work environment
57 Design issues Response time Help facilities Error handling Menu and command labeling Application accessibility Internationalization
58 WEBAPP DESIGN
59 Design & WebApp Quality Security Availability Scalability Time to market
60 Quality dimensions for end-users Time Structural Content Accuracy and Consistency Response Time and Latency Performance
61 Design goals Simplicity Consistency Identity Robustness Navigability Visual appeal Compatibility
62 Interface design principles Anticipation Communication Consistency Controlled autonomy Efficiency Flexibility Focus Fitt s Law Human interface objects Latency reduction Learnability Metaphors Maintain work product integrity Readability Track state Visible navigation
63 Aesthetic design Don t be afraid of white space. Emphasize content. Organize layout elements from top-left to bottom right. Group navigation, content, and function geographically within the page. Don t extend your real estate with the scrolling bar. Consider resolution and browser window size when designing layout.
64 Content design Develops a design representation for content objects. Represents the mechanisms required to instantiate their relationships to one another. A content object has attributes that include contentspecific information and implementation-specific attributes that are specified as part of design.
65 Architecture design Content architecture focuses on the manner in which content objects (or composite objects such as Web pages) are structured for presentation and navigation. WebApp architecture addresses the manner in which the application is structured to manage user interaction, handle internal processing tasks, effect navigation, and present content. Architecture design is conducted in parallel with interface design, aesthetic design and content design.
66 Navigation design Navigation semantics Navigation syntax: Individual navigation link Horizontal navigation bar Vertical navigation column Tabs Site maps
67 Component-level design Functionality of WebApp components: perform localized processing to generate content and navigation capability in a dynamic fashion; provide computation or data processing capability that are appropriate for the WebApp s business domain; provide sophisticated database query and access; establish data interfaces with external corporate systems.
68 DESIGN FOR REUSE
69 Benefits of software reuse Increased reliability: reused software has been tried and tested in working systems. Reduced process risk: the cost and risk of existing software is already known. Effective use of specialists: reusable software encapsulates their knowledge. Standards compliance: embed standards in reusable components. Accelerated development: both development and validation time may be reduced.
70 Problems with reuse Increased maintenance costs: reused elements of the system may become increasingly incompatible with system changes. Not-invented-here syndrome: companies rewrite components because they believe they can improve them or because they feel they must own them. Creating, maintaining, and using a component library: generality of components doesn t come for free; development process have to be adapted. Finding and understanding components: software components have to be discovered in a library, understood, and sometimes adapted.
71 Reuse at architecture level Architectural patterns: standard SW architectures Application frameworks: classes at system level Legacy system wrapping: interfaces to old code Service-oriented systems: shared (third-party) services
72 Reuse at design level Object orientation: object design and development Design patterns: reusable software solutions Aspect-oriented software development: perspectives Component-based development: CBSE, component-model
73 Component development for reuse Components for reuse may be specially constructed by generalizing existing components. Component reusability Should reflect stable domain abstractions Should hide state representation Should be as independent as possible Should publish exceptions through the component interface There is a trade-off between reusability and usability. The more general the interface, the greater the reusability but it is then more complex and hence less usable
74 Reusable components The development cost of reusable components is higher than the cost of specific equivalents. This extra reusability enhancement cost should be an organization rather than a project cost Generic components may be larger and slower than their specific equivalents
75 Reusability enhancement Name generalization Names in a component may be modified so that they are not a direct reflection of a specific application entity Operation generalization Operations may be added to provide extra functionality and application specific operations may be removed Exception generalization Application specific exceptions are removed and exception management added to increase the robustness of the component Component certification Component is certified as reusable
76 What we have learned? Fundamental design concepts and principles Understanding of design patterns Architectural design Component-level design User interface design WebApp design Design for reuse
77 QUESTIONS?
78 APPENDIX
Design Patterns. An introduction
Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at
More informationUser Interface Design. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman
Chapter 11 User Interface Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationDesign Patterns. Gunnar Gotshalks A4-1
Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem
More informationComponent-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only
Chapter 10 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit
More informationDesign Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000
Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design
More informationIdioms and Design Patterns. Martin Skogevall IDE, Mälardalen University
Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang
More informationApplying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1
Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1 About the presenter Paul Kaunds Paul Kaunds is a Verification Consultant at
More informationReview Software Engineering October, 7, Adrian Iftene
Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)
More information09. Component-Level Design
09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 8 OO modeling Design Patterns Introduction Creational Patterns Software
More informationCHAPTER 9 DESIGN ENGINEERING. Overview
CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative
More informationUsing Design Patterns in Java Application Development
Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationPlan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?
Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationDesign Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)
Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationSummary of the course lectures
Summary of the course lectures 1 Components and Interfaces Components: Compile-time: Packages, Classes, Methods, Run-time: Objects, Invocations, Interfaces: What the client needs to know: Syntactic and
More informationThe Strategy Pattern Design Principle: Design Principle: Design Principle:
Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationEPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns
EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 6: Design Patterns Links to Design Pattern Material 1 http://www.oodesign.com/ http://www.vincehuston.org/dp/patterns_quiz.html Types of Design Patterns 2 Creational
More informationTuesday, October 4. Announcements
Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design
More informationUNIT III DESIGN CONCEPTS AND PRINCIPLES
UNIT III DESIGN CONCEPTS AND PRINCIPLES Design process and concepts modular design design heuristic design model and document. Architectural design software architecture data design architectural design
More informationbe used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate
UNIT 4 GRASP GRASP: Designing objects with responsibilities Creator Information expert Low Coupling Controller High Cohesion Designing for visibility - Applying GoF design patterns adapter, singleton,
More informationCS/CE 2336 Computer Science II
CS/CE 2336 Computer Science II UT D Session 20 Design Patterns An Overview 2 History Architect Christopher Alexander coined the term "pattern" circa 1977-1979 Kent Beck and Ward Cunningham, OOPSLA'87 used
More informationDesign Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns
Introduction o to Patterns and Design Patterns Dept. of Computer Science Baylor University Some slides adapted from slides by R. France and B. Tekinerdogan Observations Engineering=Problem Solving Many
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationAPPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS
APPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS Adem Zumbul (TUBITAK-UEKAE, Kocaeli, Turkey, ademz@uekae.tubitak.gov.tr); Tuna Tugcu (Bogazici University, Istanbul, Turkey, tugcu@boun.edu.tr) ABSTRACT
More informationCPSC 310 Software Engineering. Lecture 11. Design Patterns
CPSC 310 Software Engineering Lecture 11 Design Patterns Learning Goals Understand what are design patterns, their benefits and their drawbacks For at least the following design patterns: Singleton, Observer,
More informationLectures 24 and 25 Introduction to Architectural Styles and Design Patterns
Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationUser Interface Design. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only
Chapter 15 User Interface Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger
More informationDesign Concepts and Principles
Design Concepts and Principles Analysis to Design Data Object Description Entity- Relationship Diagram Data Flow Diagram Process Specification (PSPEC) Component level design (or) procedural design Data
More informationDesign patterns. OOD Lecture 6
Design patterns OOD Lecture 6 Next lecture Monday, Oct 1, at 1:15 pm, in 1311 Remember that the poster sessions are in two days Thursday, Sep 27 1:15 or 3:15 pm (check which with your TA) Room 2244 + 2245
More informationChapter 12 (revised by JAS)
Chapter 12 (revised by JAS) Pattern-Based Design Slide Set to accompany Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman
More informationApplying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3
Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Gang of Four (GoF) http://www.research.ibm.com/designpatterns/pubs/ddj-eip-award.htm
More informationGoals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming
Goals of Lecture Lecture 27: OO Design Patterns Cover OO Design Patterns Background Examples Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2001 April 24, 2001 Kenneth
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Design Patterns What are design patterns? Why design patterns? Example DP Types Toolkit, Framework, and Design Pattern A toolkit is a library of reusable
More informationCoordination Patterns
Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch
More informationA Rapid Overview of UML
A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system
More informationArchitectural Blueprint
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint
More informationSlide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D
Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More informationApplying the Observer Design Pattern
Applying the Observer Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationObject Oriented Paradigm
Object Oriented Paradigm Ming-Hwa Wang, Ph.D. Department of Computer Engineering Santa Clara University Object Oriented Paradigm/Programming (OOP) similar to Lego, which kids build new toys from assembling
More information3 Product Management Anti-Patterns by Thomas Schranz
3 Product Management Anti-Patterns by Thomas Schranz News Read above article, it s good and short! October 30, 2014 2 / 3 News Read above article, it s good and short! Grading: Added explanation about
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationLecture 13: Design Patterns
1 Lecture 13: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Pattern Resources Pattern Languages of Programming Technical conference on Patterns
More informationadministrivia today UML start design patterns Tuesday, September 28, 2010
administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified
More informationTopics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.
CS310 - REVIEW Topics Process Agile Requirements Basic Design Modular Design Design Patterns Testing Quality Refactoring UI Design How these things relate Process describe benefits of using a software
More informationExtensibility Design Patterns From The Initial Stage of Application Life-Cycle
Extensibility Design Patterns From The Initial Stage of Application Life-Cycle An Empirical Study Using GoF Patterns and Swift Programming language Theepan Karthigesan Thesis submitted for the degree of
More informationA Reconnaissance on Design Patterns
A Reconnaissance on Design Patterns M.Chaithanya Varma Student of computer science engineering, Sree Vidhyanikethan Engineering college, Tirupati, India ABSTRACT: In past decade, design patterns have been
More informationThe GoF Design Patterns Reference
The GoF Design Patterns Reference Version.0 / 0.0.07 / Printed.0.07 Copyright 0-07 wsdesign. All rights reserved. The GoF Design Patterns Reference ii Table of Contents Preface... viii I. Introduction....
More informationWork groups meeting 3
Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS
More informationPattern Resources. Lecture 25: Design Patterns. What are Patterns? Design Patterns. Pattern Languages of Programming. The Portland Pattern Repository
Pattern Resources Lecture 25: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Pattern Languages of Programming Technical conference on Patterns
More informationKeywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.
Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad
More informationDesign Patterns. CSC207 Fall 2017
Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the
More informationDesign Concepts. Slide Set to accompany. Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman
Chapter 8 Design Concepts Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
More informationFacade and Adapter. Comp-303 : Programming Techniques Lecture 19. Alexandre Denault Computer Science McGill University Winter 2004
Facade and Adapter Comp-303 : Programming Techniques Lecture 19 Alexandre Denault Computer Science McGill University Winter 2004 March 23, 2004 Lecture 19 Comp 303 : Facade and Adapter Page 1 Last lecture...
More informationObject-Oriented Design
Object-Oriented Design Lecture 20 GoF Design Patterns Behavioral Department of Computer Engineering Sharif University of Technology 1 GoF Behavioral Patterns Class Class Interpreter: Given a language,
More informationIntroduction to Software Engineering: Object Design I Reuse & Patterns
Introduction to Software Engineering: Object Design I Reuse & Patterns John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit 3e, Chapter 8,
More information!"#$%&'()*+,-*,--)./00#'1)2)345"645"%()
!"#$%&'()*+,-*,--)./00#'1)2)345"645"%() Chapter 9!! Architectural Design! Slide Set to accompany Software Engineering: A Practitionerʼs Approach, 7/e # by Roger S. Pressman Slides copyright 1996, 2001,
More informationPatterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides
Patterns Patterns Pattern-based engineering: in the field of (building) architecting and other disciplines from 1960 s Some software engineers also started to use the concepts Become widely known in SE
More informationInformation systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Overview of design patterns for supporting information systems
More informationFoundations of Software Engineering Design Patterns -- Introduction
Foundations of Software Engineering Design Patterns -- Introduction Fall 2016 Department of Computer Science Ben-Gurion university Based on slides of: Nurit Gal-oz, Department of Computer Science Ben-Gurion
More informationDesign patterns. Jef De Smedt Beta VZW
Design patterns Jef De Smedt Beta VZW Who Beta VZW www.betavzw.org Association founded in 1993 Computer training for the unemployed Computer training for employees (Cevora/Cefora) 9:00-12:30 13:00-16:00
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationCSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1
CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain
More informationSoftware Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software
Software Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software Chapter 9 Introduction to Design Patterns Copy Rights Virtual University of Pakistan 1 Design
More informationObject Design II: Design Patterns
Object-Oriented Software Engineering Using UML, Patterns, and Java Object Design II: Design Patterns Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen A Game: Get-15 The game
More informationLECTURE NOTES ON DESIGN PATTERNS MCA III YEAR, V SEMESTER (JNTUA-R09)
LECTURE NOTES ON DESIGN PATTERNS MCA III YEAR, V SEMESTER (JNTUA-R09) Mr. B KRISHNA MURTHI M.TECH, MISTE. Assistant Professor DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS CHADALAWADA RAMANAMMA ENGINEERING
More informationApplying the Decorator Design Pattern
Applying the Decorator Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationSoftware Reengineering Refactoring To Patterns. Martin Pinzger Delft University of Technology
Software Reengineering Refactoring To Patterns Martin Pinzger Delft University of Technology Outline Introduction Design Patterns Refactoring to Patterns Conclusions 2 The Reengineering Life-Cycle (1)
More informationDesign Patterns. CSC207 Winter 2017
Design Patterns CSC207 Winter 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe
More informationSoftware Engineering
Software Engineering CSC 331/631 - Spring 2018 Object-Oriented Design Principles Paul Pauca April 10 Design Principles DP1. Identify aspects of the application that vary and separate them from what stays
More informationIntroduction and History
Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek September 15, 2016 Content /FHTenL September 15, 2016 2/28 The idea is quite old, although rather young in SE. Keep up a roof. /FHTenL
More informationCrash course on design patterns
Crash course on design patterns Yann-Gaël Guéhéneuc guehene@emn.fr From Olivier Motelet s course (2001/10/17) École des Mines de Nantes, France Object Technology International, Inc., Canada Design patterns
More informationAgile Software Development
Agile Software Development Principles, Patterns, and Practices Robert Cecil Martin Alan Apt Series Prentice Hall Pearson Education, Inc. Upper Saddle River, New Jersey 07458 Foreword Preface About the
More information6.3 Patterns. Definition: Design Patterns
Subject/Topic/Focus: Analysis and Design Patterns Summary: What is a pattern? Why patterns? 6.3 Patterns Creational, structural and behavioral patterns Examples: Abstract Factory, Composite, Chain of Responsibility
More informationCS485/540 Software Engineering Architecture and Component Design (Chs. 9,10)
CS485/540 Software Engineering Architecture and Component Design (Chs. 9,10) Cengiz Günay Dept. Math & CS, Emory University Fall 2013 Some slides courtesy of Joan Smith, Roger Pressman, Ian Sommerville,
More informationInheritance. EEC 521: Software Engineering. Dealing with Change. Polymorphism. Software Design. Changing requirements Code needs to be flexible
Inheritance EEC 521: Software Engineering Software Design Design Patterns: Decoupling Dependencies 10/15/09 EEC 521: Software Engineering 1 Inheritance is the mechanism by which one class can acquire properties/responsibilities
More informationCHAPTER 6: CREATIONAL DESIGN PATTERNS
CHAPTER 6: CREATIONAL DESIGN PATTERNS SESSION I: OVERVIEW OF DESIGN PATTERNS, ABSTRACT FACTORY Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E. Otero
More informationAbstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles
Abstraction Design fundamentals in OO Systems Tool for abstraction: object Object structure: properties and values for those properties operations to query and update those properties We refer to the collection
More informationInterface Design Week 7
Interface Design Week 7 MSDN Account All the accounts are created. If students did not get an email then they already had an account. All you need to do is to give your students this URL http://msdn06.eacademy.com/elms/storefront/home.aspx?campus=csun_e_ceng
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationcopyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner s Approach, 6/e Chapter 10 Architectural Design copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student
More information