CSI5324: Software Engineering (Fall 2009)


 

Walking on water and developing software from a specification are easy if both are frozen. --Edward V. Berard


Important Notes

  • [8/24/09] Welcome to CSI5324 Fall 2009!
  • [8/24/09] Lecture slides, assignments, and other course materials will be available on Blackboard.

Basic Course Information

Description: The course will focus on object-oriented (OO) requirements and design principles, techniques, and modeling notations associated with team-based development of complex software systems. 

 

Students will become familiar with OO modeling techniques (using the Unified Modeling Language (UML)), agile ("lightweight") processes, software architectures, and design patterns. While there is a significant emphasis on modeling, students will be required to transform models to code implementations in class assignments, and group projects. It is assumed that students know how to program and have developed programs using the Java language. This course incorporates significant modeling and programming.

 


Instructor: Dr. Eunjee Song, email the instructor

Office Hours: Monday, Wednesday, Friday 11:00-noon, Thursday 2:00-3:00pm

Office: Rogers 220.17

 

When and Where:

Time: Monday, Wednesday, Friday 1:25-2:15pm

Location: Rogers 204

 


Required TextBooks

  • Applying The UML and Patterns by Craig Larman, third edition, Prentice Hall, ISBN: 0131489062.

 

  • Object Constraint Language, The: Getting Your Models Ready for MDA by Jos Warmer et al., second edition, Addison Wesley, ISBN: 0321179366

 

 

Software Tools

  • IBM Rational Software Architecture V7.5
  • USE (A UML-based Specification Environment)
  • JUnit
  • Subversion

Course Syllabus

The following is a tentative course schedule (Subject to change, not in exact order, as time permits):

 

  • Intro to object oriented analysis development (OOAD) and software engineering  processes
  • eXtreme Programming (XP), JUnit
  • Requirements modeling
    • Use cases
    • Domain modeling
    • System sequence diagrams
    • Contracts
    • Design Studio 1: Requirements modeling
  • Software architectural styles and patterns
    • Modeling software architectures using the UML
    • Architectural patterns
    • Design Studio 2: Architectural modeling
  • OO design
    • Modeling structure - Class diagrams
    • Modeling behavior - Sequence diagrams, Statecharts, Activity Diagrams
    • Design Studio 3-5: OO design modeling
  • Refactoring
  • Beyond OO Design - if time permits
    • Aspect-oriented programming/modeling
    • Model-driven development

Design Studios

In the Design Studios students will work on a development problem. The studios will give students the opportunity to apply the concepts and techniques covered in the lectures to problems.

Homework Assignments

  • Assignments will involve written/modeling work and programming.
  • Each assignment needs to be turned in electronically by midnight on the due date.
  • You lose 25% of the grade for each extra day. After 4 days, you won't get any credit for the assignment unless you obtain prior permission from the instructor.
  • Tentative dates for the assignments are being worked out and will be made available soon. (Please regularly check out the course schedule page on Blackboard.)

Quizzes

On-line quizzes are scheduled ones (i.e., each quiz has its due date). Pop quizzes are not announced, though. Both will cover assigned reading or topics already covered in class.

NOTE: The instructor may ask questions about readings that have not been specifically discussed in class.

Reading Assignments

Students are required to complete reading the listed chapters by the end of the week indicated. Not all the materials will be covered in depth in the class, but students will be tested on the contents of these chapters. Refer to the course schedule page posted on Blackboard for more detail.

Modeling/Programming Project

Students will work in teams of 5 to design and implement a working system. Deliverables include requirements documents, test plans, design documents, and code. There will be two iterations during the semester.

The small print: Requirements can change anytime during the process!

Grading Information

Marks will be allocated as follows:

  • 25% - Homework assignments
  • 20% - Group Project
  • 20% - Two Midterm Exams 
  • 25% - Final (comprehensive)
  •  5% - Presentation in Class (patterns or tool evaluation)
  •  5% - Quizzes (on-line & pop)

 

The following is the planned schedule of tests:

  • Midterm Exams: 10/2 & 11/13 (Tentative) in class
  • Final Exam: 12/10 (Thu); 4:30p.m. – 6:30p.m.

Email: Read your email daily. This is a major means of communication between the instructor and the class.

Your Responsibility

You are responsible for:

  • knowing what goes on during class; if you miss a class, talk to someone who did attend or ask the instructor
  • "tracking down" a handout if you miss class; old handouts will not be brought to class
  • knowing the class schedule -- in particular, what assignments are due; the class schedule is posted on a web page (see above) and is updated on a regular basis -- so, use the "current web page" (rather than a printed copy) to determine what the class is doing
  • reading what is associated with a particular topic; explicit reading assignments will not be given in class (see the class schedule to determine the topic of the day and its associated reading); NOTE: this is important with respect to quizzes

Attendance

Attendance is expected. According to the Baylor catalog, if you miss 25% or more classes it is an automatic F. Also, an absence is an absence, whether or not it is excused. I do not distinguish between excused and unexcused absences. An absence during the group project will count double.

Academic Integrity

If you turn in work that was done by someone else and present it as your own, you are cheating. This includes any individual assignment. If the instructor has reason to believe that you are cheating -- or helping someone else cheat -- you will receive an incomplete and will be referred to the honor council. If you have a tutor, the tutor cannot help you do assigned work. The tutor can explain concepts that are related to assignments, but the tutor cannot "walk you through a solution."

Computing Resources

You will receive a hardcopy of the rules governing the use of computing resources on campus.


Links to Related Materials

More links will be added to this section as the need arises.


Copyright © 2006 - 2009 Eunjee Song, Computer Science Department, Baylor University

Comments: email your comments.

Last major modification: August 24, 2009