Abstract
Domain engineering can be seen as the process of identifying a domain API, providing its semantics, and structuring it. The domain API is a natural framework for software product line requirements and development. Magnolia is an integrated programming and algebraic specification language. As such it gives a strong focus on API design. The Magnolia way to domain engineering can be scaled from a lightweight to a formalistic heavyweight approach. Defined APIs can easily be extended as more of the domain is investigated. This paper summarises the Magnolia domain engineering process.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Taken from http://www.domainengineering.org spring 2012. This URL is now under control of an internet domain warehouse and has totally irrelevant content.
- 2.
- 3.
References
Bagge, A.H., David, V., Haveraaen, M.: Testing with axioms in C++ 2011. J. Object Technol. 10(10), 1–32 (2011). https://doi.org/10.5381/jot.2011.10.1.a10
Beck, K.: Test-Driven Development: By Example. Addison-Wesley, Boston (2002)
Bergstra, J.A., Tucker, J.: Algebraic specifications of computable and semicomputable data types. Theor. Comput. Sci. 50, 137–181 (1987). https://doi.org/10.1016/0304-3975(87)90123-X
Bernardy, J.-P., Jansson, P., Claessen, K.: Testing polymorphic properties. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 125–144. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-11957-6_8
Bjørner, D.: The Vienna Development Method (VDM). In: Blum, E.K., Paul, M., Takasu, S. (eds.) Mathematical Studies of Information Processing. LNCS, vol. 75, pp. 326–359. Springer, Heidelberg (1979). https://doi.org/10.1007/3-540-09541-1_33
Bjørner, D.: Manifest domains: analysis and description. Formal Aspects Comput. 29(2), 1–51 (2016). https://doi.org/10.1007/s00165-016-0385-z
Favre, J.-M., Lämmel, R., Schmorleiz, T., Varanovich, A.: 101companies: a community project on software technologies and software languages. In: Furia, C.A., Nanz, S. (eds.) TOOLS 2012. LNCS, vol. 7304, pp. 58–74. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-30561-0_6
Foust, G., Järvi, J., Parent, S.: Generating reactive programs for graphical user interfaces from multi-way dataflow constraint systems. In: Kästner, C., Gokhale, A.S. (eds.) Proceedings of GPCE 2015, Pittsburgh, PA, USA, 26–27 October 2015, pp. 121–130. ACM (2015). https://doi.org/10.1007/978-3-642-30561-0_6
Goguen, J.A.: Reusing and interconnecting software components. Computer 19(2), 16–28 (1986). https://doi.org/10.1109/MC.1986.1663146
Goguen, J.A., Burstall, R.M.: Institutions: abstract model theory for specification and programming. J. ACM 39(1), 95–146 (1992). https://doi.org/10.1145/147508.147524
Haveraaen, M., Friis, H.A., Johansen, T.A.: Formal software engineering for computational modelling. Nordic J. Comput. 6(3), 241–270 (1999)
Hjørland, B.: Domain analysis in information science: Eleven approaches - traditional as well as innovative. J. Doc. 58(4), 422–462 (2002). https://doi.org/10.1108/00220410210431136
Hoare, C.A.R.: Proof of correctness of data representations. In: Bauer, F.L., Dijkstra, E.W., Ershov, A., Griffiths, M., Hoare, C.A.R., Wulf, W.A., Samelson, K. (eds.) Language Hierarchies and Interfaces. LNCS, vol. 46, pp. 183–193. Springer, Heidelberg (1976). https://doi.org/10.1007/3-540-07994-7_54
Robertson, J.: Eureka! Why analysts should invent requirements. IEEE Softw. 19(4), 20–22 (2002). https://doi.org/10.1109/MS.2002.1020281
Stepanov, A., McJones, P.: Elements of Programming, 1st edn. Addison-Wesley Professional, Boston (2009)
Terho, H., Suonsyrjä, S., Jaaksi, A., Mikkonen, T., Kazman, R., Chen, H.: Lean startup meets software product lines: Survival of the fittest or letting products bloom? In: Nummenmaa, J., Sievi-Korte, O., Mäkinen, E. (eds.) Proceedings of SPLST 2015. CEUR Workshop Proceedings, vol. 1525, pp. 134–148. CEUR-WS.org (2015). http://ceur-ws.org/Vol-1525/paper-10.pdf
Tüzün, E., Tekinerdogan, B.: Analyzing impact of experience curve on ROI in the software product line adoption process. Inf. Softw. Technol. 59, 136–148 (2015). https://doi.org/10.1016/j.infsof.2014.09.008
Acknowledgment
This research has in part been financed by The Research Council of Norway through the project Design of a Mouldable Programming Language (DMPL). The Magnolia IDE and compiler was implemented by Anya Bagge during her postdoc for DMPL.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Haveraaen, M. (2018). Domain Engineering the Magnolia Way. In: Petrenko, A., Voronkov, A. (eds) Perspectives of System Informatics. PSI 2017. Lecture Notes in Computer Science(), vol 10742. Springer, Cham. https://doi.org/10.1007/978-3-319-74313-4_15
Download citation
DOI: https://doi.org/10.1007/978-3-319-74313-4_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74312-7
Online ISBN: 978-3-319-74313-4
eBook Packages: Computer ScienceComputer Science (R0)