CIS 375 SOFTWARE ENGINEERING
University Of Michigan-Dearborn
Dr. Bruce Maxim, Instructor
System Analysis Objectives:
Identify customer’s needs.
Evaluate system for feasibility.
Perform economic and technical analysis.
Allocate functions to system elements.
Establish schedule and constraints.
Create system definitions.
Management Questions:
How much effort put towards analysis?
Who does the analysis?
Why is it so difficult? (Bottom line - who pays for it?)
Feasibility Study:
Economic feasibility. (cost/benefit analysis)
Technical feasibility. (hw/sw/people, etc.)
Legal feasibility.
Alternatives.
Modeling System Architecture:
Architecture template.
User Interface Processing |
Input Processes |
Process & Control Functions |
Output Processes |
|
Maintenance &
Self-Test |
|
- Architecture context diagram.
- Architecture flow diagram:
- Much greater detail.
- specific inputs/outputs/parameters are needed.
- Architecture diagram specification:
- System module narrative for each subsystem (purpose, processing interface).
- Architectural dictionary.
- Architectural interconnect diagram (directed graph, the nodes are AFD’s).
System Specifications:
Introduction.
Functional data description.
Subsystem description.
System modeling and simulation results.
Projects.
Appendices.
Requirements Analysis:
Requirement- features of system or system function used to fulfill system purpose.
Focus on customer’s needs and problem; not solutions:
Requirements definition document (written for customer).
Requirements specification document (written for programmer; technical).
Types Of Requirements:
Functional requirements:
Input/output processing.
Error handling.
Non-functional requirements:
- Physical environment (equipment locations, multiple sites, etc.).
- Interfaces (data medium etc.).
- User & human factors (who are the users, their skill level etc.).
- Functionality (how well is system functioning).
- Documentation.
- Data (qualitative stuff).
- Resources (finding, physical space).
- Security (backup, firewall).
- Quality assurance (max. down time, MTBF, etc.).
Validation Of Requirements (how to check to see what’s there):
Correct?
Consistent?
Complete?
Externally - all desired properties are present.
Internally - no undefined references.
Each requirement describes something actually needed by the customer.
Requirements are verifiable (testable)?
Requirements are traceable.
Requirements Definition Document:
General purpose of document.
System background and objectives.
Description of approach.
Detailed characteristics of proposed system (data & functionality).
Description of operating environment.
(These should be technically correct documents, pretend customer’s not there)
F.A.S.T. - Facilitated Application Specification Technique
(you & customer get together early to get everything "hammered" out. Focus on problem definition):
- Meeting between customers and developers at a neutral site (no home advantage).
- Rules for participation and preparation established ahead of time.
- Agenda suggested (brain storming).
- Facilitator appointed.
- Definition mechanism (sheets, flipcharts, wallboards, stickers, etc.).
- Goal - identify the problem, propose elements of solution, negotiate different approaches, specify preliminary set of requirements.
QFP - Quality Function Deployment
(customer’s needs -> technical requirements):
- Normal requirements (minimal functional & performance).
- Expected requirements (important implicit requirements, i.e. ease of use).
- Exciting requirements (will become normal req. next time, highly prized & valued).
Function Deployment:
Determines value of required function.
Information Deployment:
Focuses on data objects and events produced or consumed by the system.
Task Deployment:
product behavior -> operating environment.
Value Analysis:
Makes Use Of:
Customer interviews.
Observations.
Surveys.
Historical data.
to create a Customer Voice Table (extract expected requirements, derive exciting req.)
Analysis Principles:
Information domain of problem must be presented & understood.
Models depicting system information, functions, and behavior should be developed.
Models and problems must be partitioned in a manner that uncovers detail in layers.
Analysis proceeds from essential information toward implementation detail (must be traceable).
Specification Principles:
Separate functionality from implementation.
A processor - oriented specification language is needed.
Specification must encompass the system containing the software component.
Specification must encompass the environment.
System specification = cognitive model.
Specification must be operational (talk about how it works).
Must be tolerant of incompleteness and easy to add to.
Specification must be localized and loosely coupled (pieces of things are independent of each other).
Requirements Review:
Goals & objectives review.
Compare requirements to goals & objectives.
Consider system operating environment.
Assess and document all risks in system developmental operation.
Discuss testing procedure.
Evaluating Specification Techniques:
Requirements are understandable to naïve user.
Requirements form basis for design and testing.
Automated requirements checking?
Requirements form external view of system.
Technique aid in organizing and structuring requirements.
Technique for prototyping.
Automatic test case generation from requirements.
Appropriate for application.