Forum for Advancing Software engineering Education (FASE) Volume 10 Number 11 (130th Issue) - November 15, 2000 1035 subscribers Note: If you have problems with the format of this document, try ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Table of Contents Call for Articles, Topics and Guest Editors Articles Annual Survey of SE Academic Programs - Progress Report #2 Alert: Uniform Computer Information Transactions Act (UCITA) Professional Software Engineering Concept News Items Continuing Discussion on SE Licensing in Engineering Times New Textbook on Software Design Position Openings East Tennessee State University Monmouth University Southeast Missouri State University University of Texas at Dallas Virginia Tech Contact and General Information about FASE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From: The FASE Staff Call for Articles, Topics and Guest Editors The FASE staff is always interested in articles or topic suggestions in the areas of software engineering education, training and professional issues. You may suggest yourself as a guest editor for a particular topic. Send articles or topic suggestions to one of the editors, preferably by category: Articles pertinent to academic education to Tom Hilburn ; corporate and government training to David Carter ; professional issues and all other categories to Don Bagert . FASE submission format guidelines: All submissions must be in ASCII format, and contain no more than 70 characters per line (71 including the new line character). This 70-character/line format must be viewable in a text editor such as Microsoft Notepad WITHOUT using a "word wrap" facility. All characters (outside of the newline) should in the ASCII code range from 32 to 126 (i.e. "printable" in DOS text mode). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Articles ###################################################################### From: Ken Modesitt Software Engineering Survey Annual Survey of International Software Engineering Academic Programs Progress Report Number 2 Joint ACM/IEEE-CS Project October 30, 2000 Dr. Kenneth L. Modesitt, University of Michigan-Dearborn Dr. Donald J. Bagert, Texas Tech University Dr. Laurie Werth, University of Texas-Austin Dr. Peter Knoke, University of Alaska-Fairbanks Abstract According to data received from an international survey, there are early 5300 graduates and 6500 students currently enrolled in software engineering degree programs in 11 countries, as of October, 2000. A total of 87 academic programs in software engineering is in place at 57 universities with 550+ full-time faculty and nearly 350 part-time faculty teaching hundreds of undergraduate and graduate courses in the discipline. The authors are conducting the first in a series of ongoing annual surveys of international academic software engineering programs, as a joint ACM/IEEE-CS project. This status report covers: history, audience, initial survey, initial partial results available on the WWW, request for evaluation of WWW-site, request for additional questions for next version of survey, time-line for next version of the survey and some future directions. The annual report and survey results will be posted on a wide variety of web pages. The universities that have responded have been contacted by the first author to determine their potential interest in the initial development of an "International Software Engineering University Consortium - ISEUC." He is visiting some of those universities during his sabbatical. A sample scenario for an employee in industry who becomes a student in ISEUC is given. A. Summary of the project's goals and objectives An ongoing survey of international academic software engineering programs is being carried out, with initial funding from ACM and IEEE Computer Society. The first progress report was given in the May, 2000 issue of Forum for Advancing Software Engineering Education (FASE). It covered history, audience, initial survey, initial partial results available on the WWW, request for evaluation of the WWW-site, a request for additional questions for next version of the survey, and a time-line for "official" survey. The final annual report and survey results will be posted on the ACM and IEEE-CS web pages and other appropriate places. This second interim report covers the changes since the first one appeared, after a brief introduction. B. History This is intended to continue an effort originating at the Software Engineering Institute but discontinued in the mid-1990's. The list had been maintained on an ad-hoc, volunteer basis until this project was funded in August, 1999. The project addresses the issue of acquiring the information for a large and accurate database of such SE programs, from which statistically meaningfully results could be derived by the funding sponsors or others. It represents a simple and inexpensive procedure that has immediate utility. The initial survey builds upon existing databases compiled by SEI in 1996, Peter Knoke for FASE in 1999 and Laurie Werth in 1999. The authors have graciously provided such data via e-mail and WWW sites. C. Audience The project provides a continuing and reliable source of data regarding the international colleges and universities (private, public, military, consortia) offering degrees, programs, and certificates in the software engineering field. Only those institutions offering degrees and identifiable tracks/options in SE are included initially. Institutions offering a course or two in SE are not considered. This list is comprised of, but not limited to: * Associate Degree (two-year) programs from community colleges * Bachelor Degree (four/five-year) programs from colleges and universities * Master Degree programs from colleges and universities * Doctoral Degree programs from colleges and universities * Certificate programs from colleges and universities * [LATER, during year 2 of the project] Degrees in a software- related discipline, e.g. "Software Design and Development" as indicated in a FASE survey (9/15/1998) * [LATER, during year 2 of the project] Programs from other providers, e.g., Motorola and Rational Universities. A pointer in the survey to the existing such database compiled by the University of Texas would be a possibility. D. Survey questions These were designed by the proposal team and included those in previous surveys such as: * Program information such as level, title, year of inception * Students enrolled: full-time and part-time * Graduates * Faculty: full-time and adjunct * Unit containing the program (location within college/university) * Number of courses (undergraduate/graduate) and length of term (semester/quarter) * Point of contact information: name, address, URL, e-mail, phone, etc. "Extra credit" questions related to software engineering definitions (some from the literature plus an open-ended option) as well as referrals to other universities with SE programs were also included in the survey. E. Interim Results Current numbers are as follows, out of the 75 people who have responded: Universities with SE programs 57 Universities without SE programs 24 Countries with software engineering programs 11 Number of SE programs at all levels 87 Total students enrolled in SE programs 6574 Full-time 3977 Part-time 2019 Number of graduates from SE programs 5279 Number of programs on the semester system 65 Number of programs on the quarter system 11 Number of full-time faculty in Software Engineering 556 Number of part-time faculty in Software Engineering 342 Rank ordering of definitions for SE (by voting) [See Appendix for exact wording of definitions] IEEE Standards Collection: SE 27 Texas Board of Professional Engineers 22 NATO 21 Personal definitions, as requested 15 David Parnas 13 Computing Research Association Referrals 9 Number of universities referred 162 Number of universities giving referrals 22 It is clear that validation must be done on these numbers, before they can become anything like "official" statistics. The results, in a "raw" format, are available from the first author in the following formats, and can be e-mailed as attachments, upon request: Survey data [Appendix] and Definitions of SE [Appendix] - Excel Point-of-contact for universities responding with SE programs, point-of-contact for universities responding without SE programs, own definitions of SE [Appendix], or referrals to other potential universities with SE programs - Word Items 1 and 2 are contained in a prototype WWW-site developed by a student team in an introductory software engineering course at the University of Michigan-Dearborn campus during January-April, 2000. The URL of the prototype is http://www.cis.umd.umich.edu:8085. The general public may view current data from items 1 and 2 above, as well as some preliminary graphical summaries. Current respondents may edit their existing program information. We have even had inquiries from students searching for graduate programs in software engineering. We are keenly aware of several "shortcomings" in this prototype, so your constructive recommendations have been most helpful. IF YOU HAVE NOT YET RESPONDED TO THE SURVEY, PLEASE LET US KNOW AND A COPY WILL BE SENT TO YOU, OR YOU CAN LOOK AT THE FEBRUARY 2000 ISSUE OF FASE. F. Request for evaluation of initial results The next version of the survey results will be enhanced considerably with the inputs from knowledgeable individuals reading this second progress report. We already have a team in place to take your recommendations. These recommendations can be of any type: navigation, user interface, typos, grammar, portability, functionality, performance, etc. A major concern is trying to ascertain some common metric for "credit-hours" among differing academic systems. We are quite interested in additional features that you would find useful. Some we are considering include graphical display of all the university sites that offer SE programs, such as Mappoint from Microsoft(r) with hyperlinks to the programs. G. Request for additional survey questions. Ones we have considered so far include the following: * Content of SE curricula for various levels * Availability via distance learning * Availability in an on-campus setting * Formal interaction with local industry * Assistantships available * Level of interest in collaboration with other SE programs * Role of formal methods "vs." traditional methods What additional ones would you find meaningful? H. Time-line for next survey We plan to have the next version of the survey and results on-line by April 1, 2001. Such data and the summaries will be published in world-wide accessible forums such as web pages for the Forum for Advancing Software engineering Education (FASE), as well as ACM Software Engineering Notes, IEEE Transactions on Software Engineering, ICSE and CSEE&T conferences, a SEI report and other IEEE-CS and ACM outlets as desired by the sponsors. It could consequently be used by decision-makers at all levels. It would also draw potential students, as well as schools considering adding SE programs, IT employers, employees, and others. I. Future Directions The first author plans to use the results of this initial survey as a key component in his sabbatical for 2000-2001. Such data is essential to address the following plan for developing an International Software Engineering University Consortium: Problem: Lack of trained software engineers to address the dramatic worldwide growth in Information Technology (IT) Solution: Increase the number of such trained and educated people throughout the world and their effectiveness and efficiency by creation of an International Software Engineering University Consortium (ISEUC). Provide just-in-time state-of-the-art software engineering knowledge and skills at all levels (degrees, certificates, courses, modules) to current and future employees drawing on potential sources of acknowledged academic software engineering expertise, as given below. Goal: Provide major leverage to early adopters of this first innovative collaboration involving acknowledged sources of software "people" pool and the software industry; thus reducing artificial schism between industry and academia in software engineering. How: Build a worldwide integrated resource of academic software engineering expertise, available via both local in-person and distance learning modes. Use virtual teams. Industry has current and future development sites located throughout the world. When performing software development, the developers are often a virtual team, and with ISEUC, there would be virtual student teams as well. Model after National Technological University, but focus on Software Engineering, and not restrict to U.S. institutions, nor to satellite/video-tape delivery. See Appendix for a sample scenario. J. Summary According to data received from an international survey, there are nearly 5300 graduates and over 6500 students currently enrolled in software engineering degree programs in 11 countries, as of October, 2000. A total of 87 academic programs in software engineering are in place at 57 universities with 550+ full-time faculty and nearly 350 part-time. This is essential baseline data as the software engineering discipline peers into the future, "in search of a software engineering profession." The authors are conducting the first version of an ongoing annual survey of international academic software engineering programs, as a joint ACM and IEEE-CS project. This status report covered: history, audience, initial survey, initial partial results available on the WWW, request for evaluation of WWW-site, request for additional questions for next version, time-line for next version and some future directions. The sabbatical of the first author is focused on the initial development of an "International Software Engineering University Consortium- ISEUC." A sample scenario for an employee in industry who becomes a student in ISEUC was given. Dr. Kenneth L. Modesitt Chair and Professor Department of Computer and Information Science College of Engineering and Computer Science The University of Michigan-Dearborn 4901 Evergreen Road, Dearborn, MI 48128-1491 PHONE (313) 436-9145 FAX (313) 593-4256 EMAIL modesitt@umich.edu APPENDIX A DEFINITIONS OF SOFTWARE ENGINEERING, AS THEY APPEAR IN THE SURVEY The following are some definitions that have appeared in the literature. Please circle the ones with which you agree. If none, what is your definition or one you believe to be more accurate? 1. Texas Board of Professional Engineers [6] "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 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." 2. Computing Research Association [1] "[Software Engineering] Graduates work with the engineering of software, with special attention devoted to large and critical systems." 3. IEEE [2] "Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1)." 4. NATO [4] "Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines." (Fritz Bauer) 5. Parnas [5] "The members of the Software Engineering profession should know that subset of Computer Science that is relevant to software design, but they must also share the knowledge about design, mathematics, and other sciences that are traditionally known by Engineers." 6. Yours??? APPENDIX B RESULTS TO DATE Universities, by Country/Continent Canada: Calgary, Ottawa, McMaster, Concordia European Continent: Stuttgart, Slovakia, Sweden, Spain Ireland: Galway South Pacific: Australia, New Zealand South America: Ecuador United Kingdom: Wales, Strathclyde USA Auburn, Butler, California State University system, Cal Poly, Carnegie-Mellon, Carroll, Colorado Technical University, East Tennessee State, Embry-Riddle, Florida A&M, Florida State, Gannon, George Mason, Kansas State, Mercer, Milwaukee School of Engineering, Mississippi State, Monmouth, Naval Postgraduate School, Oregon Consortium, Rochester Institute of Technology, Santa Clara, Seattle, Southern Methodist, Southern Polytechnic, Stevens Institute of Technology, Texas State Technical College, Texas Tech, University of Michigan-Dearborn, University of Missouri-KC, University of Nebraska, Scranton, University of St. Thomas, University of Washington-Bothell, University of Wisconsin-Platteville APPENDIX C Sample Scenario for International Software Engineering University Consortium (ISEUC) Anna Sigfried, an employee of Ford Motor Company in Cologne, Germany, is an engineer who is anxious to rise up through the ranks to become senior technical staff member. She already has an undergraduate (Universitat) degree from Stuttgart in Computer Science, and would like to continue her studies in Software Engineering - it is clear that automotive systems increasingly rely on software and it must be reliable and robust, and yet very efficient. Her manager, Elsa Mandell, is very supportive of Anna and tells her to do some searching for courses and/or degrees that could be useful to Anna in her aspirations and be of utility to Ford. So Anna turns to the Internet and searches for "Software Engineering Programs." Many appear, but one stands out - the International Software Engineering University Consortium" or just "ISEUC." She notes that ISEUC offers courses that are perfect for her - there are several that are available via the Internet, using distance learning, as well as some that are relatively close by from her alma mater, the University of Stuttgart. Upon further investigation, she discovers that the distance learning courses are high-quality ones from all around the world. She selects the following to take during the coming year: High Integrity Systems University of Strathclyde Dr. Robin Hunter Software User Interface University of Michigan-Dearborn Dr. Bruce Maxim Software Architecture University of Queensland Dr. David Carrington Software Processes & Product Metrics Rochester Institute of Technology Dr. Mike Lutz Software Management and Maintenance University of Stuttgart Dr. Jochen Ludewig The last course is available relatively "close by "- 184 miles -- so she knows she will have personal attention for that one. She was pleasantly surprised to discover that all of the other courses, those that are offered in distance learning mode, either via the WWW or videotape, will also be moderated in person by qualified full-time or adjunct faculty from the University of Stuttgart, should she so desire. She shows the results to her manager, Elsa, who looks at the cost. She notes that the price is comparable to courses at other universities that are nearby, but they do not have any comparable courses. Distance learning courses are only about 15% higher than those offered at the university, if attending in person. Of course, it is not feasible to attend the University of Queensland in person! So Elsa gives her "OK", knowing that Anna will take the course on her own time, but that the company will reimburse her for all costs. Elsa is a very good manager and realizes that this investment in her people will pay very nice dividends to her group and to her employer. Anna immediately signs up, via the WWW, for the local one from the University of Stuttgart, and the distance learning one from the University of Michigan-Dearborn - the latter is available on the WWW and has lectures, streaming video, e-mail, and discussion groups all available asynchronously. Once she enrolls as a student at ISEUC, Anna can take courses at any of the 100+ universities around the world which are part of the consortium, and that offer high-quality and timely courses and modules of high relevance to her and to her employer. She orders her textbooks on-line and they arrive within a few days. For the University of Stuttgart course, she has the option of going to class or taking it via distance learning. For the University of Michigan- Dearborn course, the only choice is distance learning. During the first distance learning class meeting, there are the usual initial technical and logistical snafus as the professor greets his students locally as well as across the world. For some of the latter ones, the "greeting" is done asynchronously, but it is not long before he knows all of his students by name and face and vice versa. Within the first few weeks of the course, Anna finds herself as part of a virtual team of students working on a software user interface design. Her team is composed of students such as herself, and they are working for DaimlerChrysler in Strathclyde, EDS in The Hague Netherlands, and for Motorola in Auckland, New Zealand. There is even a fellow Ford student in Dearborn, Michigan, who is taking the course "live". She is struck by how much this design team of students resembles the virtual teams of which she is part in her work life. Whenever she has questions during the design project or at any time during the course, she can ask her fellow students, either via e-mail, chat mode, or on the class discussion bulletin board. Some of the team members even have low-cost desktop video conferencing equipment. If the other students are not helpful, then she can either go to the University of Stuttgart or place a phone call or e-mail to the instructor who was designated on the syllabus from University of Michigan-Dearborn. For videotape portions of the course, this instructor is also available to help answer questions. Anna is pleased that ISEUC offers such a wide range of options for helping her learn some pretty difficult subjects. Exams - ugh - are still a part of each credit course. A proctor from Ford at Cologne is available to hand out the exams, answer simple questions, and collect them. More complex questions can be answered live via the chat mode available with the "local" instructor. The results of the exam are then sent to the professor either via FAX or scanned and sent electronically. Anna gets her grade promptly, and she can also look at the secure course web-site, using her PIN, to see how she did compared to her classmates. Homework, projects, and other assignments are all posted to the course web-site. That is also where Anna looks to determine what she should be reading, what other students think (as recorded on a bulletin board), and when the exams will be given. She can also check her current grades at any time, using her PIN. Eventually, the course is over, and the final exam is handed out and taken, with a proctor present. Within a week, Anna is notified that she has passed with a A- grade! An end-of-course survey is available for Anna to make recommendations about what she liked and what needed improvement. The survey is via a WWW-enabled database, so she can see immediately what her classmates think as well. Her grade arrives via the WWW and she takes it to Elsa, who then initiates the paperwork to reimburse the registration fee to Anna. Elsa congratulates her employee on her good work and her conscientiousness in seeking to become a more talented and useful member of Elsa's team. She inquires if Anna plans to take any more courses this way, and receives a strong "Jawohl, naturlich!" Elsa decides to try some courses herself and encourage other members of her work group to check out ISEUC! Of course, Anna would like to have all of the courses available to her anytime she wants -- on a 24 x 7 basis -- but she also realizes the value of learning as part of a community. Better yet would be to have the professor sitting right with her and helping her learn most effectively and efficiently. Maybe someday, technology will permit such a clone of Plato and Aristotle, but until then, the combination of distance and traditional learning modes available from ISEUC provides opportunities that would not be possible otherwise. Similar scenarios for other countries, universities, degrees [B.S., M.S., Ph.D.], non-credit courses, certificates and modules could be used. APPENDIX D DEFINITIONS OF SOFTWARE ENGINEERING: OWN Cal Poly-San Luis Obispo Deployment-oriented software development College of New Jersey Software Engineering is the computer science discipline concerned with developing large software systems. Software engineering covers both the technical aspects of building large systems (analysis, specification, design, hardware/software selection, database management, implementation, testing, documentation, training) and management issues such as project management. Colorado Technical University It's hard to disagree (fully) with any of those but some definitions are much more limited in their scope than others. Florida A&M University The practice of SE is the merging of the three disciplines of management, development, and quality assurance of computer systems. It requires a basic knowledge of computer science on topics such as computer organization, algorithm analysis, data structures, programming languages, operating systems, and discrete mathematics automata. It requires basic engineering knowledge of computer organization, computer architecture, and digital theory. It requires knowledge of issues related to reliability, verification, and validation of software as well as issues related to project and process management. It should educate students in areas of real-time and embedded systems, information or financial systems, distributed systems, user interfaces, and networks. George Mason University The application of well-documented principles, techniques, and technologies to develop software that is of high quality, where the quality must satisfy goals in terms of measurable criteria such as reliability, safety, maintainability, cost, usability, and efficiency. Milwaukee School of Engineering Software Engineering is the application of engineering concepts, techniques, and methods to the development of software systems. [Mike Lutz, RIT, 1995] Monmouth University If I were trying to define SE I would take all of the above statements and try to compress them into the smallest set of sentences and words that capture all of the ideas in all of these descriptions. Monmouth University (updated on 2/29/2000) Software engineering requires education, training or experience in mathematics, physics, chemistry, computer organization and architecture, programming languages, algorithm analysis and design, data structures, operating systems, requirements analysis and specification, software design and architecture, testing and maintenance, project management and engineering economics. The practice of software engineering is the provision of a service involving the creative, systematic, disciplined and quantifiable application of knowledge from the areas outlined above to problems in the areas of real-time, embedded, information, financial, networking or communications applications that can be solved by the development and operation of software systems that are large, reliable, economical and efficient in their use of computer hardware. Southern Polytechnic State University Software Engineering has emerged nationally as a specialized area of computer science that emphasizes solving the problems and complex issues associated with developing and maintaining mission-critical software to meet the needs of business and industry. It uses the life-cycle concept from traditional engineering with an emphasis on specification, design, and implementation but calls on the focused application of computer science concepts rather than those of traditional engineering. Swinburne University of Technology The use of engineering principles, in the specification, design, implementation, testing and deployment of software systems, so as to ensure that these systems meet their requirements, and are developed effectively and efficiently within required time and budget constraints Texas Tech University Software Engineering is the application of the engineering process to the development of software, regardless of the application. University of Missouri-Kansas City My basic principle is that you don't make decisions because they are easy; you don't make them because they are cheap; you don't make them because they are popular; you make them because they are right. --- Theodore Hesburgh, former president of Notre Dame University of Nebraska The systematic approach to the development and maintenance of software systems whose complexity exceeds the capacity of any individual to fully understand it. University of Ottawa Solving customers' problems by the development of high quality software within cost, time and other constraints. This definition emphasizes that SE is a problem-solving discipline. University of Queensland Software Engineering is the systematic approach to the development, operation, maintenance and retirement of software. The term, software engineering, is an acknowledgement of the challenges associated with large-scale, high quality software: * Size and complexity are significant issues * Cooperation between developers, clients and users is essential, and * Software must evolve of time to maintain its value. A software engineer uses the principles of computer science, engineering, design, management, psychology, sociology, and other disciplines where necessary. University of Stuttgart (Updated March 2, 2000) Software engineering is any activity towards developing and maintaining software that aims at low overall cost and/or high overall benefit, or which enables well understood and reliable organisation and scheduling of the development and implementation process. REFERENCES 1. Freeman, P. and W. Aspray, The Supply of Information Technology Workers in the United States, Computing Research Association, 1999, as adapted from U.S. Degree Programs in Computing, in Computing Professionals - Changing Needs for the 1990s, National Academy Press, 1993. 2. IEEE, IEEE Standards Collection: Software Engineering, IEEE Standard 610.12-1990, IEEE, 1993. 3. Knoke, P., Graduate SE Program Survey Results & Evaluation, 8 (9), September, 1998, Forum for Advancing Software Engineering Education, On-line at http://www.cs.ttu.edu/fase. 4. Naur, P. and B. Randall (eds.), Software Engineering: A Report on a NATO Conference, Sponsored by the NATO Science Committee, NATO, 1969 5. Parnas, D., Software Engineering: An Unconsummated Marriage, ACM Software Engineering Notes, November, 1997, pp. 1-3. 6. Speed, J., Software Engineering, Licensure Exchange, Texas Board of Professional Engineers, 2 (3), June, 1998, pp. 1, 16. APPENDIX E Results to Date on Universities: Software Engineering Programs Abbreviations: CS=Computer Science; CIS=Computer and Information Science; SE=Software Engineering; ECE=Electrical and Computer Engineering; IT=Information Technology Each program is listed with the following information: * UNIVERSITY NAME * COLLEGE/SCHOOL: DEPT. * LEVEL * TITLE OF DEGREE Auburn University College of Engineering: CS and SE B.Sw.E. SE Auburn University College of Engineering: CS and SE M.Sw.E. SE Auburn University College of Engineering: CS and SE M.S. CS and SE Auburn University College of Engineering: CS and SE Ph.D. CS and SE Australian National University Faculty of Eng. And IT: CS B.Sw.E SE Australian National University Faculty of Eng. And IT: CS Bachelor of IT SE Butler University Liberal Arts and Sciences: CS B.S. See FASE, 1/2000 Cal Poly-San Luis Obispo College of Engineering: CS B.S. Currently proposing California State University, Fresno College of Engineering & CS: CS B.S. CS with SE option California State University, Hayward School of Science: Math and CS B.S. CS with SE option Calif. State University, Northridge College of Engineering and CS B.S. CS with No SE option Calif. State University, Sacramento College of Engineering and CS: CS M.S. SE Carroll College Undergraduate: CS B.S. C.S. with SE option Carroll College Graduate: CS M.S. (sent to NCA) SE Carnegie Mellon University School of Computer Science: Institute for SW Research Intl Master SE Carnegie Mellon University School of Computer Science: Institute for SW Research Intl M.S. IT, SE concentration (Dist. Learn. ONLY) Colorado Technical University [no school listed]: CS M.S. CS: SE concentration East Tennessee State University College of Applied Science and Technology: CIS M.S. CS with SE concentration Florida A&M University [no school listed]: CIS M.S Software Engineering Science Florida State University College of Arts and Sciences: CS B.S/B.A CIS with major in SE Florida State University College of Arts and Sciences: CS Master of Science/Arts CIS with major in SE Embry-Riddle Aeronautical University Computing and Mathematics B.S. CS with SE focus Embry-Riddle Aeronautical University Computing and Mathematics Master of SE SE Gannon University School of Engineering and Computer Science: ECE B.S. EE/SW conc., embedded focus Gannon University School of Engineering and Computer Science: ECE M.S. Embedded SE Gannon University School of Engineering and Computer Science: ECE M.S. EE/embedded Software conc. George Mason University School of IT & Engineering: Information and SE M.S. SE George Mason University School of IT & Engineering: Information and SE Ph.D. IT, with SE specialization Kansas State University College of Engineering: CIS M.S. SE McMaster University Faculty of Engineering: Computing and Software B.E. Mercer University School of Engineering: Electrical and Computer Engineering M.S.E. SE Mercer University School of Engineering: Electrical and Computer Engineering M.S. SE Milwaukee School of Engineering Engineering (not really a separate college): EECS B.S. SE Mississippi State University College of Engineering: CS B.S. SE Monash University Faculty of IT: School of CS & SE B.S. SE Monmouth University School of Science, Technology and Engineering: Software and EE B.S. SE Monmouth University School of Science, Technology and Engineering: Software and EE M.S. SE Murdoch University Division of Science and Engineering: School of Eng. B.E. SE Murdoch University Division of Science and Engineering: School of Engineering B. Eng.Sc SE Murdoch University Division of Science and Engineering: School of Eng. M. Eng.Sc SE Nat. Univ. of Ireland, Galway Faculty of Engineering: Electronic B.E. Electronic and CE Naval Postgraduate School CIS and Operations Division: CS M.S. SE Naval Postgraduate School CIS and Operations Division: CS Ph.D. SE Oregon*:OU, OSU, PSU, Grad. School Engineering, except OU-Arts & Sciences: CS Master SE Polytechnic Univ-Chimborazo:ESPOCH College of Computer Software Systems Eng.: School of CS CS System Engineer SW Systems Polytechnic Univ-Chimborazo:ESPOCH College of Computer Software Systems Eng.: School of CS Master of CS Applied SW Systems Applied Rochester Institute of Technology College of Engineering & College of App. S&T: SE B.S. SE Santa Clara University College of Engineering: CE M.S. SE Seattle University College of Science and Engineering: CS AND SE M.S SE Slovak University of Technology Faculty of EE and IT: CS Bc. Informatics/SE conc. Slovak University of Technology Faculty of EE and IT: CS Ing. Informatics/SE conc. Slovak University of Technology Faculty of EE and IT: Computer Science Ph.D. Software and Information Sys. Southern Polytechnic State University College of Arts and Sciences: CS M.S. SE Southern Methodist University School of Engin. & App. Sci.:CSE M.S. SE Stevens Institute of Technology School of App. Sci. & Lib Arts: CS B.S. SE focus Swinburne University of Technology School of IT: no faculties Bachelor SE Swinburne University of Technology School of IT: no faculties Bachelor Applied Science (CS & SE) Swinburne University of Technology School of IT: no faculties Master IT, SE concentration Swinburne University of Technology School of IT: no faculties Doctor of Philosophy SE concentration Texas State Technical College Computer/Graphics A.A.S. SE Technology Texas Tech University College of Engineering: CS M.S SE Ume University CS M.S. CS Ume University CS Ph.D. CS Universidad Autonoma de Madrid Computer Science School: Computer Science Engineering Ingeniero Informatica Universidad Autonoma de Madrid Computer Science School: Computer Science Engineering Doctor Informatica University of Auckland School of Engineering: CS Bachelor of Engineer. SE University of Auckland Science Faculty: Electrical and Electronic Engineering Ph.D. Any field, by thesis only University of Calgary Faculty of Science: CS B.Sc. CS: SE spec. planned University of Calgary Faculty of Science: CS M.Sc. CS: SE spec. - thesis/course University of Calgary Faculty of Science: CS Ph.D. CS: SE spec. - thesis/course University of Melbourne Faculty of Engineering: CS & SE Bachelor of Engin. SE University of Michigan-Dearborn College of Engineering and CS: CS/ECE M.S SE University of Michigan-Dearborn College of Engineering and CS: CS M.S in CIS, with SE option CIS University of Michigan-Dearborn College of Engineering and CS: CS B.S. SE University of Missouri-Kansas City CS Telecommunications B.S. CS: SE concentration University of Missouri-Kansas City CS Telecommunications M.S. CS: SE concentration University of Missouri-Kansas City CS Telecommunications Ph.D. CS: SE concentration University of Nebraska College of Engineering: CS and Engineering M.S. SE University of Ottawa Faculty of Engineering: School of IT & Engineering Bachelor of Applied Science SE University of Queensland Faculty of Engineering, Physical Science & Architecture: CS & EE Bachelor of Engineering SE University of Scranton Graduate School: Computing Sciences M.S. SE University of Strathclyde Faculty of Science: CS B.S. SE University of St. Thomas School of Sci. and Engin. Grad Pgms M.S. SE, IT, IS University of Stuttgart Informatics Diplom -Informatiker (in) University of Wales, Penglais Faculty of Science: CS B. Engineering SE University of Wales, Penglais Faculty of Science: CS M. Engineering SE University of Washington Computing & SW Systems Program B.S. Computing & SW Sys. University of Wisconsin-Platteville College of Engineering, Math and Science: Electrical & SE B.S. SE ###################################################################### From: Don Gotterbarn ALERT: A danger to the Public and a danger to the development of Safe Quality Software in new legislation Donald Gotterbarn, Software Engineering Ethics Research Institute To: All Software Professionals Several states are considering legislation that directly threatens the well being of our populace and the health of software development in the United States. The proposed legislation, the Uniform Computer Information Transactions Act (UCITA) would govern all contracts for the development, sale, licensing, maintenance, and support of computer software.(1) UCITA began as a proposal to amend the Uniform Commercial Code (UCC) to cover software. The UCC is designed to guarantee the safety and merchantability of all products purchased in the US. The American Law Institute (ALI) and the National Conference of Commissioners on Uniform State Laws (NCCUSL) supported an amendment to the UCC. The amendment would extend the UCC to regulate transactions involving intangible goods (computer software, online databases and other information products in digital form). The law, however, as currently written, would eliminate past gains in understanding and defining the responsibilities of computing professionals. UCITA as written: a. would allow companies to release software without disclosing known faults; b. mandates that developers are not liable for any damages resulting from these known faults; c. requires the developers consent for others to disclose faults discovered with their software; d. allows software--called "self-help"-- to be incorporated into products which can remotely disable the software which runs the product; and e. asserts that developers of software with "self-help" are not liable for damages should the software be disabled by a third party. To appreciate the importance of maintaining an acceptable standard of professional responsibility, consider the reaction to the numerous charges and complaints made against a large tire manufacture for distributing tires that are defective. One major concern is that the tires proved to be defective but of equal concern is the appearance that: 1. Testing done by the company revealed these defects four years before the recall. 2. The tires were, nevertheless, distributed with full knowledge of the risk to the consumer. 3. The company had over 1,000 complaints and still did nothing. 4. The consumers were kept in the dark about known the risks of these tires. 5. Actions 1-4 contributed to over 100 fatalities and over 800 injuries. This apparent failure of responsibility is unacceptable and has quite reasonably generated a flurry of legislative activity to prevent similar activity and legislation to provide penalties for those who withhold critical safety data.(2) What is startling and unacceptable to professional software developers is that UCITA, however, would condone and encourage activities like 1-4 for software. A. UCITA denies the vendor's responsibility to do thorough tests. UCITA allows vendors to deny all liability even when they release software with known bugs where disastrous results could have been foreseen. UCITA protects vendors from lawsuits when they knowingly distribute software with bugs even if they hide this knowledge from users. The justification for this denial of liability is the vendor's claim that programs are complex and they can't show the software to be error free. The Act makes the customer responsible for testing. All professional responsibility of the vendor, with their cadre of trained developers, is passed on to the client. UCITA denies the responsibility of the vendor to do thorough tests. (3) B. If a customer finds an error in the software, the act also prohibits any re-engineering of the product to fix the bug. Laws that discourage the development of reliable software or make it more difficult to detect software problems are clearly against any standards of professional practice. Those lucky enough to detect one of these bugs before it does damage are prohibited by UCITA from publishing the results of their tests or publishing other criticisms without the vendor's permission. Under UCITA, vendors must grant permission to release or to use this information for legitimate scientific, research, or educational purposes. Controlled information, however, also includes benchmarks, security warning, and negative reviews. And to make matters even worse, UCITA would legislate a gag order on anyone who discovered flaws or dangers in a software product. We could not imagine a law that prohibited revealing the dangers in defective life critical software. UCITA prohibits revealing defects in licensed software unless the developers themselves give you permission to reveal such defects. C. In order to protect their licenses, vendors are allowed to exercise "electronic self-help". "Electronic self-help" is the right of vendors to electronically repossess their software if they feel the terms of their contract have been violated: for example "self-help" could be embedded code in an application that can disable software. Embedded code raises numerous security issues. But vendors don't have to worry about this because UCITA also protects them from any liability from the damage that results when a third party uses "self help" to disable your code intentionally or accidentally. The existence of Microsoft's Office registration wizard indicates that we should not be optimistic that vendors will not use (and perhaps abuse) this self-help feature of the act. A version of UCITA for the automobile tire industry, in other words, would have allowed the tire manufacturer to deny all responsibility for producing faulty tires, have relived manufacturers of all responsibility and liability for the 100 plus deaths caused by their defective tires, as well as distributing tires with known defects and hiding those defects would be acceptable. Moreover, if UCITA covered tires, the tire manufacturer's permission is required by those who want to warn the populace of the potential danger. It is surprising that this legislation is even being considered. Since UCITA's initial formulation various groups have aligned against it. In the early stages the ALI withdrew its support, apparently because the document reflects a persistent bias in favor of companies who publish or sell software.(4) But NCCUSL went forward with the proposal. Many groups have rejected the proposal (5) for a variety of reasons (6). Among those who reject the proposal are the ACM, IEEE, and 26 states' attorneys general. But the Act is being passed anyway. Even though UCITA seems unconstitutional with its limits on free speech, it has already (October 2000) been approved by some states. The Act is being considered by one state at a time. Virginia has approved it. Maryland has approved it. They have legislated that computer developers are not responsible. Arizona, Delaware, District of Columbia, Hawaii, and New Jersey are considering it. There are at least two major problems with this Act. The first is that it puts software users at very high risk. If this act is passed we "...will encourage a race to the bottom in terms of software quality."(7) A second problem is the harm it does to the developing profession of software engineering. All computing professionals should be embarrassed by what this Act says about the state of the profession. Software engineers have been improving methods of software development and establishing standards to improve quality. Corporations have adopted various software process improvement models such as CMM(R) and Six SIGMA (8) and IEEE software engineering standards. Even though adopting such statistical control techniques involves extra work, software engineers have generally approved the use of the best quality control techniques. Corporations and professional organizations have committed themselves to the use of these standards when they publicly adopted the Software Engineering Code of Ethics and Professional Practice (9). These improvements are the hope for the future of software quality and safety. UCITA, however, runs contrary to the spirit of the Code by (10) essentially removing all incentives for such improvement and by legislating non-disclosure of bugs, preventing such improvements. The Software Engineering Ethics Research Institute was formed to promote the development of ethical and professional practices that address the impacts of software engineering and related technologies on society. SEERI is opposed to this Act because we think Ed Foster, a columnist for InfoWorld, had it right when he said, "One way or another, the fight over UCITA is going to mark a watershed in the software industry's development. It will either lead to the day when the software industry fully accepts the responsibilities it has to its customers or the day when it finally rejects those responsibilities."(11) UCITA effectively legislates away these improvements, provides negative incentive for these improvements and we believe thereby endangers the populace. This bill is clearly opposed to any reasonable standards of software engineering. We urge you to actively oppose this Act. The problem is what can we do about it? The IEEE-USA has recently put together an IEEE_USA Advocacy Kit (12) as an information resource for those who are "concerned and willing to take personal action to contact their state legislatures urging them to oppose passage of the model law." Legislators are busy people and WE need to call their attention to the issues, but sending comments on UCITA before a particular state legislature starts to evaluate the proposal will probably not be effective. To facilitate timely communications with your legislators, you can access the Software Engineering Ethics Research Institute web site http://csciwww.etsu.edu/seeri and provide them with your email address and state of residence name. They will notify you when UCITA is being considered in your state. They will also provide you with the email addresses of your legislators so that you can communicate your views on UCITA directly to them. (R)CMM is registered in the U.S. Patent and Trademark Office. (1) http://www.acm.org/usacm/copyright/ (2) http://news.excite.com/news/ap/000920/02/news-tire-deaths (3) www.4cite.org "For a Competitive Information and Technology Economy" (4) www.acm.org/usacm/copyright/ucita.cacm.htm (Letter from Barbara Simons, past ACM president) (5) www.acm.org/usacm/copyright/asq_ucita.html (6) For a list of groups opposing UCITA see "Opposing Adoption of the Uniform Computer Information Transactions Act (UCITA) By the States," approved By the IEEE-USA Board of Directors (Feb. 2000) - see www.ieeeusa.org/forum/POSITIONS/ucita.html. Also see the Federal Trade Commission letter to chair of NCCUSL (www.ftc.gov/be/v990010.htm) (7) www.acm.org.usacm/copyright/ucita.cacm.htm (Letter from Barbara Simons, past ACM president.) (8) David Card, "Sorting out Six Sigma and CMM(R)," IEEE Software May/June 2000) (9) http://csciwww.etsu.edu/seeri/SE_Code_Adopter (10) The Code affirms the software engineer's responsibilities to society and a commitment to report defective and dangerous software. "1.03. Approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment." "6.08. Take responsibility for detecting, correcting, and reporting errors in software and associated documents on which they work." A law that says you must ask permission to report any dangerous situation is in direct opposition to the Code. "1.04. Disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents." http://computer.org/computer/code-of-ethics.pdf. (11) Ed Foster of InfoWorld, the only journalist following the process from the beginning, has campaigned against this bill since the beginning. A short list of reasons for opposition is at http://www.infoworld.com/ucita/index.html (12) http://www.ieeeusa.org/grassroots/ucita/ucitakit.pdf ###################################################################### From: Mario Kupries Professional Software Engineering Concept (PSEC) - Draft version 2.3, October 2000 - The file can be downloaded as a pdf document at http://www.software-engineer.org Erika Horn Institute for Informatics University of Potsdam Germany ehorn@soft.cs.uni-potsdam.de Mario Kupries Computer Science Department University of Petroleum Saudi Arabia mkupries@ccse.kfupm.edu.sa Abstract: A study program philosophy for Professional Software Engineers will be outlined oriented towards current deficits and software technical requirements in industry, and considering important aspects of the occupation of future software engineers. In the educational concept the view is taken that the fundamentals of the analysis, modeling, realization and adaptation of software systems are based on the existence of models, technical descriptions and means of expressions. The development of software systems is considered as an overall engineering, model-based process oriented on organizational facts and market needs. Thus by developing software systems a product character is being obtained which has to be reflected in teaching subjects, study programs, technology and knowledge transfer. Since software products cover numerous facets and aspects of complex systems, the training of professional software engineers has to cover overall construction methodologies. To satisfy market needs, professional subjects, software and hardware system labs are defined and described. PSEC merges study complexes and labs into an integrated professional software engineering study program based on international standards. 1. Software Engineering as a Professional Engineering Discipline "Software engineering is the application of principles, methods and techniques to the analysis, design, prefabrication, development and adaptation of programs and systems of programs." As an interdisciplinary work and research field Professional Software Engineering (PSE) requires extensive knowledge of various disciplines such as formal semantics, logics, security, software architecture, computer hardware, distributed programming, middleware technology, coordination and planning, decision theory and business organization. In addition to its interdisciplinary character and knowledge from various disciplines, the development of complex modern application systems makes great software technical demands on mobility, adaptability, complex and interoperable interactions, open and human- centered systems. Here it becomes obvious that the practical application of modern technologies is ahead of its engineering substantiation. Examples of the existing deficits are - non-uniform, non-standardized means of expressions and descriptions - insufficient technical communication skills - non-uniform, non-standardized definitions, applications of software building blocks and methodologies - non-existing, non-standardized order, abstraction layers of building blocks, systems and interactions - insufficient exploration of approaches and limitations of alternatives for developing systems - insufficient frame works and platforms for powerful, interoperable and secure application systems - insufficient development of tools for the intuitive use and handling of modern application systems - missing concepts of the pre-fabrication and re-use of building blocks, systems and interactions - no predictability of interactions and dependencies between building blocks, systems and organizations - ... The insufficient software technical foundation, a lock of logical levels and substantiated approaches for an engineering analysis, modeling, development, validation and verification of application systems and their building blocks necessitate an engineering treatment and, furthermore, an engineering-based training of future PSE graduates. In analogy to traditional engineering approaches, such a study program has to be based on the teaching of standards, development frameworks and the re-use of pre-fabricated building blocks and partial systems. Thus, the development process of complex systems has to be taught on the basis of reference architectures and solutions as well as on the basis of experience and abstracted knowledge of developers. 2. Software systems are built into architectural frames Software systems are characterized by complexity, openness, diversity, etc. and require substantiated engineering approaches for modeling, implementation, validation and adaptation. By applying engineering methods, software systems obtain a product character since requirements, models, architectures, specifications and implementation prescriptions are being delivered as parts of the product with every phase of its life cycle. Software products are based and built according to standardized means of expressions and methodologies. This general orientation has strong implications and has to be reflected in the study program: Learning engineering approaches and methodologies such as - system theoretical and application technical treatment - abstraction layers, composition and delegation - allocation of model types to problem space and solutions - architectural frames and architecture-based development - paradigms und principles - team work - ... according to the characteristics of software systems - huge complexity - (mass of) people involved - multi-lingual, -paradigm, - openness (heterogeneity, distribution, evolution) - ... The training of Professional Software Engineers has to be oriented towards engineering methodologies and market needs according to the substantiated use of latest software technologies. These requirements are to be integrated into the occupation. Typical practises can be specified for: - model-based analysis, design, implementation and validation/verification - team-oriented practising - transformation of user-specific technologies - identification of key solutions to problem space - product release and marketing plus technology transfer - ... 3. PSEC study program "Solving engineering problems by practising theoretical, mathematical and engineering principles within an overall product life cycle" PSEC outlines a study program philosophy oriented towards software technical requirements and their engineering substantiation as well as towards the occupation image of future PSE degree holders. PSEC comprises the creation and application of theoretical and engineering fundamentals for models, methodologies, instruments for systematic and team-oriented analysis, development (consisting of construction, implementation, test), application, maintenance, validation and verification of complex software systems. PSEC focuses on: - abstraction layers and model transformation / mapping - building block methodologies and abstraction levels - constructive (meaning operational) view of software systems - architectural frames and patterns for classes of application systems - aspect-oriented de-composing of software systems - measurement of couplings, throughput, performance, building block reliability - ... Due to the engineering substantiation of software technical skills based on standards, architectural frames and engineering practice a stringent training concept is formed by PSEC. 3.1 Administrative Organization Since engineering practice is seen as the basis of PSEC, the educational program is deeply influenced by model-based, architectural and constructive concerns. To offer high flexibility, PSEC's administrative and organizational concept is oriented towards international standards like - openness of study program using credit point system - broad training enabled and enforced by interdisciplinary concepts - internationally recognized degrees (BSc, MSc) - stay abroad, multi-lingual study life - environment of labs, equipment, software, tools, literature, library - interactions and programs oriented towards market needs - ... Interaction with the market is especially beneficial to determine technology developments, trends and future engineering skills applied to system construction. Examples of interactions are: Q: What are features of future application systems? A: Interoperability, mobility, openness, anthropomorpy, adaptation, workflow functionality, ... Q: What tasks do future PSE degree holders have to complete? A: Team management, analysis, design and re-engineering of complex systems, system development as one integrated process In addition to the orientation towards market needs, practical training is one of the major issues of PSEC. Thus training, internships and projects are integrated dealing with - huge complexity and interdependent processes - passing through all phases of a life cycle - team work character involving more than 20 members and distributed locations - industrial representatives and product character - ... Below, study complexes [HORN98] of the PSEC program are introduced and defined. 3.2 Study complexes and lectures A study complex is understood as a field of PSE knowledge. Several lectures are allocated to each study complex. Through the planning of study complexes a flexible organization of the study program is achieved. In the first semesters the allocation of lectures to study complexes can be fixed. In higher semesters several lectures can be allocated to one study complex ensuring the freedom of selection within semesters and study complexes. At the same time the open allocation of lectures to study complexes offers the opportunity to - adapt the study programs to available resources (instructors, projects, students) - flexibility according to new research results and lectures - allocate and recognize study results from abroad - integrate external specialists (engineers from practice, other universities, .) - ... Every study complex consists of multiple lectures but is open to numbers and specifications. An exemplary allocation of lectures to study complexes will be outlined. **Ethics An introduction to PSE and Computer Science is given based on an overview of subjects, working fields, description of means and instruments, study programs, study forms, communication skills and styles. Ethics is due to enforce the motivation and orientation of students. **Mathematics Subjects are the partial fields of mathematics related to engineering disciplines in general and to PSE in particular. Examples used in training should cover PSE-relevant content and discourse. Lectures: - common algebra - algebra and geometry - discrete mathematics - logics - probability theory and statistics - analysis and numerical mathematics **Fundamentals of theoretical Computer Science From the point of view of theoretical Computer Science PSE specialists should be able to - define a language according to the analyzed context and discourse and to implement the language - read and describe software building blocks using formal specifications - map formal specifications of software building blocks onto programming elements and structures - test an implementation according to its specification (validation) - estimate the complexity of programs und problem space - ... Lectures: - formal languages, machine models - theoretical foundation of software development - computability and programming language paradigms - complexity **System technical fundamentals The description of products and processes using system technical means of expression is commonly used and applied in engineering disciplines. Thus, teaching fundamentals of system techniques is an essential part of the PSEC educational program. A system consists of components related to each other and attached to a unit via connectors. Systems have - an external behavior and interact with their environment - an internal structure which can be analyzed. Different aspects of the structure and behavior of software systems can be described by various system models. Executing models and simulations of existing or prethought (virtual) systems can be examined. Lectures: - fundamentals of system theory - coding theory and cryptography - graphs and their application for system modeling - system modeling, simulation and optimization **Technical fundamentals Technical fundamentals and practical examples of building blocks of computers, computer architectures and computer networks are taught using system technical models and means of expressions. Lectures: - computer architectures - computer communication and networks - technical building blocks and building block assemblies - models of hardware and hardware description languages **Software basis technologies Software basis technologies are the partial systems used by PSE specialists to examine and to develop software products. These are operating systems, compiler, interpreter, standard programs for data management, for the representation of data and programs, for computer communication, for searching in networks, for knowledge management, etc. PSE specialists have to choose and to apply standard basis components and to integrate them into development environments. The development of basis components is domain the of Computer Science graduates and specialists. Lectures: Fundamental techniques - operating systems - computer networks and protocols - languages, compiler, interpreter - databases - expert systems - information systems **Complex techniques - multi-media techniques and tools - teleconferencing techniques - workflow modeling and management - internet and intranet **Analysis of software systems and software artifacts The aim of this study complex is to impart knowledge of architectures, modes of actions, development processes, operating guidelines of software systems on the basis of existing software products. This education line consists of lectures providing abstracted, ordered and structured knowledge of complex software products and consists of practical sessions held in labs where systems are analyzed by students in teams. Lectures: - concepts of system modeling - software products grading - re-engineering of software products - modeling and simulation - system optimization **Software architecture Compared to other technical products, software products consist of building blocks and building block assemblies which can be produced and re-used separately, too. Thus software development is the composition of building blocks. Generally speaking, software systems are heterogeneous and distributed. According to [SHAW96] software architecture describes the building blocks software systems are composed of and the interactions of components using connectors (see [SHAW93]). There are various types of connectors, components and systems. In analogy to other engineering disciplines (e.g. mechanical engineering) software product types can be classified and derived from the point of view of software architecture. They are considered and taught as classes of software systems. Lectures: - engineering technical fundamentals of software architecture - basis architecture types - software building blocks und building block theory - architecture description languages - construction theory - frame works and patterns - technical support and tools **Fundamentals of programming This study complex contains fundamental concepts of programming techniques, especially for the programming in the small. Subjects are - algorithms and their design - data structure and data types - basics of programming paradigms and languages - typical, representative data structures and standard algorithms - basics of algorithm grading - know-how for testing program fragments - ... Lectures: - algorithms, data, programs and standards - parallel processes and parallel processing - program tests **Models, methods, paradigms Theoretical fundamentals, models, methods and tools for the development of complex software products are part of this study complex. It is built upon knowledge acquired in the following lectures: - basis technologies - concepts of system modeling - software architecture - software project - software quality assurance - human computer interaction and software ergonomics As common in all working processes division of labor is necessary for software development. A horizontal as well as vertical division of labor has to be reflected within software development: - horizontal: according to parts of systems to solve data processing tasks (e.g. data management, user interface, error and exception handling) - vertical: according to application cases and fields (e.g. planning production systems, materials administration, accounting) This division of labor is reflected by the study complexes 'software architecture' and 'basis technologies'. Lectures: - models of software development - software construction and design - methods of software development and tools - processes of software development (life cycle) **Software documentation and standards Principles of software documentation are taught. Students will be introduced into software standards. **Software management Specific models and methods are taught for the management of software projects. Lectures: - definition and calculation of software projects - software project organization and management - software project introduction and acceptance - software marketing - technology transfer - software project coaching and maintenance - software project and product documentation - enterprise start-up and leadership **Software quality and quality assurance Software as a product is characterized by specific quality features. These features have to be specified for the product development in the target specification and to be proven at the product or its pre-released prototype. As common for any other technical product standards are determining and regulating software quality and quality management. These standards have to be implemented and realized in a product-specific manner for the development of the software. Lectures: - software quality and standards - security and reliability of software systems - human-computer interaction - software and system ergonomics - testing of software systems - error and exception handling - measurement and evaluation of software systems - software quality management 3.3 Allocation of study complexes to education lines Education lines are oriented towards software products and not towards the partial education fields of Computer Science. Thus the PSE study program differs substantially from this of Computer Science (compare [PARNAS98], [McCONNELL1999]). As education lines will be introduced: - theoretical fundamentals of PSE - system technical fundamentals of PSE and software analysis - technical fundamentals of PSE - software basis systems - software and software development - software product aspects. **Theoretical fundamentals of PSE Theoretical fundaments of PSE comprise mathematical fundamentals of PSE and relevant subjects of theoretical Computer Science. **System technical fundamentals of PSE and software analysis PSE as well as other engineering disciplines are based on common system techniques and theory. Since these are of great importance an own education line is being formed. The core of this education line is software analysis, too. **Technical fundamentals of PSE This education line deals with subjects of technical Computer Science relevant to PSE. **Software basis systems To realize software products, PSE specialists make use of numerous program systems interpreted by the basis machine of a computer. In contrast to the study program for computer scientists, PSE specialists are not taught to be the developers of such systems but their users. **Software and software development An important aim of an engineering discipline is the development of products. This education line teaches knowledge about parts of software products, technical aspects of product development and product development processes. **Software product aspects This education line deals with knowledge about important aspects of software and software products in social working processes and about the environment of software products. To satisfy market needs and improve the technical skills of future PSE degree holders (compare [DIAZ98]) practical exercises and laboratories are integrated into PSEC. 3.4 Enforcing technical skills To improve technical skills and to enforce the constructive part of PSEC, practical training will be held in system laboratories. Labs are specialized according to education lines and thus are classified into software system and hardware system labs. **Software system lab (software development studio) The software system lab serves the application of acquired knowledge for the analysis, development, adaptation and further development of large software products. By realizing complex practical work requiring the application of knowledge from various study complexes and lectures, an important role played by the software system lab. It is recommended to have several software system labs established to initialize, fundraise and coach appropriate projects. PSE recommends the establishment of three software system labs: - Software system lab I: analysis and re-engineering of software products - Software system lab II: development of software products - Software system lab III: marketing of software products PSE students take part in a one-term software project held in the software system lab II. According to industry's needs all phases of a product life cycle are passed through by developer teams under real market conditions. Software system lab I: analysis and re-engineering of software products The aim is the examination of existing and large software products using various techniques (e.g. techniques of system modeling, software architecture, software ergonomics), the representation of analysis results as well as the re-engineering of system components or partial systems. Partners from industry interested in analyzing and re-engineering their software products and capable to support such projects have to be found. Projects must result in economic benefits. Software system lab II: development of software products The aim is the development of software products using acquired knowledge from study complexes. As a starting point a task to develop a new software product or to adapt an existing product will be assigned by an industrial principal. All phases of development starting with the compilation of target specification up to releasing the product to the principal have to be passed through by development teams. Issuing documentation is included, too. The software development project has to realize vertical and horizontal division of labor as well as division of roles (e.g. programmer, people involved in quality assurance) in a practise relevant manner. Software system lab III: marketing of software products A marketing concept for a given software product has to be specified and realized. Parts of the concept are - product advertising - product presentation on the net - preparation of and participation in fairs and exhibitions - development of exemplary application cases - compilation of user manual - selling strategies, contract and license management - coaching and market introduction/implementation - hotline organization - ... Software system lab III deals with software projects from lab I and II or with given products by an industrial principal. The sequence of students' passing the labs is according to the number of the lab. **Hardware system lab (hardware performance studio) The hardware system lab serves the application of acquired knowledge of technical aspects of software products. In contrast to software labs, students apply components and partial systems to realize complex and embedded software products. PSE recommends two hardware system labs: - Hardware system lab I: testing, analysis and composition - Hardware system lab II: distributed and mobile products Hardware system lab I: testing, analysis and composition The aim is to impart technical fundamentals by practical training focusing on the application of hardware building blocks and building block assemblies for the realization of software products. Practical work comprises the analysis and testing of hardware components, the composition of components to complex systems and the use of peripherals (e.g. robots). Hardware system lab II: distributed and mobile products The aim is the handling of distributed, heterogeneous and mobile systems (e.g. satellites), practical fundamentals of embedded systems, computer communication, networks, security (e.g. intranet). Specialization and substantiated experience of future PSE graduates In addition to study complexes, software projects and labs, an increasing complexity and market needs justify the specialization of future PSE degree holders. This specialization demand is reflected by PSEC providing MSc students with substantiated experience according to - roles in software projects and labs (horizontal, vertical) - functional and non-functional aspects of software products (e.g. security, coordination specialists) - selected classes of software products (e.g. embedded, workflow or multi-media systems). The specialization of future PSE graduates is not based on the restriction or limitation of study complexes but is realized by the interpretation of overall fundamentals, methodologies and knowledge for specified project roles, product aspects and classes of software products. 4. Conclusion PSEC outlined a study program philosophy oriented towards software technical requirements in industry and market needs. Thus important aspects of the PSE graduates occupation image were considered and evaluated concerning their engineering substantiation. According to existing deficits and to software technical demands, a special study program was introduced and explained in detail. To offer high flexibility, lectures of the educational program were assigned to study complexes. To satisfy the market needs, software and hardware system labs were proposed and described. The study complexes and labs were merged into an integrated professional software engineering study program based on international standards. The concept of PSEC is ready to be integrated into international discussions as well as into standardization and accreditation programs: Having agreed upon PSEC study complexes, education lines, software and hardware system labs, this study program can be established focusing on the application and adaptation of substantiated engineering traditions, habits, methodologies and approaches. To train MSc students, a specialization according to roles, functional and non-functional aspects and classes of software products is recommended. The file can be downloaded as a pdf document at http://www.software-engineer.org References [DIAZ98] Diaz-Herrera J., Powell, G. M. (1998) "Educating Industrial Strength Software Engineers", Conference on Software Engineering Education and Training, Atlanta. [HORN98] Horn, E. (1998) "Classification and delimitation of the study program 'software systems engineering' at University of Potsdam". [HORN99] Horn, E. (1999) "Agent models for software technology", workshop on multi-agent systems, Tutzingen. [McCONNELL99] McConnell, S. (1999) "After the Gold Rush", Microsoft Press. [PARNAS98] Parnas, D. (1998) "Software Engineering Programs are not Computer Science Programs", Annuals of Software Engineering. [SHAW93] Shaw, M. (1993) "Procedure Calls Are the Assembly Language of Software Interconnections: Connectors Deserve First-Class Status", Technical Report, CMU/SEI-94-TR-2, Software Engineering Institute, Carnegie Mellon University. [SHAW96] Shaw, M., Garlan, D. (1996) "Software Architecture. Perspectives on an Emerging Discipline.", Prentice Hall. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ News Items ###################################################################### By: Don Bagert (Professional Issues Editor) Continuing Discussion on SE Licensing in Engineering Times The Letters section of the November 2000 issue of the Engineering Times, published by the USA-based National Society of Professional Engineers (NSPE), continues a discussion between Roger Zimmerman (a NSPE National Director from New Mexico) and Dale Sall, President of the National Council of Examiners for Engineering and Surveying (NCEES), the organization which provides engineering licensing examinations to most states in the USA. (See the June and September 2000 issues of FASE for previous articles concerning this discussion.) Mr. Zimmerman writes "Sall points out that NCEES...[has] and will not ask an organization to prepare [a licensing] exam unless there is an accredited curriculum [in that discipline]. [This] writer, and apparently the Association for Computing Machinery (ACM), thought that NCEES was advocating software engineering as a new discipline. The net result is that ACM has taken a position against the licensing of software engineers as PEs. [Editor Note: See July 2000 FASE] Is the public better off because NCEES and ACM have taken their positions? Are PEs and non-PEs any closer to being able to work out their differences? "...Shouldn't NSPE be proactive in defining and shaping the professional with energy and ideas? Is NSPE fails to meet this responsibility now, the engineering professional and eventually the public will suffer..." ###################################################################### From: Hassan Gomaa Subject: New textbook on software design The following textbook has recently been published: Designing Concurrent, Distributed, and Real-Time Applications with UML by Hassan Gomaa, published by Addison-Wesley Information about the book is provided on the Addison-Wesley web site at: http://cseng.aw.com/bookpage.taf?ISBN=0-201-65793-7 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Position Openings ###################################################################### From: Don Gotterbarn EAST TENNESSEE STATE UNIVERSITY SCHOOL OF APPLIED SCIENCE AND TECHNOLOGY DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES FACULTY POSITIONS AVAILABLE Seeking candidates for two tenure-track faculty positions. Consideration will be given to candidates with a Ph.D. or masters in computer science or a related field with appropriate experience. Preference will be given to candidates with, or nearing completion of, the Ph.D. in computer science. While candidates in all areas of computer science and information technology will be considered, the following areas are particularly desirable: (1) web design/creation and internet application development; (2) database; and (3) software engineering. A demonstrated interest in and promise of excellence in teaching a broad range of undergraduate and graduate courses is important. Good written and oral English skills and evidence of, or potential for, research, service and scholarly activity appropriate for a tenure track appointment are required. STARTING DATE: August, 2001 RESPONSIBILITIES: Teach undergraduate and graduate computer science courses, participate in departmental and professional research and service activities. UNIVERSITY: Regional state university, 12,000 students, graduate school, college of medicine. DEPARTMENT: Fourteen full-time faculty members, undergraduate and graduate (MS) programs in computer science. EQUIPMENT: Departmental facilities include 50 networked PCs running Windows NT, 10 Silicon Graphics workstations, a SGI Origin 200 Server, a Solaris Workstation, and four PC servers. LOCATION: One of Tri-Cities of Northeast Tennessee, excellent educational, cultural, recreational opportunities; area offers natural scenic beauty and 4-season outdoor recreational activities. RANK and SALARY: Assistant or Associate Professor. Salary is competitive and commensurate with background and experience. REVIEW OF APPLICATIONS: will begin immediately and continue until the position is filled. Send resume, graduate transcripts, a letter specifying areas of teaching interests, and three letters of recommendation to Dr. Terry Countermine, Chair, Department of Computer and Information Sciences, East Tennessee State University, Box 70711, Johnson City, TN 37614-0711. East Tennessee State University is an Equal Opportunity/Affirmative Action Employer. ###################################################################### From: Jim McDonald Monmouth University Software and Electrical Engineering Department School of Science, Technology and Engineering Software Engineering, Assistant Professor Position Monmouth University announces an opening for a position in the Department of Software and Electrical Engineering. The Department of Software and Electrical Engineering, in the School of Science, Technology and Engineering, offers Masters' degrees in Software Engineering and Electrical Engineering. It also offers a bachelors' degree in Software Engineering and a minor in Information Technology for undergraduates. The opening is for a software engineering tenure track appointment with faculty rank of assistant professor beginning in fall 2001. The successful candidate will be responsible for continuing development and delivery of a strong MSSE program that has been in place for over 10 years and an innovative BSSE program that started in the fall of 2000, and will also be expected to teach information technology courses to undergraduate students. The BSSE and MSSE programs provide valuable industrial and federal government contacts that faculty members can leverage for research or consulting work. Candidates must have a Ph. D. in a technical discipline, including computer science, the physical sciences, applied mathematics, computer engineering or another engineering discipline, with significant education, research or experience in software development. Candidates must be capable of teaching and conducting research in the areas of requirements engineering, software design methodologies, software quality assurance, verification and validation, project and process management, estimation techniques, software reliability, empirical software engineering or software metrics for either general-purpose information systems or real-time and embedded systems. All candidates must have a strong commitment to teaching excellence at the graduate and undergraduate levels, dedication to continued professional development and a broad interest in software engineering, information technology and/or computer engineering with an emphasis on software. An undergraduate degree in engineering, a professional engineering license or industrial experience in any of the areas outlined above will be considered an advantage. Monmouth University has approximately 5500 students, of whom 1200 are at the graduate level. Located at the Central New Jersey shore, approximately one hour south of New York City and 1-1/2 hours northeast of Philadelphia, Monmouth University's suburban campus is home to approximately 30 baccalaureate degree programs and 13 master's programs. It is located in an area that is home to some of the world's leading high technology companies and federal government organizations. Applicants should send a cover letter, including a statement of teaching and research interests, a resume and the names of three professional references to: Chair - Software Engineering Search Committee c/o Francis C. Lutz, Dean-School of Science, Technology and Engineering Room 540 - Howard Hall 400 Cedar Avenue West Long Branch, NJ 07764-1898 Applications should be submitted by January 1, 2001. They will be reviewed as they are received and will be accepted until the position is filled. Monmouth University is an Equal Opportunity Employer and we encourage female and minority candidates to apply for these positions. ###################################################################### From: Helen Hays Southeast Missouri State University Computer Science Department Applications are invited for one or more anticipated tenure track positions at all academic ranks starting August 2001. The department offers a B.S. in Computer Science and a B.S. in Applied Computer Science. There are well over 250 majors in the degree options. The department is working toward CSAB accreditation. A Ph.D. in Computer Science or closely related field is preferred. Postdoctoral experience is a plus. Candidates with a Ph.D. in another areas must have CS-related training, teaching, or research experience. ABD applicants are encouraged to apply. Retired individuals from both academia and industry are welcome. Instructor and adjunct positions for applicants with a master's degree or equivalent industrial experience are also available. There is no preference for the area of specialization in Computer Science, but the successful candidate must be able to teach the core subjects in the Computer Science curriculum. Excellent communication skills are required. The candidates with a Ph.D. must provide evidence of potential for continued scholarly activity. Southeast Missouri State University is a regional comprehensive university located in Cape Girardeau, Missouri. The university has approximately 8,000 students and serves a region that extends from St. Louis to the Arkansas border and west to the foothills of the Ozarks. Cape Girardeau is the major commercial and services center between St. Louis and Memphis. The area has a warm climate, recreational opportunities, low taxes, and moderate housing costs. Further information about the university may be found at http://www.semo.edu . Information about the region may be found at http://www.showme.net . Submit a vita with the names of at least three references, unofficial transcripts, and a brief description of teaching and research experience and interests to: Dr. Anthony Duben, Chairman, Department of Computer Science, Mail Stop 5950, Southeast Missouri State University, One University Plaza, Cape Girardeau MO 63701-4799. Review of applicants will continue until positions are filled. AA/M-F/EOE ###################################################################### From: Lawrence Chung University of Texas at Dallas THE UNIVERSITY OF TEXAS AT DALLAS DEPARTMENT OF COMPUTER SCIENCE TENURE - TRACK POSITIONS The Computer Science Department of the University of Texas at Dallas invites applications for tenure track faculty positions in software engineering at all levels, starting January 2001 or September 2001. Candidates for tenure-track positions must have a Ph.D. degree in Computer Science, or equivalent and expertise in the areas of Software Engineering, Embedded Systems. Candidates for junior positions should show strong potential for excellent teaching and research; candidates for senior positions should have a strong record of research, teaching, and external funding. The Computer Science Department offers the Ph.D. degree in Computer Science and has Master's degrees in CS with Major in Software Engineering as well as tracks in Telecommunications, and Traditional Computer Science. We have experienced very rapid growth in enrollment in recent years. The University is located in the most attractive suburbs of the Dallas metropolitan area. There are over 250 high-tech companies within 10 miles of the campus, including Texas Instruments, Nortel Networks, Alcatel, Ericsson, Hewlett-Packard, Nokia, Fujitsu, MCI, EDS, and Perot Systems. Almost all the country's leading telecommunication's companies have major research and development facilities in our neighborhood. Opportunities for joint university- industry research projects and consulting are excellent. One of our major initiatives in software engineering is the Embedded Software Center (ESC), an innovative industrial/academic collaborative center investigating sophisticated tools and techniques to increase dramatically the productivity and quality of embedded systems. ESC is pioneering the iAPEX (Infrastructure for Advanced Programming for Embedded Computer Systems) environment to facilitate software reuse. Active research areas include COTS aware requirements engineering; design for independent composition and evaluation; automated code synthesis, transformation, and composition; automated testing; aspect-oriented quality analysis; and automated embedded framework technology. In addition to individual faculty workstations, the department has six computer/research laboratories, equipped with around 200 high performance workstations and high-end PCs. The Academic Computer Center supports both UNIX based workstations and PCs as well as high-speed dial-in access to campus computing facilities. Currently the Computer Science Department has thirty four tenured/tenure track faculty and eight senior lecturers. The potential for growth is excellent. For more information, contact Dr. Simeon Ntafos, chair of the Search Committee, at 972-883-2809 or 972-883-2808, send e-mail to ntafos@utdallas.edu, or view the Internet Web page at http://www.utdallas.edu/dept/cs/. Applicants should mail their resume with a list of at least five academic or professional references as soon as possible to: Academic Search # 744 The University of Texas at Dallas P.O. Box 830688, M/S MP1.2 Richardson, TX 75083-0688. Indication of sex and ethnicity for Affirmative Action statistical purposes is requested but not required. Applications will be accepted until the positions are filled; screening will begin immediately. The University of Texas at Dallas is an Equal Opportunity Affirmative Action employer and strongly encourages applications from candidates who would enhance the diversity of the University's faculty and administration. ###################################################################### From: Manuel A. Perez-Quinones Virginia Tech Virginia Tech Department of Computer Science The Department of Computer Science seeks three Assistant Professors to join in August 2001 who will complement departmental research in the areas listed below, participate in innovative teaching practices, and improve faculty diversity. Exceptional individuals at senior ranks or in other areas will also be considered. Additional information is available at http://www.cs.vt.edu. The research areas (and our activities) are: software engineering (specialized MS degree program in development); bioinformatics (state-funded Virginia Bioinformatics Institute); systems and networking (clusters, Blacksburg Electronic Village, Internet Technology Innovation Center, world center for wireless communications). The department has an outstanding record of multidisciplinary research, and has projects in human-computer interaction, high performance computing, problem solving environments, digital libraries, and bioinformatics. These projects will be enhanced by the University's newly opened $26M Advanced Communication and Information Technology Center. Virginia Tech is located in Blacksburg, a scenic, lively, All-American Award winning town in southwest Virginia with affordable housing. Nearby is the white water of the New River and 1.7M mountainous acres of national forest. Applicants should send a curriculum vitae, a 1-2 page statement of professional plans and goals, and have at least three letters of reference sent to Faculty Search, Dept. of Computer Science, 660 McBryde Hall, Virginia Tech, Blacksburg, VA 24061. Review of candidates will begin January 15, 2001, and continue until the positions are filled. The university is deeply committed to recruiting, selecting, promoting, and retaining women, persons of color, and persons with disabilities. We strongly value diversity in the college community, and seek to assure equality in education and employment. Individuals with disabilities desiring accommodations in the application process should notify Dr. Dennis Kafura, 540/231-6931, TTY: 800/828-1120. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Contact and General Information about FASE FASE is published on the 15th of each month by the FASE staff. Send newsletter articles to one of the editors, preferably by category: Articles pertinent to academic education to Tom Hilburn ; corporate and government training to David Carter ; professional issues and all other categories to Don Bagert . If the article is for a FASE topic where there is a guest editor, the submission should instead be to that person. Items must be submitted by the 8th of the month in order to be considered for inclusion in that month's issue. Also, please see the submission guidelines immediately below. FASE submission format guidelines: All submissions must be in ASCII format, and contain no more than 70 characters per line (71 including the new line character). This 70-character/line format must be viewable in a text editor such as Microsoft Notepad WITHOUT using a "word wrap" facility. All characters (outside of the newline) should in the ASCII code range from 32 to 126 (i.e. "printable" in DOS text mode). _____ Subscribe/Unsubscribe Information (as of February 15, 2000) Everyone that is receiving this by email is on the FASE mailing list. If you wish to leave this list, send a message to and, in the text of your message (not the subject line), write: unsubscribe fase To rejoin (or have someone else join) the FASE mailing list, write to and, in the text of your message (not the subject line), write: subscribe fase For instance, if your name is Jane Smith, write: subscribe fase Jane Smith But what if you have something that you want to share with everyone else, before the next issue? For more real-time discussion, there is the FASE-TALK discussion list. It is our hope that it will be to FASE readers what the SIGCSE.members listserv is to that group. (For those of you that don't know, SIGCSE is the ACM Special Interest Group on Computer Science Education.) To subscribe to the FASE-TALK list, write to and, in the text of your message (not the subject line), write: subscribe fase-talk For instance, if your name is Jane Smith, write: subscribe fase-talk Jane Smith Please try to limit FASE-TALK to discussion items related to software engineering education, training and professional issues; CFPs and other such items can still be submitted to the editor for inclusion into FASE. Anyone that belongs to the FASE-TALK mailing list can post to it. As always, there is no cost for subscribing to either FASE or FASE-TALK! (Subscriptions can also be maintained through the Web via http://lyris.acs.ttu.edu. From there, click on "TTU Faculty Mailing Lists", and then either "fase" or "fase-talk", depending on which list you desire.) _____ Back issues (dating from the very first issue) can be found on the web (with each Table of Contents) at in chronological order, in reverse order, or through ftp at . _____ The FASE Staff: Tom Hilburn -- Academic Editor Embry-Riddle Aeronautical University Department of Computing and Mathematics Daytona Beach FL 32114 USA Phone: 904-226-6889 Fax: 904-226-6678 Email: hilburn@db.erau.edu URL: http://faculty.erau.edu/hilburn/ David Carter -- Corporate/Government Editor 6212 Mil Mar Blvd Alexandria LA 71302 USA Phone: 318-767-2339 Email: dacarter@bayou.com Don Bagert, P.E. -- Professional Issues/Misc Editor and Web/Listmaster Department of Computer Science 8th and Boston Texas Tech University Lubbock TX 79409-3104 USA Phone: 806-742-1189 Fax: 806-742-3519 Email: Don.Bagert@ttu.edu URL: http://www.cs.ttu.edu/faculty/bagert.html Laurie Werth -- Advisory Committee Taylor Hall 2.124 University of Texas at Austin Austin TX 78712 USA Phone: 512-471-9535 Fax: 512-471-8885 Email: lwerth@cs.utexas.edu Nancy Mead -- Advisory Committee Software Engineering Institute 5000 Forbes Ave. Pittsburgh, PA 15213 USA Phone: 412-268-5756 Fax: 412-268-5758 Email: nrm@sei.cmu.edu