Software Architecture CS3300 Fall 2015. Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP.

Slides:



Advertisements
Similar presentations
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Advertisements

By Philippe Kruchten Rational Software
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Outline About author. The problem that discussed in the article.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
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.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
The Architecture Design Process
Site Skin Structure Services Space plan Stuff Software Architecture and Software Architecture Patterns (1)
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
Unified Modeling (Part I) Overview of UML & Modeling
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Software Architecture in Practice
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.
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?
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
What is Software Architecture?
Developing Enterprise Architecture
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
UML - Development Process 1 Software Development Process Using UML (2)
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.
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Software Architecture in Practice Architectural description (The reduced version)
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Lecture 7: Requirements Engineering
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
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.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Unified Modelling Language (UML) Software Engineering Lab. Sharif University of Technology.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
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.
1 Unified Modeling Language, Version 2.0 Chapter 2.
CS223: Software Engineering Lecture 13: Software Architecture.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Quality Consulting Module 7 Solution Development.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Software Architecture
Software Architecture
OO Methodology OO Architecture.
SOFTWARE ARCHITECTURE AND DESIGN
Software Architecture and
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Starting Design: Logical Architecture and UML Package Diagrams
An Introduction to Software Architecture
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
The ATAM – A Method for Architecture Evaluation
Software Architecture
Chapter 6: Architectural Design
Software Development Process Using UML Recap
Segments Introduction: slides minutes
Software Architecture
Presentation transcript:

Software Architecture CS3300 Fall 2015

Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP SRS In-Class Design Presentation/Review Test Plan (Behavioral and Unit tests under CM) Project Demo and Presentation (Monday Dead Week) Project Post-Mortem (Wednesday Dead Week)

Definition The term software architecture intuitively denotes the high level structures of a software system. It can be defined as the set of structures needed to reason about the software system, which comprise the software elements, the relations between them, and the properties of both elements and relations (Wikpedia)structuressoftware system Structural issues include gross organization and global control structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; scaling and performance; and selection among design alternatives. (Garlan and Shaw)

Definition Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural elements and their interfaces by which the system is composed; behavior as specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural style that guides this organization. Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns. (MSDN)

Definition The highest-level breakdown of a system into its parts; the decisions that are hard to change; there are multiple architectures in a system; what is architecturally significant can change over a system's lifetime; and, in the end, architecture boils down to whatever the important stuff is. (Martin Fowler) 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. Architecture is concerned with the public side of interfaces; private details of elements—details having to do solely with internal implementation—are not architectural (Bass and Clements)

Garlan and Shaw Styles Pipe and Filter ADT Blackboard Master-Controller Event Driven – Implicit Invocation

Architectural Views Looking at different aspects of the architecture. See the model paper. Logical -- Package groupings of classes Process – Threads and Processes Module – Code packages/namespaces/file organization Physical – Devices hosting software components Scenarios – Use cases that illustrate relationships

Physical view - Deployment Or also called a Technical Architecture From Scott Ambler, Elements of UML Style

Deployment Diagram UML

Keys to Success (Booch) Focusing on simplification, minimization, and clarification. Adapting the architecture to future customer needs, technology, competition, and business goals. Establishing a consistent and pervasive architectural rhythm—regular architecture and product releases that help coordinate the actions and expectations of all parties. Partnering and broadening relations with stakeholders. Maintaining a clear architecture vision across the enterprise. Proactively managing risks and opportunities.

Representing Architectures Architectural Description Languages (There are many!!!!) Architecture Analysis and Design Language (AADL paper) Figure 4.2 is graphical notation ACME – an architectural interchange language

Evaluating Architectures Architectures can only be evaluated against quality constraints Steps: Present the ATAM Present Business Drivers (Goals of System) Present Architecture (How does it satisfy goals) Identify Architecture Approaches (styles, subsystems) Generate Quality Attribute Utility Tree Analyze Architecture Approaches Prioritize Scenarios Analyze Architecture Approaches Present Results

Quality Attribute External Stimuli – Events that cause the architecture to respond or change. Architectural Decisions – Components/Connectors/Properties that have direct impact on achieving responses Responses – Observable/Measureable/Concrete

Scenarios Use Case: uses of the system The user wants to examine budgetary and actual data under different fiscal years without re-entering project data. (usability) Growth : anticipated changes to the system Migrate to a new operating system, or a new release of the existing operating system in less than a person-year of work. Exploratory : extreme changes that stress the system Tenfold increase in the number of bids processed hourly while keeping worst-case response time below 10 seconds.

Utility Tree See Figure 3, page 17 of ATAM document Ranked with Importance to System Success, Risk to achieve H,H (High importance, High Risk) L, H (Low importance, High Risk)

Product Line Architectures Establishing Commonality across products when you can. See case study, avionics product line See article: Applying Software Product Line Architectures Product Lines are not: fortuitous, small-grained reuse single-system development with reuse just component-based or service-based development just a reconfigurable architecture releases and versions of single products just a set of technical standards