$30 off During Our Annual Pro Sale. View Details »

CSC309 Lecture 12

CSC309 Lecture 12

Software Engineering II
Maven
(202305)

Javier Gonzalez-Sanchez
PRO

February 07, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 309
    Software Engineering II
    Lecture 12:
    Java Libraries
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  2. jgs
    Previously …

    View Slide

  3. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 3
    Application programming interface (API) enables two software components to
    communicate with each other using a set of definitions and protocols.
    § Bing Maps
    § AccuWeather
    § OpenAI
    API

    View Slide

  4. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 4
    A collection of resources (classes)
    Library

    View Slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 5
    Library

    View Slide

  6. jgs
    Dependencies

    View Slide

  7. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 7
    Tool

    View Slide

  8. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 8
    • The project object model (POM) which describes a project and its dependencies.
    • A standardized directory format.
    • Repositories where third-party software is stored and discovered.
    Apache Maven - Build management tool

    View Slide

  9. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 9
    Right-Click in your Project

    View Slide

  10. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 10
    POM.xml

    View Slide

  11. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 11
    Right-Click POM.xml

    View Slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 12
    Maven Directories
    A build automation tool used

    View Slide

  13. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 13
    Directories

    View Slide

  14. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 14
    Maven Repository

    View Slide

  15. jgs
    Databases
    Example with MySQL/MariaDB

    View Slide

  16. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 16
    Key Idea

    View Slide

  17. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 17
    Options
    1. Maria DB Community Server
    Open-Source and created by MySQL’s original
    developers
    https://mariadb.com/downloads/
    For mac you can use the Homebrew package manager:
    > brew install mariadb
    > mysql.server start

    View Slide

  18. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 18
    www.freesqldatabase.com

    View Slide

  19. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 19
    www.freesqldatabase.com

    View Slide

  20. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 20
    Issues
    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")

    View Slide

  21. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 21
    Key Idea

    View Slide

  22. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 22
    Dependencies

    View Slide

  23. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 23
    Connection

    View Slide

  24. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 24
    SQL

    View Slide

  25. jgs
    Charts

    View Slide

  26. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 26
    Options
    1. JfreeChart
    https://www.jfree.org/jfreechart/
    JFreeChart is a free Java chart library that makes
    it easy for developers to display professional-
    quality charts in their applications.
    Samples:
    https://zetcode.com/java/jfreechart/

    View Slide

  27. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 27
    Maven Repository

    View Slide

  28. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 28
    Options

    org.jfree
    jfreechart
    1.5.3

    View Slide

  29. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 29

    View Slide

  30. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 30
    Example

    View Slide

  31. jgs
    To Explore

    View Slide

  32. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 32
    Issues
    Awesome Java Frameworks
    https://github.com/akullpp/awesome-java

    View Slide

  33. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 33
    Questions

    View Slide

  34. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 34
    Office Hours
    Tuesday and Thursday 3 - 5 pm
    But an appointment required
    Sent me an email – [email protected]

    View Slide

  35. jgs

    View Slide

  36. jgs
    CSC 309
    Software Engineering II
    Lab 12:
    Java Libraries
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  37. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 37

    View Slide

  38. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 38
    Let’s Work
    A. Configure Maven
    B. Add a Dependency
    C. Create a Chart
    D. Show me your (Java) and POM
    file

    View Slide

  39. jgs
    CSC 309 Software Engineering II
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Winter 2023
    Copyright. These slides can only be used as study material for the class CSC308 at Cal Poly.
    They cannot be distributed or used for another purpose.

    View Slide