3. 犖о鹸犖犖о犖犖犖÷犖犖犖犢犢犖о牽犢
Software Engineering
(SE)
Software Evolution
SEs main goal is to develop systematic
models and reliable techniques for
producing high-quality software on time and
within budget and
SE people are interested in designing and
developing information systems that are
appropriate to the client organization
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 3 LPRU
10. Introduction
1. 犖犖園犖犖∇険犖犢犖迦犖犖犖萎硯犖犖園鹸犖犖迦肩犖犖犢 (Historical Aspects)
- !Fact 犖犖萎犖犢犖犖犢犖迦肩犖迦検犖迦牽犖犖ム犖÷犖犢 犢犖犢犖∇犖園犖÷犖犢犖犖∇犖犢犖迦牽犖萎犖犢犖犖巌犢犖犖劇賢犖犖ム犖
- !True 犖犖萎犖迦犖犖迦検犖迦牽犖犖犖犖園犖犢 犢犖犢犖∇犖園犖÷犢犖犢犖迦犖犖園犖朽犖犖萎犖犖犖蹩巌犖犖園鹸犖犖迦牽犖犖犖 犢犖÷犖犖犖萎犢犖犖
犖犖迦牽犖犖巌犖迦犖犖迦犖項犖犖ム鹸犖
- NATO Study group in 1967 coined the term Software
Engineering A conclusion : Software engineering should use the
philosophies and paradigms of established engineering
disciplines to solve Software Crisis
- Software Crisis : Quality of software ware generally unacceptably
low and deadlines and cost limits were not being met.
- Why then cannot bridge-building techniques be used to build
operating System ?????
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 10 LPRU
14. Introduction
2. 犖犖園犖犖∇険犖犢犖迦犢犖犖犖犖犖犖巌 (Economic Aspects)
- 犢犖犢犖犢犖犖朽権犖о犖犖園犖о顕犖÷肩犖÷険犖犖犖園犢犖犖萎見犖о犖迦犖о鹸犖犖о犖犖犖÷犖犖犖犢犢犖о牽犢犢犖ム鍵犖о鹸犖犖∇顕犖犖迦牽犖犖犖÷犖巌硯犢犖犖犖犢
> 犖о鹸犖犖∇顕犖犖迦牽犖犖犖÷犖巌硯犢犖犖犖犢犖ム犖犖伍犢犖犖犖迦牽犖犖ム鹸犖犖犖犖犖犢犢犖о牽犢犖犖朽犖犖ム顕犖犖犖ム顕犖 犖犖謹犖犖犖迦犖犖朽犖迦犢犖÷
犖犖朽犖迦犢犖犖劇犖犢犖犢犢犖犢犖犖ム献犖犖園犢犖犖朽犖犢犖犖犖犖迦牽
> 犖о鹸犖犖о犖犖犖÷犖犖犖犢犢犖о牽犢犖犖萎献犖犖犖伍犢犖犖∇犖ム厳犖犖犢犖犖犖犖巌犖犖犖謹犖 犢 犢犖ム鍵犖犖迦硯犖巌犖朽犖迦牽犢犖犢犖犖犖萎見犖∇犖
犖犢犖迦犖犢犖犢犖迦権犖÷顕犖犖犖朽犖犖伍
Example!! Currently using CTold discovery that CTnew produced in
nine-tenths (10%) of the time. Common sense seems to dictate
that CTnew is appropriate techniques to use.
But!! The economics of software engineering may imply the
opposites.
- One reason : Cost of introducing new technology
- Second reason : Economics of Maintenance
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 14 LPRU
15. Introduction
3. 犖犖園犖犖∇険犖犢犖迦犖犖迦牽犖犖 犖犖犖伍牽犖犖園県犖 (Maintenance Aspects)
- Life cycle : (waterfall model, 1970s) : seven broad phases.
1) Requirements : clients s requirement
2) Specification (analysis) : the clients s requirement are analyzed
and presented in the form of specification document.
proposed software development .
3) Design : design 2 process
> architectural design - broken down into component (module)
> detailed design designed each module .
(resulting design document)
4) Implementation : coded and tested.
5) Integration : combined and tested as a whole.
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 15 LPRU
16. Introduction
3. 犖犖園犖犖∇険犖犢犖迦犖犖迦牽犖犖 犖犖犖伍牽犖犖園県犖 (Maintenance Aspects)
6) Maintenance : includes all changes to the product
-> specification document. Maintenance includes :
- Corrective maintenance (or software repair)
specification unchanged.
- Enhancement maintenance (or software update)
specification and implementation of those changes.
Two types of enhancement.
(1) perfective maintenance : changes that client thinks
will improve the effectiveness of the product.
(2) adaptive maintenance : change that environment in
with product operates, new government regulations.
7) Retirement : product is removed from service.
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 16 LPRU
17. Introduction
3. 犖犖園犖犖∇険犖犢犖迦犖犖迦牽犖犖 犖犖犖伍牽犖犖園県犖 (Maintenance Aspects)
Approximate relative costs of the phases of the software life cycle.
(Stephen R. Schach, 1996, P.11)
integration
8%
Module
testing
7%
Maintenance
67%
Module
Coding
Design 5%
6%
Specification
(Analysis)
5%
Requirement
2%
Maintenance is so important,
a major aspect of software
engineering consists of those
techniques, tools, and
practices the lead to a
reduction in maintenance
cost.
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 17 LPRU
18. Introduction
4. 犖犖園犖犖∇険犖犢犖迦犖犖迦牽犖о鹸犢犖犖犖迦鍵犖犢犢犖ム鍵犖犖犖犢犖犖
(Specification and Design Aspects)
- Software Professional : HUMAN
Larger Software Projects
Requirement
and specification
Design
Implementation
Smaller Software Projects
Integration
Acceptance
Test
Maintenance
犖犢犖迦犖犢犖犢犖迦権犢犖犖犖迦牽
犖犖犖園犖迦牽犖犢犖犖犖巌犖犖ム顕犖
(Relative cost
to fix fault)
500
100
50
20
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 18 LPRU
21. Introduction
5. Team Programming Aspects (犖犢犖)
- 犖犖∇犖迦犢犖犖犢犖犖迦検 犖犖項犖犖犖巌見犖迦牽犢犖犖犖犖犖迦牽犖犢犖犢犖犖犖犖迦牽犖犖朽検犖犖項犖犖園犖犖迦犖犢犢犖犖÷顕犖萎肩犖÷犖犢犖犢犖ム鍵
犖犖犖萎犖о犖犖迦牽犖犖犖園犖迦犖犖∇賢犖迦犢犖犢犢犖犖犖犖巌犢犖犖犖迦牽犖犖 犖犖犖犖犖о顕犖÷肩犖÷険犖犖犖園犢犖犖萎見犖о犖迦犖犖/犖犖迦/
犢犖о献犖迦見犖犖劇賢犖犢犖迦犖犢犖犢犖迦権
- 犖犖о検犖犖謹犖犖о険犖犖犢犖迦犖朽検犢犖犖朽権犖犢犖犖犢犖犖犖÷犢犖犖犖犖迦検犖迦牽犖犖犖犖園犖園犖犖迦犢犖迦 interface and
communication.
- Example:
> Somchai and Somsri code modules P and Q respectively, where
module P calls module Q.
> When Somchai codes P he writes a call to Q with five arguments
in the argument list. Somsri codes Q with five arguments, but in a
difference order from those of Somchai.
Ans Fault or error result.
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 21 LPRU
22. Introduction
5. Team Programming Aspects (犖犢犖)
- 犖犖園犖犖迦犖朽犖犖 :
- Design problem
- Often changed after coding commences
- Notification of a change is sometimes not distributed to all
members of the development team.
- Poor communication
- Tip of the iceberg
- However, considerable proportion of todays software engineering
must also include techniques for ensuring that teams are properly
organized and managed.
Asst.Prof.Paijit Suksomboon SoftwareEvolution 1 / 22 LPRU