| Instructor: Peter Breznay | Location: 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. |
| 18 | Templates. Review of containers, components and iterators. |
| 19 | Namespaces 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. |
| 26 | Abstract Factory. Using Abstract Factories. Factories used to create objects from a database. |
| 27 | Bridge design pattern. Counted Pointers. |
| 28 | Singleton. Detailed design of a large project. Progress reviews. |
| 29 | More design patterns. Observer. Adapter. Facade. |