Lecture 2 Introductory Case Studies Topics Architectural Styles Key Word In Context (KWIC) Other Cases Studies Evolution of Software Engineering January.

Slides:



Advertisements
Similar presentations
Hestia: Aarthi Giridharan Govindarajan Panneerselvam Nirmal Chander Shesha Chandrika Moka Sriram Rajendran Suryanarayanan Ganesh Melarkode Vignesh Swaminathan.
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Designing the system Conceptual design and technical design
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
Establishing the overall structure of a software system
Architectural styles and Case studies 1 | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6: Architectural Design
System Design & Software Architecture
03 - ParnasCSC4071 A Sketchy Evolution of Software Design 1960s –Structured Programming (“Goto Considered Harmful”, E.W.Dijkstra) Emerged from considerations.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©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
Chap 8. Architectural Design
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.
CPSC 410: Software Architectural Style (Part I) By the end of this lecture, you will be able to: list various software architectural styles describe advantages.
1 On the Criteria To Be Used in Decomposing Systems into Modules by D.L.Parnas Dec presented by Yuanhua Qu for spring 2003 CS5391.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
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.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
CSCE 742 Software Architecture Lecture 1
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design 10/24/2015ICS 413 – Software Engineering1.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©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.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
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.
“Architecture” The outcome of top-level design, reflecting principal design decisions Can (and should) be modified and updated Analogous to architecture.
Comparing Designs By Chris McCall. Comparing Designs A decision-making method for deciding between many designs for a single specification Provides a.
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.
CS223: Software Engineering
Keyword In Context Presented by Team 2 Francisco Soria Zhiyu Zhang Xuheng Xu Irene Peysakhov.
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 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
BZUPAGES.COMSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2006Software Engineering, 8th 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.
KWIC example The KWIC [key word in context] system accepts an ordered set of lines; each line is an ordered set of words, and each word is an ordered set.
CSCE 742 Software Architectures
IS301 – Software Engineering Dept of Computer Information Systems
SOFTWARE DESIGN AND ARCHITECTURE
On the Criteria to Be Used in Decomposing Systems into Modules
Part 3 Design What does design mean in different fields?
CSCE 742 Software Architectures
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Princess Nourah bint Abdulrahman University
Software Architecture
Lecture 2b Introductory Case Studies
Presentation transcript:

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 – 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 – 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 – 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 – 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 – 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. 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 – 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 – 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 – 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 – 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 – 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 – CSCE 742 Spring 09 KWIC: Main Program/Subroutine with Shared Data

– 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 – CSCE 742 Spring 09 KWIC: Abstract Data Types

– 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 – CSCE 742 Spring 09 KWIC: Implicit Invocation

– 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 – CSCE 742 Spring 09 KWIC: Pipes and Filters

– 19 – CSCE 742 Spring 09 KWIC: Pipe and Filters Notes:   Inspired by the old UNIX permuted index   Cat data | permuteLines | sort

– 20 – CSCE 742 Spring 09 KWIC: Comparison

– 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 – 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 – 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 – 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 – 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 – CSCE 742 Spring 09 Instrum. Software: A Layered Model Hardware Digitization Visualization User Interface

– 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 – 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 – 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 – CSCE 742 Spring 09 Traditional Compiler Lexical analysis Syntax Analysis Semantic Analysis Optimization Code Generation Modified with globally accessible symbol table

– 31 – CSCE 742 Spring 09 Modern Compiler

– 32 – CSCE 742 Spring 09 Canonical Compiler Revisited

– 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 – CSCE 742 Spring 09 Layered Design with Different Styles

– 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 – CSCE 742 Spring 09 Rule Based Systems

– 37 – CSCE 742 Spring 09 Blackboard model: Hearsay II (speech processing)

– 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 – 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 – CSCE 742 Spring 09 Evolution of an Engineering Discipline