Monday, September 16, 2019
Comparison between five process models of software engineering Essay
IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org A Comparison Between Five Models Of Software Engineering Nabil Mohammed Ali Munassar1 and A. Govardhan2 1 Ph.D Student of Computer Science & Engineering Jawahrlal Nehru Technological University Kuktapally, Hyderabad- 500 085, Andhra Pradesh, India 2 Professor of Computer Science & Engineering Principal JNTUH of Engineering College, Jagityal, Karimnagar (Dt), A.P., India Abstract This research deals with a vital and important issue in computer world. It is concerned with the software management processes that examine the area of software development through theà development models, which are known as software developmentà life cycle. It represents five of the development models namely, waterfall, Iteration, V-shaped, spiral and Extreme programming. These models have advantages and disadvantages as well. Therefore, the main objective of this research is to represent different models of software development and make aà comparison between them to show the features and defects of each model. Keywords: Software Management Processes, Softwareà Development, Development Models, Software Development Lifeà Cycle, Comparison between five models of Software Engineering. increased recently which results in the difficulty ofà enumerating such companies. During the previous fourà decades, software has been developed from a tool used forà analyzing information or solving a problem to a product inà itself. However, the early programming stages haveà created a number of problems turning software anà obstacle to software development particularly thoseà relying on computers. Software consists of documents andà programs that contain a collection that has beenà established to be a part of software engineeringà procedures. Moreover, the aim of software engineering isà to create a suitable work that construct programs of highà quality. 1. Introduction Computer Science No one can deny the importance of computer in our life,à especially during the present time. In fact, computer hasà become indispensible in todayââ¬â¢s life as it is used in manyà fields of life such as industry, medicine, commerce,à education and even agriculture. It has become anà important element in the industry and technology ofà advanced as well as developing countries. Now a days,à organizations become more dependent on computer inà their works as a result of computer technology. Computerà is considered a time- saving device and its progress helpsà in executing complex, long, repeated processes in a veryà short time with a high speed. In addition to usingà computer for work, people use it for fun andà entertainment. Noticeably, the number of companies thatproduce software programs for the purpose of facilitatingà works of offices, administrations, banks, etc, has Theories Computer Function Client Problems The Software engineering Tools and techniques to solve problems Fig. 1 Explanation of software engineering conception. IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org 95 2. Software Process Models concern. A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective as: The pure waterfall lifecycle consists of several nonoverlapping stages, as shown in the following figure. The model begins with establishing system requirements andà software requirements and continues with architecturalà design, detailed design, coding, testing, and maintenance. The waterfall model serves as a baseline for many otherà lifecycle models. 1. 2. 3. 4. Specification. Design. Validation. Evolution. General Software Process Models are 1. Waterfall model: Separate and distinct phases of specification and development. 2. Prototype model. 3. Rapid application development model (RAD). 4. Evolutionary development: Specification, development and validation are interleaved. 5. Incremental model. 6. Iterative model. 7. Spiral model. 8. Component-based software engineering : The system is assembled from existing components. System Requirements Software Requirements Architectural Design Detailed Design Coding There are many variants of these models e.g. formal development where a waterfall-like process is used, but the specification is formal that is refined through several stages to an implementable design[1]. Testing Maintenance Fig. 2 Waterfall Model[4]. 3. Five Models A Programming process model is an abstract representation to describe the process from a particular perspective. There are numbers of general models for software processes, like: Waterfall model, Evolutionary development, Formal systems development and Reusebased development, etc. This research will view the following five models : 1. Waterfall model. 2. Iteration model. 3. V-shaped model. 4. Spiral model. 5. Extreme model. These models are chosen because their features correspond to most software development programs. Requirements Definition System and Software Design Implementation and Unit Testing Integration and System Testing 3.1 The Waterfall Model The waterfall model is the classical model of softwareà engineering. This model is one of the oldest models and isà widely used in government projects and in many majorà companies. As this model emphasizes planning in earlyà stages, it ensures design flaws before they develop. Inà addition, its intensive document and planning make ità work well for projects in which quality control is a major Operation and Maintenance Fig. 3 Waterfall model[2]. The following list details the steps for using the waterfall IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org model: 1 System requirements: Establishes the componentsà for building the system, including the hardwareà requirements, software tools, and other necessaryà components. Examples include decisions onà hardware, such as plug-in boards (number ofà channels, acquisition speed, and so on), and decisionsà on external pieces of software, such as databases orà libraries. 2 3 Software requirements: Establishes the expectationsà for software functionality and identifies which systemà requirements the software affects. Requirementsà analysis includes determining interaction needed withà other applications and databases, performanceà requirements, user interface requirements, and so on. Architectural design: Determines the softwareà framework of a system to meet the specificà requirements. This design defines the majorà components and the interaction of those components,à but it does not define the structure of eachà component. The external interfaces and tools used inà the project can be determined by the designer. 4 Detailed design: Examines the software componentsà defined in the architectural design stage and producesà a specification for how each component isà implemented. 5 Coding: Implements specification. 6 7 the detailed starting coding. There is no overlap between stages. Inà real-world development, however, one can discover issuesà during the design or coding stages that point out errors or gaps in the requirements. The waterfall method does not prohibit returning to anà earlier phase, for example, returning from the design phaseà to the requirements phase. However, this involves costlyà rework. Each completed phase requires formal review andà extensive documentation development. Thus, oversightsà made in the requirements phase are expensive to correctà later. Because the actual development comes late in the process,à one does not see results for a long time. This delay can beà disconcerting to management and customers. Many peopleà also think that the amount of documentation is excessiveà and inflexible. Although the waterfall model hasà instructive because it emphasizesà project development. Even if oneà model, he must consider each ofà relationship to his own project [4]. ï⠷ 1. 2. 3. design Testing: Determines whether the software meets theà specified requirements and finds any errors present inà the code. Maintenance: Addresses problems and enhancementà requests after the software releases. In some organizations, a change control board maintainsà the quality of the product by reviewing each change madeà in the maintenance stage. Consider applying the fullà waterfall development cycle model when correctingà problems or implementing these enhancement requests. In each stage, documents that explain the objectives andà describe the requirements for that phase are created. At the end of each stage, a review to determine whether theà project can proceed to the next stage is held. Yourà prototyping can also be incorporated into any stage fromà the architectural design and after. Many people believe that this model cannot be applied toà all situations. For example, with the pure waterfall model,à the requirements must be stated before beginning theà design, and the complete design must be stated before 96 4. 5. 6. ï⠷ 1. 2. 4. 5. 6. 7. ï⠷ its weaknesses, it isà important stages ofà does not apply thisà these stages and its Advantages : Easy to understand and implement. Widely used and known (in theory!). Reinforces good habits: define-before- design, design-before-code. Identifies deliverables and milestones. Document driven, URD, SRD, â⬠¦ etc. Published documentation standards, e.g. PSS-05. Works well on mature products and weak teams. Disadvantages : Idealized, doesnââ¬â¢t match reality well. Doesnââ¬â¢t reflect iterative nature of exploratory development. 3. Unrealistic to expect accurate requirements so early in project. Software is delivered late in project, delays discovery of serious errors. Difficult to integrate risk management. Difficult and expensive to make changes to documents, â⬠swimming upstreamâ⬠. Significant administrative overhead, costly for small teams and projects [6]. Pure Waterfall This is the classical system development model. It consists of discontinuous phases: 1. 2. 3. Concept. Requirements. Architectural design. IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org 4. 5. 6. Detailed design. Coding and development. Testing and implementation. Table 1: Strengths & Weaknesses of Pure Waterfall Strengths ï⠷ ï⠷ Minimizes planningà overhead since it can be done up front.à Structure minimizesà wasted effort, so ità works well forà technically weak orà inexperienced staff. Risk reduction spirals can be added to the top of theà waterfall to reduce risks prior to the waterfall phases. The waterfall can be further modified using options such asà prototyping, JADs or CRC sessions or other methods ofà requirements gathering done in overlapping phases [5]. Weaknesses 3.2 Iterative Development ï⠷ Inflexible ï⠷ Only the final phaseà produces a nondocumentationà deliverable. ï⠷ Backing up to address mistakes is difficult. The problems with the Waterfall Model created a demandà for a new method of developing systems which couldà provide faster results, require less up-front information,à and offer greater flexibility. With Iterative Development,à the project is divided into small parts. This allows theà development team to demonstrate results earlier on in theà process and obtain valuable feedback from system users. Often, each iteration is actually a mini-Waterfall processà with the feedback from one phase providing vitalà information for the design of the next phase. In a variation of this model, the software products, which are producedà at the end of each step (or series of steps), can go intoà production immediately as incremental releases. ï⠷ Pure Waterfall Summary The pure waterfall model performs well for products withà clearly understood requirements or when working withà well understood technical tools, architectures andà infrastructures. Its weaknesses frequently make ità inadvisable when rapid development is needed. In thoseà cases, modified models may be more effective. ï⠷ 97 Modified Waterfall The modified waterfall uses the same phases as the pureà waterfall, but is not based on a discontinuous basis. Thisà enables the phases to overlap when needed. The pureà waterfall can also split into subprojects at an appropriateà phase (such as after the architectural design or detailed design). Table 2: Strengths & Weaknesses of Modified Waterfall Strengths ï⠷ ï⠷ ï⠷ ï⠷ More flexible than theà pure waterfall model. If there is personnelà continuity between theà phases, documentationà can be substantially reduced.à Implementation of easyà areas does not need toà wait for the hard ones. Weaknesses ï⠷ ï⠷ ï⠷ Modified Waterfall Summary Milestones are moreà ambiguous than theà pure waterfall. Activities performedà in parallel are subjectà to miscommunicationà and mistakenà assumptions. Unforeseenà interdependencies canà create problems. Fig. 4 Iterative Development. 3.3 V-Shaped Model Just like the waterfall model, the V-Shaped life cycle is aà sequential path of execution of processes. Each phaseà must be completed before the next phase begins. Testingà is emphasized in this model more than the waterfallà model. The testing procedures are developed early in theà life cycle before any coding is done, during each of theà phases preceding implementation. Requirements begin theà life cycle model just like the waterfall model. Before IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org development is started, a system test plan is created. The test plan focuses on meeting the functionality specified in requirements gathering. 98 Requirements The high-level design phase focuses on systemà architecture and design. An integration test plan is created in this phase in order to test the pieces of the softwareà systems ability to work together. However, the low-levelà design phase lies where the actual software componentsà are designed, and unit tests are created in this phase asà well. System Test Planning High Level Design Low Level Design The implementation phase is, again, where all codingà takes place. Once coding is complete, the path ofà execution continues up the right side of the V where theà test plans developed earlier are now put to use. ï⠷ Simple and easy to use. Each phase has specific deliverables. Higher chance of success over the waterfall modelà due to the early development of test plans during theà life cycle. Works well for small projects where requirements areà easily understood. Unit Test Planning Integration Testing Unit Testing Implementation Advantages 1. 2. 3. Integration Test Planning System Testing 4. Fig. 6 V-Shaped Life Cycle Model[7]. 3.4 Spiral Model The spiral model is similar to the incremental model, withà more emphases placed on risk analysis. The spiral modelà has four phases: Planning, Risk Analysis, Engineering andà Evaluation. A software project repeatedly passes throughà these phases in iterations (called Spirals in thisà model). The baseline spiral, starting in the planningà phase, requirements are gathered and risk isà assessed. Each subsequent spiral builds on the baselineà spiral. Requirements are gathered during the planningà phase. In the risk analysis phase, a process is undertakenà to identify risk and alternate solutions. A prototype isà produced at the end of the risk analysis phase. Software isà produced in the engineering phase, along with testing atà the end of the phase. The evaluation phase allows theà customer to evaluate the output of the project to dateà before the project continues to the next spiral. In the spiral model, the angular component representsà progress, and the radius of the spiral represents cost. Fig. 5 V-Model [3] ï⠷ Disadvantages 1. 2. Very rigid like the waterfall model. Little flexibility and adjusting scope is difficult andà expensive.à Software is developed during the implementation phase,à so no early prototypes of the software are produced. This Model does not provide a clear path for problemsà found during testing phases [7]. 3. 4. ï⠷ 1. 2. 3. Advantages High amount of risk analysis. Good for large and mission-critical projects. Software is produced early in the software life cycle. ï⠷ 1. 2. 3. Disadvantages Can be a costly model to use. Risk analysis requires highly specific expertise. Projectââ¬â¢s success is highly dependent on the riskà analysis phase. Doesnââ¬â¢t work well for smaller projects [7]. 4. IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org ï⠷ 1. Spiral model sectors Objective setting :Specific objectives for the phase are identified. 2. Risk assessment and reduction: Risks are assessed and activities are put in place to reduce the key risks. 3. Development and validation: A development model for the system is chosen which can be any of the general models. 4. Planning: The project is reviewed and the next phase of the spiral is planned [1]. 99 under which the system would produce win-lose or loselose outcomes for some stakeholders. 3. Identify and Evaluate Alternatives: Solicità suggestions from stakeholders, evaluate them with respectà to stakeholdersââ¬â¢ win conditions, synthesize and negotiateà candidate win-win alternatives, analyze, assess, resolveà win-lose or lose-lose risks, record commitments and areasà to be left flexible in the projectââ¬â¢s design record and lifeà cycle plans. 4. Cycle through the Spiral: Elaborate the win conditionsà evaluate and screen alternatives, resolve risks, accumulateà appropriate commitments, and develop and executeà downstream plans [8]. 3.5 Extreme Programming An approach to development, based on the developmentà and delivery of very small increments of functionality. Ità relies on constant code improvement, user involvement inà the development team and pair wise programming . It canà be difficult to keep the interest of customers who areà involved in the process. Team members may be unsuitedà to the intense involvement that characterizes agileà methods. Prioritizing changes can be difficult where thereà are multiple stakeholders. Maintaining simplicity requiresà extra work. Contracts may be a problem as with otherà approaches to iterative development. Fig. 7 Spiral Model of the Software Process[1]. ï⠷ WinWin Spiral Model The original spiral model [Boehm 88] began each cycle ofà the spiral by performing the next level of elaboration ofà the prospective systemââ¬â¢s objectives, constraints andà alternatives. A primary difficulty in applying the spiralà model has been the lack of explicit process guidance inà determining these objectives, constraints, and alternatives. The Win-Win Spiral Model [Boehm 94] uses the theoryà W (win-win) approach [Boehm 89b] to converge on aà systemââ¬â¢s next-level objectives, constraints, andà alternatives. This Theory W approach involves identifyingà the systemââ¬â¢s stakeholders and their win conditions, andà using negotiation processes to determine a mutuallyà satisfactory set of objectives, constraints, and alternatives for the stakeholders. In particular, as illustrated in theà figure, the nine-step Theory W process translates into theà following spiral model extensions: 1. Determine Objectives: Identify the system life-cycleà stakeholders and their win conditions and establish initialà system boundaries and external interfaces. 2. Determine Constraints: Determine the conditions Fig. 8 The XP Release Cycle ï⠷ Extreme Programming Practices Incremental planning: Requirements are recorded on Story Cards and the Stories to be included in a release are determined by the time available and their relative priority. The developers break these stories into development ââ¬Å"Tasksâ⬠. Small Releases: The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release. IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org Simple Design: Enough design is carried out to meet theà current requirements and no more. Test first development: An automated unit testà framework is used to write tests for a new piece ofà functionality before functionality itself is implemented.à Refactoring: All developers are expected to re-factor theà code continuously as soon as possible code improvementsà are found. This keeps the code simple and maintainable.à Pair Programming: Developers work in pairs, checkingà each otherââ¬â¢s work and providing support to do a good job.à Collective Ownership: The pairs of developers work onà all areas of the system, so that no islands of expertiseà develop and all the developers own all the code. Anyoneà can change anything. Continuous Integration: As soon as work on a task isà complete, it is integrated into the whole system. After anyà such integration, all the unit tests in the system must pass. Sustainable pace: Large amounts of over-time are notà considered acceptable as the net effect is often to reduceà code quality and medium term productivity.à On-site Customer: A representative of the end-user of theà system (the Customer) should be available full time for theà use of the XP team. In an extreme programming process,à the customer is a member of the development team and isà responsible for bringing system requirements to the teamà for implementation. ï⠷ 1. 2. 3. 4. 5. XP and agile principles Incremental development is supported through small,à frequent system releases. Customer involvement means full-time customerà engagement with the team. People not process through pair programming,à collective ownership and a process that avoids long working hours. Change supported through regular system releases.à Maintaining simplicity through constant refactoring ofà code [1]. ï⠷ 1. 2. 3. 4. 5. Advantages Lightweight methods suit small-medium size projects. Produces good team cohesion. Emphasises final product. Iterative. Test based approach to requirements and quality assurance. ï⠷ 1. Disadvantages Difficult to scale up to large projects where documentation is essential. Needs experience and skill if not to degenerate into code-and-fix. Programming pairs is costly. 2. 3. 4. 100 Test case construction is a difficult and specialized skill [6]. 4. Conclusion and Future Work After completing this research , it is concluded that : 1. There are many existing models for developing systems for different sizes of projects and requirements. 2. These models were established between 1970 and 1999. 3. Waterfall model and spiral model are used commonly in developing systems. 4. Each model has advantages and disadvantages for the development of systems , so each model tries to eliminate the disadvantages of the previous model Finally, some topics can be suggested for future works: 1. 2. 3. Suggesting a model to simulate advantages that are found in different models to software process management. Making a comparison between the suggested model and the previous software processes management models. Applying the suggested model to many projects to ensure of its suitability and documentation to explain its mechanical work. REFERENCES [1] Ian Sommerville, ââ¬Å"Software Engineeringâ⬠, Addison Wesley, 7th edition, 2004. [2] CTG. MFA ââ¬â 003, ââ¬Å"A Survey of System Development Process Modelsâ⬠, Models for Action Project: Developing Practical Approaches to Electronic Records Management and Preservation, Center for Technology in Government University at Albany / Suny,1998 . [3] Steve Easterbrook, ââ¬Å"Software Lifecyclesâ⬠, University of Toronto Department of Computer Science, 2001. [4] National Instruments Corporation, ââ¬Å"Lifecycle Modelsâ⬠, 2006 , http://zone.ni.com. [5] JJ Kuhl, ââ¬Å"Project Lifecycle Models: How They Differ and When to Use Themâ⬠,2002 www.businessesolutions.com. [6] Karlm, ââ¬Å"Software Lifecycle Modelsââ¬â¢, KTH,2006 . [7] Rlewallen, ââ¬Å"Software Development Life Cycle Modelsâ⬠, 2005 ,http://codebeter.com. [8] Barry Boehm, ââ¬Å"Spiral Development: Experience, Principles, and Refinementsâ⬠, edited by Wilfred J. Hansen, 2000 . Nabil Mohammed Ali Munassar was born in Jeddah, Saudi Arabia in 1978. He studied Computer Science at University of Science and Technology, Yemen from 1997 to 2001. In 2001 he IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010 ISSN (Online): 1694-0814 www.IJCSI.org received the Bachelor degree. He studied Master of Information Technology at Arab Academic, Yemen, from 2004 to 2007. Now rd he Ph.D. Student 3 year of CSE at Jawaharlal Nehru Technological University (JNTU), Hyderabad, A. P., India. He is working as Associate Professor in Computer Science & Engineering College in University Of Science and Technology, Yemen. His area of interest include Software Engineering, System Analysis and Design, Databases and Object Oriented Technologies. Dr.A.Govardhan: received Ph.D. degree in Computer Science and Engineering from Jawaharlal Nehru Technological University in 2003, M.Tech. from Jawaharlal Nehru University in 1994 and B.E. from Osmania University in 1992. He is Working as a Principal of Jawaharlal Nehru Technological University, Jagitial. He has published around 108 papers in various national and international Journals/conferences. His research of interest includes Databases, Data Warehousing & Mining, Information Retrieval, Computer Networks, Image Processing, Software Engineering, Search Engines and Object Oriented Technologies. 101
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.