Professional Documents
Culture Documents
SYSTEM DESIGN
Objective : To formulate alternatives about how the problem should be solved Input is SRS from previous step Consider several technical alternatives based on type of technology, automation boundaries, type of solutions (batch/on-line), including make or buy Propose a range of alternatives : low-cost, medium cost and comprehensive high cost solutions
ALTERNATIVES
For each alternative, prepare high-level system design (in terms of architecture, DB design, ); prepare implementation schedule, carry out costbenefit analysis Prepare for technical and management review
Costs rise sharply hereafter Costs can be quantified better at this stage Technical review uncovers errors, checks consistency, completeness, alternatives,
DESIGN GOALS
Normalized data base design using ER model De-normalization for performance Physical design : indexes
SYSTEM ARCHITECTURE
STRUCTURE CHART
Used in functional methodology to depict modules and their calling relationships Hierarchical structure: module at level i calls modules at level i+1; control flow not shown Modules at higher levels generally do coordination and control; modules at lower levels do i/o and computations Structure chart may show important data passing between modules, and also show main iterations and decision-making without much details Techniques are available to go from DFD to structure charts
NOTATION
OO APPROACH
Large systems decomposed into packages Design consists of classes
Have structure (properties) Have behavior (methods/operations) Inheritance major feature in OO for re-use
Class diagrams show static structure of the system Interaction diagrams are used to capture dynamic behavior of classes and objects
DETAILED DESIGN
DETAILED DESIGN
Deliverables include
Program specifications (e.g. psuedo-code) File design (organization, access method) Hardware specifications (as applicable) Test plans Implementation schedule
DATA DICTIONARY
It is a repository (i.e., catalog) of information about a system (which gets collected during various phases)
Definition of data Structure of data Usage of data (in processing)
DATA DICTIONARY
Permits better documentation control and management of data about data Facilitates standardization in data usage Prevents errors, inconsistencies and redundancy in data definitions Enables cross-referencing and check for completeness Acts as a valuable input in analysis and design activities and reduces development and implementation effort
DATA DICTIONARY
Data element
name, description, synonym, type, length, validation, criteria name, description, content(data elements and/or groups), optional elements, repeated elements(arrays) name, description, associated record(s), volume, access keys, file organization
File/data store
DATA DICTIONARY
DATA DICTIONARY
Data Dictionary also stores relationships between above entities (cross-referencing info)
which programs make an application which programs use what files and how
CASE TOOLS
Computer Assisted Software Engineering (CASE) Provides a set of tools for analysis and design tasks Provides a methodology/environment for building software
CASE TOOLS
Benefits of CASE
Improves productivity by providing assistance in development activities Automates tedious tasks (e.g., drawing and editing of diagrams), version management Permits checks for consistency and completeness in data collected and development steps Ensures uniform and consistent development methodology Improves quality of software (as methodology is enforced and quality control can be applied)
CASE TOOLS
Data dictionary for gathering information and for checking consistency and completeness Design tools (e.g., for database schema design from ER diagrams)
CASE TOOLS
Interface generators for defining dialogs (screens), inputs, reports, etc. (useful for prototypes) Code generators: converting specifications into source code Management tools: project management facilities for scheduling of activities, allocation of resources and tracking of progress
DESIGN GUIDELINES/APPROACHES
Let us review design techniques for some of the main components of a software system
Database design Report design Input design in general and interactive dialogue design in particular
DATABASE DESIGN
2-step process: logical design and physical design Logical design: what data to be stored
Examine data contained in data stores in DFD Develop thorough understanding of information domain of the application Represent the domain by E-R diagram which shows logical data relationships Carry out logical database design from ER diagram
DATABASE DESIGN
Physical design: decide how many files, content of each file and file organization
Based on how data is accessed/processed Statistical characterization of data
Influential factors
Activity ratio: per-cent of records processed in one run Volatility: frequency of updates and distribution of updates over records/fields File size and growth characteristics Access keys: fields which are used for locating records to be processed Ordering of records for output Processing speed/response time requirement of application
REPORT DESIGN
REPORT DESIGN
Content design
Exercise: study some familiar outputs: railway ticket, LIC premium notice, Cash Receipt, Library claims,
INPUT DESIGN
Objectives
Data capture at source to suit the environment and operational conditions Keep volume minimum: only capture relevant data; capture static data only once Avoid errors; design data validation and controls
INPUT DESIGN
INPUT DESIGN
Type check (numeric or not) Range or limit check Consistent relationships between items Check digit Table look-up for coded items Hash totals (i.e. controls totals) Record count
Ex: study these input forms: railway reservation, IIT JEE application
Authorization and access control On-line data validation Provide for error correction and undoing an action Provide on-line help Simplify interaction using special function keys
SUMMARY
Each phase has a well defined task and a deliverable Feasibility establishes alternatives and carries out cost-benefit analysis Requirements analysis is very challenging and SRS forms the first baseline Design step consists of architecture, database and interface design Each phase ends in technical and management review