This Article 
 Bibliographic References 
 Add to: 
Object Analysis Patterns for Embedded Systems
December 2004 (vol. 30 no. 12)
pp. 970-992
Some of the most challenging tasks in building a software system are capturing, refining, and analyzing requirements. How well these tasks are performed significantly impacts the quality of the developed software system. The difficulty of these tasks is greatly exacerbated for the software of embedded systems as these systems are commonly used for critical applications, have to operate reliably for long periods of time, and usually have a high degree of complexity. Current embedded systems software development practice, however, often deals with the (requirements) analysis phase in a superficial manner, instead emphasizing design and implementation. This research investigates how an approach similar to the well-known design patterns, termed object analysis patterns, can be applied in the analysis phase of embedded systems development, prior to design and coding. Specifically, our research explores how object-oriented modeling notations, such as the Unified Modeling Language (UML), can be used to represent structural and behavioral information as part of commonly occurring object analysis patterns. This work also investigates how UML--based conceptual models of embedded systems, based on the diagram templates in the object analysis patterns, can be automatically analyzed using the Spin model checker for adherence to properties specified in linear-time temporal logic (LTL) using a previously developed UML formalization framework. We have applied these patterns to several embedded systems applications obtained from the automotive industry. This paper describes one of our case studies and illustrates how our approach facilitates the construction of UML-based conceptual models of embedded systems and the analysis of these models for adherence to functional requirements.

[1] Systems Modeling Language, http:/, 2004.
[2] M. Adams, J. Coplien, R. Gamoke, R. Hanmer, F. Keeve, and K. Nicodemus, “Fault-Tolerant Telecommunication System Patterns,” Proc. Second Conf. Pattern Language of Programs, Sept. 1995.
[3] H. Alavi, G. Avrunin, J. Corbett, L. Dillon, M. Dwyer, and C. Pasareanu, “A Specification Pattern System,” 2004, http:/
[4] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide. Addision-Wesley, 1999.
[5] F.P. Brooks, The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition. Addison Wesley Longman, 1995.
[6] M. Broy, “Requirements Engineering for Embedded Systems,” Proc. First Workshop Formal Design of Safety Critical Embedded Systems (FemSys), Apr. 1997.
[7] L.A. Campbell, “Enabling Integrative Analyses and Refinement of Object-Oriented Models with Special Emphasis on High-Assurance Embedded Systems,” PhD thesis, Michigan State Univ., East Lansing, 2004.
[8] L.A. Campbell, B.H.C. Cheng, W.E. McUmber, and R.E.K. Stirewalt, “Automatically Detecting and Visualizing Errors in UML Diagrams,” Requirements Eng. J., vol. 7, no. 4, pp. 264-287, 2002.
[9] B.H.C. Cheng, R.E.K. Stirewalt, M. Deng, and L. Campbell, “Enabling Validation of UML Formalizations,” Technical Report MSU-CSE-03-20, Dept. of Computer Science, Michigan State Univ., East Lansing, July 2003.
[10] P. Coad, D. North, and M. Mayfield, Object Models: Strategies, Patterns, and Applications, second ed. Yourdon Press, 1997.
[11] A. Dardenne, A. van Lamsweerde, and S. Fickas, “Goal-Directed Requirements Acquisition,” Selected Papers Sixth Int'l Workshop Software Specification and Design, pp. 3-50, 1993.
[12] R. Darimont and A. van Lamsweerde, “Formal Refinement Patterns for Goal-Driven Requirements Elaboration,” Proc. Fourth ACM SIGSOFT Symp. Foundations of Software Eng., pp. 179-190, 1996.
[13] B.P. Douglass, “Designing Real-Time Systems With UML-Part I,”, 1998.
[14] B.P. Douglass, Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns. Addison-Wesley, 1999.
[15] B.P. Douglass, Real-Time Design Patterns. Addison-Wesley, 2003.
[16] M.B. Dwyer, G.S. Avrunin, and J.C. Corbett, “Patterns in Property Specifications for Finite-State Verification,” Proc. 21st Int'l Conf. Software Eng., pp. 411-420, 1999.
[17] B. Emaus and B. Gruszczynski, “Society of Automotive Engineers (SAE) Embedded Software Activities Update,” 2003, SAE_Embedded_ software_activities_update31303.pdf .
[18], Realtime mantra, 2004, http://www.eventhelix. comRealtimeMantra .
[19] E. Fernandez, “Good Analysis as the Basis for Good Design and Implementation,” Technical Report TR-CSE-97-45, Florida Atlantic Univ., Sept. 1997.
[20] E.B. Fernandez and X. Yuan, “Semantic Analysis Patterns,” Proc. 19th Int'l Conf. Conceptual Modeling (ER 2000), pp. 183-195, 2000.
[21] M. Fowler, Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997.
[22] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
[23] A. Geyer-Schulz and M. Hahsler, “Software Engineering with Analysis Patterns,” 2001, /research/ virlib_working2001virlib/.
[24] H. Gomaa, Designing Concurrent, Distributed, and Real-Time Application with UML. Addison-Wesley, 2000.
[25] D. Gross and E.S.K. Yu, “From Non-Functional Requirements to Design through Patterns,” Requirements Eng., vol. 6, no. 1, pp. 18-36, 2001.
[26] C. Heitmeyer, J. Kirby Jr., B. Labaw, M. Archer, and R. Bharadwaj, “Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications,” IEEE Trans. Software Eng., vol. 24, no. 11, pp. 927-948, Nov. 1998.
[27] G.J. Holzmann, “The Model Checker SPIN,” IEEE Trans. Software Eng., vol. 23, no. 5, May 1997.
[28] I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process. Addison-Wesley Longman, 1999.
[29] W. Keller, “Object/Relational Access Layers— A Roadmap, Missing Links and More Patterns,” Proc. EuroPLoP 1998 Conf., July 1998.
[30] S. Konrad, “Defining and Using Requirements Patterns for Embedded Systems,” master's thesis, Michigan State Univ., East Lansing, Aug. 2003.
[31] S. Konrad, L.A. Campbell, and B.H.C. Cheng, “Adding Formal Specifications to Requirements Patterns,” Proc. Requirements for High Assurance Systems Workshop (RHAS '02), Sept. 2002.
[32] S. Konrad, L.A. Campbell, and B.H.C. Cheng, “Automated Analysis of Timing Information in UML Diagrams,” Proc. 19th IEEE Int'l Conf. Automated Software Eng. (ASE '04), Sept. 2004.
[33] S. Konrad, L.A. Campbell, B.H.C. Cheng, and M. Deng, “A Requirements Patterns-Driven Approach to Check Systems and Specify Properties,” Model Checking Software, Proc. 10th Int'l SPIN Workshop, T. Ball and S.K. Rajamani, eds., May 2003.
[34] S. Konrad and B.H.C. Cheng, “Requirements Patterns for Embedded Systems,” Proc. IEEE Joint Int'l Conf. Requirements Eng. (RE '02), Sept. 2002.
[35] S. Konrad, B.H.C. Cheng, and L.A. Campbell, “Object Analysis Patterns for Embedded Systems,” Technical Report MSU-CSE-04-29, Computer Science and Eng., Michigan State Univ., East Lansing, Oct. 2004.
[36] S. Konrad, B.H.C. Cheng, L.A. Campbell, and R. Wassermann, “Using Security Patterns to Model and Analyze Security Requirements,” Proc. Requirements for High Assurance Systems Workshop (RHAS '03), Sept. 2002.
[37] D. Lea, “Design Patterns for Avionics Control Systems,” Technical Report ADAGE-OSW-94-01, DSSA Adage Project, 1994.
[38] Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag, 1992.
[39] W.E. McUmber and B.H.C. Cheng, “UML-Based Analysis of Embedded Systems Using a Mapping to VHDL,” Proc. IEEE High Assurance Software Eng. Conf. (HASE '99), Nov. 1999.
[40] W.E. McUmber and B.H.C. Cheng, “A General Framework for Formalizing UML with Formal Languages,” Proc. IEEE Int'l Conf. Software Eng. (ICSE '01), May 2001.
[41] Proc. Patterns in Distributed Real-Time and Embedded Systems Workshop, Oct. 2001.
[42] Proc. Ninth Conf. Pattern Language of Programs, Sept. 2002.
[43] Proc. Patterns in Distributed Real-Time and Embedded Systems Workshop, Nov. 2002.
[44] S. Robertson, “Requirements Patterns via Events/Use Cases,” 1996, Requirements_ Patterns.html.
[45] K. Ryan, “The Role of Natural Language in Requirements Engineering,” Proc. IEEE Int'l Symp. Requirements Eng., pp. 240-242, 1993.
[46] M. Shaw, “Some Patterns for Software Architectures,” Pattern Languages of Program Design vol. 2, pp. 255-269, 1996.
[47] C.D. Sigwart, G.L.V. Meer, and J.C. Hansen, Software Engineering: A Project Oriented Approach. J. Leisy Jr., Franklin, Beedle, and Assoc., 1990.
[48] A.R. Silva, “DASCo Project— Development of Distributed Applications with Separation of Concerns,” 2000, http://www.esw.
[49] A.G. Sutcliffe, N.A. Maiden, S. Minocha, and D. Manuel, “Supporting Scenario-Based Requirements Engineering,” Software Eng., vol. 24, no. 12, pp. 1072-1088, Dec. 1998.
[50] A. Torre, “Project Specifications for Diesel Filter System and Electronically Controlled Steering System,” 2000, http://www. ProjectsF00-Cheng/.
[51] A. Torre, Diagnostic patterns, private comm., May 2003.
[52] A. Torre and J. Bowers, “Project Specifications for Anti-Lock Brake System and Adaptive Cruise Control System,” 2001, http://www. /.
[53] T. van Sickle, Reusable Software Components. Prentice Hall, 1997.

Index Terms:
Object-oriented modeling, embedded systems, requirements, patterns, conceptual modeling, object analysis, formal specification, model checking.
Sascha Konrad, Betty H.C. Cheng, Laura A. Campbell, "Object Analysis Patterns for Embedded Systems," IEEE Transactions on Software Engineering, vol. 30, no. 12, pp. 970-992, Dec. 2004, doi:10.1109/TSE.2004.102
Usage of this product signifies your acceptance of the Terms of Use.