Top Banner
CS451 - Lecture 1 1 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 [email protected] www.sce.umkc.edu/~leeyu
34
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 1

CS451Introduction to Software

Engineering

Yugi Lee

FH #560D(816) 235-5932

[email protected]

www.sce.umkc.edu/~leeyu

Page 2: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 2

Contents

Organizational stuffProjectPaper Presentation Why software engineering?What is software engineering?

Page 3: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 3

General stuff

Class: M/W 12:30 – 1:15pm, RHFH460 Office hours:

M/W 3:30-4:30 pm or by appointment

Page 4: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 4

Course information

www.umkc.edu/blackboardLecture slides will be available in advanceMailing List:

information will be distributed via the mailing list (e.g. hints for assignments, corrections etc.)

Page 5: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 5

Textbooks

Required: Software Engineering - A Practitioner's Approach - Pressman

(McGraw Hill), 6th Edition

Additional readings Classical and Object-Oriented Software Engineering -

Stephen R. Schach (McGraw Hill) UML Distilled - Fowler, Scott (Addison Wesley) IEEE & ACM Magazine Papers

Page 6: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 6

Course Objectives

Have a comprehensive picture of software development

Gain hands-on experiences on object oriented development in software engineering.

learn the skill on UML (Unified Modeling Language) and tools (National Rose, Project, etc).

learn object-oriented programming (C#, Java or C++) and Web technologies (XML, .NET ASP, etc)

Understand current trends and requirements of software systems and applications.

Page 7: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 7

Assessment

Group Project 40%Individual Work 60%

Midterm Exam:                                         15% Final Exam:                                               20% Paper Presentation & Discussion:              5% In-Class Exercise & Participation:             20%

Both components must be passed in order to pass the course.

Page 8: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 8

Projects Team project

Teams of 3-4 members Development of an “entire” system following Agile software

engineering process (feature based planning, Unit testing, etc) and OO techniques (UML)

The overall assignment will be divided into several steps that will be marked individually.

Project proposal       8% Skill building + Plan                   6% Increments (4) 16% Project Report & Presentations    10%

Being late leads to 10 % reduction per day Assignments that are submitted more than three days

late will no longer be accepted.

Page 9: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 9

Goal of the Team Assignment

Learning to develop a modular software system within a team following an object oriented methodology

Getting a feeling for the (management) problems in software development

Getting an idea of your own productivityHaving group work experience (work-with-

other)

Page 10: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 10

Team Assignment

The software should be developed following basic software engineering principles processes: analysis, design, implementation,

review, and testing phases products: requirements and design documents,

source code, review results, test cases, test results, and productivity metrics

Page 11: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 11

Potential Projects

A community partner - developing a software or a database system to track the children in their after school programs.

Page 12: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 12

Exams (Tentative Schedule)

Midterm exam: 3/27/06Final examination: Final exam period

Covers the whole coursebut will focus on the second part

Page 13: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 13

Paper Presentation

Each student presents one or two papers about 20 minutes sign-up schedule actively involved in discussion

IEEE Magazines i.e., Internet Computing, Computer

ACM Magazine Communications

Page 14: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 14

Introduction to Software Engineering

Page 15: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 15

What is Software? [Pressman]

Software is a set of items or objects that form a “configuration” that

includes

• programs

• documents

• data ...

Page 16: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 16

Software’s Dual Role [Pressman]

Software is a product Delivers computing potential Produces, manages, acquires, modifies, displays, or

transmits information

Software is a vehicle for delivering a product Supports or directly provides system functionality Controls other programs (e.g., an operating system) Effects communications (e.g., networking software) Helps build other software (e.g., software tools)

Page 17: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 17

Why Software Engineering?

...to get away from ad hoc and unpredictable software development towards a systematic, understood one...

Page 18: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 18

Characteristics of Today’s Software Development

Development of large & complex systemsSoftware systems must fulfill the

requirements of a clientNumber of persons involved in the

development > 1Software systems are expected to live long

and be used by many people

Page 19: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 19

What are the Problems?

Increased quality demands on software products High cost and time pressure Shorter time to market Coordination problems within the projects Scarce resources

Page 20: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 20

The Software Crisis and Solution

1968: NATO conference in Garmisch-Partenkirchen

software crisis (to characterize the situation)software engineering (idea for a solution)

Page 21: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 21

Why still Software Engineering?

Has the software crisis vanished?

No!Software projects still run over time and out

of budgetno break through in quality !!!

[still art instead of engineering discipline]

Page 22: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 22

Software Crisis?

Unacceptably low quality of software

Delayed deadlines: Average 1 year

Over cost limits: Average 2X estimate

E.g. Air Force Command and Control system

Initial estimate $1.5million Winner’s bid $0.4 million Actual cost $3.7 million

After deliver?

E.g. U.S Army study of Federal projects Delivered, but not used

47%Paid for, but not delivered

29%Abandoned or reworked

19%Used after changes 3%

Used as delivered 2%

Page 23: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 23

Practical Disasters

European Space Agency Ariane 5 Track control system failure results in self

destruction

Denver Airport Late delivery of software for the baggage system

delays the opening of the airport by 16 months US study (1995): 81 billion US$ spend per

year for failing software development projects

Page 24: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 24

Why is Software so Hard?

Software is [Parnas, 1985]: Buggy Unreliable Forever changing Unwarrantable

Page 25: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 25

Legacy Software

• Why must it change?software must be adapted to meet the needs

of new computing environments or technology.

software must be enhanced to implement new business requirements.

software must be extended to make it interoperable with other more modern systems or databases.

software must be re-architected to make it viable within a network environment.

Page 26: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 26

Management Myths

State-of-the-art tools are the solution A fool with a tool is still a fool

Getting behind schedule resolved by hiring additional programmers “adding people to a late software project makes it

later”

Page 27: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 27

Management myths

Page 28: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 28

Customer Myths

A general statement of objectives is sufficient to begin writing programs - we can fill in details later. Thorough communication between customer and

developer needed

Changes can be easily accommodated because software is flexible changes happen as a fact of life late changes are expensive

Page 29: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 29

The Impact of Change

Definition

1 x

Development

1.5 - 6 x

After release

60 - 100 x

Cos

t to

chan

ge

Page 30: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 30

Practitioner’s Myths

Once we write a program and get it to work, our job is done 50-70% of all effort after first delivery

Until I get the program “running”, I really have no way in assessing its quality inspections & reviews

The only deliverable for a successful project is the working program documentation (users, maintenance)

Page 31: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 31

Definition: Software Engineering

Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1) [IEEE-93]

Page 32: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 32

Three P’s

Processes Products

People

Page 33: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 33

People, Processes, Products

People education skills communication style .....

• Products– requirements

– design

– source code

– executable

– user documentation

– test cases

– test results

– change request

– ....

• Processes– planning

– coordination

– management

– measuring

– analyzing

– designing

– coding

– .....

Page 34: CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu@umkc.edu leeyu.

CS451 - Lecture 1 34

Scope: Software Engineering

various disciplines Mathematics, Computer science, Economics, Management, Psychology etc.

extremely broad the software life

cycle team or

organization economic aspect legal aspect, etc.