LAB 2022
Week 1
- Topics
- Eclipse IDE (creating projects, perspectives, views, refactorings)
- Intellij IDEA tutorial and an OOP problem for practice
- Documentation
- Eclipse
- Intellij IDEA
- A refactoring exercise can be found here
- Project Description
- Please group yourselves into teams of 2. The team members need to have the same teaching assistant! The project topic will be chosen by the team members and the requirements will be discussed for acceptance with your teaching assistant. Here you can see a set of 'minimal' special requirements for your project.
- It must have a graphical user interface
- It must have a way to persist manipulated data on disk (we recommend XML/JSON but more advanced techniques are allowed)
- It must have a Login feature with different roles for users. NOTE: It will not be allowed to record passwords as plain text.
- It must have at least 4 sea-level use cases and at least 2 fish-level use cases (see next week)
- Please group yourselves into teams of 2. The team members need to have the same teaching assistant! The project topic will be chosen by the team members and the requirements will be discussed for acceptance with your teaching assistant. Here you can see a set of 'minimal' special requirements for your project.
- Demo
⚠ (:youtube SWltrSXH9EQ border=1 :)
|
Week 2
- Topics
- Actors, Use Cases, UML Use Case Diagram
- Introduction to Use Cases -- slides
- Use Cases + example
- Suggested reading
- M. Fowler - UML Distilled, Chapter 9
- Practice
- Tools
- UML Use Case Diagram Tutorial
⚠ (:youtube zid-MVo7M-E border=1 :)
|
Week 3
- Project Deliverable 1 deadline - Project Text Specification (check Campus Virtual)
- Topics
- Agile Methodologies, Scrum
- Issue tracking systems (Jira, Youtrack), Features, Stories, Tasks
- Scrum Intro Tutorials
⚠ (:youtube XU0llRltyFM border=1 :)
|
- Some tutorials on Jira. To start playing around with Jira Cloud please follow this tutorial.
⚠ (:youtube TsG3OWTDAFY border=1 :)
|
Week 4
- Evaluation 1 on Agile methods, Scrum, JIra & Use Cases (check Campus Virtual)
- Topics
- Git
- Please study the Git tutorial here and do the practice exercise at the end of it (for the practice exercise use this git repo instead of the link in the document).
- You can also take a look at the Version Control presentation here and you can find several Git demos and/or tutorials if you scroll down a little. In-depth, official Git documentation can be found here.
- To install Git on your computer, see the installation instructions here
- Documentation
- Git introduction
- Version Control presentation here
- Git documentation here
- Facultative readings on SVN (another, older versioning system):
- Eclipse plugins for SVN: Subclipse
- SVN as a stand-alone tool:
- A simple SVN tutorial can be found here. For beginners, the Using Subversion section is the most important one. The server side configuration is not so important for you at this time (although it might clarify some aspects from the aforementioned section).
- A very good book about SVN can be found here (Suggested reading - Chapters 1 and 2).
- You can download various (standalone) SVN distributions (for different OS) from here.
- Demo Git
- A demo on how to use git locally and connect them to remote repositories.
⚠ (:youtube _OZVJpLHUaI border=1 :)
| ⚠ (:youtube mVnZVw4KJnc border=1 :)
|
- Some tutorials on how to use Git in IntelliJ IDEA (very useful)
⚠ (:youtube MaQnpCaiop0 border=1 :)
| ⚠ (:youtube mf2-MOl0VXY border=1 :)
|
⚠ (:youtube uUzRMOCBorg border=1 :)
|
⚠ (:youtube nbJlXOhppVk border=1 :)
|
- To integrate your Git repository with Jira Cloud
Week 5
- Git Exercise
- Work in pairs of 2 to implement a Student Manager System:
- Tasks for Student A
- Tasks for Student B
- Please use Java 8 (or be aware that since Java 11 JavaFX has been removed from the JDK and must be installed as a separate component; and that since Java 9 there is a new feature: Modularity, and JavaFX is designed using modules, so things might get more tricky for you...)
Week 6
- Topics:
- Examples:
- Registration Example Repository
- To setup a Maven / Gradle project from Intellij see Slf4J Example
- Additional resources:
- Official Maven Documentation here
- Official Gradle Documentation here
- Lombok setup in IntelliJ and Eclipse
- Lombok Gradle setup instructions
Week 7
- Topics
- JavaFX project structure
- Some useful links
Week 8
- Project Deliverable 2 deadline - Project Specification using Use Cases & Jira, Basic Structure on GitHub (check Campus Virtual)
- Topics
- CI/CD
- Suggested reading
- M. Fowler - Continuous Integration
- M. Fowler - Continuous Delivery
Week 9
- Evaluation 2 on Git & Build tools (check Campus Virtual)
- Topics
- UML Class Diagrams and Sequence Diagrams
- Introduction to UML (slides)
- UML Example here (slides) -- modelling the code here
- Suggested reading
- M. Fowler - UML Distilled, Chapter 3, 4, 5
- Class Diagrams on Object Mentor's Site
- Miscellaneous links
Week 10
- Topics
- Questions class & sequence diagrams
- Unit Testing with jUnit
- Documentation
- Unit Testing with jUnit here
- Configuring jUnit in Intellij here
- Using jUnit from Intellij here
- jUnit 3 Tutorial here
- Test Examples
- Demo
⚠ (:youtube b4a8bb6E_Q8 border=1 :)
|
- Exercises (facultative, this year...)
- An eclipse project is prepared for you here. Just download and import it in Eclipse (using File/Import/General-Existing Project Into Workspace/Select archive file). Write in jUnit all the tests according to the white-box path testing approach and the associated heuristics
- An eclipse project is prepared for you here. In this project you can find the binary code of a class named Search placed in the locate package. The class contains a method having the signature: int search(ArrayList<String>,String). The method returns the first position from the received list where there is a String equivalent to the second parameter of the method. In other cases the method must return -1. Derive and implement in jUnit the corresponding tests cases, according to the black-box testing methodology.
Week 11
- Evaluation 3 on UML class & sequence diagrams (check Campus Virtual)
- Topics
- Questions and project help
Week 12
- Topics
- Questions and project help
Week 13-14
- Project Deliverable 3 - Final Project (check Campus Virtual)