Software engineering at the University of Dayton (abstract only)

Although no standard software engineering (SE) curriculum exists, currently a few schools are offering SE degrees and many more are offering courses that include some of the concepts and techniques of SE. The Software Engineering Institute recently started developing a standard SE curriculum. At this point in time they have identified nine content areas: communication skills, software development and evaluation process, problem analysis and specification, system design, data engineering, software generation, system quality, project management and software engineering projects. The integration of these areas into standard courses is left to the individual institution. We wish to discuss how these areas are currently integrated into the University of Dayton curriculum.The Computer Science Department has been offering Systems Analysis and Systems Design courses for the last ten years at both the undergraduate and graduate level. A Software Engineering course was added in 1983 and an Algorithm Design course in 1985. In addition, special topics, including Software Quality Assurance, Software Science and Economics, and Project Management, are offered from time to time. The content areas of the undergraduate and graduate courses are similar; they differ however in levels of sophistication. The prerequisites for all the courses are CS1, CS2, CS3, and CS5 of the ACM 1978 curriculum. Systems Analysis is a prerequisite for Systems Design. Group projects are assigned in the Analysis and Design courses and individual projects in the Software Engineering and Algorithm Design courses.The Software Engineering Institute suggests that nine hours of software engineering material and a one year group project suffice for a software engineering concentration within an existing computer science MS program. The University of Dayton satisfies the proposed course requirements but feels that several projects spread out over several courses are superior to a single large project.We have been using projects for a long time using various approaches over the years. Group projects are assigned in the Analysis and Design courses. Students are encouraged to study any organization and carry out the analysis and design tasks for that organization. In the Software Engineering and Algorithm Design courses students work on individual projects. We believe that embedding projects in a course enables the student to learn more about SE concepts and tools. It also allows the student to grow from one project to the next so that we expect more sophistication as the student progresses.The department plans to acquire some automated tools for the projects and to add an SE laboratory with the tools, tutors, and other facilities to improve the student learning experience. The department will introduce a Master of Software Engineering within the next few years. In the meantime a SE concentration within the CS graduate program will form a bridge program. The proposed courses for the SE Specialization include: Systems Analysis, Systems Design, Software Engineering, Algorithm Design, Software Project Management, Software Testing, and Human Factors in Software Development.