Software Development Models and Risk Management, Assignments of Information Technology

A comprehensive overview of various software development lifecycle (sdlc) models, including the waterfall model, v-model, rad model, and agile model. It discusses the advantages and disadvantages of each model, their applicability to different types of projects, and the importance of risk management in sdlc. The document also delves into the concept of feasibility studies and their role in project success.

Typology: Assignments

2023/2024

Uploaded on 04/02/2024

dragon-tv-troll
dragon-tv-troll 🇻🇳

4

(1)

12 documents

1 / 41

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
ASSIGNMENT 1 FRONT SHEET
Qualification
BTEC Level 5 HND Diploma in Computing
Unit number and title
Unit 7: Software Development Life Cycle
Submission date
Date Received 1st
submission
Re-submission Date
Date Received 2nd
submission
Student Name
Truong Van Diep
Student ID
BH00666
Class
Assessor name
Student’s signature
Grading grid
P1
P2
P3
P4
M1
M2
D1
D2
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

Partial preview of the text

Download Software Development Models and Risk Management and more Assignments Information Technology in PDF only on Docsity!

ASSIGNMENT 1 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 7 : Software Development Life Cycle Submission date Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Truong Van Diep Student ID BH Class Assessor name Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that making a false declaration is a form of malpractice. Student’s signature Grading grid P1 P2 P3 P4 M1 M2 D1 D

r Summative Feedback: r Resubmission Feedback: Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:

I. Introduction

This document serves as a comprehensive guide for understanding and implementing the Software Development Life Cycle (SDLC) in the specific context of developing an automated Office Management solution for Net Educational Institute (NEI). NEI, a prominent educational institution in Vietnam, caters to both national and international students, boasting a substantial infrastructure with nearly 1000 students, 75 faculty members, and 40 non-teaching staff across various departments and centers. The proposed system aims to streamline and automate academic and administrative activities, specifically focusing on Attendance and Student Management. As NEI's newly appointed System Analyst, entrusted with managing the project, my responsibility includes leading the analysis and design stage of the new system. NEI's existing small systems development team has traditionally handled all development work internally. However, recognizing the need for a fresh perspective, the CEO concentrates collaboration with external experts, particularly those well-versed in modern methodologies. The in-house team will work alongside analysts and developers from an external team, with a focus on embracing new methodologies, including agile approaches, to enhance the effectiveness of the development process. This document is intended to provide insights into the evolving landscape of system analysis methodologies, with an emphasis on both traditional and agile approaches. It aims to equip the in-house team with updated knowledge and practices, ensuring a successful and forward-looking implementation of the new Office Management solution at NEI

II. Body

P1 Describe two iterative and two sequential software lifecycle models.

*1. Waterfall Model Define: The classical waterfall model is the basic software development life cycle model. It is very simple but idealistic. Earlier this model was very popular but nowadays it is not used. But it is very important because all the other software development life cycle models are based on the classical waterfall model. *Features of Waterfall Model: - Sequential Approach : The waterfall model involves a sequential approach to software development, where each phase of the project is completed before moving on to the next one. - Document-Driven: The waterfall model relies heavily on documentation to ensure that the project is well-defined and the project team is working towards a clear set of goals. - Quality Control: The waterfall model places a high emphasis on quality control and testing at each phase of the project, to ensure that the final product meets the requirements and expectations of the stakeholders. - Rigorous Planning : The waterfall model involves a rigorous planning process, where the project scope, timelines, and deliverables are carefully defined and monitored throughout the project lifecycle. Overall, the waterfall model is used in situations where there is a need for a highly structured and systematic approach to software development. It can be effective in ensuring that large, complex projects are completed on time and within budget, with a high level of quality and customer satisfaction. *Phases of Waterfall Model Waterfall Model is a classical software development methodology that was first introduced by Winston W. Royce in 1970. It is a linear and sequential approach to software development that consists of several phases that must be completed in a specific order. The Waterfall Model has six phases: - Requirements Gathering and Analysis: The first phase involves gathering requirements from stakeholders and analyzing them to understand the scope and objectives of the project. - Design Phase: Once the requirements are understood, the design phase begins. This involves creating a detailed design document that outlines the software architecture, user interface, and system components. - Implementation and Unit Testing: The implementation phase involves coding the software based on the design specifications. This phase also includes unit testing to ensure that each component of the software is working as expected. - Integration and System Testing: In the testing phase, the software is tested as a whole to ensure that it meets the requirements and is free from defects.

The aim of the requirement analysis and specification phase is to understand the exact requirements of the customer and document them properly. This phase consists of two different activities.

  • Requirement gathering and analysis: Firstly all the requirements regarding the software are gathered from the customer and then the gathered requirements are analyzed. The goal of the analysis part is to remove incompleteness (an incomplete requirement is one in which some parts of the actual requirements have been omitted) and inconsistencies (an inconsistent requirement is one in which some part of the requirement contradicts some other part).
  • Requirement specification: These analyzed requirements are documented in a software requirement specification (SRS) document. SRS document serves as a contract between the development team and customers. Any future dispute between the customers and the developers can be settled by examining the SRS document. Design The goal of this phase is to convert the requirements acquired in the SRS into a format that can be coded in a programming language. It includes high-level and detailed design as well as the overall software architecture. A Software Design Document is used to document all of this effort (SDD). Coding and Unit Testing In the coding phase software design is translated into source code using any suitable programming language. Thus each designed module is coded. The aim of the unit testing phase is to check whether each module is working properly or not. Integration and System testing Integration of different modules is undertaken soon after they have been coded and unit tested. Integration of various modules is carried out incrementally over a number of steps. During each integration step, previously planned modules are added to the partially integrated system and the resultant system is tested. Finally, after all the modules have been successfully integrated and tested, the full working system is obtained and system testing is carried out on this. System testing consists of three different kinds of testing activities as described below.
  • Alpha testing: Alpha testing is the system testing performed by the development team.
  • Beta testing: Beta testing is the system testing performed by a friendly set of customers.
  • Acceptance testing: After the software has been delivered, the customer performed acceptance testing to determine whether to accept the delivered software or reject it. Maintenance Maintenance is the most important phase of a software life cycle. The effort spent on maintenance is 60% of the total effort spent to develop a full software. There are basically three types of maintenance.
  • Corrective Maintenance: This type of maintenance is carried out to correct errors that were not discovered during the product development phase.
  • Perfective Maintenance: This type of maintenance is carried out to enhance the functionalities of the system based on the customer’s request.
  • Adaptive Maintenance: Adaptive maintenance is usually required for porting the software to work in a new environment such as working on a new computer platform or with a new operating system. *Advantages and disadvantages of Classical Waterfall Model Advantages : The classical waterfall model is an idealistic model for software development. It is very simple, so it can be considered the basis for other software development life cycle models. Below are some of the major advantages of this SDLC model.
  • Easy to Understand: Classical Waterfall Model is very simple and easy to understand.
  • Individual Processing: Phases in the Classical Waterfall model are processed one at a time.
  • Properly Defined: In the classical waterfall model, each stage in the model is clearly defined.
  • Clear Milestones: Classical Waterfall model has very clear and well-understood milestones.
  • Properly Documented: Processes, actions, and results are very well documented.
  • Reinforces Good Habits: Classical Waterfall Model reinforces good habits like define- before-design and design-before-code.
  • Working: Classical Waterfall Model works well for smaller projects and projects where requirements are well understood. Disadvantages : The Classical Waterfall Model suffers from various shortcomings, basically, we can’t use it in real projects, but we use other software development lifecycle models which are based on the classical waterfall model. Below are some major drawbacks of this model.
  • No Feedback Path: In the classical waterfall model evolution of software from one phase to another phase is like a waterfall. It assumes that no error is ever committed by developers during any phase. Therefore, it does not incorporate any mechanism for error correction.
  • Difficult to accommodate Change Requests: This model assumes that all the customer requirements can be completely and correctly defined at the beginning of the project, but actually customer’s requirements keep on changing with time. It is difficult to accommodate any change requests after the requirements specification phase is complete.
  • No Overlapping of Phases: This model recommends that a new phase can start only after the completion of the previous phase. But in real projects, this can’t be maintained. To increase efficiency and reduce cost, phases may overlap.
  • Limited Flexibility: The Waterfall Model is a rigid and linear approach to software development, which means that it is not well-suited for projects with changing or uncertain requirements. Once a phase has been completed, it is difficult to make changes or go back to a previous phase.
  • Limited Stakeholder Involvement: The Waterfall Model is a structured and sequential approach, which means that stakeholders are typically involved in the early phases of the project (requirements gathering and analysis) but may not be involved in the later phases (implementation, testing, and deployment).

*What Are the Phases of V Model? Figure 2 : V model Verification Phases : It involves static analysis technique (review) done without executing code. It is the process of evaluation of the product development phase to find whether specified requirements meet. There are several Varification phases in the V-Model: Business Requirement Analysis: These is the first step of the designation of development cycle where product requirement needs to be cure with the customer perspectives. in these phases include the proper communication with the customer to understand the requirement of the customers. these is the very important activity which need to handle with proper way, as most of the time customer did not know exact what they want, and they did not sure about it that time then we use an acceptance test design planning which done at the time of business requirement it will be used as an input for acceptance testing. System Design: Design of system will start when the overall we clear with the product requirements, then need to design the system completely. these understanding will do at the beginning of complete under the product development process. these will be beneficial for the future execution of test cases. Architectural Design:

In this stage, architectural specifications are comprehended and designed. Usually, a number of technical approaches are put out, and the ultimate choice is made after considering both the technical and financial viability. The system architecture is further divided into modules that each handle a distinct function. Another name for this is High Level Design (HLD). At this point, the exchange of data and communication between the internal modules and external systems are well understood and defined. During this phase, integration tests can be created and documented using the information provided. Module Design: This phase, known as Low Level Design (LLD), specifies the comprehensive internal design for each and every system module. Compatibility between the design and other external systems as well as other modules in the system architecture is crucial. Unit tests are a crucial component of any development process since they assist identify and eradicate the majority of mistakes and flaws at an early stage. Based on the internal module designs, these unit tests may now be created. Coding Phase: The Coding step involves actually writing the code for the system modules that were created during the Design phase. The system and architectural requirements are used to determine which programming language is most appropriate. The coding standards and principles are followed when performing the coding. Before the final build is checked into the repository, the code undergoes many code reviews and is optimised for optimal performance. Validation Phases : It involves dynamic analysis technique (functional, non-functional), testing done by executing code. Validation is the process to evaluate the software after the completion of the development phase to determine whether software meets the customer expectations and requirements. So, V-Model contains Verification phases on one side of the Validation phases on the other side. Verification and Validation phases are joined by coding phase in V-shape. Thus, it is called V-Model. There are several Validation phases in the V-Model: Unit Testing: Unit Test Plans are developed during module design phase. These Unit Test Plans are executed to eliminate bugs at code or unit level. Integration testing:

*Advantages and Disadvantages of the V Model Advantages:

  • This is a highly disciplined model and Phases are completed one at a time.
  • V-Model is used for small projects where project requirements are clear.
  • Simple and easy to understand and use.
  • This model focuses on verification and validation activities early in the life cycle thereby enhancing the probability of building an error-free and good quality product.
  • It enables project management to track progress accurately.
  • Clear and Structured Process: The V-Model provides a clear and structured process for software development, making it easier to understand and follow.
  • Emphasis on Testing: The V-Model places a strong emphasis on testing, which helps to ensure the quality and reliability of the software.
  • Improved Traceability: The V-Model provides a clear link between the requirements and the final product, making it easier to trace and manage changes to the software.
  • Better Communication: The clear structure of the V-Model helps to improve communication between the customer and the development team. Disadvantages :
  • High risk and uncertainty.
  • It is not a good for complex and object-oriented projects.
  • It is not suitable for projects where requirements are not clear and contains high risk of changing.
  • This model does not support iteration of phases.
  • It does not easily handle concurrent events.
  • Inflexibility: The V-Model is a linear and sequential model, which can make it difficult to adapt to changing requirements or unexpected events.
  • Time-Consuming: The V-Model can be time-consuming, as it requires a lot of documentation and testing.
  • Overreliance on Documentation: The V-Model places a strong emphasis on documentation, which can lead to an overreliance on documentation at the expense of actual development work.

*3. RAD Model Define RAD model stands for rapid application development model. The methodology of RAD model is similar to that of incremental or waterfall model. It is used for small projects. If the project is large then it is divided into many small projects and these small projects are planned one by one and completed. In this way, by completing small projects, the large project gets ready quickly. In RAD model, the project is completed within the given time and all the requirements are collected before starting the project. It is very fast and there are very less errors in it. The main objective of RAD model is to reuse code, components, tools, processes in project development. (Anon., 2022) Figure 3 : RAD model *The Rapid Application Development (RAD) model is characterized by the following:

  • Incremental Process : The RAD model is a type of incremental process model with an extremely short development cycle1.
  • Phases : The phases in RAD include Requirements Gathering, Analysis and Planning, Design, Build or Construction, and Deployment.
  • Powerful Development Tools : The use of powerful development tools and techniques is a critical feature of this model.

Advantages:

  • It reduces the time taken in development.
  • In this the components are reused.
  • It is flexible and it is easy to make any changes in it.
  • It is easy to transfer like scripts because high level abstraction and intermediate codes are used in it.
  • There are very few defects in it because it is a prototype by nature.
  • In this, productivity can be increased in less time with less people.
  • It is cost effective.
  • It is suitable for small projects. Disadvantages :
  • In this we need highly skilled developers and designers.
  • It is very difficult to manage.
  • It is not suitable for project that are complex and takes long time.
  • In this, feedback from the client is required for the development of each phase.
  • Automated code generation is very expensive.
  • This model is suitable only for component based and scalable systems.

4. Agile model

Agile model is a combination of iterative and incremental models, that is, it is made up of iterative and incremental models. In Agile model, focus is given to process adaptability and customer satisfaction. In earlier times, iterative waterfall model was used to create software. But in today’s time developers have to face many problems. The biggest problem is that in the middle of software development, the customer asks to make changes in the software. It takes a lot of time and money to make these changes. So to overcome all these shortcomings, the agile model was proposed in the 1990s. The agile model was created mainly to make changes in the middle of software development so that the software project can be completed quickly. Figure 4 :Agile Model

In the agile model, the software product is divided into small incremental parts. In this, the smallest part is developed first and then the larger one. And each incremental part is developed over iteration. Each iteration is kept small so that it can be easily managed. And it can be completed in two-three weeks. Only one iteration is planned, developed and deployed at a time. Principles of Agile model:-

  • There is a customer representative in the development team to maintain contact with the customer during software development and to understand the requirement. When an iteration is completed, stakeholders and customer representatives review it and re-evaluate the requirements.
  • Demo of working software is given to understand the customer’s requirements. That is, it does not depend only on documentation.
  • Incremental versions of the software have to be delivered to the customer representative after a few weeks.
  • In this model it is advised that the size of the development team should be small (5 to 9 people) so that the team members can communicate face to face.
  • Agile model focuses on the fact that whenever any changes have to be made in the software, it should be completed quickly.
  • In agile development, two programmers work together. One programmer does the coding and the other reviews that code. Both the programmers keep changing their tasks, that is, sometimes one does coding and sometimes someone reviews. Agile has the following models:-
  1. Scrum
  2. Crystal methods
  3. DSDM
  4. Feature driven development (FDD
  5. Lean software development
  6. Extreme programming (xp) (Anon., 2024) *The Agile software development model consists of several stages:
  • Concept: This is the initial stage where the concept of the project is outlined.
  • Inception : In this stage, the software development team is built.
  • Iteration/Construction : This is also referred to as construction. In this phase, the team starts working on the project with the aim to deploy a working product.
  • Testing/Quality Assurance : The Quality Assurance team examines the product’s performance and looks for bugs.
  • Release : The product is almost ready for release.
  • Deploymen t: The team deploys the product for the user’s work environment.
  • Maintenance : After the product is fully deployed and made available to customers, ongoing maintenance helps squash bugs and maintain functionality.

P2) Explain how risk is managed in software lifecycle models 1 ,Define Risk management in the Software Development Life Cycle (SDLC) is a systematic, proactive process of identifying, navigating, and mitigating potential risks that hinders a software project’s success. It involves analyzing uncertainties and potential challenges early on that may arise during different stages of the SDLC process and implementing strategies to address them effectively with continuous risk monitoring. Software development companies use various types of risk management strategies to address unique risks that arise during the procedure of SDLC. Before this, we will discuss the types of risks that may occur during SDLC. 2, The Importance of Risk Management During SDLC Risk management helps identify, assess, and mitigate potential risks that could impact software project development. Here’s why risk management is important in SDLC: Figure 5 :risk management is important in SDLC Early Issue Identification : Risk management allows software development teams to identify potential issues and challenges early in the project. By proactively addressing risks, dedicated teams can avoid costly and time-consuming problems later in the software development process.

Resource Allocation: Assessing risks helps in allocating resources appropriately. By understanding potential risks, project managers can allocate time, budget, and manpower effectively, ensuring a smoother development process of software. Improved Decision-Making: Risk management enables informed decision-making. When project stakeholders are aware of potential risks and their impact, they can make well - informed decisions to mitigate or accept risks based on their potential consequences. Cost and Time Savings: Addressing risks early on prevents rework and costly fixes later in the project. This results in optimal cost and time savings during the software development process. Quality Assurance: Effective risk management ensures that potential quality issues are identified and addressed, leading to a higher-quality end product. Realize Project Success: Properly managed risks increase the chances of project success. By addressing potential challenges, the project team-building software can stay on track and meet project goals effectively. Adaptability: In an ever-changing technological landscape, risk management allows teams to adapt to unexpected challenges and uncertainties effectively that may occur during the different SDLC stages. *3. Apply the spiral development model to manage risks for NEI project a, Management stages Planning phase In the planning phase of the student management system project, we proceed to gather and analyze requirements from both the client and the user community. The main activities in this phase include:

  • Cost Estimation and Scheduling: o Determine the estimated cost and establish a project schedule based on the specific requirements of the student management system. o The schedule must be flexible to ensure sufficient time for requirement analysis, development, and testing.
  • Identifying Necessary Resources and Work Environment: o Determine the required workforce, including analysts, developers, and testing specialists. o Ensure an efficient work environment that supports smooth development and testing.
  • Understanding System Requirements and Creating Specification Documents: o Analyze system requirements related to student management, including functions such as managing personal information, handling tuition fees, and tracking academic results.