Software Engg Unit 3 Notes
Software Engg Unit 3 Notes
ESTIMATION AND
SCHEDULING
• What is Project Plan?
The different project-connected estimates done by a project manager have already been
mentioned. The below diagram shows the order in which vital project coming up with
activities is also undertaken. It may be simply discovered that size estimation is the 1st
activity. It’s conjointly the foremost basic parameter supported that all alternative coming up
with activities square measure dispensed, alternative estimations like the estimation of effort,
cost, resource, and project length also are vital elements of the project coming up with.
Precedence ordering among project planning
activities:
• Project scope is the detailed description of all the goals and objectives that
must be met in order to successfully complete a project.
• The document outlines the Project's goals, expectations, tasks, deadlines, and
budget. The degree outlines specific deadlines and expectations for each
partner involved in the project, outlining what will and won't be completed as
part of it.
• The Scope is the part of the Project Management that is responsible for the
boundaries, objectives, and deliverables of the Project. In other words, it is the
total amount of activities or tasks that need to be done under the Project
Execution.
The Importance of Defining a Project Scope
Clarity of Objectives: A well-defined scope clearly specifies the project's objectives,
deliverables, and constraints. By doing this, confusion is avoided and scope creep is
prevented because everyone involved is aware of what is expected of them and what is
not.
Alignment: It aligns stakeholders' expectations with project goals. When everyone agrees
on the project's scope upfront, there's less likelihood of disagreements or
misunderstandings later on.
Resource Management: Resource allocation benefits from having a clear scope. Project
managers are able to precisely predict the amount of time, money, and labour needed.
Resource waste on activities that aren't necessary for the project's success can occur
when there are unclear boundaries.
Quality Control: Defining a clear scope facilitates the establishment of quality standards.
Teams can measure and assure the quality of the end product or service more easily when
they know exactly what they're expected to offer.
• Client Satisfaction: Customer satisfaction is increased by a clearly defined scope.
Customers are more likely to be happy with the outcome when they are aware of
exactly what they will receive and when they will receive it.
• Control Scope Creep: When there is no clear scope for a project, it might be subject to
scope creep, which is the unanticipated addition of more work over time, beyond
budget, and causing delays. Setting limits on the scope aids in containing these
alterations.
Steps for defining project scope
Define the project's goals. Every project has an objective — that's why you're doing it in
the first place. ...
Technical Feasibility: This aspect assesses whether the proposed software project is
technically possible with the available technology, resources, and expertise. It considers
software development tools, hardware requirements, integration with existing systems, and
potential technical challenges.
Operational Feasibility: Operational feasibility evaluates whether the software will fit smoothly
into the organization's existing processes and whether users can adapt. It considers factors
like user training, change management, and the impact on daily operations.
Economic Feasibility: This part of the study focuses on the financial aspects of the project. It
includes a cost-benefit analysis to determine if the project is economically viable. This
analysis involves estimating the development costs, maintenance costs, potential benefits,
and return on investment (ROI). It helps stakeholders understand whether the project is
financially justified.
• Scheduling Feasibility: Scheduling feasibility assesses whether the project can be
completed within the required timeframe. It considers factors like project scope,
resource availability, and potential risks that might impact the project schedule.
• Legal and Regulatory Feasibility: This examines whether the proposed software project
complies with legal and regulatory requirements. It may involve data privacy,
intellectual property rights, and industry-specific regulations.
• Market Feasibility (if applicable): For commercial software projects, market feasibility
examines whether there is a demand for the proposed software in the target market. It
involves market research, competition analysis, and potential market adoption.
• The outcome of a feasibility study can be one of the following:
• Go Decision: If the study concludes that the project is feasible regarding technical,
operational, economic, scheduling, and legal aspects, the project can proceed to the
next phase.
• No-Go Decision: If the study determines that the project is not feasible or too risky, it
may lead to a decision to abandon the project or revise its scope.
• Revised Scope Decision: In some cases, the study may reveal that the original project
scope needs modification to increase feasibility. In this case, stakeholders may refine
the project's goals and constraints.
• A well-conducted feasibility study is crucial for making informed decisions and avoiding
costly and time-consuming errors in the later stages of a software project. It helps in
reducing the risks associated with software development and ensures that resources
are invested wisely.
Conclusion: (Feasibility Study)
Your company has every justification to employ a software engineering feasibility study.
Using this technique, your company can determine what factors lead to success and
failure and adjust its plans accordingly.
You can determine which one is most effective for your project and which is not.
A thorough feasibility study gives businesses access to risk factors, market analysis,
labour requirements, funding, and other information that helps them decide whether to
pursue the project, allowing them to receive higher returns on their investment.
• Resource Management :
• Keep in mind that resources are not only the people; resources are also
the:
• Technology / tools needed to enable people to execute tasks
• Budget required to fund the project
• Locations and specialized equipment
• Resource management also demands a close inspection of schedules and
timelines. It is important to bring all of these elements together with the
goals of the business.
• It is easy to see the importance of resource management by understanding the
disadvantage of not having it. Without the right data, resource managers have little
control over their projects and no way of understanding:
• Planning and scheduling – Understanding what resources are available and when
• Available and required skills – Assessing the skills of each person and whether additional
skills (or people) need to be added
• Resource utilization – Knowing where people are already committed and if those
allocations are appropriate
• Resource capacity – Understanding true capacity to do work, recognizing that not all time
can be utilized
• Resource prioritization and allocation – Identifying those prioritized initiatives that the
most attention and possibly specialized skills
• Resource management ensures resource managers have on-demand, real-time visibility
into people and other resources so they can have greater control over delivery.
• Efficiency and Optimization:
• Implement strategies to maximize the efficient use of resources.
• Reduce wastage and improve overall system performance.
• Utilize techniques such as load balancing, caching, compression, and parallel processing.
• Organize resources effectively to streamline operations and enhance efficiency.
• Flexibility and Adaptability:
• Design systems to be flexible and dynamic to accommodate changing resource needs.
• Employ dynamic resource management methods that adjust to current demands and
resource availability.
• Automate tasks, orchestrate processes, and dynamically provision resources based on
workload fluctuations.
• Adapt to seasonal variations, peak loads, or unexpected events without compromising
performance.
• Monitoring and Analytics:
• Implement real-time monitoring of resource usage and performance metrics.
• Collect data on CPU usage, memory utilization, storage, network traffic, and other key
indicators.
• Analyze data to identify bottlenecks, trends, and areas for optimization.
• Optimize resource allocation based on insights gathered from monitoring and analytics.
• Resilience and Redundancy:
• Incorporate measures to ensure system resilience and redundancy.
• Implement redundant hardware, network configurations, and failover mechanisms to
minimize downtime.
• Develop backup processes and data recovery plans to safeguard against hardware
failures or disruptions.
• Maintain service accessibility and data integrity even in the event of a failure.
• Key Principles of Resource Management:
• Below are some key principles of Resource Management:
• 1. Computational Resources
• These resources include the central processing unit (CPU) and other processing units, such as
graphics processing units (GPUs). The computational power is what takes the command and the
process instructions and carries out all the desired calculations at the machine’s back end.
• 2. Memory Resources
• Memory resources like RAM (Random Access Memory), cache and virtual memory use temporary
storage space to hold the facts and instructions of programs that are being processed by the
main CPU. The memory resources are the most important factor in the system's performance and
responsiveness.
• 3. Storage Resources
• Storage resources refer to different storage device options, such as hard disk drives (HHD), solid
state drives (SSD), and network-attached storage (NAS). These resources rely on persistent data
storage platforms like files, databases, and system configuration.
• . Network Resources
• Network resources comprise network interfaces, routers, switches, and other networking devices
that are utilized to create communication between different components of a system or between
multiple systems. Information assets can be transferred and shared among team members
which greatly helps the complicated distributed technology system.
• 5. I/O Resources
• Input, and output (I/O) resources, perform an important function by enabling every interaction
the system has with peripheral devices such as keyboards, mice, displays, printers, and sensors.
I/O resources are meant for transmitting data between the system and external peripherals.
• 6. Power Resources
• Power resources is a generic term for the overhead cables and sub-stations that provide
electricity to the various equipment, devices, and buildings. Supplying with a trustworthy and
constant electricity stream is as essential to the system as it is for preventing unplanned data
loss or equipment damage.
• 7. Human Resources
• Human resources are the people who are involved in the design, development,
deployment, operation and maintenance of the system. Human resources are in a lot of
ways behind the creation of the system through job positions such as requirements
analysis, software development, system administration and user support.
• 8. Software Resources
• Overall software resources are a combination of the various software parts and programs
that are made to process on the system, like operating systems, middleware programs,
databases, web servers, and custom software development. Managing software
resources is the process of installing, configuring, monitoring and updating software.
• Importance of Resource Management:
• Below are the importance of Resource Management-
• Less effort: Software reuse requires less effort because many components use in the
system are ready made components.
• Time-saving: Re-using the ready made components is time saving for the software team.
• Reduce cost: Less effort, and time saving leads to the overall cost reduction.
• Increase software productivity: when you are provided with ready made components,
then you can focus on the new components that are not available just like ready made
components.
• Utilize fewer resources: Software reuse save many sources just like effort, time, money
etc.
• Leads to a better quality software: Software reuse save our time and we can consume
our more time on maintaining software quality and assurance.
• What are stages of reuse-oriented software engineering?
• Requirement specification:
• First of all, specify the requirements. This will help to decide that we have some existing
software components for the development of software or not.
• Component analysis
• Helps to decide that which component can be reused where.
• Development
• Existing components are matching with new software or not.
• Integration
• Can we integrate the new systems with existing components?
• System validation
• To validate the system that it can be accepted by the customer or not.
• Software reuse success factors
• 4. Risk
• Any unforeseen event that could positively or negatively impact your project is referred
to as project risk. Estimating risk entails predicting what events will occur during the
project’s life cycle and how serious they will be.
• You can better plan for potential issues and create risk management plans if you
estimate what risks could affect your project and how they will affect it.
• 5. Resources
• The assets you’ll need to complete the project are known as project resources. Tools, people,
materials, subcontractors, software, and other resources are all examples of resources. Resource
management ensures that you have all of the resources you require and make the best use of
them.
• It’s challenging to plan how you’ll manage resources without knowing what you’ll need and when.
This can result in people sitting around doing nothing or materials arriving weeks after you need
them.
• 6. Quality
• Quality is concerned with the completion of project deliverables. Products that must adhere to
stringent quality standards, such as environmental regulations, may require more money, time,
and other resources than those with lower standards.
• Estimating the level of quality required by the customer aids in the planning and estimating the
remaining five aspects of your project. Because all six project factors are interconnected,
forecasts for one can have an impact on forecasts for the other five.
• As a result, applying the same software project estimation techniques to all six areas can help you
improve your accuracy.
• Decomposition Techniques:
Software engineering deals with complex systems, and managing that complexity is
crucial for successful project delivery. Decomposition techniques are a cornerstone of this
approach, offering a structured way to break down large software projects into smaller,
more manageable pieces.
Benefits of Decomposition
Decomposing a large project into smaller components offers several advantages:
Improved Manageability: Smaller, well-defined modules are easier to understand,
develop, test, and maintain.
Enhanced Focus: Developers can concentrate on specific functionalities without getting
overwhelmed by the entire system.
Reduced Risk: Issues are easier to isolate and fix when confined to smaller modules.
Promotes Parallel Development: Different teams can work on independent modules
concurrently, accelerating development.
Better Estimation: Decomposition facilitates more accurate effort and cost estimation
for individual modules, leading to more realistic project timelines and budgets.
• Approaches to Decomposition:
• There are several ways to decompose a software project, each with its own
strengths:
Focus on Quantity, Not Quality: LOC only considers the raw volume of code,
not its complexity or efficiency. A well-written program with fewer lines might
require more effort than a poorly written one with more lines.
Language Dependency: LOC estimates are heavily influenced by the
programming language used. Languages with verbose syntax will naturally have
higher LOC compared to more concise languages, even for projects of similar
functionality.
• Disregards Non-Coding Efforts: Software development involves tasks
beyond writing code, such as design, testing, documentation, and
maintenance. LOC estimation fails to account for these crucial aspects.
• Project Specificity: Historical data from past projects might not be
directly applicable to a new project with different features and
complexities.
• Mitigating the Risks
• While LOC shouldn’t be the sole factor for estimation, it can be a useful
data point when used cautiously:
• Functional Point Analysis (FPA) is a software measurement technique used to assess the
size and complexity of a software system based on its functionality. It involves
categorizing the functions of the software, such as input screens, output reports,
inquiries, files, and interfaces, and assigning weights to each based on their complexity.
By quantifying these functions and their associated weights, FPA provides an objective
measure of the software’s size and complexity.
• What is Functional Point Analysis?
• Functional Point Analysis gives a dimensionless number defined in function points which we
have found to be an effective relative measure of function value delivered to our customer.
• A systematic approach to measuring the different functionalities of a software application is
offered by function point metrics. Function point metrics evaluate functionality from the
perspective of the user, that is, based on the requests and responses they receive.
• How it Works:
• Component-Based: Object point analysis focuses on the components of the application,
• Complexity Weighting: Each component is assessed for its complexity, and weights are
assigned based on that complexity.
• Total Object Point Count: The total number of object points is calculated by summing
the weighted object points for each component.
• Effort Estimation: The total object point count is then used to estimate the effort
required to develop the application.
• Benefits:
• Independent of Technology: Object point analysis is independent of the programming
language, development methodology, or technology used to develop the application.
• Focus on Functionality: It focuses on the functionality provided by the application, rather
than the code itself.
• Early Estimation: It can be used early in the software development lifecycle to estimate
effort and cost.
• Process-Based Estimation:
• In software engineering, process-based estimation involves breaking down a
project into key processes and estimating the effort required for each,
ultimately leading to cost and schedule estimations.
• Here's a more detailed explanation:
• Key Steps in Process-Based Estimation:
• Identify Project Processes:
• Determine the core activities or processes involved in the software
development lifecycle, such as requirements analysis, design, coding, testing,
and deployment.
• Estimate Effort for Each Process:
• Estimate the time, resources, and effort required for each identified process.
• Determine Resources Needed:
• Identify the resources (personnel, tools, etc.) required for each process.
• Estimate Cost of Each Process:
• Calculate the cost associated with each process based on effort and
resource requirements.
• Summarize the Estimate:
• Combine the estimates for all processes to arrive at a total project cost,
effort, and schedule.
• Example:
• Imagine a software project to develop a new e-commerce website. Process-based
estimation might involve the following:
• Processes: Requirements gathering, UI/UX design, front-end development, back-end
development, database design, testing, and deployment.
• Effort: Estimate the time (e.g., person-days) required for each process.
• Resources: Determine the types of developers, designers, testers, etc., needed for each
process.
• Cost: Calculate the cost of each process based on effort and resource costs.
• Total: Sum up the costs and effort for all processes to get the total project cost and
effort.
• Benefits of Process-Based Estimation:
• Simplicity:
• It's a relatively straightforward approach, making it easy to understand and implement.
• Focus on Activities:
• It emphasizes the activities required to complete the project, leading to a more realistic
estimate.
• Flexibility:
• It can be adapted to different project types and development methodologies.
• Transparency:
• The breakdown of the project into processes makes it easier to track progress and
identify potential issues.
• Estimation with use cases:
• Use Case Points (UCP) is a method to estimate the size and effort of a software project
based on use cases, considering factors like complexity and environmental/technical
conditions.
• Here's a more detailed breakdown:
• What are Use Cases?
• Use cases describe how users interact with a system to achieve specific goals.
• They outline the flow of user inputs and system responses, including both successful
and unsuccessful paths.
• They are a key tool for understanding system requirements and functionality.
• How Use Case Points (UCP) Work:
• Identify Use Cases:
• The first step is to identify and document the use cases for the software system.
• Analyze Complexity:
• Each use case is analyzed for its complexity, considering factors like the number of
steps, actors involved, and the complexity of the scenarios.
• Assign Weights:
• Use cases are assigned weights based on their complexity, and actors are also
classified and weighted.
• Adjust for Environmental and Technical Factors:
• The unadjusted use case points are then adjusted to account for environmental
and technical factors, such as the complexity of the development environment,
the skills of the development team, and the technical challenges of the project.
• Calculate UCP:
• The final UCP value is calculated by combining the weighted use cases, actors,
and adjustment factors.
• Estimate Effort:
• UCPs can be used to estimate the effort required to develop the software, often
expressed in person-months or person-days. onsidering factors like the number of
steps, actors involved, and the complexity of the scenarios.
• Benefits of Using UCP:
• Early Estimation:
• UCP can be used early in the project lifecycle, even before detailed design and coding
have started.
• Focus on Functionality:
• UCP focuses on the functionality of the software, which can help to ensure that the
project is meeting the needs of the users.
• Improved Communication:
• Using use cases and UCP can help to improve communication between developers,
testers, and stakeholders.
• Better Planning:
• UCP can help to improve project planning and resource allocation.
• Use case-based estimation :
• Use case-based estimation in software engineering uses use cases, which represent
scenarios of how a system interacts with actors, to estimate project effort and size,
focusing on functionality and complexity.
• Here's a more detailed explanation:
• What are Use Cases?
• A use case describes a specific interaction between a user (or actor) and a system to
achieve a particular goal.
• It outlines the steps involved in that interaction, focusing on what the system should do,
not how.
• Use cases are a key part of the Unified Modeling Language (UML) and Rational Unified
Process (RUP) methodologies.
• How is it used for Estimation?
• Identifying Use Cases:
• The process begins by identifying all the use cases that the software
system will need to support.
• Analyzing Complexity:
• Each use case is then analyzed to determine its complexity, considering
factors like:
• Number of Steps: The number of actions or steps within the use case.
• Number of Actors: The number of actors involved in the use case.
• Technical Complexity: Technical factors like the database, network, and
other technologies used.
• Environmental Complexity: Factors related to the development team,
processes, and environment.
• Assigning Weights:
• Use cases and actors are assigned weights based on their complexity (e.g., simple,
average, complex).
• Calculating Use Case Points (UCP):
• The UCP method, developed by Gustav Karner, uses a formula to calculate the size of
the software based on the use case points.
• Estimating Effort:
• UCPs can be used to estimate the effort required to develop the software, often
expressed in person-months or man-hours.
• Assigning Weights:
• Use cases and actors are assigned weights based on their complexity (e.g., simple,
average, complex).
• Calculating Use Case Points (UCP):
• The UCP method, developed by Gustav Karner, uses a formula to calculate the size of
the software based on the use case points.
• Estimating Effort:
• UCPs can be used to estimate the effort required to develop the software, often
expressed in person-months or man-hours.
• Benefits of Use Case-Based Estimation:
• Focus on Functionality:
• It helps developers and stakeholders understand the system's functionality and
requirements from a user perspective.
• Early Risk Identification:
• Identifying use cases and their complexity helps to identify potential risks and
challenges early in the development process.
• Improved Communication:
• Use cases are easily understood by both technical and non-technical stakeholders,
facilitating better communication and collaboration.
• More Accurate Estimates:
• By considering the complexity of the use cases, this method can lead to more accurate
estimates of effort and time required for development.
• Reconciling estimations :
• Reconciling estimations in software engineering involves aligning different estimation
methods and perspectives to arrive at a single, realistic estimate of project effort, time,
and cost. This process is crucial for effective project planning and resource allocation.
• Here's a breakdown of the process:
• Why Reconcile Estimates?
• Multiple Perspectives:
• Different estimation techniques (e.g., bottom-up, top-down, analogy-based) can yield
varying results.
• Uncertainty:
• Software projects inherently involve uncertainty, and different estimators may have
varying levels of confidence.
• Stakeholder Alignment:
• Reconciling estimates helps ensure that all stakeholders (developers, project managers,
clients) are on the same page regarding project expectations.
• Methods for Reconciling Estimates:
• Identify and Analyze Divergences: Compare estimates from different sources and identify areas of
significant disagreement.
• Investigate Reasons for Differences: Explore the underlying assumptions, methodologies, and data
used in each estimation technique.
• Utilize Multiple Estimation Techniques: Employ a combination of estimation methods to gain a more
comprehensive understanding of the project.
• Bottom-Up vs. Top-Down: Compare the estimates from the bottom-up (detailed task estimation) and
top-down (project-level estimation) approaches.
• Three-Point Estimation: Use optimistic, most likely, and pessimistic estimates to create a range of
potential outcomes.
• Delphi Technique: Use a group of experts to iteratively refine estimates, seeking consensus.
• Peer Review: Have other team members review and provide feedback on the estimates.
• Iterative Refinement: Continuously refine estimates as the project progresses and more information
becomes available.
• Risk Assessment: Identify and assess potential risks that could impact the project timeline and budget.
• Use Historical Data: Analyze data from previous similar projects to inform current estimates.
• Tools and Techniques:
• Software Estimation Tools:
• Utilize software tools that can help with estimation, tracking, and reporting.
• Project Management Software:
• Use project management software to manage tasks, track progress, and monitor
estimates.
• Spreadsheets:
• Use spreadsheets to organize and analyze data from different estimation sources.
• Benefits of Reconciling Estimates:
• More Realistic Estimates:
• Reconciled estimates are more likely to be accurate and reflect the true complexity of the
project.
• Improved Project Planning:
• Accurate estimates enable better project planning, resource allocation, and scheduling.
• Reduced Risk:
• By identifying and addressing potential issues early on, reconciliation can reduce the risk of
project delays, cost overruns, and scope creep.
• Enhanced Stakeholder Communication:
• Reconciled estimates provide a clear and consistent view of the project's scope, timeline,
and budget, improving communication among stakeholders.
• Increased Project Success:
• By improving the accuracy and reliability of estimates, reconciliation contributes to the
overall success of software development projects.
• Empirical Estimation Models:
• Empirical estimation models in software engineering use data from past projects and
experience to predict future project effort, cost, and schedule, employing formulas and
statistical analysis to estimate these parameters.
• Here's a more detailed explanation:
• What are Empirical Estimation Models?
• Based on Past Data:
• These models rely on historical data from similar projects to identify patterns and
relationships between project characteristics (like size, complexity) and outcomes (like
effort, cost, schedule).
• Formulas and Statistical Analysis:
• They use mathematical formulas and statistical techniques to model these
relationships, allowing for predictions about future projects.
• Key Parameters:
• Effort: The amount of labor required to complete a project, often measured in person-months.
• Cost: The total expenses associated with a project.
• Schedule: The timeline for project completion.
• Size: Measured by LOC, FP, or other metrics.
• Complexity: Factors that influence the difficulty of the project.
• Advantages:
• Objectivity: Based on data rather than subjective opinions.
• Repeatability: Allows for consistent estimation across projects.
• Accuracy: Can provide more accurate estimates than other methods.
• Disadvantages:
• Data Dependency: Requires a good amount of historical data to be effective.
• Model Complexity: Can be complex to implement and maintain.
• Sensitivity to Inputs: The accuracy of the estimates depends on the quality of the input data.
• Structure of Estimation Models
• Software engineering estimation models, like COCOMO, use mathematical formulas and
empirical data to predict effort, cost, and schedule for software projects, often based on
size (e.g., lines of code) and project characteristics.
• Key Elements of Estimation Models:
• Size: The size of the software project, typically measured in lines of code (LOC) or
function points (FP), is a crucial input.
• Effort: The amount of work (e.g., person-months) required to complete the project.
• Cost: The financial resources needed to complete the project.
• Schedule: The estimated time required to complete the project.
• Cost Drivers: Factors that influence the effort and cost, such as project complexity,
technology, and team experience.
• Empirical Data: Models are often based on historical data from similar projects.
• Mathematical Formulas: Models use mathematical equations to predict effort, cost, and
schedule.
• Project Categorization: Some models, like COCOMO, categorize projects based on
complexity and development environment.
• Types of Estimation Models:
• Empirical Estimation: Uses data from previous projects and assumptions to predict
effort.
• Heuristic Estimation: Uses shortcuts and practical methods for quick decisions.
• Analytical Estimation: Breaks down tasks into smaller components for analysis.
• COCOMO II Model:
• COCOMO II (Constructive Cost Model II) is a software engineering method developed by
Barry Boehm and his colleagues, used to estimate the cost, effort, and schedule of
software projects, and it consists of three submodels: application composition, early
design, and post-architecture.
• Key Features:
• Cost Drivers: COCOMO II considers various factors that influence the cost of software
development, such as project size, complexity, and team experience.
• Effort and Schedule Estimation: It provides equations and models to estimate the effort
(person-months) and schedule (time) required to complete a software project.
• Software Maintenance Cost Estimation: COCOMO II can also be used to estimate the
cost of software maintenance and evolution.
• Benefits:
• Improved Accuracy: COCOMO II provides more accurate cost estimations compared to
the original COCOMO model.
• Better Planning: It helps project managers plan projects more effectively by providing
realistic estimates of effort, cost, and schedule.
• Resource Allocation: It helps in allocating resources effectively by providing insights into
the effort required for different phases of the software development lifecycle.
• Preparation Requirements Traceability Matrix (RTM)
• To prepare a Requirements Traceability Matrix (RTM) in software engineering, you need
to identify all requirements, create a table or spreadsheet, link requirements to test
cases, and regularly update the matrix as requirements or test cases change.
• Here's a more detailed breakdown:
• What are you trying to achieve with the RTM? (e.g., compliance verification,
requirement validation, impact analysis)
• What types of traceability do you need? (e.g., forward, backward, bidirectional)
• What artifacts will be included? (e.g., requirements, test cases, defects)
• Gather and Document Requirements:
• Benefits:
• Improved Time Management: Helps ensure that the project is completed on time.
• Resource Optimization: Allows for efficient allocation of resources.
• Clear Communication: Provides a shared understanding of the project schedule among
team members.
• Better Planning and Control: Facilitates better planning and control of the project's
progress.
• Project Evaluation and Review Technique (PERT)
• Project Evaluation and Review Technique (PERT) is a procedure through which activities
of a project are represented in its appropriate sequence and timing. It is a scheduling
technique used to schedule, organize and integrate tasks within a project.
• In this technique, a PERT Chart is made which represent a schedule for all the specified
tasks in the project. The reporting levels of the tasks or events in the PERT Charts is
some what same as defined in the work breakdown structure (WBS).
• What is PERT Chart?
• A PERT chart is a project management tool used to plan and schedule tasks, illustrating
the sequence and timing of project activities.
• The PERT chart is used to schedule, organize and co-ordinate tasks within the project.
the objective of PERT chart is to determine the critical path, which comprises critical
activities that should be completed on schedule.
• This chart is prepared with the help of information generated in project planning
activities such as estimation of effort, selection of suitable process model for software
development and decomposition of tasks into subtasks.
• What does a PERT Chart Contain?
• Here are the main components of a PERT chart:
• Nodes: it represents the task or milestones. every node represents the task name and may
also show duration of the task.
• Arrows: it indicates the direction or sequence of task and also dependencies between them.
suppose an array from A to B, then task A must be completed before task B.
• Critical Path: The critical path is the largest path in project management that always results
in the shortest time to complete the project.
• Milestones: It is Key point in the project timeline that represent significant events or
deadlines.
• Characteristics of PERT
• Definition:
• A task set is a grouping of related tasks, milestones, and deliverables that are necessary
to accomplish a specific part of a software project.
• Purpose:
• Task sets help to organize and structure the work required for a project, making it easier
to plan, track progress, and manage resources.
• Examples:
• Project Planning: A task set for project planning might include tasks like requirements
gathering, creating a project plan, and defining the project scope.
• Elicitation: A task set for elicitation might include tasks like conducting user
interviews, analyzing requirements, and documenting user stories.
• Development: A task set for development might include tasks like coding, testing, and
debugging.
• Deployment: A task set for deployment might include tasks like setting up the
environment, deploying the software, and testing the deployment.
• Relationship to Project Schedule:
• Task sets are typically mapped to a project schedule, which defines the timeline and
resources required for each task set.
• Benefits:
• Improved Organization: Task sets help to break down large projects into smaller, more
manageable chunks.
• Better Planning: By defining task sets, project managers can better plan the work
required for a project.
• Enhanced Tracking: Task sets make it easier to track progress and identify potential
problems.
• Effective Communication: Task sets provide a clear and concise way to communicate
project requirements and expectations to team members.