1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.

Slides:



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

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Design Creative Process of transferring the problem into a solution
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
The Architecture Design Process
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Establishing the overall structure of a software system
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
Software Architecture – Pipe and Filter Model
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Architecture
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
CS451 Lecture 13: Architectural Design Chapter 10
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©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.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Architectural Design, Distributed Systems Architectures
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Lecture 9: Chapter 9 Architectural Design
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
1 Introduction to Software Architectures Lecture - 3.
SOFTWARE DESIGN.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
SE: CHAPTER 7 Writing The Program
Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.
©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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 8 Architectural Design Slide 1 1 Chapter 8 Architectural Design.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
John D. McGregor Class 4 – Initial decomposition
1 CMPT 275 High Level Design Phase Modularization.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
CSC480 Software Engineering Lecture 10 September 25, 2002.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Lecture VIII: Software Architecture
ANU comp2110 Software Design lecture 10 COMP2110 Software Design in 2004 lecture 10 Software Architecture 2 of 2 design lecture 5 of 6 Goal of this small.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
BZUPAGES.COMSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Software architecture
IS301 – Software Engineering Dept of Computer Information Systems
SOFTWARE DESIGN AND ARCHITECTURE
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
Architectural Design.
Chapter 9 Architectural Design.
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Presentation transcript:

1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML

2 Software Architecture After requirements (what to build), next step is design (how to build it) Often split into two phases –High-level design (aka Architectural design) –Low-level design (aka detailed design) So architecture = initial design decisions –often graphical (boxes and arrows)

3 Choose Wisely “Marry your architecture in haste, repent at your leisure.” – Barry Boehm “Software is transparent and malleable in the small, but opaque and brittle in the large.”

4 Software Architecture: What? It’s an abstraction of the system that enables you to reason about critical aspects of its behavior –“intellectually graspable” What to abstract away? –anything you can, unrelated to critical behavior –art in choosing level of abstraction (details to support reasoning, simplification to be able to grasp) What’s left in? –components, connectors, interactions –may want multiple views

5 Architecture as Modular Decomposition An architecture specifies how the system is decomposed into cooperating modules. What is a module? Why are modules good? Which modules are good? Which modular decompositions are good?

6 Module Some way to break a program into pieces and relationships –Lexically contiguous sequence of program statements, having an aggregate identifier (Yourden and Constantine, 1979) –Java: package, class, method not so much a statement block {}, expression

7 Characteristics of Good Modules Support thinking-inside –High cohesion (single purpose) –Complete (can understand with little context) and reusable –All methods focus on attributes associated with the object Support thinking-outside (abstraction) –Low coupling (simple interface) –Information hiding (implementation/representation details)

8 Example module decomposition: What’s good and not-so-good?

9 Evaluating an Architecture Consider a collection of change case scenarios For each scenario, estimate changed LOC Sum over all scenarios –(probability of scenario changing) x (changed LOC for scenario) Gives indication of evolveability of architecture –good selection of scenarios is critical Hard to do in practice

10 Architectural Models Architectural Models distill essence of past successes –recurring solutions to recurring problems –“Set of constraints on an architecture that defines a set or family of architectures that satisfies them” from SWEBOK –like design patterns, but at strategic, whole system scale –some may seem familiar/obvious

11 Call/Return Architecture

12 Layered Architecture

13 Layered Architecture

14 Data-Flow Architecture

15 Dataflow Architecture Each component has a set of inputs and outputs. A component reads a stream of data on its input and produces a stream of data on its outputs. Input is transformed both locally and incrementally so that output begins before input is consumed (a parallel system). Components are called filters; independent, don’t know other filters. –If every filter process all data at one go, is batch sequential Connectors serve as conduits for the information streams and are termed pipes –specializations: pipeline (single sequence thru), bounded (amount in pipe is restricted) Common style: Unix, compilers, signal processing, parallel systems, distributed systems

16 Dataflow Architecture easy understanding of the system's behavior as the composition of filters obvious reuse easy to maintain and enhance support concurrent execution often leads to batch processing - when all goes thru first filter then all thru 2nd poor for interactive apps may force lowest common denominator on data transmission, resulting in added work for each filter to parse input and format output data which can, in turn, affect performance and increase complexity of the filters Pro Con

17 Client-Server Model (Two Tier)

18 Limitations of Two Tier Architecture Fat client –does application code (code update problem) Thin client –just user interface code (overloads server) Really have three conceptual layers –user interface –application code –data storage

19 Three-Tier Model

20 Crafting a Good Architecture Understand domain Internalize common architectural models Evaluate (see earlier) Iterate Choose your architecture wisely.

21 Design Deliverable Expectations After Architecture comes (detailed) design Both are together in same deliverable –allows iteration on architecture –due May 4 Most technically challenging deliverable –plan to review designs in class May 4 Blue Team, 9 - Awesome and Quadratron, 11 – PhermWare and SKARGO, 16 – ZeroVector –one per day, 30+ minutes –interactive would you want to be involved in implementing this design? can you make it better?