21DIT087 SE PracticalFile
21DIT087 SE PracticalFile
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:
DEPSTAR-IT Page 2
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 3
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 4
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 5
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 6
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 7
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 8
IT451 Software Engineering 21DIT087
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:
Figma Link:
https://www.figma.com/design/ug2j4rnR1H5xyOxCcg5kRC/Practical---2?node-id=5-
904&t=aClMZrhDmeUNGX83-1
Screenshot:
DEPSTAR-IT Page 10
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 11
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 12
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 13
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 14
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 15
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 16
IT451 Software Engineering 21DIT087
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
Screenshot :
1. Open Github and create a new repository.
Figure 1
Figure 2
DEPSTAR-IT Page 18
IT451 Software Engineering 21DIT087
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 19
IT451 Software Engineering 21DIT087
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 20
IT451 Software Engineering 21DIT087
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 21
IT451 Software Engineering 21DIT087
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
Another way is by signing the Sonar Cloud and generating a user token
DEPSTAR-IT Page 23
IT451 Software Engineering 21DIT087
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
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
Screenshot:
initialize project
DEPSTAR-IT Page 27
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 28
IT451 Software Engineering 21DIT087
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
DEPSTAR-IT Page 31
IT451 Software Engineering 21DIT087
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
DEPSTAR-IT Page 33
IT451 Software Engineering 21DIT087
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 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.
➢ 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:
DEPSTAR-IT Page 43
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 44
IT451 Software Engineering 21DIT087
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
DEPSTAR-IT Page 47
IT451 Software Engineering 21DIT087
DEPSTAR-IT Page 48
IT451 Software Engineering 21DIT087
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
DEPSTAR-IT Page 50