Slide 1 Software Architecture SSE. Slide 2 Typical description of software architectures l Descriptions of software systems often include a section on.

Slides:



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

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Design Phase What’s design?
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Software Architecture Design Instructor: Dr. Jerry Gao.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Establishing the overall structure of a software system
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Software Architecture in Practice
Software Architecture: An Introduction
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Course Instructor: Aisha Azeem
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?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Architecture for DSD The “Uses” Relation.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
An Introduction to Software Architecture
Architecture Business Cycle
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Chapter 7 System models.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
CSC480 Software Engineering Lecture 10 September 25, 2002.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
CS223: Software Engineering Lecture 13: Software Architecture.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
OO Methodology OO Architecture.
Abstract descriptions of systems whose requirements are being analysed
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 425/625 Software Engineering Architectural Design
Software Architecture
An Introduction to Software Architecture
Presentation transcript:

Slide 1 Software Architecture SSE

Slide 2 Typical description of software architectures l Descriptions of software systems often include a section on “the architecture of this system” l Usually informal prose plus box-and-line diagram l Lots of appeal to intuition l Little precision, rarely formal

Slide 3 Typical description of software architectures con ’ t l Project is based on the client-server model and uses remote procedure calls both locally and remotely to provide communication among applications and servers l We have chosen a distributed, object-oriented approach to managing information

Slide 4 Typical description of software architectures con ’ t l The easiest way to make the canonical sequential compiler into a concurrent compiler is to pipeline the execution of the compiler phases over a number of processors l The ARC network follows the general network architecture specified by the ISO in the Open Systems Interconnection Reference Manual

Slide 5 Objectives l Learn to design, understand, and evaluate systems at an architectural level of abstraction l After the course you should be able to recognize different architectural styles describe an architecture accurately generate architectural alternatives evaluate architectural alternatives

Slide 6 Aren ’ t programming languages good enough? l When orders-of-magnitude improvement is required, new technology may be necessary With a stair case one reaches the roof of a house, a seven-story building requires more, and if you want to reach the moon …

Slide 7 Aren ’ t programming languages good enough? l Structuring a large collection of modules to form a system is an essentially distinct and different intellectual activity from that of constructing the individual modules l Correspondingly, essentially distinct and different languages should be used for the two activities

Slide 8 Course outline l The course is concerned with the analysis of architectural styles Data flow architectures Procedure based architectures Object oriented architectures Event driven architectures Layered architectures Distributed architectures …

Slide 9 Course outline con ’ t l For a architectural style we discuss its Evolution Vocabulary Advantages Disadvantages Formal models

Slide 10 Course outline con ’ t l We also discuss the role of software architectures in the software life cycle: Requirements analysis Architecture reviews Architecture reuse

Slide 11 Placement l Programming courses Object orientation Design patterns, frameworks l Software process UML

Slide 12 Literature l The course is based on the following literature M. Shaw and D. Garlan, Software Architecture, Prentice Hall 1996 L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice, Addison-Wesley 1998 C. Hofmeister, R. Nord and D. Soni, Applied Software Architecture, Addison-Wesley 2000 J. Boss, Product Line Architecture 2000 l and a number of articles

Slide 13 Software architecture l The software architecture of a program or computing system is the structure or structures of the system which comprise software components, the externally visible properties of those components, and the relationships among them l A description of the central parts of the software and their relationships on a high level of abstraction l The properties of software that concern its structure and behaviour which do not change over time

Slide 14 Why should one care? l Systems are getting more complex l Need for re-use l Problems with maintenance l Technologies that focus on architecture l Communications medium between different stakeholders l A basis for analysis in early stages l Helps to implement and maintain a system

Slide 15 Influences on the architect l Developing organisations management stakeholder Low cost, keeping people employed l Marketing stakeholder Neat features, short time to market, low cost, parity with competing products l End user stakeholder Behaviour, performance, security, reliability l Maintenance organisation stakeholder Modifiability l Customer stakeholder Low cost, timely delivery, not changes very often

Slide 16 Consequences of bad architectural design l System does not scale up l Poor performance l System is difficult to test l System is difficult to maintain l System is not portable

Slide 17 Reasons for bad architectural design l Bad communication l Unexperience l Preassure from the boss l Project organisation l Software process

Slide 18 Obs. about designers l They freely use informal patterns (idioms) Very informal, imprecise semantics Diagrams as well as prose, but no uniform rules Communication takes place anyhow l Vocabulary uses system-level abstractions Overall organisation (styles) Sort of components and interactions among them l They compose systems from subsystems Tend to think about system structure statically Often select organisation by default, not by design

Slide 19 Software architecture l The architecture of a software system Defines the system in terms of components and interactions among components Shows correspondence between requirements and elements of the constructed system Addresses system-level properties such as scale, capacity, throughput, consistence, compatibility

Slide 20 Software architecture l An architectural definition selects Components: define the locus of computation »Examples: filters, databases, objects, ADTs Connectors: mediate interactions of components »Examples: procedure calls, pipes, event broadcast Properties: specify info for construction and analysis »Examples: signatures, pre/post conds RT specs

Slide 21 Architectural design task Architecture l Interactions among parts l Structural properties l Declarative l Mostly static l System-level performance l Outside module boundary Programs l Implementations of parts l Computational prop. l Operational l Mostly dynamic l Algorithmic performance l Inside module boundary

Slide 22 Core ideas l Separate language for system description Domain includes modules and resources »Plus systems, if language has no closure rules Interconnection may be data or control Resources are namable entities Properties »Provide(export, synthesize) »Require(import, inherit) »Has-access-to and other ways to translate rights Separate ownership from visibility from use

Slide 23 Core ideas con ’ t l Static checking l Localise structural information l Version control, family control

Slide 24 Functions l Project management Structure first in design, consistemcy in terminology, interfaces l Design tool Establish program structure, engourage clean design l Testing and maintenance support Explicit definitions guide testing, support version control l Communication Discipline among subsystem developers l Documentation Clear, concise, formal, checkable description

Slide 25 BUT NOT … l Functionality, types, analysis, module implementation l Abstractions for system structures l Implementation vs. interaction

Slide 26 Putting SA in Context l Two main aspects of software architecture Provides a design plan (blueprint) Is an abstraction to help manage complexity

Slide 27 SA as a Design Plan l SA is a structural plan that describes The elements of the system How they fit together How they work together to fulfill the system’s requirements l SA is a bridge between system requirements and implementation As a design phase after the domain analysis, requirements analysisand risk analysis But before detailed design, coding, integration, and testing

Slide 28 SA as an Abstraction l SA should define and describe the elements of the system at a coarse granularity How do the elements fulfill the requirements Which elements are responsible for which functionality How they interact with each other How they interact with the outside world Dependencies on the execution platform

Slide 29 SA as an Abstraction con ’ t l The purpose of the SA is to describe the important aspects to others l The purpose is also to expose the important aspects so that the architect can reason about the system l Makes it easier to analyse trade-offs between conflicting requirements

Slide 30 SA terminology l Architectural style, architectural pattern Define element types and how they interact l Reference architecture, domain-specific software architecture Similar to the above, but apply to a particular domain l Product-line architecture Applies to a set of prpducts

Slide 31 Related terminology l Design pattern When a design pattern describes the interactions between architecture elements, it is part of SA When it describes the structure and interactions within architecture, it is part of detailed design l Framework A hybrid of architecture-level information and implementation »Architecture-level information is specified by giving a partial implementation