Saturday, September 7, 2019

Comparison between five process models of software engineering Essay Example for Free

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 todays 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 projects 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 systems 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  systems next-level objectives, constraints, and  alternatives. This Theory W approach involves identifying  the systems 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

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.