28
CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 Software Engineering Lecture 1 August 21, 2002

Embed Size (px)

Citation preview

Page 1: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480Software Engineering

Lecture 1August 21, 2002

Page 2: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 28/18/2004

Topics

Welcome to CSC 480 Course Roadmap Introduction to Software Engineering

Page 3: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 38/18/2004

Goals

SE activities and processes Object orientation: concepts and principles Team-based projects leading to working

applications Team activities and role playing Advanced programming/system development

techniques

Page 4: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 48/18/2004

Textbook & References

Software Engineering: An Object-Oriented Perspective Eric J. Braud. Wiley & Sons, 2001

Software Development for Small Teams: An RUP-Centric Approach

Gary Pollice et al. Addison-Wesley, 2003 Introduction to the Personal Software Process (PSP), & Introduction to the Team Software Process (TSPi)

Watt S. Humphrey. Addison-Wesley, 1997 & 2000

Page 5: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 58/18/2004

Special Features

Put ideas into realityconceptualization specification high-level and detailed design

implementation & testing next iteration, if needed

Valuable teamwork experience Form a team with a common set of goals Choose a role (or roles) that can match your interest and

talent Respect differences and perform as a whole

Synergy: C(n) > n * C(1)

Healthy competition between teams

Page 6: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 68/18/2004

Team Lineup – Couch

Martin Zhao, PhD Teaching Prog, SE, DB & OOAD @ Mercer Engaged in S/W development and integration @ two IT

startups Other background -- computer aided design and

modeling

Committed to a enjoyable class experience For both you all and me

Page 7: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 78/18/2004

We Want to Know You...

Background: Major Courses taken Strength/interest in computing

Programming/system development experience Career goals Expectations for the class

Page 8: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 88/18/2004

Team Lineup – Players

Baptiste, Derrick Boisclair, William C Doriot, Clint Dykes, Dawn C Haeusler, Peggy Haney, Ricky L Longsdorf, Thomas W Luong, Quang V Michael, Jason

Page 9: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 98/18/2004

Team Lineup – Players (cont’d)

Nance, Micah A Palmer, Timothy F Rogers, Charlie R Roper, Adam R Scott, Dejuan Smith, Joshua A Thorogood, Charles Wesson, Jamerson D Young, Nathan S

Page 10: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 108/18/2004

Course Roadmap

Lectures Processes & team issues (PSP, TSPi, RUP) Methodologies (e.g., OOAD using UML) Special topics (e.g., GUI, client-server)

Practices – Do Software Engineering! Individual and team projects (or workshops) Logs, documentation, and presentations

Page 11: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 118/18/2004

Individual Assignments

Programs Essential PSP training

Homework Topics may not be directly applicable to projects in

class

Workshops Exposure to new technologies

Page 12: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 128/18/2004

Team Assignments

Teams each with four or five developers Team formation and project selection

Project kick-off and planning Specification and design Implementation and testing Presentation and demonstration Postmortem – process and peer review

Page 13: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 138/18/2004

Weekly Timesheet

Track your work from Friday to Thursday Turning in your first timesheet by 08/27 (the 2nd

Friday) Weekly Summary Form

Class cycle: Friday to Thursday Major accomplishments (up to three) Issues/problems (up to three) Turn in printouts and keep your record

Page 14: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 148/18/2004

Score Breakdown

Team project 400 points

Individual homework and programming assignments

150 points

One hour exams (2 @ 100 points each)

200 points

Quick quizzes 50 points

Final exam 200 points

Page 15: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 158/18/2004

Introduction

What is Software Engineering? What is the difference?

Computer Science vs. Software Engineering Software Engineering vs. other engineering

What Activities are involved?

Page 16: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 168/18/2004

Software

Software is not just the programs! A software system usually consists of

Requirement documents Design specifications (diagrams, etc) Programs (code, executables and config data) Installation and user manuals

Page 17: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 178/18/2004

Engineering

The profession in which

a knowledge of the mathematical and natural sciences gained by study, experience, and practice

…...

-- Accreditation Board for Engineering and Technology

Page 18: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 188/18/2004

Engineering

The profession in which

a knowledge of the mathematical and natural sciences gained by study, experience, and practice

is applied with judgment

to develop ways to utilize, economically, the materials and forces of nature for the benefit of mankind

-- Accreditation Board for Engineering and Technology, 1996

Page 19: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 198/18/2004

Software Engineering

A discipline which Applies mathematical and computer sciences Utilizes (mostly) human intelligence, economically, for

the benefit of mankind Based on greatly wise judgment

Page 20: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 208/18/2004

Software Engineering Vs. CS

CS is more one the theoretical side Theories, methods, etc Essential knowledge for software engineers

Software Engineering is practical Applying CS theories and methods Hopefully, in a formal (NOT ad hoc) way

Don’t just learn Software Engineering. Do it!

Page 21: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 218/18/2004

Software Vs. Other Engineering

Software is soft Mostly human intellectual effort Need for physical resources (e.g. raw materials) is

usually not the first priority Products are intangible and progress may not be visible With applications in virtual all industries, previous

experience may not be easily adopted

Page 22: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 228/18/2004

Essential Activities

Describing the intended software product Designing the product Implementing the product (i.e. programming it)

Testing the parts of the product Integrating the parts and testing them as a whole Maintaining the product

Page 23: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 238/18/2004

Essential Activities (cont’d)

Defining the software development process to be used

Managing the development project

Page 24: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 248/18/2004

The Four P’s Of SE

People Stakeholders in different roles

Process The way activities are carried out

Project Activities required to produce the artifacts

Product All the artifacts (executables, documents, etc)

Page 25: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 258/18/2004

Process(the manner

in which it is done)

Elaboration

Unified Process Matrix

Inception Construction Transition

Requirements

Analysis

Jacobson et al: USDP

Prelim.iterations

Iter.#1

Iter.#n

Iter.#n+1

Iter.#m

Iter.#m+1

Iter.#k

….. …..

Design

Implemen-tation

Test

..

Product

(the application artifacts)

People

(by whom it is done)

*

Project

(the doing of it)

Page 26: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 268/18/2004

Quality

Delivering quality products is at the heart of any engineering High-quality != perfect The key is to define the acceptance level

Methods to attain quality level: Inspection (introduced in chapter 1)

team-oriented process for ensuring quality applied to all stages of the process.

Page 27: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 278/18/2004

Quality

Methods to attain quality level: (cont’d) Formal methods (introduced in chapter 1)

mathematical techniques to convince ourselves and peers that our programs do what they are meant to do

applied selectively Testing

at the unit (component) level (chapter 8) at the whole application level (chapter 9)

Project control techniques (chapter 2) predict costs and schedule control artifacts (versions, scope etc.)

Page 28: CSC 480 Software Engineering Lecture 1 August 21, 2002

CSC 480 -- Fall 2004 288/18/2004

Assignments

Read sections 8 & 9 Propose answers to Ex’s 1 & 2

1(b): consider SE and CS 2: give a sentence or two to describe each of the 4P’s

Propose additional questions that may be asked on materials covered in Introduction of our text