+ All Categories
Home > Documents > Lecture 1 Introduction

Lecture 1 Introduction

Date post: 15-Mar-2016
Category:
Upload: nicholas-kirkland
View: 42 times
Download: 0 times
Share this document with a friend
Description:
Lecture 1 Introduction. CSCE 492 Software Engineering. January 13, 2009. Overview. Today’s Lecture Course Pragmatics Overview References: Next Time:. Course Pragmatics. Goal: To give you “real world” experience in team development of a large software system - PowerPoint PPT Presentation
29
Lecture 1 Introduction January 13, 2009 CSCE 492 Software Engineering
Transcript
Page 1: Lecture 1  Introduction

Lecture 1 Introduction

January 13, 2009

CSCE 492 Software Engineering

Page 2: Lecture 1  Introduction

– 2 – CSCE 492 Spring 2009

OverviewToday’s Lecture Today’s Lecture

Course Pragmatics Overview

References: References:

Next Time: Next Time:

Page 3: Lecture 1  Introduction

– 3 – CSCE 492 Spring 2009

Course PragmaticsGoal:Goal:

To give you “real world” experience in team development of a large software system

To provide you an opportunity to show your skills, build a portfolio

Web Site: Web Site: http://www.cse.sc.edu/~rose/492/index.html Lectures Resources

Links to papers/readingsLinks to other Software Engineering Project sites

Page 4: Lecture 1  Introduction

– 4 – CSCE 492 Spring 2009

State of the Art in UML tools Argo UMLArgo UML IdeogramicIdeogramic Rational RoseRational Rose TogetherTogether General Diagram Tools: General Diagram Tools:

DiaDia Kivio Kivio VisioVisio

UmbrelloUmbrello

http://jriddell.org/programs/umbrello/html/index.htmlhttp://jriddell.org/programs/umbrello/html/index.html

Page 5: Lecture 1  Introduction

– 5 – CSCE 492 Spring 2009

Why does software engineering matter?

Software’s contribution to US economy Based on 1996 figures: greatest trade surplus of

exports $24B software exported, $4B imported, $20B

surplus· compare: agriculture 26-14=12, aerospace 11-3=8, chemicals 26-19=7, vehicles 21-43=(-22), manufactured goods 200-265=(-64)·

Page 6: Lecture 1  Introduction

– 6 – CSCE 492 Spring 2009

Role in infrastructureNot just the Internet· Transportation Energy Medicine Finance

Page 7: Lecture 1  Introduction

– 7 – CSCE 492 Spring 2009

Software QualityHow many errors do you think exist in a released

software product?

How do you measure the quality of code? Error counts

Total errors #Errors/size of code

SeverityHow do you measure the size of code LOC – lines of code ?

Page 8: Lecture 1  Introduction

– 8 – CSCE 492 Spring 2009

How do you Quantify Software?Software metrics

http://sel.gsfc.nasa.gov/website/documents/online-doc/94-102.pdf

How do you measure the size of code Megabytes LOC – lines of code

http://en.wikipedia.org/wiki/Source_lines_of_code Programs for counting lines of code

Characters?

Page 9: Lecture 1  Introduction

– 9 – CSCE 492 Spring 2009

Why Measure Software?KKey RReasons for MMeasurement of Software

1. Understanding

2. Managing

3. Guiding improvement

Profit = Sales - Cost

Page 10: Lecture 1  Introduction

– 10 – CSCE 492 Spring 2009

Software FailuresIBM survey1994

55% of systems cost more than expected

68% overran schedules

88% had to be substantially redesigned

Page 11: Lecture 1  Introduction

– 11 – CSCE 492 Spring 2009

ExamplesAdvanced Automation System (FAA, 1982-1994) industry average was $100/line expected to pay $500/line ended up paying $700-900/line $6B worth of work discarded

Page 12: Lecture 1  Introduction

– 12 – CSCE 492 Spring 2009

PredictionsBureau of Labor Statistics (1997) for every 6 new systems put into operation 2 cancelled probability of cancellation is about 50% for biggest

systems average project overshoots schedule by 50% 3/4 systems are regarded as ‘operating failures’

Page 13: Lecture 1  Introduction

– 13 – CSCE 492 Spring 2009

Accidents

Nathaniel Borenstein http://www.artwanted.com/imageview.cfm?id=234508http://www.artwanted.com/imageview.cfm?id=234508

Page 14: Lecture 1  Introduction

– 14 – CSCE 492 Spring 2009

Ariane-5Ariane-5 (June 1996) European Space Agency complete loss of unmanned rocket shortly after takeoff due to exception thrown in Ada code faulty code was not even needed after takeoff due to change in physical environment: undocumented

assumptions violated

Referencehttp://archive.eiffel.com/doc/manuals/technology/contract/ariane/

page.html

Page 15: Lecture 1  Introduction

– 15 – CSCE 492 Spring 2009

Therac-25Therac-25 (1985-87) radiotherapy machine with software controller hardware interlock removed, but software had no

interlock software failed to maintain essential invariants:

either electron beam mode and plate intervening, to generate X-rays

several deaths due to burning programmer had no experience with concurrent

programming

Page 16: Lecture 1  Introduction

– 16 – CSCE 492 Spring 2009

So What’s Good Software?Software Quality

Measure: bugs/kloc measured after delivery industry average is about 10 high quality: 0.1 or less

Page 17: Lecture 1  Introduction

– 17 – CSCE 492 Spring 2009

Quality SoftwarePraxis CDIS system (1993) UK air-traffic control system for terminal area used formal methods: precise specification no increase in net cost much lower bug rate: about 0.75 defects/kloc even offered warranty to client!

Page 18: Lecture 1  Introduction

– 18 – CSCE 492 Spring 2009

Software ContractsCosmotronic Software Unlimited Inc. does not warrant

that the functions contained in the program will meet your requirements or that the operation of the program will be uninterrupted or error-free. …

Page 19: Lecture 1  Introduction

– 19 – CSCE 492 Spring 2009

Software Testing StrategiesVictor R. Basili and Richard W. Selby. Comparing the

Effectiveness of Software Testing Strategies. IEEE Transactions on Software Engineering. Vol. SE-13, No. 12, December 1987, pp. 1278–1296.

This paper compares 3 state-of-practice software testing techniques: Code reading by stepwise Abstraction Functional testing using equivalence partitioning and

boundary value abstraction Structural testing (100 percent statement coverage criteria)

The three aspects that are compared for the test are: Fault Detection effectiveness Fault detection Cost Classes of fault detected

Page 20: Lecture 1  Introduction

– 20 – CSCE 492 Spring 2009

Collection of Software BugsCollection of Software Bugs Collection of Software Bugs

http://www5.informatik.tu-muenchen.de/~huckle/bugse.html

The first bugThe first bug http://www.waterholes.com/~dennette/1996/hopper/bug.htm

Page 21: Lecture 1  Introduction

– 21 – CSCE 492 Spring 2009

Software as a BusinessCostCost $$ TimeTime Estimated time Estimated time estimate dollars estimate dollars Mythical Man-MonthMythical Man-Month

http://en.wikipedia.org/wiki/The_Mythical_Man-Month

Page 22: Lecture 1  Introduction

– 22 – CSCE 492 Spring 2009

Software Crisis"[The major cause of the software crisis is] that the "[The major cause of the software crisis is] that the

machines have become several orders of magnitude machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as more powerful! To put it quite bluntly: as long as there were no machines, programming was no there were no machines, programming was no problem at all; when we had a few weak computers, problem at all; when we had a few weak computers, programming became a mild problem, and now we programming became a mild problem, and now we have gigantic computers, programming has become have gigantic computers, programming has become an equally gigantic problem." an equally gigantic problem." Edsger Dijkstra: The Humble Programmer (PDF, 473Kb)

Page 23: Lecture 1  Introduction

– 23 – CSCE 492 Spring 2009

Water Fall Model requirements analysis requirements analysis DesignDesign ImplementationImplementation Testing (validation) (validation) IntegrationIntegration maintenancemaintenance

ReferenceReference http://en.wikipedia.org/wiki/Waterfall_processhttp://en.wikipedia.org/wiki/Waterfall_process

Page 24: Lecture 1  Introduction

– 24 – CSCE 492 Spring 2009

Requirements AnalysisSoftware requirements analysis is the activity of Software requirements analysis is the activity of

eliciting, analyzing, and recording eliciting, analyzing, and recording requirements for software systems.

1 Eliciting Requirements1 Eliciting Requirements

2 Analyzing Requirements2 Analyzing Requirements

3 Recording Requirements3 Recording Requirements

Page 25: Lecture 1  Introduction

– 25 – CSCE 492 Spring 2009

DesignOODAOODA

Page 26: Lecture 1  Introduction

– 26 – CSCE 492 Spring 2009

Maintenance

Page 27: Lecture 1  Introduction

– 27 – CSCE 492 Spring 2009

Software testingSoftware testing is the process used to help identify the Software testing is the process used to help identify the

correctness, completeness, security and quality of developed computer software.

testing can never completely establish the testing can never completely establish the correctness of arbitrary computer software. correctness of arbitrary computer software.

computability theory, a field of computer science, an computability theory, a field of computer science, an elegant mathematical proof concludes that it is elegant mathematical proof concludes that it is impossible to solve the halting problem, impossible to solve the halting problem,

Page 28: Lecture 1  Introduction

– 28 – CSCE 492 Spring 2009

Current trends in software engineering AspectsAspects AgileAgile Software architecturesSoftware architectures Software Product linesSoftware Product lines

Page 29: Lecture 1  Introduction

– 29 – CSCE 492 Spring 2009

Capability Maturity ModelCapability Maturity Model (CMM) is a collection of Capability Maturity Model (CMM) is a collection of

instructions an organization can follow with the instructions an organization can follow with the purpose to gain better control over its software purpose to gain better control over its software development process.development process.

The CMM ranks software development organizations in The CMM ranks software development organizations in a hierarchy of five levels, each with a progressively a hierarchy of five levels, each with a progressively greater capability of producing quality software. greater capability of producing quality software.

1.1. Chaos 75% organizations here.Chaos 75% organizations here.2.2. ..3.3. ..4.4. ..5.5. ..


Recommended