Software Engineering - CiteSeerX

13 downloads 335402 Views 32KB Size Report
Mar 27, 1997 - engineering degree programs in higher education, the formulation of .... degree from a program by the Computer Sciences Accreditation Board.
The Challenge of Curriculum Modeling for an Emerging Discipline: Software Engineering Donald J. Bagert Department of Computer Science Texas Tech University Lubbock TX 79409-3104 Abstract - There are several critical issues facing the area of software engineering as it moves towards being generally recognized as a distinct engineering discipline, including the formulation of a Body of Knowledge, the development of curriculum models, the accreditation of software engineering degree programs in higher education, the formulation of a code of ethics and professional practice for the discipline, and the licensing of professional engineers in software engineering. All of these areas have major efforts currently going on, some of which affect only the United States, with others having global impact. One effort with possible worldwide ramifications is the Guidelines for Software Education currently being developed by the Working Group for Software Engineering Education and Training. The first task of the team the writing the Guidelines is to develop a detailed undergraduate software engineering curriculum model. This paper will discuss how current efforts in other areas such as the body of knowledge, licensing and accreditation are impacting upon the formulation of the Guidelines. The second task of the Guidelines team is to show how software engineering fits within the larger concept of software education across computing disciplines. In this regard, the Guidelines will demonstrate how software engineering fits into computer science, computer engineering, and software engineering curricula. This paper will therefore also provide some background concerning developments in software education that have both inspired and impact the Guidelines.

Educational Activities Board approved guidelines for software engineering for forwarding to ABET (as reported in [5]) for a vote in July, and work progressed on the formulation of software engineering Body of Knowledge. During the next two years, several more major milestones in the development of software engineering are expected. It is within this framework that undergraduate software engineering curriculum models need to be formulated. One such effort is the Guidelines for Software Education currently being developed by the Working Group for Software Engineering Education and Training. (The Working Group consists of a number of individuals from academia, industry, and government working together to improve the state of software engineering education and training.) The first task of the Working Group team the writing the Guidelines is to develop a detailed undergraduate software engineering curriculum model. The second task of the Guidelines team is to show how software engineering fits within the larger concept of software education across computing disciplines. The primary task of this paper is not to discuss the details of the Guidelines itself (this is already done in [7], [12] and [14]), but to provide some background information on related software engineering professional issues such as licensing and accreditation (presented in Section 2), software education across computing curricula (Section 3), and also show how it relates to the development of the Guidelines (Section 4). Finally, Section 5 provides a summary.

1. Introduction

2. Background on Professional Issues

There has been an enormous amount of change during the last year in the field of software engineering. This has occurred in five significant areas: licensing, curriculum models, accreditation, a code of ethics and professionalism, and the formulation of Body of Knowledge (BoK). Although work in many of these areas has been going on for several years, things began in earnest in 1997. ABET asked IEEE for help in formulating accreditation guidelines [1], the Texas Board of Professional Engineers formed an advisory committee on software engineering [10], and a Joint IEEEACM Task Force released the draft of a Code of Ethics and Professional Practice [11]. In 1998 (to date), the Texas Board of Professional Engineers voted unanimously to start licensing professional engineers (PEs) in software engineering [6], the IEEE

The discussion of professional issues currently being addressed in software engineering is divided below into sections on licensing, accreditation, the body of knowledge, and ethics & professional practices. 2.1 Licensing The licensing issue in the United States is a complex one, handled on a state-by-state level, with a considerable amount of cooperation and consistency between state boards empowered to license engineers. At the time of this writing, only Texas has voted to license professional engineers (PEs) in the field of software engineering. There have been a number of papers that have provided excellent background as regarding the general issues

involving licensing and certification of professionals in the area of software engineering, including [13] and [17]. Readers wanting a broader understanding of licensing issues are referred to those documents; this paper will focus on the efforts by the state of Texas. The Texas Board of Professional Engineers has recently been addressing the licensing issue for those people that practice in the field of software engineering. After several committee meetings, the Texas Board met on 18 February 1998, with software engineering on its agenda. Shortly after, Dave Dorchester, chair of the Board licensing committee, issued the following statement: "At today's State Board meeting the Board unanimously voted to approve the following statement: 'The Board officially recognizes the discipline of Software Engineering as having a sufficiently distinct knowledge base to allow licensing for engineers experienced in that knowledge base. Further[more] the Board will move forward with the development of rules to implement this intent, and support all state and national efforts to develop accredited educational programs and professional examinations.' "Under state rules this is now a proposal that will be published in the Texas Register for public comment and at the June meeting can be voted on for final approval." On 17 June 1998, this final vote was taken, and Texas became the first state in the U.S. to officially recognize software engineering as a professional engineering discipline. (They were scheduled to start accepting applications starting in August 1.) The work of the Texas Board began with the appointment of Software Engineering Advisory Committee in November 1997 [10]. The first charge of the committee was to formulate a one-sentence definition of software engineer that could be used for the purposes of licensing, which was later expanded into the following language (which was approved at the aforementioned 17 June 1998 meeting): "The practice of software engineering will mean a service or creative work such as analysis, design, or implementation of software systems, the adequate performance of which requires appropriate education, training or experience. Such education, training or experience shall include an acceptable combination of: computer sciences such as computer organization, algorithm analysis and design, data structures, concepts of programming languages, operating systems, and computer architecture; software design and architecture; discrete mathematics; embedded and real-time systems; or 1

This paper is being submitted for publication in late June 1998.

other engineering education. Such creative work will demonstrate the application of mathematical, engineering, physical or computer sciences to activities such as real-time and embedded systems; information or financial systems, user interfaces, and networks." There has been a great deal of discussion on the issues over the Internet [4]. The most insightful messages have been those that have pointed out some of the implementation problems, due to the uniqueness of software as a nonphysical entity, and because of the current state of the industry. There are still many obstacles to be overcome to fully implement professional engineering licensing in the area of software engineering. There are three categories of license requirements: education, experience, and examinations. There are few problems with the experience category, but work needs to be done in the other two areas. Since this paper is concerned with curriculum issues, it will only address the education obstacles; some of the examination issues are addressed in [6]. The Texas Board prefers that education be through an ABET-accredited engineering program, of which there are none in software engineering at this time. However, although the accreditation issue is being addressed (see Section 2.2), currently there are no undergraduate and few graduate software engineering programs in the U.S., and none of them are currently accredited by ABET. If a person does not have a degree from an ABETaccredited engineering program, it must be from an approved "non-accredited" program, which includes a ABETaccredited technology program, or a Bachelor's Degree or graduate degree in a mathematical, physical, or engineering science approved by the Board [15, p.23]. (Four additional years of work experience are needed for approved nonaccredited degrees as compared to ABET-accredited engineering degrees.) The Board Rules state what needs to be the curriculum of such a degree program; on 17 June 1998, they amended those rules so that a degree from a program by the Computer Sciences Accreditation Board (CSAB) is also automatically considered an approved "nonaccredited" program. Therefore, the way is open for the eventual licensing of many current software practitioners as professional engineers in Texas, with other states likely to follow in the near future.

2.2 Accreditation As previously stated, in mid-1997 ABET asked IEEE for help in formulating accreditation guidelines. The IEEE Educational Activities Board (EAB) met on 14 February 1998 and recommended the draft program criteria for approval and submission by IEEE to the ABET Engineering Accreditation Commission for consideration at its July 1998 meeting. If ABET approved the criteria at that time, the criteria for software engineering programs will become effective on 1 January 1999, and be available for evaluation of programs under this criteria starting in Fall 1999. The Proposed Program Criteria is provided in its entirety in Appendix A. In part, the criteria state that "Graduates must demonstrate the ability to analyze, design, verify, validate, implement, apply, and maintain software systems." It is has been noted by others that nothing is said here about understanding software processes, which has concerned some people in the field. Later, the criteria state that "Graduates must demonstrate the ability to apply appropriately discrete mathematics…" This supports the inclusion of discrete math in the definition of software engineering from Section 2.1. Although it is not explicitly stated in the proposed criteria, it is intended that initially, this criteria be primarily used for the accreditation of advanced (Master's level) software engineering programs [5]. In anticipation of eventual undergraduate software engineering programs requiring accreditation, some work has been also done in this area. As part of the efforts of the IEEE-ACM Joint Steering Committee for the Establishment of Software Engineering as a Profession, an Education Task Force was established in 1997. This Task Force was charged with the development of a program in Software Engineering Education based on the initial work of the Task Force on the Body of Software Engineering Knowledge (see Section 2.3). The first effort has been the development of draft accreditation criteria for undergraduate programs in software engineering [18]. This set of accreditation criteria is more detailed than the IEEE proposal that was forwarded to ABET. It does include a discussion of software processes, and mentions many of the computer science courses conjectured as "engineering sciences" by the author in Section 2.1. 2.3 The Body of Knowledge The BoK formulation is one that is critical to the current progression of software engineering as a discipline. A major concern of the Texas Board of Professional Engineers is that no professional organization had yet defined a Body of Knowledge for Software Engineering. At a meeting of the Texas Board Licensing Committee on 18 November 1997 [10], Dennis Frailey, who is the Vice Chair of the Joint IEEE Computer Society and ACM Steering Committee for the Establishment of Software Engineering as a Profession, discussed that committee's The Task Force on Body of Software Engineering Knowledge, and the pilot survey that

they have run [8]. He also stated that the committee felt that a more extensive study was needed, but could only be fulfilled by having permanent staff (employed, presumably, by IEEE-CS and ACM) dedicated to doing so. A second committee was subsequently formed by IEEE-CS to study the need for a Body of Knowledge formulation [9], and hopes to have a draft BoK available in the near future. 2.4 Ethics and Professional Practices The aforementioned Joint IEEE Computer Society and ACM Steering Committee for the Establishment of Software Engineering as a Profession has had its most success to date with the development of a draft Code of Ethics and Professional Practices [11]. However, it has been noted that the "professional practices" component of this document has less breadth and depth than that of other engineering disciplines. This is likely because of the previouslydiscussed lack of a widely-used Body of Knowledge.

3. Software Education Over the past decade, the computing education field has become an increasingly fragmented system. One sign of this was that Computer Curricula 91 [16] was designed to include computer science and computer engineering, but not information systems. However, information systems programs continue to teach software at all levels of the curriculum. During the 1990's, computer engineering has drawn increasingly close to electrical engineering, usually within a Department of Electrical and Computer Engineering (ECE), at the expense of computer science. (In fact, the recent ABET requirements for electrical engineering and computer engineering are virtually identical.) The increased interest in software engineering as a separate field of study only increases this fragmentation. At some universities, where computer science is not housed in engineering, computer science cannot offer courses using the term "engineering", while a few ECE departments are starting their own software engineering programs, with little or no input from computer science. Irrespective of where they are housed, many computer science programs feel the increasing need to teach engineering principles as they relate to the development of software. For many years, students majoring in engineering and other non-computing disciplines have also been taught programming. This instruction is usually in non-major courses offered by computer science or information systems, or even taught within the individual departments. This instruction is often from a very language-oriented view, which provides a very limited understanding of how software applications are constructed today. To summarize the above paragraphs: software is being taught in a number of departments, to a diverse audience, using a wide variety of methods (some better than others). Recently, some academicians have recognized the problems that this situation causes for software education. Software

education, as defined here, means the education within an academic setting of students concerning issues related to the definition, development, and maintenance of software. The major questions that need to be addressed in software education are: {symbol 183 \f "Symbol" \s 10} What common features should software education have across disciplines? {symbol 183 \f "Symbol" \s 10} What is the role of engineering principles in software education? In an attempt to answer some of these questions, a workshop entitled "Software Education 2000: Computing at the Crossroads" was held at the 1998 Conference on Software Engineering Education and Training [2], with presenters representing CSAB, ABET, the Texas Board of Professional Engineers, the IEEE-ACM Joint Task Force on software engineering, and speakers representing the Guidelines on Software Education team, IS '97 (the new information sciences model curriculum), and CS programs in liberal arts institutions. A workshop summary and follow-up is in [3].

4. Relationship to the Guidelines The objectives of the Guidelines for Software Education project are: 1.

2. 3. 4.

Promote acceptance of software engineering as a discipline among professionals in education and industry that will improve software education in all institutions at all levels. Encourage greater uniformity in software education within and across disciplines. Provide a coherent, structured description of software engineering concepts, knowledge, and practices that supports education curriculum development. Develop a model curriculum for software engineering that can be applied in whole, or part, for the development of undergraduate software education programs.

The set of "Software Engineering Knowledge Components", which will be used to define the curriculum models in detail, as revised in the February 1998 meeting of the Guidelines team, were divided into four areas: SE Core Components Recurring Components SE Foundation Components Supporting Components More information concerning these components can be found in [12] and [14]. The professional issues discussed in Section 2 affect the Guidelines in several ways. The Body of Knowledge as defined by licensing guidelines affects the curricula for both ABET-accredited software engineering and CSAB-accredited computer science programs. Software engineering program

accreditation criteria would also obviously affect the nature of the curriculum. Finally, a widely-accepted Body of Knowledge for software engineering would be very valuable to the formulation of curriculum content. The concepts embodied in software education not only affect the Guidelines, but partially inspired it. The recent investigations into the concept of software education have indicated that there is a common core between the different computing disciplines, one that is not being taken advantage of currently at most higher education institutions. However, it does appear that a software engineering component can be successfully defined for computer science, computer engineering, and information systems curricula.

5. Summary and Future Directions There are several critical issues facing the area of software engineering as it moves towards being generally recognized as a distinct engineering discipline, including licensing, accreditation, and the formulation of a Body of Knowledge. Each of these issues affects efforts to formulate undergraduate software engineering curriculum models. One such effort is the Guidelines for Software Education currently being developed by the Working Group for Software Engineering Education and Training. The first task of the team the writing the Guidelines is to develop a detailed undergraduate software engineering curriculum model. The second task of the Guidelines team is to show how software engineering fits within the larger concept of software education across computing disciplines. Current efforts in licensing, accreditation, the BoK formulation, and software education have affected the formulation of the Guidelines. The near-future of some issues related to curriculum model development are more certain than others. Texas will start licensing PEs in software engineering in August 1998, and it appears that likely that ABET will start accrediting software engineering programs in 1999-2000. How quickly a Body of Knowledge will be established, and licensing examinations can be formulated, is less certain. It is the intention of Working Group team to have a draft of a detailed undergraduate software engineering curriculum model available for review by the public by 1999. This team also hopes to work with the IEEE-ACM Software Engineering Education Task Force (Section 2.2), who also has as its goal the development of a software engineering undergraduate model.

Appendix A Proposed Software Engineering Accreditation Criteria [The Proposed Program Criteria below was passed out by Gerald Engel to the audience at the SIGCSE Birds-of-aFeather session titled "Guidelines for Software Education: An Overview" on 26 February 1998.] DRAFT PROGRAM CRITERIA FOR SOFTWARE ENGINEERING AND SIMILARLY NAMED ENGINEERING PROGRAMS SUBMITTED BY THE INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS INCORPORATED FEBRUARY 5, 1997 (MAY 16; DECEMBER DECEMBER 19; JANUARY 17, 1998)

9;

These program criteria apply to engineering programs that include software or similar modifiers in their titles. Curriculum The curriculum must provide both breadth and depth across the range of engineering and computer science topics implied by the title and objectives of the program. Graduates must demonstrate the ability to analyze, design, verify, validate, implement, apply, and maintain software systems. Graduates must demonstrate the ability to apply appropriately discrete mathematics, probability and statistics, and relevant topics in computer and management sciences to complex software systems. References [1] Bagert, D., "ABET Asks the IEEE to Look at Software Engineering Accreditation," FASE, Vol. 7, No. 1, August 1997. (http://www.cs.ttu.edu/fase/v7n01.txt) [2] Bagert, D., "Software Education 2000: Computing at the Crossroads," Proceedings of the Eleventh Conference on Software Engineering Education and Training, 22-25 February 1998, Atlanta GA, pp. 165167. [3] Bagert, D., "Software Education," FASE, Vol. 8, No. 3, March 1998. (http://www.cs.ttu.edu/fase/v8n03.txt) [4] Bagert, D., "Reaction to Texas State Board's Vote, and Some Q&A," FASE, Vol. 8, No. 3, March 1998. (http://www.cs.ttu.edu/fase/v8n03.txt) [5] Bagert, D., "IEEE Submits Proposed SE Program Criteria to ABET," FASE, Vol. 8, No. 3, March 1998. (http://www.cs.ttu.edu/fase/v8n03.txt)

[6] Bagert, D., "Texas Board of Professional Engineers Unanimously Votes to License Software Engineers", to appear in Software Engineering Notes, August 1998. [7] Bagert, D.; Hilburn, T.; Hislop, G. and Mengel, S., "Guidelines for software Education: Meeting the Needs of the 21st Century," accepted for the Proceedings of the Frontiers in Education Conference, 4-7 November 1998, Tuscon AZ. (Abstract and position statements for panel to be held at the conference) [8] Douglas, P.; Cocchi, T. et al, Report on Analyses of Pilot Software Engineer Survey Data, submitted on 27 March 1997. (http://www.computer.org/tab/seprof/survey.htm) [9] Dupuis, R., Private communication to the author, 19 February 1998. [10]Frailey, D., "Texas State Board of Professional Engineers Licensing Committee Considers Software Engineering," FASE, Vol. 7, No. 5, December 1997. (http://www.cs.ttu.edu/fase/v7n05.txt) [11]Gotterbarn, D.; Miller, K. and Rogerson, S., "Software Engineering Code of Ethics," Communications of the ACM, Vol. 40, No. 11, November 1997, pp. 110-116. (Also in IEEE Computer, October 1997.) [12]Hilburn, T.; Bagert, D.; Mengel, S. and Oexmann, D., "Software Engineering Across Computing Curricula," to be published in the Proceedings of the Joint 6th Annual Conference on the Teaching of Computing and 3rd Annual Conference on Integrating Technology into Computer Science Education (ITiCSE '98), Dublin, Ireland, 18-21 August 1998. [13]Mead, N., "Issues in Licensing and Certification of Software Engineers," Proceedings of the Tenth Conference on Software Engineering Education and Training, 13-16 April 1997, Virginia Beach VA, pp. 150-160. [14]Mengel, S., "Guidelines Proposal for Undergraduate Software Engineering Education," to appear in the Proceedings of the Frontiers in Education Conference, 4-7 November 1998, Tuscon AZ. [15] Texas Board of Professional Engineers, Texas Engineering Practice Act and Rules Concerning the Practice of Engineering and Professional Engineering Licensing, Texas Board of Professional Engineers, Austin TX, revised 1 April 1998. (http://www.main.org/peboard/law.htm) [16]Tucker, A.; Barnes, B.; Aiken, R.; Barker, K.; Bruce, K.; Cain, J.; Conry, S.; Engle, G.; Epstein, R.; Lidtke,

D.; Mulder, M.; Rogers, J.; Spafford, E. and Turner, A., Computing Curricula 1991: Report of the ACM/IEEE-CS Joint Curriculum Task Force. Jointly published by ACM Press, New York NY and IEEE Computer Society Press, Los Alamitos CA, 17 December 1990. [17]Werth, L. "Certification and Licensing for Software Professionals and Organizations," Proceedings of the Eleventh Conference on Software Engineering Education and Training, 22-25 February 1998, Atlanta GA, pp. 151-160. [18]Werth, L., "JTF Draft Accreditation Criteria for SE Undergrad Programs," FASE, Vol. 8, No. 3, March 1998. (http://www.cs.ttu.edu/fase/v8n03.txt)