
































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
A comprehensive overview of software process models and project lifecycles, detailing various models such as waterfall, v-model, incremental, rad, agile, iterative, prototype, and spiral. It explores factors influencing model selection, including project requirements, size, complexity, cost of delay, customer involvement, technology familiarity, and resources. The document also delves into the rad (rapid application development) and agile models, outlining their phases, advantages, and disadvantages, offering valuable insights for software development strategies. This guide is useful for students and professionals in software engineering.
Typology: Exams
1 / 40
This page cannot be seen from the preview
Don't miss anything!

































Project Lifecycle & Effort Estimation Sokware processes are the activities for designing, implementing, and testing a software system. The software development process is complicated and involves a lot more than technical knowledge. A software process model is an abstract representation of the development process. Software process model A sokware process model is an abstraction of the software development process. The models specify the stages and order of a process. So, think of this as a representation of the order of activities of the process and the sequence in which they are performed. A model will define the following: ● The tasks to be performed ● The input and output of each task ● The pre and post-conditions for each task ● The flow and sequence of each task ● The goal of a software process model is to provide guidance for controlling and coordinating the tasks to achieve the end product and objectives as effectively as possible. There are many kinds of process models for meeting different requirements. We refer to these as SDLC models (Software Development Life Cycle models). The most popular and important SDLC models are as follows: ● Waterfall model ● V model ● Incremental model ● RAD model ● Agile model ● Iterative model ● Prototype model ● Spiral model Factors in choosing a software process: Choosing the right software process model for your project can be difficult. If you know your requirements well, it will be easier to select a model that best matches
your needs. You need to keep the following factors in mind when selecting your software process model:
1. Project requirements Before you choose a model, take some time to go through the project requirements and clarify them alongside your organization’s or team’s expectations. Will the user need to specify requirements in detail after each iterative session? Will the requirements change during the development process? 2. Project size
generally 60 - 90 days. Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. A prototype is a working model that is functionally equivalent to a component of the product. In the RAD model, the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery. Since there is no detailed preplanning, it makes it easier to incorporate the changes within the development process.
RAD projects follow an iterative and incremental model and have small teams comprising of developers, domain experts, customer representatives and other IT resources working progressively on their component or prototype. The most important aspect for this model to be successful is to make sure that the prototypes developed are reusable. Following are the various phases of the RAD Model −
1. Business Modelling The business model for the product under development is designed in terms of flow of information and the distribution of information between various business channels. A complete business analysis is performed to find the vital information for business, how it can be obtained, how and when is the information processed and what are the factors driving successful flow of information. 2. Data Modelling The information gathered in the Business Modelling phase is reviewed and analyzed to form sets of data objects vital for the business. The attributes of all data sets is identified and defined. The relation between these data objects are established and defined in detail in relevance to the business model. 3. Process Modelling The data object sets defined in the Data Modelling phase are converted to establish the business information flow needed to achieve specific business objectives as per the business model. The process model for any changes or enhancements to the data object sets is defined in this phase. Process
The actual system is built and coding is done by using automation tools to convert process and data models into actual prototypes.
5. Testing and Turnover The overall testing time is reduced in the RAD model as the prototypes are independently tested during every iteration. However, the data flow and the interfaces between all the components need to be thoroughly tested with complete test coverage. Since most of the programming components have already been tested, it reduces the risk of any major issues. When to use RAD Model? o When the system should need to create the project that modularizes in a short span time (2- 3 months). o When the requirements are well-known. o When the technical risk is limited. o When there's a necessity to make a system, which modularized in 2 - 3 months of period. o It should be used only if the budget allows the use of automatic code generating tools. Advantage of RAD Model
o This model is flexible for change. o In this model, changes are adoptable. o Each phase in RAD brings highest priority functionality to the customer. o It reduced development time.
Phases of Agile Model: Following are the phases in the Agile model are as follows:
DSDM life cycle defines 3 different iterative cycles, preceded by 2 further life cycle activities:
Extreme Programming (XP) Extreme programming (XP) is one of the most important software development frameworks of Agile models. It is used to improve software quality and responsiveness to customer requirements. The extreme programming model recommends taking the best practices that have worked well in the past in program development projects to extreme levels. Good practices need to be practiced in extreme programming: Some of the good practices that have been recognized in the extreme programming model and suggested to maximize their use are given below: ● Code Review: Code review detects and corrects errors efficiently. It suggests pair programming as coding and reviewing of written code carried out by a pair of programmers who switch their works between them every hour. ● Testing: Testing code helps to remove errors and improves its reliability. XP suggests test- driven development (TDD) to continually write and execute test cases. In the TDD approach test cases are written even before any code is written.
● Incremental development: Incremental development is very good because customer feedback is gained and based on this development team comes up with new increments every few days after each iteration.
● Simplicity: The main principle of the XP model is to develop a simple system that will work efficiently in the present time, rather than trying to build something that would take time and may never be used. It focuses on some specific features that are immediately needed, rather than engaging time and effort on speculations of future requirements. Applications of Extreme Programming (XP): Some of the projects that are suitable to develop using the XP model are given below: ● Small projects: XP model is very useful in small projects consisting of small teams as face-to- face meeting is easier to achieve.
● Projects involving new technology or Research projects: This type of project face changing requirements rapidly and technical problems. So the XP model is used to complete this type of project. Extreme Programming (XP) is an Agile software development methodology that focuses on delivering high-quality software through frequent and continuous feedback, collaboration, and adaptation. XP emphasizes a close working relationship between the development team, the customer, and stakeholders, with an emphasis on rapid, iterative development and deployment. XP includes the following practices: