Instructor: Janet E. Burge, 205V Benton Hall, 9-0346, burgeje-at-muohio.edu
Office Hours: M: 10am, T: 3:00 pm, W: 10 am, Th: 4:00 pm (subject to change)
Prerequisite: CSA 271 (Object Oriented Programming)
Required Text: Bruegge & Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java, 3rd Edition
Additional References: See Course Documents and Assignments on Cascade (https://my.csi.muohio.edu/)
Catalog Description: Principles of software engineering: Introduction to all phases of the software development life cycle and associated tools and engineering methods including the unified modeling language (UML).
Student Learning Outcomes:
1: To provide students with a foundation for further study of software engineering, they will be able to:
- 1.1: Explain the role of a software engineer and software engineering as an engineering discipline.
- 1.2: Apply a contemporary analysis and design approach, such as object-oriented to a case study.
- 1.3: Describe software development life-cycle and need for associated processes: the life-cycle phases, engineering and management processes, and relationships between the phases and processes.
- 1.4: Describe and compare alternative software process standards and processes (e.g. waterfall, incremental, spiral, prototyping, empirical and agile methods)
- 1.5: Explain roles and responsibilities in a software team, and management issues of teams.
2: To develop clear, concise, and sufficiently formal life-cycle artifacts including requirements, design, implementation, and test documentation for software systems based on needs of users and stakeholders, students will be able to:
- 2.1: Explain the motivation for defining sufficiently explicit requirements.
- 2.2: Analyze and create a requirements specifications using scenarios, use cases and use case diagrams from a set of customer needs.
- 2.3 Brainstorm alternative solutions, select from alternatives, and create designs and appropriate documentation using UML class and sequence diagrams and other appropriate methods for the problem domain.
3: To explain the value of construction technologies such version control and design tools to assist the software development practice, students will be able to:
- 3.1: Explain the purpose of version control and apply it to manage software design or code artifacts.
- 3.2: Apply software tools to create design artifacts such as UML diagrams.
4: To explain software design concepts and apply them, students will be able to:
- 4.1: Review concepts and strategies in software design including architectural design, detailed design, and user interface design.
- 4.2: Create UML class diagrams that represent a problem domain from a requirement specification.
- 4.3: Create UML sequence diagrams to express class behavior.
- 4.4: Evaluate alternative designs at an introductory level through reviews (e.g. review of class diagrams).
- 4.5: Describe general design principles: coupling, cohesion, portability, design by responsibility, etc.
- 4.6: Describe several design patterns (GRASP, GoF, etc).
- 4.7: Describe strategies for mapping design to code (such as responsibility driven design)
5: To demonstrate the ability to work in a team and to communicate, orally and in writing, a software design to various audiences
- 5.1: Work in a team to experience a portion of the software development lifecycle.
- 5.2: Make oral presentations of system design artifacts to users or peers.
- 5.3: Compile well-written design artifacts for presentation to users, peers, or the instructor.
- 5.4: Students can document a project plan, document progress, and communicate progress to users, peers, or the instructor
6: To explain testing and quality assurance strategies, student will be able to:
- 6.1: Distinguish between program validation and verification.
- 6.2: Distinguish among the different types and levels of testing (unit, integration, systems, acceptance, regression, black box, white box).
- 6.3: Use abuse cases to identify potential security requirements.
- 6.4: Describe test-driven design.
Syllabus: Note: topics, dates, and assignments are subject to change at instructor's discretion. The TBD elements in the syllabus will be filled in after the start of the semester. Assignments are due at the time specified in Cascade. For individual projects, no late work will be accepted. For group projects, status reports must be received on time. For other group deliverables 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 |
1/11 |
Introduction to Software Engineering |
Ch. 1
See exercises 1.1 – 1.8, 1.10 |
|
|
1/13 |
Requirements 1 |
Ch. 4
See exercises 4.2-4.10, 4.12-4.14 |
|
|
1/15 |
Lab 1: MS Project |
|
Lab Preparation: Read Syllabus
Survey: Student Outcomes |
2 |
1/18 |
No class: Martin Luther King Jr. Day |
|
|
|
1/20 |
Client Meeting |
|
Homework 1: Critique of "A View of 20th and 21st Century Software Engineering" due 1/19 |
|
1/22 |
Lab 2: Homework 2 Starter |
|
Lab Preparation: Flex Tutorial videos (see Cascade)
Group: Status Report; Project Plan for SRS |
3 |
1/25 |
Software Requirements II |
Ch. 2, Use Cases |
|
|
1/27 |
Analysis |
Ch. 2
See exercises 2.1-2.11, 2.13-2.14;
Ch. 5
See exercises 5.1-5.10 |
Homework 2: Flex Soundboard
|
|
1/29 |
Lab 4: Configuration Management |
Ch. 13
See exercises 13.1-13.2, 13.4 |
Lab Preparation: Read Chapter 2
Group: Status Report
|
4 |
2/1 |
UI Design |
|
|
|
2/3 |
System Design: Decomposing the System |
Ch. 6
See exercises 6.1-6.7 |
Group: Requirements Specification
|
|
2/5 |
Lab 3: Unified Modeling Language |
|
Lab Preparation: Read Chapter 13; Review CM Slides (posted in Cascade)
Group: Status Report; Updated Project Plan |
5 |
2/8 |
System Design:Architectural Styles |
|
|
|
2/10 |
SNOW DAY |
|
|
|
2/12 |
More UML! |
Ch. 2
See exercises 2.1-2.11, 2.13-2.14 |
Group: User Interface Prototypes, due 2/13, 23:59
Group: Status Report; |
6 |
2/15 |
Prototype Demonstrations |
|
|
|
2/17 |
Exam 1 |
|
Group: Updated Project Plan, due 2/18 |
|
2/19 |
Lab 6: User Interface Evaluation |
|
Group: Status Report
Lab Preparation: Review UI Design Lecture |
7 |
2/22 |
System Design: Addressing Design Goals |
Ch. 7
Exercises 7.1-7.2, 7.4-7.5 |
|
|
2/24 |
Review/SGID |
|
Homework 3: Analysis, Due 2/25 |
|
2/26 |
System Design: Reusing Pattern Solutions
|
Ch. 8
See exercises 8.1-8.8 (all…)
|
Group: Status Report |
8 |
3/1 |
Object Design: Specifying Interfaces; Mapping Models to Code
|
Ch. 9,10
From Ch. 10: 10.1-10.3
|
|
|
3/3 |
Rationale Management
|
Ch. 15
See exercises 15.1-15.2, 15-4-15.7
|
Group: Updated SRS; Analysis Specification |
|
3/5 |
Lab 8: Rationale |
|
Group: Status Report; Updated Project Plan |
9 |
3/8-12 |
SPRING BREAK |
|
|
10 |
3/15 |
Design: What Makes Good Design?
|
Class Notes
|
|
|
3/17 |
Software Lifecycle
|
Ch. 12
See exercises 12.1, 12.3 |
|
|
3/19 |
Lab 9: SimSE - Waterfall |
|
Group: Status Report; Software Design Specification |
11 |
3/22 |
Project Management/Refactoring
|
Ch. 14
See exercises 14.2-14.4, 14.10 |
Group: Updated Project Plan - for the rest of the class! |
|
3/24 |
Exam 2 |
|
|
|
3/26 |
Lab 10: Project Plan Reviews |
|
Group: Status Report |
12 |
3/29 |
Testing I |
Ch. 11
See exercises 11.1-11.6 |
|
|
3/31 |
Testing II
|
|
Homework 4: SimSE - Waterfall Process |
|
4/2 |
Lab 11: SimSE - Inspection |
|
Group: Status Report; Project Plan Updates (based on reviews) |
13 |
4/5 |
Testing III |
|
Group: Test Plan |
|
4/7 |
Testing IV and GRASP patterns |
Lecture notes |
|
|
4/9 |
Alumni Conference |
|
Group: Status Report |
14 |
4/12 |
Open Source Software |
|
Homework 5: Critique - Cathedral and the Bazaar. Due in Hard copy (typed and printed) IN CLASS
Group: Software Inspection Inputs, due 4/11 |
|
4/14 |
Methodologies |
Ch. 16
Look at ALL exercises for this chapter |
|
|
4/16 |
Lab 13: Software Inspection |
|
Group: Status Report |
15 |
4/19 |
Software Maintenance |
|
Homework 6: Critique of Mythical Man Month, due in Hard copy (typed and printed) IN CLASS |
|
4/21 |
Agile Methods |
|
|
| |
4/23 |
Exam 3 |
|
|
16 |
4/26 |
Presentations |
|
Group: Final Project (software); Software Inspection Results Presentations, due 4/24;
Group: Test Procedure, User's Manual, Installation Guide, due 4/27 |
|
4/28 |
Lab 14: System Test -> in ROOM 2 |
|
|
| |
4/30 |
No class |
|
|
Grading: The final grade for CSA348 is based on the following:
| Assignment |
Percentage |
Homework (Individual Assignments):
- Homework 1: 20th and 21st Century Software Engineering Critique (17)
- Homework 2: Flex Soundboard Exercise (16)
- Homework 3: Analysis (17)
- Homework 4: TBD (16)
- Homework 5: Critique of the Cathedral and the Bazaar (17)
- Homework 6: Critique of the Mythical Man Month (17)
Note: The critique grade includes the discussion of the critiqued paper held during class. Also, if there turns out to not be a Homework 4 then points will be distributed equally among the remaining assignments. |
15% |
| Labs, In-Class Exercises, Alumni Conference, and Attendance |
10% |
Development Project
- Group Status Reports; Project Plans (7)
- 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 and unit testing (of selected functions - your choice)
- User's Manual and readme.txt installation guide (3)
|
30% |
| Midterm 1 |
15% |
| Midterm 2 |
15% |
| Exam 2 |
15% |
Grading Policy:
Numeric grades will be given for all assignments.
| 98-100 = A+ |
92-97.9 = A |
90-91.9 = A- |
| 88-89.9 = B+ |
82-87.9 = B |
80-81.9 = B- |
| 78-79.9 = C+ |
72-77.9 = C |
70 - 71.9 = C- |
| 68-69.9 = D+ |
62-67.9 = D |
60-61.9 = D- |
| < 59.9 = F |
|
|
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:
The A Team: Kyle Daigle, Tom Gordon, Todd Dickson, Derek Naylor - Operation/Building game
The B Team: Amanda Smith, Josh Wonser, Tyler Watson, Thomas Barber - Touch part, hear name/Hear name, touch part
Channel 5 News Team: Annika Klopfer, Jordan Brooker, Jon Jekeli, Parker Johnson - Simon Says
The Red Team: Mark Koeninger, Keith Rankin, Taylor Young, Joe McAbee = Matching Game
Team Spaghetti: Andrew Favia, William Morrison, Yechen Qiao, Tim Russo - Word Search/Crossword
Team Henry: Andrew Hehe, Andrew Ward, David Schrumpf, Henry Talamini - Trivia Game
Academic Honesty: All work assigned as individual work must be done as individual work and in accordance with the departmental Academic Integrity statement. Violations will be handled in accordance with the Miami University Academic Honesty Policy.
|