The Smart Kitchen Central System was a design for a controller over a kitchen's groceries, recipes, and appliances. Groceries are scanned in and out, so the inventory and the shopping list keep themselves. Recipes are suggested from what is in stock. Appliances report their state and take instructions remotely. It was a design document, not a build.
It was a team project for DePaul's object-oriented modeling course, taught by Harold Streeter
Harold StreeterSenior Professional Lecturer in DePaul's School of Computing, teaching human-computer interaction and software engineering courses. M.S. from Brown.Faculty page ↗, with Haunani Soares-Pollack, Larisa Bednyak-Kaykov, and Chang Kim. The team's report is here (PDF, 29 pages). My parts were the domain model, the design class diagram, and the use-case realization.
The design took one use case, find a recipe for a desired meal, through two passes. A GRASP analysis (General Responsibility Assignment Software Patterns) walked the event flow step by step, assigning each responsibility to an abstraction: factories for the objects, a dispatcher per subsystem, an information expert for data, with the database deferred. A second pass refactored those against design patterns: a mediator per use case, factory interfaces for list and text data, and a data-source façade with pull filters.
