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

3100_11.pdf

 3100_11.pdf

Avatar for Javier Gonzalez-Sanchez

Javier Gonzalez-Sanchez PRO

October 11, 2026

Transcript

  1. Grading 4 >= 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
  2. Disclaimer for Final Exam Review The in l ex m

    is comprehensive, encomp ssing ll course m teri ls. This review covers only subset of topics. Import nt: • Ensure you review ll lecture slides nd course m teri ls. • The following slides include ex mples rel ted to selected topics. • This is NOT n exh ustive list of ex m topics. a a a a a a a a a a a a a a a a a f 5
  3. Key Topics • Softw re Engineering is not Progr mming.

    • Process Models nd Agile Methods • Requirements nd Storybo rding, T sks nd T ig • Softw re Design (UML, i.e., softw re blueprints). • Design Principles nd GoF • Libr ries, Dependencies, M ven • Project, Assignments, Coding a a a a a a a a a a a a a a 6
  4. 5 pts · Git workflow What is the purpose of

    a Git branch? A. Store compiled Java files B. Develop changes independently before merging C. Replace the repository D. Automatically grade code E. Delete previous commits 2
  5. 5 pts · Git workflow Which statement best distinguishes a

    commit from a pull request (PR)? A. Both merge code automatically B. A PR saves a local snapshot; a commit requests review C. A commit records changes; a PR proposes merging changes for review D. A commit is an issue; a PR is a task E. A PR cannot contain commits 3
  6. 5 pts · Stories and tasks A story says: “As

    an operator, I can see LiDAR points.” Which is a suitable implementation task? A. Improve the app B. Complete the sprint C. Implement a LiDAR chart using Jzy3D and a runnable test class D. Make software good E. Learn Java 5
  7. 5 pts · Maven Where should Java production classes normally

    go in a Maven project? A. src/test/java B. docs/uml.png C. target/classes D. src/main/java E. .github/workflows 6
  8. 5 pts · Documentation What belongs in class-level JavaDoc for

    our labs? A. Only the filename B. Class purpose, @author, and @version C. Only an @return tag D. A screenshot of output E. Only the package name 7
  9. 5 pts · UML In a UML class diagram, a

    solid line with a hollow triangle pointing to Vehicle usually means: A. Dependency B. Composition C. Inheritance/generalization D. Association only E. An event notification 8
  10. 5 pts · UML A dashed arrow from Report to

    JsonParser commonly indicates: A. Report depends on/uses JsonParser B. Report inherits JsonParser C. JsonParser is nested inside Report D. Both classes are identical E. Report owns JsonParser for its entire lifetime 9
  11. 5 pts · Patterns Which pattern allows changing a battle

    algorithm without changing the Hero class? A. Strategy B. Singleton C. Observer D. Builder E. Composite 11
  12. 5 pts · Patterns A WeatherSystem notifies registered Hero objects

    whenever conditions change. Which pattern? A. Factory B. Observer C. Decorator D. Builder E. Strategy 12
  13. 5 pts · Patterns A BufferedInputStream wraps an InputStream and

    adds buffering. Which pattern does this illustrate? A. Composite B. Observer C. Decorator D. Factory E. Singleton 13
  14. 10 pts · Code reading Hero h = new HeroBuilder().name("Ari").level(4).role("Mage").build();

    Identify the pattern. Explain what build() should return and why fluent methods typically return the builder. 15
  15. 10 pts · Coding Write Java code for a BattleStrategy

    interface with int damage(int power), plus a HeavyAttack implementation returning power * 2. No nested classes. 16
  16. 10 pts · Coding Write a WeaponFactory.create(String type) method returning

    a Sword for "sword" and a Staff for "staff". Assume Weapon, Sword, and Staff exist. Specify behavior for unknown types. 17
  17. 10 pts · Story design Story: “As an operator, I

    can view a time-series temperature chart.” Write TWO actionable tasks, each with a verifiable acceptance criterion. Include a charting library used in class. 18
  18. 15 pts · Coding Implement a simple Observer design: WeatherListener

    with update(String condition); WeatherSystem with addListener(...) and setCondition(...) that notifies listeners. Put every class in its own .java file. 20
  19. 15 pts · Coding + UML Design a Hero that

    can switch between FastAttack and HeavyAttack at runtime. Provide Java class/interface skeletons and a UML diagram with correct relationships. No nested classes. 21
  20. 15 pts · Coding + UML Create a fluent HeroBuilder

    supporting name, role, and level, then build(). Draw UML showing Hero and HeroBuilder. Each class must have its own file and class-level JavaDoc. 22
  21. 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 ort/Cost of design, build, and test. • Small (sized appropriately) • Testable – pass or fail ff 32
  22. • Students nd St members c n request the Libr

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

    ry to notify him/her when Book becomes v il ble. • Also, they c n reserve the book. Before reserving Book for someone the Libr ry check, for students, with the Registr r, if the Student is currently enrolled, nd for employees, with Hum n Resources if the employee h s n ctive contr ct. a a a a a a a a a a a ff a a a a a 46 a a Solution
  24. CSC 307 Introduction to Software Engineering Javier Gonzalez-Sanchez, Ph.D. [email protected]

    Winter 2026 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.