Designing Architectures

Similar documents
SOFTWARE ARCHITECTURE

Software Engineering: A Practitioner s Approach, 7/e. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman

Strategic Considerations when Introducing Model Based Systems Engineering

Systems Architecting and Software Architecting - On Separate or Convergent Paths?

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

SR&ED for the Software Sector Northwestern Ontario Innovation Centre

SDN Architecture 1.0 Overview. November, 2014

Socio-cognitive Engineering

A New Approach to Software Development Fusion Process Model

37 Game Theory. Bebe b1 b2 b3. a Abe a a A Two-Person Zero-Sum Game

Design and Implementation Options for Digital Library Systems

UNIT-III LIFE-CYCLE PHASES

Designing in the context of an assembly

2009 New Jersey Core Curriculum Content Standards - Technology

SIMGRAPH - A FLIGHT SIMULATION DATA VISUALIZATION WORKSTATION. Joseph A. Kaplan NASA Langley Research Center Hampton, Virginia

An Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment

Project Lead the Way: Principles of Engineering, (POE) Grades 9-12

Conceptual Metaphors for Explaining Search Engines

Project Lead the Way: Civil Engineering and Architecture, (CEA) Grades 9-12

PaperCut Blackboard Interface Functionality Overview & Design

Techniques for Generating Sudoku Instances

VICs: A Modular Vision-Based HCI Framework

PBL Challenge: Of Mice and Penn McKay Orthopaedic Research Laboratory University of Pennsylvania

Module Role of Software in Complex Systems

Bringing Smart Buildings to Life

Aesthetics Change Communication Communities. Connections Creativity Culture Development. Form Global interactions Identity Logic

ARTEMIS The Embedded Systems European Technology Platform

AGENTLESS ARCHITECTURE

Grade 5: Technology Curriculum Warren Hills Cluster (Pre-K 8) NJCCCS Alignment Essential Questions Understandings. Technology. uses of technology?

A Design of Infographics by using MVC Design Patterns Based on N-Tier Platform

Where does architecture end and technology begin? Rami Razouk The Aerospace Corporation

application of design automation to reduce cycle time of hydro turbine design

Page 1 of 8 Graphic Design I Curriculum Guide

A Mashup of Techniques to Create Reference Architectures

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

Project Lead The Way Curriculum Map Grade: 6. SKILL: What we want students to DO. It is expected that students will:

Indiana K-12 Computer Science Standards

Trenton Public Schools. Fourth Grade Technological Literacy 2013

Abstract. Justification. Scope. RSC/RelationshipWG/1 8 August 2016 Page 1 of 31. RDA Steering Committee

Software Life Cycle Models

Best practices in product development: Design Studies & Trade-Off Analyses

TENNESSEE ACADEMIC STANDARDS--FIFTH GRADE CORRELATED WITH AMERICAN CAREERS FOR KIDS. Writing

The AMADEOS SysML Profile for Cyber-physical Systems-of-Systems

Study: Visual Communication & Design

PBL Challenge: DNA Microarray Fabrication Boston University Photonics Center

Toward a Conceptual Comparison Framework between CBSE and SOSE

GUIDE TO SPEAKING POINTS:

Design thinking, process and creative techniques

High Speed Digital Systems Require Advanced Probing Techniques for Logic Analyzer Debug

Photoshop Domain 2: Identifying Design Elements When Preparing Images

THE WORLDWIDE GRAPHIC LANGUAGE FOR DESIGN

GAME THEORY: STRATEGY AND EQUILIBRIUM

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

Trust and Commitments as Unifying Bases for Social Computing

Inequality as difference: A teaching note on the Gini coefficient

TENNESSEE SCIENCE STANDARDS *****

1. Historical Development of SSDMs

- 9_12TI7973-QUIZ2 - Print Test

Implementing BIM for infrastructure: a guide to the essential steps

Multiple Antenna Processing for WiMAX

Methodology for Agent-Oriented Software

Creating Scientific Concepts

The J2 Universal Tool-Kit - Linear Analysis with J2 Classical

The Multi-Mind Effect

Technology Engineering and Design Education

PRICING FINE ART COMPOSITES FOR DOMESTIC CLIENTS EARN YOUR WORTH

Quiddler Skill Connections for Teachers

Project Example: wissen.de

Distilling Scenarios from Patterns for Software Architecture Evaluation A Position Paper

PASSAIC COUNTY TECHNICAL INSTITUTE 45 Reinhardt Road Wayne, NJ. Academic Curriculum Unit Planner. Multimedia & CAD. Course # S7120.

Modelling of robotic work cells using agent basedapproach

REPRESENTATION, RE-REPRESENTATION AND EMERGENCE IN COLLABORATIVE COMPUTER-AIDED DESIGN

Prepared by the YuMi Deadly Centre Faculty of Education, QUT. YuMi Deadly Maths Year 6 Teacher Resource: SP Loaded dice

Wood Working. Technology Diffusion Synthesize information, evaluate and make decisions about technologies.

An Exploratory Study of Design Processes

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

CHAPTER 1 DESIGN AND GRAPHIC COMMUNICATION

Lecture 13: Requirements Analysis

Today. Sketching and Toolkits. Questions? Announcements 10/02/2017. February 9, Finishing coding activity. Sketching.

Unit Title: Drawing Concept Art for Computer Games

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

Developing Algebraic Thinking

6. FUNDAMENTALS OF CHANNEL CODER

UNIT VIII SYSTEM METHODOLOGY 2014

Evolving a Software Requirements Ontology

Interoperable systems that are trusted and secure

GREATER CLARK COUNTY SCHOOLS PACING GUIDE. Algebra I MATHEMATICS G R E A T E R C L A R K C O U N T Y S C H O O L S

CATHOLIC REGIONAL COLLEGE SYDENHAM. Study: Studio Arts

CONTENT PATTERNS Joint Panel. Finding Essentials from Cloud-based Systems and Big Data. Namics.

BEYOND SHALL STATEMENTS: MODERNIZING REQUIREMENTS ENGINEERING

2.6.1: Program Outcomes

Foundations for Functions

Grundlagen des Software Engineering Fundamentals of Software Engineering

BIM and Urban Infrastructure

Real-Time Face Detection and Tracking for High Resolution Smart Camera System

MECHANICAL DESIGN LEARNING ENVIRONMENTS BASED ON VIRTUAL REALITY TECHNOLOGIES

Concept Connect. ECE1778: Final Report. Apper: Hyunmin Cheong. Programmers: GuanLong Li Sina Rasouli. Due Date: April 12 th 2013

Trenton Public Schools. Eighth Grade Technological Literacy 2013

ND STL Standards & Benchmarks Time Planned Activities

India & Brazil: a comparative table

Transcription:

Designing Architectures Lecture 4 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. How Do You Design? Where do architectures come from? Creativity 1) Fun! 2) Fraught with peril 3) May be unnecessary 4) May yield the best 1) Efficient in familiar terrain 2) Not always successful 3) Predictable outcome (+ & - ) 4) Quality of methods varies Method 2 1

Objectives Creativity Enhance your skillset Provide new tools Method Focus on highly effective techniques Develop judgment: when to develop novel solutions, and when to follow established method 3 Engineering Design Process Feasibility stage: identifying a set of feasible concepts for the design as a whole Preliminary design stage: selection and development of the best concept. Detailed design stage: development of engineering descriptions of the concept. Planning stage: evaluating and altering the concept to suit the requirements of production, distribution, consumption and product retirement. 4 2

Potential Problems If the designer is unable to produce a set of feasible concepts, progress stops. As problems and products increase in size and complexity, the probability that any one individual can successfully perform the first steps decreases. The standard approach does not directly address the situation where system design is at stake, i.e. when relationship between a set of products is at issue. As complexity increases or the experience of the designer is not sufficient, alternative approaches to the design process must be adopted. 5 Alternative Design Strategies Standard Linear model described above Cyclic Process can revert to an earlier stage Parallel Independent alternatives are explored in parallel Adaptive ( lay tracks as you go ) The next design strategy of the design activity is decided at the end of a given stage Incremental Each stage of development is treated as a task of incrementally improving the existing design 6 3

Identifying a Viable Strategy Use fundamental design tools: abstraction and modularity. But how? Inspiration, where inspiration is needed. Predictable techniques elsewhere. But where is creativity required? Applying own experience or experience of others. 7 The Tools of Software Engineering 101 Abstraction Abstraction(1): look at details, and abstract up to concepts Abstraction(2): choose concepts, then add detailed substructure, and move down Example: design of a stack class Separation of concerns 8 4

A Few Definitions from the OED Online Abstraction: The act or process of separating in thought, of considering a thing independently of its associations; or a substance independently of its attributes; or an attribute or quality independently of the substance to which it belongs. Reification: The mental conversion of [an] abstract concept into a thing. Deduction: The process of drawing a conclusion from a principle already known or assumed; spec. in Logic, inference by reasoning from generals to particulars; opposed to INDUCTION. Induction: The process of inferring a general law or principle from the observation of particular instances (opposed to DEDUCTION, q.v.). 9 Abstraction and the Simple Machines What concepts should be chosen at the outset of a design task? One technique: Search for a simple machine that serves as an abstraction of a potential system that will perform the required task For instance, what kind of simple machine makes a software system embedded in a fax machine? At core, it is basically just a little state machine. Simple machines provide a plausible first conception of how an application might be built. Every application domain has its common simple machines. 10 5

Simple Machines Domain Graphics Word processing Process control Income Tax Software Web pages Scientific computing Banking Pixel arrays Transformation matrices Widgets Abstract depiction graphs Structured documents Layouts Finite state machines Hypertext Spreadsheets Form templates Hypertext Composite documents Matrices Mathematical functions Spreadsheets Databases Transactions Simple Machines 11 Choosing the Level and Terms of Discourse Any attempt to use abstraction as a tool must choose a level of discourse, and once that is chosen, must choose the terms of discourse. Alternative 1: initial level of discourse is one of the application as a whole (step-wise refinement). Alternative 2: work, initially, at a level lower than that of the whole application. Once several such sub-problems are solved they can be composed together to form an overall solution Alternative 3: work, initially, at a level above that of the desired application. E.g. handling simple application input with a general parser. 12 6

Separation of Concerns Separation of concerns is the subdivision of a problem into (hopefully) independent parts. The difficulties arise when the issues are either actually or apparently intertwined. Separations of concerns frequently involves many tradeoffs Total independence of concepts may not be possible. Key example from software architecture: separation of components (computation) from connectors (communication) 13 The Grand Tool: Refined Experience Experience must be reflected upon and refined. The lessons from prior work include not only the lessons of successes, but also the lessons arising from failure. Learn from success and failure of other engineers Literature Conferences Experience can provide that initial feasible set of alternative arrangements for the design as a whole. 14 7

Patterns, Styles, and DSSAs 15 : ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission. Domain-Specific Software Architectures A DSSA is an assemblage of software components specialized for a particular type of task (domain), generalized for effective use across that domain, and composed in a standardized structure (topology) effective for building successful applications. Since DSSAs are specialized for a particular domain they are only of value if one exists for the domain wherein the engineer is tasked with building a new application. DSSAs are the pre-eminent means for maximal reuse of knowledge and prior development and hence for developing a new architectural design. 16 8

Architectural Patterns An architectural pattern is a set of architectural design decisions that are applicable to a recurring design problem, and parameterized to account for different software development contexts in which that problem appears. Architectural patterns are similar to DSSAs but applied at a lower level and within a much narrower scope. 17 State-Logic-Display: Three-Tiered Pattern Application Examples Business applications Multi-player games Web-based applications 18 : ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission. 9

Model-View-Controller (MVC) Objective: Separation between information, presentation and user interaction. When a model object value changes, a notification is sent to the view and to the controller. So that the view can update itself and the controller can modify the view if its logic so requires. When handling input from the user the windowing system sends the user event to the controller; If a change is required, the controller updates the model object. 19 Model-View-Controller 20 : ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission. 10

Sense-Compute-Control Objective: Structuring embedded control applications 21 : ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission. The Lunar Lander: A Long-Running Example A simple computer game that first appeared in the 1960 s Simple concept: You (the pilot) control the descent rate of the Apollo-era Lunar Lander Throttle setting controls descent engine Limited fuel Initial altitude and speed preset If you land with a descent rate of < 5 fps: you win (whether there s fuel left or not) Advanced version: joystick controls attitude & horizontal motion 22 11

Sense-Compute-Control LL 23 : ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission. Architectural Styles An architectural style is a named collection of architectural design decisions that are applicable in a given development context constrain architectural design decisions that are specific to a particular system within that context elicit beneficial qualities in each resulting system A primary way of characterizing lessons from experience in software system design Reflect less domain specificity than architectural patterns Useful in determining everything from subroutine structure to top-level application structure Many styles exist and we will discuss them in detail in the next lecture 24 12

Definitions of Architectural Style Definition. An architectural style is a named collection of architectural design decisions that are applicable in a given development context constrain architectural design decisions that are specific to a particular system within that context elicit beneficial qualities in each resulting system. Recurring organizational patterns & idioms Established, shared understanding of common design forms Mark of mature engineering field. Shaw & Garlan Abstraction of recurring composition & interaction characteristics in a set of architectures Taylor 25 Basic Properties of Styles A vocabulary of design elements Component and connector types; data elements e.g., pipes, filters, objects, servers A set of configuration rules Topological constraints that determine allowed compositions of elements e.g., a component may be connected to at most two other components A semantic interpretation Compositions of design elements have well-defined meanings Possible analyses of systems built in a style 26 13

Benefits of Using Styles Design reuse Well-understood solutions applied to new problems Code reuse Shared implementations of invariant aspects of a style Understandability of system organization A phrase such as client-server conveys a lot of information Interoperability Supported by style standardization Style-specific analyses Enabled by the constrained design space Visualizations Style-specific depictions matching engineers mental models 27 Style Analysis Dimensions What is the design vocabulary? Component and connector types What are the allowable structural patterns? What is the underlying computational model? What are the essential invariants of the style? What are common examples of its use? What are the (dis)advantages of using the style? What are the style s specializations? 28 14

Some Common Styles Traditional, languageinfluenced styles Main program and subroutines Object-oriented Layered Virtual machines Client-server Data-flow styles Batch sequential Pipe and filter Shared memory Blackboard Rule based Interpreter Interpreter Mobile code Implicit invocation Event-based Publish-subscribe Peer-to-peer Derived styles C2 CORBA 29 Main Program and Subroutines LL 30 : ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission. 15