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

CSC509 Lecture 08

CSC509 Lecture 08

Software Design
Structural Quality
(202510)

Avatar for Javier Gonzalez-Sanchez

Javier Gonzalez-Sanchez PRO

October 23, 2025
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 508/9 Software Engineering (Design & Deployment) Lecture 09. Structural Quality
  2. Code (and Design) Review 5 https://github.com/javiergs/ADASIM • Draw the class

    diagram. • Then make a table listing all class names and, for each class, answer the following: • (1) Does it have a single responsibility, and if so, which one? (2) Is the class or interface necessary? (3) Is it part of the view, model, or controller? (4) If it is a blackboard, is its design and usage correct? (5) If there is an issue(code or design), explain and suggest a possible solution.
  3. Eye Tracking • Tobii Sp a rk https://www.tobii.com/products/eye-trackers/screen-based/tobii-pro-spark • Tobii

    SDK https://www.tobii.com/products/softw a re/ a pplic a tions- a nd-developer-kits/tobii-pro-sdk 7
  4. Brain-Computer Interfaces • Emotiv He a dsets https://www.emotiv.com/ • D

    a t a S a mples https://emotiv.gitbook.io/cortex-api/data-subscription/data-sample-object 9
  5. Cobot • Univers a l Robotics e-Series https://www.universal-robots.com/media/1802432/e-series-brochure.pdf • Comm

    a nds th a t c a n be used https://s3-eu-west-1.amazonaws.com/ur-support-site/29983/Script command Examples.pdf 12
  6. Abstractness • Indic a tes whether: ( a ) the

    item is m a inly a bstr a ct (interf a ces, a bstr a ct cl a sses – extensible but not directly us a ble); or (b) it is m a inly concrete (implement a tions – directly us a ble but less extensible). • It is a v a lue between 0 a nd 1: 0 ( a concrete cl a ss or a p a ck a ge with only concrete cl a sses) 1 ( a n a bstr a ct cl a ss/interf a ce or a p a ck a ge with only a bstr a ct cl a sses/interf a ces) 15
  7. Instability • Indic a tes whether: ( a ) the

    item is m a inly used by others (st a ble – h a rd to ch a nge); or (b) it m a inly depends on other items (in-st a ble – ch a nge a ble). • It is a v a lue between 0 a nd 1: • 0 only incoming dependencies to • 1 (only outgoing dependencies). 16
  8. Distance 17 Abstract Concrete Stable Hard to Change Only incoming

    dependencies Unstable Changeable Only outgoing dependencies the main sequence Painful Useless 0 1 1 0 Instability Abstractness
  9. Eclipse Paho for Java Wh a t is Eclipse P

    a ho? • A set of MQTT client libr a ries developed by the Eclipse Found a tion. • It supports multiple l a ngu a ges, such a s J a v a , Python, J a v a Script, etc. J a v a Dependency (M a ven) <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.5</version> </dependency> 21
  10. Quality-of-service options • 0 – "at most once": A.K.A. "fire-and-forget."

    This option is suitable when message loss is acceptable, as it doesn't require acknowledgment or persistence. • 1 – "at least once": This option should be chosen when message loss is unacceptable, and your subscribers can handle duplicate messages. • 2 – "Exactly once": This option is ideal when message loss is unacceptable, and your subscribers cannot handle duplicate messages. 23
  11. CSC 509 Software Engineering Javier Gonzalez-Sanchez, Ph.D. [email protected] Fall 2025

    Copyright. These slides can only be used as study material for the class CSC509 at Cal Poly. They cannot be distributed or used for another purpose.