We summarize the results of a survey of software practitioners in which we asked about the relevance of their education. We analyze the data and highlight potential changes to computer science or software engineering ...
详细信息
We summarize the results of a survey of software practitioners in which we asked about the relevance of their education. We analyze the data and highlight potential changes to computer science or software engineering curricula, based on mismatches between the extent to which the topic is taught and its importance in the careers of the participants. We also present some advice to companies regarding topics in which they should train employees;we compare this advice to a list of skills that employers have indicated they wish employees to possess.
Formal methods is seen as a means of applying scientific knowledge to software construction, thereby legitimating the use of mathematics within software engineering. However, the software engineering community faces n...
详细信息
Formal methods is seen as a means of applying scientific knowledge to software construction, thereby legitimating the use of mathematics within software engineering. However, the software engineering community faces numerous challenges before an effective transfer of this formal methods technology can take place because of the level of skill, expertise and effort required in their application. It is argued that at present the use of formal notations for system specification is a mature technology offering the greatest leverage. The relative benefits of a declarative approach with a "getting it right the first time" maxim versus an imperative approach coupled with an exploratory trial and error flavour are explored. Detailed characteristics of a teaching and learning environment developed to support the latter approach are provided. Its varied uses in the context of teaching and learning within undergraduate and postgraduate courses in software engineering are discussed. Exemplars from these uses show how users of the environment explore formal specifications to improve their understanding of specification and thereby illustrate the effectiveness of the environment. Implications of our approach on technology transfer and training are briefly explored.
software engineering is entering the educational mainstream at a time when budgets are tight, growth opportunities are limited, and existing disciplines are fighting to retain their share of a shrinking educational pi...
详细信息
software engineering is entering the educational mainstream at a time when budgets are tight, growth opportunities are limited, and existing disciplines are fighting to retain their share of a shrinking educational pie. This paper discusses some of the fundamental reasons why this situation is not likely to improve, and addresses ways software engineering can utilize modern computing and communication technology to overcome these limitations and, indeed, to lead the way in innovative education.
This paper describes how we have modified a software engineering stream within a computer science course to include broader concepts of systems engineering. We justify this inclusion by showing how many reported probl...
详细信息
This paper describes how we have modified a software engineering stream within a computer science course to include broader concepts of systems engineering. We justify this inclusion by showing how many reported problems with large systems are not just software problems but relate to system issues such as hardware and operational processes. We describe what we mean by 'systems engineering' and go on to discuss the particular course structure which we have developed. We explain, in some detail, the contents of two specific systems engineering courses (software Intensive Systems Engineering and Critical Systems Engineering) and discuss the problems and challenges we have faced in making these changes. In the appendix, we provide details of the case studies which are used as linking themes in our courses.
作者:
Parnas, DLMcMaster Univ
Fac Engn Dept Comp & Software MSERC Bell Ind Res Chair Software Engn Hamilton ON L8S 4K1 Canada
Programmes in "software Engineering" have become a source of contention in many universities. Some computer Science departments, many of which have used that phrase to describe individual courses for decades...
详细信息
Programmes in "software Engineering" have become a source of contention in many universities. Some computer Science departments, many of which have used that phrase to describe individual courses for decades, claim software engineering as part of their discipline. However, Engineering faculties claim "software Engineering" as a new speciality in the family of engineering disciplines. This paper discusses the differences between traditional computer science programmes and most engineering programmes and argues that we need programmes that follow the traditional engineering approach to professional education and educate engineers whose speciality within engineering is software construction. One such programme is described.
software engineering education has a 30-year history. It is a story of academics struggling to fulfill industry needs with almost no support from computer science curriculum designers. It is a story of industry finall...
详细信息
software engineering education has a 30-year history. It is a story of academics struggling to fulfill industry needs with almost no support from computer science curriculum designers. It is a story of industry finally winning over some of academia to teach software engineering rather than vanilla computer science. It is a story of a discipline still incomplete, but having made great strides in the last decade. This paper discusses the succeeding eras of software engineering education, from lone teachers to master's curricula to undergraduate degree programs. Even though the maturity of the discipline is as yet unattained, it will achieve adult status through practice, not by waiting for academia to glacially catch up.
This paper presents work that has been done in bringing patterns and pattern languages into undergraduate and postgraduate curricula in software engineering. Patterns are masterful designs that solve a real problem;th...
详细信息
This paper presents work that has been done in bringing patterns and pattern languages into undergraduate and postgraduate curricula in software engineering. Patterns are masterful designs that solve a real problem;they provide students with real, concrete examples of best practises and masterful software solutions they can utilize and emulate. A pattern language is a modular and adaptive methodology;it is appropriate for the dynamic discipline of software engineering. The paper outlines aspects of a curriculum used at the Royal Melbourne Institute of Technology;it also provides student and staff feedback.
This paper describes the development of an undergraduate degree programme in software engineering over the ten year period from 1988 to 1998. Particular emphasis is given to the fundamental principles that have been e...
详细信息
This paper describes the development of an undergraduate degree programme in software engineering over the ten year period from 1988 to 1998. Particular emphasis is given to the fundamental principles that have been established to guide the creation and evolution of this programme during this period, and to ensure that it has been distinctively a course in software engineering rather than in any other branch of computing. To this end, the fundamental engineering characteristics of the programme are compared with those of undergraduate courses in other branches of engineering. Desirable future developments in this programme are then discussed, and finally the different principles identified in the paper are evaluated.
The article focuses on Java, a computer programming language, and its specific features that, according to the author, are rather fantastic abstractions of many programming paradigms. The author argues that while the ...
详细信息
The article focuses on Java, a computer programming language, and its specific features that, according to the author, are rather fantastic abstractions of many programming paradigms. The author argues that while the often much touted advantage of java has been its platform independence, other utilities that it offers as a programming language, have largely been ignored. Java's automatic memory management, operating system abstractions and familiar low-level syntax, for system programmers, make it a highly productive environment. Java, moreover, includes classic data structures such as binary trees, hash tables and user-interface components like buttons, checkboxes and scrollbars, which are but a few utilities that Java offers as a hoard of Plug-in Components. The author further holds that much of Java's popularity can duly be attributed to the increasing need for a new programming language that was already there for a long time. Despite having so many impressive traits, Java is a rather slow language in terms of execution, which can be attributed to a whole lot of technical reasons.
As a recognized discipline, software engineering traces its roots back to the 1968 NATO conference where the term was first used extensively to highlight the need for an engineering approach to the development of soft...
详细信息
As a recognized discipline, software engineering traces its roots back to the 1968 NATO conference where the term was first used extensively to highlight the need for an engineering approach to the development of software. In the 30 years since that first "software engineering" conference, significant attempts have been made to improve the overall effectiveness of the softwaredevelopment process, and thus reduce the frequency and severity of software project failures. A major part of this improvement effort has been the attempt to develop quantitative measures which can be used to more accurately describe and better understand and manage the softwaredevelopment life cycle. Thus, many software metrics and models have been introduced during this period. In this article, we briefly trace the history of the development of software metrics and models, and then summarize the current state of the field. For discussion purposes, this entire development period is then arbitrarily divided into an Introductory Period (1971-1985), Growth Period (1985-1997) and the Current Period (1997-?). The development of metrics during each of these periods is then related to the treatment of software metrics and models in software engineering curricula during that same period. Our conclusion is that software engineering curricula have indeed reflected the state of software engineering as the work in software metrics and models has progressed. Furthermore, software engineering curricula of the future should reflect the relatively mature state that software metrics have attained, by covering the basic concepts of metrics in appropriate core courses, and more advanced metrics topics in a specialized, elective metrics course.
暂无评论