|
|
Systems Home |
Introduction |
Needs Assessment |
Requirements Specification |
Requirements Analysis |
Preliminary Design |
Detailed Design |
Implementation |
Testing
Systems Development: Requirements, Design, Implementation, Testing
Background
This course is designed to teach the engineering discipline and practice required when implementing a software project. Students completing the course will develop some non-trivial system and visit all stages of the development live cycle.
Prerequsites
This is a senior seminar course for second year students. The course covers the entire software development and engineering life cycle. Students should have exposure to algorithms, databases, object oriented concepts, programming, and UML prior to starting this course.
Objectives
Students who complete the course will develop a software system and participate in each phase of the development life cycle:
Introduction: What is the core concept behind systems development?
Needs Assessment: Gathering system expectations from customers who are subject matter (or domain) experts, but may not have familiarity in the computer sciences or information technology.
Requirements Specification: Developing a formal, testable, written list of function and performance requirements to be met by the system under development.
Requirements Analysis: Decomposition of requirements into software subsystems.
Preliminary Design: Top level mapping of requirements to design contructs.
Detailed Design: Modeling of the inner workings for each subsystem.
Implementation: Development of the software in accordance with requirements and design specifications.
Testing: Verification the software meets its specified requirements with proper functionality and adequate performance.
Phase |
Topics |
Activities |
Introduction |
The system design life cycle. Project description. Course timetable. |
Reading assignments. |
Needs Assessment |
Introduction to interviewing. Developing survey instruments. Sources of requirements. Customer interaction. |
Gather information needed to develop formal requirements. |
Requirements Specification |
What is a requirement? What makes a requirement testable? Postponing design decisions during requirements phase. Documenting requirements. |
Develop formal requirements list for approval by customer. |
Requirements Analysis |
Object oriented requirements analysis. Conflict resolution. Subsystem decomposition. Input-process-output diagrams. Use cases. UML notation. |
Complete system specification for presentation to customer. Diagrams for peer review. |
Preliminary Design |
Software design. Object oriented concepts. Sequence diagrams. Trace matrix. |
Specified diagrams. Subsystem interface specifications. |
Detailed Design |
Collaboration diagrams. Pseudo code. Database normalization. Human factors. |
Table design. Report and screen design. Critical code design. |
Implementation |
Coding standards and style. Other topics as necessary during the phase. |
Software development of components in accordance with design specifications. |
Testing |
Test plans and procedures. Test methods: analysis, experiment, inspection, verification. Test procedure to requirements trace. |
Development of test plan and execution of test procedure with customer as witness. |
Systems Home |
Introduction |
Needs Assessment |
Requirements Specification |
Requirements Analysis |
Preliminary Design |
Detailed Design |
Implementation |
Testing
|