18
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA [email protected]

Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Embed Size (px)

Citation preview

Page 1: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page

(c) 1999, A. Lakhotia

1

Software engineering?

Arun Lakhotia

University of Louisiana at Lafayette

Po Box 44330

Lafayette, LA 70504, USA

[email protected]

Page 2: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

2

Overview

Why Software Engineering? What is Software Engineering?

Page 3: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

3

Why Software Engineering?

Page 4: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

4

To Develop Products to Solve Bigger Problems

Problem Code size Person times

Class assignments 20-200 lines 4-5 days

Assembler 2,000 lines 3 months

Basic Interpreter 15,000 lines 4 years

C Compiler (simple) 25,000 lines 8 years

Optimizing, retargateable C compiler

290,000 lines 40 years

ATM Machines 1 Million lines ???

Telephone systems 3 million lines

Page 5: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

5

To Develop Reliable Products

Reliability of system P = Probability a component will fail N = Number of components Reliability = P * P * .. * P = PN

N P = 0.5 P = 0.99

1 0.5 0.99

10 0.00976 0.9043

100 7.88 E –31 0.36603

1,000 ******* 0.0000431

10,000 ******* 2.248 E –44

100,000 ******* ******

Page 6: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

6

To Manage Chaos Due to Communication

Page 7: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

7

To Reduce Cost of Fixing Errors

Phase in which error is detected

Relative cost of repair

Requirements 0.1 – 0.2

Design 0.5

Coding 1

Unit test 2

Acceptance test 5

Maintenance 20

Page 8: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

8

To Decrease Risks

Paid, not delivered

29%

Used after serious rework

19%

Used as delivered

2%

Used after changes

3%

Delivered, not used47%

Page 9: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

9

What is Software Engineering? Definitions

Establishment and use of sound engineering principles in order to obtain economically software that is reliable and works on real machines. [Bauer, 1972]

The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. [Boehm, 1976]

Application of tools, methods, and disciplines to produce and maintain an automated solution to a real-world problem. [Blum, 1993]

Management of people, processes, and products and use of scientific knowledge to design, construct, validate, and maintain software products that are reliable, economical, and useful. [Lakhotia, 1995].

Page 10: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

10

What is Software Engineering?

Manage: People Processes Products

and use scientific knowledge to Design Construct Validate Maintain software products

that are: Reliable Economical, and Useful

Page 11: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

11

Manage Software Development Processes

Software process models Life-cycle models Process maturity models Statistical process control models

Process models provide a template of tasks performed during development, ordering of these tasks, and relative effort needed for each task.

Page 12: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

12

Software Development Process Models: Waterfall model

Life cycle models: Waterfall model

System Engineering

Code

DesignAnalysis

Test

Maintain

Page 13: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

13

Software Development Process Model: Spiral Model

Life cycle models: Spiral model

Described in class

Page 14: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

14

Software Development Process Model: Waterfall model with V&V

Life cycle models: Waterfall model with V&V

Described in class

Page 15: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

15

Management of Products

Build models Object-oriented models Data models Function models

Techniques Requirement acquisition User interface design Formal specification Coding standards and styles

Page 16: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

16

Management of Products, cond.

Evaluate products Testing Code walkthrough Review Formal verification Measure static properties Measure dynamic properties Measure reliability Estimate bugs

Page 17: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

17

Management of Products, contd.

Maintain Port to different hardware or software platform Add new features Apply bug fixes Manage versions Manage configurations

Retire Move to new technology Extract business rules from dying code Replace product without disruption

Page 18: Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box 44330 Lafayette, LA 70504, USA

Jump to first page(c) 1999, A. Lakhotia

18

Management of People

Organization of teams Communication protocols

Meetings Reviews Demonstrations Log books

Incentives for quality and quantity Measure productivity