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

wolfgang@temple.edu

 

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.

 

 

Texts

 

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

 

Introduction to the Personal Software Process

Watts S. Humphrey

SEI Series in Software Engineering

Addison-Wesley

ISBN 0-201-54809-7

 

Facts and Fallacies of Software Engineering

Robert L. Glass

Addison-Wesley

Boston, MA

ISBN 0-321-11742-5

 

 

Evaluation:

 

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
Lab One

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.