Slide 1

Slide 1 text

Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.info o ffi ce: 14 -227 CSC 307 Introduction to Software Engineering Lecture 12. Final Project

Slide 2

Slide 2 text

Problem

Slide 3

Slide 3 text

Domain 3 Source Code Visualization and Analysis

Slide 4

Slide 4 text

Examples 4

Slide 5

Slide 5 text

Searching for Inspiration • https://www.jarchitect.com/features • https://scitools.com/features • https://gource.io/ • http://wettel.github.io/codecity.html • http://www.redotheweb.com/CodeFlower/ • https://www.jgrasp.org/tutorials187/10_Viewers.pdf 5

Slide 6

Slide 6 text

Starting Point (1 of 3) 6 Think about a number of features that you can individually (by yourself) implement

Slide 7

Slide 7 text

Starting Point (2 of 3) 7 Agree with your teammates on HOW to integrate features into a single product. And Who does What, i.e., there are NOT 2 team members doing the same

Slide 8

Slide 8 text

Starting Point (3 of 3) 8 Write an Individual proposal with What feature(s) you will implement.

Slide 9

Slide 9 text

Questions 9

Slide 10

Slide 10 text

Project Presentation

Slide 11

Slide 11 text

Project Presentation 11 Product Process You

Slide 12

Slide 12 text

First Act – Demo Demo of your project. Show your project running. 12

Slide 13

Slide 13 text

Note 13 Select a Speaker person to demo the full project Be sure that the speaker person talks about your part (features)

Slide 14

Slide 14 text

Second Act – Your process T a ig a - Stories, B a cklogs, a nd T a sk bo a rd Stories (INVEST), Sprint b a cklog, product b a cklog. Estim a tion (story points) T a lk a bout t a sks; who is doing wh a t? Everybody is doing some progr a mming! Show a nd expl a in your Burndown Ch a rt. 14

Slide 15

Slide 15 text

Note 15 Review that your stories are stories and not tasks; review that your tasks are tasks not stories Review that your stories are INVEST

Slide 16

Slide 16 text

Third Act – Software Design Show your cl a ss di a gr a m. Use colors a s needed (Single Responsibility Principle) Wh a t a re the A, I, or D in the new cl a ss? (show the 2D plot reg a rding where your cl a sses a re in terms of the p a in zone) 16

Slide 17

Slide 17 text

The code and diagram (blueprint) should match. Be sure that your classes are updated in the blueprint submitted Correctly apply DRY, SRP, Patterns, Principles, etc. Note 17

Slide 18

Slide 18 text

Fourth Act – Code Show your GitHub Who is doing Wh a t? (everyone should be a dding or upd a ting code) Show your Code a nd Code Metrics Are your metrics OK (LOC, eLOC, lLOC, CC)? Any signi f ic a nt a spect th a t you w a nt to sh a re? 18

Slide 19

Slide 19 text

Quality in your code: numbers of lines per method, cyclomatic complexity, following Java coding conventions, etc. Would another developer understand what I did? Note 19

Slide 20

Slide 20 text

Fifth Act – Review and Retrospective Review Wh a t is Good in the product? Wh a t is next for the product (next fe a tures to be a dded)? (your promise for the next sprint present a tion) Retrospective (Process & People) Wh a t went well? Wh a t did not go well? 20

Slide 21

Slide 21 text

Do you have issues (with your team, your technical skills, understanding the project instructions)? Talk, ASAP. Nothing can be done after the due date. Note 21

Slide 22

Slide 22 text

Questions 22

Slide 23

Slide 23 text

Project Submission

Slide 24

Slide 24 text

To-Do List • User Stories in T a ig a (One or Two Sprints) One T a ig a per Te a m, but E a ch te a m member is responsible for their own stories. • T a sk bo a rd a nd Burn-down Ch a rt E a ch te a m member de f ines a nd upd a tes their own t a sks, foster a sense of a ccount a bility a nd commitment. This individu a l responsibility extends to code commits. 24

Slide 25

Slide 25 text

To-Do List • UML Cl a ss Di a gr a m in Ast a h. One di a gr a m per te a m includes a ll cl a sses a nd their rel a tionships; however, e a ch te a m member is responsible th a t their own cl a sses a re correctly represented. • Apply design principles a nd p a tterns. M a inly but not limited to integr a ting e a ch te a m member's fe a tures into a single product. Consider Observer, Singleton, Composite/Decor a tor, but explore Null-Object, F a ctory, Builder, Memento, etc. However, “Design Principles a nd P a tterns a re not Supposed to be used r a ndomly; I will not ev a lu a te th a t you know the element but th a t you c a n use it correctly when a ppropri a te. 25

Slide 26

Slide 26 text

To-Do List • Source Code on GitHub We will t a lk more a bout this in the following d a ys - including unit testing a nd continuous Integr a tion a nd deployment. • Or a l Present a tion (5 minutes video) My fe a tures, my design a nd its integr a tion, my code, a nd the qu a lity metrics of my code. • Self- Peer Ev a lu a tion 26

Slide 27

Slide 27 text

Questions 27

Slide 28

Slide 28 text

Lab 12 Project (team meeting)

Slide 29

Slide 29 text

Let’s Work 29

Slide 30

Slide 30 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.