Curriculum Models. Software Engineering Institute MSE Model
Curriculum Development Issues. Below are some primary issues frequently addressed when developing or evaluating a software engineering curriculum model.
- Software engineering content
- Computer science content
- The role of calculus, laboratory sciences, and engineering sciences
- Application domain-specific topics
- Capstone experience
- Flexibility
The curriculum models below include some of the earliest, the most recent, and the most widely distributed in the field of software engineering.
Software Engineering Institute MSE Model. The mission of the Software Engineering Institute (SEI) at Carnegie Mellon University, in Pittsburgh, Pennsylvania is to provide leadership in advancing the state of the practice of software engineering to improve the quality of systems that depend on software. Recognizing the importance of education in the preparation of software professionals, the institute’s charter required it to ‘‘influence software engineering curricula throughout the education community.’’
Thus, the SEI Education Program began in 1985, only one year after the Institute’s founding. This program emerged at the right time to play a key role in the development of software engineering education in the United States. The program was organized with a permanent staff of educators along with a rotating set of visiting professors.
Under the direction of Norman Gibbs (1985-1990) and Nancy Mead (1991-1994), the SEI Education Program accomplished a wide variety of tasks, including developing a detailed Graduate Curriculum Model, several curriculum modules on various topics, an outline of a undergraduate curriculum model; compiling a list of U.S. graduate software engineering degree programs; creating a directory of software engineering courses offered in U.S. institutions; developing educational videotape series for both academia and industry; and creating and initial sponsoring of the Conference on Software Engineering Education. Although the Education Program was phased out at SEI in 1994, its work is still influential today.
With regard to curriculum models, the SEI concentrated initially on master’s level programs for two reasons. First, it is substantially easier within a university to develop and initiate a one-year master’s program than a four-year bachelor’s program. Second, the primary client population at the time was software professionals, nearly all of whom already have a bachelor’s degree in some discipline. In 1987, 1989, and 1991, the SEI published model curricula for university MSE programs (described below) (20-22).
Because the goal of an MSE degree program is to produce a software engineer who can assume rapidly a position of substantial responsibility within an organization, SEI proposed a curriculum designed to give the student a body of knowledge that includes balanced coverage of the software engineering process activities, their aspects, and the products produced, along with sufficient experience to bridge the gap between undergraduate programming and professional software engineering.
Basically, the program was broken into four parts: undergraduate prerequisites, core curriculum, the project experience component, and electives. The minimal undergraduate prerequisites were discrete mathematics, programming, data structures, assembly language, algorithm analysis, communication skills, and some calculus. Laboratory sciences were not required.
The six core curriculum courses were:
- Specification of Software Systems
- Software Verification and Validation
- Software Generation and Maintenance
- Principles and Applications of Software Design
- Software Systems Engineering
- Software Project Management
The topics and content of these courses were in many ways an outgrowth of the common courses identified in the first MSE programs. These courses would likely be taken in the first year of a two-year MSE sequence. The bulk of the report consists of detailed syllabi and lecture suggestions for these six courses.
The project experience component took the form of the capstone project, and might require different prerequisites according to the project. The electives could be additional software engineering subjects, related computer science topics, system engineering courses, application domain courses, or engineering management topics.
Although the final version of the SEI model for an MSE was released almost 15 years ago, it remains today the most influential software engineering curriculum model for Master’s degree programs.
BCS/IEE Undergraduate Model. As stated previously, the BCS and the IET have cooperated for many years in the development and accreditation of software engineering degree programs, dating back to the IEE, one of the two societies that merged to form the IET. Therefore, it is not surprising that the first major effort to develop a curriculum model for the discipline was a joint effort by these two societies (23).
The curriculum content defined in the report was ‘‘deliberately designed to be non-prescriptive and to encourage variety’’ (p. 27). Three types of skills are defined: central software engineering skills, supporting fundamental skills (technical communication, discrete math, and various computer science areas), and advanced skills.
At the end of the section on curriculum content, the authors state ‘‘the topics alone do not define a curriculum, since it is also necessary to define the depth to which they may be taught. The same topic may be taught in different disciplines with a different target result...’’ (p. 31). This reinforces the comments concerning the variety and non prescriptive nature of the recommendations at the beginning of that section.
It is interesting to note that the curriculum content does not include a need for skills in areas traditionally taught to engineers (e.g., calculus, differential equations, chemistry, physics, and most engineering sciences). It is remarkable that the computer scientists and electrical engineers on the working party that produced this report were able to agree on a curriculum that focused primarily on engineering process and computer science skills, and did not tie itself to traditional engineering courses.
SEI Undergraduate Model. In making undergraduate curriculum recommendations, Gary Ford (24) of SEI wanted a curriculum that would be compatible with the general requirements for ABET and CSAB and the core computing curriculum in the IEEE-CS/ ACM Curricula 91 (which was then in draft form). Also, although he was complimentary of the BCS/IEE recommendations, Ford was more precise in defining his model curriculum. The breakdown (for a standard 120 semester hour curriculum) was as follows:
Mathematics and Basic Sciences - 27 semester hours
Software Engineering Sciences and Design - 45 semester hours
Humanities and Social Sciences - 30 semester hours
Electives - 18 semester hours
The humanities & social sciences and electives were included to allow for maximum flexibility in implementing the curriculum. Mathematics and basic sciences consisted of two semesters of both discrete mathematics and calculus, and one semester of probability and statistics, numerical methods, physics, chemistry, and biology.
In designing the software engineering science and design component, Ford argues that the engineering sciences for software are primarily computer science, rather than sciences such as statics and thermodynamics (although for particular application domains, such knowledge may be useful). Four different software engineering areas are defined: software analysis, software architectures, computer systems, and software process.
Ford goes on to define 14 courses (totaling 42 semester hours; one elective is allowed), with 3 or 4 courses in each of these four areas, and places them (as well as the other aspects of the curriculum) in the context of a standard four- year curriculum. The four software process courses were placed in the last two years of the program, which allowed for the possibility of a senior project-type experience.
Thus, several similarities existed between the BCS/IEE and SEI recommended undergraduate models: they focused on similar software engineering skills, did not require standard engineering sciences, and (interestingly) did not require a capstone experience.
IEEE-ACM Education Task Force. The Education Task Force of an IEEE-ACM Joint Steering Committee for the Establishment of Software Engineering developed some recommended accreditation criteria for undergraduate programs in software engineering (25). Although no accreditation board has yet adopted these precise guidelines, it has influenced several accreditation and curriculum initiatives.
According to their accreditation guidelines, four areas exist (software engineering, computer science, and engineering, supporting areas suchc technical communication and mathematics, and advanced work in one or more area) that are each about three-sixteenths of the curriculum, which amounts to 21-24 semester hours for each area in a 120-hour degree plan. (The remaining hours were left open, to be used by, for instance, general education requirements in the United States). As in the SEI graduate guidelines, a capstone project is addressed explicitly.
To this point, this discussion has concentrated on academic education, as opposed to education within industry (training). The term software engineering education and training is used commonly to encompass both academic education and industrial training issues.
Starting over 20 years ago, several large companies involved in software development began to embrace the concept of software engineering. Faced with both a software development workforce mostly untrained in software engineering skills and paucity of academic coursework in software engineering available, many companies began developing an array of in-house courses to meet the need.
Among the first of these companies was the IBM Software Engineering Education Program, which was started in the late 1970s. This program was influenced greatly by software engineering pioneer Harlan Mills, who worked for IBM from 1964 to 1987.
Also among the oldest software engineering training programs is that of the Texas Instruments Defense Systems and Electronics Group (DSEG), which is now part of Raytheon. Moore and Purvis (39) discussed the DSEG software training curriculum as it existed then. First, those engineers assigned to develop software would take a three-day ‘‘Software Engineering Workshop’’ for engineers, which would introduce the workers to DSEG software practices and standards, as well as DoD life cycle requirements.
This workshop could be followed with courses such as software quality assurance, software configuration management, introduction to real-time systems, structured analysis, software design, software testing and software management.
Motorola is another example of a company that has invested considerably in the software engineering training of its employees. Sanders and Smith (40) estimated that its software engineering population at the time required 160,000 person-hours of training per year, which it provided both through its own Motorola University, as well as through collaborations with various universities (such as the one with Florida Atlantic University discussed in the previous section).
Over the years, several companies have offered a wide variety of software engineering training courses to both companies and individuals . Construx Software lists on its web page (41) a wide variety of training seminars. In addition, Construx has a significant professional development program for its own employees, employing readings, classes, discussion groups, mentoring, and so on.
Typically software engineering training courses offered by companies are of length anywhere from a half-day course associated with a meeting such as the International Conference on Software Engineering to a one or two-week stand-alone course. Generally, such courses cost $500-1000 U.S. per day for each registrant.
Software process improvement training has increased significantly over the past 10 years. For instance, several of companies offer training services to corporations that want their software divisions to obtain ISO 9000 registration or a certain level of the Capability Maturity Model Integration (registered in the U.S. Patent and Trademark office). In addition, also many training courses exist in both the Personal Software Process and the related Team Software Process (e.g., Ref. 42) (Personal Software Process and Team Software Process are service marks of Cargegie Mellon University, Pittsburgh, PA).
Date added: 2024-06-15; views: 84;