StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

Applying Agile Methodology to Object-Oriented Software Development - Coursework Example

Summary
The paper "Applying Agile Methodology to Object-Oriented Software Development" focuses on the critical analysis of applying Agile methodology to object-oriented software development. The need for skilled software engineers has been on the rise in the current context of the complexity of software development…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER98.2% of users find it useful

Extract of sample "Applying Agile Methodology to Object-Oriented Software Development"

Applying Agile Methodology to Object-Oriented Software Development Name: Unit: Course: Supervisor: Date of submission: Introduction The need for skilled software engineers has been on the rise in the current context of complexity of the software development. This has led to the shift from the phase based software development processes to the current methods that are aimed to tackle the development of quality softwares, one of the methodology is the Agile methodologies which have proved to be more viable in the object software development (Soria 2012, pp. 216). The Agile methodologies the origin to Japan. In Japan, agile was a process aimed at software process improvement (Miller 2001,p.1). The agile methodologies include the embrace of iterations in which small teams in conjunction with stakeholders work together to define the iterations requirements, they do so by defining the visual means, prototypes and proof of concepts which determine the problem to be solved (SERENA 2007, p.5). A software development process using the agile methodology thus entails initial planning, rapid repeat for the iteration stage and consolidation before the release to the customer (SERENA 2007, P.6). Agile methodologies According to Hnreif and OW (2009, p.8) agile methodologies are set of approaches for development of the softwares. The main methodologies applied in the agile include the XP, the agile modeling and the SCRUM. XP entails the coding of the customer specifications and subsequent testing of the codes while the agile modeling entails collection of principles values and practices that are aimed at streamlining documentation and modeling. The management role of the software is supported by SCRUM. One of the key characteristics of agile methodologies is the modularity which allows the development process to be divided into activities which are aimed at transforming the vision of to of having the software into a reality. The agile software development process goes through a cycle, which is the iteration, this characteristic is based on acknowledgement that before things are right there are evident wrongs which engineers learn from. Therefore, a short cycle has to repeated for many times before the fine software is developed. The agile methodologies are time bound in which each iteration is scheduled to be completed within given time, this entails rescheduling of activities if they cannot be completed within the given time. Another key feature of the agile methodologies is the parsimony in which minimum number of activities are deemed necessary to mitigate possible risks and give the engineers time to deliver the software against aggressive schedule which otherwise could lead to poor quality. The agile processes are incremental in nature, the development of the system entails partitioning nontrivial system, which can be developed parallel and at different rates (Miller 2001, pp.1-3). The agile methodologies ensure that quality software is developed through the employment of the cross-silo coordination, which ensures that the engineers visualise the project scope and the schedule and thus orchestrate the integration and the process of testing (SERENA 2007, p.10). The agile methodologies are based on four beneficial values. (a) The communication between the customers and the software developers. (b) The simple design that makes it easy for the customer and the developer to discuss requirements. (c) Feedback from customer and ensures continuous modification to suit the needs of the customer. (d) The quality that is realised by encouraging customers and the software engineers to have a feedback cycle (Hnreif & Ow 2009, p. 3). The Unified Process and OOAD The agile methodologies are based on the understanding that it is difficult to develop software that meets all the stakeholders’ needs. Therefore, coordination, communication and incremental processes are very important. Both the OOAD and the Unified process, the agile principles are applied. The agile principles entail the dividing of the processes into the inception in which visualization is done and estimates done, elaboration in which architectural designs are developed and major risks identified, the actual development which is based on working on the lower risks and finally testing and deploying the software (Dailey 2006, p.4). The OOAD is a method that captures the software development design process in a way that is easy to communicate, implement, review and evolve (Dailey 2006, p.4). The agile process allows the performance of the OOAD in a process of the software development. According to Dailey (5) the iterative characteristic of the agile is key to the OOAD, n the other hand the Unified Process has the component of the iterative, risk driven architecture-centric form the basis of the process. For instance, in the development of OOAD there is need to first think in terms of objects and assign responsibilities to the small teams that form the basis of the agile methodologies. Application of the agile methodologies to the object-oriented software development The agile software development is based on the familiarity with the basic concepts of the object orientation. The object oriented is strategy that is based on the understanding that a software system is developed by collection of reusable components that are the objects of the software. This entails the definition of the software components, the assigning of responsibility of each component, their collaboration and the requirement for the development process. The agile methodologies are iterative in nature, the basic processes include the (a) pre-iteration: this is the inception of the software development it is also called the planning process. At this process, the design of the software is developed based on the collaboration of the stakeholders involved and the approval is made. (b) Iteration planning: This entails the elaboration of the software development in which the development process is divided into components and the various teams assigned the responsibilities. (c) The other processes include the execution of the iteration, the wrap up of iteration and consolidation of the various processes, the post iteration. After that the software can be released to the customer, see the diagram below (SERENA 2007, p.5-6). Challenges of Agile methodologies The main aim of the agile is to ensure quick development of the working code that meet that needs of the customers. This means that it is very specific in nature. The specific orientation means that that the agile methodologies are not good for the green field engineering, they do not have documentation as they rely on customer feedback and hence very difficult for the maintenance. The other challenge is that the agile methodologies are depended on the involvement of the customer, which means that the success of the agile projects is limited to communication and cooperation of the customer. The agile methodologies work quality is based on skills inherent in the developers, which brings in the challenge of developing reusable softwares; they are accustomed to a specific user. The agile methodologies success is best realised in small teams which implies that big teams with large numbers of developers may not achieve success due to the coordination and communication challenges (Hnreif & Ow 2009, p.6). To avoid the challenges, the software engineers should ensure that there is close cooperation of the end users of the software. Documentation of the processes are very important in development of softwares, despite of the customer being integral to the process, I recommend the soft engineers to record the processes which will make it easy for the maintenance of the agile developed softwares. In cases where many people are involved, I recommend the adoption of alternative methods that can deliver quality with minimal communication and coordination. Conclusion The agile methodologies are based on communication between the customer and the developer. This ensures that a cycle of feedback is enhanced to ensure that the software suits the requirements put forward by the customer. The progress of development is thus dictated by the coordination between the software engineers’ team and the customer. This implies that skilled team members and the customer cooperation are integral if optimum results are to be achieved. It is through the cooperation that the agile methodologies are acclaimed to be the best when operating on strict timelines and budgets. References Daley, M. 2006. Software Architecture Design: OOAD in the Unified Process. Asian Institute of Technology, pp. 3-54. Hnreif, M. and Ow, S. 2009. View of agile methodologies in software development. International Journal of Research and Reviews in Applied Sciences, 1 (1), pp. 1-9. Miller, G. 2001. The Characteristics of Agile Software Processes. IEE, Computer Society, pp.1-3 SERENA. 2007. An Introduction to Agile Software Development. California: Serena Software, Inc., pp.1-11. Soria, A., Campo, M., Rodriguez, G. 2012. Improving Software Engineering Teaching by Introducing Agile Management. Argentine Symposium on Software Engineering 13, (1), p.215-230. Read More
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us