1 / 16

Software Architecture – in general

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). Some existing software architectures: batch and pipeline

ludwig
Download Presentation

Software Architecture – in general

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP2110 Software Design in 2004 lecture 10 Software Architecture 2 of 2 design lecture 5of 6 Goal of this small course module:a descriptive understanding(not detailed application of a big library of examples). • Some existing software architectures: • batch and pipeline • client-server and broker – see the notes • layers – see the notes ANU comp2110 Software Design lecture 10

  2. 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 boundarythan going in and out through the boundary ANU comp2110 Software Design lecture 10

  3. 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

  4. 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

  5. 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

  6. 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

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

  8. Stage 1 – lexical scan inputHTML source output sequence of tokens 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" <p color="black“ font="Times“This is it <pre> no more code!<!-- but then... --> no more</pre> that was it </p> lexical analysis ANU comp2110 Software Design lecture 10

  9. Stage 2 – parse input sequence of tokens phrase structure(syntax tree) 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" 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 parse (this is a syntax tree, in postfix notation:indentation added for human reader) ANU comp2110 Software Design lecture 10

  10. Pipeline architecture • in a pipeline, the processes produce the same input and output as the batch processes but as sequences, not as complete batchesThe 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

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

  12. 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

  13. 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

  14. 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

  15. 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 modelor display requests for the view (from comp2100 notes and JMT book) ANU comp2110 Software Design lecture 10

  16. 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 ANU comp2110 Software Design lecture 10

More Related