Syllabus for
CS-3365 Software Engineering

Dr.  Michael Sobolewski
Room: CP-310
Office hours: Thursday 11:00 a.m. to 1:00 p.m. or by appointment

Course Information
CS-3365-001: Software Engineering
Location: CP 204
Time: 9:30 p.m. - 10:50 a.m., TR

Course webpage is We will make extensive use of the class WWW site. You should check the WWW page on a near daily basis for updates.

This course is designed to introduce the student to theory and practice of software engineering (SE) and technologies associated with the design, construction, and testing of software systems, particularly quality software for large, complex systems. Students learn UML-based systems modeling and several unified processes. The course explores the tools used for building and testing software systems, particularly in the context of open source software. Students will participate through research and group projects. This class is
very time intensive. The group project requires a lot of out of class work.

Learning Outcomes
Students who successfully completed this course will be able to:
1. Understand the differences between SW development process models (2, 4)
2. Specify and analyze SW requirements and design with UML notation (2, 4, 7)
3. Understand architecture-driven development (2)
4. Understand differences between SW inspection, testing, validation, and verification (5, 7)
5. Document Java source code that conforms to class coding standard (2, 5)
6. Be able to use Eclipse for UML modeling and CVS/SVN for source code control (2, 5, 7)
7. Write and execute automated JUnit tests (2, 7)

Methods of Assessment of Learning outcomes
a. Two examination
b. Class practices using small examples, just after finishing the theory for each class practice
c. Homework assignments
d. A project presentations, acceptance test, and demo
e. Class participation is counted in the grade, which is determined by attendance, discussion in class, and attitude

Prerequisites:  CS-2413 Data Structures, knowledge of object-oriented concepts in Java or C++.

Unified Software Engineering with Java, George G. Marx and Ronald J. Norman, Prentice Hall, 2007

[1] UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition), Jim Arlow and Ila Neustadt, Addison-Wesley Professional, 2005.
[2] OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2, available at:
[3] Thinking in Java (4th Edition), Bruce Eckel, Prentice Hall PTR, 2006

Tentative Topics:

  1. Intro to Java in context of SE
  2. Architecture driven unified development
  3. The Unified Modeling Language: a primer
  4. Object-oriented design and development
  5. Intro to distributed computing concepts
  6. Interfacing with users
  7. Implementing Java programs
  8. SW quality assurance
  9. Information management
  10. Reality check: Java programs in the real world
  11. SW integration and deployment

Participation and attitude 10%
Class practices and homework assignments 40%
Project presentation, demo/acceptance test 20%
Two exams 30%

Course Delivery Format/Policies
Student Workload: This is a combined teamwork-oriented lecture/lab/discussion/workshop course. Material will be presented by the project team members and students are expected to participate in workshops and project review meetings.

Failure of any member to attend a review meeting results in an automatic 10% reduction in their final grade. Students must receive prior approval if they can't attend a meeting. A project presentation and demo is required at the end of the semester.

Project's that don't work as per the requirements can receive as much as 15% reduction in the final grade.

The purpose of these different instruments is to have a positive learning experience, critical thinking about SW development process and OO design issues, and some sound grasp of fundamental architectural and design patterns. If you feel any of these instruments is not working for any reason, please send me email and I will consider a change in the format of delivery.
Student-teacher relationships are based on trust. Acts, which violate this trust, undermine the educational process. Your classmates and the instructor will not tolerate violations of academic integrity (see Statement of Academic Conduct for Engineering Students, College of Engineering Texas Tech University).