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

CSC310 Lecture 05

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Javier Gonzalez-Sanchez Javier Gonzalez-Sanchez PRO
September 07, 2026
22

CSC310 Lecture 05

From Requirements to Design
(20260909)

Avatar for Javier Gonzalez-Sanchez

Javier Gonzalez-Sanchez PRO

September 07, 2026

Transcript

  1. CSC 3100 Software Engineering Lecture 05. From Requirements to Design

    Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.info ffi o ce: 14 -227
  2. Where We Are Wants / Needs User Stories Accepted Backlog

    Design We know WHAT the system should do. Before 14 developers start coding… How do we decide HOW the pieces fit together? Design gives the team a shared blueprint. 2 3 Tasks
  3. The Software Skateboard It is the smallest useful working system

    small working system more capability fuller product A skateboard is not 25% of a car Our first design should give every important capability a place to grow —without building everything now. 4
  4. Requirements Are Not Classes Requirement Responsibility Possible Design Element Send

    Message coordinate sending MessageService Store Messages preserve messages MessageRepository Authenticate User verify identity AuthenticationService Gather Robot Pose obtain device data RobotDataSource Stories describe behavior. Design organizes responsibilities. 5
  5. Initial Design — Version 0.1 Message content timestamp status MessageService

    send(message) receive(message) «interface» CommunicationService MockCommunication send(message) receive() «interface» MessageRepository save(message) findAll() Enough to implement and test core messaging without services (such as AWS), a database, robots, etc. 5 6 InMemoryRepository
  6. Design for What We Do Not Have Yet Depend on

    what a 'service' DOES—not on one technology. «interface» CommunicationService send(Message) MockCommunicationService Sprint 1 Later Same contract 6 7 MqttCommunicationService Different implementations
  7. One Story → Design → Java REQUIREMENT DESIGN IMPLEMENTATION VERIFICATION

    #5 Send Message MessageService ↓ CommunicationService Java classes + interfaces Automated test with mock User-visible behavior The requirement did NOT say: • MessageService • interface • MQTT Those are DESIGN decisions. 7 8 CSC 3100 • Software Design
  8. The Backlog Suggests Responsibilities Messaging Data Security Send / Receive

    Retry / Encrypt Store / Retrieve Robot pose / Eye tracking Register / Authenticate Authorize / Audit Devices Visualization Monitoring Robot / Accelerometer LiDAR Dashboard / History Robot / Map Data availability Failures This is a design hypothesis—not the final answer. 9 9 CSC 3100 • Software Design
  9. Mocks Let Us Build Now MockCommunication controlled behavior MessageService TEST

    real code Given communication succeeds When send(message) Then result is success Real MQTT not required yet Good design lets us test one responsibility without requiring the entire real system. TDD and provided test assets come later. 10 10 CSC 3100 • Software Design
  10. Questions to Ask While Designing • What needs to KNOW

    something? • What needs to DO something? • What information needs to EXIST? • Which responsibilities belong together? • Which dependencies should be interfaces? • What can we mock today? • Can we trace every design element back to a requirement? 11 11 CSC 3100 • Software Design
  11. What Comes Next? Today Requirements Design Tasks Implementation Tests Pull

    Request A shared design allows 14 developers to build ONE system. Next: turn the design into implementation Tasks. 13 12 CSC 3100 • Software Design
  12. Structur l models of softw re displ y the org

    niz tion of system in terms of ) the p rts (items, elements, components) th t m ke up th t system nd b) their rel tionships. a a a a a a a a a a a 17 a a Structural models
  13. Class diagram Cl ss di gr ms show the cl

    sses in system • modi iers • Attributes • methods And the rel tionships between these cl sses: • Associ tion / Dependency • Aggreg tion / Composition • Gener liz tion / Speci liz tion / Re liz tion a a a a a a a a a a a a a a f a 19
  14. CSC 3100 Software Engineering Javier Gonzalez-Sanchez, Ph.D. [email protected] Fall 2026

    Copyright. These slides may be used only as study material for CSC 5100 within the California State University system. They may not be distributed or used for any other purpose.