Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

software development lifecycle assignment, Assignments of Software Development

this is pearson based assignment helpful for it students

Typology: Assignments

2020/2021

Available from 02/05/2022

strom-muiner
strom-muiner 🇳🇵

9 documents

1 / 66

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Contents
LO1 Describe different software development lifecycles......................................................................2
Sequential Model...................................................................................................................................4
Iterative Model.....................................................................................................................................10
Conclusion............................................................................................................................................23
LO2 Explain the importance of a feasibility study...............................................................................25
Introduction..........................................................................................................................................25
Purpose of Feasibility study.................................................................................................................25
Factors to compare technical solutions................................................................................................ 31
Components of feasibility report..........................................................................................................34
Impact of different feasibility criteria..................................................................................................35
Conclusion............................................................................................................................................37
LO3 Undertake a software development lifecycle...............................................................................38
System investigation and its importance..............................................................................................38
Product Description..............................................................................................................................38
Problem Statement...............................................................................................................................39
Objective of the proposed system........................................................................................................ 39
Fact finding techniques........................................................................................................................40
Stakeholders.........................................................................................................................................43
Internal Stakeholders............................................................................................................................43
External Stakeholders...........................................................................................................................44
Stakeholder requirements identification..............................................................................................44
Requirements Specification.................................................................................................................45
General Constraints..............................................................................................................................47
System analysis tools...........................................................................................................................48
Requirements Traceability................................................................................................................... 55
Importance of Requirements Traceability............................................................................................56
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42

Partial preview of the text

Download software development lifecycle assignment and more Assignments Software Development in PDF only on Docsity!

Contents

LO1 Describe different software development lifecycles Introduction A large insurance that has been operating in United Kingdom aims to grow and become a large international company extending its products and services to many international countries. The main role of the company is to keep track of customers and enquiries about information and purchase of its

  • LO1 Describe different software development lifecycles......................................................................
  • Sequential Model...................................................................................................................................
  • Iterative Model.....................................................................................................................................
  • Conclusion............................................................................................................................................
  • LO2 Explain the importance of a feasibility study...............................................................................
  • Introduction..........................................................................................................................................
  • Purpose of Feasibility study.................................................................................................................
  • Factors to compare technical solutions................................................................................................
  • Components of feasibility report..........................................................................................................
  • Impact of different feasibility criteria..................................................................................................
  • Conclusion............................................................................................................................................
  • LO3 Undertake a software development lifecycle...............................................................................
  • System investigation and its importance..............................................................................................
  • Product Description..............................................................................................................................
  • Problem Statement...............................................................................................................................
  • Objective of the proposed system........................................................................................................
  • Fact finding techniques........................................................................................................................
  • Stakeholders.........................................................................................................................................
  • Internal Stakeholders............................................................................................................................
  • External Stakeholders...........................................................................................................................
  • Stakeholder requirements identification..............................................................................................
  • Requirements Specification.................................................................................................................
  • General Constraints..............................................................................................................................
  • System analysis tools...........................................................................................................................
  • Requirements Traceability...................................................................................................................
  • Importance of Requirements Traceability............................................................................................
  • Ways to trace software requirements throughout the software lifecycle.............................................
  • Software Quality..................................................................................................................................
  • Functional Design Paradigm................................................................................................................
  • Improvement of software quality by functional design paradigm.......................................................
  • Conclusion............................................................................................................................................
  • L04 Discuss the suitability of software behavioral design techniques................................................
  • Purpose (Background Information)......................................................................................................
  • Scope of the work.................................................................................................................................
  • Data Collection Process.......................................................................................................................
  • System analysis tools...........................................................................................................................
  • Summary..............................................................................................................................................
  • Recommendation..................................................................................................................................
  • Software Specification Techniques......................................................................................................
  • Finite State Machine............................................................................................................................
  • Extended Finite State Machine (EFSM)..............................................................................................
  • Data Driven Software...........................................................................................................................
  • Improvement of reliability and effectiveness by data driven software................................................
  • Conclusion............................................................................................................................................
  • Bibliography.........................................................................................................................................

requirements of the insurance company and achieve the long term goals of the company have been described clearly. Furthermore, the advantages of applying waterfall model to a large software development project have been depicted briefly. Sequential Model A sequential model is a software development model which suggests systematic approach for the implementation of various steps related to software development. The two systematic model used for software development are explained below:  Waterfall Model Waterfall model is a linear-sequential model that reflects the software development process in linear sequential flow and each phase must be completed before the next phase can commence[ CITATION Tut163 \l 1033 ]. In this model, there is no overlapping among different phases however; the next phase in development process begins only when the previous phase is completed. Furthermore, after the completion of a phase, an output is generated which sequentially acts as an input for next phase. This model follows “waterfall” or “top-down” approach where whole process of software development is divided into different phases. Fig: Waterfall Model The above figure clearly illustrates the different phases involved in waterfall model for the software development process. The various phases are described below briefly:

1. Requirement Analysis: Samrat Pandey (HND /Second Semester)

It is a first phase where all necessary requirements required for software development are marked and documented well. Software design, its functions, purpose, inputs and output products are analyzed and studied in this phase.

2. System Design: Examining all the system specification form the previous phase, the design of system is prepared in this phase. Similarly, this phase specifies hardware and system requirements that help to understand the complete system architecture. 3. Implementation: In this phase, inputs from the previous phase, system design is taken and implemented which result in formation of the small programs called units. Those units so formed are integrated and tested in other phase. 4. Testing: In this phase, all the units so developed in the implantation phase are tested and integrated into a system. Each designs and units developed are tested to remove flaws and errors during testing which boost up the reliability and productivity of the software. 5. Deployment: When all the testing are carried out successfully and the software is approved to meet the pre- defined objectives, the product so developed is deployed in the customer atmosphere. 6. Maintenance: This phase is carried out after the installation of the developed software where various modifications are done to improve the system performance and fix different software related issues. It helps to enhance software version and help the client to get acquainted with new changes. Thus, various phases are carried out in sequentially in which progress is seen like a steadily flowing waterfall. The next phase begins only when the previous phase is completed successfully and phases do not overlap. Advantages of the waterfall model The waterfall model is the earliest SDLC approach used for the development of the software. It possess various advantages that are listed below:  In waterfall model, the progress of the software development are shown in different phases which are simple and easy to understand.  The various stages and activities for software development are clear and easy. Samrat Pandey (HND /Second Semester)

Fig: V-Model The above illustrates various software development phases and their corresponding testing phases in V- model. The left side of the model is Software Development Lifecycle(SDLC ) phase and right side of the model is Software Test Lifecycle(STLC) which are described below: SDLC:

1. Requirement Analysis: It is an initial phase where system requirements and analysis are carried out to determine the requirements of the users and feature set. Like in waterfall model, in this phase communication is held with the clients to acknowledge their exacts needs and document them well. Similarly, in this phase of V- model, acceptance testing is carried out. 2. System Design: In this phase, all the requirements and needs of the users are utilized and complete system is designed. The complete hardware and communication setup for the product are included under the system design. During this phase, even system tests are designed to implement later. 3. Architecture Design: Samrat Pandey (HND /Second Semester)

In this phase, all the architectural specifications are understood and designed that shows how the application will link up with all internal and external components and integrations. It is also known as High Level Design where the system design is broken down into different modules providing different functionality. Similarly, integration test are also developed during this phase which is implemented later.

4. Module Design: In this phase, all the specifications of the internal design such as models, components and interfaces are implemented. It is also referred as Low Level Design. Moreover, unit testing are created in this phase that is implemented later. Coding Phase: In this phase, actual coding and implementation is done where all the modules previously formed in the design phases are converted into coded functional system. During this phase, the suitable programming language is selected and coding is performed following the coding guidelines and standards. STLC: It is a validation phase where various testing are carried out in order to ensure that all the development were carried out correctly. It is a very dynamic phase. The different testing that are carried out are explained below:

  1. Unit testing: This test is carried out at very early stage in module design. It ensures that all the bugs or errors in a code are removed.
  2. Integration testing: This test is associated with the architectural design phase. It ensures that modules and architects are accurate and all the software functionalities have been captured in the design[ CITATION Eli15 \l 1033 ].
  3. System testing: This test is associated with the system design phase. It tests the functionality and communication of the entire system.
  4. Acceptance testing: Samrat Pandey (HND /Second Semester)

alterations and development until the fully functional final system is completed[ CITATION And16 \l 1033 ]. The two different models implemented for software development are explained below:  Spiral Model Spiral model is a combination of the waterfall model and iterative model which provides support for the risk handling and enables incremental release or refinement of the product through each iteration around the spiral[ CITATION Gee15 \l 1033 ]. In this model, high priority is given on risk analysis where next step follows waterfall approach when the previous prototypes have resolved all the risks. Moreover, each cycle of the spiral is completed by a review indulging the plans for the next cycle. Fig: Spiral Model The above figure illustrates the four phases involved in the spiral model that are explained below:

1. Planning: In this phase, cost, schedule and resources for the iteration are estimated. Similarly, various system requirements that are essential for the communication between client and analyst are acknowledged in this phase. 2. Risk analysis: Samrat Pandey (HND /Second Semester)

Various risks that involved in the software development and execution are highlighted in this phase. The different strategies and measures that would be applied to overcome those uncertainties and risks are even analyzed.

3. Development: In this phase, software is developed and tested to remove errors and bugs at the end of the phase. The phase involves encoding, testing and deploying at the client environment. 4. Evaluation: In this phase, the clients are allowed to evaluate the output of the software to date before the next spiral process begins. It also helps to identify and monitor the risks such as cost overrun. Advantages of spiral model Some of the advantages of the spiral model are pointed below:  Risks analysis is emphasized in this model which saves considerable time and efforts from doing the work again.  Cost estimation is very easy as the prototyping is carried out in different fragments.  Repeated and continuous development help to minimize the risks.  Availability of space for clients feedback and improvements.  Functionality can be added later where all the requirements are addressed completely.  Monitoring and evaluation is easier and software is produced early. Disadvantages of spiral model Some of the disadvantages of spiral model are listed below:  It requires expertise to analyze the risks involved.  Protocols are needed to be followed strictly for smooth operation.  It is not suitable for smaller projects where risks analysis is not involved.  Presence of intermediate stages requires excessive documentation.  The spiral may go indefinitely with huge cost and complex management. Application of spiral model Spiral model is used widely for the development of software as it minimize risks and provides space for customers feedback as well. The typical uses of spiral model are pointed below:  Useful when cost and risk evaluation is mandatory. Samrat Pandey (HND /Second Semester)

The above figure illustrates the various iterative process involved in agile model which are collectively referred as Agile Methodologies. The agile principles are explained below:

  1. Individuals and interactions: In agile development, emphasis is provided for individuals and interactions which aid in software development.
  2. Working software: Rather than depending on documentation, agile development focus on demo software to communicate with the customers to understand their requirements and address them well.
  3. Customer collaboration: In order to get the continuous customer requirements, agile development prioritize on customer collaboration where requirements can be gathered easily and software be developed with ease.
  4. Responding to change: Responding quickly to continuous change and development is one of the principle of the agile development. Advantages of agile model Due to its flexibility and adaptability with time, agile model is widely used and has various advantages which are listed below:  Agile model promotes cross functional teams.  Resources required is minimum and is very realistic approach for the software development.  Useful for both fixed and changing requirements.  Documentation is easily employed as functionality can be developed rapidly and demonstrated.  Easy to manage as it requires little or no planning and provide flexibility to developers. Disadvantages of agile model Although agile model is widely accepted in software environment recently it has some disadvantages which are listed below:  Less priority is given for documentation in agile model which increase individual dependencies.  Not appropriate for handling complex dependencies. Samrat Pandey (HND /Second Semester)

 Dependency on customer collaboration where team can be driven in wrong direction when customer is not clear.  An agile leader and project manager is compulsory to examine the overall activities and put the plan into practice.  Due to lack of documentation, the cross function teams may not produce the necessary output.  There is high risk of sustainability, extensibility and maintainability. Application of agile model The agile model are used for the situations below with the availability of its flexibility, adaptability and other features:  To implement new changes that are mandatory as new changes can be implemented at very little cost.  For implanting a new features where developers need to lose only the work of few days to roll back and implement it.  To give customer the finished system with what they need as changes can be responded easily due to customer collaboration principle.  To continue to project for long term without fear of being sudden standstill. Risks are the possible conditions and event that create hindrances in the patch of software development team in achieving the specified goals[ CITATION Dmi15 \l 1033 ]. The different phases of software development lifecycle is vulnerable to different types of risk factors. Since software, development uses a variety of technological advancements and requires high level of knowledge there is uncertainty, which is known as risk. The success of the software quite heavily depends on how the risks are handled and resolved using the available resources. The process of identifying the potential risks, analyzing them and taking the appropriate precautions to prevent them is called risk management. Risk management involves assessment and control of risks for the successful development of the product. Minimization of the risks is the key feature of the spiral lifecycle model. The spiral preliminarily identifies all the possible risks and prioritize them according to their importance. When all the risks are enumerated, appropriate strategies are formed to overcome those risks. Finally, with proper changes, a prototype is produced which go through the phases of software development in spiral process. This help to enhance the productivity and reliability of the software. Samrat Pandey (HND /Second Semester)

Risk assessment Risk assessment is the first process or risk methodology which is used to determine the extent of the potential threats and risks associated in software development. The three different steps involved in the risk assessment used by the spiral method are described below:

1. Risks Identification: Various risks and threats that are present and can appear in near future are identified in this process. The spiral model primarily identifies and enumerates all the potential risks that can cause failure in software development. Various risks related to cost, technologies, manpower and resources are identified by the spiral model which are needed to be dealt for successful completion of the product. 2. Risk Analysis: After the identification of all the possible risks that can create failure in software development, their consequences and effects are thoroughly analyzed by the spiral model. Samrat Pandey (HND /Second Semester)

The characteristics of the software and risks are analyzed which help to formulate and implement various measures to resolve those risks.

3. Risks Prioritization: Various risks are involved during the development of the software which can cause failure and results in development of poor quality product. After the proper analysis of the risks, spiral model prioritize those risks, focusing their effects and consequences on successful completion of the quality software. The risks with the higher priority are tackled primarily and risks with lower priority are resolved later. Different time frame and strategies are set for the different risks according to their priority. Risk Control Risk control is the process of preventing the risks and their effects in the development of the quality software. It involves proper formulation of plan and strategies and applying them to solve the various risks involved gaining full control over the software development. The three different process involved in risk control that are applied by the spiral method is described below: 1. Planning: Planning involves formulation of various techniques and strategies which are implemented later to solve the possible threats and risks that are applied during software development. After the proper identification, analysis and prioritization of the risks, different strategies are developed accordingly to solve those risks in spiral model. 2. Resolve: After the proper assessment of risks and formulation of the different strategies, the developed strategies are put into actions to resolve the risks. The different risks are resolved using the available resources. The spiral model mitigate the risks that can cause software failure focusing on present and future status. 3. Control: When all the potential risks and threats present in the software are completely eliminated, the software developer team can have complete control over the product so formed. The different phases of spiral model can be carried out without any bugs and problems that help to address the needs and requirements of the clients. The developed product can be used to carry out the pre-defined tasks which enables users to have full control over the product. After the proper assessment and control of the risks, various changes and features that are mandatory are performed and a proto type is developed. Different other phases essential for the software Samrat Pandey (HND /Second Semester)

iii. Increase the ability to manage the changing priorities: The insurance company wants to grow and become an international company extending its services in different countries. The company wants to develop a software that help to track the records of the wider range. However, the requirements of the company may change frequently. Similarly, the requirements of the customers must be addressed as well while developing a new system that may change often. The agile approach helps adapt to the changing priorities easily. In agile model, the product broken into small builds are provided in iterations and every iteration indulge cross functional teams working simultaneously on various phases of software development process. After the completion of iteration, the product is then presented before customers. Similarly, there is respond to change over following a plan and customer collaboration over contract negotiation is available. iv. Enhance delivery predictability: With an agile approach for software delivery that emphasizes on setting up metrics and measurement, teams can plan, coordinate, and deliver with enough predictability along with a release level commitment[ CITATION Cig15 \l 1033 ]. This helps to develop a reliable and quality software that address the client requirements effectively. v. Increase software quality: Cross-functional teams are involved in designing the builds that further evaluated according to the customer’s needs. This help to develop a high quality software that can easily meets the requirements of the insurance company. The simultaneously working of in-house team of insurance company and system analysts and developers with the collaboration of the customers help to increase the software quality. vi. Minimize the project risk: The new software that the insurance company wants to develop indulge the high uncertainty and risks. The software must be of high quality in order to keep the records of the various international customers and wider range of products and services. Applying the agile approach, the highest value and highest risk requirements are prioritized along with the feedback of the customers that help to reduce the risk and develop a software of high quality and reliability. vii. Enhance the project visibility: In order to develop an effective software that meet the requirements of the clients, simultaneous performance of the all members involved are essential. Using the agile approach the objectives of the insurance company can be clearly depicted to all cross- Samrat Pandey (HND /Second Semester)

functional teams. It helps various development, testing, and operations teams to know about the current state, the performance, and the objective of the project and organization and improves the project visibility so that team can operate effectively to achieve the company’s needs. viii. Improve business alignment: An agile approach focuses on business alignment that helps to implement the right system in right way to meet the company’s needs. It also enables all the operational process to be well aligned and focuses on reduction in time & efforts, and costs & investments in designing, documenting, deployment and testing. This helps to develop an effective software meeting the insurance company needs. Waterfall model is a linear-sequential model which reflects the software development process in linear sequential flow and each phase must be completed before the next phase can commence[ CITATION Tut163 \l 1033 ]. This model follows “waterfall” or “top-down” approach where whole process of software development is divided into different phases. One phase must be completed successfully in order to advance into next phase. The output from the previous phase acts as input for the next phase. Although it is the earliest SDLC approach, it is still widely used for large software development project. Samrat Pandey (HND /Second Semester)