UNIT NO 1
I) Introduction and basics of Software Modelling :
1.1 Software Life Cycle Models (Revision of SE)
1.2 System Concepts
1.3 Project Organization
1.4 Communication in Project Management
1.5 Risk management in Project Management
1) Waterfall Model:
The Waterfall Model was the first Process Model to be introduced.
It is also referred to as a linear-sequential life cycle model.
It is very simple to understand and use.
In a waterfall model, each phase must be completed before the next phase can begin and there is no
overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software development.
Design:
Requirement Gathering and
analysis − All possible
requirements of the
system to be developed are
captured in this phase and
documented in a
requirement specification
document.
System Design − The
requirement specifications
from first phase are
studied in this phase and the
system design is prepared.
This system
design helps in specifying
hardware and system
requirements and helps
in defining the overall system
architecture.
Implementation − With
inputs from the system
design, the system is first
developed in small programs
called units, which are
integrated in the
next phase. Each unit is
developed and tested for its
functionality, which
is referred to as Unit Testin
Requirement Gathering and analysis –
All possible requirements of the system to be developed are captured in this phase and documented in are
requirement specification document.
System Design −
The requirement specifications from first phase are studied in this phase and the system design is prepared.
This system design helps in specifying hardware and system requirements and helps in defining the overall system
architecture.
Implementation –
With inputs from the system design, the system is first developed in small programs called units, which are
integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit
Testing
Integration and Testing − All the units developed in the implementation phase are integrated into a system
after testing of each unit. Post integration the entire system is tested for any faults and failures.
Deployment of system − Once the functional and non-functional testingis done; the product is deployed in the
customer environment or released into the market.
Maintenance −
There are some issues which come up in the client environment. To fix those issues, patches are
released. Also to enhance the product some better versions are released. Maintenance is done to deliver these
changes in the customer environment
All these phases are
cascaded to each other in
which progress is seen
as
flowing steadily downwards
(like a waterfall) through the
phases. The next
phase is started only after the
defined set of goals are
achieved for previous
phase and it is signed
off, so the name
"Waterfall Model"
All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards through the phases. The next phase is started only after the defined set of goals are achieved for
previous phase and it is signed off, so the name "Waterfall Model"
Requirement Gathering
and analysis − All possible
requirements of the
system to be developed are
captured in this phase and
documented in a
requirement specification
document.
System Design − The
requirement specifications
from first phase are
studied in this phase and the
system design is prepared.
This system
design helps in specifying
hardware and system
requirements and helps
in defining the overall system
architecture.
Implementation − With
inputs from the system
design, the system is first
developed in small programs
called units, which are
integrated in the
next phase. Each unit is
developed and tested for its
functionality, which
is referred to as Unit Testing.
Integration and Testing −
All the units developed in the
implementation
phase are integrated into
a system after testing of
each unit. Post
integration the entire system
is tested for any faults and
failures.
Deployment of system −
Once the functional and non-
functional testing
is done; the product is
deployed in the customer
environment or released
into the market.
Maintenance − There
are some issues which
come up in the client
environment. To fix those
issues, patches are released.
Also to enhance
the product some better
versions are released.
Maintenance is done to
deliver these changes in the
customer environment.
All these phases are
cascaded to each other in
which progress is seen
as
flowing steadily downwards
(like a waterfall) through the
phases. The next
phase is started only after the
defined set of goals are
achieved for previous
phase and it is signed
off, so the name
"Waterfall Model". In this
model,
phases do not overlap.
Waterfall Model -
Application
Application:
Requirements are very well documented, clear and fixed.
Product definition is stable.
Technology is understood and is not dynamic.
There are no ambiguous requirements.
The project is short
Advantages:
Simple and easy to understand and use
Easy to manage due to the rigidity of the model. Each phase has specified live rabbles and a review
process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well documented.
Disadvantages:
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects
It is difficult to measure progress within stages.
Cannot accommodate changing requirements.
Adjusting scope during the life cycle can end a project.
2)Spiral Model:
The spiral model is a combination of sequential and prototype models. There are specific activities that are done in
one iteration (spiral) where the output is a small prototype of the large software.
The same activities are then repeated for all the spirals until the entire software is built.
There are five phases in Spiral Model-
Planning of each phase and next phase.
Risk Analysis
Engineering
Execution
Evaluation
Testing and development starts from planning phase and carries up to evaluation phase.
All the requirements are collected in the planning phase itself.
In the risk analysis phase we assume all the risks could be occurred during testing and development. In engineering
and execution phase we start executing the test cases which are planned and identified and finally we move to the
evaluation phase where we review the progress of the project.
The reason of success of Spiral Model is that analysis and engineering both carried out in each phase of the project.
Advantages of Spiral Model:
Best approach for testing and development for complex and large project.
Cost effective.
Better risk analysis and management.
Better requirement analysis.
Fast and easy development.
Better time management.
Easy to change requirements and documentation if any change happens in the middle of development.
Disadvantages:
Difficult to follow strategy for small projects.
Not much useful for low risk projects.
Need more experience resources as process is bit complex.
Large documentation. When Spiral Model should be followed:
For large and big projects.
For high risk projects.
If requirements are more complicated.
If frequent changes required in the project.
3)Prototype Model:
The basic idea in Prototype model is that instead of freezing the requirements before a design or coding can
proceed, a throw away prototype is built to understand the requirements.
This prototype is developed based on the currently known requirements. Prototype model is a software
development model. By using this prototype, the client can get an “actual feel” of the system, since the interactions
with prototype can enable the client to better understand the requirements of the desired system. Prototyping is an
attractive idea for complicated and large systems for which there is no manual process or existing system to help
determining the requirements.
The prototype are usually not complete systems and many of the details are not built in the prototype.
The goal is to provide a system with overall functionality
Diagram:
Advantages:
Users are actively involved in the development
Since in this methodology a working model of the system is provided, the users get a better understanding
of the system being developed.
Errors can be detected much earlier.
Quicker user feedback is available leading to better solutions.
Missing functionality can be identified easily
Confusing or difficult functions can be identified Requirements validation, Quick
implementation of, incomplete, but functional, application
Disadvantages:
The client involvement is more and it is not always considered by the developer.
It is a slow process because it takes more time for development.
Many changes can
disturb the rhythm of the
development team.
It is a throw away
prototype when the users
are confused with it.
Many changes can disturb the rhythm of the development team.
It is a throw away prototype when the users are confused with it.
When to use Prototype model:
Prototype model should be used when the desired system needs to have alot of interaction with the end users.
Prototyping ensures that the end users constantly work with the system and provide a feedback which is
incorporated in the prototype to result in a useable system. They are excellent for designing good human computer
interface systems
4)RAD MODEL:
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
Advantages:
Reduced development time.
Increases reusability of components
Quick initial reviews occur
Encourages customer feedback
Integration from very beginning solves a lot of integration issues.
Disadvantages:
Depends on strong team and individual performances for identifying business requirements.
Only system that can be modularized can be built using RAD
Requires highly skilled developers/designers.
High dependency on modeling skills
5)Agile Model:
The meaning of Agile is versatile.
“Agile process model" refers to a software development approach based on iterative development. Agile
methods break tasks into smaller parts do not directly involve long term planning.
The project scope and requirements are laid down at the beginning of the development process.
Plans regarding the number of iterations, the duration and the scope of each iteration are clearly defined in
advance.
Each iteration is considered as a short time "frame" in the Agile process model, which typically lasts from one to
four weeks.
The division of the entire project into smaller parts helps to minimize the project risk and to reduce the overall
project delivery time requirements.
Each iteration involves a team working through a full software development life cycle including planning,
requirements analysis, design, coding, and testing before a working product is demonstrated to the client.
1. Requirement Gathering
2. Design the Requirements
3. Construction / Iteration
4. Testing / Quality Assurance
5. Deployment
6. Feedback
When To Use the Agile Model?
When new changes need to be implemented. The freedom that playfulness gives for change is very important.
New changes can be implemented at a very low cost due to the frequency of new increments.
Implementing a new feature requires developers to lose only a few days or even just hours of work to get it
back and implemented.
In the Agile model, unlike the Waterfall model, very limited planning is required to start a project.
Agile believes that the needs of end users are always changing in the dynamic business and IT world.
Changes can be discussed and features can be redesigned or removed based on feedback.
Advantages :
It reduces the total development time of the whole project.
Agile development emphasizes face-to-face communication among team members, leading to better
collaboration and understanding of project goals.
Customer representatives get the idea of updated software products after each iteration. So, it is easy for him to
change any requirement if needed.
Agile development puts the customer at the center of the development process, ensuring that the end product
meets their needs.
Disadvantages :
The lack of formal documents creates confusion and important decisions taken during different phases can be
misinterpreted at any time by different team members.
It is not suitable for handling complex dependencies.
The agile model depends highly on customer interactions so if the customer is not clear, then the development
team can be driven in the wrong direction.
Agile development models often involve working in short sprints, which can make it difficult to plan and
forecast project timelines and deliverables. This can lead to delays in the project and can make it difficult to
accurately estimate the costs and resources needed for the project.
Agile development models require a high degree of expertise from team members, as they need to be able to
adapt to changing requirements and work in an iterative environment. This can be challenging for teams that
are not experienced in agile development practices and can lead to delays and difficulties in the project.
Due to the absence of proper documentation, when the project completes and the developers are assigned to
another project, maintenance of the developed project can become a problem.
1.2 System Concepts:
Definition:A System is an organized set of interrelated components working together toward a common
goal.
Elements of a System:
1. Input – Data entering the system
2. Processing – Transforming input into output
3. Output – Final result
4. Feedback – Data about output performance
5. Control – Guides system behavior
Characteristics:
i. Speed
ii. Accuracy
iii. Diligence
iv. Versatility
v. Reliability
vi. Memory
Types of Systems:
Physical or Abstract
Open or Closed
Man-made or Natural
Diagram: General System Model
Input → Processing → Output
↑ ↓ ↓
Control ← Feedback ←
1.3 Project Organization:
Definition:
Project organization refers to the structure and team roles assigned to manage and execute a software
project efficiently.
Types of Project Structures:
1. Hierarchical (Functional)
o Traditional departments (design, testing, etc.)
2. Matrix Structure
o Combines functional and project structures
o Team members report to both functional & project managers
3. Projectized Structure
o Entire focus on the project
o Project Manager has full authority
Roles in Software Projects:
Project Manager
Team Lead
Developer
Tester
Business Analyst
Client
Diagram: Matrix Organization Structure
Functional Manager → Team Member
↑ ↓
Project Manager → Team Member
1.4 Communication in Project Management:
Definition:
Communication in project management is the exchange of project-related information among stakeholders to
ensure project success.
Types of Communication:
Formal: Reports, meetings
Informal: Emails, chats
Internal/External: Within or outside the organization
Vertical/Horizontal: Across levels or same level
Components of Effective Communication:
1. Sender
2. Message
3. Medium (channel)
4. Receiver
5. Feedback
Communication Methods:
Verbal (meetings, calls)
Written (emails, reports)
Visual (charts, diagrams)
Diagram: Communication Process:
Sender → Message → Channel → Receiver → Feedback
1.5 Risk Management in Project Management
Definition:
Risk Management is the process of identifying, analyzing, and responding to project risks to minimize their
impact.
Types of Risks:
1. Technical Risks – Software complexity, new technology
2. Project Risks – Cost, time, scope issues
3. Business Risks – Market change, budget cuts
Risk Management Process:
1. Risk Identification
2. Risk Analysis (Qualitative & Quantitative)
3. Risk Prioritization
4. Risk Response Planning
o Avoid, Mitigate, Transfer, Accept
5. Risk Monitoring & Control
Diagram: Risk Management Cycle:
Identify → Analyze → Plan Response → Monitor → Control