Personal Blog : My OUM(Open University Malaysia) journey starting from Jan 2011 till graduate.
Everyone can copy the contents in this blog and please leave some credit or a backlink to me... -Thank You-

Sunday, April 22, 2012

CBSE4103 SOFTWARE ENGINEERING


CBSE4103 SOFTWARE ENGINEERING 
Agile process model
1.0       INTRODUCTION
Today, a variety of applications process model used in developing application systems. Among them is the Waterfall model, V-shape model, and Rapid Application Development (RAD). The most recent is the Agile process model. According to Scott W.Ambler, "Agile Modeling (AM) is a practice-based Methodology for effective modeling and documentation of software-based systems" (Scott W.Ambler, 2011). Based on the statement  Scott W.Ambler, Agile process is an effective method is used when we build the model and documentation of an application system. While Steve Hayes defines the Agile process as "Agile Methodologies are just as disciplined as traditional Methodologies, and give managers more control and Customers over a project, rather than less" (Steve Hayes, 2003). In general, it also focuses on the methods used in the construction of an application system. I will write the Agile process that includes characteristics, approaches, strengths and drawbacks. In this task will also be mentioned the difference between the Agile model and Waterfall models.
2.0       Characteristics and Approaches
            There are several characteristics and approaches that lead to Agile processes are widely used. Well suited to its name, it communicates to us that there are features in this process is very unique. paragraphs below will explain the features and approaches used in Agile process..
2.1       Modularity
Modularity is a process of dividing the activity of the application development component to the smaller ones. This approach provides a more focused solution for software development modules. In other words, each module development has been broken is not independent of each other.
2.2       Iterative
Agile process method is a collaborative and iterative approach to software development that can produce high-quality software in a cost effective. Iteratively is a short cycle to be completed in one process. Unlike traditional application development, agile development is a flexible, tested repeatedly and expedite the delivery of application development functions.
2.3       Time-Bound
The iteration process enables software development carried out on time. For example, if we have a large activity was divided into five small activity. The fourth activity can be continued even if the third activity to be having problems.
2.4       Parsimony
When the software development process is broken down into groups of activities, it can indirectly reduce the risk of error and thus can reach your target faster. In this way, developers can complete the system in a faster time.
2.5       Adaptive
In software development, each process has a risk of error that can not be avoided. These conditions can cause delays and alternative arrangements are needed to overcome unexpected problems. New approach activities to overcome this unwelcome should be implemented so that the main goal of software development is achieved.
2.6       Incremental
As we know, Agile process does not build a system as a whole. Therefore, each activity has a time and a different burden. At the same time each activity was also tested separately. Upon completion of testing, this successful process will be integrated into the system separately one by one. This approach does not interfere with each separate activity carried out simultaneously.
2.7       People-Oriented
It is ideal for developing skills. This is because each person is in small batches and with different expertise. The longer they are involved with development, then their skills will increase. Indirectly, any change in the future to be made on the system will become easier.



2.8       Collaborative
Agile processes foster cooperation among the team. Cooperation among members of the team known as collaboration. In the construction of a software system, communication is very important. When large projects are broken down into several small groups, then to combine the understanding of each group into a project is very important. This approach is the integration between the small activities and it is different from our everyday communication.
3.0       Strengths and Drawbacks
In the process of building software, of course there are strengths and weaknesses in terms of the techniques used. Agile process well suited to small groups who want to create software in a short time.
3.1              Strengths
According to Scott Sehlhorst, he stated "Agile's Biggest Strength is Agile's Biggest Weakness" (Scott Sehlhorst, 2006). This statement is basically because Agile processes are designed to help the group to solve the problem by changing the direction of the system. Thus, if the proposed solutions have to change the direction of the system, with the indirect implementation of it has changed the whole project. This situation has resulted in some disturbing results that built the system output.
Another strength is the excellent environment for skill building. For example, each person in the group that was formed with the opportunity to learn something new. They can also exchange ideas and skills on the job. Indirectly, the project undertaken in a short time can increase the skills of individuals in the group.
Agile methods are usually done in small steps. Each step accompanied by unit tests. It is also simple in design that is easily understood by everyone in the group that was formed. If one of the activities carried out are not perfect, it will affect the output results for the activity. However, how to overcome them are discussed in the characteristics of Agile processes. These characteristics for the strength of the method of Agile process itself.

3.2       Drawbacks
“Agile has formal rules and structure, though they are quite a bit different from those of other development approaches. Agile is iterative, it is adaptive and it is supported by some outstanding tools and techniques, like burn-down charts, product backlogs, user stories and stand-ups. Most important, Agile is not anarchy” (cedarpointconsulting, 2011). Unfortunately, very few who really understand the true concept of Agile. This weakness brought about by the concept of Agile itself. For example, in many cases, software developers, development managers and consultants consider Agile processes are not flexible and difficult.
Agile is weak on architectural planning. When we want to build great software, the architecture and the platform is done separately. As such, architecture and real platform can not be ascertained more clearly when the last big project is broken into small groups. When the platform is not identified in a uniform, then there would be problems when we want an integrated system in the final stages of construction.
As we know, Agile is a short-term plans. As such it has the disadvantage of long-term plan. Repetitive work often happens when we want to incorporate some project components that interact. Normally there is no dependence between several projects. However, the overhaul of the code written by programmers very complicated when it is not parallel to each other. The most significant weakness in this case is the same work over and over again to correct the code.

Agile concepts are not suitable for large scale projects involving a large organization. It becomes extremely difficult to coordinate work when the number of employees increased. For example, a developer is finalizing the design of programming code which is built by other partners in the same group. It is easy for them to interact if something is not sure about the design. Communication will be difficult if they work in different groups with many other workers.

4.0              Comparison between Agile model and Waterfall model.

In a software project, the comparison between the various methods is very important when you want to start the project. Waterfall model is among the widely used at present. The table 1.0 below describes the comparison between waterfall model and agile model.

Agile Model
Waterfall Model
  • Can accept the changes in each stage. Easily constructed design amended if there are any amendments or additions on the system.
  • Can not be reversed. After the system was completed, it can not be amended again in terms of both design and coding. If you want to make changes, it will involve the entire system.
  • The system is tested at every stage in each activity. As such, any programming errors continue to only be solved in such activities before the integration.
  • Software products produced will be fully tested when the entire system is completed. Any bugs or errors are detected in this will involve changing the whole system. In this case, the risk of substantial errors can occur when changes are made throughout the system.
  • Agile features such as modular helps the customers' needs. This is because if an activity was completed, the user can be satisfied with a part that has been successful even if the whole system was not fully constructed.
  • Compared waterfall model, there was only one main results of the last development. If the main results have experienced problems and delays in the specified time period, it will cause dissatisfaction among customers.
  • Agile methods allow users to make changes in a given system specification. This is not a problem because it is built with flexibility.
  • Waterfall model does not allow the design of software systems are altered during the construction stage. In the event of amendment of the whole project had to be restarted. Indirectly, it was a waste of money, time and energy workers.

Table 1.0

5.0              Implementation

In general, if we want to build a robust software, some aspects should be considered before it is implemented.  Among the aspects of the specification, design, Implementation and testing the software system. In this case, successful Agile methods comply with these requirements simultaneously and effectively in a short time. For example, in Agile methods, each specification fully completed the program in each activity. Unlike other software construction methods such as waterfall model, the specification is written across the entire application system.

In terms of system design, the Agile methodology helps the designer to change the layout or output even if the system has not been completed. This advantage can be used to accommodate customers whenever they wanted to change the structure of the system design.

The most important and critical in software development is the acceptance tests and unit tests. The most important and critical in software development is the acceptance tests and unit tests. Acceptance tests are tests specified by the customer. For example, if customers want the system to run concurrently in one module, then the customer will test the system yourself with developers to ensure that the results are as desired.  While the unit tests only involving a developer and do before and after the coding is written. Unit tests are also run during the time of writing the software coding.

6.0              Conclusion

In conclusion, Agile methodology is more on software development and website design. Whereas Waterfall models always suitable for a big projects consist of design, implementation and deployment. However, if we intergrate and manipulate both model, we can get the best choice and solution for customer satisfaction and the final implementation.
  

7.0       REFERENCES
http://agilemodeling.com
http://agileintro.wordpress.com/2008/01/04/waterfall-vs-agile-methodology
http://www.johngoodpasture.com/2010/08/10-agile-strengths.html
http://www.cedarpointconsulting.com/deliver/articles/before-making-the-leap-to-agile
http://www.serena.com/docs/repository/solutions/intro-to-agile-devel.pdf
http://agileintro.wordpress.com/2008/01/04/waterfall-vs-agile-methodology
http://csdl.ics.hawaii.edu/~johnson/413f06/13.ProcessModels.pdf
http://www.builderau.com.au/program/development/soa/An-introduction-to-agile-methods/0,339024626,320274125,00.htm
http://tynerblain.com/blog/2006/05/03/agiles-biggest-strength-is-agiles-biggest-weakness

No comments:

Post a Comment

Table Grade