/ Department of Computer Science and Software Engineering
CSSE 571
/ Software Requirements Analysis and Specification
Fall Term 2014 / Course Syllabus

Instructor: Steve Chenoweth, Associate Professor

Email:

Phone(s): 812-877-8974 (office), 937-657-3885 (cell)

When: / Fall Term 2014 - See course schedule for dates
Where: / Interactive Intelligence, 7601 Interactive Way, Indianapolis, IN 46268.

Office Hours:

  • I will try to be there before class each week, when possible
  • By appointment (see contact numbers, above)

Prerequisites: Software development and/or maintenance experience, and ability write and communicate effectively (this will make this course more meaningful).

Course Description: Students will learn how to capture software requirements and handle difficult situations in gathering data to build systems. Special emphasis is given to working with clients and to learning about the needs of users who interact with a system. The course addresses elicitation, specification, and management of software system requirements. Additionally, the course examines iterative prototyping user interactions for a system.

Course Outcomes:

1. Be facile in the use of requirements engineering and its process

2. Use analysis techniques regardinghigh-level problem statements that would be key to starting design work

3. Compare multiple techniques to elicit requirements from stakeholders, choosing from among alternative methods as appropriate for different situations

4. Know the strengths and weaknesses of methods used to elicit requirements and develop a model and a specification with functional and non-functional requirements to meet the needs of a development group

5. Evaluate the ways to negotiate with the client and other stakeholders regarding priorities and scope

6. Use quality assurance techniques to verify that requirements are: verifiable, traceable, measurable, testable, accurate, unambiguous, consistent, and complete

7. Know how to manage requirements, as these change over time (e.g., over multiple releases and over a product line)

8. Evaluate how the user elicitation and modeling methods of Interaction Design are used to develop user-centered systems

9. Use agile prototyping and modeling to validate requirements

Course Texts (All Required - We Provide!):

Software & Systems Requirements Engineering in Practice, by Brian Berenbach, et al (ISBN 978-0-07-160547-2) - the main text

Managing Software Requirements: A Use Case Approach, Second Edition, by Dean Leffingwell and Don Widrig (ISBN 0-321-12247-X) - for handy reference

Interaction Design: beyond human-computer interaction, Third Edition, by Jennifer Preece, Yvonne Rogers and Helen Sharp (0-978-0-470-66576-3) - for reference on this subject

Introduction: This course is about "getting the requirements right the first time," which could get something to market sooner for your organization. The course focuses on best software practices, but it applies to all fields of engineering, so it would be relevant to capturing requirements in general. It specifically targets requirements management for software as a part of our SE masters program.

The course assumes you have familiarity with the subject of gathering requirements and using these in software development or other engineering projects; that you are ready for an intermediate-level course in which you apply particular methods most likely to work in given kinds of situations.

If you have a key client or product manager you interact with, or if you are proposing an internal process-improvement project, the methods you’ll learn in this course will help you and your organization. The course focuses on how to capture and manage requirements for new projects, including practical aspects like generating prototypes for actual users of a system. The requirements part of the course describes alternative development styles, including "agile" ones suitable for riskier projects. It is expected that students will develop requirements for a work-related system or other system of interest, as the project part of the course. In the past, many of these have led to successful proposals and developments.

Students will learn especially how to handle difficult situations in gathering data to build systems. You'll learn basic concepts and principles of requirements engineering, its tools and techniques, and methods for modeling software systems. Topics include requirements elicitation, prototyping, functional and non-functional requirements, object-oriented techniques like domain modeling, and requirements tracking.

For those of you who do systems engineering or other customer-focused work, this course would be a special benefit. You’ll get some first-hand practice in class, for example, negotiating requirements with clients. The course complements the existing MG 587 Systems Engineering course, in Rose’s Engineering Management program.

Expectations: The class will be primarily discussion, with students expected to attend and participate actively in class, contributing content and ideas from their projects. Students will be required to use the course website on Angel to obtain relevant information, and interact with instructor and other students. Announcements and assignments will be conveyed via email and/or posted on the website. Students will be expected to work on some assignments with other team members.

Assignments: Primarily, project assignments will be assigned regularly. Unless otherwise requested, please post these on Angel. Homework and projects are necessary instruments for tracking progress of students. A typical student will work approximately 9 hours outside of lectures each week on this course (depending on background). This is a demanding course covering a great deal of material -- please avoid falling behind on the assignments. While this course is demanding, it is also rewarding for those that want strong understanding of software requires as a discipline.

Academic Integrity: CSSE Honesty Policy (see governs class and performance. Joint study is allowed (even encouraged) on some items as expressed by the instructor; however, each student must produce his or her solutions individually. Students must not collaborate on tests or homework that is passed in unless directed by the instructor.

Attendance Policy: Please contact the instructor in advance if you are going to be absent from class. While work commitments and emergencies can constitute a legitimate reason for missing a class, attendance is otherwise mandatory. If you cannot make it to class, you are still responsible for all materials covered in class as well as all announcements.

Technical Requirements: You should have a laptop to bring to class and to use in completing assignments. Special software beyond, say, email, MS Word and PowerPoint, will NOT be required.

Course Evaluation and Feedback: Please feel free to provide me feedback about the course at any time.I also recommend that you keep a "course evaluation log" somewhere to make notes that you can use for the course evaluation at both midterm and the end of the course.

Course Average Determination (possibly modified as discussed in first class session):
50% / Project Work (details below)
15% / Exam 1
15% / Exam 2
10% / Homeworks (to be discussed)
10% / Class Participation (including attendance)
100% / Total

Individual Project Work Breakdown (to be discussed in first class session):

30%

/

Project Intermediate Milestones (5)

50%

/

Project Paper Itself (final turn-in)

20%

/

Project Presentations

100%

/

Total (of 50% of overall grade, above)

Course Grade Division:

90-100 / A
85- 89 / B+
80- 84 / B
75- 79 / C+
70- 74 / C
65- 69 / D+
60- 64 / D
0- 59 / F

Ethics and Professional Practice: You are expected to act honestly and professionally in this course at all times, in a manner consistent with the school’s honor code.

Late Submissions: Late homeworks or project assignments may receive a deduction (or not be accepted at all), depending on the circumstances and the degree of lateness.

Exam Policy: Exams will be take home, open book and notes. No exams will be “dropped”. Giving a makeup exam for an unexcused absence is at the discretion of the instructor. Any requests for regrading must be made in writing by the beginning of the next class period after the exams are returned.