CISW4298.001 - Software Engineering
Fall 2007
Class meets Monday 10:40 - 11:30 (TL302) and
Wednesday 10:40 - 12:30 (TL302)
Lab meets Friday 10:40 - 12:30 (CC104)
Paul Wolfgang
1041 Wachman
215-204-5155
Office hours: Monday, Wednesday, and Friday 1:30 - 2:30
Or by Appointment
Course prerequisites and co-requisites:
Prerequisite: CIS3223 - Data Structures and Algorithms
Co-Requisite: CIS3207 - Introduction to Systems Programming and Operating Systems
For details visit:
http://www.temple.edu/bulletin/ugradbulletin/ucd/ucdtoc.html
Disability disclosure:
Any student who has a need for accommodation based on the impact of a disability should contact me privately to discuss the specific situation as soon as possible. Contact Disability Resources and Services at 215-204-1280 in 100 Ritter Annex to coordinate reasonable accommodations for students with documented disabilities. (Temple University Policy and Procedures Manual)
Academic freedom:
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has a policy on Student and Faculty and Academic Rights and Responsibilities (Policy #03.70.02) which can be accessed through the following link: http://policies.temple.edu/getdoc.asp?policy_no=03.70.02.
Course Objectives:
This is an introduction to software development techniques that stresses development life cycles, the confirmation of requirements, on-time performance, and the construction of software that will be well tested and efficiently maintained.
Individual software development and personal time management are introduced through the Software Engineering Institute's (SEI) Personal Software Process.
Object oriented analysis and design are emphasized along with the Unified Modeling Language (UML) and the Unified Software Development Process (USDP).
Small teams (4-5) will be organized to develop systems that incorporate the concepts introduced in the class. Groups will also be expected to work on a larger project presented by the local business community. The techniques will be applied to real world projects in 339.
This is a writing intensive course, and two writing assignments will be completed.
The first assignment will address the Personal Software Process lessons applied in the course and how the techniques will apply to future software projects.
The second assignment will be to complete a combined functional specification (requirements) and design document (technical). This document will be developed by the team.
The two midterm exams will also be in an essay format.
Essentials of Software Engineering
Frank Tsui and Orlando Karam
Jones and Bartlett
Sudbury, MA
ISBN-13: 978-0-7637-3537-1
ISBN-10: 0-7637-3537-X
Objective |
Weight |
Mid Term 1 |
10% |
Mid Term 2 |
10% |
Labs, Project Documentation and Presentation |
40% |
PSP Paper and other homework |
10% |
Final |
20% |
On-time Attendance and Class Participation |
10% |
Grading:
Team members generally receive the same grade for submitted work products, but grades will be adjusted based upon meetings with teams and other communications with the group. Overall grades will be based upon a combination of individual contributions and the overall team performance.
Teamwork and team participation are major objectives of this class. A certain amount of subjectivity will necessarily be applied to the grading process because there are elements of the project such as leadership, contribution, creativity, etc. that are difficult to quantify. Generally, 40-50% of the grade will be from the team effort and the rest from individual effort and contributions to the project.
This class will require 10-12 hours of work per week. You will be expected to meet with your group, and you will be expected to complete group assignments on time.
A |
93-100 |
|
C |
73-76 |
A- |
90-92 |
|
C- |
70-72 |
B+ |
87-89 |
|
D+ |
67-69 |
B |
83-86 |
|
D |
63-66 |
B- |
80-82 |
|
D- |
60-62 |
C+ |
77-79 |
|
F |
59- |
Labs and Assignments
Scheduled lab times will be used by teams to meet and complete project assignments. Everyone is expected to make backups of their work and to store them securely. Computer related problems will not be considered an acceptable excuse for the failure to complete work on time.
An attempt to print documents moments before class, or group meetings, never produces the desired result. The printer won't be available, it will be broken, you will exceed the allowable printing limits, etc. Plan ahead. The worst problem with last minute printing is that there is no time to edit the work.
Teams
The distinguishing characteristic of a successful project in most organizations is the heroic efforts of one individual. This person is willing to sacrifice all other work and recreation to devote themselves exclusively to the project. Through these Herculean efforts, the work is "completed" on time and everyone associated with the project sighs with relief and moves on to the next project.
From a developer's perspective, there is a tendency to say that all is well because the system exists and it works. Other aspects of the system such as repeatability, maintainability, documentation, support, and confidence are missing, but it is likely that no one will find out about these problems until the team is long gone and engaged in another project. The academic equivalent is that the semester is over with final grades awarded and recorded. Consequently, all academic software liability ceases.
This unfortunate consequence may be attributed to the misconception surrounding the relationship between project objectives and individual responsibilities. A simple definition of a "completed system" is one that can be maintained without the necessity of finding the original team members to quiz them about the details of the application.
Creating Teams
You will be asked to create teams for the class project. Teams may have as few as four members or as many as seven, but the ideal team membership will be five. It will be the responsibility of the instructor to determine appropriate team size and to approve any exceptions or later additions or removals.
Try to construct your team by selecting members based upon their skills. Your project may require that you learn about a new operating system, or to become facile with a new language, but that is a reality of the IT profession. The basic team skill inventory should consist of the following:
· Team leadership
· Programming
· Operating Systems
· Networks
· Writing / Documentation and communications
· Quality Assurance
· Analysis
· Design
In the process of analysis, you may discover that there are required skills that none of your team members possess. If this happens, you must meet as a team and make a decision as to how to proceed. Your options include developing the new expertise, consulting with faculty or other students, or modifying the proposed system design. Under no circumstances can you afford to sit back to "see what happens."
If you fail to have work completed on time because you chose to "do it yourself" instead of seeking assistance, your team will be penalized. Do not lose sight of the business prime directive: implement a solution to a business problem.
Team Problems and Guidelines
Any team member that fails to keep commitments, or otherwise does not perform up to the standards set by the team (or instructor), may be fired from the team. All team dismissals must be done in consultation with the instructor. Dismissal is usually not the best solution, and there must be an attempt to explain the problem to the errant team member.
Anyone dismissed from a team must produce a resume and attempt to sell their services to another team. If unable to find a team willing to employ them, a serious decision must be made as to the value of continuing with the class.
An excuse may postpone an event, but it never actually excuses someone from doing the work. Do not concentrate on excuses; expend your efforts on a contingency plan. The team leader wants to know what will happen now to keep the project on track.
Be certain that all team problems are brought to the attention of the instructor in a timely manner.
Grading Teams
A major part of the grade for this course is derived from the written documents that are constructed as a team effort. There will also be individual assessments. These assessment criteria include:
· Quality of work
· Perceived effort
· Preparation
· Participation
· Contribution
· Assisting others on the team
· Attendance
· Promptness
· Other relevant factors
Team leaders will be asked to assist in the evaluation of team members.
Groups:
Each group should have 4 - 5 participants. Groups may continue into the second semester.
One person should be chosen as the group leader. This individual will be responsible for scheduling, communications, and will be the primary contact with the instructor.
Basic class policies:
· Plagiarism: Don't do it. Cite references and sources. The reader must not confuse your work with the work of others. Plagiarism is a very serious offense.
· Cheating: Don't do it. The class requirement is that original work be completed for this class. If there is any doubt about what is acceptable, please ask the instructor. If you are expanding upon other assignments completed for another class, you must receive permission from the instructor.
Weekly Schedule:
Week |
Date |
Monday PSP Lectures 10:40-11:30 |
Wednesday Tsui Lectures 10:40-12:30 |
Friday Lab
|
1 |
Aug 27 |
Introduction / Texts |
Introduction / Texts |
Accounts |
2 |
Sep 3 |
Holiday |
Writing a Program (1) Building a System (2) |
|
3 |
10 |
Time Management and Tracking (2,3,4) |
Engineering of Software (3) |
Accounts Lab One |
4 |
17 |
Planning and Estimating (5,6) |
Software Process Models (4) |
Lab One |
5 |
24 |
Software Development Process (10,11,12) |
Process Methodologies (5) |
Lab One |
6 |
Oct 1 |
Managing Time and Commitments (7,8) |
Lab One Review / Presentations |
Lab One & Two |
7 |
8 |
Quiz 1 |
Requirements (6) |
Lab Two |
|
Mar 5 |
Spring Recess |
|
|
8 |
15 |
Managing Schedules (9) |
Design and Metrics (7,8) |
Lab Two |
9 |
22 |
Defect Removal, Code Review (13, 14) |
Testing and QA (10) |
Lab Two |
10 |
29 |
Defects, Quality (15,16,17,18,19) |
Software Project Management (13) |
Lab Two |
11 |
Nov 5 |
Quiz 2 |
Preliminary Presentations |
Lab Two |
12 |
12 |
Project Review / PSP Paper |
Software Facts & Fallacies |
Lab Two |
13 |
19 |
Project Review |
Lab |
Holiday |
14 |
26 |
Exam Review |
Project Judging |
Lab Two |
15 |
Dec 3 |
|
|
No Lab |
|
10 |
Final 11:00-1:00 |
|
|
Last Note:
I would like to suggest that there are some universal project rules that make the lives of project participants and project managers bearable:
Rule 1: No surprises. Keep your group leader and instructor informed.
Rule 2: It is never the responsibility of the project leader to track people down to get status reports.
Some final notes from the Dean's office:
First class: Monday August 27.
Thanksgiving Holiday: November 22 & 23. Note on Wed. November 21, follow your Friday schedule.
Last day to drop (tuition refund available): Monday, September 10.
Last day to withdraw (no refund): Monday, October 29. Students who have previously withdrawn from the same course, or who have already withdrawn from 5 courses since September 2003 may not withdraw.
Last Class: Wednesday, December 5.
Students who miss the final and do not make alternative arrangements with me will be graded F.