ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.

Slides:



Advertisements
Similar presentations
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Advertisements

18 October Team Meetings  All team meetings for this week are cancelled (If you WANT to meet, I will)  Beginning next week, demo required at EVERY.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Designing the system Conceptual design and technical design
Software Architecture Design Instructor: Dr. Jerry Gao.
CS 425/625 Software Engineering System Models
Patterns Design 13 February.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Course Instructor: Aisha Azeem
(from Diane Pozefsky). Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
18 September Requirements to Product 1. You understand what you want to build 2. Model the real world in software 3. Choose an architecture to.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
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.
Lecture 9 Architectures and Frameworks
CS451 Lecture 13: Architectural Design Chapter 10
An Introduction to Software Architecture
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
Comp2110 Software Design lecture 13Detailed Design (1)  detailed design contrasted with high level design  introducing the Observer Design Pattern 
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
System Models, Patterns and Software Architectures 14 February.
Slide 1 Introduction to Software Architecture TV Prabhakar.
Lecture 2 Introductory Case Studies Topics Architectural Styles Key Word In Context (KWIC) Other Cases Studies Evolution of Software Engineering January.
©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.
Architectural Design Identifying system components and their interfaces.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
CSC480 Software Engineering Lecture 10 September 25, 2002.
Lecture 18: Object-Oriented Design
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas -A large element is use of UML as.
CSC 480 Software Engineering Testing - I. Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering.
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Arch-1 9.Architecture. Arch-2 What’s Architecture? Description of sub-system –Components/sub-systems –Their interaction Framework for communication.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
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.
CS223: Software Engineering
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
Basic Characteristics of Object-Oriented Systems
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.
CSC 480 Software Engineering
Professorial kvetches
COMP2110 Software Design in lecture 14 Patterns(1) /Detailed Design
OO Methodology OO Architecture.
Part 3 Design What does design mean in different fields?
COMP2110 Software Design in 2004 lecture 09 High level design
CSE 303 – Software Design and Architecture
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Introduction to the Unified Modeling Language
Starting Design: Logical Architecture and UML Package Diagrams
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Presentation transcript:

ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small course module: a descriptive understanding of “architecture” (not the detailed application of a big library of examples). 1.What is architecture (high level) design vs detailed design 2.some existing software architectures

ANU comp2110 Software Design lecture 8 Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap (Braude SE chap 5) Identify corporate practices Develop Architecture Develop Detailed Design (next module) Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

ANU comp2110 Software Design lecture 8 1. Develop a mental model of the application at a high level. as if it were a small application e.g., personal finance application... … “works by receiving money or paying out money, in any order, controlled through a user interface”. 2. Decompose into the required components. look for high cohesion & low coupling e.g., personal finance application... … decomposes into Assets, Suppliers, & Interface. 3. Repeat this process for the components. Begin Selecting a Basic Architecture Note: To use established architectures, see the rest of this chapter Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

ANU comp2110 Software Design lecture 8 Is it Specification or design? design uses some of the same descriptive tools as specification (and many more): use cases, class diagrams, sequence diagrams design gets into details (relationships between classes, interfaces, strict sequence diagrams) – specification uses these only approximately, only as thinking/provoking/organising tools design says how to make software do this, specification says what the system must do, what it must perform like

ANU comp2110 Software Design lecture 8 Target Application Class model “with objects of these classes...” e.g., with Engagement … classes State model “reacting to these events...” e.g., when foreign character enters Use-case model “Do this...” e.g., engage foreign character Component model “in this way...” e.g., scores flow from … to To express requirements, architecture & detailed design Models Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. for ReqSpecs

ANU comp2110 Software Design lecture 8 Models Target Application Class model: “with...” State model: “when” Use-case model: “do this” Component model: “how” class methods States Transitions Use case Scenarios Business use case Component Sub-component Data flow Local data flow elaborated by... Sequence diagram package consists of... organized by... Substates decomposed into... Jacobson et al for Design

ANU comp2110 Software Design lecture 8 Software Architecture – in general The decomposition of the design into groups of abstract modules (clusters of classes) modules are concepts, with names account management, playing field, characters potential for generality and reuse in other projects playing field coherence and coupling stronger/more relationships between classes inside the module boundary than going in and out through the boundary

ANU comp2110 Software Design lecture 8 Elements of software architecture description of elements from which software systems are built interactions between those elements patterns that guide their composition constraints on those patterns In general, a system is defined in terms of a collection of components interactions between those components

ANU comp2110 Software Design lecture 8 Existing software architectures There are several well known architectures that are widely used, named, discussed Leading example: Model-View-Controller for a spreadsheet model: the cells and values and formulae views: 1.a rectangular window subset of cell values 2.a chart of any rectangular subset of cells controller: the evaluation function

ANU comp2110 Software Design lecture 8 Existing software architectures (2) Important examples dataflow systems call-and-return systems independent components virtual machines data-centred systems from Mary Shaw and David Garlan, Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall 1996 fig 2.1

ANU comp2110 Software Design lecture 8 Existing software architectures (3) dataflow systems batch sequential pipes and filters call-and-return systems main program and subroutine OO systems hierarchical layers example coming up

ANU comp2110 Software Design lecture 8 Existing software architectures (4) independent components communicating systems event systems virtual machines interpreters rule-based systems data-centred systems databases hypertext systems blackboard systems

ANU comp2110 Software Design lecture 8 Why is there a choice of architectures? different architecures can be more efficient, robust to changes, robust to hardware and network failures, costly to implement robust to changes in algorithms data representations enhancements to the specification and functionality performance needs reusability design is always a choice between many factors which the designer must weigh up – there is never only one “correct” solution

ANU comp2110 Software Design lecture 8 Braude’s Software Design: view of Software Architecture ch 14.1 (meaning of architecture) ch 14.2 (models) ch 14.3 architecture: goals, modularization, cohesion and coupling, (patterns – more later), standard architectures ch 14.4 frameworks – not for comp2110