SEPM
SEPM
Importance
Q. 1 What is a Software?
In a computer system, the software is basically a set of instructions or
commands that tell a computer what to do. In other words, the software is a
computer program that provides a set of instructions to execute a user’s
commands and tell the computer what to do. For example like MS-
Word, MS-Excel, PowerPoint, etc.
Types of Software
It is a collection of data that is given to the computer to complete a particular
task. The chart below describes the types of software:
Above is the diagram of types of software. Now we will briefly describe each
type and its subtypes:
• System Software
• Operating System
• Language Processor
• Device Driver
• Application Software
• General Purpose Software
• Customize Software
• Utility Software
System Software
System software is software that directly operates the computer
hardware and provides the basic functionality to the users as well as to the
other software to operate smoothly. Or in other words, system software
basically controls a computer’s internal functioning and also controls
hardware devices such as monitors, printers, and storage devices, etc. It is
like an interface between hardware and user applications, it helps them to
communicate with each other because hardware understands machine
language(i.e. 1 or 0) whereas user applications are work in human-readable
languages like English, Hindi, German, etc. so system software converts the
human-readable language into machine language and vice versa.
Components of Software
There are three main components of the software:
.
1. Requirements Analysis and Specification
Requirement Analysis and specification phase aims to understand the exact
requirements of the customer and document them properly. This phase
consists of two different activities.
1. 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).
2. 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.
2. Design
The goal of this Software Design 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).
• High-Level Design (HLD): This phase focuses on outlining the
broad structure of the system. It highlights the key components
and how they interact with each other, giving a clear overview of
the system’s architecture.
• Low-Level Design (LLD): Once the high-level design is in place,
this phase zooms into the details. It breaks down each component
into smaller parts and provides specifics about how each part will
function, guiding the actual coding process.
3. Development
In the Development Phase software design is translated into source code
using any suitable programming language. Thus each designed module is
coded. The unit testing phase aims to check whether each module is working
properly or not.
• In this phase, developers begin writing the actual source code
based on the designs created earlier.
• The goal is to transform the design into working code using the
most suitable programming languages.
• Unit tests are often performed during this phase to make sure that
each component functions correctly on its own.
4. Testing and Deployment
1. 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 several 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 performs acceptance testing to determine whether to
accept the delivered software or reject it.
2. Deployment: Once the software has been thoroughly tested, it’s time to
deploy it to the customer or end-users. This means making the software
ready and available for use, often by moving it to a live or staging
environment.
During this phase, we also focus on helping users get comfortable with the
software by providing training, setting up necessary environments, and
ensuring everything is running smoothly. The goal is to make sure the
system works as expected in real-world conditions and that users can start
using it without any hitches.
5. Maintenance
In Maintenance Phase 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 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.
Features of Waterfall Model
Following are the features of the waterfall model:
1. 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.
2. Document-Driven: The waterfall model depended on
documentation to ensure that the project is well-defined and the
project team is working towards a clear set of goals.
3. 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.
4. Rigorous Planning: The waterfall model involves a careful
planning process, where the project scope, timelines, and
deliverables are carefully defined and monitored throughout the
project lifecycle.
It is creating a Structure like the “V” which includes the different phases
which we are discussing here in detailed manner.
V-model in Software Development Life Cycle (SDLC) is a method in that
include the testing and validation alongside each development phase.
It is based on the idea of a “V” shape, with the two legs of the “V”
representing the progression of the Software Development
Process from Requirements Gathering and analysis to design,
implementation, testing, and maintenance.
Phases of SDLC V-Model
The V-Model, which includes the Verification and Validation it is a
structural approach to the software development. The following is the
different Phases of V-Model of the SDLC.
2. System Design
In this phase, the overall structure of the software is planned out. The team
develops both the high-level design (how the system will be structured)
and detailed design (how the individual components will work).
Design of the system will start when the overall we are clear with the
product requirements, and then need to design the system completely.
3. Architectural Design
In this stage, architectural specifications are comprehended and designed.
Usually, several 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.
4. Module Design
This phase, known as Low-Level Design (LLD), specifies the comprehensive
internal design for 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 in identifying and eradicating the
majority of mistakes and flaws at an early stage. .
5. Coding Phase
The Coding step involves 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 optimized for optimal performance.
1. Unit Testing
In Unit testing, unit Test Plans are developed during the module design
phase. These Unit Test Plans are executed to eliminate bugs in code or unit
level.
2. Integration testing
After completion of unit testing Integration testing is performed. In
integration testing, the modules are integrated and the system is tested.
Integration testing is performed in the Architecture design phase. This test
verifies the communication of modules among themselves.
3. System Testing
System testing tests the complete application with its functionality, inter-
dependency, and communication. It tests the functional and non-functional
requirements of the developed application.
4. User Acceptance Testing (UAT)
User Acceptance Testing (UAT) is performed in a user environment that
resembles the production environment. UAT verifies that the delivered
system meets the user’s requirement and the system is ready for use in the
real world
When to Use of V-Model?
• Traceability of Requirements: The V-Model proves beneficial in
situations when it’s imperative to create precise traceability
between the requirements and their related test cases.
• Complex Projects: The V-Model offers a methodical way to
manage testing activities and reduce risks related to integration
and interface problems for projects with a high level of complexity
and interdependencies among system components.
• Waterfall-Like Projects: Since the V-Model offers an approachable
structure for organizing, carrying out, and monitoring testing
activities at every level of development, it is appropriate for
projects that use a sequential approach to development, much like
the waterfall model.
• Safety-Critical Systems: These systems are used in the aerospace,
automotive, and healthcare industries. They place a strong
emphasis on rigid verification and validation procedures, which
help to guarantee that essential system requirements are fulfilled
and that possible risks are found and eliminated early in the
development process.
Advantages of V-Model
• 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 of V-Model
• The V-Model is a linear and sequential model, which can make it
difficult to adapt to changing requirements or unexpected events.
• The V-Model can be time-consuming, as it requires a lot of
documentation and testing.
• High risk and uncertainty.
• It is not good for complex and object-oriented projects.
• It is not suitable for projects where requirements are not clear and
contain a high risk of changing.
• This model does not support iteration of phases.
• It does not easily handle concurrent events.
• The V-Model places a strong emphasis on documentation, which
can lead to an overreliance on documentation at the expense of
actual development work.
Spiral Model
The spiral model is a combination of waterfall and iterative models and in
this, we focused on risk handling along with developing the project with the
incremental and iterative approach, producing the output quickly as well as
it is good for big projects. The software is created through multiple iterations
using a spiral approach. Later on, after successive development the final
product will develop, and the customer interaction is there so the chances of
error get reduced.
Advantages of the Evolutionary Process Model
1. During the development phase, the customer gives feedback
regularly because the customer’s requirement gets clearly
specified.
2. After every iteration risk gets analyzed.
3. Suitable for big complex projects.
4. The first build gets delivered quickly as it used an iterative and
incremental approach.
5. Enhanced Flexibility: The iterative nature of the model allows for
continuous changes and refinements to be made, accommodating
changing requirements effectively.
6. Risk Reduction: The model’s emphasis on risk analysis during each
iteration helps in identifying and mitigating potential issues early in
the development process.
7. Adaptable to Changes: Since changes can be incorporated at the
beginning of each iteration, it is well-suited for projects with
evolving or uncertain requirements.
8. Customer Collaboration: Regular customer feedback throughout
the development process ensures that the end product aligns more
closely with the customer’s needs and expectations.
Disadvantages of the Evolutionary Process Model
1. It is not suitable for small projects.
2. The complexity of the spiral model can be more than the other
sequential models.
3. The cost of developing a product through a spiral model is high.
4. roject Management Complexity: The iterative nature of the model
can make project management and tracking more complex
compared to linear models.
5. Resource Intensive: The need for continuous iteration and
customer feedback demands a higher level of resources, including
time, personnel, and tools.
6. Documentation Challenges: Frequent changes and iterations can
lead to challenges in maintaining accurate and up-to-date
documentation.
7. Potential Scope Creep: The flexibility to accommodate changes
can sometimes lead to an uncontrolled expansion of project scope,
resulting in scope creep.
8. Initial Planning Overhead: The model’s complexity requires a
well-defined initial plan, and any deviations or adjustments can be
time-consuming and costly.
Waterfall Model
The Waterfall Model is a linear and sequential model of software
development since each phase has to be finished before continuing to the
next phase. It is a sequential process, which involves requirement, design,
implementation, testing, deployment and maintenance. One phase can be
said to be dependent on the other next phase, and there is little mirroring
between phases. It is valuable for projects where the requirements for the
project are pretty much set, and they are not reasonable to change during
the process.
Prototype Model
A prototype Model is a model of integrated software development where
first a prototype or an initial model of the wanted system is created and
then tested and modified according to the users’ feedback. This facilitates
requirements understanding in cycles so that stakeholders are able to
envision what is to be delivered in the latter stages. It goes through a
number of design changes before it is concluded as the model solution.
Spiral Model
The Spiral Model is a model of software development that is based on the
risk-management concept and, in turn, is an elaboration upon the
Waterfall and Prototype models of the software development. It permits
iterative improvement through one or more spirals (iterations), each
consisting of design, risk assessment, design development, and review.
Frequent incremental changes mean that each cycle develops a better
system when evaluated by the users and its risk profile, which makes it
very adaptable, and ideal for large projects with many sub-projects.
Agile process :
Agile Software Development is an iterative and incremental approach
to Software Development that emphasizes the importance of delivering a
working product quickly and frequently. It involves close collaboration
between the development team and the customer to ensure that the
product meets their needs and expectations.
Why is Agile Used?
Agile is used because it helps teams deliver value quickly and continuously.
By prioritizing the delivery of difficult results early in the project, customers
benefit from seeing and using the product sooner, allowing for quick
feedback and adjustments. Agile also encourages teams to focus on what
truly matters, concentrating on tasks that add value and avoiding
unnecessary work.
• Agile as a Mindset: Agile represents a shift in culture that values
adaptability, collaboration, and client happiness. It gives team
members more authority and promotes a cooperative and upbeat
work atmosphere.
• Quick Response to Change: Agile fosters a culture that allows
teams to respond swiftly to constantly shifting priorities and
requirements. This adaptability is particularly useful in sectors of
the economy or technology that experience fast changes.
• Regular Demonstrations: Agile techniques place a strong
emphasis on regular demonstrations of project progress.
Stakeholders may clearly see the project’s status, upcoming
problems, and upcoming new features due to this transparency.
• Cross-Functional Teams: Agile fosters self-organizing, cross-
functional teams that share information effectively, communicate
more effectively and feel more like a unit.
Agile Software Development Process
Agile software development, often just called Agile, focuses on being
flexible and practical when delivering software. Instead of launching
everything at once, Agile delivers small, valuable updates to users over
time. This approach allows teams to adjust and improve the product along
the way, verifying that each update brings real value to the users. It’s all
about making progress in manageable steps and responding quickly to
changes.
1. Requirements Gathering
This is the first step where the development team works closely with the
customer to understand what they really need from the software. The team
listens carefully to the customer’s needs, then sorts and prioritizes these
requirements to make sure the most important features are developed first.
2. Planning
In this stage, the team creates a clear plan for how they’ll build the
software. They decide which features to focus on in each development cycle
(called an iteration). Think of it like mapping out the journey of the project,
so everyone knows what to expect and when things will be delivered.
3. Development
This is where the team starts turning their plan into reality. They work in
short, focused cycles, building small, usable pieces of the product. Each
cycle builds on the last, which helps the team stay on track and get quick
feedback to keep improving.
4. Testing
As the software gets built, it’s also tested to make sure it works properly
and meets the customer’s needs. Testing ensures the product is of high
quality and free from errors, so problems are caught early on before they
become bigger issues.
5. Deployment
Once everything is tested and working as expected, the software is
deployed, which means it’s ready for customers or end-users to start using.
It’s the moment when all the development work comes to life.
6. Maintenance
Even after the software is released, the job isn’t done. The team keeps
maintaining the software, verifying it continues to work well and stays up-
to-date with any new needs or changes from the customer. This keeps the
software relevant and helpful over time.
Agile Software Development is widely used by software development
teams and is considered to be a flexible and adaptable approach to software
development that is well-suited to changing requirements and the fast pace
of software development. Agile is a time-bound, iterative approach to
software delivery that builds software incrementally from the start of the
project, instead of trying to deliver all at once.
SCRUM :
Scrum is an agile framework used for project management, particularly in
software development, where teams collaborate to deliver products
incrementally. It focuses on breaking down work into short, iterative periods
called sprints, and using empirical knowledge and continuous learning to
adapt to changing requirements. Scrum is also inspired by the rugby scrum,
where teams work together to move the ball forward.
Scrum Events:
• Sprint:
A time-boxed iteration (typically 1-4 weeks) where a team delivers a valuable
increment of the product.
• Sprint Planning:
The team selects items from the Product Backlog to work on during the sprint.
• Daily Scrum:
A short (15-minute) meeting where the team discusses progress, identifies
impediments, and coordinates their work.
• Sprint Review:
The team demonstrates the completed Increment to stakeholders and gathers
feedback.
• Sprint Retrospective:
The team reflects on the sprint, identifies areas for improvement, and plans for the
next sprint.
Scrum Artifacts:
• Product Backlog: A prioritized list of features and requirements for the product.
• Sprint Backlog: A list of items from the Product Backlog that the team will work
on during the current sprint.
• Increment: The valuable, potentially shippable product that is delivered at the end
of each sprint.
1. Feasibility Study
2. Requirements elicitation
3. Requirements specification
4. Requirements for verification and validation
5. Requirements management
1. Feasibility Study
The feasibility study mainly concentrates on below five mentioned
areas below. Among these Economic Feasibility Study is the most
important part of the feasibility analysis and the Legal Feasibility
Study is less considered feasibility analysis.
1. Technical Feasibility: In Technical Feasibility current
resources both hardware software along required
technology are analyzed/assessed to develop the project.
This technical feasibility study reports whether there are
correct required resources and technologies that will be
used for project development. Along with this, the
feasibility study also analyzes the technical skills and
capabilities of the technical team, whether existing
technology can be used or not, whether maintenance and
up-gradation are easy or not for the chosen technology,
etc.
2. Operational Feasibility: In Operational Feasibility degree
of providing service to requirements is analyzed along
with how easy the product will be to operate and maintain
after deployment. Along with this other operational
scopes are determining the usability of the product,
Determining suggested solution by the software
development team is acceptable or not, etc.
3. Economic Feasibility: In the Economic Feasibility study
cost and benefit of the project are analyzed. This means
under this feasibility study a detailed analysis is carried
out will be cost of the project for development which
includes all required costs for final development hardware
and software resources required, design and development
costs operational costs, and so on. After that, it is analyzed
whether the project will be beneficial in terms of finance
for the organization or not.
4. Legal Feasibility: In legal feasibility, the project is ensured
to comply with all relevant laws, regulations, and
standards. It identifies any legal constraints that could
impact the project and reviews existing contracts and
agreements to assess their effect on the project’s
execution. Additionally, legal feasibility considers issues
related to intellectual property, such as patents and
copyrights, to safeguard the project’s innovation and
originality.
5. Schedule Feasibility: In schedule feasibility, the project
timeline is evaluated to determine if it is realistic and
achievable. Significant milestones are identified, and
deadlines are established to track progress effectively.
Resource availability is assessed to ensure that the
necessary resources are accessible to meet the project
schedule. Furthermore, any time constraints that might
affect project delivery are considered to ensure timely
completion. This focus on schedule feasibility is crucial for
the successful planning and execution of a project.
2. Requirements Elicitation
It is related to the various ways used to gain knowledge about the
project domain and requirements. The various sources of domain
knowledge include customers, business manuals, the existing
software of the same type, standards, and other stakeholders of the
project. The techniques used for requirements elicitation include
interviews, brainstorming, task analysis, Delphi technique,
prototyping, etc. Some of these are discussed here. Elicitation does
not produce formal models of the requirements understood. Instead,
it widens the domain knowledge of the analyst and thus helps in
providing input to the next stage.
Requirements elicitation is the process of gathering information
about the needs and expectations of stakeholders for a software
system. This is the first step in the requirements engineering process
and it is critical to the success of the software development project.
The goal of this step is to understand the problem that the software
system is intended to solve and the needs and expectations of the
stakeholders who will use the system.
Several techniques can be used to elicit requirements, including:
• Interviews: These are one-on-one conversations with
stakeholders to gather information about their needs and
expectations.
• Surveys: These are questionnaires that are distributed to
stakeholders to gather information about their needs and
expectations.
• Focus Groups: These are small groups of stakeholders
who are brought together to discuss their needs and
expectations for the software system.
• Observation: This technique involves observing the
stakeholders in their work environment to gather
information about their needs and expectations.
• Prototyping: This technique involves creating a working
model of the software system, which can be used to
gather feedback from stakeholders and to validate
requirements.
It’s important to document, organize, and prioritize the requirements
obtained from all these techniques to ensure that they are complete,
consistent, and accurate.
3. Requirements Specification
This activity is used to produce formal software requirement models.
All the requirements including the functional as well as the non-
functional requirements and the constraints are specified by these
models in totality. During specification, more knowledge about the
problem may be required which can again trigger the elicitation
process. The models used at this stage include ER diagrams, data
flow diagrams(DFDs), function decomposition diagrams(FDDs),
data dictionaries, etc.
Requirements specification is the process of documenting the
requirements identified in the analysis step in a clear, consistent, and
unambiguous manner. This step also involves prioritizing and
grouping the requirements into manageable chunks.
The goal of this step is to create a clear and comprehensive
document that describes the requirements for the software system.
This document should be understandable by both the development
team and the stakeholders.
Several types of requirements are commonly specified in this step,
including
1. Functional Requirements: These describe what the
software system should do. They specify the functionality
that the system must provide, such as input validation,
data storage, and user interface.
2. Non-Functional Requirements: These describe how well
the software system should do it. They specify the quality
attributes of the system, such as performance, reliability,
usability, and security.
3. Constraints: These describe any limitations or restrictions
that must be considered when developing the software
system.
4. Acceptance Criteria: These describe the conditions that
must be met for the software system to be considered
complete and ready for release.
To make the requirements specification clear, the requirements
should be written in a natural language and use simple terms,
avoiding technical jargon, and using a consistent format throughout
the document. It is also important to use diagrams, models, and
other visual aids to help communicate the requirements effectively.
Once the requirements are specified, they must be reviewed and
validated by the stakeholders and development team to ensure that
they are complete, consistent, and accurate.
4. Requirements Verification and Validation
Verification: It refers to the set of tasks that ensures that the
software correctly implements a specific function.
Validation: It refers to a different set of tasks that ensures that the
software that has been built is traceable to customer requirements.
If requirements are not validated, errors in the requirement
definitions would propagate to the successive stages resulting in a
lot of modification and rework. The main steps for this process
include:
1. The requirements should be consistent with all the other
requirements i.e. no two requirements should conflict with
each other.
2. The requirements should be complete in every sense.
3. The requirements should be practically achievable.
5. Requirements Management
Requirement management is the process of analyzing, documenting,
tracking, prioritizing, and agreeing on the requirement and controlling the
communication with relevant stakeholders. This stage takes care of the
changing nature of requirements. It should be ensured that the SRS is as
modifiable as possible to incorporate changes in requirements specified by
the end users at later stages too. Modifying the software as per requirements
in a systematic and controlled manner is an extremely important part of the
requirements engineering process.
Software documentation :
Software documentation is a written piece of text that is often
accompanied by a software program. This makes the life of all the
members associated with the project easier. It may contain anything from
API documentation, build notes or just help content. It is a very critical
process in software development. It’s primarily an integral part of any
computer code development method.
1. Identify Stakeholders
The first step is to figure out who all the key players are in the project.
These are the people who will either use the product, help develop it, or be
impacted by it. This could include users, developers, project managers, and
customers. It’s important to get everyone involved early on, so you gather
all the necessary input and perspectives when defining the requirements.
2. Gather Requirements
Once you’ve identified the stakeholders, the next step is to gather their
requirements. This means understanding what they need from the system
or product. Requirements can be functional (what the system should do) or
non-functional (how it should perform). You can use different methods like
interviews, surveys, or group discussions to collect all these needs.
3. Prioritize Requirements
Not all requirements are equal in terms of importance. After gathering
them, you’ll need to prioritize which ones should be addressed first. This
helps ensure that the most important features are built into the system first,
especially when resources (like time and budget) are limited. A common
approach is to categorize them into things that are “Must-have,” “Should-
have,” “Could-have,” and “Won’t-have.”
4. Categorize Feasibility
After prioritizing, the next step is to assess how realistic each requirement
is. You’ll categorize them into three groups:
• Achievable: These are requirements that are realistic and can be
done within the available resources (time, budget, etc.).
• Deferred: These requirements are important but can’t be
implemented in this phase. They’ll be put on hold for now with a
clear reason why.
• Impossible: These requirements can’t be done because of technical
or other limitations, and they should be removed from the list.
1.People:
Definition:
This refers to the human resources involved in the software development
project, including developers, testers, project managers, and stakeholders.
Importance:
People are the most critical asset in software development, and their
skills, experience, and collaboration are essential for building successful
software.
Focus:
Investing in the right people with the right skills, fostering a positive and
collaborative team environment, and providing them with the necessary
tools and support are key to success.
2.Product:
Definition:
This refers to the software being developed and the end result of the
project.
Importance:
The product is what the software development team is building, and its
quality, functionality, and user experience are all critical for its success.
Focus:
Clearly defining the product’s requirements, conducting thorough testing
and quality assurance, and incorporating user feedback throughout the
development process are essential for delivering a successful product.
3.Process:
Definition:
This refers to the methods, procedures, and workflows used to develop
the software.
Importance:
The process is the framework that guides the development team, ensuring
that the project stays on track, and that all aspects of the project are
managed effectively.
Focus:
Choosing the right development methodology (e.g., Agile, Waterfall),
defining clear roles and responsibilities, establishing effective
communication channels, and continuously improving the process are key
to success.
Stages of COCOMO II
1. Stage-I
It supports estimation of prototyping. For this it uses Application
Composition Estimation Model. This model is used for the prototyping stage
of application generator and system integration.
2. Stage-II
It supports estimation in the early design stage of the project, when we less
know about it. For this it uses Early Design Estimation Model. This model is
used in early design stage of application generators, infrastructure, system
integration.
3. Stage-III
It supports estimation in the post architecture stage of a project. For this it
uses Post Architecture Estimation Model. This model is used after the
completion of the detailed architecture of application generator,
infrastructure, system integration.
COCOMO I COCOMO II
This model is based upon the linear This model is based upon the non linear
reuse formula. reuse formula
This model is also based upon the This model is also based upon reuse model
assumption of reasonably stable which looks at effort needed to understand
requirements. and estimate.
What is Risk?
Risk Identification, Risk Assessment, and Risk Projection, which are key components of risk
management in projects or systems:
1. Risk Identification
Risk identification is the initial and crucial step in risk management, focusing on
spotting and documenting potential threats that could hinder an organization's or
project's success. It's a systematic process of pinpointing risks arising from internal
and external factors, ensuring a comprehensive understanding of potential challenges.
This is the process of identifying potential risks that could affect a project, system, or process. It
involves:
Goal: To list and describe all risks that could potentially impact objectives.
2. Risk Assessment
Risk assessment simply means to describe the overall process or method to identify risk and
problem factors that might cause harm. It is a systematic examination of a task or project that
you perform to simply identify significant risks, problems, and hazards, and then to find out
control measures that you will take to reduce risk.
Once risks are identified, they are evaluated in terms of their likelihood and impact. This step
includes:
Goal: To understand the seriousness of each risk and focus attention on the most significant
ones.
Goal: To forecast the effects of risks and help with decision-making on mitigation strategies
RMMM Plan :
A risk management technique is usually seen in the software Project plan.
This can be divided into Risk Mitigation, Monitoring, and Management Plan
(RMMM). In this plan, all works are done as part of risk analysis.
Risk Mitigation :
It is an activity used to avoid problems (Risk Avoidance).
Steps for mitigating the risks as follows.
1. Finding out the risk.
2. Removing causes that are the reason for risk creation.
3. Controlling the corresponding documents from time to time.
4. Conducting timely reviews to speed up the work.
Risk Monitoring :
It is an activity used for project tracking.
It has the following primary objectives as follows.
Risk Management :
Risk Management is a systematic process of recognizing, evaluating, and
handling threats or risks that have an effect on the finances, capital, and
overall operations of an organization. These risks can come from different
areas, such as financial instability, legal issues, errors in strategic planning,
accidents, and natural disasters.
The main goal of risk management is to predict possible risks and find
solutions to deal with them successfully.
2.Configuration Control
• Establish a change control process to approve or reject changes.
• Use tools to track change requests and enforce approvals.
• Version Control
• Maintain multiple versions and revisions of software artifacts.
• Ensure safe collaboration using tools like Git, SVN, etc.
• Configuration Status Accounting
• Record and report the current state of configuration items.
• Maintain logs of what has changed, when, and by whom.
• Configuration Audits and Reviews
• Ensure changes are properly implemented.
• Verify that the system is consistent with documentation and requirements.
• .Centralized Storage:
o The repository serves as a single source of truth for all software artifacts,
ensuring that everyone is working with the same version of the code and
other related files.
o .Version Control:
o It tracks changes to all files, allowing developers to revert to previous
versions, compare different versions, and merge changes from different
branches.
• Collaboration:
o SCM repositories facilitate collaboration among developers by enabling them
to work on different parts of the code simultaneously, track changes, and
resolve conflicts.
• Change Management:
o It provides a way to manage changes to the software, ensuring that changes
are properly documented, reviewed, and tested before being integrated into
the main codebase.
• Data Integrity:
o The repository ensures that all files are stored in a consistent and reliable
format, reducing the risk of data loss or corruption.
• Communication:
o It can be used to communicate changes and issues among developers and
other stakeholders.
Defect Prevention:
• Objective: Implement measures to prevent defects, errors,
or issues in the early stages of the project lifecycle.
Process Improvement:
• Objective: Continuously improve processes to enhance
efficiency, effectiveness, and overall quality.
Risk Management:
• Objective: Identify and manage risks that could impact the
quality of the project or product.
Software reliability :
Software reliability refers to the probability that a software system will operate
without failure for a specified period in a given environment. It's a customer-
oriented view of software quality, focusing on how often faults cause
problems in real-world use, rather than just the design itself. Essentially, it's
about how dependable and trustworthy a software product is.
Review Guidelines
Guidelines for the conducting of formal technical reviews should be
established in advance. These guidelines must be distributed to all
reviewers, agreed upon, and then followed. An unregistered review can
often be worse than a review that does not minimum set of guidelines for
FTR.
• Review the product, not the manufacturer (producer): FTR includes
people and egos. while properly conducted FTR will give all
participants a good feeling of accomplishment, and when
conducted improperly, the FTR team will be pointed out clearly. the
meeting tone will be only loose and constructive, the review team
leader will ensure that the proper way of communication will be
happening or not into the team or it will get out of control.
• Set an agenda and maintain it: one of the measure keys in the
meeting is drift. FTR will always keep on track and schedule. the
review leader is making and maintaining the meeting schedule and
should not be afraid that many people drift sets in.
• Limit debate and rebuttal: whenever the issue is raised by the
reviewer there will not be an impact on a universal agreement.
rather than spending time with the questions, then issues will be
further discussed off-line.
• Enunciate problem areas, but don’t attempt to solve every problem
noted: A review is not a problem-solving session. The solution to a
problem can often be accomplished for the producer alone or with
the help of only one other individual. problem-solving should be
postponed for a while until after the review meeting.
• Take written notes (record purpose): it is a good idea to take notes
on the wallboard so that will be wording, and priorities can be
assessed by other reviewers as information is recorded.
• Limit the number of participants and insist upon preparation: two
heads are better than one, but 14 are not needed to be better than
4. We will keep the number of people involved to a minimum, all
review teams must prepare in advance, and written comments will
be requested by the review leader.
• Develop a checklist for each product that is likely to be reviewed: A
checklist will help to structure of Review meeting and for the
review leader and help to focus the reviewer on the important
issues. checklist should be developed by the analysis, design, code,
and even test documents.
• Allocate resources and schedule for FTRs to maintain schedule: it’s
effective to review, they should be effective and it should be a task
during the software engineering process. In addition, the time
should be scheduled for modification that occurs as a result of an
FTR.
• Conduct meaningful training for all reviewers to make reviews
effective: To be effective for all the reviews at first some have
received formal training. it will stress both process-related and the
human psychological side of the reviews. for every person who is
to participate in reviews which is a one-month learning curve of 20
people.
• Review earlier reviews that serve as the base for the current review
being conducted: it can be beneficial in uncovering problems with
the review process itself. the first product to be reviewed should be
the guidelines themselves because many variables have a
successful review, a software organization should experiment to
find approaches that work best in a local context. porter and his
colleagues provide excellent guidance for this type of experiment.
Walkthrough:
Purpose of Walkthroughs:
• Early Error Detection:
Walkthroughs help identify errors and potential problems early in the development
process, before they become more complex and costly to fix.
• Knowledge Transfer and Understanding:
They facilitate knowledge sharing and ensure that everyone involved has a clear
understanding of the work being reviewed.
• Improved Quality:
By identifying and addressing issues during walkthroughs, the overall quality of the
software product is improved.
• Collaboration and Communication:
Walkthroughs encourage collaboration and open communication among team
members, leading to better teamwork and problem-solving.
Characteristics of Walkthroughs:
• Informal:
Walkthroughs are less formal than other review processes, such as inspections or
technical reviews.
• Author-Led:
The author of the document or code leads the walkthrough, explaining their work
and guiding the discussion.
• Participant-Driven:
While the author leads, participants are encouraged to ask questions, offer
comments, and share their perspectives.
• Focused on Understanding and Feedback:
The primary goal is to achieve a common understanding and gather feedback on
the work being reviewed.
2.Validation: This step verifies that the software actually meets the
customer’s needs and requirements. Its like asking, “Are we building the
right product?“
1. Manual Testing
Manual Testing is a technique to test the software that is carried out using
the functions and features of an application. Which means manual testing
will check the defect manually with trying one by one function is working as
expected.
2. Automation Testing
Automation Testing It is a technique where the Tester writes scripts
independently and uses suitable Software or Automation Tools to test the
software. It is an Automation Process of a Manual Process. It allows for
executing repetitive tasks without the use of a Manual Tester.
Types of Manual Testing
Manual testing will be divided into further types which is following:
1. White Box Testing
White Box Testing is a software testing technique that involves testing the
internal structure and workings of a software application. The tester has
access to the source code and uses this knowledge to design test cases that
can verify the correctness of the software at the code level.
2. Black Box Testing
Black-Box Testing is a type of software testing in which the tester is not
concerned with the internal knowledge or implementation details of the
software but rather focuses on validating the functionality based on the
provided specifications or requirements.
3. Gray Box Testing
Gray Box Testing is a software testing technique that is a combination of
the Black Box Testing technique and the White Box Testing technique. In
the Black Box Testing technique, the tester is unaware of the internal
structure of the item being tested and in White Box Testing the internal
structure is known to the tester.
QA focuses on providing
QC focuses on fulfilling
Objective assurance that the quality
the quality requested.
requested will be achieved.
Program
QA does not include the QC always includes the
execution is
execution of the program. execution of the program.
included?
Process/ Product-
QA is process oriented. QC is product oriented.
oriented
Quality Control is
Quality Assurance is
Order of performed after the
performed before Quality
execution Quality Assurance activity
Control.
is done.
QA is a preventive QC is a corrective
Technique type
technique. technique.
Importance :
• Correcting Faults:
Software is rarely perfect when first released. Maintenance involves fixing bugs,
addressing errors, and resolving issues that arise after deployment.
• Improving Performance:
Maintenance can involve optimizing code, improving efficiency, and enhancing the
overall responsiveness of the software.
• Adapting to Changes:
Software needs to adapt to evolving hardware and software environments, new
operating systems, and changing user needs. This may involve rewriting portions of
the code or adding new modules.
• Enhancing Functionality:
Maintenance can include adding new features, improving the user interface, and
making the software more user-friendly.
• Maintaining Security:
Software vulnerabilities are constantly being discovered. Maintenance includes
patching security holes, ensuring the software remains secure against threats, and
protecting user data.
Software supportability :
Software supportability refers to the ease with which a software system can
be maintained, modified, and supported throughout its lifecycle. It
encompasses the design, development, and deployment aspects that enable
effective and efficient support activities, ensuring the system meets user
needs and remains operational.
Steps to BPR
Here is a brief overview of how BPR works:
1. Identify Processes: This step involves identifying processes for re-
engineering that require the improvement most and will offer the
greatest benefit from re-engineering.
2. Understand Existing Processes: Conduct a thorough analysis of
current processes to identify inefficiencies and bottlenecks.
3. Define Objectives: Set clear and specific goals for the re-
engineering process such as cost reduction, faster service,
improved quality, and many more.
4. Form a Cross-Functional Team: Form a team of members from
various departments to bring diverse expertise to the re-
engineering process.
5. Redesign Processes: Rethink and redesign processes from the
ground up, focusing on eliminating non-value-adding activities.
6. Implement Changes: Execute new process designs and ensure
that all necessary resources are available to facilitate a smooth
transition.
7. Monitor and Optimize: Continuously track the performance of re-
engineered processes and make changes as needed to ensure that
they meet the desired outcomes.
Benefits of BPR
Here are some key benefits that can significantly impact organizational
performance and efficiency:
1. Increased Efficiency: It aims to streamline processes, reduce cycle
times, and eliminate redundancies, leading to improved operational
efficiency.
2. Cost Reduction: Organizations can lower operational costs by
optimizing processes and reducing costs.
3. Improved Quality: Redesigned processes include built-in quality
checks, resulting in higher quality outputs and fewer errors.
4. Improved Customer Satisfaction: It focuses on improving overall
customer satisfaction by aligning the processes with customer
needs.
5. Employee Empowerment: Involving employees in process
redesign leads to a more motivated workforce.
6. Improved Financial Performance: BPR can lead to improved
financial performance through cost savings, better resource
utilization, and increased revenues.
7. Continuous Improvement: It encourages an environment of
continuous improvement, enabling organizations to be more
adaptable to market changes.
Challenges in BPR
Here are common challenges in BPR initiatives:
1. High Costs: Implementing BPR can be a costly and time-
consuming process, requiring significant investment in resources,
including technology, training, and consulting fees. This can be a
significant barrier for small or cash-strapped organizations.
2. Resistance to Change: Implementing BPR can be a difficult and
complex process that requires significant changes to an
organization’s culture, processes, and people. Employees may
resist the changes, especially if they feel their job security is at risk,
leading to decreased morale and increased turnover.
3. Focus on Short-term Goals: BPR initiatives may focus on short-
term goals, such as reducing costs, without considering the long-
term impact on the organization’s overall strategy and goals.
4. Lack of Top Management Support: Without support from senior
management, BPR initiatives may lack the necessary resources and
authority to succeed.
5. Unclear Objectives: Unclear goals can lead to confusion and
difficulty in measuring success.
6. Risk of Failure: BPR is a high-risk strategy that can fail if not
implemented properly. The failure to gain employee support, lack
of a clear strategy, or poor planning can all lead to a BPR
initiative’s failure.
7. Disruption to Operations: Implementing BPR can disrupt the day-
to-day operations of the organization, leading to decreased
productivity, customer dissatisfaction, and revenue loss.
What is Re-engineering?
Re-engineering, also known as software re-engineering, is the process of
analyzing, designing, and modifying existing software systems to improve
their quality, performance, and maintainability.
1. This can include updating the software to work with new hardware
or software platforms, adding new features, or improving the
software’s overall design and architecture.
2. Software re-engineering, also known as software restructuring or
software renovation, refers to the process of improving or
upgrading existing software systems to improve their quality,
maintainability, or functionality.
3. It involves reusing the existing software artifacts, such as code,
design, and documentation, and transforming them to meet new or
updated requirements.
Objective of Re-engineering
The primary goal of software re-engineering is to improve the quality and
maintainability of the software system while minimizing the risks and costs
associated with the redevelopment of the system from scratch. Software re-
engineering can be initiated for various reasons, such as:
1. To describe a cost-effective option for system evolution.
2. To describe the activities involved in the software maintenance
process.
3. To distinguish between software and data re-engineering and to
explain the problems of data re-engineering.
4. Code Reconstructing:
Reverse Engineering or
Forward Engineering is a
backward engineering is a
high proficiency skill.
low proficiency skill.
Skill Level
Forward engineering
Reverse engineering Starts
Starts with requirements
with an existing software
analysis and design, then
system and works backward
proceeds to
to understand its structure,
implementation and
Development design, and requirements.
testing.
Steps
Forward engineering is
Reverse engineering is Used
used to create new
to modify and improve an
software applications from
existing software application.
scratch.
Use Case
• Process
• People
• Project
These components play a very important role in your project that can help your
team meet its goals and objective. Now, Let’s dive into each of them a little in
detail to get a better understanding:
• People
The most important component of a product and its successful
implementation is human resources. In building a proper product, a
well-managed team with clear-cut roles defined for each
person/team will lead to the success of the product. We need to have
a good team in order to save our time, cost, and effort. Some assigned
roles in software project planning are project manager, team leaders,
stakeholders, analysts, and other IT professionals. Managing people
successfully is a tricky process which a good project manager can do.
• Product
As the name inferred, this is the deliverable or the result of the
project. The project manager should clearly define the product scope
to ensure a successful result, control the team members, as well
technical hurdles that he or she may encounter during the building of
a product. The product can consist of both tangible or intangible such
as shifting the company to a new place or getting a new software in
a company.
• Process
In every planning, a clearly defined process is the key to the success
of any product. It regulates how the team will go about its
development in the respective time period. The Process has several
steps involved like, documentation phase, implementation phase,
deployment phase, and interaction phase.
• Project
The last and final P in software project planning is Project. It can also
be considered as a blueprint of process. In this phase, the project
manager plays a critical role. They are responsible to guide the team
members to achieve the project’s target and objectives, helping &
assisting them with issues, checking on cost and budget, and making
sure that the project stays on track with the given deadlines.
W5HH principles
Barry Boehm gave a philosophy that prepares easy and manageable
designs or outlines for software projects. He also gave a technique to
discuss objectives, management, duties, and technical approach of the
project and its necessary resources. Then he named it the W5HH
principle when few questions resulted in project properties, definition, and
resultant plan to make the project successful. Those questions are :
The W5HH principle in software management exists to help project
managers guide objectives, timelines, responsibilities, management styles,
and resources. In this lesson, we’ll explore each part.
W5HH Principles:
Why the system is going to be developed?
For the purpose of software work, all stakeholders must assess the validity
of the system product/project. Here Barry questions that whether the
project’s purpose will justify the cost, time spent on it by people?
What is activities are needed to be done in this?
In this Barry questions what task is needed to be done for a project
currently.
When is this done?
Project Scheduling is done by the team after recognizing when project tasks
will be started and when they enter into the final stage to reach the goal.
Who are the reasons for these activities in this project?
Every member who is part of the software team is responsible for this. And
their roles are defined.
Where are these authoritatively located?
Not only do software practitioners have roles in this but also users,
customers, stakeholders also have roles and responsibilities
organizationally.
How is the job technically and managerially finished?
All technical strategies, management rules of the project are defined after
knowing the scope of the project which is being built.
How much part of each resource is required?
This is known by software developers after the estimation of each resource
as per the needs of customers/users.
This W5HH principle of Bohem is appropriate irrespective of the scale or
difficulty of software projects being developed. These questions help in
planning the outline of the project for the software team.
The W5HH principle outlines a series of questions that can help project
managers more efficiently manage software projects. Each letter in W5HH
stands for a question in the series of questions to help a project manager
lead. (Notice there are five ”W” questions and two ”H” questions).
Why is the system being This focuses a team on the business reasons
Why?
developed? for developing the software.
How will the job be done In this step, a strategy for developing the
How? technically and software and managing the project is
managerially? concluded upon.
• Initiation: This is the first phase where the project's idea is created,
and its feasibility is assessed. Initial project goals, objectives, and
key stakeholders are identified. This phase sets the foundation for
the project, ensuring that it is viable and aligned with overall
objectives before moving forward. Proper planning in this phase
helps to guide the project's direction and success.
• Planning: In this phase, a detailed project plan is developed. It
includes a list of tasks, a timeline for each task, how resources will
be allocated, and strategies for managing risks. This plan helps
keep the project organized and on track, ensuring that everyone
understands their roles and responsibilities and how to handle any
potential issues that might arise.
• Execution: In this phase, the project plan is put into action. The
team works together to complete the tasks and produce the
project's results. It’s where the real work happens, with everyone
collaborating to achieve the goals and ensure the project stays on
track. Regular updates and adjustments are made as needed.
• Monitoring and Controlling: In this phase, project progress is
carefully monitored to ensure it follows the plan. Any deviations or
issues are identified, and corrective actions are taken to address
them. This helps keep the project on track and ensures that it
continues to meet its goals and deadlines. Regular checks and
adjustments are made to ensure successful completion.
• Closure: Once the project’s deliverables are completed and
approved, the project officially comes to an end. Lessons learned
throughout the project are documented to help with future
projects. The team and resources are then released or reassigned,
and any final paperwork or administrative tasks are completed.
This phase ensures everything is finalized and reviewed for future
improvements.
RFP:
In project management, RFP stands for Request for Proposal. It's a formal
document used to solicit bids or proposals from potential vendors or
contractors for a specific project or service. The RFP outlines project
requirements, expectations, and evaluation criteria, allowing vendors to
understand the scope of work and submit tailored solutions.
Purpose:
• Gather Information:
RFPs are used to gather detailed information about potential vendors, their
capabilities, pricing, and proposed solutions.
• Transparency and Competition:
They ensure a transparent and competitive bidding process, allowing organizations
to choose the best fit for their project.
• Clear Expectations:
RFPs clearly define the project requirements and expectations for vendors,
minimizing misunderstandings and ensuring alignment.
2. Scope
Scope defines what your project will deliver. This involves collecting
requirements and preparing the work breakdown structure. As you define
your scope better, the better everyone will understand. As, per the project
manager, you need to ensure that all stakeholders clearly understand the
project’s purpose.
3. Time
Time management is very precise for every project life cycle. The time
knowledge area elaborates on the value of time tracking and how to do it.
You must track how much time people spend on tasks and how long the
project takes overall. Knowing how long tasks take helps you allocate
reasonable deadlines, thereby completing projects within set timeframes.
4. Cost
This project management knowledge area involves estimating project costs
to create a project budget. To do so, you’ll need to use cost-estimating tools
and techniques to make sure that the funds cover the project expenses and
are being monitored regularly to keep stakeholders or sponsors informed.
As, with other project management knowledge areas, the cost management
plan is the document where you’ll explain the method to establish the
budget, which includes how and if it will change and what procedures will
be used to control it. Each project has been estimated for cost, which means
including all resources such as materials, labor, equipment, and any other
things needed to complete the task.
5. Quality
A project can come in on time and within budget, but the quality isn’t the
same as perfection. It’s not practical to spend the time and resources to take
a project to perfection but if the quality isn’t up to standard, then the project
is a failure. This means that quality management is one of the most critical
project management knowledge areas.
6. Procurement
Procurement will impact the budget and schedule. Procurement
management planning starts by identifying the outside needs of the project
and how those contractors will be involved. Now conduct those
procurements by hiring the contractors, which includes a statement of work,
terms of reference, request for proposals, and choosing a vendor. You’ll
want to control the procurement process by managing monitoring and then
closing the contracts once the work has been done to everyone’s
satisfaction.
7. Human Resources
Before you put together a team, you first understand what human resources
you need to complete your project successfully. Once you have the right
team, you have to manage it. It is essential to encourage your resources to
grow the skills necessary to get to the finish line.
8. Communication
The Communication of the project ensures that all stakeholders know the
project’s progress and also have access to the information they need at the
right time. This also includes setting up a communication plan, establishing
channels for communication, and communicating effectively with team
members and other stakeholders.
9. Risk Management
Project risk management can flag upcoming problems and equip you with
the means to work around and through them, rather than causing major
complications. It includes quantitative risk analysis associated with the
project, developing contingency plans in case those risks materialize, and
monitoring risks throughout the project’s lifecycle. This knowledge area
involves identifying and assessing project risks. If you can manage your
firefighting by identifying major project risks and the mitigation plans
associated with them, your team and project requesters will be prepared
and more forgiving when issues in a project come up. It helps to understand
how to perform quantitative and qualitative risk assessments. With this
knowledge, you are better equipped to identify or predict potential threats
and prevent them from happening.
Disadvantages of PMBOK
1. Rigidity: PMBOK can be perceived as inflexible or limited in its
applicability in dynamic environments and agile methodologies.
2. Complexity: The extensive knowledge areas and processes can be
overwhelming, especially for smaller projects or organizations.
3. Limited Contextual Guidance: PMBOK may lack specific guidance
for industry-specific or specialized projects.
4. Overloading of DocumentationYou must track: Detailed
documentation can lead to excessive paperwork and administrative
burden.
5. Lack of Emphasis upon Soft Skills: PMBOK focuses on technical
aspects and may overlook the importance of soft skills like
leadership and communication.
6. Limiting Focus on Organizational Culture: PMBOK may not fully
address the influence of organizational culture on project success.
7. Adaptability of Challenges: PMBOK may struggle to keep up with
rapidly changing project environments and emerging
methodologies.
Business case:
A business case is a document that justifies undertaking a project or
investment by outlining its potential benefits, costs, and risks. It's a crucial
tool for decision-makers, providing evidence to support or reject a proposal.
Project Charter:
• Purpose: To formally authorize the project and provide a high-level overview of
the project's goals, scope, and stakeholders.
• Content: Includes the project title, purpose, objectives, high-level scope, key
deliverables, stakeholders, timeline, and budget.
• Level of Detail: High-level and broad, not as detailed as the scope statement.
• Timing: Created in the initiating phase of the project lifecycle.
Project scheduling:
Project scheduling involves creating a detailed timeline for all project tasks,
including their start and end dates, dependencies, and resource allocation. It's
a critical step in project management that helps ensure timely completion and
effective resource utilization.
Defining a task set for a software project involves breaking down the entire development
process into manageable, structured activities. A standard task set for project scheduling
in a software project:
1. Project Planning
2. Requirements Analysis
3. System Design
4. Implementation (Coding)
5. Testing
6. Deployment
7. Maintenance
Timeline charts :
A timeline chart in project management is a visual representation of a
project's schedule, showcasing tasks, milestones, and their associated
timelines. It's a tool for planning, tracking progress, and communicating the
project's overall plan to stakeholders. Often, these timelines take the form of a
horizontal bar chart, where each task is represented by a bar, displaying its
start and end dates.
Purpose of a WBS:
• Scope Definition:
A WBS helps define the project scope by identifying all the work that needs to be
done.
• Project Planning:
It provides a framework for planning tasks, allocating resources, and scheduling
activities.
• Task Assignment:
The WBS facilitates the assignment of tasks to specific team members or groups.
• Progress Tracking:
It enables the tracking of project progress by monitoring the completion of
individual work packages.
• Communication:
The WBS serves as a common language for the project team and stakeholders,
ensuring everyone is on the same page regarding the project's scope and
deliverables.
Creating a WBS:
• Define the Project Scope: Clearly define the project's objectives, deliverables, and
boundaries.
• Identify Major Deliverables: Break down the project into its main deliverables or
major components.
• Decompose Deliverables: Further decompose each deliverable into sub-
deliverables and work packages.
• Create Work Packages: Define specific tasks or work packages within each sub-
deliverable.
• Assign Resources: Allocate resources (personnel, equipment, etc.) to each work
package.
Network diagrams:
Network diagrams, specifically Activity on Arrow (AOA) and Activity on Node
(AON), are project management tools used to visualize project activities, their
durations, and dependencies. AOA diagrams represent activities as arrows,
with nodes representing milestones, while AON diagrams use nodes to
represent activities and arrows to show relationships. These diagrams help in
planning, scheduling, and tracking project progress, and are crucial for
determining the critical path, which is the longest sequence of tasks that
determines the minimum project completion time.
Key Concepts:
• Activities: Tasks or work items that consume resources and time.
• Nodes: Represent milestones, events, or points in time where activities start or
end. In AOA, they represent milestones, while in AON, they represent activities.
• Arrows: Connect nodes in AOA, representing the activity between those nodes. In
AON, arrows represent dependencies between activities.
• Dependencies: Relationships between activities, indicating the order in which
they must be completed.
• Duration: The estimated time an activity will take.
• Critical Path: The longest sequence of activities that determines the shortest
possible project completion time. Activities on the critical path have zero slack,
meaning any delay will delay the entire project.
• Slack: The amount of time an activity can be delayed without delaying the project
completion.
GANTT Chart:
Generalized Activity Normalization Time Table (GANTT) chart is type of
chart in which series of horizontal lines are present that show the amount of
work done or production completed in given period of time in relation to
amount planned for those projects. A Gantt Chart is a visual project
management timeline that consists of horizontal bars, usually color-coded.
1. These bars show all the project tasks, when they are due, who is
responsible, and how long each task will take.
2. Therefore, Gantt charts illustrate the start and finish dates of the
terminal elements and summary elements of a project.
3. In other words, the Gantt chart assembles all pieces of tasks that
are relative to a fixed deadline.
What is the Purpose of a Gantt Chart?
Essentially, a Gantt chart arranges project tasks on a visual timeline, making
it simple for project, programme, and portfolio managers to sketch
out project plans. Gantt charts are utilised in resource management, project
planning, project scheduling, and project tracking, among many other areas.
• Break down the project into manageable tasks, identify
dependencies, and allocate resources effectively.
• Determine the sequence and duration of tasks, establishing a
timeline for the project.
• Monitor the progress of tasks, compare planned versus actual
timelines, and identify any delays or issues.
• Share project plans and progress with stakeholders, team
members, and clients in a clear and understandable format.
• Ensure that all team members are aware of their responsibilities
and deadlines, facilitating collaboration and coordination within the
project.
Basic components of a Gantt chart
Gantt charts could initially appear difficult. However, if you can interpret
them, you'll be able to determine precisely where your initiatives stand and
what has to be done to steer them towards success.
Understanding how the various components work together to create a gantt
chart is the key to reading one. Here are the following components of a
Gantt Chart:
• Task list
• Timeline
• Dateline
• Bars
• Milestones
• Dependencies
• Progress
• Resource assigned
2. Simple to Use
It has a drag-and-drop feature that enables us to easily make changes or
update the timeframes of the tasks.
Example :
Nowadays, there are many companies and teams that use Gantt chart to
plan, schedule, and execute their projects. Some of them are consulting
agencies, manufacturing companies, Marketing teams, Construction
companies, etc. Below is an example of Gantt chart:
Tracking the schedule:
Tracking the schedule in project management involves monitoring the
progress of tasks against the planned timeline and making necessary
adjustments to keep the project on track. This includes using tools like Gantt
charts and project tracking software to visualize the schedule, identify
potential delays, and ensure timely completion of tasks and milestones.