KWIC Exercise. 6/18/2007 2007, Spencer Rugaber 1



Similar documents
Software Engineering

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

KWIC Implemented with Pipe Filter Architectural Style

An Introduction to Software Architecture

Advanced Analysis and Design

Managing Variability in Software Architectures 1 Felix Bachmann*

High-level Design. What is software architecture?

Architecture. Reda Bendraou

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Vragen. Architecture presentations in practice. Some terms (from IEEE standard)

Symbol Tables. Introduction

PIE. Internal Structure

Object Oriented Design

Using UML Part One Structural Modeling Diagrams

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Lesson 4 Web Service Interface Definition (Part I)

On the Criteria To Be Used in Decomposing Systems into Modules

Auditing UML Models. This booklet explains the Auditing feature of Enterprise Architect. Copyright Sparx Systems Pty Ltd

Operating system Dr. Shroouq J.

Solar energy e-learning laboratory - Remote experimentation over the Internet

Introduction to Web Services

Data Structure [Question Bank]

SYSTEM DEVELOPMENT AND IMPLEMENTATION

Architectural patterns

User experience storyboards: Building better UIs with RUP, UML, and use cases

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Web Forms for Marketers 2.3 for Sitecore CMS 6.5 and

Service Oriented Architecture

Cloud FTP: A Case Study of Migrating Traditional Applications to the Cloud

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

Architecture Design & Sequence Diagram. Week 7

IMPLEMENTATION OF A TIME TABLE GENERATOR USING VISUAL BASIC.NET

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Communication Diagrams

KMx Enterprise: Integration Overview for Member Account Synchronization and Single Signon

Architectural Patterns: From Mud to Structure

Overview. Essential Questions. Precalculus, Quarter 4, Unit 4.5 Build Arithmetic and Geometric Sequences and Series

Computer Networks. Chapter 5 Transport Protocols

PES Institute of Technology-BSC QUESTION BANK

Using Use Cases for requirements capture. Pete McBreen McBreen.Consulting

2 SYSTEM DESCRIPTION TECHNIQUES

Glossary of Object Oriented Terms

10CS35: Data Structures Using C

File Management. Chapter 12

Chapter 11 I/O Management and Disk Scheduling

Design of Network Educating Information System Based on Use Cases Driven Shenwei Wang 1 & Min Guo 2

DIIMS Records Classifier Guide

Describe the process of parallelization as it relates to problem solving.

Stellar Phoenix Exchange Server Backup

Software Design. Software Design. Software design is the process that adds implementation details to the requirements.

Application Architectures

Network Protocol Configuration

CS 5150 So(ware Engineering System Architecture

(Refer Slide Time 00:56)

Introduction to Service Oriented Architectures (SOA)

Problem of the Month: Perfect Pair

Construction Principles and Design Patterns. Flyweight, Bridge, Builder

Skybot Scheduler Release Notes

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Introduction to Parallel Programming and MapReduce

Expository Reading and Writing By Grade Level

CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM

Financial Management System

Test Automation Architectures: Planning for Test Automation

Karunya University Dept. of Information Technology

Online Auction Software Fundamentals

Basic academic skills (1) (2) (4) Specialized knowledge and literacy (3) Ability to continually improve own strengths Problem setting (4) Hypothesis

JProfiler: Code Coverage Analysis Tool for OMP Project

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Computer Organization

Design and Implementation of Distributed Process Execution Environment

Canada Savings Bonds Program. FTP Server User Guide. Version 2.5

[1] [2]

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

DigitizingStation. DICOM V3.0 Conformance Statement

The Elective Part of the NSS ICT Curriculum D. Software Development

Course Scheduling Support System

Pseudo code Tutorial and Exercises Teacher s Version

Philosophy of GIMnet

Data Structures Using C++ 2E. Chapter 5 Linked Lists

TheFinancialEdge. Records Guide for General Ledger

A Framework for the Semantics of Behavioral Contracts

Suite. How to Use GrandMaster Suite. Exporting with ODBC

1. Process Modeling. Process Modeling (Cont.) Content. Chapter 7 Structuring System Process Requirements

Chapter 4 Software Lifecycle and Performance Analysis

Software Architecture Document

COMPUTER SCIENCE (5651) Test at a Glance

Creating ER Diagrams with Visio 2010

StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes

Logi Ad Hoc Reporting System Administration Guide

Chapter 3. Application Software. Chapter 3 Objectives. Application Software

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Remote. Web Client Overview Version 8.0

How To Develop Software

Transcription:

KWIC Exercise On a subsequent slide, you will be given the description of a simple program for which you will be asked to devise two architectures. For the purposes of this exercise, you should imagine that it is instead a complex software system. That is, you should consider how to divide it into pieces and how the pieces should interact The architectures that you devise should be expressed with box-and-arrow diagrams, as described on the next slide Source: D. Parnas. "On the Criteria to be Used in Decomposing Systems into Modules." Communications of the ACM, 15(12):1053-1058, December 1972. 6/18/2007 2007, Spencer Rugaber 1

Box and Arrow Diagrams The simplest and most popular way of describing a software architecture is with a box and arrow diagram Each box corresponds to a component. Components can be active or passive. Active components are units of computation; that is, they actively compute. Passive components are data repositories Directed lines (arrows) between boxes denote connections or dependencies. They may use formatting (dashes, arrowhead styles, etc.) to denote specific types of interactions. For example, these diagrams often distinguish between the flow of data and the flow of control 6/18/2007 2007, Spencer Rugaber 2

Key Word in Context (KWIC) The KWIC index system accepts as input 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 of the keyword used to shift the line Common (stop) words may be omitted 6/18/2007 2007, Spencer Rugaber 3

Circular Shifts Original title Gone with the Wind Circular shifts (key words underlined) Gone with the Wind with the Wind Gone the Wind Gone with Wind Gone with the Stop word removal Gone with the Wind Wind Gone with the 6/18/2007 2007, Spencer Rugaber 4

Example With Multiple Titles Gone with the Wind War and Remembrances The Winds of War 6/18/2007 2007, Spencer Rugaber 5

KWIC Example Gone with the Wind and Remembrances War Winds of War The War and Remembrances with the Wind Gone The Winds of War 6/18/2007 2007, Spencer Rugaber 6

Exercise Assume that you had to implement KWIC. Decide how you would break it into approximately six pieces (even if you don't think it is big enough to have pieces!) Use a box for each piece and give it a label Ignore stop-word removal Decide how the pieces communicate Use a line between two boxes to indicate some form of communication Label the line to indicate the type of communication Come up with at least two solutions For each, give circumstances when that solution would be advantageous 6/18/2007 2007, Spencer Rugaber 7

Shared Data Decomposition Break into components based on functions computed Also Known As: Functional Decomposition All components share access to data in memory Usually contain a master-controller routine Dependencies realized with function calls 6/18/2007 2007, Spencer Rugaber 8

Modules Input: reads titles, stores in memory Circular shifter: constructs array of pairs <line index; word index> Alphabetizer: batch sorting of circular shifts Output Master controller 6/18/2007 2007, Spencer Rugaber 9

Shared Data 6/18/2007 2007, Spencer Rugaber 10

Abstract Data Types (ADT) Decomposition Organization based on data structures Representation hiding Modules holding data structures also provide services Basis for object orientation 6/18/2007 2007, Spencer Rugaber 11

Modules Line: ADT Input: reads titles, hands to Line Characters: ADT Circular shifter: ADT Alphabetic Shifts: ADT I-th circular shift Output Master controller 6/18/2007 2007, Spencer Rugaber 12

Abstract Data Type 6/18/2007 2007, Spencer Rugaber 13

Implicit Invocation Client modules express interest in state changes in server modules (registration) Server announces changes to all registered listeners (broadcast) Server does not know identity of clients Unit of notification is the event 6/18/2007 2007, Spencer Rugaber 14

Modules Input of new line Update line data structure Invoke circular shifter Update (second) line data structure Invoke alphabetizer 6/18/2007 2007, Spencer Rugaber 15

Implicit Invocation 6/18/2007 2007, Spencer Rugaber 16

Pipe And Filter System organized into independent programs (filters) Each filter takes in input (stdin) and produces output (stdout) Filters are connected together via FIFO queues (pipes) Common assumption of sequential files containing lines of ASCII characters Can you think of a non-ascii example? 6/18/2007 2007, Spencer Rugaber 17

Modules Filters for circular shift and alphabetizer Pipe connections with files of FIFOs No common data storage 6/18/2007 2007, Spencer Rugaber 18

Pipe And Filter 6/18/2007 2007, Spencer Rugaber 19

Evaluation Shared data + ADT + Implicit invocation (active data) + Pipe and filter + 6/18/2007 2007, Spencer Rugaber 20

Evaluation Shared data + Intuitive, efficient access Brittle to changes in representation ADT + Maintainability, reuse Performance Implicit invocation (active data) + Enhancements, data representation changes, reuse Difficult to control/think about Pipe and filter + Intuitive, reuse Interactivity, space efficiency 6/18/2007 2007, Spencer Rugaber 21

Exercise Continued List at least three possible enhancements / improvements that could be made to KWIC For each of the four styles (shared data, ADT, implicit invocation, pipe and filter) indicate how well it would cope with each of your changes Use the categories (brittle, moderate, easy) to label your choices 6/18/2007 2007, Spencer Rugaber 22

KWIC Changes Input format Reuse Processing algorithm Shift each line as it is read Shift lines after all are read Shift lines on demand Incremental versus batch sort New functionality Stop-word elimination Interactive line deletion Use of external storage Performance optimization Data representation Line storage Explicit circular shifts Index/offset circular shift 6/18/2007 2007, Spencer Rugaber 23

Lessons Hide design decisions, particularly where representation decisions are concerned: information hiding Organize modules around data 6/18/2007 2007, Spencer Rugaber 24

Quiz 1. Critique the use of UML in describing software architectures? List a set of desirable characteristics for a software architecture document. For each, determine whether or not UML provides a suitable means for describing that characteristic. If so, indicate which UML diagram or diagrams are appropriate. If not, indicate what alternative you would use. 6/18/2007 2007, Spencer Rugaber 25

Quiz - 2 2. Sketch an algorithm for selecting an architectural style. The input to the algorithm is a situation, including a systems functional and non-functional requirements, any existing components or previous versions that are available, and any other information you deem relevant to making the choice. Output is the selected style. How would you evaluate the quality of your algorithm? How would you improve it over time? 6/18/2007 2007, Spencer Rugaber 26

Homework Imagine the following scenario. In many publicly accessible area, screens of various sizes exist capable of displaying computer generated material. Also, each screen has a communications port capable of receiving display requests from client devices that are within a limited vicinity of the screen. A protocol exists by which a client device can communicate with the screen and request permission to use it. Once permission is granted, the device may supply content for display. This exercise is concerned with the software that runs on the screen server that interacts with clients and controls the display List a set of non-functional concerns that must be addressed by the server software. For each, indicate what sort of computational approach should be taken to address it List and describe a set of server components Provide a box-and-arrows diagram description of the system's architecture For each connecting line, indicate what kind of connector you would choose You may do this exercise alone or in groups of two or three 6/18/2007 2007, Spencer Rugaber 27