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 14. Final Review

Slide 2

Slide 2 text

Grading 2

Slide 3

Slide 3 text

Grading

Slide 4

Slide 4 text

Disclaimer for Final Exam Review The f in a l ex a m is comprehensive, encomp a ssing a ll course m a teri a ls. This review covers only a subset of topics. Import a nt: • Ensure you review a ll lecture slides a nd course m a teri a ls. • The following slides include ex a mples rel a ted to selected topics. • This is NOT a n exh a ustive list of ex a m topics. 4

Slide 5

Slide 5 text

Final Exam

Slide 6

Slide 6 text

Key Topics • Softw a re Engineering is not Progr a mming. • Process Models a nd Agile Methods • Requirements a nd Storybo a rding. • T a sks a nd T a ig a • Softw a re Design (UML, i.e., softw a re blueprints). • Design Principles a nd GoF P a tterns • Libr a ries, Dependencies, M a ven • Project, Assignments, Coding 6

Slide 7

Slide 7 text

Test Yourselves Process Models

Slide 8

Slide 8 text

Strategies 8

Slide 9

Slide 9 text

Activities 9

Slide 10

Slide 10 text

We are here 10 Burndown Chart

Slide 11

Slide 11 text

Sample 11

Slide 12

Slide 12 text

Sample 12

Slide 13

Slide 13 text

Test Yourselves Requirements and Stories

Slide 14

Slide 14 text

INVEST in good requirements • Independent – loosely coupled with one another • Negotiable – Stories are what and why , not how ( 99% ). • Valuable – for the customer! • Estimatable – E ff ort/Cost of design, build, and test. • Small (sized appropriately) • Testable – pass or fail 14

Slide 15

Slide 15 text

Is it a story, and is it INVEST? 15

Slide 16

Slide 16 text

Is it a story, and is it INVEST? 16

Slide 17

Slide 17 text

Is it a story, and is it INVEST? 17

Slide 18

Slide 18 text

Question 18

Slide 19

Slide 19 text

Question 19

Slide 20

Slide 20 text

Question 20

Slide 21

Slide 21 text

Case 1 21

Slide 22

Slide 22 text

Case 2 22

Slide 23

Slide 23 text

Case 3 23

Slide 24

Slide 24 text

Test Yourselves Design and Coding

Slide 25

Slide 25 text

Relationships 25 Association Directed Association Reflexive Association Multiplicity Aggregation Composition Generalization Realization

Slide 26

Slide 26 text

GoF Patterns 26

Slide 27

Slide 27 text

Draw the Class Diagram package myModel.impl; public class StudentImpl extends MinimalEObjectImpl.Container implements Student { protected boolean hasScholarship = HAS_SCHOLARSHIP_EDEFAULT; protected Computer computer; @Override public void setComputer(Computer newComputer) { Computer oldComputer = computer; computer = newComputer; if (eNotificationRequired()) eNotify(new ENotificationImpl (this, Notification.SET, MyModelPackage.STUDENT__COMPUTER, oldComputer, computer)); } @Override public Computer getComputer() { if (computer != null && computer.eIsProxy()) { InternalEObject oldComputer = (InternalEObject)computer; computer = (Computer)eResolveProxy(oldComputer); if (computer != oldComputer) { if (eNotificationRequired()) eNotify(new ENotificationImpl (this, Notification.RESOLVE, MyModelPackage.STUDENT__COMPUTER, oldComputer, computer)); } } return computer; } } 27

Slide 28

Slide 28 text

Create the Class Diagram 28

Slide 29

Slide 29 text

Problem • Students a nd St aff members c a n request the Libr a ry to notify him/her when a Book becomes a v a il a ble. • Also, they c a n reserve the book. Before reserving a Book for someone the Libr a ry check, for students, with the Registr a r, if the Student is currently enrolled, a nd for employees, with Hum a n Resources if the employee h a s a n a ctive contr a ct. 29

Slide 30

Slide 30 text

Solution • Students a nd St aff members c a n request the Libr a ry to notify him/her when a Book becomes a v a il a ble. • Also, they c a n reserve the book. Before reserving a Book for someone the Libr a ry check, for students, with the Registr a r, if the Student is currently enrolled, a nd for employees, with Hum a n Resources if the employee h a s a n a ctive contr a ct. 30

Slide 31

Slide 31 text

Problem 31

Slide 32

Slide 32 text

Problem 32

Slide 33

Slide 33 text

Problem 33

Slide 34

Slide 34 text

Test Yourselves Software Quality

Slide 35

Slide 35 text

Questions Metrics • LOC • eLOC • lLOC • Cyclom a tic complexity (M a x, Min, Aver a ge) 35

Slide 36

Slide 36 text

Question 36

Slide 37

Slide 37 text

Test Yourselves Structural Quality

Slide 38

Slide 38 text

Calculate Structural Metrics 38

Slide 39

Slide 39 text

Test Yourselves Utilities

Slide 40

Slide 40 text

… pom.xml 40

Slide 41

Slide 41 text

Logger 41

Slide 42

Slide 42 text

Logger 42

Slide 43

Slide 43 text

Final Project

Slide 44

Slide 44 text

Final Project Submit Here your Fin a l Project, including: a ) Fin a l Version of your Source Code - submit your J a v a f iles (or GitHub) b) Softw a re Design - your UML cl a ss di a gr a m c) Requirements, t a sks, a nd Work distribution (from T a ig a ) e) Link to your video of the Fin a l Present a tion f) Peer-Ev a lu a tion 44

Slide 45

Slide 45 text

Questions 45

Slide 46

Slide 46 text

Lab 14 Project (team meeting)

Slide 47

Slide 47 text

Let’s Work 47

Slide 48

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