Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2

Size: px
Start display at page:

Download "Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2"

Transcription

1 Architectural Requirements Phase See Sommerville Chapters 11, 12, 13, 14,

2 Architectural Requirements Phase So7ware requirements concerned construc>on of a logical model Architectural requirements concern construc>on of a physical model Architecture bible : M. Shaw & D. Garlan, So#ware Architecture, Pren>ce Hall,

3 Architectural Design Concerns physical system par>>oning alloca>on of tasks to components high cohesion and low coupling = good / robust low cohesion and high coupling = bad / fragile high cohesion (high element dependence inside components) low coupling (low component interdependence, so design is robust against change) component interface design component reuse choice of architecture to meet performance and other nonfunc>onal requirements problem solu>on by divide and conquer 3

4 Architecture Design Process Mostly, we will instan>ate a well known global architecture, as well as sub architectures and design pa;erns by top down refinement all the way down to unit level. 4

5 Architecture Criteria (1) Is there a generic architecture or pavern that can be a template for the system or component? (Otherwise ad hoc.) (2) How will the system be distributed across hardware to achieve performance, security, reliability etc? (3) Which generic architectures provide different alterna>ves, and what are the tradeoffs? (tradeoff analysis) 5

6 Architecture (cont.) (4) How can each component be decomposed into sub components (divide and conquer, maximise reuse, cohesion vs. coupling) (5) How to implement control and co opera>on (6) How to evaluate the design? (predict performance?) (7) How to document the design (sta>c, dynamic, UML?) especially component interfaces so that coders can work to an interface 6

7 System Models Documenta>on depends on which kinds of system models we use: (1) Sta>c structural model (class or package diagram) (2) Dynamic process model run >me behavior (sequence diagram, statechart) (3) Interface model (class diagram, OCL, JML) (4) Rela>onship model (data flow diagram) (5) Distribu>on model across hardware (package diagram) (6) Tes>ng model define integra>on tests (JUnit, JBehave, TTCN) 7

8 Architecture 1: Client Server Client * * Server requester provider service1() service2() servicen() Request for service using RPC or CORBA, Java RMI, HTTP, etc. 8

9 Architecture 2: Three Tier Database Architecture 3. Interface layer 2. Applica>on logic layer 1. Storage layer Interface layer: objects dealing with user, windows, forms, Web pages, etc logic layer: control and en>ty objects for processing, Rule checking and no>fica>on Storage layer: implements storage, retrieval and query of persistent objects 9

10 Architecture 3: Four Tier Database Architecture 4. Presenta>on Client Interface layer of 3 >ered 3. Presenta>on Server 2. Applica>on logic layer 1. Storage layer Presenta>on Client sits on user machine. Presenta>on Server sits on server machine Different kinds of clients and servers possible Compare with MVC! 10

11 Possible of 4. WebBrowser Interface layer 3. Server Side Form 2. DB Connection 1. SQL Query 11

12 Architecture 4: Layered Subsystems hierarchically organized, each layer (1) depending only on layer below, (2) supplying services to layers above (iterated client server?) 12

13 Possible Instan5a5on ISO/OSI 7 layer communica5on hierarchy 7. Applica>on (mail, telnet, 7p ) 6. Presenta>on (XDR) 5. Session (RPC) 4. Transport (TCP, UDP) 3. Network (IP) 2. Data Link (Ethernet) 1. Physical (thinnet, thicknet, UTP) Hardware level 13

14 Architecture 5: Data Centered Centralise around a large data collec>on, aka repository App1 App3 App2 14

15 Architecture 6 : Independent components Execu>ng in parallel, with communica>on, aka object oriented architectures. e.g. simple OOP, peer to peer (2 way client server) 15

16 Architecture 7: Model View Controller (MVC) An architectural model that solves many user interface (UI) problems, e.g. shared data, mul>ple users, different views of the same data, upda>ng informa>on across all users, changes to underlying data, changes to representa>on, changing UI technology. 16

17 MyView viewdata Model coredata setofobservers 1 depends on * initialize() displaydata() update() 1 attach(observer) detach(observer) notify() getdata() modifydata() 1 updates * 1 updates viewdata MyController initialize() changedata() update() 17

18 Architecture 8: Data Flow Data flows between sta>c func>onal elements which transform it, aka pipeline architecture e.g. compiler C code parse tree assembler Machine code Parse procedure calls Translate assembler Link & Assemble Library

19 Design Pa;erns Are the answer to a ques>on that commonly arises How can I? PaVerns record successful solu5ons in so7ware development for sharing between projects. Gang of Four (GoF) Gamma, Helm, Johnson, Vlissides, founders of movement. Gamma et al, Design PaJerns: Elements of Reusable Object Oriented So#ware, Addison Wesley, Literally thousands of paverns!

20 Types of Pa;ern Basically 3 types of pavern Crea@onal: address problems of crea>ng an object in a flexible way. Separate crea>on, from opera>on/use. Structural: address problems of using O O constructs like inheritance to organize classes and objects Behavioral: address problems of assigning responsibili>es to classes. Suggest both sta>c rela>onships and paverns of communica>on

21 Example Pa;ern: Mediator (Behavioral) Problem: How can we deal with two or more classes which some>mes interact, but can also be used separately? Mediator promotes loose coupling by keeping objects from referring to one another explicitly. Put each interac>on between objects in a separate (Mediator) class. This class should have references to the objects.

22 A pavern for two objects which exist independently but have some coupling. This coupling is placed in its own class. Used by e.g. ActionListener in Java which couples together two graphical objects, e.g. window & button. Colleagues send and receive requests from a Mediator object. The mediator implements the coopera>ve behavior by rou>ng requests between appropriate colleagues.

23 Mediator Structure Mediator 1 mediator Colleague ConcreteMediator * Concrete Colleague1 Concrete Colleague2 *

24 Comments Façade, unlike Mediator, abstracts a subsystem of objects to provide a convenient interface. Unidirec@onal. Façade objects make requests of the subsystem, but not viceversa. Mediator enables coopera>ve behaviour, that colleagues don t or can t provide. Mul@direc@onal.

25 PSS 05 ARD Template Sec>ons 1 and 2 are similar to SRD template. 3. System Context. Gives a detailed descrip>on of the system context, with relevant diagrams. Defines the external interfaces of the product under development for these other systems 3.n. External interface defini@on. Provides an interface defini>on to each separate external component type or physical component. 25

26 4 System Design. Provides an overview of the design techniques used, especially any in house or non standard nota>ons, project specific methods, or non standard interpreta>on of standard languages/methods such as UML/ Waterfall. 4.1 Design method. Describes and references the design method. Why we did what we did Gives the top level view of the systems design, preferably with diagrams. Shows the major components which will be described in detail in Sec>on 5. Iden>fies control and data flow between components. 26

27 5 Component Gives detailed component informa>on according to a fixed template. Components may be top level components, iden>fied in Sec>on 4.2, or subcomponents of these. Preferably use a component iden>fica>on scheme which is easy to read/follow/ remember. 5.n [Component iden@fier] Fill in name here. 5.n.1 Type. Could be a module, an input/output/temporary file, a program, a class, a script, a web page, etc. 5.n.2 Purpose. Describe the purpose of the component, and relate this to a numbered so7ware requirement in the SRD. 5.n.3 Func@on. Describe the func>onality of the component, including its interface proper>es (call and return types) and logical behaviour. 5.n.4 Subordinates. List the immediate subcomponents of the component, using defined component iden>fiers. 27

28 5.n.5 Dependencies. Describe the logical precondi>ons for using this component, e.g. files and/or objects which must exist. 5.n.6 Interfaces. Define the control and data flow to and from the object. Gives a detailed picture of its context in the overall system architecture. 5.n.7 Resources. List any resources required by the component, such as external components external subsystems, hardware, etc. 5.n.8 References. reference any documents needed to understand the component. 5.n.9 Processing. Describe the control and data flow betwen immediate subcomponents of this component. If the component has no immediate subcomponents (i.e. it is fully decomposed) then outline the method of processing used by the component to perform its task (e.g. with pseudo code, state diagrams, etc). 5.n.10 Data. Describe in detail (where possible) the local data values and data structures belonging to (local in scope) this component. Otherwise give an outline descrip>on. 28

29 6 Feasibility and Resource Summarize the conclusions of a feasibility study around the architectural model. Priori>ze all components using a priority model (e.g. economy, standard, deluxe versions). Iden>fy and describe all future project tasks. Iden>fy task dependencies in terms of commencement and comple>on, preferably with a task flow chart. Es>mate the effort required for each project task. Produce a task alloca>on plan and schedule for each project staff member for the remainder of the project. This informa>on should preferably be presented in a table. 29

30 Iden>fy possible risks going forward, and for each risk, give a risk management proposal. Es>mate the overall schedule for making a detailed design, coding this design, tes>ng and delivering the final product and documenta>on according to the project deadlines. Iden>fy the cri>cal path in the project, and analyze possible project slippage along this path. 7 So^ware Requirements vs Components Traceability Matrix. Gives a table cross referencing architectural components (based on defined component iden>fers). 30

Object Oriented Design (OOD): The Concept

Object Oriented Design (OOD): The Concept Object Oriented Design (OOD): The Concept Objec,ves To explain how a so8ware design may be represented as a set of interac;ng objects that manage their own state and opera;ons 1 Topics covered Object Oriented

More information

Design Pa*erns. + Anima/on Undo/Redo Graphics and Hints

Design Pa*erns. + Anima/on Undo/Redo Graphics and Hints Design Pa*erns + Anima/on Undo/Redo Graphics and Hints Design Pa*erns Design: the planning that lays the basis for the making of every object or system Pa*ern: a type of theme of recurring events or objects

More information

Component diagrams. Components Components are model elements that represent independent, interchangeable parts of a system.

Component diagrams. Components Components are model elements that represent independent, interchangeable parts of a system. Component diagrams Components Components are model elements that represent independent, interchangeable parts of a system. Components are more abstract than classes and can be considered to be stand- alone

More information

Recap on SDLC Phases & Artefacts

Recap on SDLC Phases & Artefacts Prepared by Shahliza Abd Halim Recap on SDLC Phases & Artefacts Domain Analysis @ Business Process Domain Model (Class Diagram) Requirement Analysis 1) Functional & Non-Functional requirement 2) Use Case

More information

Design pa*erns. Based on slides by Glenn D. Blank

Design pa*erns. Based on slides by Glenn D. Blank Design pa*erns Based on slides by Glenn D. Blank Defini6ons A pa#ern is a recurring solu6on to a standard problem, in a context. Christopher Alexander, a professor of architecture Why would what a prof

More information

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan COSC 310: So*ware Engineering Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 Admin A2 is up Don t forget to keep doing peer evalua>ons Deadline can be extended but shortens A3 >meframe Labs This

More information

more uml: sequence & use case diagrams

more uml: sequence & use case diagrams more uml: sequence & use case diagrams uses of uml as a sketch: very selec)ve informal and dynamic forward engineering: describe some concept you need to implement reverse engineering: explain how some

More information

A formal design process, part 2

A formal design process, part 2 Principles of So3ware Construc9on: Objects, Design, and Concurrency Designing (sub-) systems A formal design process, part 2 Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Midterm

More information

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

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

Model- Based Security Tes3ng with Test Pa9erns

Model- Based Security Tes3ng with Test Pa9erns Model- Based Security Tes3ng with Test Pa9erns Julien BOTELLA (Smartes5ng) Jürgen GROSSMANN (FOKUS) Bruno LEGEARD (Smartes3ng) Fabien PEUREUX (Smartes5ng) Mar5n SCHNEIDER (FOKUS) Fredrik SEEHUSEN (SINTEF)

More information

Object-Oriented Design

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

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422 The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements...no

More information

Preliminary ACTL-SLOW Design in the ACS and OPC-UA context. G. Tos? (19/04/2016)

Preliminary ACTL-SLOW Design in the ACS and OPC-UA context. G. Tos? (19/04/2016) Preliminary ACTL-SLOW Design in the ACS and OPC-UA context G. Tos? (19/04/2016) Summary General Introduc?on to ACS Preliminary ACTL-SLOW proposed design Hardware device integra?on in ACS and ACTL- SLOW

More information

L6: System design: behavior models

L6: System design: behavior models L6: System design: behavior models Limita6ons of func6onal decomposi6on Behavior models State diagrams Flow charts Data flow diagrams En6ty rela6onship diagrams Unified Modeling Language Capstone design

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 8 Introduc

More information

Design Principles & Prac4ces

Design Principles & Prac4ces Design Principles & Prac4ces Robert France Robert B. France 1 Understanding complexity Accidental versus Essen4al complexity Essen%al complexity: Complexity that is inherent in the problem or the solu4on

More information

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE Software Engineering Design: Theory and Practice 1 So#ware Engineering Life-cycle Phase Requirements Design Tes/ng Phase Ac7vi7es Elicita/on Analysis

More information

Design Pa*erns. Philippe Collet. Master 1 IFI Interna3onal h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213. P.

Design Pa*erns. Philippe Collet. Master 1 IFI Interna3onal h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213. P. Design Pa*erns Philippe Collet Master 1 IFI Interna3onal 2012-2013 h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213 P. Collet 1 Agenda Introduc3on First example Principles and classifica3on Presenta3on

More information

Chris9an Kästner Charlie Garrod

Chris9an Kästner Charlie Garrod Principles of So3ware Construc9on: Objects, Design, and Concurrency (Part 3: Design Case Studies) Introduc3on to GUIs Chris9an Kästner Charlie Garrod School of Computer Science 1 Administrivia Homework

More information

1 Software Architecture

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

What were his cri+cisms? Classical Methodologies:

What were his cri+cisms? Classical Methodologies: 1 2 Classifica+on In this scheme there are several methodologies, such as Process- oriented, Blended, Object Oriented, Rapid development, People oriented and Organisa+onal oriented. According to David

More information

Automated System Analysis using Executable SysML Modeling Pa8erns

Automated System Analysis using Executable SysML Modeling Pa8erns Automated System Analysis using Executable SysML Modeling Pa8erns Maged Elaasar* Modelware Solu

More information

Object-Oriented Design

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

Application Architectures, Design Patterns

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

Josh Bloch Charlie Garrod Darya Melicher

Josh Bloch Charlie Garrod Darya Melicher Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 1: Introduc9on Course overview and introduc9on to so3ware design Josh Bloch Charlie Garrod Darya Melicher 1 So3ware is everywhere

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

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

DESIGN PATTERN - INTERVIEW QUESTIONS

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

Introduction to Software Engineering 10. Software Architecture

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

More information

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 software development simplified RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 Eric Westfall - Indiana University JASIG 2011 For those who don t know Kuali Rice consists of mul8ple sub-

More information

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011

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

Homework 1 Simple code genera/on. Luca Della Toffola Compiler Design HS15

Homework 1 Simple code genera/on. Luca Della Toffola Compiler Design HS15 Homework 1 Simple code genera/on Luca Della Toffola Compiler Design HS15 1 Administra1ve issues Has everyone found a team- mate? Mailing- list: cd1@lists.inf.ethz.ch Please subscribe if we forgot you 2

More information

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

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

Architecture of So-ware Systems Distributed Components, CORBA. Mar>n Rehák

Architecture of So-ware Systems Distributed Components, CORBA. Mar>n Rehák Architecture of So-ware Systems Distributed Components, CORBA Mar>n Rehák CORBA is OMG's open, vendor- independent specifica9on for an architecture and infrastructure that computer applica9ons use to work

More information

Structure Patters: Bridge and Flyweight. CSCI 3132 Summer

Structure Patters: Bridge and Flyweight. CSCI 3132 Summer Structure Patters: Bridge and Flyweight CSCI 3132 Summer 2011 1 Introducing the Bridge Pa1ern Intent To decouple an abstrac7on from its implementa7on so that the two can vary independently. What does it

More information

Principles of So3ware Construc9on. A formal design process, part 2

Principles of So3ware Construc9on. A formal design process, part 2 Principles of So3ware Construc9on Design (sub- )systems A formal design process, part 2 Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Midterm exam Thursday Review session Wednesday,

More information

Web Application Development

Web Application Development Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie INTRODUCTION & TERMINOLOGY PART 1 Objec8ves

More information

How to sleep *ght and keep your applica*ons running on IPv6 transi*on. The importance of IPv6 Applica*on Tes*ng

How to sleep *ght and keep your applica*ons running on IPv6 transi*on. The importance of IPv6 Applica*on Tes*ng How to sleep *ght and keep your applica*ons running on IPv6 transi*on The importance of IPv6 Applica*on Tes*ng About this presenta*on It presents a generic methodology to test the IPv6 func*onality of

More information

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

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

More information

Kaseya Advanced Workshop DAY TWO

Kaseya Advanced Workshop DAY TWO Kaseya Advanced Workshop DAY TWO Developed by Kaseya University Powered by IT Scholars 1 Kaseya Version 6.2 Last updated on June 25, 2012 Day One Roadmap! Advanced Agent Procedures Day Two Advanced Monitoring

More information

RDD and Strategy Pa.ern

RDD and Strategy Pa.ern RDD and Strategy Pa.ern CSCI 3132 Summer 2011 1 OO So1ware Design The tradi7onal view of objects is that they are data with methods. Smart Data. But, it is be.er to think of them as en##es that have responsibili#es.

More information

CS342: Software Design. November 21, 2017

CS342: Software Design. November 21, 2017 CS342: Software Design November 21, 2017 Runnable interface: create threading object Thread is a flow of control within a program Thread vs. process All execution in Java is associated with a Thread object.

More information

Components Based Design and Development. Unit 3: Software Design Quick Overview

Components Based Design and Development. Unit 3: Software Design Quick Overview Components Based Design and Development Computer Engineering Studies Universidad Carlos III de Madrid Unit 3: Software Design Quick Overview Juan Llorens Högskolan på Åland Finland / Universidad Carlos

More information

Design Patterns. Gunnar Gotshalks A4-1

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

3 Product Management Anti-Patterns by Thomas Schranz

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

Patterns for Decoupling

Patterns for Decoupling Patterns for Decoupling Ingolf H. Krueger Department of Computer Science & Engineering University of California, San Diego La Jolla, CA 92093-0114, USA California Institute for Telecommunications and Information

More information

So#ware Tes+ng. See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008.

So#ware Tes+ng. See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008. So#ware Tes+ng See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008. Tes+ng Most basic form of post- hoc SQA Helps define program func+onality

More information

XIX. Software Architectures

XIX. Software Architectures XIX. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture

More information

An Introduction to Patterns

An Introduction to Patterns An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? Patterns are intended to capture the best available software development experiences in the

More information

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan COSC 121: Computer Programming II Dr. Bowen Hui University of Bri?sh Columbia Okanagan 1 A1 Posted over the weekend Two ques?ons (s?ll long ques?ons) Review of main concepts from COSC 111 Prac?ce coding

More information

Topics in Object-Oriented Design Patterns

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

Leveraging User Session Data to Support Web Applica8on Tes8ng

Leveraging User Session Data to Support Web Applica8on Tes8ng Leveraging User Session Data to Support Web Applica8on Tes8ng Authors: Sebas8an Elbaum, Gregg Rotheermal, Srikanth Karre, and Marc Fisher II Presented By: Rajiv Jain Outline Introduc8on Related Work Tes8ng

More information

CSE Opera,ng System Principles

CSE Opera,ng System Principles CSE 30341 Opera,ng System Principles Lecture 5 Processes / Threads Recap Processes What is a process? What is in a process control bloc? Contrast stac, heap, data, text. What are process states? Which

More information

Chapter 6: Structural Design

Chapter 6: Structural Design Chapter 6: Structural Design Class Rela5onships Design alterna,ves for class use and reuse Composi5on Containment Inheritance Code Reuse Design Principles Rela5onships: Containment aka Holds- A subobjects

More information

Marking Guidelines for MVK Projects. MVK11. Version 6.2 (PPD, URD, ADD, revised URD+ADD, and software demo)

Marking Guidelines for MVK Projects. MVK11. Version 6.2 (PPD, URD, ADD, revised URD+ADD, and software demo) Marking Guidelines for MVK Projects. MVK11 Version 6.2 (PPD, URD, ADD, revised URD+ADD, and software demo) 2012-05- 03 Final Grade formulas: MVK DD1365 Grade = PPD + URD. Bachelor s Thesis DD143X Grade

More information

Dynamic Web Development

Dynamic Web Development Dynamic Web Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie MODULES, VIEWS, CONTROLLERS & ROUTES PART 2 Sec8on

More information

Object Design II: Design Patterns

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

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1 Object-Oriented Software Engineering Conquering Complex and Changing Systems Chapter 6, System Design Lecture 1 Design There are two ways of constructing a software design: One way is to make it so simple

More information

Best Prac*ces in Accessibility and Universal Design for Learning. Rozy Parlette, Instruc*onal Designer Center for Instruc*on and Research Technology

Best Prac*ces in Accessibility and Universal Design for Learning. Rozy Parlette, Instruc*onal Designer Center for Instruc*on and Research Technology Best Prac*ces in Accessibility and Universal Design for Learning Rozy Parlette, Instruc*onal Designer Center for Instruc*on and Research Technology Purpose The purpose of this session is to iden*fy best

More information

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021 Review of Basic Software Design Concepts Fethi Rabhi SENG 2021 1 Topics The development process Planning Designing Implementing 2 1. The development process How to organise activities related to the creation,

More information

Java. Package, Interface & Excep2on

Java. Package, Interface & Excep2on Java Package, Interface & Excep2on Package 2 Package Java package provides a mechanism for par55oning the class name space into more manageable chunks Both naming and visibility control mechanism Define

More information

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

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

ESE Einführung in Software Engineering!

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

More information

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues Founda'ons of So,ware Engineering Lecture 11 Intro to QA, Tes2ng Claire Le Goues 1 Learning goals Define so;ware analysis. Reason about QA ac2vi2es with respect to coverage and coverage/adequacy criteria,

More information

Monitoring IPv6 Content Accessibility and Reachability. Contact: R. Guerin University of Pennsylvania

Monitoring IPv6 Content Accessibility and Reachability. Contact: R. Guerin University of Pennsylvania Monitoring IPv6 Content Accessibility and Reachability Contact: R. Guerin (guerin@ee.upenn.edu) University of Pennsylvania Outline Goals and scope So=ware overview Func@onality, performance, and requirements

More information

Advanced Object Oriented PHP

Advanced Object Oriented PHP CNM STEMulus Center Web Development with PHP November 11, 2015 1/17 Outline 1 2 Diamond Problem Composing vs Inheriting Case Study: Strategy Design Pattern 2/17 Definition is when a class is based on another

More information

Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék. Code Genera*on

Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék. Code Genera*on Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Code Genera*on Designing modeling languages Metamodel: a model of models o Abstract syntax o Concrete syntax

More information

So#ware Engineering I. Based on materials by Ken Birman, Cornell

So#ware Engineering I. Based on materials by Ken Birman, Cornell So#ware Engineering I Based on materials by Ken Birman, Cornell 1 So#ware Engineering The art by which we start with a problem statement and gradually evolve a solu@on There are whole books on this topic

More information

Network diagrams in context

Network diagrams in context PM Network diagrams in context SOW CHARTER SCOPE DEFINITION WBS circulation, negotiation, translation WBS WP à activities ----- estimations Time Cost GANTT PERT AOA AON - - - - - - - - - - - planning,

More information

Using Design Patterns in Java Application Development

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

Software Engineering

Software Engineering Software ngineering Software Architecture for nterprise Information Systems Guido Menkhaus and milia Coste Software Research Lab, University of Salzburg References References Floyd Marinescu, JB Design

More information

RTP Taxonomy & Rela.onships

RTP Taxonomy & Rela.onships RTP Taxonomy & Rela.onships dra%- lennox- raiarea- rtp- grouping- taxonomy- 03 IETF 88 @Authors 1 Changes Since - 02 Major re- write Sec.on 2, Concepts, re- structured to a conceptual media chain with

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

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

Inheritance. EEC 521: Software Engineering. Dealing with Change. Polymorphism. Software Design. Changing requirements Code needs to be flexible

Inheritance. 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 information

Object-Oriented Design

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

More information

System Modeling Environment

System Modeling Environment System Modeling Environment Requirements, Architecture and Implementa

More information

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan COSC 121: Computer Programming II Dr. Bowen Hui University of Bri?sh Columbia Okanagan 1 Quick Review Inheritance models IS- A rela?onship Different from impor?ng classes Inherited classes can be organized

More information

Josh Bloch Charlie Garrod Darya Melicher

Josh Bloch Charlie Garrod Darya Melicher Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 2: Class-level design Design paderns for reuse, part 2 Josh Bloch Charlie Garrod Darya Melicher 1 Administrivia Reading due today:

More information

Tuesday, October 4. Announcements

Tuesday, 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 information

Design 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.) 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 information

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

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

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

An Introduction to Patterns

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

APPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS

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

Classes & Objects CMSC 202

Classes & Objects CMSC 202 Classes & Objects CMSC 202 Programming & Abstrac9on All programming languages provide some form of abstrac'on Also called informa'on hiding Separa9ng how one uses a program and how the program has been

More information

Why do Web Applica/ons Fail and What can be done about it?

Why do Web Applica/ons Fail and What can be done about it? Why do Web Applica/ons Fail and What can be done about it? Karthik Pa:abiraman 1 Frolin Ocariza Jr. 1 Ali Mesbah 1 Benjamin Zorn 2 1 University of Bri?sh Columbia (UBC), 2 MicrosoE Research (MSR) My Research

More information

Lecture 19: Introduction to Design Patterns

Lecture 19: Introduction to Design Patterns Lecture 19: Introduction to Design Patterns Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

More information

Database Design CENG 351

Database Design CENG 351 Database Design Database Design Process Requirements analysis What data, what applica;ons, what most frequent opera;ons, Conceptual database design High level descrip;on of the data and the constraint

More information

Design Patterns. CSC207 Winter 2017

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

CSE 70 Final Exam Fall 2009

CSE 70 Final Exam Fall 2009 Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15

More information

Chapter 10 Object-Oriented Design Principles

Chapter 10 Object-Oriented Design Principles Chapter 10 Object-Oriented Design Principles Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Object-oriented design: bridging from analysis

More information

Parallel Programming Pa,erns

Parallel Programming Pa,erns Parallel Programming Pa,erns Bryan Mills, PhD Spring 2017 What is a programming pa,erns? Repeatable solu@on to commonly occurring problem It isn t a solu@on that you can t simply apply, the engineer has

More information

Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server

Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server Copyright 2013 Splunk Inc. Best Prac:ces + New Feature Overview for the Latest Version of Splunk Deployment Server Gen: Zaimi Professional Services #splunkconf Legal No:ces During the course of this presenta:on,

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer 3-Tier and 4-Tier Architectures Horizontal Layers and Vertical Partitions The Model-View-Controller Architecture

More information

UNIX Sockets. COS 461 Precept 1

UNIX Sockets. COS 461 Precept 1 UNIX Sockets COS 461 Precept 1 Socket and Process Communica;on application layer User Process Socket transport layer (TCP/UDP) OS network stack network layer (IP) link layer (e.g. ethernet) Internet Internet

More information

Interfacing with Services. Jukka K. Nurminen

Interfacing with Services. Jukka K. Nurminen Interfacing with Services Jukka K. Nurminen 29.1.2013 Prac%cali%es I hope everybody has sent an assignment signup message to the course mailing list Assignments have been published GIT training GIT Lecture

More information

Design Patterns. CSC207 Fall 2017

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

CS 5150 So(ware Engineering 12. System Architecture

CS 5150 So(ware Engineering 12. System Architecture Cornell University Compu1ng and Informa1on Science CS 5150 So(ware Engineering 12. System Architecture William Y. Arms Design The requirements describe the funccon of a system as seen by the client. For

More information

Work groups meeting 3

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

Decision making for autonomous naviga2on. Anoop Aroor Advisor: Susan Epstein CUNY Graduate Center, Computer science

Decision making for autonomous naviga2on. Anoop Aroor Advisor: Susan Epstein CUNY Graduate Center, Computer science Decision making for autonomous naviga2on Anoop Aroor Advisor: Susan Epstein CUNY Graduate Center, Computer science Overview Naviga2on and Mobile robots Decision- making techniques for naviga2on Building

More information

Design Patterns. An introduction

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 information