Penzenstadler - Requirements Engineering (Proposal)
Contents |
Summary
I intend to develop a series of lab assignments along with instructions for a course on requirements engineering as to date there is only [one single requirements activity] in the portfolio provided on foss2serve.
Target Venue
Requirements Engineering course (mine is currently a graduate course, but undergraduates can join as well, only prerequisite is 'Introduction to software engineering' or something similar).
Target Student Audience
Requirements Engineering is an elective course and is usually taken by majors. The years vary. However, the activities to be developed can also be used during any software engineering course in the requirements engineering phase of the course.
Learning Activities
I have a lecture on requirements engineering (slides online, see [1]) for which I will develop lab activities to support the contents talked about in class that develop the skills that will allow students to apply their knowledge in a larger scale, live software product development with its everyday challenges (of missing or incomplete requirements and their management), while at the same time being exposed to open source culture.
There will be 6 new activities that can each fill one or two lab sessions, depending on how extensive the instructor decides to discuss the results and the experience the students had. As 7th activity, the existing [Requirements Analysis] will be reused. Generally, the first session would be for the introduction of the exercise and the students to perform the exercise, and the second lab would be to discuss the results and give feedback, and to rework and improve the submitted assignment (optional, but I find that beneficial for the students).
- New activity: "(Re-)Engineering a system vision": Understand the vision of an existing system from its online documentation and extract the major features and the business case.
- Existing activity: [Requirements Analysis]: To be used first to get an understanding of the setup and the tools used in FOSS. Includes intro to github and issue tracking.
- (New 'super-activity', broken down in 3 activities) "(Re-)Engineering a Software Requirements Specification": Reengineering a SRS from a roadmap and issue database. The outcome of these assignments can be fed back into the issue tracker (e.g. to improve and detail feature requests) or provided to the community for their roadmap in case a contact is established and the community is interested.
- New activity: "(Re-)Engineering use cases": Developing use case overview diagrams and use case scenarios according to the Cockburn template, based on information in the roadmap and issue tracker.
- New activity: "(Re-)Engineering stakeholders, goals & questions": Listing the stakeholders of the system and identifying their major goals and objectives. Along with that, coming up with a set of questions (per stakeholder) on what the functionality should be and what is unclear, then (optional) ask community about those.
- New activity: "(Re-)Engineering Quality requirements": Developing quality requirements from the roadmap and the issue tracker according to the ISO 25010 quality model, and then checking compliance of those qualities in the actual implementation, for example the understandability / ease of use of interfaces, etc.
- New: "Understanding Design and Checking Compliance": Understanding the existing design. Quiz them on their basic understanding to make sure they are on track. Then let them understand the high-level design and conduct an analysis of whether the design is consistent with the requirements.
- New: "Quality Assurance": Give students a checklist of what to look for in road map, issue tracking, and version control documentation. Let them write a QA review report. Depending on the community, some of the feedback may be relayed to them via the issue tracker.
Draft notes for 3 of these activities are provided at [2] but they are very rough.
Deliverables: I will provide the lab instructions, grading rubrics, and homework assignments via this wiki in the activities category.
Evaluation
I will use the standard [POSSE pre- and post surveys] and extend them with specific questions on requirements engineering.
The effectiveness in comparison to earlier versions of this course can be evaluated by comparing the results of our SPOT (Student Perceptions of Teaching) evaluation.
Schedule
The course will be held in Spring 2017, so the materials will be developed December 2016 to February 2017 and the evaluation will be completed by May 2017 when the course finishes.
Budget
Development of lab materials, worksheets and exercises, plus data collection and analysis, $1500
Conference travel to the 13th International Conference on Open Source Systems, in collocation with ICSE, May 2017, $1500.
Contact Information
Birgit Penzenstadler birgit 'dot' penzenstadler 'at' csulb 'dot' edu