Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Reference to Chapter 1/2/3 of Software Engineering with JAVA, S.R. Schach, McGraw-Hill, 1997.
2
Retirement
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.
Object-Oriented Paradigm
An object is a unified software component that incorporates both data and actions that operate of those data.
10
Object-Oriented Paradigm
Requirement Phase Object-Oriented Analysis Phase Planning Phase Object-Oriented Design Phase Object-Oriented Programming Phase Integration Phase Maintenance Phase Retirement
11
12
Software
Programs Documentation during the development of programs (e.g. specification) Primary aids for running the programs (e.g. user manuals) Secondary aids for running the programs (e.g. key boards overlays)
Software is not just programs!
Somnuk Keretho/Kasetsart University
13
14
15
Built-and-Fix Model
Unfortunately, many s/w products are developed with built-and-fix model. Without specification or any attempt in design, just build a product, and reworked as many times needed to satisfy the customer. Unsatisfactory for any size of s/w development, we better specify the various phases of software process.
16
17
Waterfall Model
Requirement
Verify
Specification
Planning
Verify
Design
Verify
Implementation
Testing
Testing
18
19
Verify
Planning
Verify
Design
Verify
Implementation
Testing
Testing
20
Incremental Model
The s/w product is designed, implemented, integrated, and tested as a series of incremental builds, where a build consists of code pieces from various modules interacting to provide a specific functional capability. It is sometimes necessary to re-specify, re-design, re-code, or at worst, throw away what has already been completed and start again.
Somnuk Keretho/Kasetsart University
21
Incremental Model
Requirement
Verify
Specification
Verify
Planning
Verify
Architectural Design
Verify
Development Maintenance
22
Spiral Model
The idea of minimizing risk via the use of prototypes and other means is the concept underlying the spiral model. A simplified spiral model is as a waterfall model with each phase preceded by risk analysis.
Before commencing each phase, an attempt is made to control (resolve) the risks. If it is impossible to resolve all the significant risks at a stage, then the project is immediately terminated.
Somnuk Keretho/Kasetsart University
23
Risk Analysis Prototype 1 Prototype 2 Concept of Operation Software Requirements Software Product Design Prototype 3
Operational Prototype
Development Plan
Implementation
Acceptance Test
Integration Test
24
Software Development
Software is developed using a life cycle model. Just a life cycle model is insufficient for development. We need:
A broad philosophy A set of tools which support the philosophy. A language which supports the philosophy.
25
26
27
Functional Development
A problem is expressed in termed of a set of mathematical functions.
e.g. Double(x) = Add(x, x).
An algorithm is not specified. Language such as Miranda, Gofer, Haskell support this paradigm. Poor execution speed.
28
Logic Programming
Consists of a problem description only.
e.g. Factorial(0) = 1. Factorial(N) = N x Factorial(N -1).
Doesnt describe how to solve the problem. Languages Prolog & Lisp support this paradigm.
29
Structured Development
Also called SASD, SADT & Functional Decomposition. Breaks the system into processes & decomposes them. Languages C, Fortran, Pascal, Cobol, Basic and a lot more support this paradigm. By far the most popular paradigm.
30
Object Orientation
Most recent paradigm. Treats a problem as a collection of objects. Becoming very popular now. More and more languages support this paradigm now.
31
Tools for OO
Rambaugh (OMT) Coad-Yourdon Booch UML
32
Languages for OO
C++ Smalltalk Eiffel Object C Object Pascal Java
33
34