Syllabus COMP SCI 372
Software Engineering
Spring 2009


Instructor: Peter BreznayLocation: Computer Science Lab (MAC 122)
Office Hours: MW 2:30-3:30 pm TR 1:00-2:00 pm Office: CH C324

and by appointment

Phone: 465-2170

Texts:

E. Braude. Software Engineering: An Object-Oriented Approach, John Wiley and Sons 2001
Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1998.(CD-ROM)

Recommended Texts:

Roger S. Pressman. Software Engineering: A Practitioner Approach, 6th edition, McGraw-Hill 2006.
Stephen R. Fraser.  Pro Visual C++/CLI and the .NET 2.0 Platform, Apress 2006.

        I. Project Management Topics

Topic Content Description
1 The Software Life Cycle. Software Life Cycle Models.
2 Software Process Modeling. Data Flow Diagrams, Petri Net Models, Object Models, Use Case Diagrams, Scenarios, Sequence Diagrams, Hierarchy Diagrams, Control Flow Graphs, State Diagrams, Lattice Models.
3 Software Project Planning. Work-Breakdown Structure. PERT technique. Software Cost Estimation.
4 Project Management. Management and Team Models. Capability Maturity Model. Earned Value Analysis. Error Tracking. Postmortem Reviews.

        II. Systems Analysis Topics

Topic Content Description
5 Software Metrics. Product and Process Metrics. GQM Approach.
6 Risk Analysis. Risk Identification, Risk Estimation, Risk Exposure, Risk Mitigation, Risk Management.
7 Software Quality Assurance (QA). Technical Inspection and Technical Reviews. Reliability Analysis and Statistical Assurance.
8 Software Testing. Test Coverage Criterion. Data Flow Testing, Random Testing, Boundary Testing.

        III. Software Design Topics

Topic Content Description
9 Phases of Software Design. Design Concepts, Measuring Cohesion and Coupling. Requirements Traceability.
10 Requirements Analysis and Specification. Object Modeling. Data Flow Modeling, Behavioral Modeling. Data Dictionary. System Diagrams.
11 The Fundamentals of Object-Oriented Design. Identifying Objects, Associations and Multiplicities.
12 Object-Oriented Testing. OOD Metrics Suite, MOOD Metrics.
13 Object-Oriented Testing. MM Testing, Function Pair Covering.
14 Formal Specifications and Notations. Object Constraint Language.
15 GUI prototype design: Professor Application Version 1.
16 Database design: Professor Application Version 2.

        IV. Software Implementation Topics

Topic Content Description
17 The .NET Framework. Drawing basic geometric objects in C++: GDI+ Interaction with the mouse pointer.
18Templates. Review of containers, components and iterators.
19Namespaces and STL. Large project organization.
20 Relationships and relational databases: Professor Application Version 3. Database normalization.
21 SQL basics. Using queries to store, retrieve and update records: Professor Application Version 4.
22 Data table joins: Professor Application Version 5. UML. Rational Rose. Round-Trip Engineering.
23 Designing databases for heterogeneous objects.
24 Creating DLLs. Creating help and other GUI details.

        V. Design Patterns

Topic Content Description
25 Designing with Patterns. Factory Method.
26Abstract Factory. Using Abstract Factories. Factories used to create objects from a database.
27Bridge design pattern. Counted Pointers.
28Singleton. Detailed design of a large project. Progress reviews.
29More design patterns. Observer.  Adapter.  Facade.

Grading Policy: Class project 35%, Labs 40%, Midterm 25%
Final Project: Large programming project implemented in groups. Large programming project implemented in groups.