Instructor: Janet E. Burge, 230H Kreger Hall, 9-9760, burgeje-at-muohio.edu
Office Hours: M: 11am, W: 10am, 1:15-2:15, F: 9 am
Prerequisite: CSA 274 (Data Abstraction and Data Structures)
Required Text: Bruegge & Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java, 2nd Edition
Additional References: See Course Documents on myMiami
Catalog Description: Study of all phases of the systems development life cycle: project identification and justification, requirements analysis, data modeling, process modeling, design and specification techniques, prototyping, systems architectures, software design and construction, and object oriented analysis and design.
Course Learning Objectives:
Objective 1: To provide students with a foundation for organizational management and communication.
- The student can identify and describe the different stages of a development lifecycle
- The student can identify and describe different software lifecycle models
- The student can interpret a project plan
- The student can create a project plan using task durations, dependencies, and milestones
Objective 2: To provide students with experience in the technical aspects of software engineering
- The student can create a requirements specification document using scenarios, use cases, and use case diagrams from a set of customer defined requirements
- The student can create a UML class diagram that represents a problem domain from a requirements specification
- The student can document a software architecture using UML diagrams
- The student can create a UML sequence diagram representing class-level behavior
- The student can implement a system based on the information contained in design level diagrams
- The student can use configuration management to control different versions of a system
- The student can effectively test a software system using black box testing
- The student can effectively test a software system using white box testing
Objective 3: To provide students with an understanding of the importance of a broad range of software engineering related topics
- The student can explain the purpose of design in the creation of software systems
- The student can describe the importance of formal methods of analysis and design
- The student can describe the importance of recording analysis and design decisions
- The student can describe methods of quality assurance in analysis, design, and implementation
Syllabus: Note: topics, dates, and assignments are subject to change at instructors discretion. The TBD elements in the syllabus will be filled in after the start of the semester. Assignments are due at the start of class (except for critiques, which are due at the end in class) in hard copy format as well as placed in the turnin folder for the assignment. Late assignments will be penalized 10% the first 24 hrs, 25% the next (reductions will be taken at the time of computing the final grades for the course). Assignments more than 48 hours late will not be graded. Laboratory exercises must be completed during the scheduled lab period and turned in at the end of that time. Labs can only be made up in the case of documented illnesses or other excused absences with prior instructor permission.
CSA 348 Syllabus
Week |
Date |
Topics |
Readings |
Assignments Due |
1 |
8/20 |
Introduction to Software Engineering |
Ch. 1
See exercises 1.1 – 1.8, 1.10 |
Student Survey |
|
8/22 |
Unified Modeling Language (UML) |
Ch. 2
See exercises 2.1-2.11, 2.13-2.14 |
|
|
8/24 |
Lab 1: UML and UML Tools |
|
Lab Preparation: Chapter 2 |
2 |
8/27 |
Project Organization |
Ch. 3
See exercises 3.1-3.5, 3.9, 3.11-3.12 |
Homework 1: Critique of "A View of 20th and 21st Century Software Engineering" |
|
8/29 |
Software Requirements |
Ch. 4
See exercises 4.2-4.10, 4.12-4.14 |
|
|
8/31 |
Lab 2: User Interface Development Review |
|
Lab Preparation: Using Eclipse
Group: Status Report |
3 |
9/3 |
Labor Day - NO CLASS |
|
|
|
9/5 |
Software Requirements II |
|
|
|
9/7 |
Lab 3: Configuration Management and Version Control |
Ch. 13
See exercises 13.1-13.2, 13.4 |
Homework 2: UI Development Review
Group: Status Report
Lab Preparation: Read Chapter 13; Review CM Slides (posted in myMiami)
|
4 |
9/10 |
Analysis |
Ch. 5
See exercises 5.1-5.10
|
|
|
9/12 |
User Interface Design |
|
Group: Requirements Specification
Project Description
|
|
9/14 |
Lab 4:Analysis (Guest Instructor) |
Ch. 5; Lecture notes |
Lab Preparation: Anslysis Lecture; Chapter 5
Group: Status Report |
5 |
9/17 |
System Design: Decomposing the System |
Ch. 6
See exercises 6.1-6.7 |
|
|
9/19 |
System Design: Architectural Styles |
Ch. 6 |
Homework 3: Analysis |
|
9/21 |
Lab 5: Prototype Demonstrations |
|
Group:: User Interface Prototypes
Group: Status Report |
6 |
9/24 |
Midterm #1 |
|
|
|
9/26 |
System Design: Addressing Design Goals |
Ch. 7
Exercises 7.1-7.2, 7.4-7.5 |
|
|
9/28 |
Lab 6: User Interface Evaluation |
|
Group: Status Report
Lab Preparation: Review UI Design Lecture |
7 |
10/1 |
System Design: Reusing Pattern Solutions |
Ch. 8
See exercises 8.1-8.8 (all…) |
|
|
10/3 |
Object Design: Specifying Interfaces; Mapping Models to Code |
Ch. 9,10
From Ch. 10: all
|
Group: Analysis Specification |
|
10/5 |
Lab 7: Design to Code |
|
Group: Status Report |
8 |
10/8 |
Design: What Makes Good Design? |
Class Notes |
|
|
10/10 |
Project Management |
|
Homework 4: Design to Code |
|
10/12 |
Lab 8: Project Management Using MS Project |
|
Group: Status Report |
9 |
10/15 |
Testing I and SGID |
Ch. 11
See exercises 11.1-11.6 |
|
|
10/17 |
Testing II |
|
Group: Design Specification |
|
10/19 |
Lab 9: A Day off, with FREE LAB POINTS |
|
NOTHING! It's a DAY OFF |
10 |
10/22 |
Testing III |
|
|
|
10/24 |
Testing IV |
|
|
|
10/26 |
Lab 10: Unit Testing |
|
Group: Status Report |
11 |
10/29 |
Rationale Management
|
Ch. 15
See exercises 15.1-15.2, 15-4-15.7 |
|
|
10/30 |
Software Life Cycle |
Ch. 12
See exercises 12.1, 12.3 |
Group: Test Plan |
|
11/2 |
Lab 11: Rationale |
|
Lab Preparation: Java Collections (data structures) and the Argument Ontology (available in Course Documents on myMiami)
Collections Guide
Java Glossary
Turorial
Group: Status Report
|
12 |
11/5 |
Midterm Exam #2 |
|
|
|
11/7 |
Software Maintenance |
|
Group: Software Inspection Inputs
|
|
11/9 |
Lab 12: Software Inspection |
|
Group: Status Report |
13 |
11/12 |
Component Based Software Development |
|
|
|
11/14 |
Introduction to Web Services
|
|
Group: Software Inspection Results |
|
11/16 |
Lab 13: Web Servicest |
|
Group: Status Report |
14 |
11/19 |
Open Source Software Development |
|
Homework 5: Critique - Cathedral and the Bazaar |
|
11/21 |
Thanksgiving Holiday - NO CLASS |
|
|
| |
11/23 |
Thanksgiving Holiday - NO CLASS |
|
|
15 |
11/26 |
Methodologies; Agile Methods (I) |
Ch. 16
Look at ALL exercises for this chapter |
|
|
11/28 |
Agile Methods (cont.) |
|
Homework 6: Critique of Mythical Man Month |
| |
11/30 |
Lab 14: Pair Programming |
|
Group: Status Report
Lab Prep: Slides on Agile Methods; Review Unit Testing |
16 |
12/3 |
System Demonstrations (I) |
|
Group: Final Project |
|
12/5 |
System Demonstrations (II) |
|
Group: Test Procedure; Users Manual; Installation Guide |
|
12/7 |
Lab 15: System Testing of Final Release |
|
|
|
12/12 |
Final Exam - Wednesday at 12:30 |
|
|
Grading: The final grade for CSA348 is based on the following:
| Assignment |
Percentage |
Homework and Lab Exercises (Individual Assignments):
- Homework 1: 20th and 21st Century Software Engineering Critique (7)
- Lab1: UML Tools (4)
- Lab 2/Homework 2: User Interface Review (4/6)
- Lab 3: Configuration Management and Version Control (4)
- Lab 4/Homework 3: Analysis (4/6)
- Lab 5: Prototype Demonstrations (4)
- Lab 6: User Interface Evaluations (4)
- Lab 7/Homework 4: Design to Code (4/6)
- Lab 8: Project Management (4)
- Lab 9: Rationale Management(4)
- Lab 10: Unit Testing (4)
- Lab 11: Component Based Software Development (4)
- Lab 12: Software Inspections(4)
- Lab 13: Web Services(4)
- Lab 14: Pair Programming (4)
- Lab 15: System Testing of Final Release (5)
- Homework 5: Critique of the Cathedral and the Bazaar (7)
- Homework 6: Critique of the Mythical Man Month (7)
Note: The critique grade includes the discussion of the critiqued paper held during class. |
20% |
| In-Class Exercises and Attendance |
5% |
Development Project
- Group Status Reports (5)
- Requirements Specification (14)
- User Interface Prototypes (10)
- Analysis Specification (14)
- Design Specification (14)
- Code Inspection (code description, write-up of results) (3)
- Test Plan (3)
- Test Procedure (5)
- Software Demonstration (in class) (5)
- Software Final Version (22) - includes documentation (Javadoc) and unit testing (of selected functions - your choice)
- User's Manual and readme.txt installation guide (5)
|
30% |
| Midterm 1 |
10% |
| Midterm 2 |
15% |
| Final Exam |
20% |
Grading Policy: Numeric grades will be given for all assignments. Final grades to the class will be A, B, C, D, or F as appropriate with A range being 90-100, B range 80-89, C range 70-79, D range 60-69, anything less than 60 an F. Plus/minus grades will be reserved for borderline cases only.
Group Projects: In your future careers as software professionals, you will need to be able to work with others. This means an often difficult balancing of personalities, abilities, schedules, and motivation levels. You are unlikely to have the ability to fire a co-worker (although you may want to) and are even less likely to get your supervisor's permission to break from the group to do your own, parallel, version of the project. That won't happen here either. It is important to know that group members will be assessing each other and that not all members of the group will necessarily receive the same grade for the project.
Groups:
Gamma -- Burtrum, MIller, Vingris
SuperSoft Corporation -- Marmor, Ringenbach, Weneck
BETS Engineers -- Brookbank, Edester, Truitt
Flyweights -- Hanna, Laryukhin, Wiley
j-j/k -- Ludwig, Nelson, Vaughan, Witt
Academic Honesty: All work assigned as individual work must be done as individual work. Violations will be handled in accordance with the Miami University Academic Honesty Policy.
|