| ||
Student Originated Software 1997-1998
| ||
A Software Engineering Course at The Evergreen State College | ||
|
Student Originated SoftwareCase Study SyllabusFall Quarter, 1997Last Revised: October 3, 1997
DescriptionDuring the first quarter of this three-quarter program student teams will complete a small programming project as a "case study" in software engineering. As in "real-life" the team must produce proper "deliverables" (usually documents) as well as operational software that meets its requirements. The program will be written in SmallTalk.
We will cover three main areas in this case study.
PurposeThe purpose of the case study is two-fold. First, students will learn about software engineering through the usual educational route: reading, writing, thinking, listening to lectures, and completing exercises. Second, students will learn by-doing. They will learn techniques for developing software systematically by actually working in a team context developing software. Both of these approaches are intended to help prepare students for the project (which is the primary focus of the entire program) and beyond .. yes, even the "real-world."
PlanWe will follow a basic pattern throughout the quarter. For each week we will investigate a basic theme. On Monday mornings we will have lectures, discussions, and workshops on aspects of the week's theme. These are not intended to be monologues: students are expected to reflect on the material and participate in discussions. Tuesday afternoon will be more tightly focused on the case study. Students will be presented with material that reflects the current status of the problem that their software will address. On Tuesday afternoons we will discuss and work on the case study. Reading assignments should be read by the following Tuesday. An exercise will be passed out nearly every Tuesday and collected the following Tuesday. All exercises must be typed. The exercises will be returned the following Tuesday after that. Students will keep all exercises in a case study notebook. Due to the incremental nature of the case study and the cumulative and sometimes changing knowledge about the project, these assignments should be updated periodically and added to the notebook. Original and updated assignments alike must be added to the case study notebook. All notebook material must be dated. The entire notebook will be turned in on Thursday, December 4.
The Object-Oriented (OO) portion of the class is aimed at improving software skills as well as knowledge of OO techniques, and is critical to the successful completion of the case study.
Case Study Deliverables
Week 1. Systematic Software DevelopmentHow is software developed? Are some ways better than others? Why? Why do companies prefer a systematic approach over hacking? What's a software "life cycle?"
Monday, September 29
Tuesday, September 30
Assignment given: Feasibility Assessment exercise Readings assigned: Software Engineering Best Practices, pages 1 - 17 in Wilson; Part I in Koberg and Bagnall, pages 8 - 35. Thursday, October 2
Week 2. Coordinating the Software ProjectThere is a lot more to software development than writing code! This week we will consider the wide range of issues that encompass software development including team issues like cooperation, communication, and coordination; project management issues like roles and responsibilities, scheduling and reporting; organizational issues like communicating within a large institution; and the important role of documents.
Monday, October 6
Tuesday, October 7
Assignment collected: Feasibility Study Readings assigned: Teamwork, pages 19 - 26; and Quality, pages 27 - 38 in Wilson Week 3. Requirements AnalysisIn order to develop a system that everybody likes and wants we have to agree first on what it's supposed to do. During the phase of requirements analysis we need to completely and unambiguously figure that out and record the conclusions in a Requirements Specifications document.Monday, October 13
Tuesday, October 14
Assignment collected: Software Development Plan Readings assigned: Week 4. Conceptual Analysis/Design
How do we turn our idea of what needs to be done into software that
actually accomplishes it? There are several approaches to this problem but all
of them involve finding out what type of information people need and how do
they and how will they use that information in order to accomplish a task?
Assignment collected: Requirements Specifications Readings assigned: "interface", Jonathan Grudin Assignment collected: Conceptual Analysis/Design Readings assigned: Community Participation in Health Informatics in Africa: An Experiment in Tripartite Partnership in Ile-Ife, Nigeria (CPSR: 1996) Assignment collected: User Interface Design Readings assigned: Design Specifications, pages 49 - 57; Design Reviews; 59 - 68 both in Wilson. Assignment collected: Readings assigned: Code Reviews, pages 69 - 98 in Wilson. Assignment collected: None Readings assigned: Best Practices for Software Testing, pages 119 - 131 in Wilson. Assignment collected: Testing Plan (keep a copy for system testing!) and the rest of the case study notebook. Readings assigned: |