What’s the Difference Between Architecture and Design Paul Clements Subrahmanyam Allamaraju.

Slides:



Advertisements
Similar presentations
Connected Health Framework
Advertisements

2 Introduction A central issue in supporting interoperability is achieving type compatibility. Type compatibility allows (a) entities developed by various.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Chapter 2 – Software Processes
Analysis Modeling.
May 14, May 14, 2015May 14, 2015May 14, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,
Developing Information Security Policy. Why is Developing Good Security Policy Difficult? Effective Security/IA Policy is more than locking doors and.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
Software Engineering General Project Management Software Requirements
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Requirement Engineering – A Roadmap
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Information Modeling: The process and the required competencies of its participants Paul Frederiks Theo van der Weide.
Software Architecture in Practice
Chapter 6 Functional Modeling
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
What is Software Architecture?
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Engineering, Operations & Technology | Information TechnologyAPEX | 1 Copyright © 2009 Boeing. All rights reserved. Architecture Concept UG D- DOC UG D-
Architecture Evaluation Evaluation Factors Evaluation by the designer Every time the designer makes a key design decision or completes a design milestone,
Software Engineering ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Architecting Web Services Unit – II – PART - III.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
10 Software Architecture CSCU 411 Software Engineering.
1 / 18 CS 425/625 Software Engineering Requirements Engineering Processes Based on Chapter 6 of the textbook [Somm00] Ian Sommerville, Software Engineering,
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Software Engineering COSC 4460 Class 4 Cherry Owen.
Chapter © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
An Architecture-Centric Process
The Rational Unified Process 1 EECS810: Software Engineering.
Software Prototyping Rapid software development to validate requirements.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CSE 303 – Software Design and Architecture
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Real-Time Systems, Events, Triggers. Real-Time Systems A system that has operational deadlines from event to system response A system whose correctness.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
Basic Concepts and Definitions
4+1 View Model of Software Architecture
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Systems Architectures System Integration & Architecture.
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
1 Essential Software Architecture Documenting a Software Architecture.
Development of Concepts for R&D Management R&D in an Individual Enterprise.
Reference Architecture for NASA’s Earth Science Data Systems Richard Ullman ES-DSWG-SPG Chair NASA/GSFC Code 586.
Process 4 Hours.
Software Prototyping.
Chapter 24: Architecture Competence
Advance Software Engineering
SOFTWARE ARCHITECTURE AND DESIGN
Paul Scerri and Nancy Reed
From Use Cases to Implementation
Logical Architecture & UML Package Diagrams
Presentation transcript:

What’s the Difference Between Architecture and Design Paul Clements Subrahmanyam Allamaraju

Architecture and Design All architecture is design NOT all design is architecture Architect draws the boundary between architectural and non-architectural design

Traits of the Software Architect Gained enough breadth and depth in the relevant domain Strong communication/development/debugging skills “cross domain and technology proficiency and appreciation” “knowledge of patterns in domain/technology areas” Looking for challenging problems In summary: SUPER ENGINEER

What is Software Architecture? Represents the structure of the software Expressed using certain views Includes principles behind the design and evolution of the software Essential characteristics of architecture: –High level view –Realize ALL the use case scenarios –Present a systemic view to all stakeholders

Examples of Architectures (all of these are incomplete) High level Design –Only contains the implementer’s view of the software Deployment –Concerns how software is deployed across various platforms Generic Technology Architectures –Examples: COM, CORBA –Does not address the domain the software must exist and evolve in

Survival and Evolution Software survives as long as it meet the requirements for which it was built Software must evolve to meet future requirements Software Architecture’s fundamental requirement: “design a structure for the software considering the long-term consequences”

Architecture Paradox Survival vs Evolution 1.There is pressure on successful to change –New requirements –Changing environment 2.Software must evolve to survive 3.Changes increase the entropy of the software 4.Changes eventually increase the entropy to a point to where further changes are impossible 5.Software cannot evolve, therefore cannot survive

How to defy the Software Paradox Identify the goals of the architecture Discover the principles based on the goals Design an architecture integrating these principles

Identify the goals of architecture best-case requirements long term organizational focus reuse considerations User wish lists Other anticipated changes

Goals to principles “discover” the principles the software must follow to meet its goals Principles will guide designers to find the “right” implementation Principles may be expressed as rules –DOs and DONTS Enforcing these principles is difficult

Integration of Principles and Architecture Remove the human element from enforcement of principles Software structure will dictate: –How the software will be changed –What changes are possible –What changes are not possible

Summary Software can defy the architecture paradox if: –The structure can accommodate changes –A set of architecture goals is abstracted –Devise a set of principles to realize the goals –Integrate the principles into the architecture