This document discusses software development processes. It describes the differences between systems development and software development. Software development focuses solely on producing software to satisfy user requirements. The document then discusses the main challenges in software development like ensuring quality and productivity. It introduces several software development life cycle models like waterfall, prototyping, iterative development and the unified process. Each model has its own advantages and disadvantages. User involvement and CASE tools can also support the development process.
1 of 29
Downloaded 12 times
More Related Content
Pertemuan 2-apbo-software-developmeng-processing
1. Software Development Process
E. Haodudin Nurkifli
Teknik Informatika
Universitas Ahmad Dahlan
Kuliah 2 : Administrative dan Introduction
2 Oktober 2010
Feb 24, 2014
3. Outline
Systems vs. Software Development
Difficulties in Software Develoment
Software Development Life Cycle
User Involvement
Case Tools Support
Eko AB Analisis dan Perancangan Algoritma
3
4. Systems Development
Systems development is
concerned with all aspects
of computer-based systems
development including
hardware,
software and
Human activities
May not even include
software as part of the
solution
Eko AB Analisis dan Perancangan Algoritma
4
5. Software Development
Software development is focused soly on producing a
software system that will satisfy user requirement.
Software: computer programs and associated
documentation
Software development may be considered as part of
systems development
Eko AB Analisis dan Perancangan Algoritma
5
6. The Main Players
Developers
Those who will produce the system
End-users
Those who may directly operate the system
Owners
or sponsors - clients
Those who commission the project, pay for it or
have the power to halt it
Eko AB Analisis dan Perancangan Algoritma
6
7. Difficulties in Software Development
Sotware quality: whether the software fits for purpose, satisfies
all user requirements.
Example failures
It might work, but dreadful to use (user)
It is pretty, but does not do anything useful (user)
Users and owners may not know how to ask for what they really want,
e.g. We built what they said they wanted (developer)
Budget and time constraints often conflict with doing the job properly,
e.g. There was not enough time to do it any better (developer)
Difficulties for the possession of blended skills, e.g. Do not blame
me, I never done object-oriented analysis before (developer)
Eko AB Analisis dan Perancangan Algoritma
7
8. Difficulties in Software Development
Productivity: the progress of the project, and the
resources (including time and money) that it consumes
along the way (much related to project management)
Example failures
A system that is promised but not delivered (user)
It is no use delivering now, we need it last April (owner)
Projects that overspend their budget (owner)
Requirements drift, e.g. user changes their minds
frequently(develper)
Implementation not feasible, e.g. we said it was impossible, but
no-one listened (developer)
How to overcome them?
Eko AB Analisis dan Perancangan Algoritma
8
9. Software Development Process
Subdividing the process of software development into
different phases
Ease of management to produce appropriate quality
standard and to stay within the allocated budgest
Help to identify and allocate developers skills
appropriately, and thus improve the quality of the task
completion
Known as project life cycle model
Eko AB Analisis dan Perancangan Algoritma
9
10. Project Life Cycle
Two important precursor
phases are
Don卒t blindly follow the
path to automation. The
very first question is
whether or not you even
need a computer
system...
Strategic Information Systems
Planning
Business Modelling
Focus on organisation needs
They are not computational
Universially accepted for
commercially oriented
computer system development
Eko AB Analisis dan Perancangan Algoritma
10
11. Generic Life Cycle Models
The Waterfall Model
Prototyping
Iterative and Incremental Development
The Unified Process Life Cycle
Eko AB Analisis dan Perancangan Algoritma
11
12. Waterfall Life Cycle
Requirements specification
Functional specification
Acceptance test specifications
System
System
Engineering
Engineering
Requirements
Analysis
Analy sis
Unit test report
Sub-system test report
System test report
Acceptance test report
Completed system
Design
Design
Construction
Software architecture specification
System test specification
Design specification
Sub-system test specification
Unit test specification
Change requests
Change request report
Eko AB Analisis dan Perancangan Algoritma
Testing
Code
Installation
Code
Maintenance
Maintenance
12
13. Waterfall Life Cycle
The traditional life cycle (TLC) for information
systems development.
So called because of the difficulty of returning to
an earlier phase.
The drawback of the waterfall model is the
difficulty of accommodating change after the
process is underway
Eko AB Analisis dan Perancangan Algoritma
13
14. TLC with Iteration
The cost of
this form of
iteration
increases as
the project
progresses
making it
impractical
and not
effective
Eko AB Analisis dan Perancangan Algoritma
14
15. Problems with TLC
Real projects rarely follow such a simple sequential life
cycle
Lapsed time between systems engineering and the
final installation is long
Iterations are almost inevitable in real projects but are
expensive & problematic with the TLC
Unresponsive to changes during project as iteration is
difficult
Therefore, this model is only appropriate when the
requirements are well-understood
Eko AB Analisis dan Perancangan Algoritma
15
16. Strengths of TLC
Provide
a very structured way to system
development
Tasks
in phases may be assigned to
specialized teams.
Project
progress evaluated at the end of each
phase, and assessment made as to whether
the project should proceed
Eko AB Analisis dan Perancangan Algoritma
16
17. Prototyping Life Cycle
Not intended to deliver the final working system
Quickly built up to explore some aspects of the system
May be used as part of other iterative life cycle
Initial
analys is
Define
objectives
Specify
Prototyping
com pleted
Eko AB Analisis dan Perancangan Algoritma
Evaluate
Cons truct
17
18. Prototyping Advantages
Early demonstrations of system functionality help
identify any misunderstandings between developer
and client
Client requirements that have been missed are
identified
Difficulties in the interface can be identified
The feasibility and usefulness of the system can be
tested, even though, by its very nature, the prototype
is incomplete
Eko AB Analisis dan Perancangan Algoritma
18
19. Prototyping Problems:
The
client may perceive the prototype as part of
the final system
The
prototype may divert attention from
functional to solely interface issues
Prototyping
requires significant user
involvement
Managing
the prototyping life cycle requires
careful decision making
Eko AB Analisis dan Perancangan Algoritma
19
20. Incremental Development
Initial
requirements
gathering and
project planning
Planning
Risk analysis
Risk analysis
based on user
reaction to plan
Further planning
based on user
comments
User
evaluation
of
increments
Risk analysis
based on initial
requirements
Go, no-go decision
Risk assessment
Progress towards
final system
User evaluation
Software development
Develop first
increment
Develop next
increment
The Spiral Model
(Boehm, 1988)
Eko AB Analisis dan Perancangan Algoritma
20
21. Incremental Development
Iterative problem solving: repeats activities, each can be
viewed as a mini-project
Incremental delivery, either external or internal release
New release = new functionality + (improved) previous
release
Several approaches to structuring iterations
Define and implement the key system functions
Focus on one subsystem at a time
Define by complexity or risk of certain components
Eko AB Analisis dan Perancangan Algoritma
21
22. Unified Process Life Cycle
The Unified Process System Development Life Cycle
Eko AB Analisis dan Perancangan Algoritma
22
23. Unified Process Life Cycle
Iteration
Eko AB Analisis dan Perancangan Algoritma
23
24. Unified Process Life Cycle
Captures
The
many elements of best practice
phases are:
Inception is concerned with determining the scope
and purpose of the project;
Elaboration focuses requirements capture and
determining the structure of the system;
Construction's main aim is to build the software
system;
Transition deals with product installation and rollout.
Eko AB Analisis dan Perancangan Algoritma
24
25. Choose Appropriate Life Cycle
TCL is highly predictive
Prototyping, Spiral and UP life cycle models are highly
adaptive
Predictive versus adaptive approaches to the SDLC
Eko AB Analisis dan Perancangan Algoritma
25
26. User Involvement
As
well as use appropriate process model,
user involvement and CASE tools support
also very improtant for project success
Users
can be involved at various levels
As part of the development team (DSDM)
Via a consultative approach
In fact gathering
Eko AB Analisis dan Perancangan Algoritma
26
27. CASE Tools
CASE-Computer Aided Software Engineering, typically
provide a range of features including:
Model and technical support
checks for syntactic correctness, consistency and completeness
Layering, navigation to linked diagrams
repository support, traceability
report generation
system simulation, performance analysis
Software construction
Code generation
Reverse engineering
Eko AB Analisis dan Perancangan Algoritma
27
29. Execises
1.
Distinguish between client and user.
2.
Define software quality.
3.
What are the main difference between quality problems and
productivity problems?
4.
Advantages and disadvantages of TLC, and how to overcome
the disadvantges?
5.
Differences between prototyping and incremental
development?
6.
Identify the ways and potential problems with user
involvement?
7.
What do you think is meant by the term failure when it is
applied to an IS project?
Eko AB Analisis dan Perancangan Algoritma
29
Editor's Notes
Strategic Information Systems Planning. As we saw in Chapter 1, information systems work within the context of an organization and must satisfy its current requirements as well as providing a basis from which future needs can be addressed. In order to do this, strategic plans are developed for the organization as a whole and within their context a strategic view of information systems needs can be formed. For example, in the Agate case study a strategic decision may be made to target multinational companies for international advertising campaigns. This has consequences for campaign management and its supporting information systems.
Business modelling. In order to determine how an information system can support a particular business activity it is important to understand how the activity is performed and how it contributes to the objectives of the organization. Campaign management is an important business function for Agate and it should be modelled in order to determine how it is carried out, thus providing some of the parameters for subsequent information systems development.
Strategic Information Systems Planning. As we saw in Chapter 1, information systems work within the context of an organization and must satisfy its current requirements as well as providing a basis from which future needs can be addressed. In order to do this, strategic plans are developed for the organization as a whole and within their context a strategic view of information systems needs can be formed. For example, in the Agate case study a strategic decision may be made to target multinational companies for international advertising campaigns. This has consequences for campaign management and its supporting information systems.
Business modelling. In order to determine how an information system can support a particular business activity it is important to understand how the activity is performed and how it contributes to the objectives of the organization. Campaign management is an important business function for Agate and it should be modelled in order to determine how it is carried out, thus providing some of the parameters for subsequent information systems development.
Perform an initial analysis. All software development activity utilizes valuable re足sources. Embarking upon a prototyping exercise without some initial analysis is likely to result in an ill-focused and unstructured activity producing poorly designed software.
Define prototype objectives. Prototyping should have clearly stated objectives. A proto足typing exercise may involve many iterations, each iteration resulting in some improv足ement to the prototype. This may make it difficult for the participants in a prototyping exercise to determine if there is sufficient value to continue the prototyping. However, with clearly defined objectives it should be possible to decide if they have been achieved.
Specify prototype. Although the prototype is not intended for extended operation it is important that it embodies the requisite behaviour. It is almost certainly the case that the proto足type will be subject to modification and this will be easier if the software is built according to sound design principles.
Construct prototype. Since it is important that prototype development is rapid, the use of a rapid development environment is appropriate. For example, if an interactive system is being prototyped, environments such as DelphiTM or Visual Basic速 can be most effective.
Evaluate prototype and recommend changes. The purpose of the prototype is to test or explore some aspect of the proposed system. The prototype should be evaluated with respect to the objectives identified at the beginning of the exercise. If the objectives have not been met then the evaluation should specify modifications to the prototype so that it may achieve its objectives. The last three stages are repeated until the objectives of the prototyping exercise are achieved.