Software Engineering is by its nature a multi-disciplinary discipline, spanning nearly every field that uses software systems. It is therefore highly aligned with the land-grant and comprehensive public university roles of UNL. By providing principles and strategies for developing high-quality software systems, Software Engineering will impact the quality of education, research, and service throughout campus.
Because Software Engineering is a new and emerging discipline that is experiencing rapid growth, significant resources and priority are necessary to ensure that UNL retains the ability to meet its tripartite mission of education, research, and service now and in the future. Doing so will help UNL achieve national prominence in research and education in an area of national significance and provide the necessary infrastructure to create a vibrant new economy based on information technologies in the State of Nebraska.
Software systems are amongst the most complex human produced artifacts, and current methods are inadequate for analyzing and constructing these large and complex systems.2 Software development methods remain labor-intensive and prone to errors. The Standish Group reports that 73 percent of software projects are late, substantially over budget, cancelled, or fail to meet the needs of customers.3 Only 16 percent of software projects are completed on-time and on-budget and of these, only 42 percent deliver the originally proposed features. Software failures causing the loss of two NASA Mars probes, the Denver airport baggage handling system, the multi-billion dollar failure of next-generation Air Traffic Control systems and other high visibility software problems underscore the critical need for improved software development methods and tools. As our reliance on software systems continues to increase, the potential of these systems to cripple commerce and/or threaten human life, also increases.
In the meantime, the demand for software systems continues to expand at a rapid rate. Software is now the third largest industry in the U.S., behind automobile manufacturing and electronics, and growing at a 12.5 percent rate between 1990 and 1996, nearly 2.5 times faster than the overall U.S. economy.4 Although the numbers are not yet available, this rate surely increased during the "dot com" expansion in the past few years. In spite of the more recent "dot bomb" phenomenon that has dampened these numbers, it is widely believed that the networked economy is here to stay, securing the software industry's position as a future economic leader.
The State of Nebraska has a critical need for IT and software trained professionals. The AIM Institute reports that 11.5% of all workers in Omaha are IT professionals, that IT employment is projected to grow about 5% per year over the next 5 years, but that only 59% of IT professionals hold a baccalaureate or advanced degree.5 Omaha ranks in the top 15 for software employment density,6 intensifying demand that will take significant effort, resources, and trained personnel to satisfy. Software Engineering is fundamental to IT endeavors and these skills are highly sought after by local industry. Recruiters are most interested in students with significant software project and team experiences, which are primarily taught in Software Engineering courses.
Student demand for the Introduction to Software Engineering course (CSCE 461/861) course has risen sharply in recent years. Although the course is not required for any curriculum, most students in Computer Science and Computer Engineering, and any from outside the department, enroll in the course. In the past two years the class limit has been raised from 40 to 60, and many students were turned away. A critical need exists for expanding the offerings of this course and for advanced courses that go beyond the introductory material.
The demand for software professionals is strong and is expected to remain strong for the next decade and beyond. UNL can play a significant role in both training software professionals and creating the software development infrastructure to achieve continued economic growth in this industry. Nebraska and the immediate region can benefit significantly from a Software Engineering priority at UNL.
Computer Science curriculums were built on a foundation that focused on the creation of algorithmic scientific applications. Although this discipline remains vital to campus and national concerns, it fails to adequately address needs that have arisen primarily outside the domain of scientific computing. Large-scale and data-intensive software systems require architectural, design, and organizational concepts that are currently underrepresented in Computer Science curriculums. New courses and new curriculums are needed to provide students with necessary skills from the rapidly growing body of knowledge in Software Engineering.
The Computer Science and Engineering department has taken initial steps toward these goals. The introductory Software Engineering course is one of the most popular in the department and will soon become a required course. A professional Master's degree in Software Engineering has been established in the College of Engineering. A Software Engineering track for Computer Science undergraduates is under review by the CSE Curriculum Committee and should be approved shortly. The JDEHP curriculum has significant Software Engineering components. These remain first steps in a long journey to address the needs of the region and Nation as a whole in the area of Software Engineering.
The national trend to create new undergraduate and graduate programs in Software Engineering underscore the urgent need to continue efforts that re-think and modernize Computer Science curriculums to meet the evolving needs of industry and research. Achieving these goals will require faculty with the necessary expertise to teach courses and supervise graduate students in this discipline.
UNL faculty have already established a track record of successful research funding in Software Engineering. In the current fiscal year alone, Computer Science and Engineering faculty have received four NSF awards in Software Engineering and closely related areas. Industry has also contributed grant funds to these research efforts. Between these nascent successes and the increasing research dollars being funneled into Software Engineering research initiatives, there is outstanding potential for creating a highly successful research team in this area.
UNL could significantly improve the state of the practice through its teaching and through seminars, workshops, and other public forums to discuss software engineering technologies and techniques. Faculty should be supported to engage in outreach activities such as speaking at local organizations and companies to convey the latest software engineering advances.
Equipment, software and supporting services are also important. Software development tools are far more complex and difficult to understand than the everyday applications created with these tools. Both research and educational programs need access to high-end computing systems and complex software systems that costs hundreds or thousands of dollars more than common office software. These systems also tend to have heavy administrative needs, creating a higher burden on system support personnel. The need for additional staff in system support is as critical as the need for additional faculty. Current resources in this area are currently inadequate and will become more critical as additional faculty and students become involved in the program.
Space for housing the hardware, as well as systems manuals and references, are also necessary. Currently the department has one research lab and no educational space for Software Engineering. It is estimated that two laboratories housing 20-30 computers would be needed to fulfill undergraduate Software Engineering curriculum needs. An additional 3-4 smaller labs, with around 10 machines, would be needed for research needs.
Salaries for faculty with Software Engineering expertise must not only account for demand in the academic marketplace, but also in industry. PhD's in Software Engineering are highly sought after by large companies with millions of dollars at stake in large software development projects. Current salaries in Computer Science are currently below average, and it is anticipated that even larger salaries will be necessary to attract and retain faculty in Software Engineering. If not addressed properly, salary issues could become the limiting factor that prohibits UNL from pursuing Software Engineering as a priority.
Initial steps taken by the CSE department in this direction have had an immediate and substantial impact. The introductory Software Engineering course is highly sought after by students and often cited as one of the better courses taken by CSE students. The current personnel involved in Software Engineering have played a primary role in the JD Edwards Honors program and have been responsible for most of the innovation in that program's curriculum, such as the Software Design Studios. Software Engineering researchers have played a major role in the department's recent increases in research funding, receiving in excess of $800,000. With additional resources brought through a UNL priority, these successes will and continue and much more can be achieved.
In addition, there are a number of initiatives and priorities in area such as Information Technology, Telecommunications, Bioinformatics, Geospatial Systems, and many others that will benefit from the software development infrastructure created by a Software Engineering priority. Software Engineering is fundamental to developing the software systems that support these initiatives, and cooperative partnerships will be a key strategy for developing and nurturing a Software Engineering priority.