CPSC 871 John D. McGregor Module 3 Session 1 Architecture.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Instructor: Tasneem Darwish
The Architecture Design Process
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Software Architecture in Practice
Chapter 6 Functional Modeling
Functional Modeling Chapter 6.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
What is Software Architecture?
Chapter 10 Architectural Design
Chapter 7 Structuring System Process Requirements
CPSC 872 John D. McGregor Session 16 Design operators.
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
SOFTWARE DESIGN.
Software Architecture in Practice Architectural description (The reduced version)
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architecture CS3300 Fall Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Chapter 6 – Architectural Design CSE-411, Dr. Shamim H Ripon.
©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.
Systems Analysis and Design in a Changing World, 3rd Edition
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
TAL7011 – Lecture 4 UML for Architecture Modeling.
CPSC 372 John D. McGregor Module 3 Session 5 Assignment and References.
John D. McGregor Class 4 – Initial decomposition
1 CMPT 275 High Level Design Phase Modularization.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Scenario-Based Analysis of Software Architecture Rick Kazman, Gregory Abowd, Len Bass, and Paul Clements Presented by Cuauhtémoc Muñoz.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
CPSC 875 John D. McGregor Design Concept. Functional decomposition.
John D. McGregor Architecture Evaluation
Lecture VIII: Software Architecture
1 BTS330 Visual Modeling. What is Visual Modeling? 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
CPSC 875 John D. McGregor Design Concept C5. ALISA
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
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.
CpSc 875 John D. McGregor C11 - Documentation. Stock trading system trading-system-architecture- post/#prettyPhoto[slides]/7/
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
Architecture Concept Documents
Software Design and Architecture
Part 3 Design What does design mean in different fields?
John D. McGregor Quality attributes
John D. McGregor C8 - Tactics
What is an Architecture?
Unified Modeling Language
Analysis models and design models
An Introduction to Software Architecture
What is an Architecture?
Chapter 5 Architectural Design.
Presentation transcript:

CPSC 871 John D. McGregor Module 3 Session 1 Architecture

Session Objectives Give an overview of software architecture principles

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 in Practice (2nd edition)Software Architecture in Practice (2nd edition), Bass, Clements, Kazman; Addison-Wesley 2003

Warning!! The following single pictures are NOT architectures but simplified architecture cartoons.

Connected Services

Android open architecture

Eclipse architecture

Essential elements Components - a unit in which some program logic resides – should be a single concept Connectors – joins two components via some relationship – data or control or both flow over the connector from one component to the other Ports – a device on a component that allows data/control to flow into or out of the component Illustrated using the AADL

Architecture actions The architect forms concepts that are contained in components and connects components that – Need data from the other component – Is the next piece of work to be done – Will refine what has already been done – And many other things Components often are formed to satisfy a functional requirement

Quality attributes How the components are formed and how they are connected affects the quality attributes The larger a component, the more complex it is The more public its internals are the more testable it is The more connectors there are the less maintainable the system is

Flows The architect does not do detailed design within a certain level of component so the architecture simply shows a flow through from an in port to an out port Process P1 System implementation S1.impl Process P2 C1 C5 C3 flow path F5 flow path F7

Styles An architecture style is a pattern that is repeated from one system to another because it solves a standard problem. A style is like a design pattern but on a higher, more abstract level.

Example - Layered Many systems use the “layered” pattern as an underlying structure. The architecture for my infotainment example begins as a layered system. “Layered” requires that an element in one layer only communicate with elements in an adjacent layer. All relations either go up or down but not a mixture. This improves several attributes including maintainability, testability, and portability. The figure on the next page shows a layered architecture in which “uses” is the relationship. A component can use what is below it in the figure but can not use what is above it.

Infotainment Architecture

Interactive systems Many of the software systems we develop are interactive or reactive. An action is taken that modifies the state of the system and the new state is reflected in what the user sees on the screen. Menus change, graphics change, text changes. There are usually multiple windows and changes may be made in several of these. A popular architecture for this is Model/View/Controller

MVC Model encapsulates all data View shows some of the data; may have several views at the same time Controller responds to external events such as mouse clicks Enhances modularity, modifiability, portability but not performance

Java Beans Application

Views and Viewpoints One entity, three views, three different impressions This is why we call the single picture of an architecture a cartoon We needs as many different views as are necessary to communicate the complete picture

Views and Viewpoints - 2 A view is a representation of one or more structural aspects of an architecture that illustrates how the architecture addresses one or more concerns held by one or more of its stakeholders. [IEEE 1471] A viewpoint is a collection of patterns, templates, and conventions for constructing one type of view. It defines the stakeholders whose concerns are reflected in the viewpoint and the guidelines, principles, and template models for constructing its views. [IEEE 1471] The multiple pages in a building’s blueprint are different views from different viewpoints.

Standard Viewpoints Functional – what does the system do – The use case diagrams give one view Information – what does the system do it to – class diagram gives data structures – sequence diagrams give flow of data Concurrency – how is work on the data sequenced – sequence and activity diagrams

Architecture process Input => functional and non-functional requirements Generate quality attribute scenarios Have stakeholders prioritize them Choose high level style Begin a recursive decent of decomposition When appropriate level of detail is reached evaluate the architecture against the scenarios

Structure of scenario Source of stimulus (e.g., human, computer system, etc.) Source of stimulus (e.g., human, computer system, etc.) Stimulus – a condition that needs to be considered Stimulus – a condition that needs to be considered Environment - what are the conditions when the stimulus occurs? Environment - what are the conditions when the stimulus occurs? Artifact – what elements of the system are stimulated. Artifact – what elements of the system are stimulated. Response – the activity undertaken after arrival of the stimulus Response – the activity undertaken after arrival of the stimulus Response measure – when the response occurs it should be measurable so that the requirement can be tested. Response measure – when the response occurs it should be measurable so that the requirement can be tested.

Performance scenario Source of stimulus – typically an actor – Any user Source of stimulus – typically an actor – Any user Stimulus – clicks on save button Stimulus – clicks on save button Environment – data has been entered into a matrix editor Environment – data has been entered into a matrix editor Artifact – data matrix Artifact – data matrix Response – the data is written to the current file Response – the data is written to the current file Response measure – takes less than 2 seconds to write Response measure – takes less than 2 seconds to write What other attributes for our problem?

Decomposition Our value computation is an interactive system. So we can start with MVC from slide 16 and decompose from there. Controller Model View Controller Model Data Editor System menu Properties editor Controller System Model Controller Editor Model Data Editor System menu Properties editor Controller

Extension System Model Controller Editor Model Data Editor System menu Properties editor Controller System Model Controller Editor Model Data Editor System menu Properties editor Controller DataBase

Design Structure Matrix

DSM modelviewcontroller model x view 1x controller 11x Controller Model View

Reference architectures A reference architecture is the architecture for a family of systems instead of just one. Defining a reference architecture involves looking for those common elements across all products in the family. The reference architecture often defines a standard set of viewpoints to be used in documenting the product specific architecture.

DoD Reference Architecture This link points to a description of the DoD Reference Architecture s/Ref_Archi_Description_Final_v1_18Jun10.pd f s/Ref_Archi_Description_Final_v1_18Jun10.pd f The document also points to other reference architectures.

Reference architecture