The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Software Architecture in Practice (3 rd Ed) Introduction The Many Contexts of Software Architecture Architecture in a Technical Context Architectures inhibit.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
OASIS Reference Model for Service Oriented Architecture 1.0
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
The Architecture Design Process
SE 555 Software Requirements & Specification Requirements Management.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Software Architecture in Practice
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
Software Architecture in Practice
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Context of Software Product Design.
What is an Architecture?. An Example? Invoice OrderDelivery Customer.
S/W Project Management
Health promotion and health education programs. Assumptions of Health Promotion Relationship between Health education& Promotion Definition of Program.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Engineering Design Resolution & Design Principles.
Software Project Management Introduction to Project Management.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Engineering, Operations & Technology | Information TechnologyAPEX | 1 Copyright © 2009 Boeing. All rights reserved. Architecture Concept UG D- DOC UG D-
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Architecture Business Cycle
1 Architecture Business Cycle CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Monday, Sep 5, 2011 SA Ch 1.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
1 Introduction to Software Architectures Lecture - 3.
SOFTWARE DESIGN.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
10 Software Architecture CSCU 411 Software Engineering.
Lecture 7: Requirements Engineering
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Stages of design  High level design  High level data structure  Architecture  Low level design-code design  Algorithms  Low level data structures.
Basic Concepts and Definitions
CS223: Software Engineering Lecture 16: The Agile Methodology.
Documenting Software Architectures. Outline  Introduction  Uses of Architectural Documentation  Views  Choosing the Relevant Views  Documenting a.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Achieving Critical System Qualities Through Software Architecture Dr. Stuart Faulk Computer and Information Science University of Oregon.
Process 4 Hours.
Chapter 2 Object-Oriented Paradigm Overview
Unit-1 INTRODUCTION Presented by Sushma Narasimhan Asst. Professor,
Chapter 24: Architecture Competence
Lecture 17 ATAM Team Expertise
SOFTWARE ARCHITECTURE AND DESIGN
What is an Architecture?
Software Design Lecture : 8
Baisc Of Software Testing
What is an Architecture?
Systems Architecture and Engineering
Presentation transcript:

The Architecture Business Cycle

Software Architecture Definition The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.

The Architecture Business Cycle (ABC)  Software architecture is a result of technical, business, and social influences.  Its existence, in turn, influences these technical, business, and social environments.  This cycle of influences from the environment to the architecture and back to the environment is called the Architecture Business Cycle.

Where Do Architectures Come From?  Architectures are influenced by: System stakeholders The developing organization The background and experience of the architects The technical environment

Ramifications of the Various Influences on an Architecture  The properties required by the business and organizational goals are seldom completely understood.  Customer requirements are often not complete or well documented.  Architects must identify and actively engage stakeholders to solicit their needs and expectations.  In addition to technical skills, architects need to be skilled in diplomacy, negotiation, and communication.

Architectures Affect the Factors that Influence Them  The architecture affects the structure of the developing organization.  The architecture can affect the goals of the developing organization.  The architecture can affect customer requirements for the next system.  The architecture will affect the architectures of future systems.  The architecture may affect the software engineering culture.

Software Architecture Activities  Creating the business case for the system.  Understanding the requirements  Creating or selecting the architecture  Communicating the architecture  Analyzing or evaluating the architecture  Implementing based on the architecture  Ensuring conformance to an architecture

What Makes a Good Architectural Process?  The architecture should be the product of a single architect or small group of architects.  The architect should gather both the functional requirements and a well specified, prioritized list of quality attributes.  The architecture should be well documented, with at least one static view and one dynamic view.  The architecture should be reviewed by the system’s stakeholders.

What Makes a Good Architectural Process? (Cont’d)  The architecture should be analyzed for applicable quantitative measures (e.g., maximum throughput) and formally evaluated for quality measures.  A “skeletal” system should be developed to facilitate incremental implementation.  Resource contention areas should be minimized and clearly identified.

What Makes a Good Architectural Structure?  The architecture should feature well-defined modules based on the principles of information hiding and separation of concerns.  Each module should have a well-defined interface that hides changeable aspects.  Quality attributes should be achieved using well-know architectural tactics.  The architecture should be independent of particular versions of commercial products or tools.

What Makes a Good Architectural Structure? (Cont’d)  Modules that produce data should be separate from modules that consume data.  For parallel-processing systems, the architecture should feature well-defined processes or tasks that do not necessarily mirror the module decomposition structure.  Every task or process should be specified so that its assignment to a particular processor can be easily changed.  The architecture should contain a small number of simple interaction patterns.