Thursday, August 22, 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    
Subscribe to:
Post Comments (Atom)
 
 
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.