Dr. Javier Gonzalez-Sanchez
[email protected]
www.javiergs.info
o
ffi
ce: 14 -227
CSC 307
Introduction to Software Engineering
Lecture 09. Dependency Management
Slide 2
Slide 2 text
Previously
Slide 3
Slide 3 text
GoF Patterns
3
Slide 4
Slide 4 text
Application
4
Slide 5
Slide 5 text
Dependencies
Slide 6
Slide 6 text
Library
• A collection of resources (cl
a
sses)
• A J
a
v
a
Archive, or JAR
f
ile, cont
a
ins
a
ll of the v
a
rious components th
a
t m
a
ke up
a
self-
cont
a
ined, execut
a
ble J
a
v
a a
pplic
a
tion or, most commonly,
a
J
a
v
a
libr
a
ry to which
a
J
a
v
a
Runtime Environment c
a
n link.
6
Slide 7
Slide 7 text
jar-download.com
7
Slide 8
Slide 8 text
• Build m
a
n
a
gement tool
• M
a
ven
a
utom
a
tes dependency m
a
n
a
gement by
a
utom
a
tic
a
lly downlo
a
ding
required libr
a
ries
a
nd their dependencies, ensuring consistent builds with speci
f
ied
versions.
• In contr
a
st, m
a
nu
a
lly downlo
a
ding JARs is l
a
bor-intensive
a
nd error-prone.
8
Slide 9
Slide 9 text
• The project object model (POM)
f
ile describes
a
project
a
nd its dependencies.
• A st
a
nd
a
rdized directory form
a
t.
• Repositories where third-p
a
rty softw
a
re is stored
a
nd discovered.
9
Slide 10
Slide 10 text
Create a project with Maven support
10
Slide 11
Slide 11 text
Or Add Framework Support
11
Do one of these
Slide 12
Slide 12 text
Or Add Framework Support
12
Slide 13
Slide 13 text
Maven File and Directories
13
Slide 14
Slide 14 text
POM.xml
14
Slide 15
Slide 15 text
Maven Repository
15
Slide 16
Slide 16 text
Adding a New Dependency
16
Slide 17
Slide 17 text
Right-Click POM.xml
17
Slide 18
Slide 18 text
Jsoup
Java HTML Parser
Slide 19
Slide 19 text
Jsoup
• A J
a
v
a
libr
a
ry th
a
t simpli
f
ies working with HTML
a
nd XML.
• O
ff
ers URL fetching, d
a
t
a
p
a
rsing, extr
a
ction,
a
nd m
a
nipul
a
tion.
• https://jsoup.org/
19
Another appearance of the
Factory Pattern
Pattern
38
Slide 39
Slide 39 text
Weka
Machine Learning
Slide 40
Slide 40 text
Weka
• Wek
a
is
a
collection of m
a
chine le
a
rning
a
nd d
a
t
a a
n
a
lysis
• W
a
ik
a
to Environment for Knowledge An
a
lysis (Wek
a
)
• developed
a
t the University of W
a
ik
a
to, New Ze
a
l
a
nd
• https://ml.cms.w
a
ik
a
to.
a
c.nz/wek
a
•
40
115,475 Towns and Cities in the United States
July, 2012
https://www.math.uwaterloo.ca/tsp/data/usa/index.html
A dataset
48
Slide 49
Slide 49 text
JDBC
SQL Database
Slide 50
Slide 50 text
MariaDB
• Open-source
a
nd cre
a
ted by MySQL origin
a
l developers
• https://m
a
ri
a
db.com/downlo
a
ds/
• For M
a
c, you c
a
n use the Homebrew p
a
ck
a
ge m
a
n
a
ger:
> brew install mariadb
> mysql.server start
50
Slide 51
Slide 51 text
Key Idea
51
⚙
Slide 52
Slide 52 text
www.freesqldatabase.com
52
Slide 53
Slide 53 text
www.freesqldatabase.com
53
Slide 54
Slide 54 text
Create Tables
54
CREATE TABLE database.students (
ID INT NOT NULL,
user VARCHAR(8) NOT NULL ,
password VARCHAR(8) NOT NULL
)
INSERT
INTO students (ID, user, password)
VALUES (1, "javiergs", "qwerty")
Slide 55
Slide 55 text
Dependencies
55
Slide 56
Slide 56 text
Connection
56
Slide 57
Slide 57 text
SQL Statements
57
Slide 58
Slide 58 text
Questions
58
Slide 59
Slide 59 text
Lab 09. Maven
Slide 60
Slide 60 text
Review this curated list of
Java libraries:
https://github.com/akullpp/awesome-java
Lab
60
Slide 61
Slide 61 text
Select one - none from today’s lecture.
Create something Awesome!
Lab
61
Slide 62
Slide 62 text
CSC 307 Introduction to Software Engineering
Javier Gonzalez-Sanchez, Ph.D.
[email protected]
Summer 2024
Copyright. These slides can only be used as study material for the class CSC307 at Cal Poly.
They cannot be distributed or used for another purpose.