Abstract
According to OMG, “modeling is the designing of software applications before coding.” This paper describes a modeling approach to software design. The paper describes the key elements of design methods for component based software product lines, which promote reuse, variability management, and evolution. Approaches for executable models and performance analysis of concurrent and real-time design are discussed. Finally, some outstanding challenges are outlined, in particular the design of evolutionary and dynamically reconfigurable software architectures.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison Wesley, Reading (2003)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.: Pattern Oriented Software Architecture: A System of Patterns. John Wiley & Sons, Chichester (1996)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley, Reading (2002)
Gomaa, H., Kerschberg, L., Sugumaran, V., Bosch, C., Tavakoli, I.: A Knowledge-Based Software Engineering Environment for Reusable Software Requirements and Architectures. Journal of Automated Software Engineering 3, 285–307 (1996)
Gomaa, H., O’Hara, E.: Dynamic Navigation in Multiple View Software Specifications and Designs. Journal of Systems and Software 41, 93–103 (1998)
Gomaa, H., Farrukh, G.A.: Methods and Tools for the Automated Configuration of Distributed Applications from Reusable Software Architectures and Components. IEE Proceedings – Software 146(6) (December 1999)
Gomaa, H.: Designing Concurrent, Distributed, and Real-Time Applications with UML. Addison-Wesley Object Technology Series (2000)
Gomaa, H., Menasce, D., Shin, E.: Reusable Component Interconnection Patterns for Distributed Software Architectures. In: Proceedings ACM Symposium on Software Reusability, Toronto, Canada, May 2001, pp. 69–77. ACM Press, New York (2001)
Gomaa, H., Hussein, M.: Software Reconfiguration Patterns for Dynamic Evolution of Software Architectures. In: Proc. Fourth Working IEEE/IFIP Conference on Software Architecture, Oslo, Norway (June 2004)
Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-based Software Architectures. Addison-Wesley Object Technology Series (2005)
Gomaa, H., Saleh, M.: Feature Driven Dynamic Customization of Software Product Lines. In: Morisio, M. (ed.) ICSR 2006. LNCS, vol. 4039, pp. 58–72. Springer, Heidelberg (2006)
Gomaa, H., Menasce, D.: Performance Engineering of Component-Based Distributed Software Systems. In: Dumke, R.R., Rautenstrauch, C., Schmietendorf, A., Scholz, A. (eds.) WOSP 2000 and GWPESD 2000. LNCS, vol. 2047, Springer, Heidelberg (2001)
Gomaa, H., Shin, M.E.: A Multiple-View Meta-Modeling Approach for Variability Management in Software Product Lines. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 274–285. Springer, Heidelberg (2004)
Griss, M., Favaro, J., d’Alessandro, M.: Integrating Feature Modeling with the RSEB. In: Devanbu, P., Poulin, J. (eds.) Fifth Intl. Conf. on Software Reuse: Proc., Victoria, BC, Canada, June 1998, pp. 1–10. IEEE Computer Soc. Press, Los Alamitos (1998)
Harel, D., Gary, E.: Executable Object Modeling with Statecharts. In: Proc. 18th International Conference on Software Engineering, Berlin (March 1996)
Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture, Process and Organization for Business Success. Addison-Wesley, Reading (1997)
Kang, K.C., et al.: Feature-Oriented Domain Analysis, Technical Report No. CMU/SEI-90-TR-21, Software Engineering Institute (November 1990)
Magee, J., Dulay, N., Kramer, J.: Regis: A Constructive Development Environment for Parallel and Distributed Programs. Journal of Distributed Systems Engineering, 304–312 (1994)
Menasce, D., Gomaa, H.: A Method for Design and Performance Modeling of Client/Server Systems. IEEE Transactions on Software Engineering 26(11), 1066–1085 (2000)
Parnas, D.: Designing Software for Ease of Extension and Contraction. IEEE Transactions on Software Engineering (March 1979)
Pettit, R., Gomaa, H.: Modeling Behavioral Design Patterns of Concurrent Objects. In: Proc. International Conf. on Software Engineering, Shanghai, China (May 2006)
Rumbaugh, J., Booch, G., Jacobson, I.: The Unified Modeling Language Reference Manual, 2nd edn. Addison Wesley, Reading (2005)
Webber, D., Gomaa, H.: Modeling Variability in Software Product Lines with the Variation Point Model. Journal of Science of Computer Programming 53(3), 305–331 (2004)
Weiss, D.M., Lai, C.T.R.: Software Product-Line Engineering: A Family-Based Software Development Process. Addison Wesley, Reading (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gomaa, H. (2006). A Software Modeling Odyssey: Designing Evolutionary Architecture-Centric Real-Time Systems and Product Lines. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds) Model Driven Engineering Languages and Systems. MODELS 2006. Lecture Notes in Computer Science, vol 4199. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11880240_1
Download citation
DOI: https://doi.org/10.1007/11880240_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-45772-5
Online ISBN: 978-3-540-45773-2
eBook Packages: Computer ScienceComputer Science (R0)