You are on page 1of 28

EECS 4314: Advanced Software Engineering

Discrepancy
Analysis

Group Beyond
Agenda

01 02 03
Conceptual & Concrete Reflexion Analysis and Conceptual & Concrete
(Top-level subsystems) Discrepancies (Chosen subsystem)
(Top-level subsystems)

04 05 06
Reflexion Analysis and Revised Conceptual Concurrency Effects
Discrepancies Diagram
(Chosen subsystem)

07 08
Limitations & Q&A
Lessons Learned
01

Conceptual vs Concrete
TOP-LEVEL SUBSYSTEMS
Conceptual
Concrete
02

Reflexion Analysis
TOP-LEVEL SUBSYSTEMS
Process of Reflexion Analysis
● Compare the conceptual Architecture to the Concrete Architecture Diagram and look for gaps between them.

● Gaps are the missing or unexpected dependencies between subsystems.

● We then investigate these unexpected dependencies by posing various questions to understand the rationale for

what caused these gaps.

● We need to determine if there are any good reasons for such a dependency to exists, or if the dependency is due

to the misunderstanding of the developer who introduced it.

● The questions are which source code files were changed, who made the changes and when, and most

importantly why were these changes made

● These questions are answered by looking the the source control system’s commit logs for the files that are

causing the unexpected dependencies.


Reflexion Model
Discrepancies
IN TOP-LEVEL SUBSYSTEMS
#1 Localization & Calibration Sensors & Actuators

Which?
01 locationd.h (locationd) → sensord.h (sensord) - PR: #25714

Who?
02 adeebshiladeh (senior dev), gast04, pdOwm, and sshane (3 third-party developers)

When?
03 September 29, 2022

Why?
04 The developers added the dependency to alter the “reading sensors via interrupts
instead of polling”.
System, Logging, and
#2 Miscellaneous services
Sensors & Actuators

Which?
01 cameraview.h (ui) → camera_common.h (camerad) - PR #23133

Who?
02 deanlee

When?
03 December 6, 2021

Why?
04 The developer added the dependency to “clean up includes” in the header file during
the process of “move rest of NVG to Qt”
03

Conceptual vs Concrete
CHOSEN SUBSYSTEM: System, Logging, and Miscellaneous Services
Conceptual
Concrete
04

Reflexion Analysis
CHOSEN SUBSYSTEM: System, Logging, and Miscellaneous Services
Reflection Model
Discrepancies
IN SYSTEM, LOGGING, AND MISCELLANEOUS SERVICES
#1 UI QR (tools)

Which?
01 The UI subsystem was found to be dependent on the QR code
generation module.- PR: #21755

Who?
02 sshane and adeebshiladeh

When?
03 July 28, 2021

Why?
04 To aid in the pairing of the device with a mobile application for prime subscription
services. The QR code simplifies complex setup steps, aims to increase user engagement
and reduce the potential for user error during the manual entry of setup information.
#2 Replay UI

Which?
01 This dependency surfaced within the selfdrive/ui/replay and
tools/replay directories of the openpilot project. PR#24971

Who?
02 Developer deanlee indicating a restructuring of the project directories as per the commit history.

When?
03 Jun 28, 2022

Why?
04 The rationale could be to decouple the replay functionality from the UI to make it more modular and
aligned with a tools-based approach. This decoupling might be beneficial for cleaner architecture,
easier maintenance, independent scalability, and potentially more straightforward use in CI/CD
pipelines.
05
Revised Conceptual
Diagram
TOP-LEVEL SUBSYSTEMS AND CHOSEN SUBSYSTEM
Revised Conceptual
06

Concurrency Effects
Effects of Concurrency & Team Issues
Benefits of concurrency within a team:

- Increased productivity
- Optimized resource utilizations
- Faster time to market

Team Issues:
- Integration risks
- Coordination Challenges
- Can cause unexpected dependencies
07
Limitations & Lessons
Learned
Limitations of research
- Community Developed Project

- Fragmented Documentation

- No Sticky Notes

- Large amount of commits


Lessons Learned
- Community Projects Increase Possible Discrepancies

- Refactoring increases discrepancies

- Addition of features and use of tools cause discrepancies

- Large projects lack thorough documentation

- Github commit messages grants insight


Thanks!
Any Questions?

Group Beyond

CREDITS: This presentation template was created by Slidesgo, and


includes icons by Flaticon, and infographics & images by Freepik
Sources
1. https://github.com/commaai/openpilot
2. https://github.blog/2017-01-03-search-commit-messages/
3. https://github.com/commaai/openpilot/pull/23133
4. https://github.com/commaai/openpilot/pull/25714
5. https://github.com/commaai/openpilot/commit/6fc999fc533af85fefac5a96bc277afc1c65e260
6. https://github.com/commaai/openpilot/commit/fd5b3d76036b78864111790931a3abcb1d11ee0f

You might also like