IT440 Systems Analysis and Design
Course Syllabus
Fall AY09

Wk

Start Date

Topics/Events

Web-Outs

1

 

20 Aug

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, 27 Aug):

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 

·        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

25 Aug

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

 

·        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 18 Sept): Rapid Prototype & Emergence of SE as a Discipline. Related papers:

3

1 Sept

** Monday Holiday, Labor Day Holiday on Monday 1 Sept 

Monday Holiday | 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 || Teamwork: Rapid Prototype

·        Schach Ch11: Classical Analysis (Specification) Phase

·        Homework 1 Assigned - Due: Start of Class on Wed, Sept 17.

 

 

4

8 Sept

Finite State Machines. Testing During the Specification Phase. 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

15 Sept

Schach Ch12: Object-Oriented Analysis Phase: Object-Oriented vs. Structured Paradigm Object-Oriented Analysis (OOA): Structured Analysis vs. OOA. Use-Case Modeling | Class Modeling, Noun Extraction.  Intangible objects, objects outside the problem boundary  || Team milestone presentations: Milestone 1 -Targeted Rapid Prototype

·        Schach Chap12: Object-Oriented Analysis (OOA)

·        Milestone2 Assigned (due 2 Oct): Specification/Object Oriented Analysis, Targeted Prototype

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

6

22 Sept

X- Week. Exam review  | 6 week Exam In class, Wed 24 Sept. || MFKA Case study (Scenarios, Noun Extraction, initial UML Class Diagram). VisualParadigm CASE tool Actors, Scenarios, Use cases; Teamwork: Specification/Object Oriented Analysis, Targeted Prototype

·        Exam 1 Objectives

·        6 Week Peer Evaluations

 

7

29 Sept

CRC Cards, Dynamic Modeling, Dynamic Modeling Case study: MFKA | Schach Ch13: Design Phase: Object-Oriented Design, UML Interaction Diagrams, Collaboration Diagrams || Team milestone presentations: Milestone 2- Specification/OOA/Targeted Prototype. + Exam debrief

·        Schach Chap13: Object-Oriented Design (OOD)

 

8

6 Oct

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 ||  Teamwork: OOD. 

·        Milestone3 Assigned (due 16 Oct): 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.

 

9

13 Oct

** Columbus Day Holiday, Mon 13 Oct

Monday Holiday| Schach Ch7: Designing Objects: Role of Modules. Cohesion.|| Team milestone presentations: Mile 3-OOD and Software Engineering Ethics.

·        Schach Chap7: Coupling Cohesion, and Polymorphism

·        Homework 2: (due start of class, Wed 22 Oct)

 

10

20 Oct

Coupling, Metrics: Coupling dependency metric, Effect of cohesion/coupling on software reuse | 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. ||  Teamwork: Testing.

·        Milestone 4 Assigned: Build Testing (due 13 Nov)

 

11

27 Oct

X- Week. Exam review. | 12 Week Exam in class Wed, 29 Oct ||  Teamwork: Testing

·        12 Week Exam Objectives

·        12 Week Peer evaluations

 

12

3 Nov

Schach Ch14: Implementation Phase: Dynamic Testing, Procedural-Oriented vs. Object-Oriented Design, Module Reuse Module Test Case Selection, Black/Glass Box Testing  | Complexity metrics: Lines of code, McCabe's cyclomatic complexity theory, computing McCabe's complexity metric. ||  Exam debrief + Teamwork: Testing)

·        Schach Ch14: Dynamic Testing

 

13

10 Nov

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

17 Nov

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  ||  Teamwork: Final Project

·        Homework 3 (due start of class, Monday, 1 Dec)

·        Final Delivery Milestone Assigned:  Final Project Delivery (due 4 Dec)

·        Schach Chap6: Static Testing

15

24 Nov

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 | Teamwork: Final Project || ** Thanksgiving Holiday

 

16

1 Dec

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

·        Beat Army 6 Dec

·        Final Exam Objectives

·        16 Week Peer evaluations

17

8 Dec

SOFs, last day of class: Monday 8 Dec.

 

Notes:

  • Final Exam: Saturday, 13 Dec 2008, 0755        Location: TBD
  • Schach = Classical and Object-Oriented Software Engineering With UML and Java, 7th ed. McGraw-Hill, 2007.
  • Deitel = Supplemental Text: Java, How to Program, 7th ed, Deitel & Deitel, Prentice Hall, 2007.
  • ACM/IEEE Software Engineering Code of Ethics = "Software Engineering Code of Ethics is Approved" Communications of the ACM, October 1999/Vol 42. No. 10. pp 102-107.