Post on 18-Jan-2016
SOFTWARE ARCHITECTURE FOR A KWIC SYSTEM
TEAM: GLOBAL 14
Agenda
1.Problem, Process and Solution2.Progress Report
o Requirements Analysiso Architectureo Implementationo TO DO list
– Demonstration– Conclusion
Problem Description (QUICK KWIC;-))• Architect a simple KWIC system using OO Style• Build a web-accessible interface for architected
system• Functional Requirements
o Accept ordered set of lineso "Circularly Shift" each input lineo Output a listing of all "circular shifts" of all lines in
ascending alphabetical order• NFRs
o understandable, portable, enhanceable...o responsive, user-friendly...
Development Process (Software)
Development Process (Team)
Devt. Process (Team Organization)
• Subdivisions o Our Group Size was largeo Coordination was more effective within smaller
groups• Weekly Online Meetings to keep every one abreast
of issues• Use of Google Docs and SVN• HOW TO Wiki for every team member to know what
is being done elsewhere
Our Solution
• A very easily enhanceable architecture based on the OO style
• A .NET application with a Microsoft Silverlight front end
• Why .NET o Exploring new frontiers in available technology
Work Done - Requirements AnalysisIssue: What set of characters are allowable as input into the system, ( ie. %, $, &) ?
Options:O1: All valid ASCII characters.O2: All valid Unicode characters.O3: Various other language characters.
Winner: O1
Work Done - Requirements Analysis (2)Issue: What is “user-friendly”? Does this only refer to GUI?
Options:O1: Provide Progress bar or timer for large inputsO2: GUI design should be simple to allow a user to immediately know what each element is for.O3: Provide a help function to assist usersO4: Provide a pop-up menu to assist users
Solution: O1, O2, O3
Test Plan
How we had to a test plan before development?
We start our test plan before implementation. We come up test plan and test cases with the requirement documents and architecture documents.
• NFRS test cases• FRS test cases
Work Done - Architecture• Software Architecture Analysis Method (SAAM) as a
basis upon which to systematically decide upon the ideal architecture for this project.
• OO architecture was requested. The need to evaluate other systems is demonstrative rather than selective.
• 6 steps of the SAAM process: Develop scenarios Describe candidate architecture Classify and prioritize scenarios Perform scenario evaluation Assess scenario interaction Generate overall evaluation
Work Done - Architecture (contd.)
Consideration of alternative OO architectures - Option A
Diagram for First alternative considered
Work Done - Architecture (contd.)
Consideration of alternative OO architectures - Option BDiagram for second alternative considered
The major advantage of this architecture is that data replication is eliminated
Work Done - Architecture (contd.) Rationale for selecting final OO architectures (Option X)
++ = 100% + = 75% +- = 50% - = 25% -- = 0% 1. ADT1 75% 2. ADT2 80% 3. Implicit Invocation 50% 4. Pipe-and-Filter 60%
Work Done - Implementation
• Client• Engine• Server
User Manual
• How to set up the system• How to use/run the system• Required system configuration
Demonstration
http://hypv3355.appliedi.net/G14Kwic/ Computer Might Need Silverlight Installation
Input Text: This is a sample test for the presentation$We hope it convinces you we did our work
TO DO
• NFRs not yet tested• Enhancements of the UI
o "Clear Screen" Buttono Convert the Text Input into a Text Area
• Requirements traceability matrix
Conclusion
Our strenghts:• SAAM• Alternative OO architectures• Test plan built from the beginning• Team organization to take cognizance of each
member's strengths and for effectiveness• Large number = more work done
??Any Questions??