Professional Documents
Culture Documents
For every product or system that we build, there is a need and important to have a series of
predictable steps to act as a road map to help us to create a high-quality software or product in
timely manner. In consider of this, a process model was needed to provide stability, control,
and organization to an activity. Example of models include the Prescriptive Process Models
(e.g. waterfall model), Specialized process model (e.g. component-based model) and Agile
Process Model (e.g. extreme programming (XP)).
In waterfall model, the development process is seen as flowing steadily downwards through
several phases, as shown in Figure 1. The phases that involved is:
1. Requirement Gathering and analysis where the possible requirement of the system
are documented in a requirement specification document.
2. System Design in specifying hardware and system requirements and also helps in
defining overall system architecture.
1 | Page
3. Implementation where the small program called unit was developed and unit testing
was conducted to test for each unit for its functionality.
4. Integration and Testing which involved the integration of all the tested units into a
system and the system is tested for any faults and failures.
5. Deployment of system where the product is released into the market once the
functional and non-functional testing is done.
6. Maintenance to fix and enhance the product and release deliver these changes in the
customer environment.
Integration testing - integrated modules are tested to determine faults in the interface
and the interaction between two different modules.
System testing The actual is tested against the system specification.
User acceptance testing system is tested to check for whether the system is in line
with the software requirement specification.
V-Model
Commencement of
testing activity
Process
Continuous process
Simultaneous process
No. of defeats
Less
Lesser
Flexibility
Pros
Simple and easy to understand and use.
Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are well understood.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Not suitable for the projects where requirements are at a moderate to high risk
of changing.
Issues
3 | Page
Real projects rarely follow the sequential flow that the model proposes. If any
changes occur, that will cause confusion as the project team proceeds.
Difficult for the customer to state all requirements explicitly. The customer
will not know what they want until they experience it.
The working version of the program will not be available until late in the
project time span where it will be disastrous if major blunder was undetected.
Available component-based products are researched and evaluated for the application
domain in question.
4 | Page
Pros
The benefits of applying CBD is as below:
The component becomes more valuable if the given component is used in more
application.
Reused software components have fewer bugs because they are used more often,
and errors are uncovered and corrected along the way.
Cons
The disadvantages of CBD is that:
Time and effort required for development of components. Among the factors which
can discourage the development of reusable components is the increased time and
effort required, the building of a reusable unit requires three to five times the effort
required to develop a unit for one specific purpose. (B. Spencer, Microsoft,
Presentation at 22nd ICSE, 1999, also an interesting observation about efficient reuse
of real-time components, made by engineers at Siemens that, as a rule of thumb, the
overhead cost of developing a reusable component, including design plus
documentation, is recovered after the fifth reuse. Similar experience at ABB shows
that reusable components are exposed to changes more often than non-reusable parts
of software at the beginning of their lives, until they reach a stable state.)
5 | Page
Issues
There are several problem regarding to the application of CBD. A major problem with CBD is
the limited possibility of ensuring the quality and other non-functional attributes of the
components and thus our inability to guarantee specific system attributes.
Besides, even though CBD is easier to maintain, cost-efficient and incorporates a shorter
development cycle, but software components arent utilized in more applications or can say,
there is slow adoption in the industry. The reason is due to lack of discipline and lack of
expertise, especially when applying CBD methodology to the application development
process. Software applications need to be well defined before coding begins.
The last driving factor behind CBD's slow adoption is that proper application development
isn't done rigorously. First, it takes knowledge and foresight to break down an application
design to its lowest level. Second, there is always the urge to quickly finish designing and
start coding.
6 | Page
Planning
The planning activity begin with the creation of user stories that describe
required output, features, and functionality for software to be built via listening to
the customers put. Agile team then assesses each story and assigns a cost
(development time). After that, stories will be grouped to for a deliverable
increment. A commitment is made on delivery date. Project velocity: is used to
help define subsequent delivery dates for other increments after the first
increment was made.
ii.
Design
XP follows the KIS (Keep It Simple) principle by discouraging the design of
extra functionality. XP also encourage the use of CRC (class-responsibilitycollaborator) cards as an effective mechanism for thinking about the software in
an object-oriented context. When difficult design prototype is encountered, the
immediate creation of an operational prototype, called spike solution is
recommended to lower the risk when true implementation starts and to validate
7 | Page
the original estimates for the story containing the design problem. Refactoring is
encouraged as an iterative refinement of the internal program design.
iii.
Coding
XP recommends the construction of a unit test for a store before coding
commences. After the unit test, the XP encourages the uses of pair programming
(two people work together at one computer workstation) as a key concept during
a coding activity. This provides a mechanism for real-time problem solving and
real-time quality assurance.
iv.
Testing
XP encourages all unit tests should be executed daily and acceptance tests or
customers tests should defined by the customer and executed to assess customer
visible functionality.
Diagram of extreme programming as explained to Beck .k, & Fowler, M (2004)
Pros
XP do not design for the future, but design for today. The whole idea is to write
simple code and change the design plan accordingly if the need arises in the future.
The software is visible to the customer at the end of every iteration because the tested
software can have small release at the end of each iteration.
XP starts with the simplest solution by allowing the extra functionality to be added
afterwards.
With the feedback from the system, flaws in the system can be detected in the earlier
stage and acceptance test can be conducted repeatedly to minimize the error during
the deliverables.
With the lesser risk through implementation of XP, the working software is delivered
with less money.
8 | Page
Cons
XP encourages pair programming. There may be a huge amount of duplication of
codes that clubs with unit test. As a result, it is going to take long time to run and
leave the database with lot of duplicate data.
XP is code centric rather than design centric development. The lack of XP design
concept may not be serious for small programs. But, it can be problematic when
programs are larger than a few thousand lines of code or when many people are
associated with the project.
Issues
Requirements volatility
The continual change to requirement of the customer as the active member has made
the scope of the project can change and earlier work may need to be modified to
accommodate current needs. This cause the proponents to argue as that happen
regardless of the process that is applied and that XP provides mechanisms for
controlling scope creep.
9 | Page
Comparison
Comparison between different process models
(Ashwini Mujumdar,Gayatri Masiwal, P.M.Chawan, May-Jun 2012)
Model/Features
Waterfall
Requirement
Specifications
Beginning
Beginning
Frequently
changed
Cost
Low
Low
Very high
Resource Control
Yes
Yes
No
Simplicity
Simple
Intermediate
Complex
Risk Analysis
Only at beginning
Yes
Yes
User Involvement
Only at beginning
High
High
Flexibility
Rigid
Rigid
Highly flexible
Reusability
Limited
Component reuse
Today, waterfall model has been less practiced in the industry. However, the new process
model, called agile process model was become more and more popular with the advantages it
possess. Even the Toyota Company who was currently practicing Waterfall model in their
software development process also considering moving the process to the lean software
development, according to the survey make by the Henrik Knibery. They stated that there are
many problem faced with the implementation of waterfall model.
11 | P a g e
References
Ashwini Mujumdar,Gayatri Masiwal, P.M.Chawan, May-Jun 2012. Analysis of
various Software Process Models. International Journal of Engineering
Research and Applications (IJERA), 2(3), pp. 2015-2021.
Beck K., & Fowler, M. (2004). Planning extreme programming. Upper
saddle River, NJ; Addison-Wesley.
ComputerWorld, 2003. Component-Based Development: Why Hasn't the
Vision Met Reality? [Online]
Available at: http://www.computerworld.com/article/2579531/appdevelopment/component-based-development--why-hasn-t-the-vision-metreality-.html
[Accessed 1 2 2015].
John Brewer, Jera Design, 2001. Extreme Programming FAQ. [Online]
Available at: http://www.jera.com/techinfo/xpfaq.html
[Accessed 1 2 2015].
Kniberg, H., 2010. Crisp"s Blog. [Online]
Available at:
http://blog.crisp.se/2010/03/16/henrikkniberg/1268757660000
[Accessed 8 2 2015].
Pressman, R. S., 2010. Software Engineering: A practitioner's approach.
seventh ed. s.l.:McGraw-Hill.
Tutorialspoint, 2014. SDLC Waterfall Model. [Online]
Available at: http://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
[Accessed 3 2 2015].
Yuhong Tian, "Developing an open source software development process
model using grounded theory" (January 1, 2006). ETD collection for
University of Nebraska - Lincoln. Paper AAI3216341.
Available at: http://digitalcommons.unl.edu/dissertations/AAI3216341
12 | P a g e