10
1 Scope of Software Engi neering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart Unive rsity Email: [email protected] URL: http://www.cpe.ku.ac.th/~sk

1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

Embed Size (px)

Citation preview

Page 1: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

1

Scope of Software Engineering

Somnuk Keretho, Assistant Professor

Department of Computer Engineering

Faculty of Engineering, Kasetsart University

Email: [email protected]

URL: http://www.cpe.ku.ac.th/~sk

Page 2: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

2

What is Software Engineering?

Software engineering is a discipline whose aim is the production of fault-free software, that is delivered on time, within budget, and satisfies the user’s needs.

Reference to Chapter 1 of “Software Engineering with JAVA”, S.R. Schach, McGraw-Hill, 1997.

Page 3: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

3

Scope of Software Engineering

Historical Aspects:– 1967, a NATO group coined the term “Software Engi

neering”

– 1968 NATO Software Engineering Conference concurred that “Software production should be an engineering-like activity”.

– Using philosophies and paradigms of established engineering disciplines to solve “Software Crisis: that the quality of software was generally unacceptably low and that deadlines and cost limits were not being met”.

Page 4: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

4

Scope of Software Engineering

Economic Aspects– Software Engineering v.s. Computer Science

• The computer scientist investigates several ways to produce software, some good and some bad.

• But the software engineer is interested in only those techniques that make sound economic sense.

For example: A coding technique that can execute very efficiently but with higher maintenance cost may not be a good choice, since maintenance occupies a lot of resources of the whole life cycle.

Page 5: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

5

Scope of Software Engineering Maintenance Aspects

– Software Life Cycle / Software Process• Requirements Phase

• Specification (Analysis) Phase

• Planning Phase

• Design Phase

• Implementation Phase

• Integration Phase

• Maintenance Phase (highest cost among all these phases)– Corrective, Perfective, and Adaptive Maintenance

• Retirement

Page 6: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

6

Scope of Software Engineering

Requirement 2%Specification 4%Planning 1%Design 6%Module Coding 5%Module Testing 7%Integration 8%Maintenance 76%

Maintenance67%

Approximate relative costs of the phases of the software life cycle.

Maintenance is so important that a major aspect of software engineering consists of techniques, tools, and practices that lead to a reduction in maintenance cost.

Page 7: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

7

Scope of Software Engineering

Specification and Design Aspects– Software professionals are humans, and humans ca

n make error.

– The fact that so many faults are introduced early in the software life cycle, highlights another important aspects of software engineering, namely, techniques that yield better specifications and designs.

• For example, reducing specification and design faults by 10% will reduce the overall number of faults by 6-7%.

Page 8: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

8

Scope of Software Engineering

Team Programming Aspects– Most software being developed and maintained

by a team of software engineers– Scope of software engineering must also includ

e techniques for ensuring that teams are properly organized and managed.

• For example, team programming leads to interface problems among code components and communication problems among team members.

Page 9: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

9

Scope of Software Engineering Several techniques have been suggested to help solve th

e software crisis.– ~1975-1985: Structured Paradigm

• Structured Systems Analysis, Composite/Structured Design, Structured Programming, Structured Testing

• Lead to major improvements for software industry. • But only good for small programs (say, 5,000-50,000 lines of codes)• Not scale up well with today larger programs (say, 500,000-5,000,000 LOC)• Not so good in software maintenance aspects, (for instance, because of the separati

on of action-oriented and data-oriented in structured paradigm).

– Object-Oriented Paradigm• An object is a unified software component that incorporates both data and actions t

hat operate of those data. --> More Promising!

Page 10: 1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email:

10

Scope of Software Engineering

Structured Paradigm Requirement Phase Specification (Analysis) Phase

Planning Phase Design Phase Implementation Phase

Integration Phase Maintenance Phase

Retirement

Object-Oriented Paradigm Requirement Phase Object-Oriented Analysis Phase Planning Phase Object-Oriented Design Phase Object-Oriented Programming Pha

se Integration Phase Maintenance Phase

Retirement

Comparison of life cycles of structures paradigm and object-oriented paradigm.