Software Engineering Education at Texas Christian University: Adapting a Curriculum to Changing Needs James R. Comer and David J. Rodjak Computer Science Department,
Texas Christian University, Fort Worth, Texas
In response to the need for skilled software engineers, Texas Christian University, in the Fall of 1978, established a Master’s Degree in Software Engineering, the first such degree program of its kind in the country. Because of external pressure, prompted by the absence of an engineering college at TCU, the program was renamed Master’s of Software Design and Development (MSDD) in 1980. After three years of experience with the MSDD program, the curriculum was revised in 1981 to reflect the changing needs of the software engineering profession. This revised curriculum, currently in place at Texas Christian University, is described and evaluated. Avenues of future curriculum expansion are explored.
1. INTRODUCTION In recent years, the need for reliable, well-engineered computer software has reached almost epidemic proportions. A current worldwide market of $18 billion, twothirds of which is held within the United States, is expected to increase to approximately $55 billion by 1987 [l]. With increases of this magnitude, it is of paramount importance that industry be provided skilled individuals who are able to apply sound engineering and management principles to the analysis and design of computer systems software. However, based on current predictions involving demand for software and the number of skilled software developers who are able to supply this software, it is projected that industry will be left with a shortfall of between 800,000 and l,OOO,OOO software personnel by the year 1990 [2]. In recognition of the need for advanced study in the field of software development, Texas Christian University (TCU), in the Fall of 1978, instituted a graduate degree in software engineering. Because of external pressure, prompted by the absence of an engineering college at TCU, the program was renamed Master’s of
Address correspondence to James R. Comer, Computer Science Department, Texas Christian University, Fort Worth, TX 76129.
Software Design and Development (MSDD) in 1980. The original intent of the program was to examine prevalent programming practices and methodologies which might be useful for furthering the development, management, and maintenance of reliable systems software. These goals continue to serve as the primary thrust of the program. However, since the program’s inception, the field of software development has changed considerably. Many important new techniques and methodologies have evolved and have come to the forefront. In an effort to respond to this maturation, the degree program at TCU was examined and updated in 1981. The purpose of this paper is to assess the current status of software engineering education at TCU and to present and discuss the current curriculum and the motivations for its evolution. 2. THE EARLY DAYS 2.1.
Historical Perspective
During the mid-1970’s, a dramatic increase in the use of computer software was experienced by many of the nation’s high-technology companies. In particular, companies involved with aerospace and semiconductor manufacturing, geophysical exploration, and communications systems development found themselves face to face with a growing need for more sophisticated software. In some cases, this need was created because the software itself was embedded in the product being manufactured. In other cases, the software was needed to support other aspects of the product line such as engineering research and development, material management, product manufacturing and testing, and worldwide logistics. All too frequently, attempts to develop specific software in support of these areas was less than successful. Common problems often included missed schedules, budgetary overruns, and software that simply did not meet necessary technical requirements. Consequently, upper management soon realized that software 235
TheJoumd of System and Software 10, 235-244(1989) 0 1989Elsevier Science Publishing Co., Inc.
0166121218963.50
236
J. R. Comer and D. J. Rodjak
was a problem looking for a solution. They just as quickly recognized that they did not know how to achieve a solution. The emerging problem confronting high-technology companies of this period was twofold. On the one hand, software was generally perceived to be a ‘ ‘ . . .black box created by programmers who practiced their art.. . “; as such, many companies did not possess the skills to manage or measure the progress of the software development process. At the same time, there was a rapidly growing shortage of individuals having the skills to develop this critically needed software. The traditional approaches for solving such personnel shortages were not viable. Not only were software engineers not being produced by academia, but there was a shortage of experienced personnel to be lured away from other companies (methods frequently used to staff more classical engineering disciplines). In response to these shortages, an occasional company turned to a different staffing approach-that of establishing programs, internally, for the purpose of cross-training employees in the disciplines of software engineering [3,4]. It is generally difficult, for an outsider, to judge the success of such a program. However, such cross-training efforts frequently produce individuals who are able to code, but who often lack the depth and breadth of understanding of the entire software life cycle. Clearly these are processes that characterize the software engineer. Overall, the best approach to satisfying the shortage of skilled software designers seems to lie with the establishment of curricula by academic institutions.
2.2. The Original Curriculum TCU responded to this early need by instituting a Master’s Degree in Software Engineering in the Fall of 1978. The formulation of the initial curriculum began Figure 1. MSDD courses-before
revision.
TCU MSDD COURSE
with a careful analysis of (a) existing surveys of software engineering needs and objectives [5], (b) discussions with local industrial managers and experts, (c) ACM’s preliminary work on a Master’s curriculum [6, 71, and (d) observations of what courses were being offered by various other universities [8]. It was determined, as a result of this analysis that TCU’s curriculum should be based upon the life-cycle approach to software engineering with heavy emphasis on the management of software development. To be included in the program requirements were courses in verbal and written communication techniques, software design and development methodologies, and group participation methods. As a result of early evidence, it was determined that the program should be oriented towards part-time students who could be accommodated, at the outset, through evening college classes. This was largely due to the decision that admission to the program would be limited to professionals already having practical experience in the software development environment. It was also felt, since TCU is within easy commuting distance of a large number of high-technology companies, that there would be an adequate number of students attracted to the program. These early decisions proved to be successful as the program has now grown to approximately fifty students--albeit only about thirty are actively pursuing course work at any one time. All of these students are full-time employees within the softwaredevelopment community in and around Fort Worth. A list of the courses offered as a part of the original software engineering curriculum is shown in Figure 1. Of these courses, all were required, with the exception of SDD 6104 which was provided as a “leveling course” for students having insufficient background in the computer sciences. In addition, the program required that each student take at least 6 hours of electives. These were most generally taken in the school of business or the Computer Science Department. A more detailed description of this curriculum is presented in a position
TITLES
SDD 5143 - INTRODUCTION TO SOFTWARE DESIGN AND DEVEU)PMENT. SDD 5193 - COMMUNICATION TECHNIQUES IN THE SOFlWARE DESIGN AND DEVELOPMENT ENVIRONMENT. SDD 6104 - OVERVIEW OF COMPUTER SCIENCE. SDD 6113 - METHODOLOGIES OF SOFTWARE DEVELOPMENT. SDD 6123 - REQUIREMENTS AND SPECIFICATIONS FOR SOFTWARE. SDD 6133 - SOFTWARE DESIGN. SDD 6142 - SOFTWARE DESIGN LABORATORY. SDD 6153 - MANAGEMENT OF SOFIWARE DEVELOPMENT. SDD 6163 - ECONOMICS OF SOFlWARE DEVELOPMENT. SDD 6193 - EFFECTIVE PARTICIPATION IN SMALL TASK ORIENTED GROUPS. SDD 7113 - SOFIWARE IMPLEMENTATION.
231
Texas Christian University paper that was submitted to the Software Engineering Institute in February 1986 [lo]. As evidenced by Figure 1, the original software engineering curriculum was oriented towards teaching the management of software development as professed by Boehm [9] in 1976. From its initial inception, the program was conceived and administered as a professional program to be offered only to software managers and developers already having significant industrial experience. As such, students entering the program came from a broad cross section of industry. Experience ranged from business and management environments to more technical engineering environments, and while each student was interviewed prior to admission into the program, the level of technical and management expertise varied greatly. Consequently, as with all new programs, difficulties were frequently encountered. Course content often had to be adjusted to meet the needs of both classes of students, that is, both technical and non-technical. An even greater problem concerned the lack of availability of quality textbooks. Indeed, in some cases textbooks simply did not exist at all-good or bad! Thus, many of the early courses were taught using seminar notes, personal knowledge or experiences, or whatever other resources an instructor might have available. Clearly, not an altogether desirable situation from the student’s standpoint. 3. THE CURRENT STATE 3.1. Changing Needs
In 1981, the content of TCU’s curriculum for the Master’s degree in Software Design and Development was reexamined and subsequently revised. The basic changes were intended to accomplish a balance between the technical and management components of the program. By then, it was understood that training in the management of software engineering projects was important but was not, in and of itself, sufficient to solve the many problems confronting the software-development community. It was clear that there was a new, even greater need for sound technical training in the methodologies and techniques of software engineering. Many early software managers were not able to assess the risks and benefits of new technologies that could be directly applied to their various projects. Quite frequently this failure was due to a lack of understanding of the new technologies that were available. Clearly, in an industrial environment, new concepts must be accepted and appreciated at the management level before changes can be implemented. In an effort to address these needs, TCU’s curriculum was modified to include courses that would provide a sound foundation in the technical aspects of software engineering. Many of the existing
management-oriented courses were combined in an effort to reduce the overlap existing from one course to another. They were, however, not altogether removed from the curriculum. Attempts to revise the program were aided by the increased availability of published materials in the various areas of the emerging software engineering discipline. In the three years from its inception to its revision, significant new material had been published and was now available for incorporation into the curriculum. Indeed, in some instances, the revision was directly guided by the proliferation of new textbooks and published papers attesting to the growing universe of software engineering knowledge. 3.2. The New Curriculum As a result of the revision, several new course subjects were considered and integrated into the curriculum in an effort to introduce new software engineering topics. Courses were designed in such areas as software metrics, data bases, Ada, computer architecture, and security and privacy. Also included was the study of the various automated tools related to the software development life cycle. Figure 2 contains a list of the courses comprising the revised MSDD program. The reader is referred to Appendix I for a full discussion of the new program along with titles of the most recently used textbooks. Figure 3 shows a typical degree plan sequence that most students are counseled to follow. As indicated, it is possible to satisfy the degree requirements in seven semesters by enrolling and successfully completing at least two courses per semester. Since the majority of students enrolled in the MSDD program are employed as professional software developers, most are unable to attend classes more frequently than twice a week. Consequently, in order to accommodate part-time students, all classes are scheduled in the evening college and meet once a week for 3 hours. A concerted effort was made to capitalize on new, readily available textbooks and to eliminate duplication within the courses being offered. Included in Appendix I are textbook titles that have been used most recently in each of the courses now being taught. Furthermore, to reduce inconsistency, several adjunct professors from industry were identified and now regularly teach in the program. Additional software-development tools were identified, and where feasible, were procured along with a VAX 1l/780 computer system for use in the program. Student enrollment in the program has never been large-due mainly to the professional experience requirement. As mentioned earlier, there are at present, approximately 30 students actively pursuing course work in the program. However, there are an equal
238
J. R. Comer and D. J. Rodjak
TCU MSDD COURSE TITLES TO SOFTWAREDESIGN AND DEV~PMEN SDD 6013 - ADA DESIGN AND DEVELOPMENT.
SDD 5 143 - ~RODU~ON SDD SDD SDD SDD SDD SDD
6023 6033 6043 6053 6104 6113
SDD 6123 SDD SDD SDD SDD SDD SDD SDD
6153 6163 6173 6183 6193 7113 7123
- ADVANCED TOPICS IN SYSTEMS SOFTWARE. - COMPUTER FACILJTIES MANAGEMENT. - SOFIWARE QUALITY ASSURANCE AND METRICS. - SEW= AND PRIVACY. - PROGRAMMING STRUCTURES. - MODERN SOFIWARE REQUIREMENTS AND DESIGN TECHNIQUES. - APPLIED DESIGN, PR~~M~G, AND TESTING TECHNIQUES. - MANAGEMENT OF SOFIWARE DEVELOPMENT. - ECONOMICS OF SOFTWARE DEVELOPMENT. - COMP~~R SYSTEMS AR~H~E~RE. - DATABASE AND INFORMATION MANAGEMENT SYSTEMS. - EFFECTIV E COMMUNICATION IN SMALL GROUPS. - SOFlWARE IMPLEMENTATION PROJECT I. - SOFI’WARE ~P~ME~A~ON PROJECT II.
Figure 2. MSDD
courses-after revision.
number of other students who are able to enroll only for an occasional course. Many of these students are unable to pursue the degree any more aggressively due to employment commitments. To date, approximately 35 students have graduated from the program since the revision occurred. All of these individuals have been exceptional students and are all currently employed in industry as software developers or managers. The Figure 3.
Typical degree plan sequence.
program is becoming well-recognized as a consequence of the success of these graduates. The prerequisite graph for courses taught in the MSDD program is shown below in Figure 4. All students are required to complete a core cu~culum consisting of nine courses. In addition, a variety of MSDD elective courses are regularly scheduled and students are allowed to take these or to choose electives from outside the Computer Science Department. Currently, due to the present size and makeup of the student body, all courses are offered but once during the academic year. As such, students are encouraged to closely follow the degree plan sequence shown in Figure
Semester Year
1
Fall
SPri%
lSDD5143 (intro. to SW Design& Develop.) . SDD 6104 Pronramming
l
l
smc~urcs)
SDD 617.3 (Computer Systems Arch.) SDD 6113 (Modern SFW Requirements)
or elective 2
SDD 6123 (Applied Design. Prog., &Testing) . SDD 6153 (Mgmt. of SFW Development)
3
lSDD7113 (SFW Implementation I) +elective
l
l
4
elective
A ~rn~~~iv~
Or&
SDD 6183 (Database & info. Mgmt. Sys.) . SDD 6163 (Economicsof SFW Develop.)
l
SDD 7123 (SFW ~pl~~~tion . elective
l
II)
Texas Christian
239
University
hardware and software tools that are available are shown in Figure 5 below. The two mainframe computers, the IBM 4341 and the VAX 1 l/780, are used in the majority of the courses being taught. However, several specialized hardware tools are available in the form of personal computers, microprocessor development systems, and artificial-intelligence systems. In addition, several varieties of software packages are available. Included among these is a relatively complete set of programming languages, editors, and debuggers as well as a limited number of software-development tools. Most of these tools are used in the classroom environment and in support of students pursuing independent research. 5. THE NEAR FUTURE During the Fall semester, 1985, the authors conducted a brief survey of selected students associated with the MSDD program. For completeness, and in an effort to gauge the success of the revised curriculum, several students were polled who had graduated under the old curriculum and several who were currently enrolled under the new curriculum. The objective of the survey was to ascertain whether the approach and content of the MSDD curriculum were meeting the needs of those students working in industrial software-development environments. Conclusions drawn from the data supplied by these students are discussed in the following section. A copy of the questionnaire used in the survey can be found in Appendix II.
Figure 4. Prerequisite graph for MSDD program. 3. As mentioned earlier, the “leveling” course, SDD 6104, is required of those students having insufficient formal background in computer science. This course may be taken concurrently with SDD 5143 during the student’s first semester at TCU.
4. THE CURRICULUM
ENVIRONMENT
Within the past two years, significant new computer resources have been acquired and made available to students enrolled in the IvISDD program. Many of the
MSDD FACILITIES l
DEC VAX 6320 -
128 MEGABYTES MAIN MEMORY 6.5 GIGABYTES ON-LINE DISK
. DEC VAX 1l/780 (VMS/UNIX) l
PERSONAL WORKSTATIONS -
Figure 5. Facilities available to MSDD students. l
TANDY/RADIO SHACK 3000 HD’s & 3000 HL’s MACINTOSH Plus’s & SE’s SUN 3/50’s & SUN 3/60’s
GRAPHICS EQUIPMENT -
l
16 MEGABYTES MAIN MEMORY 1.5 GIGABYTES ON-LINE DISK
VT 240 TEKTRONICS COMPATIBLE DISPLAY’s VS ll/VAX GRAPHICS SYSTEM AED 767
SOFTWARE TOOLS AVAILABLE OR PLANNED -
UNIX SYSREM PL/I PROLOG LISP
-
SDDL RXVPIO MODULA 2 COBOL 74 Pascal
- HOS USE.IT - STRUCTURES - SMALLTALK - FORTRAN 77 -AAda
240
5.1. Student Survey Of the studentssurveyed, approximately 70 % completed and returned their questionnaires. Of these, it was learned that approximately 75 % of the respondents were actively employed in the development of businessoriented software systems. Various application areas included financial systems, cost accounting, personnel record systems, inventory control, and fleet expense and maintenance systems. The remaining 25% were involved in various engineering software-development efforts such as aircraft/pilot trainers, automatic test equipment, and real-time radar simulations. With regard to the respondent’s degree of responsibility within these project areas, it was learned that the data was heavily skewed toward higher level job classifications. In particular, one-quarter of the respondents specified their job classification as managers of software development. One-third indicated a job title of project leader, and the remaining indicated job classifications such as chief programmer, systems analyst, or software designer. The following comments briefly summarize the more significant results of the curriculum survey shown in Appendix II and roughly parallel the questions listed in Part B of the survey form: 1. The traditional software life cycle “waterfall model” (that is, serial, overlapping phases of planning, requirements, design, coding, testing, and maintenance) is very definitely applicable to the vast majority of both business and engineering softwaredevelopment efforts. 2. The course material currently required for successful completion of the MSDD degree is unquestionably relevant to the industrial work environment. 3. Students are generally able to apply the methods and techniques which they have been taught. However, in many cases, established management directives have acted to place limitations on the introduction of new methodologies. For example, while a chief programmer might easily be able to apply design methodologies, coding standards, and guidelines, he or she might find difficulty in influencing the adoption of a new software cost-estimating approach if there exists little management support for such a tool. 4. There is not a large number or variety of software tools currently in use. Text editors and language translators were the most frequently mentioned tools that are generally available in almost every development environment. It is perhaps not surprising that the use and availability of software tools was most frequently mentioned by students involved with the development of business software applications. Problems frequently cited in connection with engineering software tools included that they were simply “too
J. R. Comer and D. J. Rodjak specialized” or that they “required too much labor to use them.” 5. There were several recommendations made for additional technical courses and new areas of instruction. The most frequently requested new courses included: l l l l
Artificial Intelligence Rapid Prototyping Communications and Networking Technical Personnel Management tion
and Motiva-
In addition, several new areas of instruction were requested. Included were topics such as: personal computer applications, programming environments, and hands-on experience with software tools. Finally, the majority of the students responding indicated a great deal of satisfaction with the current curriculum. It was felt that it was especially beneficial to have instructors who had significant industrial softwaredevelopment experience. In general, the students indicated that the MSDD curriculum provided substantial preparation for their particular work environment.
5.2. Departmental
Response
With the changes instituted in 1981, the MSDD program was substantially improved. Much of the overlap that existed between courses was eliminated, increased rigor was introduced into the program, and several new, more substantive courses were added to the curriculum. However, in an evolving and maturing discipline such as software engineering, change is inevitable. If the program is to remain current and applicable, new altematives must be considered and new courses must be continually introduced into the curriculum. In response to student requests, elective courses in artificial intelligence and computer graphics have been offered in recent semesters. An object-oriented programming course is presently scheduled for the Spring semester. Additional courses, as suggested by students, will be offered when appropriate faculty can be identified to teach such courses. Obviously, the introduction of new courses into any curriculum is largely a function of the availability of teaching expertise. However, additional software and/or hardware resources to use in support of these new courses must also be available. Consequently, the decision to teach or not to teach a new course, is almost always driven by economics. Certainly, the situation at TCU is no different from that found in many of the nation’s universities. The department is currently preparing the necessary paperwork required to become an affiliate with the Software Engineering Institute (SEI) . Such an affiliation
Texas Christian
241
University
would pay great dividends, in that new ideas and teaching strategies may be directly derived from the institute itself. With state-of-the-art input being obtained from SEI, TCU’s program, or any other, should find itself in an enhanced position to remain relevant.
6. SUMMARY The Master’s of Software Design and Development curriculum at Texas Christian University provides students with the managerial, technical, and communicative skills that are required for successful software development and maintenance in all software environments. This curriculum, which has been in existence since 1978, has evolved over time and has been structured to be flexible to the changing needs of the software engineering profession. A recent student survey confirmed that the program’s approach, which is based upon the waterfall model of the software life cycle phases, and course content are unquestionably applicable to the industrial software-development setting. As faculty, hardware, and software resources become available, new courses will be added to the curriculum in order to ensure that it remains relevant. The objective of the MSDD curriculum at Texas Christian University is now, and always has been, to provide a program of instruction that is adaptable to the changing needs of the professional software developer. Clearly, this program is helping to fill the critical need for skilled software engineers.
REFERENCES 1. W. Myers, An Assessment of the Competitiveness of the United States Software Industry, IEEE Computer 18(3), 81-92 (1985). 2. B. Boehm, Software Technology in the 1990’s: Using an Evolutionary Paradigm, IEEE Computer 16( 1l), 30-37 (1983). 3. J. McGill, The Software Engineering Shortage: A Third Choice, IEEE Trans. Software Eng. SE-lo(l), 42-49 (1984). 4. A. Ben-David, M. Ben-Porath, J. Loeb, and M. Rich, An Industrial Software Engineering Retraining Course: Development Considerations and Lessons Learned, IEEE Trans. Software Eng. SE-10(6), 748-755 (1984). 5. P. Freeman and A. Wasserman, eds., Software Engineering Education: Needs and Objectives, SpringerVerlag, New York, 1976.
6. R. Fairley, Toward Model Curricula in Software Engineering, SZGCSE Bulletin 10(3), 77-79 (1978). 7. R. Jensen, C. Tonies, and W. Fletcher, A Proposed 4Year Software Engineering Curriculum, SZGCSE Bulletin 10(3), 84-92 (1978). 8. A. Hoffman, Survey of Software Engineering Courses, SZGSCE Bulletin 10(3), 80-83 (1978).
9. B. Boehm, Software Engineering, TRW Systems, TRWSS-76-08, Oct. 1976. 10. J. Comer and D. Rodjak, Adapting to Changing Needs: A New Perspective on Software Engineering Education at Texas Christian University, Proceedings of The SE1 Education Division Workshop, Software Engineering
Education: The Educational Needs of the Software Community, pp. 149-171, Springer-Verlag, 1987.
APPENDIX I. THE MSDD CURRICULUM The Master of Software Design and Development program offers a professional graduate curriculum in the software-development discipline. Software design and development requires that professional expertise, technical skill, and managerial ability be focused on the design, implementation, and maintenance of reliable and cost-effective software systems.
Requirements for Admission 1. Admission to graduate study in AddRan College, and 2. Appropriate level of technical competence demonstrated by an appropriate transcript or resume, and 3. Two or more years of experience in software systems development, and 4. Knowledge of assembler language programming (e.g. CoSc 1603), and skill in using a block structured pro5. Programming gramming language such as Pascal, PL/I, Ada or Algol, and course in data structures or its 6. An undergraduate equivalent. A student may resolve requirements (5) and (6) by successfully completing SDD 6104, if items (l-4) are otherwise satisfactory for admission.
Degree Requirements A 36-semester-hour program (40 hours if SDD 6104 is necessary) with at least 27 hours of SDD courses and 9 hours of electives (which must be approved by the Computer Science Department in advance of enrolling). SDD 6104 is required of students entering the SDD program without qualifications (5) and (6) listed above. The following courses are required of all students to complete the degree: SDD 5143, SDD 6113, SDD 6123, SDD 6153, SDD 6163, SDD 6173, SDD 6183, SDD 7113, and SDD 7123. Prior to scheduling the final oral, each student must have submitted a paper, based on current course work or related areas, to an appropriate journal for publication. Each student must pass a final comprehensive oral during the last semester of coursework.
J. R. Comer and D. J. Rodjak
242
SDD 5143-Introduction to Software Design and Development. Prerequisites: Admission to the SDD program. May be taken with SDD 6104. An introduction to software design and development, oriented towards the software-development life-cycle phases. The need for discipline in software development is established, using software cost relationships and case studies. An overview of techniques for systems analysis, configuration management, software quality assurance, and maintenance activities provides insight to all activities required for successful software development. An overview of communication skills, economics of software, and project management is also included. (Text used: R. S. Pressman, Software Engineering: A Practitioner’s Approach, McGraw-Hill, 1982).
SDD 6013-Ada
Design and Development. Prerequisites: SDD 6113. The impact of the new DOD standard language on the design and development of software systems will be studied. Particular attention will be given to the development of software systems in Ada. The evolution of Ada, and its standardization and current status will be studied. Ada language data types, program structuring, the Ada support environment (APSE), and systems programming in Ada will be emphasized, including program development. (Text used: G. Booth, Software Engineering with Ada, Benjamin/Cummings, 1983).
SDD 6023-Advanced
Topics in Systems Software.
Prerequisites: Permission of instructor and SDD 6113, SDD 6153, and SDD 6173. Advanced topics of current interest in systems software, such as: Networking and Distributed Systems, Performance EvalObject Oriented architecture (e.g., uation, iAPX432), etc. Students will study current literature. (May be repeated for credit when topic changes).
SDD 6033-Computer
Facilities Management. Prerequisites: SDD 5143. A comprehensive study of problems associated with management of data processing and computer facilities. Particular emphasis is placed on problems of cost effectiveness, machine configuration, personnel and human factors, security, systems planning, facilities requirements, and office automation. (Text used: H. Schaeffer, Data Center Operations, 2nd ed., Prentice-Hall, 1986).
SDD 6043-Software Quality Assurance and Metrics. Prerequisites: SDD 6123. The impact of software quality assurance upon the software life-cycle development phases will be studied. Particular software-testing philosophies such as top-down, bottomup, and sandwich will be compared. Software metrics for reliability, flexibility, maintainability, performance, resources, and structure will be discussed, as
well as methodologies for the collection of software metric data. Finally, software metrics will be linked to the requirements of software quality assurance and reliability. A summary of industry-wide software metric data will be presented. (Texts used: T. Gilb, Software Metrics, Winthrop, 1977; B. Beizer, Soft-
ware System Reinholt,
Testing and Quality Assurance,
1984).
SDD 6053-Security
and Privacy. Prerequisites: SDD 6183. This course covers the technical, legal and ethical aspects of security, and privacy of information. Technical issues covered include encryption techniques, data base security, and implementation of protection schemes in operating systems and programming languages. (Text used: J. Lobel, Foiling the System Breakers, McGraw-Hill, 1986).
SDD 6104-Programming
Structures. Prerequisites: Admission to the MSDD program. Introduction to block structure languages including scope rules, recursion, pointer variables, and control constructs. Study of data structures including arrays, stacks, linked lists, trees, graphs, and files. Examples are selected from operating systems, compilers, and systems programming. A number of programming assignments in Pascal, C, or Ada will be made. (Text used: G. M. Schneider and S. C. Bruell, Advanced Programming and Problem Solving with Pascal, John Wiley & Sons, 1981).
SDD 6113-Modern Software Requirements and Design Techniques. Prerequisites: SDD 5143. A comprehensive study in state-of-the-art techniques for design and development of software systems. Automated tools for requirements, design, and documentation are used in a comparative study of functional PSLIPSA, decomposition, structured analysis, Higher-Order Software, SAMM, SREM, and rapid prototyping techniques. Emphasis is on contrasting the application of different methods for a selected methodology. Appropriate methodologies will be applied to sample problems. Structured design, Petrinets, and Warnier-Orr methods will be compared to distinguish applications of each methodology. (Texts used: K. T. Orr, Structured Requirements Definitions, Orr & Associates, 1981; L. J. Peters, Software Design Methods & Techniques, YOURDON Press, 1981).
SDD 6123-Applied Design, Programming, and Testing Techniques. Prerequisites: SDD 6113. Emphasis on object-oriented design, Jackson methodology, levels of abstraction, top-down, bottom-up, sandwich, Nassi-Schneiderman, Hamilton-Zeldin, and SDDL methods of design. Software quality assurance and testing methods to measure cohesive-
Texas Christian University ness and robusmess are studied along with static and dynamic testing concepts. Automated testing methods and software maintenance considerations with respect to reduction of life-cycle cost are also studied. (Texts used: G. J. Myers, The Art of Software Testing, John Wiley & Sons, 1979; G. Par&h and N. Zvegintzov, Tutorial on Software Maintenance, IEEE, 1983). SDD 6153-Management of Software Development. Prerequisites: SDD 5143. A complete methodology for managing the planning, design, ~ons~ction, evaluation, documentation dist~bution, and maintenance of software products with emphasis on topdown design, management by objective, configuration management, and motivation. Human factors related to quality, productivity metrics, chief prog~er teams, egoless programing, democratic teams, structured walkrhroughs, and formal inspections are investigated. Automated project management tools are used to enhance and simulate a realworld environment for project management. (Texts used: T. DeMarco, Controlling Software Projects, YOURDON Press, 1982; R. C. Gunther, management Methodology for Software Product Engineering, Wiley Interscience, 1978). SDD 6163-Economics of Software Development. Prerequisites: SDD 6153. An in-depth study of software life-cycle cost dis~ibution with major emphasis of Boehm’s Software Economics model COCOMO; the parametric models PRICE S, JENSEN, and SLIM are also covered. The work of Aron, Brooks, Baker, Woverton, Parr, and Putnam ,will also be analyzed to cover the full spectrum of software economics. Individu~ projects will include application of PRICE S/SLIM automated parametric models to industry problems. (Text used: B. W. Boehm, Software Engineering Economics, Prentice-Hall, 1981). SDD 6173-Computer Systems Architecture. Prerequisites: SDD 5143 and SDD 6104. The logical organization, conceptual structure, and functional behavior of computers are studied from the user viewpoint. First, the CPU, I/O devices, and memory components of a fundamental uniprocessor are presented. Secondly, a multipr~essor con~guration is established using the fundamental uniprocessor as a building block. Distributed processing and commercially implemented networks such as DECnet, Ethernet, USnet, SNA, and the Open Systems Interconnection Model established by IS0 will be compared. Teleco~uni~tions will be addressed. Finally, the criteria for evaluation, selection, and performance measurement of a computer system that
243 is part of a larger product will be studied. The topics include the advantages and disadvantages of uniprocessor and multiprocessor configurations, reliability, maintainability, software support, throughput analysis, and rapid prototype modeling. (Text used: D. L. Kuck, Stru~t~re of Com~~ters and ~omputatio~, Wiley & Son, 1978). SDD 6183-Data Base and Information Management Systems. Prerequisites: SDD 6173. The requirements analysis and design criteria of data base and info~ation management systems will be studied. The impacts of the operational environment, quality control, security, human/system interface requirements , system specification and design will be investigated. Hierarchical and relational data bases will be studied, along with commercially available data bases and information management systems. Design techniques for optimization, application to large data bases, and restructuring existing data bases will be discussed. The design review methodologies of MCAUTO and IBM will be considered. (Texts used: D. M. Kroenke, DATABASE PROCESSING: Fundamentals, Design, rmp~ementation, SRA, 1983; W. H. Inmon, Effective Data Base Design, Prentice-Hall, 198 1). SDD 6193-Effective Communication in Small Groups. Prerequisites: SDD 5143. Technical communication requires the exchange of info~ation in an accurate, concise, unambiguous, and timely manner . In software development, technical communication takes a variety of forms: interaction with existing and prospective customers, oral and written progress reports to management, memos and presentations to colleagues, proposals, requirements documents, specifications, design documentation, code documentation, formal and informal project reviews, test plans, test results, user’s manuals, training sessions, and maintenance reports must all be prepared and delivered in the course of a software life cycle. (Text used: R. W. Griffin, Task Design: An r~tegrat~ve Approach, Scott-Foresman, 1982). SDD 7113-Software Implementation Project I. Prerequisites: SDD 6123, SDD 6153, and SDD 6183. This course is the first of a contiguous two-semester sequence which applies the techniques of modem software development to actual problem solutions. Group projects will be assigned, based in part on the student’s professional background. The projects will require the development of operational software, emphasizing group development processes to accomplish f~sib~ity analysis, costing, planning, requirements specifications, and preliminary design of the assigned project.
J. R. Comer and D. J. Rodjak
244 SDD 7123-Software Implementation Project II. Prerequisites: SDD 7113. Preliminary design of the project assigned in SDD 7113 is reviewed and the detailed design is executed. A critical design review is performed and the implementation, testing, and documentation is completed as a group process. Acceptance testing is accomplished to ensure that the software satisfies the user specification requirements.
APPENDIX II. THE STUDENT QUESTIONNAIRE Part A: You and
Your Work
1. Your name: 2. Your mailing address:
3. Day telephone number:
Night telephone number: ~ 4. Your current employer: 5. Approximately how many software professionals are
at your employer’s site? ~-
6. Your job title: 7. Briefly describe your software application. 8. What is your particular involvement with this soft-
ware application? Part B: The TCU MSDD Curriculum
1. Is the traditional software life cycle “waterfall model” applicable to your work? In what respect? 2. Has the course material you have learned been relevant to your work? 3. Are you able to apply the techniques and methods of software engineering that you have learned to your work? 4. What automated software tools do you regularly use? What is your evaluation of these tools? 5. What specific changes would you recommend in the content of the MSDD courses? 6. What new technologies do you think should be included in the MSDD course of study? 7. Please describe your overall opinion of the MSDD curriculum with respect to the “real world” of software development.