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

CSC510 Lecture 16

CSC510 Lecture 16

Midtern Review
(20260925)

Avatar for Javier Gonzalez-Sanchez

Javier Gonzalez-Sanchez PRO

October 11, 2026

Transcript

  1. CSC 5100 Modern Software Engineering Lecture 16. Midterm Review Dr.

    Javier Gonzalez-Sanchez [email protected] www.javiergs.info ffi o ce: 14 -227
  2. Grading 3 >= 98.5 A+ >= 77.5 C+ >= 95

    A >= 74 C >= 91.5 A- >= 70.5 C- >= 88 B+ >= 67 D+ >= 84.5 B >= 63.5 D >= 81 B- >= 60 D- < 60 F
  3. CSC 5100 / MIDTERM REVIEW Requirements 5 pts · Multiple

    choice Which statement best describes a user story? A. A detailed Java implementation plan B. A capability expressed from a stakeholder perspective and its value C. A list of GitHub commits D. A UML class diagram
  4. CSC 5100 / MIDTERM REVIEW Requirements 5 pts · Critique

    / rewrite Evaluate this story using INVEST, then rewrite it: “As a developer, I want to implement a Java MQTT class, a REST controller, and a database so the system works.” Identify at least TWO problems.
  5. CSC 5100 / MIDTERM REVIEW Requirements 10 pts · Apply

    For the Temperature system, write ONE Provide user story and ONE Consume user story. For each, specify: actor, value, input/output, and acceptance criterion.
  6. CSC 5100 / MIDTERM REVIEW Requirements 5 pts · Multiple

    choice Which item is most appropriate for a Sprint task board? A. “As a sensor operator, I want to see the latest temperature...” B. “Implement GET /temperature endpoint and test 200 response” C. “Reliable temperature monitoring” D. “Better architecture”
  7. CSC 5100 / MIDTERM REVIEW Interfaces 5 pts · Multiple

    choice An interface between independently developed components should primarily specify: A. Their internal class hierarchy B. Their IDE and language C. Inputs, outputs, formats, and behavior D. Their private fields
  8. CSC 5100 / MIDTERM REVIEW Interfaces 10 pts · Design

    A Java TemperatureService already calculates conversions. Design TWO adapters: • REST adapter accepting an HTTP request • MQTT adapter publishing a temperature event Draw components (UML a plus 😳) and indicate where the domain logic lives.
  9. CSC 5100 / MIDTERM REVIEW REST 5 pts · Multiple

    choice A REST contract should include which information? A. URL path, HTTP method, JSON shape, status/error behavior B. MQTT topic and QoS only C. Java method names only D. Docker image name only
  10. CSC 5100 / MIDTERM REVIEW REST 10 pts · API

    design Design a REST API for temperature conversion. Provide: • one GET or POST route • example request • example JSON success response • one invalid-input response and status code
  11. CSC 5100 / MIDTERM REVIEW Messaging 5 pts · Multiple

    choice Which description best fits MQTT? A. Synchronous request/response only B. Publish/subscribe through a broker and topics C. Object storage D. Relational query language
  12. CSC 5100 / MIDTERM REVIEW Messaging 10 pts · Trace

    An EEG sensor publishes JSON to `lab/affect` using MQTT. Create TWO independent subscribers. Label publisher, broker, topic, subscribers, and the contract they must agree on.
  13. CSC 5100 / MIDTERM REVIEW Messaging 5 pts · Select

    all Which are part of a useful MQTT integration contract? A. Topic name B. Payload schema C. QoS / delivery assumptions D. Private field names in the publisher E. Handling malformed messages
  14. CSC 5100 / MIDTERM REVIEW Architecture 10 pts · Compare

    Contrast REST and MQTT for a Temperature system. For each, state communication pattern, producer/consumer interaction, and ONE appropriate use case.
  15. CSC 5100 / MIDTERM REVIEW AWS Lambda 5 pts ·

    Multiple choice For an HTTP request handled by Lambda, which component exposes the HTTP route? A. CloudWatch B. API Gateway C. DynamoDB D. S3
  16. CSC 5100 / MIDTERM REVIEW AWS Lambda 10 pts ·

    Trace Draw the complete flow for: Browser → GET /5100/temperature → ? → ? → JSON response Identify API Gateway, Lambda handler, the event input, and the returned response.
  17. CSC 5100 / MIDTERM REVIEW AWS Lambda 10 pts ·

    Java coding Write a minimal Java Lambda handler method that receives `Map<String,Object> event` and `Context context`, reads a numeric temperature value, and returns a JSON-serializable map with the converted value. State one assumption about the event structure.
  18. CSC 5100 / MIDTERM REVIEW AWS Lambda 10 pts ·

    Python coding Write a Python `lambda_handler(event, context)` that reads two numbers from an event and returns their sum in a JSON-serializable structure. Explain how you would test it locally.
  19. CSC 5100 / MIDTERM REVIEW Testing 5 pts · Multiple

    choice Which pairing matches the course Lambda examples? A. Java → pytest; Python → JUnit B. Java → JUnit; Python → pytest C. Both require a deployed web server for unit tests D. Neither supports local tests
  20. CSC 5100 / MIDTERM REVIEW CI/CD 10 pts · Sequence

    Arrange and explain the student Lambda workflow: clone repository • create branch • implement handler • run tests • push/PR • merge • GitHub Actions build/package/deploy • verify API route Which stages happen locally, on GitHub, and on AWS?
  21. CSC 5100 / MIDTERM REVIEW CI/CD 5 pts · Multiple

    choice What is the role of GitHub Actions OIDC in the deployment workflow? A. Store temperature readings B. Authenticate GitHub workflow to AWS without a long-lived AWS key in repository secrets C. Replace API Gateway D. Convert Java to Python
  22. CSC 5100 / MIDTERM REVIEW Operations 5 pts · Multiple

    choice A deployed Lambda fails, but local unit tests pass. Where should you first inspect runtime logs? A. Amazon S3 B. Amazon CloudWatch C. Maven Central D. GitHub Pages
  23. CSC 5100 / MIDTERM REVIEW DynamoDB 5 pts · Multiple

    choice When creating a DynamoDB table, what must be defined as part of the table key schema? A. Every possible non-key attribute B. Partition key (and optional sort key) C. All Java class names D. S3 bucket prefix
  24. CSC 5100 / MIDTERM REVIEW DynamoDB 10 pts · Java

    integration Your Lambda currently computes a temperature conversion. Describe the Java changes needed to persist each reading in DynamoDB. Name the Maven SDK module, client, request operation, and AWS permission needed.
  25. CSC 5100 / MIDTERM REVIEW S3 5 pts · Multiple

    choice What is `readings/abc123.json` in an S3 bucket? A. A traditional nested directory B. The full object key; `readings/` is a prefix C. A DynamoDB primary key definition D. An SNS subscription
  26. CSC 5100 / MIDTERM REVIEW S3 10 pts · Storage

    design TemperatureLambda must store searchable reading metadata AND archive the original JSON payload. Choose DynamoDB and/or S3 for each responsibility. Draw the flow and explain how the same UUID links the records.
  27. CSC 5100 / MIDTERM REVIEW S3 5 pts · Select

    all Which statements match our S3 example? A. Block Public Access is appropriate for private Lambda data B. SSE-S3 encrypts objects at rest C. Bucket and Lambda must be publicly readable D. Region alignment with Lambda and DynamoDB simplifies setup E. Lambda runtime API alone supplies S3Client
  28. CSC 5100 / MIDTERM REVIEW Cloud messaging 5 pts ·

    Matching Match each statement to REST, MQTT, SNS, or SQS: 1. “I need an answer now.” 2. “Something happened.” (connected subscribers) 3. “Something happened in my cloud application.” 4. “This work needs to be done.”
  29. CSC 5100 / MIDTERM REVIEW Cloud messaging 5 pts ·

    Multiple choice Which distinction between SNS and SQS is most accurate? A. SNS stores files; SQS stores tables B. SNS fans out notifications; SQS holds work for consumers C. Both require synchronous HTTP clients D. SQS broadcasts every message to all competing workers
  30. CSC 5100 / MIDTERM REVIEW Cloud messaging 10 pts ·

    Architecture Extend the Temperature architecture: IoT sensor → AWS IoT Core → TemperatureLambda → DynamoDB / S3 Add SNS to notify multiple cloud services AND SQS to queue plotting work. Draw components, arrows, and subscriptions/consumers.
  31. CSC 5100 / MIDTERM REVIEW Cloud messaging 10 pts ·

    Reasoning Two Java plotting workers poll the SAME SQS queue. A message arrives. Should both workers normally process it? Explain competing consumers, acknowledgement/deletion, and what happens if processing fails.
  32. CSC 5100 / MIDTERM REVIEW Integration 10 pts · Synthesis

    Code an end-to-end Temperature system using at least FIVE of: REST, MQTT/AWS IoT Core, API Gateway, Lambda, DynamoDB, S3, SNS, SQS, CloudWatch. Draw a labeled architecture and explain which connections are synchronous and asynchronous.
  33. 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.