Computer Science 480/L - Spring 2010

Software System Development

 

 

Instructor:                    Bob Lingard

Office:                         JD 4417

Office Phone:             677-3825

Email Address:            rlingard@csun.edu

Web URL:                   http://www.ecs.csun.edu/~rlingard

Office Hours:              Monday 12:00 – 1:30 PM, Wednesday 4:30 – 6:00 PM,

                                                and by appointment

Prerequisite:                Comp 380 (Introduction to Software Engineering)

Corequisite:                 Comp 480L (Software System Development Laboratory)

Text:                            Software Engineering: A Practitioner's Approach, 7th Edition,

                                                by Roger Pressman

Recommended:          Introduction to the Personal Software Process, by Watts Humphrey

Ticket# 17926:            Lecture meets MW 2:00 – 2:50 PM in JD 3508

Ticket# 17927:            Lab meets MW 3:00 – 4:15 PM in JD 2211

 

Course Description

 

A project-oriented course to allow students to apply their knowledge of software engineering to the design of a large software system.  The student (together with other team members) will identify a suitable computer problem, examine various methods of attacking it, choose a suitable one, and realize a solution in an appropriate computer language.

 

Course Objectives

 

Successful students will be able to:

1.    Understand the concepts and principles of software project management

2.    Understand approaches and techniques for estimating the size of software projects

3.    Understand the techniques and approaches for developing a project schedule

4.    Understand the principles and practices of risk analysis and risk management

5.    Distinguish between the different types and levels of testing for non trivial software products

6.    Understand the concepts and principles of software configuration management

7.    Understand the principles and activities associated with quality management for a software project of non trivial size

8.    Understand the importance of software metrics and their use with respect to project management, software quality, and software process improvement

9.    As part of a team effort, apply effective methods for the elicitation and analysis of software requirements for a non trivial practical software system

10.  Specify, in the form of a requirements specification document, the requirements for a non trivial practical software system as a team activity

11.  As part of a team activity, create and specify the software design for a non trivial practical software system using an accepted design methodology and appropriate design notation

12.  Demonstrate the capability to use a range of software tools in support of the development of a software product

13.  As part of a team effort, create and implement a test plan for a non trivial software development effort

14.  As part of a team activity, prepare a project plan for a software project that includes estimates of the size and effort, a schedule, and resource allocation

15.  Conduct, working with a team, a risk analysis for a non trivial practical software project

16.  Conduct, working with a team, an inspection of a code segment significant size

17.  Demonstrate through involvement in a team project the central elements of team building and team management

18.  Prepare and deliver a presentation summarizing the results of a team software development project

 

SPECIAL NOTE

 

For the past 10 years the CSU system has suffered chronic under-funding.  This year, because of the state economic crisis, the budget cuts ($584 million) are the worst in decades.  The CSU administration is attempting to manage these cuts by dramatically increasing student fees and by furloughing almost all University employees, including faculty, staff, and administrators.   A furlough means mandatory un-paid days off for employees; there are 18 of these this year for the faculty, nine per semester.  As a professor, I will give you advance notice of the days when class will be canceled because of furloughs.  My tentative furlough dates for this semester are: Friday 1/29, Monday 2/15, Friday 2/29, Wednesday 3/24, Monday 3/29, Thursday 4/15, Tuesday 4/20, Thursday 5/6, and Tuesday 5/11.

 

For students this means that on some days the campus may be closed.  The library may have shorter hours and many campus support services are likely to be decreased or eliminated. It will, for example, be more difficult to get signatures to meet deadlines. Additionally, some classes you need may have been cut from the class schedule or are full.  These cuts have consequences, especially for you. 

 

Grading

 

The same grade will be given for both the lecture and laboratory portions of the course.  An absolute grading system will be used, where 90% is required for an A, 80% for a B, 70% for a C, 60% for a D, and anything below 60% is failing.  Pluses and minuses will be given for grades within 3 percentage points of the dividing marks.  For example, a final total which is 80% or more but less than 83% would correspond to a letter grade of B-, a total of 77% or more but less than 80% would correspond to a C+, etc.  The final grade will be based on the following:

 

                                    Quizzes (12)                                        10%

Midterm Exam                                    10%

                                    Final Exam                                          20%

                                    Group Project                                     40%

                                    Individual Projects/Homework            10%

                                    Presentations                                        5%

                                    Sharing                                                  5%

 

Late work will be accepted without penalty only if some compelling reason is provided (preferably in advance) justifying the lateness.  Without such a justifiable excuse, late work will be penalized 5% for each calendar day that it is late.

 

Plagiarism (intentionally or knowingly representing the words, ideas, or work of another as one’s own) or any other form of academic dishonesty will not be tolerated.  As a minimum students who are guilty of such dishonesty will receive no credit for the given assignment or exam and will not be allowed the opportunity to redo the work in question.  In addition, incidents of academic dishonesty may be reported to the University and further disciplinary actions are possible including expulsion or suspension from the University.  (See Appendix E-2 of the University Catalog.)

 

Quizzes & Exams

 

Quizzes will consist of several multiple choice questions on the reading material.  There will be a quiz each week except for the first week, the last week and the week in which the midterm exam is given.   The lowest two (2) quiz grades will be dropped.  The quizzes will be given during the lab sessions.  The exams may be “take home” exams or “in class” exams.  They may be open book or closed book, but, in any case, they must be individual efforts.  Discussing the questions on the exam with an individual, other than the instructor, is not permitted.

 


Group Projects

 

The students in the class will be divided into teams of four to five members each.  The group projects will be done as team efforts and a single result will be turned in by the team.  Members of each team will evaluate the performance of the other team members at the end of the semester.  This evaluation will account for 25% of the total Group Project grade (or 8% of the total course grade).

 

Individual Projects

 

Individual assignments and projects will also be given.  Discussion and collaboration with other class members on individual assignments is permitted, and even encouraged, to the extent that said collaboration is a fair and equitable exchange of ideas.  That is, one individual should not be doing all the work and sharing it with others.  It is permissible to ask other students for help, but it is not permissible to copy the results of others.  If several students collectively solve a problem, each should write up the results in his or her own words.

 

Presentations

 

Each group will present the results of their efforts and demonstrate their software system to the rest of the class at the end of the semester.  In order to get credit each group member must deliver part of the presentation, but it must be organized as a group activity.

 

Sharing

 

A portion of the final grade (5%) will be based on sharing.  There are many ways to accumulate sharing points.  Bringing in relevant material found in the newspaper, technical journals, or other such sources and explaining it to the class is one way.  The material could be an article, a cartoon, a videotape, a software engineering document or program, etc.  Another way to share is by posting information on a course online sharing forum.  Other opportunities for sharing will be explained during the course of the semester.  Each instance of sharing will be worth one to two percent of the final grade depending on its relevance and significance up to a total of five percent.     

 

Tentative Schedule by week

 

1              Review of software engineering concepts 

The personal software process

Personal time management and the software engineering notebook

Introduction to project management

Readings: Chapter 24

 

2              Requirements engineering review

Problem analysis

Gathering requirements

Developing use cases

Requirements modeling

Documenting software requirements (Software Requirements Specification)

Chapter 5

 

3              Software project planning

Estimating project size

The COCOMO model

Readings: Chapter 26

 

4              Project scheduling and tracking techniques

Readings: Chapter 27

 

5              Risk management

Risk identification

Risk mitigation

Readings: Chapter 28 

 

6              Review of software design

Object-oriented design

Data design

Design modeling

Readings: Chapter 8

 

7              Human-computer interface design

Readings: Chapter 11

 

8              Midterm exam

 

9              Software metrics 

Product metrics

Process metrics

Readings: Chapter 25

 

10           Review of software quality assurance

Quality concepts

Software quality metrics

Statistical quality assurance

Readings: Chapters 14 & 16

 

11           Verification and validation

Software reviews

Software testing strategies

Readings: Chapter 15 & 17

 

12           Software configuration management

Version control

Change control

Readings: Chapter 22

 

13           Writing user documentation

 

14           Software maintenance

Software reengineering

Readings: Chapter 28

 

15           Software process improvement

Readings: Chapters 29

 

Final Exam: Monday, May 10, 2010, 3:00 – 5:00 pm