Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSC307 Lecture 14

CSC307 Lecture 14

Introduction to Software Engineering
Final Review
(202307)

Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.info o ffi ce: 14 -227

    CSC 307 Introduction to Software Engineering Lecture 14. Final Review
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. Questions Metrics • LOC • eLOC • lLOC • Cyclom

    a tic complexity (M a x, Min, Aver a ge) 35
  9. 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
  10. 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.