Software Engineering Ppt

Only available on StudyMode
  • Download(s) : 229
  • Published : September 15, 2012
Open Document
Text Preview
Introduction to Software Engineering
Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email: sk@nontri.ku.ac.th URL: http://www.cpe.ku.ac.th/~sk

Somnuk Keretho/Kasetsart University

Outline of this presentation
• • • • • • Scope of Software Engineering Object-Oriented Software Development Software Process Software Life-Cycle Models Object Orientation Software Quality Assessment

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

Somnuk Keretho/Kasetsart University

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

Somnuk Keretho/Kasetsart University

3

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”. Somnuk Keretho/Kasetsart University

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.

Somnuk Keretho/Kasetsart University

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

Somnuk Keretho/Kasetsart University

6

Scope of Software Engineering
Maintenance is so important, 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.

Somnuk Keretho/Kasetsart University

7

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

Somnuk Keretho/Kasetsart University

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

Somnuk Keretho/Kasetsart University

9

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 well with today larger...
tracking img