SI336 Software Engineering
Course Syllabus
Spring AY09

Wk

Start Date

Topics/Events

Web-Outs

1

 

7 Jan

Course Policy, Course overview. Programming Team Selection. Term Project Requirements Analysis - Milestone 0 Assigned. || Schach Ch1: Historical, Economic and Maintenance Aspects of Software Engineering. Team Programming, The Object-Oriented Paradigm.  Ethics overview: ACM/IEEE's Software Engineering Code of Ethics. + Lec: Schach Ch2: Software Life-Cycle Models: Waterfall, Rapid Prototyping, Incremental and Spiral Models, Risk Assessment. (Note that the Rapid Prototyping discussion from Schach Ch10 is embedded in Chap2’s notes) Requirements Phase: Rapid Prototyping, Testing During the Requirements Phase.

·        Course Policy

·        Course Overview

·        Schach Ch1: Scope of Software Engineering.

·        Schach Ch2 Software Life-Cycle Models

·        Some Java resources you may find useful:

o       http://java.sun.com/docs/books/tutorial/

o       http://64.18.163.122/rgagnon/howto.html

Term Project choices for Milestone 0 (Each team picks their choice of one of the below):

·        Milestone 0 (Project Selection) Assigned (Due Wed, 14 Jan):

o       Autonomous Underwater Vehicle (AUV) Simulator

§         Requirements Document

§         Acceptance Test Plan

o       Flight Scheduler Assistant

§         Requirements Document

§         Acceptance Test Plan

§         Sample Forms

·        FlightSchedule_LandBased

·        FlightSchedule_CarrierBased

·        FlightLogBook

o       Or, propose your own project (See Milestone 0 for specific requirements for proposing your own project).

·        Team Compositions (Due Mon, 12 Jan) 

·        Peer Evaluations: Note: These will be completed in class during the 6, 12, and final marking periods, and will impact each team member’s individual grades.

2

12 Jan

Schach Ch3: Introduction to the Software Process: Requirements, Specification, Design, Implementation, Integration and Maintenance Phases of Software Development. Capability Maturity Model, ISO 9000.| Deitel Chap 11-part1: Attaching multiple GUI components to an application. GUI event handling, Java's actionEvents, actionListeners, and actionPerformed.||  Lab 1: Java’s GUI event handling.

Milestone 0 – Requirements Document and Acceptance Test Plan Due

·        Schach Ch3. Intro to the Software Process

·        Deitel Ch11-part1. GUI event handling, actionPerformed

 

·        Eclipse Java Quickstart

·        Eclipse JAR (Java Archive) Tutorial

·        Craps Jar (a sample Jar file)

 

·        Lab1 – Craps GUI

o       Lab1 Partners

o       Craps.java (includes lab instructions)

 

·        Milestone Grading Sheet (Use for all milestones other than milestone 0)

 

·        Milestone 1 Assigned (due 5 Feb): Rapid Prototype & Emergence of SE as a Discipline. Related papers:

3

19 Jan

** Monday Holiday, MLK-Jr. Holiday on Monday 19 Jan

 Prereg 22-27 Jan

Tuesday-A Virtual Monday:  Schach Ch11: Classical Analysis (Specification) Phase: Specification Document. Structured Specification Tools: Informal, Semi-Formal and Formal Specification tools: Natural language, Data Flow Diagrams   Entity Relationship Diagrams | Finite State Machines. Testing During the Specification Phase. || Teamwork: Rapid Prototype

·        Schach Ch11: Classical Analysis (Specification) Phase

·        Homework 1 Assigned - Due: Wed, 4 Feb.

 

 

4

26 Jan

Deitel Chap 11-part2: Heavyweight vs. Lightweight GUI components. Handling multiple listener events of the same type. | Chap 22 Deitel: Multiple Document Interfaces GridBag Layout Manager ||  Lab 2: Java Programming Exercise: Multiple Document Interfaces, GridBagLayout manager. 

·        Deitel Chap 11-part2 Multiple Listener Events

·        Deitel Chap 22: Multiple Document Interfaces

·        Lab2 : Multiple Document Interfaces (MDIs)

o       Lab2 Partners

o       MDIGridBag.java (w/lab instructions)

o       MDICraps.java

o       data.dat

o       MDICraps.jar

 

5

2  Feb

Schach Ch12: Object-Oriented Analysis Phase: Object-Oriented vs. Structured Paradigm Object-Oriented Analysis (OOA): Structured Analysis vs. OOA. Use-Case Modeling | comp time for guest speaker || Team milestone presentations: Milestone 1 -Targeted Rapid Prototype

·        Schach Chap12: Object-Oriented Analysis (OOA)

·        Milestone2 Assigned (due 26 Feb): Specification/Object Oriented Analysis, Targeted Prototype

o       Boehm, "A Spiral Model of Software Development and Enhancement", IEEE Computer 21 (May 1988), pp. 61-72.

o       Sample Project Planning Gantt Chart (PowerPoint)

o       Sample Workload Matrix (Excel Pivot Table)

6

9 Feb

X- Week. Exam review  | 6 week Exam In class, Wed 11 Feb. || Class Modeling, Noun Extraction.  Intangible objects, objects outside the problem boundary   + MFKA Case study (Scenarios, Noun Extraction, initial UML Class Diagram). VisualParadigm CASE tool Actors, Scenarios, Use cases;

·        Exam 1 Objectives

·        6 Week Peer Evaluations (conducted as part of the 6 week exam)

 

7

16 Feb

*** Monday Holiday, 16 Feb, Washington’s Birthday Holiday ***

Monday Holiday | Dynamic Modeling, Dynamic Modeling Case study: MFKA || Teamwork: Specification/Object Oriented Analysis, Targeted Prototype + Exam debrief

 

8

23 Feb

Schach Ch13: Design Phase: Object-Oriented Design, UML Interaction Diagrams, Collaboration Diagrams. Case Study: MFKA Sequence Diagram, populate initial detailed UML Class Diagram for MFKA | Detailed Class Diagrams, Testing During the Design Phase, Metrics for Object-Oriented Design. MFKA: Pseudo-code development, Computer Aided Software Engineering (CASE) Tools for design ||  Team milestone presentations: Milestone 2- Specification/OOA/Targeted Prototype. 

·        Schach Chap13: Object-Oriented Design (OOD)

·        Milestone3 Assigned (due 12 Mar): Object-Oriented Design and Software Engineering Code of Ethics.

o       Supplemental reading for Milestone3: "Software Engineering Code of Ethics is Approved" Communications of the ACM, October 1999/Vol 42. No. 10. pp 102-107.

·        Some sources for ethical issues related to software engineering can be found at http://computingcases.org/  but you are allowed to use any properly cited case that you find that violates the portion of the Software Engineering Code of Ethics assigned to your team.

·        Three little pigs story told via a UML Sequence Diagram.

 

9

2 Mar

Schach Ch7: Designing Objects: Role of Modules. Cohesion| Coupling, Metrics: Coupling dependency metric, Effect of cohesion/coupling on software reuse.|| Teamwork: OOD

·        Schach Chap7: Coupling Cohesion, and Polymorphism

·        Homework 2: (due start of class, Thursday, 26 Mar)

 

10

9 Mar

Polymorphism, Dynamic Binding, and Dispatched Method calls from a Maintenance and Reuse Perspective.  Java dynamic binding example. Impact of inheritance, polymorphism and dynamic binding on cohesion/coupling. |  Schach Ch14: Implementation Phase: Dynamic Testing, Procedural-Oriented vs. Object-Oriented Design, Module Reuse Module Test Case Selection, Black/Glass Box Testing  ||  Team milestone presentations: Mile 3-OOD and Software Engineering Ethics.

·        Milestone 4 Assigned: Build Testing (due 9 Apr)

·        Sample Colleagues: Using JDBC to query a MySQL database from Java source code.

·        Schach Ch14: Dynamic Testing

 

 

16 Mar

*** Spring Break ***

 

11

23 Mar

COZ | Complexity metrics: Lines of code, McCabe's cyclomatic complexity theory, computing McCabe's complexity metric. || Teamwork: Testing

·        12 Week Exam Objectives

·        12 Week Peer evaluations

 

12

30 Mar

Exam review. | 12 Week Exam in class Wed, 25 Mar ||  Exam debrief. Teamwork: Testing

 

13

6 Apr

Functional Testing, Tax Software example, number of paths, test data sets | equivalence classes for test data sets. McCabe’s metric for Tax Software example || Team milestone presentations: Mile 4-Testing

 

14

13 April

Registration 13 Apr – 24 Apr

Determining equivalence classes for glassbox test cases.  fault distribution, probability of additional faults, test case development example.  Revisit: Coupling, cohesion, use cases, UML class diagrams, sequence diagrams  | Schach Ch6: Static Software Testing, Program Proving: Software Quality Assurance Verification and Nonexecution-Based Testing.  Software Walkthroughs and Inspections, Metrics for Inspections. Execution-Based Testing: Reliability, Robustness, Performance, Correctness, and Debugging. Formal Correctness Proofs: input specifications, output specifications, loop invariants and assertions || ICE: Loop invariants + Teamwork: Final Project

·        Homework 3 (due start of class, Thursday, 23 Apr)

·        Final Delivery Milestone Assigned:  Final Project Delivery (due 23 Apr)

·        Schach Chap6: Static Testing

15

20 Apr

Teamwork: Final Project | Teamwork: Final Project || Final Milestone: Final Product Delivery.

 

16

27 Apr

SOFs, last day of class: Mon 27 Apr

·        Final Exam Objectives

·        16 Week Peer evaluations

Notes: