IC470 Software Engineering (combines IT440 && SI336)

Note: See Capstone Proposal Timeline for specifics on your IC480 Capstone                

                                                                       
Course Syllabus
Fall AY10

Wk

Start Date

Topics/Events

Web-Outs

1

 

24 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.

| TOC

·        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):

·        Team Compositions (Due Tue 25 Aug)

·         Milestone 0 (Project Selection) Assigned (Due Wed, 2 Sept):

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).

·        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 by serving as a multiplier for respective team grades.

2

31 Aug

|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.

| Schach Ch3: Introduction to the Software Process: Requirements, Specification, Design, Implementation, Integration and Maintenance Phases of Software Development. Capability Maturity Model, ISO 9000. Milestone 0 – Requirements Document and Acceptance Test Plan Due

·        Deitel Ch11-part1. GUI event handling, actionPerformed

·        Schach Ch3. Intro to the Software Process

 

·        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)

3

7 Sept

** Monday Holiday, Labor Day on Monday 7 Sept

8 Sept: Last day to add a course

|Tuesday-A Virtual Monday:  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

·        Deitel Chap 11-part2 Multiple Listener Events

·        Deitel Chap 22: Multiple Document Interfaces

 

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

·        Sample Project Planning Gantt Chart (PowerPoint)

·        Sample Workload Matrix (Excel Pivot Table)

 

·        Milestone 1 Assigned (due Tue, 22 Sept): Rapid Prototype & Emergence of SE as a Discipline. Related papers:

 

·        Homework 1 Assigned - Due: Wed, 23 Sept.

4

14 Sept

Prereg 14-18 Sept

| Schach Ch12: Object-Oriented Analysis Phase: Object-Oriented vs. Structured Paradigm Object-Oriented Analysis (OOA): Structured Analysis vs. OOA. Use-Case Modeling

||  Lab 2: Java Programming Exercise: Multiple Document Interfaces, GridBagLayout manager.

| Teamwork: Targeted Rapid Prototype

·        Schach Chap12: Object-Oriented Analysis (OOA)

·        Lab2 : Multiple Document Interfaces (MDIs)

o       Lab2 Partners

o       MDIGridBag.java (w/lab instructions)

o       MDICraps.java

o       data.dat

o       MDICraps.jar

 

5

21 Sept

| Class Modeling, Noun Extraction.  Intangible objects, objects outside the problem boundary   

|| Team milestone presentations: Milestone 1 -Targeted Rapid Prototype  **ONLY 1/2 due to CNO

| Remaining Mile1 Presentations due to CNO.

·        Milestone2 Assigned (due Tue, 13 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.

·        Visual Paradigm 7.0 (see http://www.pc-support.cs.usna.edu/ for both Visual Paradigm 7.0 and Key) CASE Tool (supports UML Diagrams for OOA and OOD).

6

28 Sept

| Exam review 

|| 6 week Exam In class, Tue 29 Sept

| MFKA Case study (Scenarios, Noun Extraction, initial UML Class Diagram).

·        Exam 1 Objectives

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

 

7

5 Oct

| Exam debrief. VisualParadigm CASE tool Actors, Scenarios, Use cases

|| Schach Ch13: Design Phase: Object-Oriented Design, UML Interaction Diagrams, Collaboration Diagrams. + Teamwork: OOA

| 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

·        Schach Chap13: Object-Oriented Design (OOD)

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

 

8

12 Oct

*** Monday Holiday, 12 Oct, Columbus Day ***

| Monday Holiday

||  Team milestone presentations: Milestone 2- Specification/OOA/Targeted Prototype

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

·        Schach Chap7: Coupling Cohesion, and Polymorphism

·        Milestone3 Assigned (due Tue, 27 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.

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

9

19 Oct

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

| Schach Ch14: Implementation Phase: Dynamic Testing, Procedural-Oriented vs. Object-Oriented Design, Module Reuse Module Test Case Selection, Black/Glass Box Testing 

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

·        Capstone proposals due to Prof Crabbe by cob on Thursday, 12 Nov.  This counts as a lab grade for IT440 (IT majors) and SI413 (CS majors). See Capstone Proposal Timeline for details.                

·        Schach Ch14: Dynamic Testing

10

26 Oct

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

||  Team milestone presentations: Mile 3-OOD and Software Engineering Ethics + Functional Testing, Tax Software example, number of paths, test data sets

| Equivalence classes for test data sets. McCabe’s metric for Tax Software example

 

11

2 Nov

| Exam review

||  12 Week Exam in class Tue, 3 Nov

| Determining equivalence classes for glassbox test cases.  fault distribution, probability of additional faults, test case development example

·        12 Week Exam Objectives

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

 

·        Milestone 4 Assigned: Testing and Colleagues (due Tue, 17 Nov)

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

12

9 Nov

*** Wednesday Holiday, 11 Nov, Veterans’ Day ***

|  Exam debrief.

||  fault distribution, probability of additional faults, test case development example + Teamwork: Mile4

| Veterans’ Day Holiday

 

·        CodeAnalyzerPro (jar file and README file) Computes McCabe’s Metric value for Java and C++ source code).

·        repeat from week 9: Capstone proposals due to Prof Crabbe by cob on Thursday, 12 Nov. 

o       This counts as a lab grade in IT440 (IT majors) and SI413 (CS majors).

o       See Capstone Proposal Timeline for details.                

13

16 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.

|| ICE: Loop invariants

| Team milestone presentations: Mile 4-Testing

·        Mile 5 Assigned: Project Poster (due start of class, Tue, 8 Dec)

·        Project Poster Judging Form You do not need to print this form out, but please note that your Project Poster session will be judged by Department Faculty volunteers using this form.

·        Schach Chap6: Static Testing

14

23 Nov

Registration 23 Nov – 11 Dec

| Teamwork: Project Poster

|| Capstone Teamwork: Capstone Stovepipe 0

| Capstone Teamwork: Capstone Requirements (Mike Lecture)

Thanksgiving Holiday (26+27 Nov)

·        Homework 3 Assigned (due start of class, Mon, 7 Dec)

·        Mile 6 Assigned: Capstone Stovepipe 0 (due start of class, Tue, 8 Dec)

15

30 Nov

| Capstone Teamwork: Capstone Stovepipe 0

|| Capstone Teamwork: Capstone Stovepipe 0

| Capstone Teamwork: Capstone Stovepipe 0

 

16

7 Dec

| Capstone Teamwork: Capstone Stovepipe 0

|| Team milestone presentations: Mile 5-Project Poster Session and CAPSTONE Team milestone presentations: Mile6- Capstone Stovepipe 0 delivery

| Exam Review + SOFs

Fall term ends, Friday, 11 Dec

·        Final Exam Objectives

·        16 Week Peer evaluations

Notes:

  • Final Exam:

-          Students enrolled in IT440: Wed, 16 Dec 09, 1330.      Location: MI-303

-          Students enrolled in SI336: Thur, 17 Dec 09, 0755.      Location: MI-223

  • 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.