Dr. Rogelio Dávila Pérez

Slides:



Advertisements
Similar presentations
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Advertisements

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
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.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Software Architecture in Perspective SENG 480/580 (H. Muller) Today: Margaret-Anne Storey
Software Architecture in Practice
Nov. 14, 2007 Systems Engineering ä System ä A set or arrangement of things so related as to form a unity or organic whole. ä A set of facts, principles,
Software Architecture in Practice
Lecture Nine Database Planning, Design, and Administration
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Architectural Design.
What is Software Architecture?
Introduction to Systems Analysis and Design Trisha Cummings.
Chapter 10 Architectural Design
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 2Slide 1 Chapter 2 Computer-Based System Engineering As modified by Randy Smith.
Lecture 9: Chapter 9 Architectural Design
A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING Chapter 2 1 These slides are prepared by Enas Naffar to be used in Software requirements course - Philadelphia.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
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.
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.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 13 Architectural Design
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Lecture 7: Requirements Engineering
Why is Software Architecture Important? © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
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.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Software Architecture Assessment RAVI CHUNDURU CS6362 UTD Summer 2005.
Chapter 4 프로세스 모델 Process Models
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
TAL Lecture 1 Introduction to Software Architecture
Unit-1 INTRODUCTION Presented by Sushma Narasimhan Asst. Professor,
Documenting SW Architecture
Chapter 13 Architectural Design
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Advance Software Engineering
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
SOFTWARE ARCHITECTURE AND DESIGN
Software Engineering (CSI 321)
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Software Process Models
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Requirements Document
Software Architecture
Software Design Lecture : 5
Presentation transcript:

Dr. Rogelio Dávila Pérez Software Architectures Dr. Rogelio Dávila Pérez ITESM, Campus Cd. Juarez rdav90@gmail.com http://www.rogeliodavila.com/

Authorship The notes we introduce for this course consist of my personal abstraction of the material presented in the book: Software Architecture in Practice, Second edition. Len Bass, Paul Clements and Rick Kazman, SEI Series in Software Engineering, Addison-Wesley Co. 2003. Anything appart from the book’s material comes from my personal point of view on the topics presented.

Software Architecture “If a project has not achieved a system architecture, including its rationale, the project should not proceed to full-scale system development. Specifying the architecture as a deliverable enables its use throughout the development and maintenance process.” — Barry Boehm [Boe95]

Software Architecture Architecture has emerged as a crucial part of the design process. Software architectures (SA) encompasses the structures of large software systems. The architectural view of a system is abstract, distilling away details of implementation, algorithm and data representation. A software architecture is developed as the first step toward designing a system that has a collection of desired properties.

Software Architecture A building architect must design a building that provides accessibility, aesthetics, light, maintainability, and so on. A software architect must design a system that provides concurrency, portability, modifiability, usability, security, and the like, and that reflects consideration of the tradeoffs among these needs.

Software Architecture 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.

Software Architecture Where: Externally visible are those assumptions other elements can make of an element, such as: - provided services, - performance characteristics, - fault handling, - shared resource usage and so on.

Software Architecture Important remarks Architecture defines software elements. An architecture is an abstraction of a system that suppresses details of elements that do not affect how they use, are used by, relate to, or interact with other elements. Systems normally comprise more than one structure. A structure may express the implementation relations among the elements of the system. Another structure can show the way in which different components interact at running time. And so on.

Software Architecture Important remarks (cont.) Every computing system has a software architecture. Every system comprise elements and relations among them. The behavior of each element is part of the architecture. To the extent that an element’s behavior influences how another element must be written to interact with it or influences the acceptability of the system as a whole, this behavior is part of the software architecture.

Architectural Structures Different stages in developing a software architecture Architectural Pattern An architectural pattern is a description of element and relation types together with a set of constraints on how they may be used. Reference Model A reference model is a division of functionality together with data flow between the pieces. Reference Architecture A reference architecture is a reference model mapped onto software elements and the data flows between them. A reference architecture is the mapping of the functionality onto a system decomposition.

Architectural Structures Relationship among stages Reference Model Reference Architecture Software Architecture Architectural Pattern

Importance of Software Architecture (SA) Communication among stakeholders. Stakeholders of the system – customer, user, project manager, coder, tester, and so on. SA represents a common abstraction of the system that can be used as a basis for understanding, negotiation, consensus, and communication. Early design decision SA manifest the earliest design decisions about a system. It is also the earliest point at which design decisions governing the system to be built can be analyzed. Transferable abstraction of a system. A SA constitutes model of the structure and functionalities of the system. This model is transferable across systems when they exhibit similar quality attribute an functional requirements and promote large-scale re-use.

Architecture manifest the earliest design decisions What happen when I push this button? (presentar el caso pag. 27-29, libro [Bass03])

Architecture manifest the earliest design decisions The architecture defines constraints on implementation. The architecture defines organizational structure. The architecture inhibits or enables a system’s quality attributes. Predicting system qualities by studying the architecture. The architecture makes it easier to reason about and manage change. The architecture helps in evolutionary prototyping. The architecture enables more accurate cost and schedule estimates.

Architecture as a transferable, re-usable model Systems can be built using large, externally developed elements. Less is More: It pays to restrict the vocabulary to design alternatives. An architecture permits template-based development. An architecture can be the basis for training.

Architectural structures an views Communication among stakeholders. Stakeholders of the system – customer, user, project manager, coder, tester, and so on. SA represents a common abstraction of the system that can be used as a basis for understanding, negotiation, consensus, and communication. Early design decision SA manifest the earliest design decisions about a system. It is also the earliest point at which design decisions governing the system to be built can be analyzed. Transferable abstraction of a system. A SA constitutes model of the structure and functionalities of the system. This model is transferable across systems when they exhibit similar quality attribute an functional requirements and promote large-scale re-use.

Some remarks A software architecture describes elements of a system and the relation among them. Every system has many kinds of elements. Different architectural structures are useful, even necessary, to present a complete picture of the architecture of a system. Each structure concentrates on one aspect of the architecture.