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.

Slides:



Advertisements
Similar presentations
Information Retrieval in Practice
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
SWE Introduction to Software Engineering
Application architectures
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Establishing the overall structure of a software system
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
Course Instructor: Aisha Azeem
Application architectures
1 Architectural Patterns Yasser Ganji Saffar
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Architectural Design.
©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
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.
Figure – Chapter 6. Figure 6.1 The architecture of a packing robot control system.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
©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.
CSc 461/561 Software Engineering Lecture 7 – Architectural Design.
Chapter 6 Architectural Design.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Lecture 1 Chapter 6 Architectural design1. Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures.
Chapter 6 – Architectural Design 1Chapter 6 Architectural design.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 1, 08/28/03 Prof. Roy Levow.
Compiler design Lecture 1: Compiler Overview Sulaimany University 2 Oct
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 6 Architectural design Chapter 6 – Architectural Design Lecture 1 1.
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.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Software Architectural Design 1. Topics covered  Architectural design decisions  Architectural views  Architectural patterns  Application architectures.
Lecture VIII: Software Architecture
CS223: Software Engineering
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Information Retrieval in Practice
Advanced Computer Systems
Software architecture
Compiler Design (40-414) Main Text Book:
Chapter 6 – Architectural Design
SOFTWARE DESIGN AND ARCHITECTURE
Overview of Compilation The Compiler Front End
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Software Architecture
Chapter 6 – Architectural Design
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
CS385 T&D Software Engineering Dr.Doaa Sami Khafaga
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Presentation transcript:

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 course module: a descriptive understanding (not detailed application of a big library of examples). 1.Some existing software architectures: 1.batch and pipeline 2.client-server and broker – see the notes 3.layers – see the notes

ANU comp2110 Software Design lecture 10 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, alarm control, selection list 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 10 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 10 Existing software architectures ( just a few ) dataflow systems batch sequential pipes and filters call-and-return systems main program and subroutines hierarchical layers independent components communicating systems Model View Controller example 1: lex,parse,generate notes 2: layers notes 3: broker example 2: MVC

ANU comp2110 Software Design lecture 10 Example 1: Lexical analysis, parsing, identification (1) a widespread class of problems require processing relatively complex sequences of character input by lexical analysis parsing identification of words (identifiers) examples: programming languages – for pretty print, syntax- sensitive editing, compilation, interpreting HTML, XML: for many kinds of further processing: rendering, editing

ANU comp2110 Software Design lecture 10 scan + parse + identify: batch architecture (2) Batch processing uses the schema: divide the processing into a number of processing stages that can be done in sequence. process all of the input in a batch as a whole through process 1, to produce a batch of intermediate data stage 1 process all of the intermediate data stage 1 through process 2... to produce a batch of intermediate data stage 2 in general process data stage i through process stage i+1 to produce data stage i+1

ANU comp2110 Software Design lecture 10 batch architecture input data stage 1 data stage 2 process 1 process 2process 3 character sequence lexical scan token sequence parse abstract syntax tree identify data stage 3 AST with tagged meanings

ANU comp2110 Software Design lecture 10 Stage 1 – lexical scan STARTTAG "p“ ATTR "color“ ATTRVAL "black“ ATTR "font“ ATTRVAL "Times“ DATA "This is it “ STARTTAG "pre“ DATA " no more code!“ COMMENT " but then...“ DATA " no more“ ENDTAG "pre“ DATA "that was it” ENDTAG "p" output sequence of tokens <p color="black“ font="Times“ This is it no more code! no more that was it lexical analysis input HTML source

ANU comp2110 Software Design lecture 10 Stage 2 – parse STARTTAG "p“ ATTR "color“ ATTRVAL "black“ ATTR "font“ ATTRVAL "Times“ DATA "This is it “ STARTTAG "pre“ DATA " no more code!“ COMMENT " but then...“ DATA " no more“ ENDTAG "pre“ DATA "that was it” ENDTAG "p" input sequence of tokens parse ATTRVAL "black“ ATTR "color“ ATTRVAL "Times“ ATTR "font“ ATTRIBSEQ 2 DATA "This is it“ DATA " no more code! “ COMMENT " but then...“ DATA " no more“ ELEMENT "pre" 3 DATA "that was it“ ELEMENT "p" 4 phrase structure (syntax tree) (this is a syntax tree, in postfix notation: indentation added for human reader)

ANU comp2110 Software Design lecture 10 Pipeline architecture in a pipeline, the processes produce the same input and output as the batch processes but as sequences, not as complete batches The processes operate incrementally: later processes can start before the earlier ones have finished. the batch architecture is a limiting case of the pipeline

ANU comp2110 Software Design lecture 10 pipeline architecture input data stage 1 data stage 2 process 1 process 2process 3 character sequence lexical scan token sequence parse abstract syntax tree identify data stage 3 AST with tagged meanings

ANU comp2110 Software Design lecture 10 pipeline ctd the processes are not always in lock step: the scanner will need to consume a variable number of characters for each token the parser may need to consume several tokens before it can produce any parse tree the architectures can be mixed: e.g in WebView lexical scanner-> parser Pipeline -> renderer Batch

ANU comp2110 Software Design lecture 10 batch vs pipeline performance: space (batch: big) and time responsiveness: pipeline has fast first output may need whole structure to apply variety of last stage processes – suggests batch at the last may need overview across whole of input pipeline may be too complex to program

ANU comp2110 Software Design lecture 10 batch vs pipeline performance: space (batch: big) and time responsiveness: pipeline has fast first output may need whole structure to apply variety of last stage processes – suggests batch at the last may need overview across whole of input pipeline may be too complex to program

ANU comp2110 Software Design lecture 10 example 2: Model-View-Controller Architecture Recall the example of a spreadsheet program Model - the core application part underlying data, functional core of application registers dependent views and controllers notifies views and controllers when data changes View - the graphical part of the interface creates its controllers displays information (about the model) to the user updates itself when notified that the model changes retrieves data (gets state) from the model Controller - the decision-making part accepts user inputs and other events translates events into service requests for the model or display requests for the view (from comp2100 notes and JMT book)

ANU comp2110 Software Design lecture 10 Using an existing architecture in a high-level design How to document the use of an architecture in a high level design: name the architectural model you use e.g. Model View Controller name which modules play which roles e.g. the Model is module CentralControlStates the View is module UserInterfaceManager the Controller is the ControlLogicManager module state any major differences from the architecture