Thursday, March 11, 2010

The waterfall model is a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design (validation), Construction, Testing and maintenance. The unmodified "waterfall model". Progress flows from the top to the bottom, like a waterfall.
The waterfall development model has its origins in the manufacturing and construction industries; highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.

The
spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.

Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The term was coined in the year 2001 when the Agile Manifesto was formulated. Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.

Strengths and Weaknesses of the Models

1. Waterfall Model
• The dynamic flow or systematized flow of processes that are easily understood.
• There is a little chance if incorporating to changes once the work begins.
If changes are tried to be corrected it cause so much delays.

2. Spiral Method
• The model is realistic and can be understand most development teams
and customers.
• The model is risky and needs to have proper experience and expertise.

3. Agile
• In Agile projects, if the project runs to completion with no changes
then the business or the client will get projected returns.
• The model involves customer early that can cause constant requirements
and sometimes lead to product never completed.

Based on what I’ve searched and read from some authors of the different process models, it is clear that in software engineering various models are used in order to come up with a good project having excellent output that can be delivered to clients. It applies various stages to implement all the components needed to satisfy the requirements in order to obtain software. According to Scharch, there are several characteristics that can represent the Waterfall Model. He said, “Inherent in every phase of the Waterfall Model is testing. Testing is not a separate phase to be performed only after the product has been constructed; it is not to be performed only at the end of each phase. Instead...testing should proceed continuously throughout the software process." He’s right. Testing must be done in the overall process. It will always be present since it plays a major part. A software engineer cannot come up to have a good output if testing isn’t present. By testing, they would know what those things to be changed and improved are. With testing, verification and validation is a key point. According to him, verification deals with building the software right and validation deals with the right software. They are connected with each other. Spiral Model according to Barry Boehm, it is the first model that discuss iteration. It has the same steps with Waterfall process model. Its requirements and design are evolving as time goes by. Well this model is intended for large and complicated projects because it combines the feature of prototyping and waterfall process model. Thinking of a big project well this model will fit the requirements needed by the software engineer or computer scientist. Since it is intended for big projects then it will probably cost much. The Agile model according to Scott Ambler, is the collection of practices that are meant to be applied by software professionals on a day-to-day basis. The main concept of this model is that it is not a complete software process thus only focus on effective modeling and documentation. In this model, it explores critical issues such as the communication and documentation practices by just using simple tools to model. The best thing I like about Agile process model is that the project team emphasizes on sharing information and performing analysis, design and coding with a team rather than individual basis. It is good to know that within a team there is a good relationship with one another whether the project is large or a simple one.

Among the process models, I would prefer to use the Agile method when I’ll be dealing with a project. With Agile method, there is a disciplined project management process. The tasks are being break into small increments with minimal planning and don’t require a long term planning. This method will also help minimize overall risk, and let the project adapt to changes quickly. Using Agile method, higher quality projects may be produced. An agile project merely emphasizes sharing of information and performance analysis with the team at the same time designing and coding with a team. The best thing I liked about Agile method is that there is a reduced dependence within the group at the same time the flexibility is increased. There is a good communication with other another and eventually the project will be successful. Every members of the team had a brief discussion on what they might do for today and what are those achievements yesterday. With that, it’s easy for the team to adjust and solve problems that occurs. There is also a balanced flow of work since the task is divided according to his expertise. One could be good in documentation and observing providing input and strategic advice while the other one is skilled in programming coding. If the method is done successfully, then the team can produce good output and deliver good product to the clients as well.

References:

http://en.wikipedia.org/wiki/Agile_software_development
http://en.wikipedia.org/wiki/Spiral_model
http://en.wikipedia.org/wiki/Waterfall_model

0 Comments:

Post a Comment



 

Life's Achievement.. Copyright © 2010 Designed by Ipietoon Blogger Template Sponsored by Online Shop Vector by Artshare