SE455 Software Development Methods -- Lecture 1

Course Overview

Required Skills and Tools


prev    next    first    index




Course Project

You are required to complete a project of developing a moderate-size software system using Object-Oriented design and implementation techniques.


You may develop any of the following types of programs:

And, use your imagination.

If you can't seem to find one, I have an idea for you.


prev    next    first    index




Course Project Requirements


prev    next    first    index




Project Milestones and Deliverables

Week 2
One-page problem statement.
Problem, scope, and anticipated obstacles.
Week 4
Object-oriented model of the system.
Include class/object/interaction/state diagrams, and class specifications.
Week 7
Object-oriented design of the system.
Apply design patterns. C++ class interface complete.
Week 10
Code complete. Project report.


prev    next    first    index




Exams

Midterm exam
week 6.
Written exam.
All distance-learning students must show up in class, unless there is a conflict. Contact me ASAP.
Final exam
week 11.
Take-home, project report and term paper.


prev    next    first    index




C++ Self-Assessment


prev    next    first    index




C++ Self-Assessment (cont'd)


prev    next    first    index




C++ Self-Assessment (cont'd)

If you have:


prev    next    first    index




The Objective

To study methods for developing high-quality, large-scale software systemsin a cost-effective manner.

Scale
>= 100,000 LOC
Qualities
reliability, reuseability, extensibility, maintainability.

We will focus on


prev    next    first    index




The Scope


prev    next    first    index




Software Development

Problems:

Reasons:


prev    next    first    index




Software Development (cont'd)

Solutions:

Today's technology --- Object-Oriented methodology.

Tomorrow's technology --- automation, Computer-Aided Design.


prev    next    first    index




Object-Oriented Methodology

Review basics of OO:


prev    next    first    index




Elements of Object Model

Major elements:

Abstraction
capture the essential characteristics
Encapsulation
separate interface from implementation
Modularity
decompose system into a set of cohesive and loosely coupled modules
Hierarchy
bring an order to abstraction


prev    next    first    index




Elements of Object Model (cont'd)

Minor elements:

Typing
enforce that objects of different types are not interchangeable.
Concurrency
allow active objects, or multiple threads of control
Persistence
existence transcends time and/or space


prev    next    first    index




Notations for OO Modeling and Design


prev    next    first    index




Design Goals

To attain and maximize the following design qualities:

Challenges:


prev    next    first    index




Software Design Is An Art


prev    next    first    index




Assignment of This week

Recommended reading Booch Chapters 1 through 5.

Problem statement of your course project. (Even if you choose to do the project suggested by in the instructor.)


Next week's topics:


prev    next    first    index



Index of Slides

Course Overview
Required Skills and Tools
Course Project
Course Project Requirements
Project Milestones and Deliverables
Exams
C++ Self-Assessment
C++ Self-Assessment (cont'd)
C++ Self-Assessment (cont'd)
The Objective
The Scope
Software Development
Software Development (cont'd)
Object-Oriented Methodology
Elements of Object Model
Elements of Object Model (cont'd)
Notations for OO Modeling and Design
Design Goals
Software Design Is An Art
Assignment of This week