Software Development Paradigm PDF

Document Details

ContrastyGorgon6238

Uploaded by ContrastyGorgon6238

University of Technology and Applied Sciences - Ibri

Tags

software development software engineering paradigms software processes

Summary

This document provides an overview of different software development paradigms, from foundational concepts to explanations of popular models like Waterfall, V-Model, Incremental, and Agile. It covers the principles of software specification, development, validation, and evolution.

Full Transcript

Objectives: Chapter 2 – 1. Describe the concept of software Software processes, software process Developme activities and software process nt model. Paradigm 2. Explain few selected Process models. Waterfall Model, V-Model, Incremental Process M...

Objectives: Chapter 2 – 1. Describe the concept of software Software processes, software process Developme activities and software process nt model. Paradigm 2. Explain few selected Process models. Waterfall Model, V-Model, Incremental Process Model, Evolutionary Process Model(Spiral Model) and Agile Model. 1 A software process is a set of activities that leads to the production of a software software product. process These activities may involve the development of software from scratch in a standard programming language 2 1. Software Specification - The functionality of the software and constraints on its operation must be defined.  The process of understanding and defining Softwar what services are required from the system  Identifying the constraints on the system’s e operation and development Process  It is a very critical stage of the process as errors at this stage lead to later problems in design Activitie and implementation. s 2. Software Development - The software to meet the specification must be produced. 3. Software Validation - The software must be validated to ensure that it does what the customer wants. 4. Software Evolution - The software must evolve 3 When describing processes, it is also important to describe who is involved, what is produced, and conditions that influence the sequence of activities: 1. Products or deliverables are the outcomes of a process activity. For example, the outcome of the activity of architectural design may be a model of the Software software architecture. Process 2. Roles reflect the responsibilities of the people involved in the process. Examples of roles Models are project manager, configuration manager, and programmer. 3. Pre- and postconditions are conditions that must hold before and after a process activity has been enacted or a product produced. For example, before architectural design begins, a precondition may be that the consumer has approved all requirements; after this activity is finished, a 4 1.Waterfall Software 2.V-Model Process 3.Incremental Process Model Models 4.Evolutionary Process Model(Spiral Model) 5.Agile Model 5  Waterfall model is the simplest model of software development paradigm. 1.  It says the all the phases of SDLC will Waterfall function one after another in linear Model manner.  That is, when the first phase is finished then only the second phase will start and so on. 6 1. Waterfall Model 7 1. Requirements analysis and definition. The system’s services, constraints, and goals are established by consultation with system users. They are then defined in detail and serve as a system specification. 2. System and software design. The systems design process allocates the Phases of requirements to either hardware or software Waterfall systems. It establishes an overall system Model architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships. 3. Implementation and unit testing. During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each 8 4. Integration and system testing.The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer. Phases of 5. Operation and maintenance. Waterfall Normally, this is the longest life-cycle Model phase. The system is installed and put into practical use. Maintenance involves correcting errors that were not discovered in earlier stages of the life cycle, improving the implementation of system units, and enhancing the system’s services as new requirements are discovered. 9 Advantages: 1. This model is best suited when developers already have designed and developed similar software in the past and is aware of all its Advantages domains. and 2. It is useful for big projects like for 3-10 disadvanta years or more. ges Disadvantages: 3. This model does not work smoothly if there are some issues left at the previous step. 4. The sequential nature of model does not allow us go back and undo or redo our actions. 10 2. V- Model 11 2. V- Model  The V-model is a type of SDLC model where process executes in a sequential manner in V- shape.  It is also known as Verification and Validation model. It is based on the association of a testing phase for each corresponding development stage.  Development of each step directly associated with the testing phase. The next phase starts only after completion of the previous phase i.e. for each development activity, there is a testing activity corresponding to it.  V-Model provides means of testing of software at each stage in reverse manner. 12 2. V- Model 13 Business Requirement Analysis - product requirements are understood from the customer’s perspective. This phase involves detailed communication with the customer to understand his expectations and exact requirement. V- Model Verification The acceptance test design planning is done at this PROCESS stage as business requirements can be used as an input for acceptance testing. System Design - The system design will have the understanding and detailing the complete hardware and communication setup for the product under development. The system test plan is developed based on the system design. Doing this at an earlier stage leaves more time for the actual test execution later. 14 Architectural Design - Architectural specifications are understood and designed in this phase. Usually more than one technical approach is proposed and based on the technical and financial feasibility the final decision is taken. The system V- Model design is broken down further into modules taking Verification PROCESS up different functionality. This is also referred to as High Level Design (HLD). Module Design - In this phase, the detailed internal design for all the system modules is specified, referred to as Low Level Design (LLD). It is important that the design is compatible with the other modules in the system architecture and the other external systems. The unit tests are an essential part of any development process and 15 helps eliminate the maximum faults and errors at a Coding Phase -The actual coding of the system modules designed in the design phase is taken up in the Coding phase. V- Model Verification The best suitable programming language is PROCESS decided based on the system and architectural requirements. The coding is performed based on the coding guidelines and standards. The code goes through numerous code reviews and is optimized for best performance before the final build is checked into the repository. 16 Unit Testing - Unit tests designed in the module design phase are executed on the code during this validation V- Model phase. Unit testing is the testing at code level and helps validation eliminate bugs at an early stage, though all defects PROCESS cannot be uncovered by unit testing. Integration Testing - Integration testing is associated with the architectural design phase. Integration tests are performed to test the coexistence and communication of the internal modules within the system. 17 System Testing - System testing is directly associated with the system design phase. System tests check the entire system functionality and the communication of V- Model the system under development with external systems. Most of the software and hardware compatibility issues validation can be uncovered during this system test execution. PROCESS Acceptance Testing - Acceptance testing is associated with the business requirement analysis phase and involves testing the product in user environment. Acceptance tests uncover the compatibility issues with the other systems available in the user environment. It also discovers the non-functional issues such as load and performance defects in the actual user environment. 18 Advantages: 1. This is a highly-disciplined model and phases are completed one at a time. 2. Easy to manage due to the rigidity of the model. Advantage and Each phase has specific deliverables and a review process. disadvantage Disadvantages: 3. Not a good model for complex and object- oriented projects. 4. Once an application is in the testing stage, it is difficult to go back and change a functionality. 19 3.INCREMENTAL PROCESS model 20  The incremental process model is also known as the Successive version model. 3.INCREMENTAL  Is a process of software development PROCESS model where requirements divided into multiple standalone modules of the software development cycle.  In this model, each module goes through the requirements, design, implementation and testing phases. Every subsequent release of the module adds function to the previous release. The process continues until the complete system achieved. 21 Advantages:  Prepares the software fast.  Clients have a clear idea of the project. Advantages  Changes are easy to implement. and  Provides risk handling support, because of its disadvantag iterations es Disadvantages:  A good team and proper planned execution are required.  Because of its continuous iterations the cost increases. 22  Evolutionary models are iterative type 4. models. Evolutionary process  They allow to develop more complete model versions of the software.  Following are the evolutionary process models. 1. The prototyping model 2. The spiral model – this will only be discuss 3. Concurrent development model 23  Spiral model is a combination of both, iterative model and one of the SDLC model.  It can be seen as if you choose one SDLC model and combine it with cyclic process (iterative model). Spiral It is a risk driven process model. Model It is used for generating the software projects. In spiral model, an alternate solution is provided if the risk is found in the risk analysis, then alternate solutions are suggested and implemented. It is a combination of prototype and sequential model or waterfall model. In one iteration all activities are done, for large project's the output is small. 24 25 Advantages: 1. Users see the system early because of Advantage rapid prototyping. and 2. Design does not need to be perfect. disadvantag e 3. It reduces high amount of risk. 4. It is good for large and critical projects. 5. It gives strong approval and documentation control. 26 Disadvantages: Advantage 1. The model is complex. and 2. Spiral may continue indefinitely. disadvantag e 3. It can be costly to develop a software model. 4. It is not used for small projects. 27  Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. 5. Agile  In agile the tasks are divided to time Model boxes (small time frames) to deliver specific features for a release.  Iterative approach is taken and working software build is delivered after each iteration.  Each build is incremental in terms of features; the final build holds all the features required by the customer. 28 The most popular agile methods  Rational Unified Process (1994)  Scrum (1995)  Crystal Clear, Extreme Programming (1996)  Adaptive Software Development (1995)  Feature Driven Development (1995)  Dynamic Systems Development Method (DSDM) (1995)  These are now collectively referred to as agile methodologies, after the Agile Manifesto was published in 2001 29  Individuals and interactions - in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.  Working software - Demo working software is Agile considered the best means of communication with the customer to understand their Manifesto requirement, instead of just depending on documentation.  Customer collaboration - As the requirements cannot be gathered completely in the beginning of the project due to various factors, continuous customer interaction is very important to get proper product requirements.  Responding to change - agile development is focused on quick responses to change and continuous development 30 31 http://www.tutorialspoint.com/ Recommended books : References…  Sommerville, Ian, Software engineering. — 10th ed,  Pressman, Roger S, Software engineering: a practitioner’s approach / Roger S. Pressman.8th ed 32

Use Quizgecko on...
Browser
Browser