CS5370/6370 – ADVANCED SOFTWARE ENGINEERING (WITH PROJECT) – SPRING  SEMESTER, 2008

 

Instructor:             Supratik Mukhopadhyay, Main 423, x73267, supratik@cc.usu.edu

Venue:                  Old Main 121

 

Office Hours:        T-Th 3:00-5:00 PM

Text:                       Readings on reserve at the library or on the Internet.  There is no textbook, although you may want to purchase or look at The Mythical Man-Month by Fred Brooks, published in 1995 by Addison-Wesley, Introduction to the Personal Software Process by Watts Humphrey, published in 1997 by Addison-Wesley, Zohar Manna and Amir Pnueli’s .Temporal Verification of Reactive Systems: Safety. Springer-Verlag, 1995,  Rob Ryan’s Smartups: Lessons from Rob Ryan's Entrepreneur America Boot Camp for Start-Ups (Cornell University Press, 2002) and Introduction to Reliable Distributed Programming by Guerraoui and Rodrigues,  Springer, 2006.

 

Course Homepage: http://www.cs.usu.edu/~supratik/CS%205370/CS%205370%20and%206370%20Home%20Page.htm

 

 

Prerequisites:        Programming skills, CS 2370

Course Goals:

§         To become familiar with advanced concepts in Software Engineering, as evidenced by the student's successful completion of homework assignments and examinations

o        Software Engineering for distributed systems

o        Planned vs. Agile development model

o         requirements acquisition strategies

o        architectural (especially object-oriented) design methodologies

o        Aspect-Oriented design

o         domain-based, error-based, and regression testing techniques

o        Software Verification and Validation

§         To develop software management and teamwork skills (CS 6370 only) as evidenced by evaluation of the software product developed by the student's team

RULES

 

1. Eagle will give you an ID number by which you will identify all your homework and exams.  Do not disclose this ID to other students; do not write your name on homework or exams.  Each submission must be clearly labeled with your ID.  All files to be used can be obtained from  http://www.cs.usu.edu/~supratik/CS%205370/CS%205370%20and%206370%20Home%20Page.htm.  You will be informed of your grades by the Eagle system.

 

2. Homework is due and will be submitted via the Eagle system on Friday before midnight.  Each homework assignment will be worth 10 points.  Late homework may be turned in before midnight on the following Monday and will suffer a 2 point penalty for each day late. The midterm exams will be worth 100 points and the final exam will be worth 160 points. All exams will be closed book, closed notes, no calculators allowed. You must take exams at the scheduled times. The project as a whole will be worth 200 points.  Each part will be worth the amount listed below.  For the project, you will receive the number of points given to the team as a whole, multiplied by the fraction of credit for its success assigned to you by your team mates.  At the end of the semester all your points will be totaled and you will be graded based on that total. I generally figure 85-100% is an A, 70-85% is a B, 60-70% is a C, 50-60% is a D, and below 50% is an F. However, grades vary (up or down) somewhat depending on the difficulty of assignments and tests. (At times, I lower the points possible for an exam to make this general assignment of percents to grades more appropriate.)

 

 

Incomplete grades will only be given under the circumstances outlined by University policy: for instance, illness requiring that at least two weeks coursework be missed.  This means that an incomplete cannot be given to prevent receipt of a bad grade.  In such situations, a withdrawal or late withdrawal is required.  Incomplete grades can't be made up simply by attending the course again in another semester.  All grades obtained during this semester will be used in determining the final grade. The University policy will be adhered to for incompletes.  If a student feels that an incomplete is appropriate, it is their responsibility to immediately discuss the matter with their instructor.

 

3. You are required to observe the University and Departmental policies on academic honesty.  Generally, this means that you will never present the work of others as if it were your own.  Specifically: handing in homework done by others; copying from other students' exam papers; using information from hidden sources during an exam; or submitting reports written in part by others without proper quoting and citation; are all considered cheating and will be punished, at the minimum, by giving as a grade the negative of the maximum number of points possible on the assignment where cheating occurred, and by placing a report in your permanent file.  More severe penalties can also be imposed.  Students who provide homework for others will also be punished.

 

4. If a student has a disability that will likely require some accommodation by the instructor, the student must contact the instructor and document the disability through the Disability Resource Center, preferably during the first week of the course.  Any requests for special considerations relating to attendance, pedagogy, taking of examinations, etc. must be discussed with and approved by the instructor.  In cooperation with the Disability Resource Center, course materials can be provided in alternative formats ‑‑ large print, audio, diskette, or Braille. Students with physical, sensory, emotional or medical impairments may be eligible for reasonable accommodations in accordance with the Americans with Disabilities Act and Section 504 of the Rehabilitation Act of 1973. All accommodations are coordinated through the Disability Resource Center (DRC) in Room 101 of the University Inn, 797-2444 voice, 797-0740 TTY, or toll free at 1-800-259-2966. Please contact the DRC as early in the semester as possible. Alternate format materials (Braille, large print or digital) are available with advance notice.

 

5. As a computer scientist, or someone taking a computer science class, you are expected to perform your work at all times in an ethical manner. This means that in addition to doing your own work and giving appropriate credit when the work of others is used, you are required to protect your work.
A student that protects their work will not allow another student access to that work whether it be allowing it to be copied, or treating its security in such a way as to give unintentional access, such as "accidental" loss. It is the policy of the department that when duplicate (essentially the same) work is turned in by two or more students, without acknowledgement of allowed cooperation, all involved students will be considered in violation of this department policy. Under such circumstances, each student will receive minus the points possible for the work.
Thus, for a 15 point assignment, all would receive -15 points. If the infraction is deemed more egregious, then further action may be taken.

 

6. Students will not be permitted to take both CS5370 and CS6370, whether in the same semester or different semesters, to satisfy the requirements of degrees in Computer Science at USU.  You may manage to sign up for both, but you will not be able to use both of them on your graduation forms or plans of study.

 

7. The last day to add this class is January 29.  Attending this class beyond that date without being officially registered will not be approved by the Dean's Office.  If you are not registered, I will neither accept homework nor examinations from you.  This is also the last day to drop the course without a notation appearing on your transcript.


                                                                   SCHEDULE

 

Date

Topic

Assignment (Due dates will be posted on Eagle)

Jan 8

Course Administration and Introduction

 

Jan  10

Smartups: Rob Ryan’s Flower Model

Pretest for CS 5370 (10 points)

Jan 15

Project Plan Writing

HW1

Jan 17

The Spiral Model  Paper

 

Jan 22

Extreme Programming

HW2

Jan 24

Agile Development I

 

Jan 29

Agile Development II    Paper

 

Jan 31

How Microsoft Builds Software

HW3  HW4

Feb  5

Software Verification and Validation

 

Feb  7

Software Verification and Validation

HW5

Feb 12

Midterm Exam

 

Feb  14

Software Verification and Validation

HW6

Feb 19

No Lecture President’s Day

Project Plan

Feb 21

Software Verification and Validation

Project Plan Presentation

Feb 26

Software Verification and Validation

 

Feb 28

Software Verification and Validation

 

Mar 4

Software Testing

 

Mar 6

Guest Lecture

 

Mar 11+

No Class Spring break

 

Mar 18

Software Verification and Validation

 

Mar 20

Software Verification and Validation

HW7  Requirements from product teams

Mar 25

Software Verification and Validation

 

Mar 27

Guest Lecture

 

Apr 1

Software Verification and Validation

HW8  Design Model, Analysis Model

Apr 3

Comparing Architectural Design Styles, Paper

 

Apr 8

Guest Lecture:  Service-oriented Architecture

 

Apr 10

Midterm Exam

 

Apr 15

Aspect-Oriented Design

Source Code

Apr 17

Aspect-Oriented Design

Demos by Product Teams

Apr 22

Autonomic Computing in Distributed Systems

 

Apr 24

 

 

Apr 27

No Class

 

April 29

FINAL EXAM AT 7:30  AM

 

May 4

 

Code, Manual, Post Mortem

 


For those doing projects, the documents to be submitted are:

Feb 19    Project Plan (see section 4.2.1 of Sommerville) – 10 points

Mar  20   Requirements (see the IEEE outline in section 5.4 of Sommerville) – 20 points

April 1    Analysis Model  and Design Model (see chapter 7 of Sommerville) – 25 points

Apr 15    Complete Compilable Source Code, with class and function comment headers and traceability from requirements – 15 points

Apr 29    Complete Product including Final User Documentation – 65 points

Apr 29    Project Evaluation (what did you learn, what worked well or badly, what was most useful, how would you change next time) – 5 points