Top-Rated Free Essay
Preview

Xp vs Sdlc

Best Essays
2284 Words
Grammar
Grammar
Plagiarism
Plagiarism
Writing
Writing
Score
Score
Xp vs Sdlc
Contents BACKGROUND 2 STANDARD SDLC METHODOLOGY 3 ADVANTAGES OF STANDARD SDLC METHODOLOGY 4 DISADVANTAGES OF STANDARD SDLC METHODOLOGY 4 AGILE (EXTREME PROGRAMMING (XP)) SDLC METHODOLOGY 4 EXTREME PROGRAMMING (XP) 5 ADVANTAGES OF EXTREME PROGRAMMING METHODOLOGY 6 DISADVANTAGES OF EXTREME PROGRAMMING METHODOLOGY 6 CONCLUSION AND RECOMMENDATION 7 Bibliography 8

BACKGROUND
The vogue of intensifying technological complexity of information systems as well as the need for reusable and predictable process methodologies have steered system developers to establish system development models. A system includes the software, documentation, hardware, middleware, installation procedures, and operational procedures (Scott, 2002). Systems Development Life Cycle also known as Software Development process refers to a framework required in the development of a software product. The systems development life cycle (SDLC) is a conceptual model that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed system (Techtarget, 2001). ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines the method of selecting, implementing and monitoring the life cycle for software. Since the emergence of the Information system development in the 1940s up to the 1960s, IS development was solely based on the developers’ individual knowledge. But the increase in demand for more complex systems ignited a software crisis that lead to need for a more organised and systematic approach to system development. In the 1960s, Accurately Defined Systems (ADS) and Time Automated Grid (TAG) were the early analysis techniques employed by system developers. They were not widely used because of their complexity and they were not well supported but they laid foundation for the subsequent system development methodologies. The Traditional Waterfall Model was the first SDLC Methodology introduced and since the emergence of SDLC in the early 1960s to date, all development models and all methodological approaches have incorporated elements of the standard SDLC in their content (Rama Mohan Reddy, et al., 2007). Since organizations differ substantially in the way they incorporate information systems into their business procedures and also the advancement in technology has caused so many different system development to be instituted. There are two types of SDLC methodology framework namely; * Linear Framework: This is a phased framework that requires one phased to be completed before the start of the other. * Iterative Framework: This is a repetitive framework often represented in a cyclic form.
These frameworks are not mutually exclusive, which means some of the SDLC methodologies combine the structure of the two frame works. There are so many SDLC out there right now but the list below are the most employed methodologies in the system development market today; * Waterfall Model: Linear framework * Prototyping Model: Iterative framework * Incremental Model: Iterative & Linear framework * Spiral Model: Linear & Iterative framework * Rapid Application Development (RAD): Iterative framework * Agile Methodologies: Iterative framework
Regardless of the Methodology, all development process follows six phases of system development. These phases are listed and explained below; * Requirements: At this phase, the components needed to develop the system will be investigated and acquired; this is known as requirement gathering or capturing. * Analysis: This step involves determining and understanding the functionalities and inter-relationships of all the entities that will make up the system and also the integration into various fields in an organisation. * Design: System design breaks the system down into logical subsystems (processes) and physical subsystems (computers and networks), decides how machines will communicate, and chooses the right technologies for the job, and so on (O’docherty 2005). * Testing: Brings all the components of the system together into a special testing environment, then checks for errors, bugs and interoperability. * Implementation: This phase involves coding (creation of software), constructing and populating the database, writing documentation and testing by programmers and end users (Hardcastle, 2011). In this phase, different subsystems are developed to interact to form the whole system. * Maintenance: After the system has been developed and implemented, it’s expected that different problems to detected in the system like bugs and errors therefore this phase involves treating this bugs or also making necessary updates to system if need for new features are required.
STANDARD SDLC METHODOLOGY
A standard SDLC methodology (e.g. Waterfall Model) is a linear and sequential approach and is widely used especially when developing legacy systems. This Model is often employed when all the requirements for the system is readily available at the initiation stage of the system development. It was the first SDLC methodology introduced and other subsequent has evolved from this methodology. In a standard SDLC approach, each stage is dependent on the completion of the preceding stage and it is also assumed that at the all the requirements needed to complete a functional system has been acquired at the beginning of the project and this makes it difficult to adapt to any change if any new requirement arises in the middle or the latter stage of the project. Therefore, if any need for change arises, a whole new project will be initiated in developing an entirely new system. This has caused new emerging company who business processes are susceptible to change has found it really difficult in apply this system development approach. They are generally predictive and not adaptive. The standard SDLC is still widely used by established organisations whose business processes rely on solely on legacy systems and also rely on the traditional structured programming languages and approach in developing information systems.

Figure [ 1 ] Waterfall Model [ (Royce, 1970) ]
ADVANTAGES OF STANDARD SDLC METHODOLOGY * Ideal for supporting less experienced project teams and project managers, or project teams whose composition fluctuates. * The orderly sequence of development steps and strict controls for ensuring the adequacy of documentation and design reviews helps ensure the quality, reliability, and maintainability of the developed software. * Progress of system development is measurable. * It conserves resources.
DISADVANTAGES OF STANDARD SDLC METHODOLOGY * Inflexible, slow, and expensive due to significant structure and taut controls. * Little room for use of iteration, which can reduce manageability if used. Depends upon early identification and specification of requirements, yet users may not be able to clearly define what they need early in the project. * Requirements variations, omitted system components, and unanticipated development needs are often revealed during design and coding. * Problems are often not discovered until system testing. * System performance cannot be tested until the system is almost fully coded, and under-capacity may be difficult to correct. * Difficult to react to changes. Changes to requirement that arises later in the life cycle are more costly and are thus discouraged. * Generate excessive documentation and keeping it updated as the project progresses is very time-consuming.
AGILE (EXTREME PROGRAMMING (XP)) SDLC METHODOLOGY
Agile SDLC is one of the new and emerging SDLC that can be used in an environment where the business requirements are very erratic. The present market today demands a company operating in a very competitive market must be able to adapt to change as soon as possible and must also in the process reduce the duration of its Time-To-Market (TTM). The emergence of the Object-Oriented System Development Approach has helped to improve the development of complex and volatile systems. The fast paced technological changes in our markets, the increased use of embedded software in devices and the ever increasing uncertainty in the market place makes it impossible for the customers to provide all the requirements at the beginning of the SDLC (Velagapudi, 2012). Agile is widely regarded for its adaptive attribute and it cost conserving feature. To implement agile methodology, one of these methodologies will have to be considered namely; Extreme programming (XP), Feature Driven Development (FDD), Lean Development, Dynamic System Development, Method (DSDM), Adaptive Software Development (ASD), Crystal and Scrum.
EXTREME PROGRAMMING (XP)
Extreme Programming (“XP”) is a new, lightweight approach to developing software. XP uses rapid feedback and high-bandwidth communication to maximize delivered value, via an on-site customer, a particular planning approach, and constant testing (Wake, 2000). System developers that employ extreme programming concentrate on short-term deliverables, such as delivering a new version of a system every 2 weeks. The conventional release schedule prevents long lags and gives customers the ability to ascertain and prioritize requirements throughout the development life cycle. There is only little literature on the formal aspects of the Extreme Programming process. This may hinder the implementation of Extreme Programming in organisations, since usually the development divisions will not have the time to study the original literature and look into the problems with Extreme Programming (Petersen, et al., 2004). The cost of change curve for XP is a flat curve, which is achieved by simple design, tests, and an attitude of constant refinement of the design. Compared to the standard SDLC the cost of testing every phase of the life cycle of the system development is cheaper.

Figure [ 2 ]Cost of Change for extreme programming

Figure [ 3 ] Global process flow of Extreme Programming [ (Wells, 1999) ]
The four core values of extreme programming methodology are includes; * It requires the development team to communicate on consistent basis, disperse information and discuss solutions to problems encountered in the course of the development process. * It requires the team to keep things simple. Either it 's from a process angle, technical angle or from a documentation point of view. An over complicated process or a technical architecture is only calling for problems (Shivprasad, 2009). * Regular feedback from end user helps us the development team monitor the project and make sure they comply with the end-user requirements. So regular feedbacks should be enabled from end user and testing team. * Courage enables developers to feel comfortable with refactoring their code when necessary. This means reviewing the existing system and modifying it so that future changes can be implemented more easily (Konovalov & Misslinger, 2006).
ADVANTAGES OF EXTREME PROGRAMMING METHODOLOGY * It speeds up the system development phases and detours process steps that add little or no value to the project. * It promotes reduced amount of formal culture and encourage concerted team approach. * It provides for smooth and consistent flow of knowledge sharing. * It incorporates frequent and rapid changes into the SDLC for product functionality and features (Velagapudi, 2012). * Engages the stakeholders continuously so that the new requirements are gathered faster and there is no scope for guess work by the teams (Velagapudi, 2012). * It saves cost, time and efforts by following iterative incremental work delivery and thereby identifying deviations early (Velagapudi, 2012). * It increases cohesion between the teams to facilitate a faster Time-To-Market (TTM).
DISADVANTAGES OF EXTREME PROGRAMMING METHODOLOGY * Extreme Programming involves pair programming. There may be a huge amount of replication 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. * Extreme Programming lays more emphasis on the coding than the design. The lack of Extreme P 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. * Programming pairs is costly * Test case construction is a difficult and specialized skill (Karlm, 2006)
CONCLUSION AND RECOMMENDATION
There is no SDLC methodology that can be referred to as the most appropriate; it all depends on the type of project been undergone. The standard SDLC methodology has been around since the beginning of Information System and it is still widely used by a many established enterprises. While Agile Methodologies are the newest SDLC approach, they have their benefits and also their flaws. The agile SDLC methodology will be most appropriate for developing a system for the company in question because of the erratic nature of its business requirement. The competitive nature of the downstream sector in Nigeria puts immense pressure on the company to adapt its business processes to change in the market. And the most appropriate methodology in this aspect is the agile methodology. In agile methodology, both the developer and the end-user act as a team and it allows the end-user have control over the development of the system.

Bibliography
Hardcastle, E., 2011. Business Information Systems. s.l.:Ventus publishing.
O 'Docherty, M., 2005. Object-Oriented Analysis and Design Understanding System development with UML 2.0. England: John Wiley & Sons Ltd.
Petersen, K., Stein, S., Khan, A. K. & Dielewicz, J., 2004. Process Model Extreme Programming. [Online]
Available at: http://salvin.jeancharles.free.fr/Documents/Projet%20-%20Boulot/Suede/Project%20Management/Process%20Model/eXtreme%20Programming.pdf
[Accessed 24 april 2012].
Pressman, R. S., 2001. Software Engineering: A Practitional Approach. s.l.:McGraw-Hill Companies Inc..
Rama Mohan Reddy, A., Govindarajuku, P. & Naldu, M. M., 2007. A Process Model for Software Architecture. Internal Jourrnal of Computer Science and Network Security, 7(4), pp. 272-280.
Royce, W. W., 1970. Managing the Development of Large Software Systems: Concepts and Techniques. Los Angeles, USA: Western Electronic Show and Convention (WesCon).
Scott, A., 2002. Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process. New York: John Wiley & Sons, Inc..
Shivprasad, K., 2009. Agile Development: Part I. [Online]
Available at: http://www.c-sharpcorner.com/uploadfile/shivprasadk/agile-development-part-i/
[Accessed 24 04 2012].
Techtarget, 2001. http://searchsoftwarequality.techtarget.com/definition/systems-development-life-cycle. [Online]
[Accessed April 2011].
Velagapudi, M., 2012. 10 Advantages of Agile SDLC. [Online]
Available at: http://blog.bootstraptoday.com/2012/02/09/10-advantages-of-agile-sdlc/
[Accessed 09 February 2012].
Wake, C. W., 2000. Extreme Programming Explored. [Online]
Available at: http://faculty.ksu.edu.sa/MubarakRashed/Books/Extreme.Programming.Explored.pdf
[Accessed 25 04 2012].
Wells, D., 1999. Homepage: Extreme Programming. [Online]
Available at: http://www.extremeprogramming.org/.
[Accessed 25 April 2012].

Bibliography: Hardcastle, E., 2011. Business Information Systems. s.l.:Ventus publishing. O 'Docherty, M., 2005. Object-Oriented Analysis and Design Understanding System development with UML 2.0. England: John Wiley & Sons Ltd. Petersen, K., Stein, S., Khan, A. K. & Dielewicz, J., 2004. Process Model Extreme Programming. [Online] Available at: http://salvin.jeancharles.free.fr/Documents/Projet%20-%20Boulot/Suede/Project%20Management/Process%20Model/eXtreme%20Programming.pdf Pressman, R. S., 2001. Software Engineering: A Practitional Approach. s.l.:McGraw-Hill Companies Inc.. Rama Mohan Reddy, A., Govindarajuku, P. & Naldu, M. M., 2007. A Process Model for Software Architecture. Internal Jourrnal of Computer Science and Network Security, 7(4), pp. 272-280. Royce, W. W., 1970. Managing the Development of Large Software Systems: Concepts and Techniques. Los Angeles, USA: Western Electronic Show and Convention (WesCon). Scott, A., 2002. Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process. New York: John Wiley & Sons, Inc.. Shivprasad, K., 2009. Agile Development: Part I. [Online] Available at: http://www.c-sharpcorner.com/uploadfile/shivprasadk/agile-development-part-i/ Techtarget, 2001. http://searchsoftwarequality.techtarget.com/definition/systems-development-life-cycle. [Online] [Accessed April 2011]. Velagapudi, M., 2012. 10 Advantages of Agile SDLC. [Online] Available at: http://blog.bootstraptoday.com/2012/02/09/10-advantages-of-agile-sdlc/ Wake, C. W., 2000. Extreme Programming Explored. [Online] Available at: http://faculty.ksu.edu.sa/MubarakRashed/Books/Extreme.Programming.Explored.pdf Wells, D., 1999. Homepage: Extreme Programming. [Online] Available at: http://www.extremeprogramming.org/.

You May Also Find These Documents Helpful

  • Better Essays

    Bsa/375 Ind Wk3

    • 1284 Words
    • 6 Pages

    . Idea Group Inc (IGI).Platt, M. (2002). Microsoft Architecture Overview. Retrieved August 24, 2009, fromhttp://msdn.microsoft.com/en-us/library/ms978007.aspxProcess Design (2008). Retrieved August 24, 2009, fromhttp://www.ips.invensys.com/en/products/processdesign/Pages/ProcessDesign-P002.aspx…

    • 1284 Words
    • 6 Pages
    Better Essays
  • Powerful Essays

    Artin, John M. “Integrating User Interface Design and Object-Oriented Development Through Task Analysis and Use Cases”. http://www.cutsys.com/CHI97/Artim.html…

    • 1472 Words
    • 6 Pages
    Powerful Essays
  • Powerful Essays

    Cis 210 Research Paper

    • 1323 Words
    • 6 Pages

    As part of my job, I must complete a 10-to-15 page paper that follows this project through the system development life cycle (SDLC). This assignment will require I to do the following:…

    • 1323 Words
    • 6 Pages
    Powerful Essays
  • Better Essays

    The process of information-gathering is crucial to the success of this project. A plan must be followed and executed flawlessly to make sure the requirements and specifications have been defined. “Without a formalized, organized approach to developing information systems software [we] might see a project fail due to premature development of the software before all the functional requirements are clearly defined and agreed upon.” (Shelley 2004) The IT Team will use the Systems Development Cycle or SDLC with the waterfall methodology. Through this method, the team will be able to understand the user requirements and efficiency of the current system in comparison to related industry technological standards. The SDLC method is a tried and true approach for developing applications for companies that want to upgrade their systems.…

    • 1264 Words
    • 6 Pages
    Better Essays
  • Good Essays

    Nt1310 Unit 1 Assignment 1

    • 1252 Words
    • 6 Pages

    Motivated by recognition of software development as fluid, unpredictable, and dynamic ● Three key principles ● Adaptive rather than predictive ● Emphasize people rather than roles ● Self-adaptive…

    • 1252 Words
    • 6 Pages
    Good Essays
  • Best Essays

    There are several Software Development Life Cycle methods that are availabel to utilize although, the Waterfall SDLC is the most desirable due to the simplicity and straight forward methods utilized and will be discussed in regards to topics in this paper. The benefits of this model type include departmentalization and manegerial control. A schedule can be set for each phase similarly to a how a factory system works from one step to the next in a proceeding manner until the product is complete. However, once in the testing phase it is difficult to revert back to make any additional changes. (SDLC Models., n.d.).…

    • 1383 Words
    • 5 Pages
    Best Essays
  • Best Essays

    4. Extreme Programming: According to Rouse (2008) Extreme Programming (XP) is a realistic approach to program development. (Rouse, 2008)…

    • 2758 Words
    • 12 Pages
    Best Essays
  • Satisfactory Essays

    BIS 220

    • 808 Words
    • 4 Pages

    With the advancements in technology we all are introduced to new or improved forms. There are times when advancing and learning of new technologies is a wonderful thing as long as one can also retain new information along with previously learned knowledge. In last week’s teachings we have learned new functions and capabilities as well as had a refresher course on the Microsoft PowerPoint program. Along with this informative we have also learned of the importance of the system development life cycle (SDLC) in regards to the planning, organizing, and implementing of information systems to include the project management of IT acquisitions, hardware and software selections.…

    • 808 Words
    • 4 Pages
    Satisfactory Essays
  • Better Essays

    Sdlc Value

    • 1412 Words
    • 6 Pages

    contain much iteration of analysis, design, and implementation activities (Satzinger, Jackson, & Burd, 2009, p. 67).…

    • 1412 Words
    • 6 Pages
    Better Essays
  • Good Essays

    Systems Development

    • 1125 Words
    • 5 Pages

    Wynekoop, J.L. and RUSSO, N.L. (1993) System Development Methodologies: Unanswered Questions and the Research Practice Gap, Retrieved March 12, 2008 from: www.itu.dk/iris29/IRIS29/3-4.pdf…

    • 1125 Words
    • 5 Pages
    Good Essays
  • Powerful Essays

    Outsourcing

    • 2746 Words
    • 11 Pages

    4. Roger S. Pressman, Software Engineering: A Practitioner 's Approach (McGraw Hill, New York, 2008), 5.…

    • 2746 Words
    • 11 Pages
    Powerful Essays
  • Powerful Essays

    [8]. J. Ivers and et. al. Documenting component and connector views with uml 2.0. Technical Report CMU/SEI-2004, School of Computer Science, Carnegie Mellon University, 2004.…

    • 1046 Words
    • 5 Pages
    Powerful Essays
  • Powerful Essays

    V Model vs Agile Methodology

    • 2703 Words
    • 11 Pages

    This document discusses in an interpretive way the commonly used Software Development Lifecycle Models and their implications to Software Project Management. Their application, advantages and disadvantages are discussed.…

    • 2703 Words
    • 11 Pages
    Powerful Essays
  • Satisfactory Essays

    Uml and Its Uses

    • 289 Words
    • 2 Pages

    Unified Modeling Language (UML) is a non-proprietary, third generation modeling and specification language. The use of UML is not only for software modeling. It can also be used for modeling hardware (engineering systems) and is used for business process modeling and organizational structure modeling. The UML is an open method used to specify, visualize, construct and document the artifacts of an object-oriented software-intensive system under development. The UML represents a compilation of best engineering practices which have proven to be successful in modeling large, complex systems, especially at the architectural level.…

    • 289 Words
    • 2 Pages
    Satisfactory Essays
  • Better Essays

    Unified Modeling Language

    • 1022 Words
    • 5 Pages

    UML is the combined work of James Rumbaugh, Ivar Jacobson and Grady Booch.Dr. James Rumbaugh is one of the leading software development methodologists in the world. Dr. Rumbaugh previous to the development of UML, worked on software methodology, tools, and concepts for more than 35 years. He was the chief developer of the Object Modeling Technique (OMT), a leading object-oriented analysis and design method that was a predecessor of UML. Grady Booch is recognized internationally for his innovative work on software architecture, software engineering and modeling. He worked with IBM Rational as it's Chief Scientist since 1981, and has published several hundred technical articles on software engineering and object-oriented design. Ivar Jacobson is a Swedish computer scientist. He thought of the need for blueprints in software development. While working for Ericsson he proposed and developed the use of software components, such as sequence diagrams, and invented use cases as a way to write down software requirements. He developed collaboration diagrams, and applied state transition diagrams to describe the message flow between…

    • 1022 Words
    • 5 Pages
    Better Essays