Scope of Software Engineering

Published on May 2016 | Categories: Documents | Downloads: 22 | Comments: 0 | Views: 238
of 10
Download PDF   Embed   Report

Comments

Content

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
1

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. 2

Scope of Software Engineering


Historical Aspects:
– 1967, a NATO group coined the term “Software Engineering” – 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”.
3

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.
4

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
5

Scope of Software Engineering
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.

Maintenance 67%

Requirement 2% Specification 4% Planning 1% Design 6% Module Coding 5% Module Testing 7% Integration 8% Maintenance 76%
Approximate relative costs of the phases of the software life cycle.

6

Scope of Software Engineering


Specification and Design Aspects
– Software professionals are humans, and humans can 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%.

7

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 include 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.
8

Scope of Software Engineering


Several techniques have been suggested to help solve the 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 separation 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 that operate of those data. --> More Promising!
9

Scope of Software Engineering
Structured Paradigm
 

Object-Oriented Paradigm
  

Requirement Phase Specification (Analysis) Phase Planning Phase Design Phase Implementation Phase Integration Phase Maintenance Phase Retirement

  

 

     

Requirement Phase Object-Oriented Analysis Phase Planning Phase Object-Oriented Design Phase Object-Oriented Programming Phase Integration Phase Maintenance Phase Retirement

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

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close