0% found this document useful (0 votes)
6 views

21DIT087 SE PracticalFile

The document outlines the practical exercises for the Software Engineering course at Charotar University, focusing on tools and techniques for agile development, version control, code quality analysis, testing, and performance optimization. It includes practical tasks using Jira, Figma, Git, SonarQube, JUnit, Selenium, GTMetrix, and Jenkins, along with learning outcomes for each exercise. The aim is to equip students with hands-on experience in software engineering practices and tools essential for modern development workflows.

Uploaded by

vidhimshah2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

21DIT087 SE PracticalFile

The document outlines the practical exercises for the Software Engineering course at Charotar University, focusing on tools and techniques for agile development, version control, code quality analysis, testing, and performance optimization. It includes practical tasks using Jira, Figma, Git, SonarQube, JUnit, Selenium, GTMetrix, and Jenkins, along with learning outcomes for each exercise. The aim is to equip students with hands-on experience in software engineering practices and tools essential for modern development workflows.

Uploaded by

vidhimshah2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

IT451 Software Engineering 21DIT087

CHAROTAR UNIVERSITY OF SCIENCE AND TECHNOLOGY INFORMATION


TECHNOLOGY
ACADEMIC YEAR: 2024-2025
Subject Name: Software Engineering Subject Code: IT451
Semester: 7th
Practical List
Sr. No. Aim Hrs. Date
Explore the Jira as a project management tool for the agile
1 Development. Execute following Activity in Jira Tool. 4 02/07/2024
1) Free Trial Setup
2) Create an Epic
3) Create an Issue
4) Create Story
5) Create Subtask
6) Create Sprint
Reference link : https://www.atlassian.com/
2 Create Wireframe for your given Project. 4 09/07/2024
Practicing with ‘Version Control System-GIT’. Create
3 repository and mention the demos of push command and Pull 2 16/07/2024
request.
Reference link: https://opensource.com/article/19/5/practical-
learning- exercise-git
Explore SONARQUBE as Software Coding Analysis Tools for
4 Code Inspection to check the Quality of code. 4 23/07/2024
Reference Link :
https://www.cprime.com/resources/blog/static-
analysis- with-
sonarqube/#:~:text=SonarQube%20is%20a%20platform%20for,your
%2 0application's
%20security%20and%20stability.
Installation of J-Unit Testing Framework and Create and run the
Test case for java programs with J-unit. 30/07/202
5 Reference link: https://www.guru99.com/junit-tutorial.html 4 4
Installation of Selenium automated testing tool and Create Test
6 Scripts in Selenium. Reference link: 2 06/08/2024
https://www.guru99.com/selenium- python.html
How your site performs, reveal why it's slow and discover 2 13/08/2024
7 optimization opportunities with
GTMetrix.
Explore the Jenkins DevOps tool as a continuous Integration
17/09/202
and continuous deployment tool.
8 4 4
Reference Link: https://www.guru99.com/jenkins-tutorial.html
9 Estimation of Project Metrics 2 24/09/2024
Reference link: http://vlabs.iitkgp.ernet.in/se/2/theory/

Practical 1: Jira as a project management tool


DEPSTAR-IT Page 1
IT451 Software Engineering 21DIT087

Aim:

Explore the Jira as a project management tool for agile Development. Execute following Activity
in Jira Tool.
1) Free Trial Setup
2) Create an Epic
3) Create an Issue
4) Create Story
5) Create Subtask
6) Create Sprint
Reference Link: https://www.atlassian.com/

Screenshot:

Fig 1.1: Getting started with Jira

DEPSTAR-IT Page 2
IT451 Software Engineering 21DIT087

Fig 1.2: Login / Signup

Fig 1.3: Select the Project Management template

DEPSTAR-IT Page 3
IT451 Software Engineering 21DIT087

Fig 1.4: Epic created

Fig 1.5: Create an issue

DEPSTAR-IT Page 4
IT451 Software Engineering 21DIT087

Fig 1.6: Issue created

Fig 1.7: Create a story

DEPSTAR-IT Page 5
IT451 Software Engineering 21DIT087

Fig 1.8: Story created

Fig 1.9: Create a subtask

DEPSTAR-IT Page 6
IT451 Software Engineering 21DIT087

Fig 1.10: Create a new project by selecting scrum as a template

Fig 1.11: Add the project details

DEPSTAR-IT Page 7
IT451 Software Engineering 21DIT087

Fig 1.12: Create a spirit

Fig 1.13: Start the Sprint

DEPSTAR-IT Page 8
IT451 Software Engineering 21DIT087

Fig 1.14: Sprint started

Learning Outcome:
By setting up a free trial and creating epics, issues, stories, subtasks, and sprints, I experienced
firsthand how Jira helps structure and track work.

DEPSTAR-IT Page 9
IT451 Software Engineering 21DIT087

Practical 2: Wireframe
Aim:

Create Wireframe for your given Project.

Figma Link:
https://www.figma.com/design/ug2j4rnR1H5xyOxCcg5kRC/Practical---2?node-id=5-
904&t=aClMZrhDmeUNGX83-1

Screenshot:

Figure 1: Splash Screen Figure 2: Login Screen

DEPSTAR-IT Page 10
IT451 Software Engineering 21DIT087

Figure 3: Create Account Figure 4: Verification Code

DEPSTAR-IT Page 11
IT451 Software Engineering 21DIT087

Figure 5: Welcome Screen Figure 6: Home Screen

DEPSTAR-IT Page 12
IT451 Software Engineering 21DIT087

Figure 7: Messanger Drawer Figure 8: Messager Screen

DEPSTAR-IT Page 13
IT451 Software Engineering 21DIT087

Figure 9: Search People Figure 10: Add Post On feed

DEPSTAR-IT Page 14
IT451 Software Engineering 21DIT087

Figure 11: Notification panel Figure 12: Profile Page

DEPSTAR-IT Page 15
IT451 Software Engineering 21DIT087

Figure 13: Edit Profile Figure 14: Followers

DEPSTAR-IT Page 16
IT451 Software Engineering 21DIT087

Figure 15: Following Figure 16: Logout

Learning Outcome:

In this practical, I learned to design wireframes for a social media platform project. By utilizing
Figma's collaborative features and design capabilities, I was able to streamline the design process
and efficiently implement necessary revisions. This experience helped me enhance my design
skills and understand the importance of collaboration in creating effective user interfaces.

DEPSTAR-IT Page 17
IT451 Software Engineering 21DIT087

Practical 3 : Setting Up and Managing a Git Repository


UsingCommand Line
Aim: Practice GIT by creating a repository and demonstrating key commands.

Screenshot :
1. Open Github and create a new repository.

Figure 1

2. Keep the URL of the repository handy, you’ll need it later

Figure 2

DEPSTAR-IT Page 18
IT451 Software Engineering 21DIT087

3. Open the project directory in your local computer.

Figure 3

4. Download git from the official website or if you already have it , do update to the
latest version.

Figure 4

5. Initializing a local repository,

Figure 5

6. Setting up a remote repository.

Figure 6

DEPSTAR-IT Page 19
IT451 Software Engineering 21DIT087

7. Creating a text file.

Figure 7

8. Printing the data of the file.

Figure 8

9. To add the file to the repository.

Figure 9

10. To stage all changes.

Figure 10

11. Commit the changes in the repository

Figure 11

Learning Outcome:

• Through this practical, I understood the basic concepts of Git and also deepened my knowledge
of accessing repositories via Git CMD and performing various tasks such as uploading files,
adding files, processing commits, and generating a personal access token.
• I gained hands-on experience with essential Git commands like `git add`, `git commit`, `git
push`, and `git remote`, which are crucial for version control and collaboration. Additionally, I
learned how to manage remote repositories on platforms like GitHub, ensuring seamless
integration between local and remote versions of projects.
• This practical exercise not only enhanced my technical skills but also highlighted the
importance of proper version control in software development workflows.

DEPSTAR-IT Page 20
IT451 Software Engineering 21DIT087

Practical 4: Code Quality Analysis with SonarQube

Aim:
Analyzing Code Quality with SonarQube

Screenshot / Graph / Explanation etc.

Open SonarCloud and login with your account or access your institution’s instance.

To analyze a project , you’d have a previous project or can analyze a new project

DEPSTAR-IT Page 21
IT451 Software Engineering 21DIT087

Select the projects and click Set up

Once the setup is done the ready projects will be scanned by the software and few whose
configuration is left will be ignored

DEPSTAR-IT Page 22
IT451 Software Engineering 21DIT087

Configure remaining projects

Once done you’ll be prompted to update the workflow of the project.

Another way is by signing the Sonar Cloud and generating a user token

DEPSTAR-IT Page 23
IT451 Software Engineering 21DIT087

Analysis the code of your project

Learning Outcome:
How to create a project on sonarqube, install sonarqube, and start a server for project analysis.

DEPSTAR-IT Page 24
IT451 Software Engineering 21DIT087

Practical 5 : JUnit Testing


Aim:
To install the JUnit Testing Framework and develop test cases for Java programs using JUnit. This
involves downloading the JUnit JAR or configuring it through Maven/Gradle, writing Java test
classes with methods annotated by `@Test`, employing assertions, executing tests via an IDE or
build tool, and analyzing the results.

Screenshot :

DEPSTAR-IT Page 25
IT451 Software Engineering 21DIT087

Learning Outcome:

In this practical, I configured the JUnit Testing Framework and tested assertions using the
`@Test` annotation. This experience demonstrated the importance of automated testing in
ensuring code reliability and quality.

DEPSTAR-IT Page 26
IT451 Software Engineering 21DIT087

Practical 6 : Install Selenium and create test scripts


Aim:
Download the Selenium WebDriver and necessary browser drivers or use package managers like
pip for Python. Write test scripts in your chosen language (e.g., Python) to automate browser
interactions using Selenium’s API. Execute the scripts to verify browser automation and review
the results.

Screenshot:

1. Setting Up Selenium-webdriver with Node.js

initialize project

Install the Selenium-webdriver

DEPSTAR-IT Page 27
IT451 Software Engineering 21DIT087

Downloading browser drivers


Url => https://googlechromelabs.github.io/chrome-for-testing/#stable

Adding browser driver to PATH

DEPSTAR-IT Page 28
IT451 Software Engineering 21DIT087

2. Writing a script to automatically login in test website


(https://practicetestautomation.com/practice-test-login/)

DEPSTAR-IT Page 29
IT451 Software Engineering 21DIT087

Learning Outcome:

Selenium to simulate user actions such as clicking buttons, filling out forms, and navigating
between web pages. They will also develop skills in writing scripts that can interact with web
elements using locators like ID, class name, and XPath, enabling them to automate repetitive
tasks and perform functional testing of web applications efficiently.

DEPSTAR-IT Page 30
IT451 Software Engineering 21DIT087

Practical 7:Website performance analysis using GTMetrix


Aim:
Briefly explain the purpose of using GTMetrix to analyze and optimize your website’s
performance. Capture screenshots of the GTMetrix analysis results. Ensure these include the
performance scores, recommendations, and any relevant metrics.Summarize the key findings from
the GTMetrix report, including reasons for slow performance and suggested optimizations. List
the recommendations provided by GTMetrix and describe how they can be implemented to
improve site performance.

Screenshot / Graph / Explanation etc.

Provide website URL for analysis purpose

It will start analysing your provided URL

DEPSTAR-IT Page 31
IT451 Software Engineering 21DIT087

The dashboard will be displayed a summary of your website performance

Below it will show the loading time of each component and the top issue related to it

DEPSTAR-IT Page 32
IT451 Software Engineering 21DIT087

My top issue that might affect my website performance

Chart showing resource utilization by my website

They are providing alert functionality by monitoring your website

DEPSTAR-IT Page 33
IT451 Software Engineering 21DIT087

Analysis Summary:

The reason provided by FTMetrix for the slow performance of my website

1. The <meta name="viewport"> tag is essential for optimizing a website for mobile devices
by controlling the page's width and scaling on different screen sizes. Without it, mobile
users may experience poor layout and a 300ms delay in touch input responsiveness.
2. Keep the server response time for the main document short because all other requests
depend on it.
3. The Critical Request Chains below show you what resources are loaded with a high
priority. Consider reducing the length of chains, reducing the download size of resources,
or deferring the download of unnecessary resources to improve page load.

Optimization Opportunities :
1. Using the viewport meta tag lets you set the width and scaling of the viewport so that it's
correctly sized on all devices, particularly mobile devices.
2. As a primarily back-end optimization, reducing TTFB can complement your front-end
development to significantly improve performance.
3. Remove unnecessary characters (like spaces, line breaks) from code to reduce its size.
Compress images and serve them in modern formats. Delay the loading of images or scripts
that aren’t needed right away.

Learning Outcome:

• Users will gain insight into how GTMetrix can be used to analyze and evaluate a website's
performance.
• Users will be able to interpret GTMetrix performance scores, recognizing key areas for
improvement by understanding metrics like First Contentful Paint (FCP), Largest
Contentful Paint (LCP), and Total Blocking Time (TBT).
• Users will develop the ability to identify causes of slow website performance, such as large
image sizes, unoptimized scripts, and excessive HTTP requests, based on the GTMetrix
report analysis.

DEPSTAR-IT Page 34
IT451 Software Engineering 21DIT087
Practical-8

Aim: Explore the Jenkins DevOps tool as a continuous Integration and continuous deployment tool.
Theory:
Jenkins is an open-source automation server used widely for continuous integration and continuous delivery
(CI/CD). It facilitates the automation of building, testing, and deploying software applications, making it a
cornerstone for modern DevOps practices.
1. Overview of Jenkins
Jenkins was originally developed as Hudson in 2004, and after a fork in 2011, it became known as Jenkins.
It is written in Java and offers a rich ecosystem of plugins that extend its functionality to integrate with
numerous tools and technologies across the software development lifecycle.

2. Continuous Integration (CI) with Jenkins


Continuous Integration (CI) is the practice of merging code changes into a shared repository several times a
day. Jenkins plays a critical role in automating this process by continuously monitoring the repository and
triggering automated builds whenever changes are detected. This allows developers to detect integration
issues early, reducing the risk of major bugs and conflicts late in the development cycle.
Key Features for CI:

➢ Automated Builds: Jenkins can be set to automatically pull the latest code from a version control
system (e.g., Git) and trigger builds, ensuring that code changes are integrated frequently.
➢ Automated Testing: Jenkins supports automated testing, allowing it to run unit, integration, or
system tests on the code to verify functionality and quality.
➢ Notifications: It can notify developers about build and test results via email, Slack, or other
communication platforms, making sure that teams are always informed about the current state of
the project.
3. Continuous Delivery (CD) and Jenkins
Continuous Delivery (CD) extends CI by ensuring that code changes are automatically prepared for
deployment. Jenkins plays an essential role in automating the process from build to deployment, allowing
teams to deliver software to production in shorter cycles with minimal manual intervention.
Key Features for CD:
➢ Pipeline Automation: Jenkins supports pipeline as code through its "Jenkins Pipeline" feature,
allowing developers to define complex workflows for build, test, and deploy processes in a simple,
readable script (e.g., using Groovy-based DSL or declarative pipelines).
➢ Environment Management: Jenkins can deploy applications to different environments (development,
testing, staging, or production), ensuring that each version of the application is consistent across the
board.

DEPSTAR-IT 35
IT451 Software Engineering 21DIT087
➢ Integration with Tools: Jenkins integrates with various deployment tools, containerization platforms
(like Docker, Kubernetes), and cloud services to automate the delivery of applications to production
environments.
4. Jenkins and DevOps
In the DevOps paradigm, automation is crucial, and Jenkins provides the automation necessary for
integrating, testing, and delivering applications efficiently. Jenkins acts as the backbone of CI/CD pipelines,
connecting different tools and technologies to form a cohesive workflow that enhances collaboration
between development and operations teams.
Key Benefits:
➢ Faster Feedback Loop: Jenkins allows developers to get immediate feedback on code quality and
potential issues through automated testing and builds.
➢ Reduced Risk: By automating repetitive tasks such as testing and deployment, Jenkins reduces the
chances of human error, making releases more reliable and secure.
➢ Scalability: Jenkins' distributed architecture allows the use of "agents" (slaves) to offload heavy
tasks, enabling scalability as the project grows.
5. Jenkins Architecture
Jenkins follows a master-agent architecture, where the master node handles scheduling, coordination, and
job delegation, while agent nodes execute the actual build and test tasks. This distributed approach ensures
efficient utilization of resources and supports parallel builds for faster processing.
⚫ Master: Responsible for managing jobs and pipelines, providing a user interface, and orchestrating
the overall workflow.
⚫ Agents: These execute the jobs delegated by the master. Agents can be distributed across multiple
machines, allowing Jenkins to scale horizontally.
6. Plugins in Jenkins
One of Jenkins' strengths lies in its extensive plugin ecosystem. There are over 1,000 plugins that enable
Jenkins to integrate with version control systems (Git, SVN), build tools (Maven, Gradle), test frameworks
(JUnit, Selenium), deployment platforms (Docker, Kubernetes), and cloud services (AWS, Google Cloud).
These plugins enhance Jenkins' capabilities and allow it to adapt to various project needs.
7. Key Use Cases of Jenkins
CI/CD Pipelines: Automating the entire process from code commit to deployment.
Automated Testing: Running tests automatically after every code change to ensure the stability and quality
of the code.
Monitoring and Reporting: Collecting and displaying real-time reports on the health of software projects,
enabling teams to make data-driven decisions.

DEPSTAR-IT 36
IT451 Software Engineering 21DIT087

Screenshot:

DEPSTAR-IT 37
IT451 Software Engineering 21DIT087

DEPSTAR-IT 38
IT451 Software Engineering 21DIT087

DEPSTAR-IT 39
IT451 Software Engineering 21DIT087

DEPSTAR-IT 40
IT451 Software Engineering 21DIT087

DEPSTAR-IT 41
IT451 Software Engineering 21DIT087

Learning Outcome: In this practical, I will gain valuable hands-on experience using Jenkins as a key
DevOps tool for continuous integration and continuous deployment (CI/CD). By delving into its installation,
configuration, and seamless integration with version control systems, I will enhance my ability to automate
essential processes like building, testing, and deploying applications. Furthermore, creating a Jenkins
pipeline and integrating it with webhooks will offer deeper insights into automating the software
development lifecycle, significantly boosting the efficiency and reliability of application delivery.

DEPSTAR-IT 42
IT451 Software Engineering 21DIT087

Practical-9

Aim:

1: Briefly explain the purpose of estimating project metrics and its importance in software
engineering.: Clearly outline the objectives of the practical session. For example:

• To understand different project metrics.


• To learn estimation techniques.
Summarize key concepts from the reference link, including types of metrics (e.g., effort,
cost, schedule) and methods of estimation.

• Describe the process of estimating metrics.


• Include tools or techniques used (e.g., COCOMO model, use case points).
• Provide details on the metrics estimated during the practical.
• Include calculations and any assumptions made.
: Present the estimated metrics in a clear format (tables or charts) and interpret the findings.
: Summarize the significance of the estimated metrics and their impact on project
management.

1. Purpose of Estimating Project Metrics and its Importance in Software Engineering


The process of estimating project metrics in software engineering plays a pivotal role in
ensuring that projects are successfully executed, delivered on time, and within budget.
Estimating project metrics involves calculating various parameters, such as effort, cost,
schedule, and quality, which are crucial for effective project planning and management. This
process serves several important purposes:
• Project Planning and Forecasting: Estimating metrics is fundamental for
predictingthe duration, resources, and budget required for a project. With accurate
metrics, project managers can plan project timelines, allocate resources
appropriately, and ensure that they stay on course to achieve their goals.
• Budgeting and Cost Control: Metrics estimation helps in accurately forecasting
costs,allowing project managers to develop a budget that accounts for all foreseeable
expenses. This minimizes financial risk and ensures that funds are utilized efficiently.
• Resource Allocation: Proper estimation ensures that the right people, tools, and
equipment are assigned to the right tasks. This helps in avoiding resource bottlenecks
or under-utilization.

DEPSTAR-IT Page 43
IT451 Software Engineering 21DIT087

• Risk Management: By identifying metrics early in the project lifecycle, potential


risksand uncertainties can be anticipated and addressed in advance. This reduces the
likelihood of schedule slippage or budget overruns.
• Performance Measurement: Metrics provide a means of measuring progress
throughout the project lifecycle. By comparing actual metrics with estimated values,
project teams can track performance, identify deviations, and take corrective actions.
• Stakeholder Communication: Accurate metrics are essential for communicating with
stakeholders. They set clear expectations regarding what is feasible, how much it will
cost, and how long it will take, thereby preventing misunderstandings and misaligned
expectations.
In summary, the estimation of project metrics is an essential component of software
engineering that contributes significantly to a project's success by enabling informed
decision-making, managing risks effectively, and ensuring optimal resource allocation.

2. Objectives of the Practical Session


The objectives of this practical session are clearly defined to ensure that participants not only
understand the theoretical aspects of project metrics estimation but also gain practicalskills in
applying estimation techniques to real projects. The main objectives are:
• Understanding Different Project Metrics: To familiarize students with various
types of project metrics, such as effort, cost, schedule, and quality metrics.
Understandingthese metrics is key to managing the lifecycle of software projects.
• Learning Estimation Techniques: To learn about different estimation methods and
tools used in software engineering, such as the Constructive Cost Model (COCOMO)
and Use Case Points (UCP). These methods are essential for predicting the resources,
time, and budget required for software development projects.
• Hands-on Practice with Estimation Techniques: To provide hands-on practice in
using estimation techniques to calculate project metrics. This practical application
helps students better understand the challenges and nuances involved in estimating
metrics.
• Interpreting Estimated Metrics: To interpret the estimated metrics to make informed
decisions about project planning and execution. This includes analyzing the feasibility
of projects, budgeting, and allocating resources effectively.

DEPSTAR-IT Page 44
IT451 Software Engineering 21DIT087

3. Key Concepts and Types of


MetricsTypes of Project Metrics
Project metrics can be broadly categorized into several types, each serving a specific
purpose in project management:
• Effort Metrics: These metrics represent the amount of work that needs to be
performed to complete a project or a specific task within a project. Effort is typically
measured in person-hours, person-days, or person-months. Accurate effort
estimation is crucial for planning project timelines, resources, and assigning
responsibilities to the project team.
• Cost Metrics: Cost metrics are used to determine the financial requirements for the
project. This includes estimating costs for personnel, hardware, software, and other
related expenses. Cost metrics are critical for budgeting and financial planning. They
help ensure that the project is completed within the allocated budget, thus
minimizing financial risk.
• Schedule Metrics: Schedule metrics estimate the time required to complete the
project or specific tasks. These metrics include information about key project
milestones, start and end dates of project activities, and critical paths. Proper
scheduling is important to avoid project delays and meet deadlines.
• Quality Metrics: Quality metrics are used to measure the quality of the software
being developed. These metrics include attributes such as reliability, maintainability,
and defect density. Quality metrics help ensure that the software meets the required
standards and that potential defects are identified and addressed.
Estimation Techniques
Several estimation techniques are used in software engineering to predict project effort,
cost, and schedule. The key estimation techniques include:
1. Expert Judgment: This method involves consulting experts who have extensive
experience in similar projects to provide their estimates. This technique is highly
reliant on the experience and expertise of individuals and can provide a quick
estimation.
2. Analogous Estimation: This method uses historical data from similar projects to
estimate metrics for the current project. It is most suitable for projects where a
similar project has been completed in the past.
3. Parametric Models: Parametric estimation techniques use statistical and
mathematical models to estimate project metrics. These models rely on parameters
such as project size, complexity, and cost drivers to calculate effort and cost. The
COCOMO Model is a popular parametric model used to estimate software
development effort.

DEPSTAR-IT Page 45
IT451 Software Engineering 21DIT087

4. Use Case Points (UCP): The UCP method estimates effort based on the use cases
identified in the software requirements. It considers the number of use cases, actors,
and system complexity to calculate the overall effort required to develop the system.
Estimation Tools and Techniques Covered
• COCOMO (Constructive Cost Model): COCOMO is a parametric estimation
model that helps estimate the cost, effort, and schedule of a software project. The
basic COCOMO model uses a formula that includes constants and project size in
terms of thousands of lines of code (KLOC) to estimate the required effort. The three
levels ofCOCOMO—basic, intermediate, and detailed—offer different levels of
accuracy.
• Use Case Points (UCP): This method involves calculating the total use case points
bycategorizing use cases based on their complexity and then multiplying these with
predefined weights. The result is then adjusted based on technical and environmental
factors.
These estimation methods are critical in providing an accurate forecast of project
parameters, which is fundamental for successful project management.

4. Process of Estimating
MetricsSteps in the Estimation
Process
1. Requirement Analysis: The first step in estimating project metrics is to thoroughly
analyse the project requirements. The scope and objectives of the project must be
clearly understood to ensure that estimates are accurate. Requirements analysis
includes breaking down the software system into modules, identifying the
functionalities, and determining the project complexity.
2. Selection of Estimation Technique: Based on the project type, size, and
availabledata, an appropriate estimation technique is selected. For example, for a
small tomedium-sized software development project with a well-defined set of
requirements, Use Case Points (UCP) may be suitable. For large projects with
historical data available, COCOMO is often a preferred method.
3. Data Collection: Collect data relevant to the project, such as project size (in lines of
code or use case points), complexity factors, and historical data from similar projects.
This data is used as input to calculate the estimates.
4. Application of the Estimation Technique: Calculate the estimated metrics using
the chosen estimation model. In the case of the COCOMO model, constants such as
a, b,

DEPSTAR-IT Page 46
IT451 Software Engineering 21DIT087

and other parameters are used to determine the effort in person-months. Similarly,
the UCP method is applied based on the number and complexity of use cases.
5. Review and Refinement of Estimates: Review the estimated metrics with project
stakeholders and subject matter experts to refine the values. Assumptions made
during the estimation process are reviewed, and adjustments are made to improve
accuracy.
Example of Tools and Techniques Used
• COCOMO Model Calculation:
The COCOMO basic formula for estimating effort is:
Effort (in person-months) = a ×
(Size)^bWhere:
o a and b are constants that vary depending on the type of software (organic,
semi-detached, embedded).
o Size represents the estimated number of lines of code (in
KLOC).For example, for an organic software project estimated to be 30 KLOC:
Effort = 2.4 × (30)^1.05 = 35.1 person-months

• Use Case Points


Calculation:UCP is calculated
based on:
o Unadjusted Use Case Points (UUCP): Derived from use cases and
actorsbased on their complexity.
o Technical Complexity Factors (TCF) and Environmental Factors (EF):
Used toadjust the UUCP to obtain the final effort estimate.
The formula is:
UCP = UUCP × TCF ×
EF

DEPSTAR-IT Page 47
IT451 Software Engineering 21DIT087

5. Metrics Estimated During the Practical


SessionMetrics Estimated
During the practical session, the following key metrics were estimated:
1. Effort (Person-Months): Estimated using the COCOMO model, which calculates
thenumber of person-months required based on project size and complexity.
2. Cost: Derived from the estimated effort by multiplying the effort by the average cost
per person-month.
3. Schedule: The schedule, or project duration, was estimated using a formula that
relates effort and productivity. This involved calculating key project phases such as
requirements analysis, design, coding, and testing.
Calculations and Assumptions
• The project was estimated to be 30 KLOC in size.
• For effort estimation, the COCOMO model was used, with a = 2.4 and b =
1.05(values for an organic software project).
• Average productivity was assumed to be 6 person-hours/day.
• Average cost per person-month was assumed to be $10,000.
Using these inputs:
• Effort: Calculated as 35.1 person-months.
• Cost:
Cost = Effort × Cost per person-month = 35.1×10,000 = $351,000
• Schedule: Estimated to be 8 months, calculated using COCOMO formulas
todetermine the expected duration of the project.

DEPSTAR-IT Page 48
IT451 Software Engineering 21DIT087

6. Presentation of Estimated Metrics


The estimated metrics were presented using tables and visual charts to ensure clarity and
facilitate easy interpretation.

Table of Estimated Metrics:

Metric Value Assumptions

Effort 35.1 Person-Months Project size: 30 KLOC (COCOMO


Model)
Cost $351,000 $10,000 per person-month

Schedule 8 Months Based on COCOMO schedule estimation

Chart Representation:
• Gantt Chart: The Gantt chart depicted the project schedule, outlining major phases
such as requirement analysis, design, coding, testing, and deployment.
• Effort Distribution Chart: This chart displayed how effort was distributed across
different phases, providing insights into which activities required the most resources.
Interpretation:
The metrics provide valuable insights into the overall project:
• Effort: The estimated 35.1 person-months indicates the workload for the project
team. This helps in planning team size and project duration.
• Cost: The estimated $351,000 helps determine the project's budget, enabling
financial planning.
• Schedule: The estimated schedule of 8 months allows the project manager to set
deadlines and milestones for the project phases.

DEPSTAR-IT Page 49
IT451 Software Engineering 21DIT087

7. Significance of the Estimated Metrics


The significance of the estimated metrics can be summarized as follows:
• Enhanced Project Planning: Estimating effort, cost, and schedule provides a
strongfoundation for detailed project planning. With reliable estimates, project
managerscan define a clear timeline, allocate resources effectively, and manage the
project lifecycle.
• Improved Resource Management: Metrics estimation ensures that the appropriate
resources are allocated to each task, reducing the likelihood of resource bottlenecks.It
also helps in planning staffing requirements, ensuring that the right number of people
are working on the project at each stage.
• Risk Mitigation: Estimation allows the identification of potential risks early in the
project lifecycle. For instance, an estimation that exceeds initial expectations can
indicate potential challenges such as understaffing or under-budgeting, prompting
early intervention.
• Stakeholder Confidence: Providing stakeholders with accurate and realistic estimates
helps build trust. Clear communication regarding project timelines, costs, and
resources aligns stakeholder expectations with the reality of the project.
• Performance Monitoring: During the project execution, actual metrics can be
compared with estimated values to track performance. Deviations from estimates
can serve as indicators of issues that need immediate attention, enabling proactive
problem-solving.
• Financial Planning and Control: Estimated cost metrics provide a financial
benchmark for the project. Budgeting based on these metrics allows for proper
financial allocation and ensures that expenses remain within limits. This is
particularly crucial for avoiding project overruns and maintaining profitability.
Conclusion
In conclusion, estimating project metrics is an essential practice in software engineering that
contributes significantly to the success of software projects. By providing a structured
approach to estimating effort, cost, and schedule, metrics estimation enhances planning,
resource management, and risk mitigation. Through practical application of estimation
techniques such as COCOMO and Use Case Points, students gain an understanding of the
nuances of project metrics estimation and its impact on project management.
Effective project metrics estimation is not only about providing numbers; it is about
empowering project teams to make informed decisions, manage resources efficiently, and
deliver high-quality software within time and budget constraints. This practical session has
provided an opportunity to apply theoretical concepts in a real-world context, thereby
bridging the gap between learning and practical application in software engineering.

DEPSTAR-IT Page 50

You might also like