Warning: include(/home/faculty/schahczenski/webSites_Common/contact.php): failed to open stream: No such file or directory in /opt/www/classes/csci492/csci492.php on line 11
Warning: include(): Failed opening '/home/faculty/schahczenski/webSites_Common/contact.php' for inclusion (include_path='.:/usr/share/php') in /opt/www/classes/csci492/csci492.php on line 11
Office Hours:
Warning: include(/home/faculty/schahczenski/webSites_Common/officeHours_temp.php): failed to open stream: No such file or directory in /opt/www/classes/csci492/csci492.php on line 17
Warning: include(): Failed opening '/home/faculty/schahczenski/webSites_Common/officeHours_temp.php' for inclusion (include_path='.:/usr/share/php') in /opt/www/classes/csci492/csci492.php on line 17
Text:
Software Requirements,
3rd Edition Microsoft Press, by Karl E. Wiegers and Joy Beatty
Co-requisite:
ESOF 326, Software Maintenance, and
CSCI 332, Design and Analysis of Algorithms
Meeting times and place:
TBD, first 2 meetings on zoom, video required
What is in this course?
Requirements engineering and analysis is a critical stage of the software process as errors at this stage lead to problems in the design, implementation, deployment, and maintenance stages. Getting complete and consistent requirements is a complex process of negotiations with system stakeholders. As Software Engineer and author Tom DeMarco says:
In this course you will have a chance to explore various requirements engineering processes, effective ways to "discover" requirements, requirements models, formats for expressing requirements, and validation and management techniques for requirements. A formal specification language will be studied. You will create a complete set of requirements for a small system, or a portion of a large system.
Grading:
Updated July 27, 2020Activity | Percentage |
---|---|
Reading preparation for weekly meetings
|
25% |
Exercises
|
25% |
Project - Instructor grade
|
25% |
Project - Client grade
|
25% |
Class Organization:
This extrememly accelerated class (15 weeks condensed to 5 weeks) requires students to carefully read and digest the book material and apply it to a project. Each week we will meet to discuss the readings assigned. At that time, you will be graded on your comprehensions of the material. We will begin by giving you a chance to ask any questions that you have about the material. I will then ask questions from the text, in order to determine your understanding of the material and ability to apply the concepts to the class project, or another hypothetical project.
Exercises are associated with some chapters. Answers to these exercises are to be emailed to me by the end of the day in which the material is assigned. These will be graded, and sample answers discussed at the weekly meetings.
Dr. Phil Curtiss will be the client for the project. The project gives you a chance to apply the material from the text and the class discussions to a real-life project. Writing a Software Requirements and Specificaiton is a major activity of the course and half of your grade will come from the this project.
Catalog description of the course:
Concentrates on the development of requirements for software applications and systems. Topics include elicitation, analysis, documentation, and modeling software requirements. The Z specification language is one of the techniques used for modeling requirements. Co-requisite: ESOF 326 & CSCI 332. (2nd)
Expected skills students have coming into the course:
- E1. The student has a basic grasp of traditional software engineering processes, such as requirements gathering, software design, implementation, and testing. (ESOF 322)
- E2. The student has been introduced to quantitative aspects of the software engineering process, including software metrics and formal methods. (ESOF 322)
- E3. Students are able to use propositional and predicate logic to specify and reason about program requirements. (CSCI 246)
- E4. Students can use mathematical structures such as sets, relations, functions and sequences to reason about problems. (CSCI 246)
Expected outcomes from taking this course:
- R1. Students can enumerate the various types and purposes of requirements. (EAC-k)
- R2. Students can identify the properties of well-written requirements and can identify the faulty aspects of inadequate requirements. (EAC-k)
- R3. Students have conceptual understanding of and practical experience with the steps of requirements production, including requirements elicitation, requirements validation, and requirements management. (EAC-e, EAC-g, EAC-1))
- R4. Students have hands-on experience with the processes of formal software system specification. (EAC-a, EAC-k, EAC-1, EAC-2)
- R5. Students know the connection between defective requirements and software project failure. (EAC-k)
- R6. Students have developed software requirements for a small system, or a portion of a large system. (EAC-g, EAC-k, EAC-1)
Related program outcomes:
- EAC-a An ability to apply knowledge of mathematics, science and engineering
- EAC-e An ability to identify, formulate and solve engineering problems.
- EAC-g An ability to communicate effectively.
- EAC-k An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
- EAC-1 The ability to analyze, design, verify, validate, implement, apply and maintain software systems
- EAC-2 The ability to appropriately apply discrete mathematics, probability and statistics, and relevant topics in computer science and supporting disciplines to complex software systems