Skip to content

Lecture Notes 5

Ozgur Savascioglu edited this page Mar 15, 2025 · 2 revisions

CMPE 352 - Lecture Notes 5

Date: 13.03.2025

Topics Covered

  • System Design (Diagrams)

  • Example of creating sequence diagram from a class and use case diagrams

  • Common mistakes on sequence diagram

  • Milestone- Tracking- Planning


1. Sequence Diagram Design

A Sequence Diagram represents the flow of execution in a system, showing how objects interact over time. It is closely related to the Class Diagram because it shows which methods are being called on which classes.

Why Sequence Diagrams?

  • Helps visualize interactions between objects over time.
  • Identifies missing methods in the Class Diagram.
  • Ensures logical ordering of function calls.
  • Prevents unnecessary parallel design (Sequence Diagrams should always be derived from Use Case Diagrams and Class Diagrams).

2. Steps to Create a Sequence Diagram

Precondition: The system must be at a specific state before execution (e.g., the user must be logged in).

Step-by-Step Process

  1. Select a use case and give it a title (e.g., SD_CreateToDoList).
  2. Identify relevant classes that are involved in this use case.
  3. Organize these classes horizontally, in the order of function calls.
  4. Define the interactions, showing which methods are being called and on which objects.
  5. Check cohesiveness – ensure clear communication between objects.
  6. Iterate and refine – update the Use Case Diagram and the Class Diagram if new attributes or methods are needed.

3. Iterative Design Process

  • First, create the Use Case Diagram and the Class Diagram.
  • Then, create the Sequence Diagram for a use case.
  • While drawing the Sequence Diagram, check if additional attributes or methods are needed.
  • Update the Use Case Diagram and the Class Diagram if necessary.
  • Repeat the process iteratively.

4. Tracking & Planning in Software Design

  • Milestones define major checkpoints in development.
  • Each milestone should have a deliverable (e.g., a working module, a completed document).
  • Tracking ensures progress – regularly compare estimated vs. actual effort.
  • Estimation is key – tasks should be broken into manageable chunks (typically 1-2 weeks in a real-world project).
  • Key Terms
  • Critical Path – The shortest sequence of dependent tasks that determine the project's completion time.
  • Feature Creep – The tendency to add unnecessary features beyond the original requirements.

Conclusion

Today's lecture was about to necessities of solid UML diagrams and planning the project/milestone. So as a summary: the Use Case Diagram and the Class Diagram come first, then Sequence Diagrams are created based on them. All designs should be traceable to the requirements. Planning, tracking, and iterative refinement ensure successful project delivery. Sequence Diagrams help identify missing attributes/methods, leading to necessary updates in the Use Case Diagram and the Class Diagram.


  • Links for this week's materials:

UML Diagrams

Project Planning


👥 Team Members

📌 Milestone Report

💬 Communication Plan

📋 Meeting Agendas

📅 Meeting Notes

📂 Backend Subgroup Meeting Notes

📂 Frontend Subgroup Meeting Notes

📂 Mobile Subgroup Meeting Notes

📚 Lecture Notes

🛠️ Team Best Practices

✍️ Guidance

❗ Issues

🚀 Project

🧱 Diagrams

👩‍💼 User Scenarios

Click to Expand ⬇️

🗂️ Templates

Clone this wiki locally