CS1530 Software Engineering
Instructor: Prof. S. K. Chang
Office: 6101 Sennott Building
Office Hours: 3pm to 4pm TuTh
Telephone: 412-624-8423
E-mail: chang@cs.pitt.edu
Grader: XianWei Zhang
Office: 5802 SQ
Office Hours: Tu 10am - 12am
Telephone: 412-624-8832
E-mail: xianeizhang@cs.pitt.edu
Time and Classroom: TuTh 4pm to 5:15pm 6110 Sennott Building
Course Description:
This course is one of the courses in the software engineering track.
This course is intended to cover the object-oriented
approach to software engineering, combining both the theoretical principles
and the practical aspects of software design using the JAVA language.
Students will learn the fundamentals of object-oriented software engineering
and participate in a group project on software design using JAVA.
Therefore there are no individual exercises, only group projects with
at least five deliverables.
The midterm and final cover the principles of software design methodology
with emphasis on object-oriented approach rather than the traditional
structural approach.
The sequel of this course is
CS1631 Software Design Methodology.
Recommended: Object-Oriented and Classical Software Engineering,
Stephen R. Schach, McGraw Hill, 5th edition, 2002 (ISBN 0-07-239559-1).
Shari L. Pfleeger and Joanne M. Atlee, Software Engineering Theory and Practice 3rd Edition, 2006.
Reference:
Bernd Bruegge and Allen H. Dutoit,
Object-oriented Software Engineering, Prentice Hall 2000
(ISBN 0-13-489725-0).
Classnotes: Lectures and exams are based on classnotes, which are available at
http://www.cs.pitt.edu/~chang/153/1530syl.html.
Grading: Grades are based upon project (40%), two quizzes (10%), midterm (25%) and final exam (25%). Please read the grading policy.
Project: Project will combine JAVA programming with WWW database
programming to design a web-based information system for social networking.
Project may optionally utilize the Kinect interface for social networking. An introduction for Kinect interface has been prepared to facilitate your project.
A more advanced tutorial can serve as a follow-up.
Furthermore, an add-on Kinect interface can augment the usual web interface.
On-line interactions:
In addition to classroom lectures, this course will emphasize
on-line interactions. In fact, the instructor hopes to offer
this course (and other courses) by distance learning in the
future. Therefore, on-line interactions will be an important,
necessary component of this course. The course materials,
announcements and exercises will all be available from the
Internet. Impromptu meetings and schedule changes will be
announced by e-mail.
Calendar
Part I: Basic Principles (Chapters 1-6) (Chapter 1-5) (first seven weeks )
Week 1
Introduction to software engineering
Week 2
The Software Process and Its Problems
The Software Life-Cycle Models
Week 3
Software Project Management
Week 4
Requirements
First Milestone - The Software Plan (see calendar)
(The cost
and schedule can be supplied later.)
Deliverables:
A plan to manage your team.
A plan for a common software/hardware platform for team
members to work on the project.
A presentation of your product highlights, management plan and development platform plan.
Week 5
Specification
Week 6
Software Design Approaches
Modular Design
Second Milestone: (see calendar)
Deliverables:
Preliminary Requirements Spec.
Preliminary User's Manual.
A presentation of the above.
Week 7
CASE tools
[The following topic is optional and not covered in this course]
Component Based Software Engineering Testbed
(optional testbed for term project)
Part II: Object Oriented Design (Chapters 7-14) (Chapters 6-14) (second seven weeks)
Week 8
Testing Principles and
a sample test plan.
Third Milestone: (see calendar) (Complete Requirements Spec)
Introduction to Objects
Week 9
CRC (Class, Responsibilities and Collaborators) Cards
and
IC cards
Object-Oriented Analysis
Week 10
Object-Oriented Design
Fourth Milestone: (see calendar) (OOA & OOD. Deliverables: An example of the OOA is in Appendix G or Section 12.8 of the textbook. An example of the OOD is in Appendix H (or Appendix I) of textbook. For the OOA part you only have to do the modeling for a few of the modules. For the OOD part it must be comprehensive. For each class (or module), please add a "box" specifying class (or module) name and all attributes, their type and format. This is not a big document. Approx. 20 pages)
Week 11
Verification and Validation
Test Automation
Fifth Milestone: (see calendar) (Initial Implementation, and Test Plan. Deliverables: Java (or C++) source codes. Test cases are in Appendix J)
Week 12
Formal Verification Technique
Week 13
Implementation and Integration Issues
Software Maintenance
Week 14
Extreme Software Engineering
Sixth Milestone: (see calendar) (Testing. Deliverables: Both test cases and results are to be delivered. An example of test cases is in Appendix J of textbook. Test cases delivered as part of the 5th milestone, and actual test results at this milestone)
Week 15
Class Review
Deliverables: A demo and the entire report, incuding requirements
spec, design, source codes, test plan and testing results, user's manual, installation and maintenance procedures)
Final Exam (see calendar) (Chapters 1-14)

THIS IS IT!
Note:
If you have a disability for which you are or may be requesting an
accommodation, you are encouraged to contact both your instructor and
Disability Resources and Services, 216 William Pitt Union, (412) 648-7890/(412)
383-7355 (TTY), as early as possible in the term. DRS will verify your
disability
and determine reasonable accommodations for this course.