0% found this document useful (0 votes)
8 views

chapter 6 Software Process Model

Uploaded by

Ratna Rajya
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

chapter 6 Software Process Model

Uploaded by

Ratna Rajya
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Chapter: 7

Software Project Concept


6.1 Software Project Concept
6.2 Concept of software development process
6.3 Concept SDLC life cycles
6.4 System Analyst Vs Software Engineer
6.5 Requirement Collection Methods
6.6 Concept of system design
6.7 Software and quality
6.8 Software development model: Waterfall, Prototype, Agile

6.1 Software Project


The program is a sequence of instructions. An instruction is a command given to the computer to perform a
certain specified operation on given data.
A set of programs written for a computer to perform a particular task is called software.
A project is a well-defined task, which is a collection of several operations done in order to achieve goal.
A Software Project is the complete procedure of software development from preliminary study or survey or
also called requirement gathering, followed by feasibility study, investigation and fact recording for properly
carrying out the system study which is again followed by, system analysis of the proposed system, system
design, system testing, system implementation and system maintenance which is carried out according to the
execution methodologies in a specified period of time to achieve the intended software product.
6.2 Concept of software Development Process
A software development process is the process of dividing software development work into smaller, parallel
or sequential steps or sub processes to improve design, product management. It is also known as a software
development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and
artifacts that are created and completed by a project team to develop or maintain an application.
6.3 Concept of SDLC Life Cycle
 System development life cycle is a systematic process of developing any software systems and
describes the process of planning, creating, testing and deploying an information system.
 Importance and the Necessity of SDLC
SDLC should result in high quality software that meets customer expectations, reaches completion
within time and cost estimates, works effectively in the current and planned information and
communication technology (ICT) infrastructure and is cost effective to enhance and maintain.

 It helps to determine the needs of the user.


 It supports constant communications between the developer and the user.
 SDLC helps for easy identification of missing requirements.
 It ensures that the software meets the needs of its users.
 It supports proper development and testing.

1
 Proper documentation support for future upgrade and maintenance.
 It provides flexibility for adding features even after the software is developed.

System
Study

System
Maintenance
Analysis

System System
Implementation Design

System System
Testing Development

Fig: Phases of SDLC

 System Study
 It is the process of defining the current problem, determining why a new system is needed and
identifying the objectives of the proposed system.
 After collecting the different information of an organization, the system development team
proposes the new system with its benefits.

 System Analysis
 In this phase, a detailed problem analysis is undertaken to understand the nature, scope,
requirements and feasibility of the new system.
 The following are the major issues of system analysis:
• Data collection
• Flow Chart preparation
• Analyzing the findings.

 System Design
 In this phase, the system design involves designing of a new system or computer application
that will meet the requirements identified during system analysis.
 The types of system design are:
• Logical Design
• Physical Design

2
 System Development
 After the design stage is complete, the final program specification and the file design is handed
over to the programmer.
 Then the programmers begin to develop the program by using a suitable High level language.
 System Testing
 The process of performing a variety of tests on a system to explore functionality or to finding an
error.
 There are two types of testing methods:
• White Box Testing
• Black Box Testing
 System Implementation
 When the software is finally ready and after testing that software will be delivered to the user
for the use.
 Implementation includes coding, testing and installation.
 Maintenance and reviews
 Once when the users starts using the developed system then the actual problems comes up and
needs to be solved from time to time.
 Types of maintenance:
• Corrective maintenance
• Adaptive maintenance
• Perfective maintenance
• Preventive maintenance
 The last phase of the system development or implementation process is the system review. This
is usually carried out by a grouping consisting of representative from the client departments,
internal audit, system analyst and data processing. Its basic purpose is to see if the system has
met the objectives set for it or not. It is the final phase of SDLC.

3
Feasibility study
 In case the system proposal is acceptable to the management, the next phase is to examine the
feasibility of the system.
 Feasibility is the determination of whether or not a system or project is worth doing.
 The feasibility study is basically the test of the proposed system in the light of its workability, meeting
user’s requirements, effective use of resources and the cost effectiveness.
 Need of Feasibility Study:
1. It determines whether the system meets the goal of the client or not.
2. It focuses on the boundary of the system’s outline.
3. It provides quality information for decision-making.
4. It helps to increase investment in the system.
5. It provides documentation of the investigated system.
 Different levels of feasibility study are as follows:
1. Technical feasibility
• Technical feasibility concerns with the availability of the hardware, software and the support
equipment for the complete development of the system.
• If all the technical requirements for the new system can be fulfilled, then the development of
new system will be feasible.
2. Economical feasibility
• Economic feasibility relates to the budget for a project and how money will be spent.
• The main objective of economic feasibility is to calculate different cost like equipment cost,
operating cost, manpower cost and development cost of the new system.
3. Operational feasibility
• Operational feasibility is mainly related with human skill. The current staffs can work in the new
system after training or not.
• If the whole staffs need very long time and more cost to be trained in the new system, then the
new system will not be feasible.
4. Behavioral feasibility
• Behavioral feasibility is concerned with the behavior of the user, person, or the society for the
new system.
• Generally, most of the traditional employees are not easily ready to upgrade them with the
new system.
5. Legal feasibility
• Legal feasibility is mainly focus to analyze any violation of government laws or not.
• It is concerned with the legal issues such as tax, copyright, registration and trade mark of the
system.
6. Schedule feasibility
Schedule feasibility relates to the amount of time allocated to the development of the new system is
feasible for organization or not.
7. Social Feasibility
Social Feasibility is a determination of whether a proposed system will be acceptable to the people or
not.
8. Management Feasibility
Management Feasibility is a determination of whether a proposed will be acceptable to management
or not.

4
System
A system is a powerful collection of interrelated components that work together to achieve specific objectives.

Data Process Information

Storage

Fig: System

 Elements/ Components of System


1. Hardware
• Hardware refers to the physical layer of the information system.
• It includes computers, scanners, networks, digital devices etc.
2. Software
• Software refers to the logical layer of the information system that makes hardware
function properly.
• It includes system software and application software.
3. Database
• A large collection of related data that is accessed through software.
4. Processes
• The methods that define the use of system element that perform by users, managers
and IT staffs.
5. people
• People refer to users who interact with information system
• Managers, technicians, sales representatives, corporate officers etc are internal users
and customers, suppliers etc. are external users.

5
Information System:
- Information system is the system that arranges data, processes, information technology and
manpower of an organization so as to collect, process, store and provide the information that helps to sustain
and support organizational progress in the competitive world.

- It converts the raw data within the organization into the valuable information needed for
organizational goal.
Types of Information System
1. Office automation System (OAS)
• The information system that supports general work for handling and managing documents and
facilitating communication is known as office automation systems.
• Example: Microsoft office.
2. Transactional Processing System (TPS)
• A transaction processing system collects, stores, modifies and retrieves the transactions of an
organization.
• It is generally used by the low level staffs who interacts with the customers directly.
• Example: Billing system, Banking system, computerized attendance system etc.
3. Management Information System (MIS)
• MIS is an information system that aids the management of an organization to successfully coordinate
with other members to develop broad long term vision of an organization.
• Example: Observation of the sales and demands using statistical analysis and control production on
that basis to meet the user demand.

System Analyst
 A system Analyst is a person who is involved in analyzing, designing, implementing and evaluating
computer-based information systems to support the decision making activities and operations of an
organization.
 System analyst analyzes the problems, plans solutions, recommends software and systems and
coordinates development.
 The system analyst should have:
1. The knowledge about modern information technology
2. The knowledge about the business application.

Management
Computer System and
Technology Analyst Organization

6
A good system analyst is:
(a) Business knowledge
a system analyst must clearly understand the environment for which the system is being developed.

(b) Technical skills


a system analyst must be well trained in relevant areas of computer science such as hardware, software and
programming knowledge.

(c) Good communicator:


The analyst should have good communication and interpersonal skills. The analyst will interact with people at
all levels of organization structure.

(d) Problem solving skills


The system analyst should have a wide experience of good problem solving skills and creativity.

Role of a system Analyst


1. Change Agent
• Analyst must carefully plan, monitor and implement the new changes in an organization so that
the user will accept the new change.
2. Investigator and monitor
• Analyst may have to investigate the failure of an existing system and find out problems then
accordingly find the solution.
3. Architect
• The analyst’s role as an architect is an interface between the user’s logical design requirements
and the detailed physical system design.
4. Psychologist
• The analyst reaches people, interprets their thoughts and draw conclusion from these
interaction.
5. Motivator
• The analyst will prepare and provide training and proper motivation to use the system.

Responsibilities of a system Analyst


1. Defining Requirements
• It is the most important and difficult duty of an analyst is to understand the user’s requirements
and analyst may use different fact finding techniques such as interview, questionnaire,
observation etc.
2. Prioritizing Requirements
• By conducting common meeting and arriving at an agreement, analyst can prioritize the
requirements.
3. Analysis and Evaluation
• On the basis of the collected information, the system analyst has to evaluate and find the best
features of the new information system which will fulfill the user’s requirements.

7
4. Solving problems
• System analyst is basically a problem solver. S/he must study the problem in depth and suggest
the most appropriate solution to it.
5. Drawing up functional specification
• The main duty of the analyst is to obtain the functional specification of the system to be
designed and specification must be non-technical so that users and managers can understand.
6. Designing system
• One of the major duties of the analyst is to design the system and it must be understandable to
the system implementer.
7. Evaluating system
• When the information system has been implemented in the organization, the system analyst
must critically evaluate it in order to find out its drawbacks especially for a reasonable period of
time.
Characteristics of system analyst
1. Knowledge of people
2. Knowledge of business function
3. Knowledge of data processing principles
4. Ability to communicate
5. Flexibility
6. An analytical mind
7. Well educated with sharp mind

8
Software Engineers

Software Engineers are computer science professionals who use knowledge of engineering principles and programming
languages to build software products, develop computer games, and run network control systems.

A Software engineer’s responsibilities may also include:

1. Working with users to determine their software needs.


2. Designing, developing and testing a system or application according to the user’s specifications.
3. Drawing diagrams and models that help developers create the appropriate code for the system or application.
4. Documenting the system or application in detail to help those responsible for future maintenance.
5. Maintaining the system or application with updates and fixes as necessary.
6. Recommending software upgrades for existing systems or applications.
7. Collaborating with developers and other engineer to create software.

The attributes that smart engineers ought to possess are as follows:

1. Exposure to systematic techniques.


2. Smart technical data of the project areas.
3. Smart programming talents.
4. High motivation
5. Sound data of fundamental of applied science.
6. Intelligence

System Analyst Vs Software Engineer

System Analyst Software Engineer


System analysts are responsible for determining Software engineer is concerned about designing
how a business computer system is serving the and developing engineering specified software of
needs of the company, and what can be done to the highest quality.
make those systems and procedures more
effective.
A system analyst explores and documents A software engineer designs software to meet
requirements. requirements.
A system analyst is more responsible for Software engineer’s responsibilities lie with
documenting the progress of a project for quality developing and programming the software.
control and relaying information about the end
user’s preferences to the engineer or
programmer.
System analysts need to work with a bid amount Software engineers work on building new
of data scrape it, visualize it or make software to software.
work with it.
A system analyst does more problem research Software engineer develops their product to the
and plans solutions and software and system show result.
recommendations to solve these problems.
A person working as a system analyst is more A person working as a software engineer is less
experienced and hence more paid than a experienced and hence less paid than a system
software engineer. analyst.

9
Requirements Collection Methods
Collection of requirements is one of the core functions of system analysis. System analysis must collect
information about the current system and how users would like to improve their performance with the new
information system. Understanding the user’s requirement better will help the system developing team
deliver a proper system to the end users in a limited time and budget. During system analysis, data are
collected from the various available sources by using different methods, some of them are:
1. Interview:
Interviews of stakeholders and users are critical to developing great software. Without understanding
the goals and expectations of the users and stakeholders, we are very unlikely to satisfy them.
2. Survey/Questionnaire:
Questionnaires, or surveys, allow an analyst to collect information from many people in relatively short
amount of time. This is especially helpful when stakeholders are spread out geographically, or there
are dozen to hundreds of respondents whose input will be needed to help establish system
requirements.
3. On-site Observation:
By observing users, an analyst can identify a process flow, steps, pain points and opportunities for
improvement. Observations can be passive or active (asking questions while observing). Passive
observation is better for getting feedback on a prototype (to refine requirements), where active
observation is more effective at getting an understanding of an existing business process. Either
approach can be used.
4. Brainstorming:
Brainstorming is used in requirement gathering to get as many ideas as possible from group of people.
Generally used to identify possible solutions to problems, and clarify details of opportunities.
5. Document Analysis:
Reviewing the documentation of an existing system can help when creating requirement document, as
well as driving gap analysis for scoping of migration projects.
6. Focus Group:
A focus group is a gathering of people who are representative of the users or customers of a product to
get feedback. The feedback can be gathered about needs/opportunities/ problems to identify
requirements, or can be gathered to validate and refine already elicited requirements.
7. Prototyping:
Prototyping is iterative process that heavily involves the users to complete. The user provides the
requirements, in which the analyst can plug in directly and show the user the outcome. Prototyping is
dependent on user interaction and cannot be utilized as its own method of gathering requirements.
8. Requirement Workshops:
Workshops can be very effective for gathering requirements. More structured than a brainstorming
session, involved parties collaborate to document requirements.

10
Software and Quality:
Software quality is defined as a field of study and practice that describes the desirable attributes of software
products. Software quality is a software which is reasonably bug or defect free, delivered in time and within
the specified budget, meets the requirements or expectations and maintainable. In the software engineering
context, software quality reflects both functional quality as well as structural quality.
Key Aspects that conclude software quality include:
 Good design – It’s always important to have a good and aesthetic design to please users
 Reliability – Be it any software it should be able to perform the functionality impeccably without
issues
 Durability- Durability is a confusing term, In this context, durability means the ability of the software
to work without any issue for a long period of time.
 Consistency – Software should be able to perform consistently over platform and devices
 Maintainability – Bugs associated with any software should be able to capture and fix quickly and
news tasks and enhancement must be added without any trouble
 Value for money – customer and companies who make this app should feel that the money spent on
this app has not fine to waste.

System Design

 The system design involves designing of a new system or computer application that will meet the
requirements identified during system analysis.
 It involves designing of various things such as output design, input design, files design processing and
general program design etc.
 The types of system design are:
• Logical Design
 Theoretically designing of the system is called logical design.
 The system could be designed on the basis of the requirements.
 The main idea of this part is just the creation of the logic part of the program.
• Physical Design
 The conversion of logical design into physical specification used designing tools and
techniques is called physical design.
 It is more detail and complex jobs describing the solution of the problem.
 It uses algorithms, flowcharts, pseudo codes, decision table, decision tree, E-R diagram,
data flow diagram etc.

11
System Design Tools
 The system design tool is used by system analysts for representing and facilitating comprehension of
complex processes and procedures.
 Some of these tools are an algorithm, flowchart, pseudo code, context diagram, Data Flow Diagram
(DFD), decision table, decision tree, E-R (Entity-Relationship) diagram, prototyping and CASE tool etc.
1. Algorithm:
 A step by step procedure to solve a problem is known as algorithm.
• The instruction should be accurate and number of instruction should be finite.
• An algorithm is expressed in Pseudo code.
 Some properties of algorithm are as follows:
1. Finiteness: an algorithm must terminate after a finite number of steps.
2. Definiteness: Each step of algorithm must be clearly defined and unambiguously specified for
each case.
3. Input: an algorithm has zero or more inputs.
4. Output: an algorithm has one or more output.
• The steps of an algorithm are given below:
step 1: start
Step 2: declaring
Step 3 : input
Step 4 : process or check condition
Step 5: display
Step 6: end

Example:
1. Write an algorithm to multiply two numbers and shows their product.
2. Write an algorithm to input a number and decide whether it is even or odd.
3. Write an algorithm to calculate the sum of natural numbers up to 100.
4. Write an algorithm to find area of circle?
5. Writ an algorithm to find area of rectangle?

2. Flowchart:
• A flowchart is a graphical representation of an algorithm.
• Flowchart are defined below:

12
Example:
1. Draw a flowchart to multiply two numbers and shows their product.
2. Draw a flowchart to input a number and decide whether it is even or odd.
3. Draw a flowchart to calculate the sum of natural numbers up to 100.
4. Draw a flowchart to find area of circle?
5. Draw a flowchart to find area of rectangle?

Difference between System Flowchart and Program Flowchart


System Flowchart Program Flowchart
It gives a broad overview of the overall system. It gives a specific view of the control flow of a program.
It shows the data flow of a system. It shows the instruction flow of a program.
It has many categories like E-R diagram, DFD etc. It has no category.
System flowchart is designed by the system Program flowchart is designed by the programmer.
designer.
Since there exist different kinds of symbols, one Since there are limited symbols, it is easy to understand
must have good knowledge to understand the for normal people also.
system flowchart.

3. Data Flow Diagram (DFD)


• A Data Flow Diagram is a graphical representation of the flow of data through an information
system.
• It shows how information is input to and output from the system, the sources and destinations
of that information, and where that information is stored.
• Information not shown in a DFD includes how long processes take, and whether those
processes operate in series or parallel.
• The main components are: process, data store, data flow and external entities.

Symbols Purpose

Process

Data store

Source/Sink

Data flow

13
DFD can be categorized in the following forms:
 Context Diagram/0 level DFD
• The diagram that shows the scope of the system, indicating which elements are inside
and which are outside the system is known as context diagram.
• A single process represents the whole system in context diagram.
• It is also called zero level DFD.

 1 level DFD
• Level 1 DFD breaks down the main process into sub-processes that can then be seen on
a more deep level.
• Level 1 DFD contains data stores that are used by the main process.

14
4. E-R Diagram
• Entity relationship diagram displays the relationships of entity set stored in a database.
• ER diagrams help you to explain the logical structure of databases.
• The main components of ERD are:
• Rectangles: It represents the entity. It contains objects used in relational databases.
• Oval or Ellipse: It represents attributes of entities.
• Diamonds: This symbol represents relationship types
• Lines: It links attributes to entity types and entity types with other relationship types
• Primary key: attributes are underlined
• Double Ellipses: Represent multi-valued attributes

5. USE Case
• A use case is a methodology used in system analysis to identify, clarify and organize system
requirements.
• Components:
 Actor ( role play)
 Use case( Function/operation)
 Communication link
 Generalization
 Boundary of system

15
6. Decision Table
• Decision table is a technique to represent logic in program development in computer.
• When several different conditions are involved for specifying complex policies and decision
making rules, then decision table becomes very handy.
• There are 3 parts in the decision table.
1. Condition stub:
This part of table contains the various that apply in the situation the table is modeling.
2. Action stub
This part of table lists the actions that result for a given set of conditions.
3. Rules
This part of table specifies which actions are to be followed for a given set of conditions.

7. Decision Tree
• A decision tree is a graphic device of a decision making process.
• It is a graphical presentation of the various alternatives.
• It is also known as tree-diagram.
• This decision tree does not work for complex system analysis but simple decision tree can be
easily understood by non technical users.
• Example:
A decision tree for the discount policy is shown below:

Discount Policy

Member(M) Non-Member(NM)

M<=10000 M>1000 M<=10000 M>1000


0 0
D=10% D=20% D=5% D=10%

16
System Development model
 A system development model in software engineering is a framework that is used to structure, plan
and control the process of developing an information system.
 The different types of system development model are as follows:
1. Waterfall model
• This model is the simplest and the most popular model of SDLC.
• This model has different phases or stages that are organized in a linear order.
• Waterfall model is a systematic and sequential model to develop software that begins with
requirements analysis to operation and maintenance.
• The fundamental processes of waterfall model are as follows:

 Requirement Gathering stage


• During this phase, detailed requirements of the software system to be developed are gathered
from client.
• System Design
• In this stage the systems design process partition the requirements to either hardware or
software systems.

17
 Implementation
• Once program is designed it should be tested. In this phase of waterfall model each unit of the
system is tested to ensure that each unit meets its specification or not.
 Testing
• Each unit of the system is tested to make a full-fledge system and tested to that complete
system to confirmed that the system satisfies all the system requirement specification or not.
 Deployment
• Once the functional and non-functional testing is done; the product is deployed in the customer
environment or released into the market.
• Maintenance
• When the system is delivered some errors may occur due to change in operating system or
peripheral devices. So some kind of support should be provided.
• Maintenance is the process or correcting errors or providing support to the customers after
delivering the system.
 Advantages:
• It is simple and easy to understand and use.
• It is suitable for small size project.
• It is less expensive.
 Disadvantages:
• It has no back track mechanism.
• It is not suitable for large size project.
• Waterfall model can be used when
• Requirements are not changing frequently
• Application is not complicated and big.
• Requirement is clear
• Environment is stable
• Resources are available and trained.

18
2. Spiral model
• It is a software development process combining the elements of both waterfall and prototyping
model.
• Each phase in spiral model begins with a design goal and ends with the client reviewing the
progress
• It is intended for large, expensive and complicated projects.
• The diagram of spiral model is:

 Planning
• It includes estimating the cost, schedule and resources for the iteration. It also involves
understanding the system requirements for continuous communication between the system
analyst and the customer.
• Risk Analysis
• Identification of potential risk is done while risk mitigation strategy is planned and finalized.
 Engineering
• It includes testing, coding and deploying software at the customer site.
• Evaluation
• Evaluation of software by the customer. Also, includes identifying and monitoring risks such as
schedule slippage and cost overrun

19
 Advantages:
• High amount of risk analysis hence, avoidance of Risk is enhanced.
• Good for large and mission-critical projects.
• Strong approval and documentation control.
• Additional Functionality can be added at a later date.
• Software is produced early in the software life cycle.
 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.
 Spiral model can be used when
• When the costs and risk evaluation is important.
• For medium to high risk.
• When users are unsure of their needs

20
3. Prototype model
• The prototyping model is a system development method in which a prototype is built, tested
and then reworked as necessary until an acceptable prototype is finally achieved from which
the complete system or product can now be developed.

1. Requirements gathering and analysis


A prototyping model starts with requirement analysis. In this phase, the requirements of the system
are defined in detail. During the process, the users of the system are interviewed to know what their
expectation from the system is.
2. Quick design
The second phase is a preliminary design or a quick design. In this stage, a simple design of the system
is created. However, it is not a complete design. It gives a brief idea of the system to the user. The quick design
helps in developing the prototype.
3: Build a Prototype
In this phase, an actual prototype is designed based on the information gathered from quick design. It
is a small working model of the required system.

21
4: Initial user evaluation
In this stage, the proposed system is presented to the client for an initial evaluation. It helps to find out
the strength and weakness of the working model. Comment and suggestion are collected from the customer
and provided to the developer.
5: Refining prototype
If the user is not happy with the current prototype, you need to refine the prototype according to the
user's feedback and suggestions.
This phase will not over until all the requirements specified by the user are met. Once the user is satisfied with
the developed prototype, a final system is developed based on the approved final prototype.
6: Implement Product and Maintain
Once the final system is developed based on the final prototype, it is thoroughly tested and deployed
to production. The system undergoes routine maintenance for minimizing downtime and prevent large-scale
failures.
 Advantages:
• Users are actively involved in the development.
• The users get a better understanding of the system being developed.
• Errors can be detected much earlier in prototype model.
• Quicker user feedback is an available leading to better solutions of the system.
• Missing functionality can be identified easily.
 Disadvantages:
• This model leads to implementing and then repairing way of building systems.
• This model may increase the complexity of the system as scope of the system may expand
beyond original plans.
 Prototype model can be used when
• Prototype model should be used when the desired system needs to have a lot of interaction
with the end user.

22
Agile Development Approach
Agile is the ability to create and respond to change. The agile software development model was mainly
intended for helping developers build a project which can adapt to transforming requests quickly. So, the most
important endeavor for developing the agile method is to make easy and rapid project achievements. It can be
achieved by correcting the progress of the project by eliminating activities, which may not be crucial for that
specific project.
Agile software development emphasizes four core values:

 Individual and team interactions over processes and tools.


 Working software over comprehensive documentation.
 Customer collaboration over contract negotiation.
 Responding to change over following a plan.

23
There are five stages in the agile development approach:

 Planning
 Requirement analysis
 Designing
 Building
 Testing

The advantages of the Agile Model are as follows −


 Promotes teamwork and cross training.
 Functionality can be developed rapidly and demonstrated.
 Resource requirements are minimum.
 Suitable for fixed or changing requirements
 Delivers early partial working solutions.
 Good model for environments that change steadily.
 Minimal rules, documentation easily employed.
 Enables concurrent development and delivery within an overall planned context.
 Little or no planning required.
 Easy to manage.
 Gives flexibility to developers.
The disadvantages of the Agile Model are as follows −
 Not suitable for handling complex dependencies.
 More risk of sustainability, maintainability and extensibility.
 Depends heavily on customer interaction, so if customer is not clear, team can be driven in the
wrong direction.
 There is a very high individual dependency, since there is minimum documentation generated.
 Transfer of technology to new team members may be quite challenging due to lack of
documentation.

24

You might also like