11.6. Conclusion

Subsystems virtually are minisystems in and of themselves. In designing subsystems, we should elicit the requirements of the subsystem, understand the behavioral aspects, and create flexible structures. Subsystems, however, add a unique perspective in that we not only consider what the subsystem must use, but also what must use the subsystem.

Subsystem design involves looking at the problem a bit differently from how we typically look at other design challenges. Instead of focusing on the outgoing relationships that may exist among our subsystem classes, we focus more on the incoming relationships. Considering both the incoming and outgoing relationships helps to reduce coupling and manage dependencies throughout our entire package ...

Get Java™ Design: Objects, UML, and Process now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.