1/16
midterm 2
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
integration hell
a state when the time/effort to integrate new modules exceeds the time/effort of a new module’s development. Might as well start from scratch.
big-bang integration
a strategy where all components of a system are integrated at once, rather than incrementally. This approach can lead to integration hell if not managed properly. no plan at all, horrible, not scalable, sufficient for small programs that are unlikely to change.
bottom-up
a strategy where integration starts with the lower-level modules and gradually integrates them into higher-level modules. This approach allows for early testing and validation of components before full integration.
top-down (mock)
a strategy where integration begins with the higher-level modules and progressively integrates lower-level modules. This approach focuses on the overall system architecture first, allowing for early identification of design flaws.
sandwich integration
a hybrid strategy that combines both top-down and bottom-up approaches, allowing for parallel development and integration of both high-level and low-level components.
advantage: sandwich
very good in large apps
advantage: sandwich
more scalable as new modules and sub-projects are integrated
disadvantage:sandwich
struggle if large # of interdependencies between modules, so isolating target layer is hard
advantage: bottom-up
can test unit and integration at the same time
advantage: bottom-up
easier to spot faults → if error, probably from recent integration
advantage: bottom-up
we can test the higher-level modules deeper knowing the lower ones have been tested thoroughly
disadvantage: bottom-up
the higher-level modules get tested last (most important aspects)
disadvantage: bottom-up
may be harder → naturally we start with high-level abstraction and work down, but starting at the bottom may be unintuitive
advantage: top-down
allows intuitive progression from high-level to low-level testing, ensuring that the overall system architecture is validated first.
disadvantage: top-down
difficulty in testing UIs directly
disadvantage: top-down
can lead to incomplete testing of lower-level components, as initial focus is on higher-level functionalities.
disadvantage: top-down
mocking may be overkill in smaller apps