The very first
system development models that had created and made the basis of the other
system development model’s framework is the Waterfall Model. The Waterfall
model is a sequential software development which can be seen as a flowing
steadily downwards by the development, like a water fall, that passes through
several phases. The Waterfall Model has a process that one should move to the
next phase only if the preceding phase or process is completed and perfected.
The developments of every phase in the waterfall model are as a consequence of
discrete, and there is no jumping back and forth or overlap between them. As
many professionals now in the present that see this approach as particularly
rigid, modifying the waterfall model has been made over the years and new
variants of the model have emerged. This Waterfall Model had been created
several decades ago by Royce on 1970. He was proposed as what is now popularly
called The Waterfall Model as an initial concept, and he made a statement that
the model he had created was flawed. Then his documentation was explored on how
the waterfall model could be developed into an Iterative Model, another method
of structured system development model. And it has a feedback from each phase
that influences the previous phases, which is similar to other system
development models used widely and highly regarded by many in the present. Kahit
na ang intensyon ni Royce sa kanyang ginawang Waterfall Model
ay pagbutihin, palawagin at i-improve into an Iterative Model, the Waterfall
Model is still widely use in the present because of its purely sequential
process. And the term Waterfall Model in software development structure has
always been refer to any approach to software creation which is seen as
inflexible and non-iterative. Even though the waterfall model has always been
attacked in many years for being too rigid and unrealistic when it comes in
meeting the needs of the customers quickly, but still the waterfall model is
still popular in the present at ang pagkakaroon ng teoritikal na basehan para
sa ibang prosesong modelo o process models dahil para ito ay ang pinakamalapit
na resembolo ng henerikong modelo para sa pagpapa-unlad ng pagbabago o
pagdevelop ng mga software. The waterfall model has followed the phases perfectly
in sequential order, namely, Requirements Specifications, System Design,
Implementation, Integration, Testing, Installation, and Maintenance. The
Requirement specification phase must capture the all possible requirements of
the system to be developed. These requirement gathering must be gathered from
the end user (who will be using the system) at the start of the software
development phase, but those requirements must have some set of functions and
constraints that the end user expects from the system. After gathering data,
the requirements are analyzed for their validity, and also studied for the
possibility of incorporating the requirements in the system to be developed.
Then the last is the creation of a document of requirement specification which
serves the purpose of guideline for the next phase. But some source stated that
System Conceptualization must be the first step in the process because it
refers to the consideration of all aspects of the targeted business function or
process, with the goals of determining how each of those aspects relates with
one another, and which aspects will be incorporated into the system, and the
extensive communication between the customer and the developer is essential. That
is why the first step is mainly the job of a system analyst because it is the
purpose of his profession in a team project of collecting and gathering
required data, and having an analysis on the collected data with the goal of
determining how these requirements will be accommodated in the system. And the first
process in the waterfall model is very crucial in the hands of the system
analyst and project manager because this is the foundation of the software
development, and for some instance that the system requirements they have
gathered are incorrect or mayroong pagkukulang at taliwas sa kagustuhan ng
kliyente, and they proceed in the next phase without completing or perfecting
the gathering and analysis of the system requirement, mayroon sigurong
mangyayaring hindi maganda sa pagsisimula ng software development at
mahahantong sa project failure ng isang team kasi importante sa waterfall model
ang pagperpekto sa isang phase bago simulan ang susunod na process para walang
aberya mangyayari sa project. In the System and Software Design, it is really
important in understanding the requirements of the end user and having an idea
on how should the end product looks like before starting the actual coding
phase. The first phase of requirements specifications are studied in the second
phase and a system design is prepared. System Design helps in defining the
overall system architecture, and specifying hardware and system requirements.
The specifications of system design must serve as an input for the next phase.
It is really necessary in identifying the details on how the system will be
constructed to perform necessary tasks after the requirements have been
collected and analyzed, and the System Design phase is focused on the data
requirements, and software and interface construction. The basis of the second
phase’s success depends on the completion and perfection of the first phase’s
requirements gathering and analysis because the design is mainly dependable on
how accurate and worthy the data gathered from the sources. Designing a system
maybe difficult if the gathered data is inaccurate in some reason that limited resources
or limited information with the system analyst’s lack of responsibility in
working his tasks. Next is the Implementation phase, the actual coding is
started here and the work is divided in modules or units after receiving the
system design documents. Ang system ay una munang dinedevelop sa isang maliliit
na programs na tinatawag na units, which are integrated in the next phase.
Every unit is developed and tested for their functionality and it is called
unit testing. The purpose of unit testing is to verify if the modules or units
meet their specification. This implementation phase can also be called
programming because this process is mainly worked by coding all those design
presented using any programming languages, and involves the creation of the
system software. All those requirements and systems specifications are all
translated into machine readable computer code from the System Design phase. In
the implementation phase or coding phase, there are lots of individuals must be
grouped in this process because of the complexity of the process that must be
worked out, but it depends on the system they are working with and the skills
of the programmer possess, and the programmer must always interact with the
designer to make their work complement each other because having
misunderstanding with their works may cause major disaster in the software development
and may also cause of wasting the important time they might use in creating and
implementing the desired design. After creating and implementing the designed
system, it is important to have some testing of the coded software to ensure
that the system created is working well, and detect some bugs and errors in the
programmed system because working a large system might encounter some technical
errors due to overlapping statements and functionalities in the program. In
Integration and System testing, it is first divided the system into units which
are developed and tested for their functions. After that, the units will be
integrated into a complete system during integration phase and have some
testing to check if all modules or units can coordinate each other, and the
system as a whole behaves as per the specification. After running a successful
testing of the software, it is finally delivered to the client. Testing has
generally focused on two areas, namely, internal efficiency and external
effectiveness. The goal of external effectiveness is to have verification on
the software if it is functioning according to the system design, and that it
is performing all the important functions or sub-functions. While the goal of
internal efficiency testing is to make sure that the program codes is
standardized, efficient, and well documented. Because of its iterative nature, internal
efficiency testing can be a labor intensive process. Then the last step of the
waterfall model is the maintenance phase, and the operations and maintenance
phase is the phase of the waterfall model which is virtually a never-ending
phase. Sa pangkalahatan, ang lahat ng mga problema na maaring makita sa paggawa
at pagdevelop ng system, ngunit hindi ito nakita sa panahonng development life
cycle, ay maari lamang malaman at makita pagkatapos nitong i-deploy at gamitin
ng mga customer kasi hindi lahat ng mga problema maaaring mangyari ay medaling
madetect habang pinaplano at ginagawa pa ito bilang isang proyekto. Kaya ang
mga isyung nauugnay sa isang system ay maari lamang masolusyunan kapag ito ay
pagkatapos maideploy ang system. The problems are not all come into picture
directly and easily but they arise from time to time and need to be solved as
fast as possible, that is why this process is called maintenance. Every system
that have created in any individual, establishments, companies, and organization,
there has always been a maintenance process in the software system they are
using because of the reason that there is no perfect software system that a man
had created in the technological age, and every devices, every software we are
using must have a maintenance in its lifetime. There are some advantages in
using the Waterfall Model in the software development, one of it is that the
work and control in the waterfall model has a clear compartmentalization
because it is easier to set schedule for everyone’s tasks to be completed
within a specific period of time since there is a compartmentalization. The
other advantage of the waterfall model is that if the work of the particular
phase has over after it was done working, it is the time to start for the next
phase of the model. Because of it, there is no overlapping of every phases or
the product does not need to have to go through different iterative steps. And
most of the managers are prefer to use the waterfall model in their software
project because it is the easiest model to implement due to its linear model,
and the managers are like to reduced in a large extent the cost of its resources
because the processes of the waterfall model are carried out in a linear
manner. This in turn helps the client or the organization in reducing the cost
of the project considerably. Then the last is the creation of documentation and
running a test happens at the end of each phase, which in turn, helps in
maintaining the quality of the project. If there is an advantage in using a
waterfall model in a particular system development, there are also some
disadvantages with the usage of that model. One of the disadvantages is the
time consuming of gathering in all the important requirement specifications and
the analysis of all the data, because it is very important to collect and
gather all the possible requirements in the process of requirement gathering
and analysis phase in order to properly design the system, but not all of the
time that the requirements are received at once due to some lack of cooperation
of some end users or customers. Sometimes the requirements that must need to
gather from the customer can be added to the list even after the end of the
process of requirement gathering and analysis phase that can affect the system
development process and the success of solving the negative aspects. And most
of the programmers or every individual who had an experienced in creating a
database design also experienced this kind of problem arising from not well
planned project and one of it is the problem in one phase are never solved
completely during the timeline of working that phase and it is a fact that many
problems regarding in that particular phase arise after the phase is signed off
and move to the next phase of the process because they only see the problem and
errors of the previous phase when there are some mismatch and flaws of the two
phases. And that results in badly structured system because not all of the
problems related to that phase are solved during the same phase and the other reason
is that the project is not partitioned in every phases in a flexible way
because of its linear manner. And as the reasons of the requirements of the end
users are only getting added to the list even if the requirement gathering and
analysis phase was finished, not all of the requirements are fulfilled and
being put into process, and this results in development of almost unusable
system. That is why some of the system development can experience the increase
of cost of resources because of the problem of some requirements are not
fulfilled of the finished project and they want to meet the added requirements
in the newer version of the system. There are so many criticisms that also
arises because many real projects in the present rarely follow the sequential
flow that the model proposes, and most of the beginning of the project is that
there is often a very great deal of uncertainty in their requirements and
goals, and it is then difficult for the client to identify those criteria on a
detailed level. And the waterfall model does not provide accommodation in this natural uncertainty very well. Using
the waterfall model in the development of the system can be a long, painstaking
process that does not give way in a working version of the system until late in
the process. But even though there are arises some or few disadvantages that
may experience in applying the waterfall model, it still to continue to be one
of the popularly and widely used software development approach in the business
and information technology industry in the world. This can be attributed to the
fact that many of the advantages in using the waterfall model can outweigh or
go beyond the disadvantages of it in certain kind of system projects. And the
waterfall model perfectly fit for a particular project that the team who
handled it does not have lots of experiences in creating a large system
development.
Another sytem
develoment model that had created by man to address nad modify the traditional
system develoment life cycle is the Prototype Model. The Prototype Model is the
development of the program that is not based on strict planning, but instead it
is based on the response of the end users. Because most of the traditional
system development life cycle are those type of development who have all
focused on the developers and not in the end users. The concept of prototyping
has its bases on the development by creating prototypes after prototypes until
the software created has been perfected. The Prototype Model is building slowly
from a simple concept of what is a program, and the software is updated and
tested little by little in a real time environment. The users have its
participation and able to test and improvethe software as what they are
created. There are different types of the Prototype Model of system develoment
life cycle. Each of the different types have their own advatages and
disadvantages but the protype model has its purpose in constantly changing
until it reaches their intendedend users and functions. There are mainly four
types of Prototype Models that is based on their development planning: The Patch
Up Prototype, Non-Operational Prototype, First of a Series Prototype, and
Selected Features Prototype. The first type of the Prototype Model is the Patch
Up Prototype, it is the of Prototype Model that encourages cooperationin
different developers. Every developers will only work on a specific part of a
program, and after each of the developers has done their part, the integration
of the program will takes place and each of the program will combine resulting
in a whole new program. Patch Up Protoype is a fast development model because everyone
is working on a different field, and if every developers are highly skilled,
there is no need in overlapping in a specific function of work. The Patch Up
Prototype as the type of software development model that only need a strong and
experoenced project manager who can monitor the development of the program. The
project manager only controls the work flow of the developers and ensure there
is no overlapping of functions happende among different developers. The second
type of Prototype Model is the Non-Operational Prototype. The Non-Operational
Prototype Model is only used on a certain part of the program that should be
updated. The specific part of the program will work ir could be tested as
planned, even though it is not a fully operational program. The prototype or
the main sotware is not affected by updates and modifications as the dummy
program is applied in the application. This non-operational prototype is only
implemented when certain problems in a specific part of the program arises, and
because the software could be in a prototype mode for a very long time,
updating and maintenace ofspecific parts isvery important. Then the third type
is the First os a Series Prototype, this is also known as beta version and
could be very efficient if it is properly launched. But even though it is fully
functional software, the only aim of it being in a beta version is to gather
feedbacks, and suggestions. This kind of prototype model could be very
successful if it is properly done. And the last and fourth type of prototype
model is the Selected Features Prototype. It is also a beta version of
releasing a software but in another form. This selected features prototype is
only introduced in the public the only selected features or limited access to
some imortant tools in the program.
The another type
of system development model is the Exploratory model, this used occasionaly to
design and develop a computer system and this is an experimental,
research-based system develoment model. This is the process that involved in
the Exploratory model:
·
The
work is determined at starting point. It as gathered together all of the
information in attempt to get an idea on what will be the new system looks
like, and how it can be done.
·
A
rudimentary first-generation system is put together, based on the idea that has
been formulated in the previous step.
·
The
first-generation system is need to test to see how it performs,what will be
updates need to do, and what it can and cannot perform.
·
A
second-generation system is created from the first system, based on the
improvements planned in the previous step.
·
The
second-generation system is tested. There have an evaluation of the
performance,and the possibility of improvements determined.
·
Then
the process is repeated as many time as necessary to get the satisfaction of
the end users,or until it is decided the the project is unusable.
·
Then
the last is the routine maintenace is carried out on a long-term basis to avoid
large-scale failures and to minimize downtime.
References:
http://it.toolbox.com/wiki/index.php/Prototyping_Model
http://www.learn.geekinterview.com/it/sdlc/prototype-model.html
http://www.buzzle.com/editorials/1-5-2005-63768.asp
http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysdev.pdf
No comments:
Post a Comment