Header image  

Computer Science and Systems Analysis

 
  Home ::   Teaching ::   Research  ::   Publications  ::   SEURAT  ::  
   
 
CSA 201 - Introduction to Software Engineering
 

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.