This chapter describes the use of the unified modeling language (UML) beyond the usual specification of software models, in the domain of hardware/software co-design, hardware/software partitioning, and preparation for parametric tradeoff and costing studies. An understandable and practical use case for this approach is developed. I found it clear, and helpful, to see a presentation of a UML application in this expanded scope of UML usage. As someone with a longtime interest in tool interoperation, I liked that a process was presented to integrate UML into an analyses of costing and partitioning, by coupling analyses tools with the UML model tool files.
The style and presentation of the text appear to be intended to convince others of the value of using UML modeling in hardware/software co-design, more than to present specific UML details of a case study system. The authors develop the requirements and high-level concepts of a wireless utility meter reader, consisting of in-house basement components to image utility meter dials, and gather meter output as system input. This data is then sent by Bluetooth from basement-located meter readers to a global system for mobile communication (GSM)-based short message service (SMS) transmitter located higher up in the house, where GSM signal strength is available. The meter reader is developed in terms of its system-level requirements, which are sufficient enough to initiate the tradeoff of hardware/software partitioning and alternative implementation strategies, but also sufficient enough to outsource to a low-level software coder. The authors identify a process or method for utilizing such UML modeling to assign parametric data, as might be input to a cost modeling system. The chapter contributes a use case for UML to the book, as well as an approach for hardware and software co-design partitioning.
The length of the chapter seems just right: 14 typeset pages, pretty evenly split among selling the concept of UML for systems level requirements analysis, describing the meter reader requirements, presenting the UML of the meter reading system, and presenting a process or method to utilize the UML model in parametrically-driven costing and partitioning studies. Two critical UML diagrams, the use case and object model diagrams, were shrunk so small that their text was only readable with excessive squinting and difficulty, while neighboring diagrams have larger fonts, and lots of white space. The author or editor could have tweaked the graphics layout better; this is the worst feature of the chapter. Section headings, layout, and other aspects are professionally done. There is no index at the chapter level, though the book itself may have one. There are 11 references overall; some are high level, and some are commercial product references.
The chapter is intended to sell the approach and process, rather than to teach the gory details of UML itself, or how to do costing and hardware/software partitioning analyses. It seems targeted to a project manager faced with choices of which requirements modeling and analytical paths to follow, not to the practitioner of UML or analytical tasks.
For myself--a software developer-geek who is quite split between seeking the best techniques for designing, and the ultimate reality of deadline driven crash-mode projects that need to be completed with compromised documentation and maintainability--UML and its predecessors have been a siren song, a longing for a better world, a Tolkienian quest with reality as a stumbling block. I love the idea of extending geekdom techniques to the system requirements and design level, and I especially like the authors’ proposal to hack the output of UML (to read UML model files) to parametrically drive costing and hardware-software partitioning tools from the UML model. This is the chapter’s best feature.