June 12, 2005
June 12, 2005
June 15, 2005
10.339.1 - 10.339.8
Concurrent System Design: Applied Mathematics & Modeling in Software Engineering Education Michael J. Lutz, James R. Vallino Rochester Institute of Technology
Introduction A hallmark of engineering design is the use of models to explore the consequences of design decisions. Sometimes these models are physical prototypes or informal drawings, but the sine qua non of contemporary practice is the use of formal, mathematical models of system structure and behavior. Whether circuit models in electrical engineering, heat-transfer models in mechanical engineering, or queuing theory models in industrial engineering, mathematics makes it possible to perform rigorous analysis that is the cornerstone of modern engineering.
Until recently, such modeling was impractical for software systems. Informal models abounded, such as those created in UML1, but rigorous models from which one could derive significant properties were either so rudimentary or so tedious to use that it was difficult to justify the incremental benefit in other than the most critical of systems. In part this is a reflection of the relative immaturity of software engineering, but it also reflects a key distinction between software and traditional engineering: whereas the latter builds on numerical computation and continuous functions, software is more appropriately modeled using logic, set theory, and other aspects of discrete mathematics. Most of the models stress relationships between software components, and numerical computation is the exception rather than the norm.
Recent advances in both theory and application have made it possible to model significant aspects of software behavior precisely, and to use tools to help analyze the resulting properties2,3,4. In this paper, we focus on a course developed by James Vallino and since taught and modified by Michael Lutz, to present formal modeling to our software engineering students at RIT. Our overall goals were three-fold: To acquaint our students with modern modeling tools, to connect the courses they take in discrete mathematics to real applications, and to persuade them that mathematics has much to offer to the engineering of quality software.
Concurrency and FSP: Models to Implementations Concurrency is a ripe area for formal modeling, in part because of the types of systems that embody concurrency. Real-time, safety-critical systems, for instance, often are structured using concurrent tasks. Failures in a safety-critical system are serious enough that the design may warrant more careful formal modeling than would be the case when developing standard desktop applications.
The first-year programming sequence that our students take introduces basic thread concepts including creation and synchronization. An ability to analyze, design and implement multi- threaded applications is an important skill area for current software engineering practice. The brief introduction our students receive in their first year describes the mechanisms that a Proceedings of the 2005 American Society for Engineering Education Annual Conference & Exposition Copyright © 2005, American Society for Engineering Education
Vallino, J., & Lutz, M. (2005, June), Concurrent System Design: Applied Mathematics & Modeling In Software Engineering Education Paper presented at 2005 Annual Conference, Portland, Oregon. 10.18260/1-2--15257
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2005 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015