Modern large-scale system design poses a unique challenge to traditional software methodologies. These systems have complex functional and non-functional requirements along many interacting axes: architectural, temporal, and, physical. Large-scale systems must be well-architected; a clear global view is essential for testing and maintainability. Unlike traditional software systems, modern systems may be highly distributed and thus sensitive to the temporal demands of an external environment. They must process data when and how the environment decides to deliver it, but respond in a timely manner. Finally, all of these tasks may have to be accomplished within resource constrained physical packages, limiting the available memory, processor, and power. This is especially true for embedded systems.
This presentation introduces the latest model-based approaches to large-scales system design. These approaches deal with design complexity in three fundamental ways. First, unnecessary complexity is removed from the system using abstraction techniques. Second, the design process is partitioned so that architectural, temporal, and physical aspects can be specified separately, but concurrently. Third, the impact of local decisions can be reflected on all aspects, permitting estimations of optimality. As a case-study, these tactics were applied to an important class of embedded systems (synchronous reactive). To make the discussion concrete, the presentation will cover the details of this case-study, including both the tool architectures and formal methods. In conclusion, model-based approaches encapsulate novel techniques to mitigate design complexity.