SWE 2 - Google Docs
SWE 2 - Google Docs
D
● efines the objectives, scope, and deliverables of the project.
● Creates a roadmap with timelines, milestones, and dependencies.
● Includes resource allocation, risk assessment, and contingency
planning.
E
● nsures optimal use of human, financial, and technological resources.
● Allocates roles and responsibilities to team members based on
expertise.
● Tracks resource utilization to avoid bottlenecks.
3. Time Management
B
● reaks down the project into smaller, manageable tasks with deadlines.
● Uses tools like Gantt charts, Agile boards, and critical path analysis for
scheduling.
● Monitors progress to ensure timely delivery.
● E nsures that the software meets specified requirements and user
expectations.
● Incorporates quality assurance (QA) and quality control (QC) processes.
● Adopts standards like ISO/IEC or CMMI for quality improvement.
● Identifies potential risks such as technical issues, scope creep, or
resource shortages.
● Develops mitigation strategies to address risks proactively.
● Continuously monitors and manages risks throughout the project
lifecycle.
D
● ynamic Requirements: Frequent changes in user needsor scope.
● Technical Complexity: Issues arising from new or evolving
technologies.
● Resource Constraints: Limited availability of skilledpersonnel or
funding.
● Time Pressure: Tight deadlines impacting quality orscope.
● Team Coordination: Managing collaboration across diverseor
distributed teams.
Waterfall Model
Iterative Model
P
● rojects with unclear or evolving requirements.
● Large and complex systems that benefit from incremental
development.
● When early delivery of functional software is required.
● Projects where stakeholder involvement and feedback are crucial.
V-Model (Verification and Validation Model)
P
● rojects with clear and stable requirements.
● Safety-critical or high-quality systems, such as medical devices or
aerospace software.
● Projects where testing and validation are paramount.
Spiral Model
P
● rojects with high complexity and significant risks.
● Large-scale systems requiring iterative development and stakeholder
feedback.
● Scenarios where requirements are unclear or likely to evolve.
● Projects involving new technologies or high innovation levels.
Agile Model
1. Less Predictable: Scope and timelines may change dueto evolving
requirements.
2. Requires High Commitment: Demands active involvementfrom
stakeholders and developers.
3. Not Suitable for Large Teams: Can become chaotic ifnot properly
managed.
4. Documentation Overlooked: Emphasis on working softwaremay
result in insufficient documentation.
he first step in project planning is to define the scope. This involves outlining
T
the objectives, goals, features, and functionalities of the software to be
developed. The scope helps establish what is included in the project and
what is excluded, setting clear expectations for both the project team and
stakeholders.
nce resources are defined, the project must be broken down into
O
manageable tasks with clear deadlines. Creating a timeline and schedule
helps ensure that the project stays on track and that tasks are completed in
an organized manner.
4. Budgeting
uality assurance ensures that the software meets the required standards
Q
and functions as expected. QA planning involves defining the processes,
tools, and metrics needed to verify that the software is of high quality.
learly defining deliverables ensures that the final product meets the
C
agreed-upon requirements and quality standards. This step helps to ensure
that the project is completed successfully and can be handed off to
stakeholders.
Identification of Activities
ctivities in software project management represent the specific tasks and
A
processes that need to be performed to accomplish the project goals. These
activities should be broken down from larger objectives into smaller,
manageable parts to ensure clear execution and monitoring.
Identification of Resources
esources are the elements needed to perform project activities. These can
R
include human resources (team members), software tools, hardware, and
other materials.
Steps to Identify Resources:
1. Human Resources (Personnel): Identify the roles and skills required
for the project. Each activity will require specific expertise.
○ Roles: Developers, testers, project managers, business analysts,
UI/UX designers, etc.
○ Skills: Specific technical skills like proficiency in programming
languages (Java, Python, C++), database management, project
management expertise, and soft skills such as communication
and teamwork.
2. Hardware Resources: Hardware resources include computers,
servers, and any specialized equipment required for development,
testing, or deployment.
○ Example: Development workstations, test servers, production
servers, networking equipment, etc.
3. Software Tools: Software tools are essential for the development
process. These can include integrated development environments
(IDEs), project management software, version control systems, bug
tracking tools, and testing tools.
○ Example:
■ IDEs like Visual Studio or Eclipse
■ Version control tools like Git or SVN
■ Project management tools like Jira or Trello
■ Testing frameworks like Selenium or JUnit
4. Financial Resources: Identifying the project budget is an important
resource. This includes both direct and indirect costs such as:
○ Salaries for team members
○ Costs of hardware and software tools
○ Licenses for third-party tools
○ Office space and utilities
5. Material Resources: These may include physical documents,
reference materials, or any other tangible items required for project
completion.
○ Example:
■ Requirement documents
■ Design documentation
■ User manuals or training guides
6. Time Resources: Time is a crucial resource in any project. Each
activity must be allocated an estimated duration, and time for
unexpected events or delays must be built into the project timeline.
Feasibility Study
1. Cost-Benefit Analysis: It permits the interested parties to carry out an
exhaustive evaluation of costs and advantages to envision
2. Project Viability: Evaluating the general viability and feasibility of a
proposed project is critical because it enables stakeholders to
determine if the project is profitable.
3. Market Demand and Competition: A feasibility study gives insights into
the possible purchaser base, marketplace possibilities, and competitive
surroundings by analyzing market demands, trends, and opposition.
4. Making Decisions: Feasibility studies provide stakeholders the
information and understanding they need to decide whether or not to
move ahead with the task, exchange its scope or technique, or scrap it
entirely.
1. Technical Feasibility Study: This type of feasibility takes a look at
evaluating a project's technical capabilities, consisting of the
accessibility of the resources, technology, and knowledge needed to
deliver it out efficiently. It assesses whether or not the project may be
technically finished on time.
2. Economic Feasibility Study: Economic feasibility studies examine a
project's expenses and feasible benefits to determine whether or not
it's financially viable. This entails comparing the project's effect on
income, charges, and profitability as well as doing cost-benefit analysis
and calculating return on funding (ROI).
3. Operational Feasibility Study: Operational feasibility research
determines an assignment's operational factors, which include its
workflows, organizational structure, and strategies. They evaluate how
successfully and efficiently the project can be performed and integrated
into the current operations.
4. Social Feasibility Study: It evaluates how a task will have an effect on
stakeholders, neighborhood communities, and society as a whole on a
social and cultural stage. To decide if the project is socially possible
and suitable, they determine variables like social acceptance,
stakeholder participation, community effect, and company social
responsibility.
Estimation of schedule and effort
Key Features:
Key Features:
1. Identify the Types of Functions: The first step isto identify the various
functions or features within the software system. These are generally
categorized into five types:
○ External Inputs (EI): These are the user inputs that involve data
entry, such as forms, transactions, or data sent to external
systems.
○ E xternal Outputs (EO): These are the user outputs, such as
reports, messages, or processed data that are sent to the user or
to another system.
○ Internal Logical Files (ILF): These are the internaldata
structures that the software system manages, such as databases
or internal files.
○ External Interface Files (EIF): These are files ordata structures
that the system interacts with but does not control, such as
external databases or files.
○ External Inquiries (EQ): These are interactions wherethe user
queries the system and receives a response, but no data is
updated.
2. Assign Weights: Once the functions are identified,each function is
assigned a weight based on its complexity. Typically, function types are
rated as low, average, or high complexity, and each rating has a
corresponding weight. For example:
○ External Inputs (EI): Low complexity might be assigned4
points, average 5 points, and high 7 points.
○ External Outputs (EO): Low complexity might be assigned5
points, average 7 points, and high 10 points.
○ Similarly, weights are assigned to Internal Logical Files (ILF),
External Interface Files (EIF), and External Inquiries (EQ).
3. Calculate the Total Function Points: After assigningthe weights, the
function points for each category are calculated by multiplying the
count of functions by their corresponding weight. The total function
points for the system are obtained by summing the function points for
all categories.
4. Apply Complexity Adjustment: Once the raw functionpoint count is
calculated, an adjustment factor is applied based on 14 general system
characteristics (e.g., data communications, performance, and
processing complexity). Each characteristic is rated on a scale of 0 to
5, and the total score determines the adjustment factor. This helps
account for factors like system complexity, reliability, or security needs.
The formula for the final function point count is:
Adjusted Function Points=Raw Function Points×(0.65+0.01×Total
Complexity Factor)\text{Adjusted Function Points} = \text{Raw Function
Points} \times (0.65 + 0.01 \times \text{Total Complexity
actor})Adjusted Function Points=Raw Function
F
Points×(0.65+0.01×Total Complexity Factor)
The complexity factor is based on the sum of the 14 ratings, and the
result of this adjustment gives the final function point count.
5. Use Function Points for Estimation: After determiningthe total
function points, these can be used for effort estimation, cost
estimation, or comparing projects. Typically, historical data or industry
averages are used to convert function points into work effort (e.g.,
hours of effort or developer days) or cost (e.g., dollar value per function
point).
COCOMO Model
he key parameters that define the quality of any software product, which are
T
also an outcome of COCOMO, are primarily effort and schedule:
1. Effort: Amount of labor that will be required to complete a task. It is
measured in person-months units.
2. Schedule: This simply means the amount of time required for the
completion of the job, which is, of course, proportional to the effort put
in. It is measured in the units of time such as weeks, and months.
In the COCOMO model, software projects are categorized into three types
based on their complexity, size, and the development environment. These
types are:
1. Organic: A software project is said to be an organic type if the team
size required is adequately small, the problem is well understood and
has been solved in the past and also the team members have a
nominal experience regarding the problem.
2. Semi-detached: A software project is said to be a Semi-detached type
if the vital characteristics such as team size, experience, and
knowledge of the various programming environments lie in between
organic and embedded. The projects classified as Semi-Detached are
comparatively less familiar and difficult to develop compared to the
organic ones and require more experience, better guidance and
creativity. Eg: Compilers or different Embedded Systems can be
considered Semi-Detached types.
3. Embedded: A software project requiring the highest level of complexity,
creativity, and experience requirement falls under this category. Such
software requires a larger team size than the other two models and also
the developers need to be sufficiently experienced and creative to
develop such complex models.
1. Planning and requirements: This initial phase involves defining the
scope, objectives, and constraints of the project. It includes developing
a project plan that outlines the schedule, resources, and milestones
2. System design: : In this phase, the high-level architecture of the
software system is created. This includes defining the system’s overall
structure, including major components, their interactions, and the data
flow between them.
3. Detailed design: This phase involves creating detailed specifications for
each component of the system. It breaks down the system design into
detailed descriptions of each module, including data structures,
algorithms, and interfaces.
4. Module code and test: This involves writing the actual source code for
each module or component as defined in the detailed design. It
includes coding the functionalities, implementing algorithms, and
developing interfaces.
5. Integration and test: This phase involves combining individual modules
into a complete system and ensuring that they work together as
intended.
6. Cost Constructive model: The Constructive Cost Model (COCOMO) is
a widely used method for estimating the cost and effort required for
software development projects.
B
● asic COCOMO Model
● Intermediate COCOMO Model
● Detailed COCOMO Model
It estimates effort and time required for development using the following
expression:
E = a*(KLOC)b PM
Tdev = c*(E)d
Person required = Effort/ Time
here,
W
E is effort applied in Person-Months
KLOC is the estimated size of the software product indicate in Kilo Lines of
Code
Tdev is the development time in months
a, b, c are constants determined by the category of software project given in
below table.
he above formula is used for the cost estimation of the basic COCOMO
T
model and also is used in the subsequent models. The constant values a, b,
c, and d for the Basic Model for the different categories of the software
projects are:
he effort is measured in Person-Months and as evident from the formula is
T
dependent on Kilo-Lines of code. The development time is measured in
months.
These formulas are used as such in the Basic Model calculations, as not
much consideration of different factors such as reliability, and expertise is
taken into account, henceforth the estimate is rough.
Intermediate COCOMO
E=a×(KLOC)b×
Cost Drivers
Where:
● T
heCost Driversare factors that influence the project’s effort. These
factors include aspects like product reliability, team experience,
development environment, and the use of modern tools. The cost
drivers are assigned values (usually on a scale of 1 to 5), with higher
values indicating greater difficulty or complexity.
he overall effort EEE is then adjusted by the cost drivers, providing a more
T
accurate estimation based on the specific characteristics of the project.
3. Detailed COCOMO
E=a×(KLOC)b×∏Cost Drivers
In this version, the model also breaks down the project into its constituent
phases and applies cost drivers specific to each phase. This detailed
breakdown allows for a more nuanced understanding of the effort required at
each stage of the development process.
Expert Judgment
Parametric Estimating
se Case Points (UCP) is a method of software cost estimation that uses use
U
cases as the basis for estimating effort. In this approach, the system is first
broken down into use cases, and each use case is assigned a weight based
on its complexity (simple, average, or complex). Then, the weights of the use
cases are summed to calculate the total use case points.
oftware life cycle costing involves estimating and analyzing the total cost of
S
ownership (TCO) for a software product throughout its life cycle, from initial
evelopment to retirement. The life cycle consists of stages like planning,
d
design, implementation, testing, deployment, maintenance, and eventual
decommissioning.
D
● evelopment Costs: Initial investment in design, coding,and testing.
● Maintenance Costs: Ongoing updates, bug fixes, andenhancements.
● Operational Costs: Costs associated with running thesoftware,
including hardware, software licenses, and infrastructure.
● Decommissioning Costs: Costs for phasing out and retiringthe
software once it is no longer useful.
eturn on Investment is a key metric used to measure the financial benefits of
R
a software project relative to its costs. It helps assess whether a project is
worth the investment and allows for comparisons between alternative
projects.
OI=(NetProfit)/(TotalInvestment)×100
R
Where:
● N et Profitis the total benefit derived from the software (e.g., increased
productivity, revenue).
● Total Investmentincludes all costs related to thesoftware project,
including development, training, and infrastructure.
higher ROI indicates that the software project is providing more value
A
relative to its cost.
● L ines of Code (LOC): Measures the size of the software,although it
has limitations (e.g., it doesn’t account for code quality).
● Function Points: Measures software size based on itsfunctionality,
providing a more accurate indicator of complexity and value.
● Effort: Measured in person-hours or person-months,indicating the
resources required to complete a project.
● Defects per KLOC: Measures the number of defects foundper 1,000
lines of code, providing an indication of software quality.
● C
ost vs. Quality: A higher investment in quality assurance (e.g., more
testing, code reviews) can lead to better software quality but also
higher costs.
● T ime vs. Cost: Tight deadlines may require more resources (e.g., hiring
additional developers) or result in higher costs due to rushed
development.
● Scope vs. Budget: Adding more features (scope) toa project can
increase costs and development time. It is crucial to balance the
desired functionality with available resources.
What is Risk?
1. Project Risks: Risks related to project management activities, such as
unrealistic schedules, resource constraints, or scope changes.
2. Technical Risks: Risks associated with the technology used, such as
software compatibility, performance issues, or unproven tools.
3. Business Risks: Risks that affect the organization, such as market
changes, regulatory changes, or stakeholder dissatisfaction.
4. External Risks: Risks outside the project’s control, such as vendor
delays, economic conditions, or natural disasters.
isk mitigation is the process of reducing the likelihood or impact of a risk to
R
acceptable levels. It involves proactive planning and execution of strategies
to prevent risks from becoming issues or to minimize their adverse effects if
they occur.
● Ensure project objectives are met within scope, time, and budget.
● E nhance stakeholder confidence by demonstrating proactive
management.
● Minimize disruptions and rework, leading to cost savings and
efficiency.
● Improve team morale by reducing uncertainty and potential crises.