UMD logo

CMSC 435: Software Engineering

Basic Information
Course News
  Date Lecture Topic Slides References
1 1/27 Introduction & Overview, Software engineering and system engineering slides1 Zelkowitz
Williams [1-10]
2-3 1/29-2/3 Processes, Project description slides2 Zelkowitz
4 2/5 System attributes slides3  
5 2/10 Project management, Risk slides4 (revised) Williams [239-260]
6 Extra lecture 2/11 Experimentation in software engineering
If unable to attend, see Dr. Zelkowitz
slides15 (revised) Experimental validation in software engineering by M. V. Zelkowitz and D. Wallace, Information and Software Technology (November, 1997) 734-744
7-8 2/12-17 Requirements slides5 Williams [105-136]
9 2/19 Specifications slides6  
10 2/24 Agile methods slides7 Williams [160-175; 202-220]
1. An introduction to agile methods
11 2/26 Professional ethics

Note: The 2 ECE majors who have not yet completed their ethics requirement need to see Dr. Stephen Norton in the ECE office in order to understand what they have to do.
1. ACM Code of Ethics and Professional Conduct:
2. The IEEE Code of Ethics (for computer engineering majors):
3. Software Engineering Code of Ethics and Professional Practice:
4. "Do Artifacts Have Politics":

Consider the Following Questions:
1. Can software be constructed to cause users to form or reinforce certain behaviors or persuade them to accept a particular view point, product, or proposition?
2. Can you identify any examples of software that does this? If not, can you image such a product? Give a concrete example.
3. What sorts of design constraints, if any, should be placed on the use of such software?
4. Can you think of any ethical reasons for adopting specific design constraints when dealing with such technology?

12 3/3 Agile methods(cont) slides7 (continued) Williams [160-175; 202-220]
13 3/5 Exam 1 Spring 2005 midterm with answers
Spring 2009 midterm with answers
Material assigned references, slides and class presentations
14-15 3/10-12 Software architecture and design slides8 Mary Shaw, "Making choices: A comparison of styles for software architecture," IEEE Software, 1995, vol. 12, no. 6, pp. 27-41.
  3/17-19 Spring Break NO CLASSES NO CLASSES
16 3/24 Configuration Management and Software Reuse slides9  
17 3/26 Use cases and UML slides18 Williams [137-159; 261-280]
1. UML tutorial: Sequence diagrams - Robert Martin
2. The formalization of message sequence charts - S. Mauw
18 3/31 Testing slides10 Williams [33-104]
19 4/2 Reliability slides11  
20 4/7 Verification, Inspections, Cleanroom slides13 1. "Advances in Software Inspections" by M. Fagan, IEEE Trans. on Software Engineering (12)7 (July, 1986) 744-751.
2. Notes from Tom Gilb
21-22 4/9-4/14 Formal specifications slides12 "The role of verification in the software specification process," by M. Zelkowitz, Advances in Computers 36, Academic Press (1993) 43-109 (pdf). Paper is 55 pages. We will discuss 1-16.
23 4/16 Maintenance slides14 Williams [221-238]
24-25 4/21-23 PBR inspection in class
Cost modeling and metrics
26 4/28 Process improvement slides17  
27 4/30 Exam 2 Sample final exam List of slides which can be ignored for exam  
28 5/5 Finish up slides    
29 5/7 Final reports and summary    
  5/12 No class    

Class Project
  1. Group project:
  2. Individual report: Topic due: April 1. Final report due April 30.
    Investigate some project that failed due to software. Explain the problem (Report guidelines). What happened? Why did it occur? What in the development process failed to permit the failure of the software? How could this have been avoided? If you had to pick liability, who was to blame? Has anything been done to avoid this in the future?

    If you are not sure of what project to discuss, see Dr. Zelkowitz first. If you pick something discussed in class (e.g., Ariane 5 failure, Therac 25), make sure you go well beyond what was discussed in class. Other possible choices: NASA Mars mission failures, IRS tax moderization system, Denver airport baggage handling.

  3. On Thursday, April 16, the class will conduct a Perspective Based Reading laboratory for part of the time. Each class member is expected to read the respective documentation and participate in the activity. Your class grade on the activity is based upon your participation, not on how well you actually do in the lab. The goal is to introduce you to Fagan-like inspections.

    Each of you will read the requirements for an ATM machine, and then try to find as many defects as you can in the document. You are to study the ATM document from the perspective of one of three roles. All defects you find, regardless of how you find them, should be reported. You need to study the documents before class and then report on your findings and look for other defects at the inspection meeting on the 16th.

    Documents needed:
    - ATM requirements to be inspected
    - Design perspective
    - Test perspective
    - User perspective
    - Defect form to fill out before inspection
    - Inspection form to fill out at meeting. The forms should be self-explanatory. Found on this form means the role of the person(s) who found the defect.

    Each Phase 3 group will hold an inspection. The groups can organize themselves as to roles. One person will assume the role of tester, and read the test documents. One will have the role of designer and read the design documents, and one will have the role of user, and read the user documents. One will assume the role of moderator. The moderator will prepare for the inspection by reading the tester documents. During the inspection, the moderator will moderate the meeting and fill in the meeting inspection form. The only constraint on roles is that the group manager cannot be the moderator for this.

Class Resources