Department of Computer and Information Science
CSCI 450
Principles of Software Engineering
Syllabus
Fall 2001
Section: B455 4:00-5:15 p.m. MW SL 148

Instructor: A. Olson

Office hours: MW 2:00-4:00, 5:15-6:00 PM and by appointment

Office: SL 280

E-mail: olsona@iupui.edu

Office Phone: (317) 274-9727

URL:www.cs.iupui.edu/~aolson 
Teaching Assistant: none Contact: --

Copyright 2001.  All rights reserved. Contact the author for permission before copying.  No permission granted for use in commercial products.  All copies must contain this copyright notice.

Texts:

Introduction to the Team Software Process.  W. S. Humphrey, Addison-Wesley, 2000, ISBN 0-201-47719-X

Object-Oriented Project Management with UML.  M. R. Cantor, John Wiley & Sons, 1991,

ISBN 0-471-25303-0

Recommended:

Computer Ethics. D. G. Johnson, 3rd edition, Prentice-Hall, 2001, ISBN 0-13-083699-0

Course Description:

Software engineering is the establishment and use of engineering principles to manage the human and technical components involved in creating software so that it satisfies the client's functional requirements and constraints.  This course is intended as an introduction to the principles and practice of software engineering. It will cover tools and techniques used in software development to evaluate and control software quality and project progress. Topics include life cycle concepts applied to program specification, development and maintenance, the use of a specific methodology in developing large programs, program verification, and techniques for testing and quality control.

Course Objectives:

The goal of this course is for the participant to acquire an understanding of the principles of, and skills in current practices for, carrying out a team-sized, software engineering project. By the end of the course, the successful participant will

    1. esthetic issues in software design
    2. ethical practices in the software industry
    3. a current process for developing software
    4. current processes for managing software engineering projects
    5. measures of software quality
    6. measures of project progress
    7. tools that support software engineering projects
    1. with factors influencing team dynamics
    2. on a software engineering team

This course develops abilities related to the following of the
university's six Principles of Undergraduate Learning:

  1. Communication and Quantitative Skills
  2. Critical Thinking
  3. Integration & Application of Knowledge
  4. Intellectual Depth, Breadth and Adaptiveness
  5. Values and Ethics

Expectations:

3 credits. Prerequisites: CSCI 355 and CSCI 362.

No late assignments or projects will be accepted. All assignments and projects must be turned in by the beginning of the class on the due date.  There will be NO EXCEPTIONS made to this policy except for strongly justified emergencies.

Attendance at the Final Examination Period is required.  Do not register for another course that has an examination period that conflicts with this one.

Follow the Standard of Conduct described below.

Tentative Course Schedule

Session: Date: Topic: Activity:  
1 8/22

Introduction to class

Ethics in Software Engineering 

Read Chapt. 2, Johnson, Notes: Providing a Philosophical Basis for Ethical Decisions & Liability in Software Development   
2 8/27 Overview of the Software
Engineering Process
Read Chapt. 1 Cantor;
Chapts. 1, 2 Humphrey
 
3 8/29

PSP Process
Models 

Read Chapt. 2 Cantor;

Chapt. 3 Humphrey 

 
4 9/3

No Class

Labor Day  
5 9/5

TSP Process;

Management Roles

Assignment 1 due;

Read Appendix B, G, skim Chapts. 11-15 Humphrey

 
6 9/10

Capturing the Problem

Assignment 2 due;

Read Chapt. 4 Humphrey

 
7 9/12

Life Cycles

Read Chapt. 3 Cantor

 
8 9/17

Scheduling

Assignment 3 due;

Read Appendix C, Chapt. 5 Humphrey

 
9 9/19

Planning, metrics

Read Chapts. 4, 9 Cantor  
10 9/24

Project Inception

Requirements Specifications

Read Chapt. 5 Cantor;

Chapt. 6 Humphrey

Assignment 4 due 

 
11 9/26

Testing

Read sections 9.4-9.6 Humphrey  
12 10/1

High Level Design 

Read Chapt. 7 Humphrey  
13 10/3

Elaboration Level of Knowledge

Read Chapt. 6 Cantor  
14 10/8

Implementation

Read Chapt. 8 Humphrey  
15 10/10

Construction Level

Read Chapt. 7 Cantor Assignment 5 due  
16 10/15

Integration  Ed. Yourdon's talk at Butler U.

Read Chapt. 9 Humphrey  
17 10/17

Transition Level 

Read Chapt. 8 Cantor  
18 10/22

Post Mortem

Read Chapts. 10, 11-15, 16-18 Humphrey  
19 10/24 Development Project Development Project  
20 10/29 Review Development Project  
21 10/31 Development Project Midterm Exam  
22 11/5 Development Project Development Project  
23 11/7 Development Project Development Project  
24 11/12 Development Project Development Project  
25 11/14 Development Project Development Project  
26 11/19 Development Project Development Project  
27 11/21 No Class Thanksgiving Day  
28 11/26 Development Project Development Project  
29 11/28 Development Project Development Project  
30 12/3 Development Project Development Project  
31 12/5 Project Review Presentations; Reports Due  
32 12/10 Review Final Reports Due  
33 12/17

FINAL EXAM: 3:30-5:30 p.m.   SL 148

NOTE: This Document is Subject to Change at any time.
Consult your Instructor.


Link to IUPUI Academic Calendar

Grading:

Your grade in this course depends upon your individual performance on Assignments, the Midterm and Final Exams, and your personal contribution to the class and to Team Projects. It also depends upon the overall quality of the team's conduct during the projects, to which you are expected to make a major and proportionate contribution.

Assignment scores accumulate on a point-wise basis, depending upon their complexity. The Midterm Exam forms 30 % of the total score for the course and the Assignments form 5 % of the total score. The Project grade consists of the Final Exam score and the accumulation of periodic Team Reports. Together these form 60 % of the total score. There is also a measure of personal contribution, which forms about 5 % of the total score. It depends upon your personal contribution to the class and team efforts. Be aware that this factor may detract from points accumulated elsewhere, reducing your score. This reflects the fact that contribution can be detrimental as well as constructive.

A student who does not turn in a reasonable response to the Final Exam, or accumulate at least 50 % of the course's total possible points, cannot expect a passing grade in the course.

Exercises:

Assignment 1

Assignment 2

Assignment 3

Assignment 4

Assignment 5

Projects:

Team Membership

Software Development Organization

Team Responsibilities

Project

Project Deliverables

Notes:

Providing a Philosophical Basis for Ethical Decisions

Liability in Software Development

Risks Digest notes

Contest on Ethics

Class meets at Reilly room, Atherton Union, Butler University, on Monday, October 15th, for Mr. Yourdon's speech.

Check the colloquium announcement at http://butler.edu/cs/seminars/ for information on

parking and Mr. Ed. Yourdon's speech.

Withdrawal Policy:

Withdrawals during the period when the Instructor must sign the Drop/Add slip will require justification.

Incomplete Policy:

A grade of I (incomplete) will only be assigned under exceptional circumstances, such as illness, that prevent students from finishing all work required in this course. A grade of I will be awarded only if a minimum of 75% of the work has been completed and the work is of passing quality. Department policy requires a contract be signed by both the instructor and the student in the assignment of any I grade. This contract outlines course work required and establishes a specific date (no more than one year) by which all unfinished work must be completed. The instructor is not required to give the student a full year to finish the work. The instructor has the right to set an earlier deadline if deemed appropriate.

Standard of Conduct:

Each student is expected to adhere to high standards of ethical conduct, especially those related to cheating and plagiarism, IU Code of Student Ethics (see Misconduct) . See also the Association for Computing Machinery's Code of Ethics and Professional Conduct .

In this course, you are not permitted to collaborate or consult with other students when doing the assignments and exams.  You may exchange general ideas with other students when working on assignments, but the results that you turn in must be yours alone.

On a project, you will be working in a team, which will follow semiformal software engineering guidelines, such as required by ISO 9000 standards, to development a software productStudent teams will consist of members with various areas of expertise.  Team members must collaborate, providing assistance for all to understand new material, in order to meet their project's requirements and schedule.  During a project, you are expected to perform promptly the  responsibilities that are assigned to you, and these should be distributed approximately equally among the team members.  Communication with your team members concerning your and the team's progress is a key factor in achieving the team's goals.

Any deviation from these rules will be considered a violation of the Code above.  Penalties, depending on the severity of violation, can range from a reduction in credit, no credit, or disciplinary proceedings for cheating or plagiarism as provided by the Code.

General Information:

Watch this section for future postings.


Phoenix Information:

For all those who have never logged on to Phoenix, here is important information:


Important Information About Accessing SL 251 (UNIX Laboratory):

As a student in the Department of Computer and Information Science, you can check out a key card for the SL 251 UNIX lab. This allows you use of the lab outside of class hours. Key cards may be obtained in SL 280, Monday through Thursday, 8:00 a.m. - 5:45 p.m. Students will be required to fill out a loan form and make a deposit of $10.00 which will be refunded when the card is returned by the end of the semester. Students are also required to renew their key card on a weekly basis via e-mail or online at http://www.cs.iupui.edu/~dtauriai/keycard_renewal.html. Students failing to renew their card weekly will have their card deactivated, denying them access to the lab, and the $10.00 deposit forfeited by the student. Students failing to return their key card by the end of the academic semester will forfeit their deposit.

IT IS YOUR PERSONAL RESPONSIBILITY TO RENEW YOUR KEY CARD WEEKLY.


You are responsible for the lab and the equipment within while the key card is in your possession. You are expected to follow all lab rules such as: no food or drink, no playing games on the computer and no work unrelated to the course. If a student has food or drink in the lab they will be asked to dispose of it. If a student is found violating the other rules of the lab they will be asked to leave, return their card and will lose their lab access deposit. If the key is lost or stolen, please notify the Department immediately. Until the key loss is reported, the student remains responsible for the lab and equipment.

Do not leave the lab open. For example, do not leave the door propped open while you leave the lab to take a break. You are responsible for the equipment and supplies there. You have a key. Keep the door locked to make sure only authorized persons enter. The better care you take of the lab, the nicer your working environment will be. Thank you.