Abstract
This paper analyses current principles of software development: from domains via requirements to design. On the basis of this analysis we outline a structure and contents of professional software engineering. From this we extract some requirements to a university graduate (M.Sc.) curriculum in software engineering. We summarise the four software engineering axes that we wish to emphasize in this paper:
software engineering as a responsible profession,
abstraction, linguistics and logic,
methodology, formal specification and design calculi,
domain, requirements and software design engineering.
We view (i) engineering as ‘walking the bridge between science and technology’ – with engineers using mathematics as and when appropriate, (ii) methods as ‘sets of principles for analysing problems and for selecting and applying techniques and tools in order to efficiently construct an efficient artifact (here software),’ and (iii) software engineering as consisting of ‘domain engineering, requirements engineering and software design (engineering)’ – with software development comprising all these stages and teams of engineers specially educated in sub-branches of software engineering. Since software engineering produces and consumes descriptions and since professional engineers create varieties of abstractions we conclude that they make use of varieties of formal specification languages and design calculi – to represent abstract and concrete descriptions and to calculate over and between these. The paper may be incomplete in not covering aspects of AI and knowledge based engineering. It also does not deal with the dimensioning and performance evaluation of hardware and software systems. The paper, in its attempt at a comprehensive analysis and proposal, is long. Our analysis subsumes that of ACM and IEEE [ACM/IEEE-CS June 1991] to which we add!
Similar content being viewed by others
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Bjørner, D., Cuéllar, J.R. Software engineering education: Rôles of formal specification and design calculi. Annals of Software Engineering 6, 365–409 (1998). https://doi.org/10.1023/A:1018969717835
Issue Date:
DOI: https://doi.org/10.1023/A:1018969717835