CSCE-431 Software Engineering (Spring 2013)

Course Essentials

CourseCSCE 431 – Software Engineering, MWF(*) 3:00 pm – 3:50 pm, HRBB 113
501 lab hours: TR 12:45 pm – 1:35 pm, RDMC 111C
502 lab hours: MW 4:10 pm – 5:00 pm, RDMC 111H
InstructorJaakko Järvi
Course pages
Office hoursBy appointment (my office is 416)
Teaching AssistantShiyu Hu (, office hours: Tuesdays 1:30 pm –2:30 pm, HRBB 315D

(*) On average the class meets twice a week, likely more frequently in the beginning of the semester, less frequently towards the end when more time goes to class projects.


Assignments 7–8 are out
Assignments 4–6 are out
Assignment 3 is out
Assignment 2 is out
Assignment 1 is out
Current grades are here.

In a nutshell

Application of engineering approach to computer software design and development; life cycle models, software requirements and specification; conceptual model design; detailed design; validation and verification; design quality assurance; software design/development environments and project management.


The goals of the course are to (1) gain understanding of the difficutlties and risks of software projects, and knowledge of the commonly applied techniques and methods to migitate those risks and to increase the likelihood of success of software projects; (2) learn new and improve existing skills related to practical software construction; and (3) give some, though necessarily limited, opportunities to apply in practice what is learned.


In particular, the following topics will be covered

  • software lifecycle and different software processes
  • requirements elicitation and specification
  • modeling software
  • software design at various levels
  • coding practices, interfaces, modularity, contracts
  • verification and validation, testing
  • management issues in software projects

The skills students can expect to learn more about and gain experience include:

  • managing a code base (version control, organizing releases, etc.)
  • testing (unit and regression testing)
  • practical designs (typical software architectures, design patterns, API designs)
  • specifying requirements
  • effort estimation
  • planning, teamwork


What is learned is practiced in the context of a software project, to be specified, designed, implemented, and tested during the course of the course. The projects are executed within small teams. Various assignments will support the project.

While it is nice if a project team produces some interesting software, this is not the main goal. Instead, the focus should be on organizing the team's work, putting into use the practical software engineering techniques discussed during lectures and modern software engineering support tools.



50% of your course grade will be based on assignments and projects, 50% on exams (there will be two, midterm and a final). Participation, or more accurately, lack of it, can influence your grade you achieve otherwise from assignments and your project or exams, negatively, up to 10%. A grade of 90% or above guarantees an A, 80% or above a B, 70% or above a C, and 60% or above a D.

All grade assignments are final—unless there was a mistake made in recording your semester grades or in computing your final grade. If all numbers are correctly recorded and computed, I will not discuss changing the resulting letter grades.

There are situations that may warrant regrading a particular assignment. For example, making addition errors in computing your score, not seeing an answer that you gave, or not understanding an answer that you gave. Requests for regrading of assignments must be made within one week after the graded work has been handed back.


Textbook is recommended, not mandatory:

  • Ian Sommerville: Software Engineering (9th Edition). Addison-Wesley, 2011.

Other suitable software engineering books:

  • Roger Pressman: Software Engineering: A Practitioner's Approach, 6th edition. McGraw Hill, 2005. ISBN 0-07-285318-2.
  • Bruegge, Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java (3rd edition). Prentice Hall, 2010.


Academic Integrity Policy: An Aggie does not lie, cheat, or steal or tolerate those who do. The Honor Council Rules and Procedures are available on the web

The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact Disability Services, in Cain Hall, Room B118, or call 845-1637. For additional information visit

Schedule and material

2013-01-14 MonIntroductionlec01.pdf
2013-01-16 WedSoftware Lifecyclelec02.pdf
2013-01-18 FriSoftware Lifecycle
2013-01-21 MonMartin Luther King, Jr Day. No class.
2013-01-23 WedRequirementslec03.pdf
2013-01-25 FriRequirements
2013-01-28 MonRequirements
2013-01-30 WedRequirements
2013-02-01 FriDesignlec04.pdf
2013-02-04 MonDesign
2013-02-06 WedGuest lecture: Scrum
2013-02-08 FriNo class
2013-02-11 MonConfiguration managementlec05.pdf
2013-02-13 WedConfiguration managament
2013-02-15 FriNo class
2013-02-18 MonInterfaces and Contractslec06.pdf
2013-02-20 WedFrom models to codelec08.pdf
2013-02-22 FriFrom models to code
2013-02-25 MonAbout OO designlec07.pdf
2013-02-27 WedDesign patternsexample code
2013-03-01 FriNo class
2013-03-04 MonDesign patterns, API Designlec09.pdf
2013-03-06 WedMidterm
2013-03-08 FriNo class
2013-03-11 MonSpring break. No class.
2013-03-13 WedSpring break. No class.
2013-03-15 FriSpring break. No class.
2013-03-18 MonAPI design
2013-03-20 WedAPI design
2013-03-22 FriNo class
2013-03-25 MonTestinglec10.pdf
2013-03-27 WedTesting
2013-03-29 FriNo class
2013-04-01 MonTesting
2013-04-03 WedTesting, verification
2013-04-05 FriNo class
2013-04-08 MonVerification
2013-04-10 WedNo class
2013-04-12 FriNo class
2013-04-15 MonVerificationlec11.pdf
2013-04-17 WedNo classverification.html
2013-04-19 FriNo class
2013-04-22 MonVerification
2013-04-24 WedVerification
2013-04-26 Fri
2013-04-29 MonProject demos section 501
2013-04-30 TueProject demos section 502
2013-05-07 TueFinal exam: 10:30 am – 12:30 am


Assignment 1Due 2013-01-23 Wed
Assignment 2Due 2013-02-06 Wed
Assignment 3Several due dates, see the assignment
Assignments 4–6Several due dates, see the assignment
Assignments 7–8Due 2013-04-29 Mon


Midterm exam

All material covered in class should be studied for the exam. The last topic included is Design Patterns.

Final exam

Date: 2013-04-29 14:53:34 CDT

Author: Jaakko Järvi

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0