NSEN-6251 Software Specification (SE 770)

Course Description: A graduate-level survey of concepts, principles, and techniques related to software and systems specification. Topics include system modeling, requirements elicitation, analysis and documentation techniques, validation and prototyping, and formal methods. Students will practice the techniques presented in class via individual and/or group exercises and a term project.

Course Objectives: To present concepts, principles, and techniques related to software and systems requirements engineering and specification. Students will become acquainted with both informal and formal requirements engineering methods, including techniques for validating specified requirements.

Course Outline by Topical Areas:
Requirements engineering
Role of methods
Ambiguity in Stating Requirements
Volere Requirements Process
Direct Questions
Ways to Get Started
Starting Points
Context-Free Questions
Getting the Right People Involved
Making Meetings Work for Everybody
Reducing Ambiguity From Start to Finish
Generating Ideas
Right-Brain Methods
The Project's Name
Facilitating Conflicts
Clarifying Expectations
Functions
Attributes
Constraints
Preferences
Expectations
Greatly Improving the Odds of Success
Ambiguity Metrics
Technical Reviews Measuring Satisfaction
Test Cases
Studying Existing Products
Making Agreements
Ending
Prototypes
Methods for Requirements Engineering
Nonfunctional Requirement
Algebraic Specification
Model Based Approaches
Functional Specification