46-941

Software Design and Engineering using UML

Course Syllabus

Kevin Stolarick

Spring 2001 (Mini 3)

 

Course Objectives

This course addresses systematic ways to approach developing software, particularly in the critical early stages of requirement analysis and specification. The focus of this course will be on "what to make" rather than "how to make it". Although the primary development methodology to be taught will be the Unified Modeling Language (UML), traditional system development methodologies will also be discussed. At the end of the course the student will be able to model a system using UML that focuses on the user's needs and not the technology and that is based on correctly gathered and prioritized requirements.

Course Materials

Using UML. Software Engineering with Objects and Components (Updated Edition), 2000, Perdita Stevens with Rob Pooley, Addison-Wesley (S)

Bringing Design to Software, Terry Winograd, 1996, ACM Press. (W)

Other course readings and materials provided in class.

Course Web Page: www.gsia.cmu.edu/46-941

On Reserve in Hunt Library

The Design of Everyday Things, Donald Norman

Computing Catastrophes, Robert L. Glass

Computing Shakeout, Robert L. Glass

Software Runaways, Robert L. Glass

Crash: Learning for the World's Worst Computer Disasters, Tony Collins

Software Failure: Management Failure, Stephen Flowers

Schedule

Monday, 6:00pm – 9:30pm

Porter Hall 225B

Grading

Homework 35%

Final 30%

Project 25%

Presentation 5%

Class Participation 5%

Homework:

Homeworks will be handed out in class and are due at the beginning of class on the dates specified below. Teams of up to 4 people can complete the homeworks. The same team should complete all six homeworks. A single system will be used throughout the entire course with each homework building on the ones completed prior to it. Each person’s individual grade will reflect the results of two peer evaluations completed by his/her teammates.

HW #

Description

Due

1

Preliminary Study

1/22

2

Use Cases - CRC Cards

1/29

3

System Design; Scope

2/5

4

Project Planning and Management

2/12

5

Object Modeling

2/19

6

Process Diagrams

2/26

Final:

The final will be comprehensive. Details will be discussed in class.

Project:

The project will be an individual effort. Details on the project will be handed out and discussed in class. Brief, in-class presentations will be done on February 26.

Presentation:

Chapters from the Winograd book (and possibly the Stevens book) will be randomly assigned. Each person should prepare a 15-20 minute presentation that consists of:

(1) review of the assigned chapter(s)

(2) review of the profile at the end of the chapter

(3) example of a "well designed" web site or software package

(4) reasons why you consider it "well designed"

 

Class Participation:

Quality contributions, such as providing examples that illustrate techniques, raising new questions, directions or insights, discussing implications, etc., are valued. In order to make quality contributions and receive the full 5% for individual participation, you will need to attend class regularly, read and analyze the assigned material, and actively participate in class discussions. Class participation will also be partly based on the in-class exercises, some of which will be collected. No score will be given for the in-class exercise, but it will be noted that the exercise was completed and turned in.

The presentation, project, and the final are to be individual work.

 

Office Hours

Regular office hours will not be set unless a need for them arises. However, I will be in the classroom 1/2 hour prior to the start of class.

I can be contacted any of the following ways:

email: kms@andrew.cmu.edu

Office: 208G Porter Hall (SDS Office)

Home: 244-8196

 

Email is the best way to contact me as I check it several times a day.

 

Regrading Policy

If you believe something was graded incorrectly, you may request that it be regraded. To do this, resubmit the assignment in question with a written explanation of your arguments. The entire homework or project is subject to regrading and not just the specific item in question.

46-941

Software Design and Engineering using UML

Course Calendar

 

Date

Material

Reading

1/15

Review syllabus; Discuss project and teams

Overview of course; Business Focus

Software Failures

Overview of system development; cost of changes

Modeling - purpose, use, intent

Analysis - collecting and identifying requirements

Handout: TVList.com

Handout: Homework #1 - Preliminary Study

Handout: Project Overview

S 1

W Intro, 1, 2

1/22

Traditional Methodologies: waterfall, prototyping, RAD, incremental, spiral, concurrent development, formal methods

Object-Oriented Development Methodologies - UML: history, overview, UML views

Use Cases

CRC (Class-Responsibility-Collaborator) Cards

Due: Homework #1

Handout: Homework #2 - Use Cases

S 4, 7, 8, 5.6

W 3, 4

1/29

System Design - Good Design

Business Process Reengineering (BPR); "Eliminate Don't Automate"

What to make vs. how to make it

Technology vs. Problem Solution

Project Planning and Management

SEI's Capability Maturity Model

Due: Homework #2

Handout: Homework #3 - System Design

W 5, 6

 

Date

Material

Reading

2/5

Object Model (Static View) - Basic Elements

Due: Homework #3

Due: Overview of Topic for Project

Due: Peer Review of Homework Team

Handout: Homework #4 - Project Planning & Management

S 5

W 7, 8

2/12

Object Model (Static View) - Relational Elements

Due: Homework #4

Handout: Homework #5 - Object Modeling

S 6

W 9, 11

2/19

Object Model (Process Views): state transition diagrams, activity graphs, sequence diagrams

Due: Homework #5

Handout: Homework #6 - Process Diagrams

S 9, 10, 11, 12

W 10, 12

2/26

Reuse, Testing and Implementation

Project Presentations

Review for Final

Due: Homework #6

Due: Written Project

Due: Presentation Reviews

S 18, 19, 20

W 13, 14, Reflection

3/5

Final

Due: Peer Review of Homework Team

Handout: Final