Download presentation
Presentation is loading. Please wait.
Published byBlanche Haynes Modified over 9 years ago
1
Lecture 2 Introductory Case Studies Topics Architectural Styles Key Word In Context (KWIC) Other Cases Studies Evolution of Software Engineering January 15, 2009 CSCE 742 Software Architectures
2
– 2 – CSCE 742 Spring 09 Overview Last Time What is Software Architecture? What do you already know? Architectural styles On last Time’s Slides(what we didn’t get to) KWIC case studyNew Other Case studies What do you know? What is the waterfall Model? What is the spiral model?
3
– 3 – CSCE 742 Spring 09 Architectural Styles Dataflow Systems Dataflow Systems Batch- sequential Pipes and filters Call-and-Return Systems Call-and-Return Systems Main program and subroutine OO systems Hierarchical layered systems Independent Components Independent Components Communicating processes Event driven systems Machines Machines Interpreters Rule-based systems Repositories - Data-centered systems Repositories - Data-centered systems Databases Hypertext Systems Blackboards
4
– 4 – CSCE 742 Spring 09 Architectural Case Studies Key word in context Key word in context Instrumentation Software Instrumentation Software Compilers Compilers Layered Design with Different Styles for the Layers Layered Design with Different Styles for the Layers Interpreter using Different Idioms for Components Interpreter using Different Idioms for Components A Blackboard A Blackboard
5
– 5 – CSCE 742 Spring 09 Case Study: Key word in context In 1972, Parnas proposed the following problem KWIC: The KWIC [Key Word in Context] index system: Accepts an ordered set of lines, each line is an ordered set of words, and each word is an ordered set of characters. Any line may be ``circularly shifted'' by repeatedly removing the first word and appending it at the end of the line. The KWIC index system outputs a listing of all circular shifts of all lines in alphabetical order. Reference: “On the Criteria for Decomposing Systems into Modules,” David Parnas. CACM, 1972http://www-2.cs.cmu.edu/People/ModProb/KWIC.html
6
– 6 – CSCE 742 Spring 09 Who is David Parnas anyway? He is an ACM Fellow and a leader in the development of the field of Software engineering. http://www.acm.org/sigs/sigsoft/SEN/parnas.html First work experience in industry (1969) led him to realize that the company was breaking things up into modules incorrectly; thus leading to greater complexity
7
– 7 – CSCE 742 Spring 09 Case Study: Key word in context Example: SC Clerk of Courts (1985 project) One line Assault and battery with intent to kill Permuted yields Assault and battery with intent to kill. and battery with intent to kill. Assault battery with intent to kill. Assault and with intent to kill. Assault and battery intent to kill. Assault and battery with to kill. Assault and battery with intent kill. Assault and battery with intent to Then sorted yields and battery with intent to kill. Assault Assault and battery with intent to kill. battery with intent to kill. Assault and … So “assault and battery” could be found by looking up either keyword “assault” or “battery”
8
– 8 – CSCE 742 Spring 09 Case Study: Decomposition in KWIC Parnas used the problem to contrast different criteria for decomposing a system into modules: Functional decomposition with shared access to data representations, and A decomposition that hides design decisions. Examples: permuted index of the Unix man
9
– 9 – CSCE 742 Spring 09 KWIC: Design Considerations Changes in algorithm: Changes in data representation Have the system eliminate circular shifts that start with certain noise words (such as "a", "an", "and", etc.). Make the system interactive, and allow the user to delete lines from the lists. Finally, considering differences in architectural solutions based on considerations of: Performance: Both space and time. Reuse
10
– 10 – CSCE 742 Spring 09 KWIC: Software Arch. Considerations Changes in processing algorithm Changes in data representation Enhancement to system function Performance: Both space and time. Reuse: To what extent can the components serve as reusable entities.
11
– 11 – CSCE 742 Spring 09 Architectural Approaches to KWIC Solution 1: Main Program/Subroutine with Shared Data Solution 2: Abstract Data Types Solution 3: Implicit Invocation Solution 4: Pipes and Filters The first two of these were from Parnas 1972 Solution 3 was from Garlan, Kaiser and Notkin 1992 Solution 4 inspired by Unix command.
12
– 12 – CSCE 742 Spring 09 KWIC: Main Program/Subroutine with Shared Data
13
– 13 – CSCE 742 Spring 09 KWIC: Main / Subroutine Notes: Data is shared, common storage. This is + and – Serious drawbacks: Changes in data storage format affects all modules Changes in algorithm not well supported Enhancements not easily encorporated Not supportive of reuse
14
– 14 – CSCE 742 Spring 09 KWIC: Abstract Data Types
15
– 15 – CSCE 742 Spring 09 KWIC: Abstract Data Types Notes: Could be called object-oriented (Parnas 1972) Data not accessed directly, but through accessor functions More easily modified than solution 1 Data Algorithm Reuse better supported because modules make fewer assumptions about other modules.
16
– 16 – CSCE 742 Spring 09 KWIC: Implicit Invocation
17
– 17 – CSCE 742 Spring 09 KWIC: Implicit Invocation Notes: Shared data similar to solution 1. Two differences in access model: Data accessed abstractly i.e., “as a list, or set” Computations are implicitly invoked; an “Active data” model E.g., Adding a line causes an event to be sent to the line shift module Because data is accessed abstractly changes in storage format can be localized Supports functional enhancements New modules easily added by registering the data events that should caused them to be invoked On the negative side it is difficult to control computation order.
18
– 18 – CSCE 742 Spring 09 KWIC: Pipes and Filters
19
– 19 – CSCE 742 Spring 09 KWIC: Pipe and Filters Notes: Inspired by the old UNIX permuted index Cat data | permuteLines | sort
20
– 20 – CSCE 742 Spring 09 KWIC: Comparison
21
– 21 – CSCE 742 Spring 09 KWIC: Comparison Notes: Shared Data Not good at change in data or algorithm; efficientADT/OO Good at change in data and in reuse; efficient also Implicit Invocation Good at change in algorithm; just register the new functions Pipe and Filter Good at reuse and change in algorithm, modularity; however stuck with lowest level data transmission involving reparsing overhead
22
– 22 – CSCE 742 Spring 09 Case Studies Key word in context Key word in context Instrumentation Software Instrumentation Software Compilers Compilers Layered Design with Different Styles for the Layers Layered Design with Different Styles for the Layers Interpreter using Different Idioms for Components Interpreter using Different Idioms for Components A Blackboard A Blackboard
23
– 23 – CSCE 742 Spring 09 Case Study: Instrumentation Software Software architecture developed at Tektronix to develop a “reusable system architecture” for oscilloscopes. What is an oscilloscope? Once simple analog device, now complex digital technology with complex software. Problems faced by Tektronix: Little reuse of software across different products Both hardware and interface requirements were rapidly changing Performance problems increasing because of configuration limitations Goal: Develop new architecture for oscilloscopes
24
– 24 – CSCE 742 Spring 09 Instrumentation Software: OO Model Focused on producing object-oriented model of the domain This produced a good model of the data involved Oscilloscope Object Waveform Max-min WvfmX-Y WvfmAccumulate Wvfm …
25
– 25 – CSCE 742 Spring 09 Instrum. Software: OO Model Limitations No overall model of how the types fit together Led to confusion about partitioning the functionality Should measurements be associated with data type of what is being measured? Or represented externally Which objects should the interface interact with?
26
– 26 – CSCE 742 Spring 09 Instrum. Software: A Layered Model Hardware Digitization Visualization User Interface
27
– 27 – CSCE 742 Spring 09 Instrum. Software: A Layered Model This model was intuitively appealing since it partitioned up the functionality into well defined groups. However, wrong model: main problem was that the boundaries of abstraction enforced by the layers conflict with what was really needed. user interactions with the visualizations but real oscilloscopes must interact at several levels
28
– 28 – CSCE 742 Spring 09 Instrum. Software: Pipe and Filter Model Couple – condition the signal Acquire – derive digitized waveforms To-XY - display Clip – clip images to display Trigger Subsystem - Measure Main Problem: How should user interact with the system?
29
– 29 – CSCE 742 Spring 09 Instrum. Soft: Modified Pipe and Filter Model Notes 1.Performance problems – waveforms are large; copying is expensive 2.Different speed of the different filters 3.Solution several types “colors” of pipes; one copies, one doesn’t 4.Speed handled by pipelining
30
– 30 – CSCE 742 Spring 09 Traditional Compiler Lexical analysis Syntax Analysis Semantic Analysis Optimization Code Generation Modified with globally accessible symbol table
31
– 31 – CSCE 742 Spring 09 Modern Compiler
32
– 32 – CSCE 742 Spring 09 Canonical Compiler Revisited
33
– 33 – CSCE 742 Spring 09 Layered Design with Different Styles PROVOX system designed by Fisher Controls Level 1 – Process measurement Level 2 – Process supervision – monitoring and controlling level 1 Level 3 – Process management – plant automation, management reports, optimization strategies Level 4 – Plant Management – interactions; cost accounting, inventory Level 5 – Corporation Management – Order proecessing/billing
34
– 34 – CSCE 742 Spring 09 Layered Design with Different Styles
35
– 35 – CSCE 742 Spring 09 Layered Design with Different Styles Levels 1-3 were Object-oriented Levels 4 and 5 were primarily respository (database) models
36
– 36 – CSCE 742 Spring 09 Rule Based Systems
37
– 37 – CSCE 742 Spring 09 Blackboard model: Hearsay II (speech processing)
38
– 38 – CSCE 742 Spring 09 Evolution of Software Engineering What is engineering? Phrases in answers: Creating cost-effective solutions … to practical problems … … by applying scientific knowledge … … building things … … in the service of mankind … Applied science for practical problems
39
– 39 – CSCE 742 Spring 09 Traditional Engineering Design experience built up over the years Key design parameters abstracted from problems Design problem formalized Knowledge codified Handbooks of Design Well there are no handbooks of design for software. There are algorithms and libraries and now class libraries, but these are components.
40
– 40 – CSCE 742 Spring 09 Evolution of an Engineering Discipline
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.