Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
software (1).pptx
1. Name ID NO
1. BETEAB BAYNESSAGNE…………..……..RU
0123/14
2. DUBAABARUFA……………………..…….RU
1769/14
3. TSEHAYNESH BIRUH………………..……RU
0485/14
4. EYERUS
YOSEPH……………………………RU 0567/14
5. DAWIT TAMIRU …………………………..RU
0718/14
6. DANIEL DIRIBA ……………………...…….RU
0719/14
7. SARON WONDWOSSEN……………...….RU
0156/14 8. AYANA
DAMTEW…………………………..RU 0929/14
2. Software project management
• Software project management is the process of planning,
organizing, and controlling the resources and activities
required to develop software products.
• It involves defining project goals, identifying project
requirements, estimating project timelines and budgets,
allocating resources, scheduling tasks, monitoring progress,
and managing risks and changes.
• The goal of software project management is to deliver high-
quality software products that meet customer requirements
with in the constraints of time, budget, and resources.
• Effective software project management requires a
combination of technical skills, project management
knowledge, and communication and leadership skills.
3. RESPOIBILITY OF SOFTWARE PROJECT
MANAGERS
• The responsibility of software project management is to
ensure that the software development project is completed
successfully, within the specified time frame, budget, and
quality standards.
• The software project manager is responsible for planning
and executing the project, managing the team,
communicating with stakeholders, and ensuring that the
project meets the customer's requirements.
It is als;defining the project scope and objectives, identifying
project risks, and developing a project plan that outlines the
tasks, timelines, and resources required to complete the
project. The project manager must also identify and manage
project dependencies, such as hardware or software
dependencies, and ensure that all team members are aware of
their roles and responsibilities.
4. Cont..
• for monitoring the project's progress, tracking milestones,
and reporting on project status to stakeholders. They must
also manage changes to the project scope, timeline, or
budget and ensure that any changes are communicated to all
stakeholders.
• managing the project team, including hiring and training
team members, assigning tasks, and ensuring that team
members have the resources they need to complete their
work. They must also motivate team members and provide
feedback on their performance.
• Overall, the responsibility of software project management is
to ensure that the software development project is completed
successfully, meeting all requirements and delivering high-
quality software products that meet customer needs.
5. Project planning
• Project planning is the process of defining and organizing all
the activities and resources required to complete a software
development project. It involves identifying the scope,
objectives, timeline, and deliverables of the project,
estimating the resources required, and developing a plan to
complete each task within the given timeline.
• The project planning process starts with defining the scope
of the project, which includes identifying what features will
be included and what will be excluded from the project.
Once the scope is defined, the project objectives are
identified, which helps in defining the goals of the project
and what it is intended to achieve.
• schedule for completing each task.
6. The key steps involved in project planning include
1. Defining project scope:
This involves defining the boundaries of the project, including what features will be included
and what will be excluded. Defining project scope refers to the process of identifying the
boundaries and limitations of a project. It involves determining what features, functionalities,
and deliverables will be included in the project, as well as what will be excluded. The scope
defines the overall objectives and goals of the project and helps ensure that all stakeholders
have a clear understanding of what the project is intended to achieve. It is a critical part of
project planning, as it helps ensure that the project stays on track and meets its intended goals.
2. Identifying project objectives:
This involves defining the goals of the project and what it is intended to achieve. Identifying
project objectives refers to the process of clearly defining the specific goals and outcomes that
a project is intended to achieve. These objectives should be specific, measurable, achievable,
relevant, and time-bound (SMART). It is crucial for ensuring that all stakeholders have a clear
understanding of what the project is intended to achieve and helps guide decision-making
throughout the project lifecycle. It also helps measure the success of the project and evaluate
whether it has met its intended goals.
7. Con..
3. Developing a project plan:
This involves creating a detailed plan that outlines the tasks, timelines, and resources required
to complete the project. It refers to the process of creating a detailed document that outlines
the specific activities, resources, timelines, and budget required to successfully complete a
project. The project plan serves as a roadmap for the project team, guiding them through each
phase of the project and helping them stay on track towards achieving the project objectives.
The project plan typically includes a project scope statement, a work breakdown structure, a
project schedule, a resource plan, a risk management plan, and a budget. it is also essential
for ensuring that the project is completed on time, within budget, and to the satisfaction of
stakeholders.
4. Estimating project costs:
This involves estimating the cost of resources required to complete the project, including
labor, materials, and equipment. It is the process of determining the approximate amount of
money that will be required to complete a project. This involves identifying all the necessary
resources, including personnel, equipment, materials, and any other expenses that will be
incurred during the project. The estimated cost is typically based on historical data, industry
benchmarks, and expert judgment. The accuracy of the estimated cost is critical in ensuring
that the project is completed within budget and that the organization does not incur any
unexpected costs. Estimating project cost is an important part of project planning and is
typically done in conjunction with other project planning activities, such as developing a
project schedule and resource plan.
8. Cont..
• 5. Developing a project schedule:
• This involves creating a timeline for completing each task and ensuring that all tasks are
completed on time. It is the process of creating a timeline or roadmap for completing the
project. It involves breaking down the project into smaller, more manageable tasks or
activities, determining the order in which these tasks should be completed, and assigning
estimated durations to each task. The resulting schedule should include start and end dates
for each task, as well as any dependencies between tasks. Developing a project schedule is
important because it helps ensure that the project is completed on time and within budget,
and provides a framework for tracking progress and making adjustments as needed. The
schedule should be reviewed and updated regularly throughout the project to ensure that it
remains accurate and reflects any changes in scope or priorities.
• 6. Identifying project risks:
• This involves identifying potential risks that could impact the success of the project and
developing strategies to mitigate Identifying project risks is the process of identifying
potential events or circumstances that could have a negative impact on the project's
objectives, timeline, budget, or quality. This involves analyzing the project's scope,
stakeholders, resources, and external factors to identify potential risks and their potential
impact. This process also involves assessing the likelihood and severity of each risk and
developing strategies to mitigate or manage them. This process is also important because it
helps project teams anticipate and prepare for potential challenges, minimize the likelihood
and impact of negative events, and increase the chances of project success.
9. Con..
• 7. Defining project deliverables: This involves defining what will
be delivered at the end of the project, including software code,
documentation, and training materials. It includes the process of
identifying the specific outputs or outcomes that are expected
from a project. Deliverables can be tangible or intangible, and
may include products, services, reports, or other items that are
produced as a result of the project. The process involves working
with stakeholders to understand their needs and expectations,
defining the specific requirements for each deliverable, and
documenting these requirements in a clear and concise manner.
This process is important because it helps ensure that everyone
involved in the project has a clear understanding of what is
expected, and provides a basis for measuring progress and success.
• Overall, effective project planning is critical to the success of any
software development project, as it helps ensure that all
stakeholders are aligned on project goals, timelines, and resource
requirements.
10. Project size estimation metrics
• Project size estimation metrics are quantitative
measures used to estimate the size and complexity of a
software development project. These metrics help in
determining the effort, time, and resources required to
complete the project. The commonly used metrics for
project size estimation include Lines of Code (LOC),
Function Points (FP), Use Case Points (UCP), and Story
Points (SP). The choice of metric depends on the nature
of the project and the development team's preferences.
Accurate project size estimation is essential for effective
project planning, resource allocation, and risk
management.
11. Lines of code (LOC)
• Lines of Code (LOC) is a metric used to estimate the size of
a software project based on the number of lines of code in
the source code. This metric assumes that the more lines of
code a project has, the more complex and time-consuming it
will be to develop and maintain. However, this metric has
some limitations as it does not consider the quality,
functionality, or complexity of the code.
• Moreover, different programming languages have different
syntax and coding styles, which can affect the LOC count.
For example, a project written in a language with a verbose
syntax like Java may have a higher LOC count than a project
written in a concise language like Python with equivalent
functionality. Therefore, LOC should be used in combination
with other metrics for accurate project size estimation.
12. Function points (fp)
• Function Points (FP) is another metric used to estimate the size of
a software project based on the functionality provided by the
software. This metric considers the user's perspective and
measures the software's ability to satisfy their needs. The FP
metric takes into account the number of inputs, outputs, inquiries,
files, and interfaces required by the software.
• Unlike LOC, FP considers the complexity and functionality of the
code, rather than just its size. This metric is language-independent
and can be used to estimate the size of a project written in any
programming language. FP can also be used to estimate the effort
required to develop and maintain the software.
• However, FP has some limitations as well. It requires a detailed
understanding of the software's functionality, which can be time-
consuming and difficult to obtain. Moreover, it does not consider
the quality of the code or the complexity of the algorithms used in
the software. Therefore, FP should be used in combination with
other metrics for accurate project size estimation.
13. Use case points (UCP)
• Use Case Points (UCP) is another software metric used to estimate the size of a
project based on the user's perspective. This metric considers the number and
complexity of use cases required by the software to satisfy the user's needs. Use
cases are scenarios that describe how the user interacts with the software to
achieve a specific goal.
• The UCP metric takes into account the number of actors, use cases, and technical
complexity factors required by the software. Actors are users or external systems
that interact with the software, while technical complexity factors include factors
such as distributed processing, performance, and security.
• UCP is language-independent and can be used to estimate the size of a project
written in any programming language. It can also be used to estimate the effort
required to develop and maintain the software.
• However, UCP also has some limitations. It requires a detailed understanding of
the software's functionality and use cases, which can be time-consuming and
difficult to obtain. Moreover, it does not consider the quality of the code or the
complexity of the algorithms used in the software. Therefore, UCP should be
used in combination with other metrics for accurate project size estimation.
14. Story points
• Story points are a software metric used to estimate the effort required to complete
a user story or a feature in an Agile development process. A user story is a high-
level description of a requirement or a feature from the user's perspective.
• The story point estimation process involves assigning a relative value to each
user story based on its complexity, risk, and effort required to complete it. This
value is usually represented as a number, such as 1, 2, 3, 5, 8, 13, etc., which
represents the effort required to complete the user story relative to other user
stories.
• Story points are language-independent and can be used to estimate the effort
required to develop and maintain software written in any programming language.
They are also useful for tracking progress and forecasting project timelines.
• However, story points also have some limitations. They require a good
understanding of the user stories and their requirements, which can be difficult to
obtain in complex projects. Moreover, they do not consider the technical
complexity of the software or the quality of the code. Therefore, story points
should be used in combination with other metrics for accurate project estimation.
15. Project estimation techniques
• Project estimation techniques are methods used to predict the effort, time, and cost required
to complete a project. These techniques are used in project management to plan and
schedule the project, allocate resources, and manage risks.
• There are several project estimation techniques, including:
• 1. Expert judgment: This technique involves consulting experts in the field to estimate the
effort required to complete the project.
• 2. Analogous estimating: This technique involves using historical data from similar
projects to estimate the effort required for the current project.
• 3. Bottom-up estimating: This technique involves breaking down the project into smaller
tasks and estimating the effort required for each task.
• 4. Three-point estimating: This technique involves estimating the best-case, worst-case,
and most likely scenarios for each task and using this information to calculate a weighted
average.
• 5. Parametric estimating: This technique involves using statistical models to estimate the
effort required based on variables such as size, complexity, and productivity.
• Each technique has its advantages and disadvantages and may be more appropriate for
certain types of projects. It is important to use a combination of techniques to ensure
accurate project estimation.
16. Con..
• 6. Reserve analysis: This technique involves setting aside a contingency reserve to account
for unexpected events or changes in the project.
• 7. Delphi technique: This technique involves gathering estimates from a group of experts
anonymously and using their feedback to refine the estimates.
• 8. Monte Carlo simulation: This technique involves using probability distributions to
simulate different outcomes and estimate the likelihood of meeting project objectives.
• 9. Agile estimating and planning: This technique involves using iterative and incremental
approaches to estimate and plan the project based on feedback and changes throughout the
project.
• 10. Vendor bid analysis: This technique involves gathering estimates from vendors or
suppliers to determine the cost of outsourcing certain tasks or resources.
• It is important to choose the appropriate project estimation technique based on the project
scope, complexity, and available data. Accurate project estimation is crucial for successful
project management and delivery.
17. Scheduling
• Scheduling in software project management refers to the
process of creating a timeline for completing tasks and
activities related to the development of a software
project. It involves identifying all the tasks that need to
be done, estimating the time required to complete each
task, and organizing them into a logical sequence that
ensures the project is completed on time and within
budget. Scheduling also involves assigning resources,
such as people and equipment, to specific tasks and
monitoring progress to ensure that the project stays on
track. A well-planned schedule helps to ensure that the
project is completed efficiently and effectively, with
minimal delays or disruptions.
18. Organization
• Organization in software project management refers to the
process of structuring and managing the various components
of a software project. This includes defining roles and
responsibilities, establishing communication channels,
setting up processes and procedures, and creating a project
plan. Effective organization ensures that everyone involved
in the project understands their roles and responsibilities,
knows what is expected of them, and has the resources they
need to complete their tasks. It also helps to prevent
confusion, reduce errors, and increase efficiency. A well-
organized software project is more likely to be completed on
time, within budget, and to the satisfaction of all
stakeholders.
19. Team structures
• There are several team structures that can be used in software project management,
depending on the size and complexity of the project, as well as the skills and experience of
the team members. Some common team structures include:
• 1. Functional teams: In this structure, team members are organized according to their
functional roles, such as developers, testers, designers, and project managers. Each team
member is responsible for their specific area of expertise and works independently within
their own function.
• 2. Cross-functional teams: This structure brings together team members from different
functional areas to work together on a specific project. The team is usually led by a project
manager who oversees the work of all team members and ensures that everyone is working
towards a common goal.
• 3. Matrix teams: This structure combines functional and cross-functional teams, with team
members working both within their functional area and on cross-functional projects. This
structure allows for greater flexibility and collaboration, but can also lead to conflicts over
resources and priorities.
• 4. Agile teams: Agile methodologies emphasize collaboration, flexibility, and rapid
iteration. Agile teams are typically small, cross-functional teams that work together closely
to deliver working software in short iterations.
• Regardless of the team structure used, effective communication, collaboration, and
leadership are essential for success in software project management.