Department of Computer and Information Science

Syllabus
CSCI 506
Management of the Software Development Process

Fall 2007
Class Number: 27153

Section: 100, 4:30-5:45 p.m. MW IT 157

Instructor: A. Olson

Office hours: MW 1:00-4:00 PM and by appointment

Office: SL 280

E-mail: olsona@iupui.edu

Office Phone: (317) 274-9733

URL:www.cs.iupui.edu/~aolson 

Teaching Assistant: --

Contact: Department in SL 280, phone 274-9727

Copyright 2007.  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:

Software Engineering: An Object-Oriented Approach. Eric J. Braude, John Wiley & Sons, 2001, ISBN 0-471-32208-3 

Recommended References:

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

Course Description:

A survey of the fundamental principles and concepts of managing a software project. Topics include life cycle models, standards and goals, cost estimation, risk analysis, tool use, component reuse, traceability, metrics, and process control and improvement. Students are required to apply management concepts using a project-based approach.

Course Purpose:

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 advanced introduction to the principles and practice of software engineering. It will discuss the 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, and tools and techniques for testing.

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 architecture and 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. participating in a software engineering team

Expectations:

3 credits. Recommended Preparation: CSCI 450 or CSCI 452, or graduate standing in the department.

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 and

Software Engineering

Ethics in Software Engineering 

Read Introduction & Chapt. 1 Part I (browse pp. 20-23) in Braude and Notes: Providing a Philosophical Basis for Ethical Decisions & Liability in Software Development 

 

2

8/27

Introduction to Project Management

Read Chapt. 2 Part I (browse pp. 77-85, 90-92

 

3

8/29

Introduction to Requirements Analysis

(Problem Definition)

Read Chapt. 3

 

9/3

No Class

Labor Day

 

4

9/5

Detailed Requirements Analysis

(Problem Definition)

Assignment 1 due;

Read Chapt. 4 Part I

 

5

9/10

Introduction to Architecture

Read Chapt. 5 Part I Assign. 2 due

 

6

9/12

Introduction to Detailed Design

(Problem Solution)

Read Chapt. 6 Part I (Browse pp. 311-312, 315-318)

 

7

9/17

The Software Engineering Process

Read Chapt. 1 Part II (browse pp.49-56)

 

8

9/19

Project Management

Read Chapt. 2 Part II (browse pp. 94-96, 116-117)

 

9

9/24

Detailed Requirements Analysis

(Problem Specification)

Read Chapt. 4 Part II (browse pp.217-225)

Assignment 3 due 

 

10

9/26

Architecture

Read Chapt. 5 Part II (browse pp. 263-265, 272-278, 281-283)

 

11

10/1

Architecture 

           ;     Assignment 4 due

 

12

10/3

Detailed Design

Read Chapt. 6 Part II (browse pp. 319-335)

 

13

10/8

Unit Implementation

Read Chapt. 7 (browse pp. 361-370, 375-376) (skip pp. 370-375)

 

14

10/10

Unit Testing

Read Chapt. 8 (browse 397-405, 415-419, 421-431)

Assignment 5 due

 

15

10/15

Integration and Verification & Validation.

Read Chapt. 9

 

16

10/17

 Post Mortems

          ,  Organize Project

 

17

10/22

Review

           Project

 

18

10/24

During class

Exam

 

19

10/29

Development Project

Development Project

 

20

10/31

Development Project

Development Project

 

21

11/5

Development Project

Development Project

 

22

11/7

Development Project

Development Project

 

23

11/12

Development Project

Development Project

 

24

11/14

Development Project

Development Project

 

25

11/19

Development Project

Development Project

 

11/21

No Class

Thanksgiving Day

 

26

11/26

Development Project

Development Project

 

27

11/28

Development Project

Development Project

 

28

12/3

Development Project

Oral Presentations, Development Project

 

29

12/5

Course Review

Development Project

 

30

12/10

Acceptance Testing

Final Notebooks and other Deliverables Due

 

31

12/17

Process Quality Evaluations due; FINAL EXAM: 3:30 - 5:30 p.m.  

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, which depends 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 scores on 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 reasonable responses to the Midterm and Final Exams, and 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:

       Software Engineering Presentations

Team Membership

Software Development Organization

Team Responsibilities

Project

Project Deliverables

Project Overviews

Notes:

Providing a Philosophical Basis for Ethical Decisions

Liability in Software Development

Risks Digest notes

USDP Creation of High-Level Requirements

C++ Programming Standards

A Definition of the Software Engineering Process

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, IUPUI Student Code of Conduct (see sections on 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 IEEE standards, to develop a software product.  Student 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.


Enigma Information:

For all those who have never logged on to the department’s server, Enigma, 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.