21DIT002 SE PracticalFile
21DIT002 SE PracticalFile
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:
DEPSTAR-IT Page 1
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 2
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 3
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 4
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 5
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 6
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 7
IT451 Software Engineering 21DIT002
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 8
IT451 Software Engineering 21DIT002
Practical 2: Wireframe
Aim:
Figma Link:
https://www.figma.com/design/ug2j4rnR1H5xyOxCcg5kRC/Practical---2?node-id=5-
904&t=aClMZrhDmeUNGX83-1
Screenshot:
DEPSTAR-IT Page 9
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 10
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 11
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 12
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 13
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 14
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 15
IT451 Software Engineering 21DIT002
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 16
IT451 Software Engineering 21DIT002
Screenshot :
1. Open Github and create a new repository.
Figure 1
Figure 2
DEPSTAR-IT Page 17
IT451 Software Engineering 21DIT002
Figure 3
4. Download git from the official website or if you already have it , do update to
the latest version.
Figure 4
Figure 5
Figure 6
DEPSTAR-IT Page 18
IT451 Software Engineering 21DIT002
Figure 7
Figure 8
Figure 9
Figure 10
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 19
IT451 Software Engineering 21DIT002
Aim:
Analyzing Code Quality with SonarQube
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 20
IT451 Software Engineering 21DIT002
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 21
IT451 Software Engineering 21DIT002
Another way is by signing the Sonar Cloud and generating a user token
DEPSTAR-IT Page 22
IT451 Software Engineering 21DIT002
Learning Outcome:
How to create a project on sonarqube, install sonarqube, and start a server for project analysis.
DEPSTAR-IT Page 23
IT451 Software Engineering 21DIT002
Screenshot :
DEPSTAR-IT Page 24
IT451 Software Engineering 21DIT002
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 25
IT451 Software Engineering 21DIT002
Screenshot:
initialize project
DEPSTAR-IT Page 26
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 27
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 28
IT451 Software Engineering 21DIT002
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 29
IT451 Software Engineering 21DIT002
Below it will show the loading time of each component and the top issue related to it
DEPSTAR-IT Page 31
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 32
IT451 Software Engineering 21DIT002
Analysis Summary:
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 33
IT451 Software Engineering 21DIT002
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 34
IT451 Software Engineering 21DIT002
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 35
IT451 Software Engineering 21DIT002
Screenshot:
DEPSTAR-IT 36
IT451 Software Engineering 21DIT002
DEPSTAR-IT 37
IT451 Software Engineering 21DIT002
DEPSTAR-IT 38
IT451 Software Engineering 21DIT002
DEPSTAR-IT 39
IT451 Software Engineering 21DIT002
DEPSTAR-IT 40
IT451 Software Engineering 21DIT002
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 41
IT451 Software Engineering 21DIT002
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:
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:
DEPSTAR-IT Page 42
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 43
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 44
IT451 Software Engineering 21DIT002
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 of COCOMO—basic, intermediate, and detailed—offer different levels of
accuracy.
Use Case Points (UCP): This method involves calculating the total use case points
by categorizing 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
Metrics Steps 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
available data, an appropriate estimation technique is selected. For example, for a
small to medium-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 45
IT451 Software Engineering 21DIT002
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)^b Where:
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
actors based on their complexity.
o Technical Complexity Factors (TCF) and Environmental Factors (EF):
Used to adjust the UUCP to obtain the final effort estimate.
The formula is:
UCP = UUCP × TCF ×
EF
DEPSTAR-IT Page 46
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 47
IT451 Software Engineering 21DIT002
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 48
IT451 Software Engineering 21DIT002
DEPSTAR-IT Page 49