ZeePedia Add to Favourites   |   Contact us

Software Engineering - II

<<< Previous Program Implementation and Assessment Next >>>
Chapter 8: Program Implementation and Assessment
Curriculum Resources and Infrastructure
Once a curriculum is established, the success of an educational program critically depends on
three specific elements, namely the faculty, the student body, and the infrastructure.
Furthermore, it is also very important to have industry involvement from the outset and in a
continuous fashion.
A high quality faculty and staff is perhaps the single most critical element in the success of a
program. There must be sufficient faculty to teach the program's courses and support the
educational activities needed to deliver a curriculum and reach the program's objectives; the
teaching and administrative load must allow time for faculty to engage in scholarly and
professional activities. This is critical given the dynamic nature of computing and software
A software engineering program needs faculty who possess both advanced education in
computing with a focus on software, and sufficient experience in software engineering practice.
However, because of the relative youth of software engineering, recruiting faculty possessing the
attributes of traditional faculty (academic credentials, effective teaching capabilities, and
research potential) plus software engineering professional experience is a particularly
challenging problem [Glass 2003]. As an example, it is only recently, in the U.S., that PhD
programs in Software Engineering have been established [ISRI 2003]. Software engineering
faculty should be encouraged and supported in their efforts to become and remain current in
industrial software engineering practice through applied research, industry internships,
consulting, etc.
Another critical factor in the success of a program is the quality of its student body. There should
be admission standards that help assure that students are properly prepared for the program.
Procedures and processes are needed that track and document the progress of students through
the program to ensure that graduates of the program meet the program objectives and desired
outcomes. Appropriate metrics, consistent with the institutional mission and program objectives,
must exist to guide students toward completion of the program in a reasonable period of time,
and to measure the success of the graduates in meeting the program objectives.
Interaction with students about curriculum development and delivery provides valuable
information for assessing and analyzing a curriculum. Involvement of students in professional
organizations and activities extends and enhances their education.
The program must provide adequate infrastructure and technical support. These include well-
SE2004 Volume ­ 8/23/2004
equipped laboratories and classrooms, adequate study areas, and technically competent
laboratory staff to provide adequate technical support. In order for student project teams to be
effective, adequate facilities are also needed to carry out team activities such as team meetings,
inspections and walkthroughs, customer reviews, assessment and reports on team progress, etc.
There should also be sufficient reference and documentation material, and a library with
sufficient holdings in software engineering literature and across related computing disciplines.
Maintaining laboratories and a modern suite of applicable software tools can be a daunting task
because of the dynamic, accelerating, pace of advances in software and hardware technology.
However, as pointed out earlier in this document, it is essential that "students gain experience
using appropriate and up-to-date tools."
An academic program in software engineering must have sufficient leadership and staff to
provide for proper program administration. This should include adequate levels of student
advising, support services, and interaction with relevant constituencies such as employers and
alumni. The advisory function of the faculty must be recognized by the institution and must be
given appropriate administrative support.
There must be sufficient financial resources to support the recruitment, development and
retention of adequate faculty and staff, the maintenance of an appropriate infrastructure, and all
necessary program activities.
Industry Participation
An additional critical element in the success of a software engineering program is the
involvement and active participation of industry. Industrial advisory boards and industry-
academic partnerships help maintain curriculum relevance and currency. Such relations can
support a variety of activities including programmatic advice from an industry perspective,
student and faculty industrial internships, integration of industry projects into the curriculum,
industry guest lectures, and visiting faculty positions from industry.
Assessment and Accreditation Issues
In order to maintain a quality curriculum, a software engineering program should be assessed on
a regular basis. Many feel assessment is best accomplished in conjunction with a recognized
accreditation organization. Curriculum guidance and accreditation standards and criteria are
provided by a number of accreditation organizations across a variety of nations and regions
[ABET 2000, BCS 2001,CEAB 2002, ECSA 2000, King 1997, IEI 2000, ISA 1999, JABEE
2003]. In other countries, assessment is a carried out by the government under a standard
predefined curriculum model or set of curriculum standards and guidelines. In 1998, a joint
IEEE/ACM task force drafted accreditation criteria for software engineering [Barnes 1998],
which included guidance and requirements in the following areas: faculty, curriculum, laboratory
and computing resources, students, institutional support and assessment of program
effectiveness. In terms of curriculum, it stipulates that the bachelor's program in software
engineering must include approximately equal segments in software engineering, in computer
science and engineering, in appropriate supporting areas, and in advanced materials.
Accreditation typically includes periodic external review of programs, which assures that
SE2004 Volume ­ 8/23/2004
programs meet a minimum set of criteria and adhere to an accreditation organization's standards.
A popular approach to assessment and accreditation is an "outcomes based approach" for which
educational objectives and/or student outcomes are established first; then the curriculum, an
administrative organization, and the infrastructure needed to meet the objectives and outcomes is
put into place.
The assessment should evaluate the program objectives and desired outcomes, the curriculum
content and delivery, and serve as the primary feedback mechanism for continuous
In addition to this document and the previous cited accreditation organizations, there are many
sources for assisting a program in forming and assessing its objectives and outcomes [Bagert
1999, Lethbridge 2000, Meyer 2001, Naveda 1997, Parnas 1999, Saiedian 2002; IWCSEA].
SE in Other Computing-Related Disciplines
Software engineering does not, of course, exist all by itself. It has strong association to other
areas of science and technology especially those related to computing. At one end we have the
work of scientists, and at the other end we have technology and technical specialists. Towards
the center of the spectrum is design, a distinctive feature of engineering programs.
Within this context, computer scientists are primarily focused on seeking new knowledge as for
example in the form of new algorithms and data structures, new database information retrieval
methods, discovery of advanced graphics and human-computer interaction organizing principles,
optimized operating systems and networks, and modern programming languages and tools that
can be used to better the job of a software engineer (and computer engineer for that matter).
It is of note that the CCCS volume has a chapter devoted to the "Changes in the Computer
Science Discipline," and there are a variety of views about CS as a discipline, and it is worth
mentioning that there is a need to distinguish computer science, as it exists today, from what it
may become in the near future, as a discipline that studies the theoretical underpinnings and
limitations of computing. David Parnas [Parnas 99] speaks to this issue in the statement "... an
engineer cannot be sure that a product is fit-for-use unless those limitations are known and have
been taken into consideration." Such limitations include technological limitations (hardware and
programming and design tools available) as well as the fundamental limitations (computability
and complexity theory, and in particular information theory including noise, data corrections,
Information technology and other more applied and specialized programs, such as network and
system administration, and all engineering technology programs, fit at the opposite side of the
spectrum from CS. Software engineering and computer engineering fall in the center of the
spectrum with their focus on engineering design. The central role that engineering design plays
in software engineering is discussed elsewhere in this document. The software engineer's focus
should be on an understanding on how to use the theory to solve practical problems.
Because of the pervasive nature of software the scope for the types of problems in software
engineering may be significantly wider than that of other branches of engineering. Within a
specific domain of application, the designer relies on specific education and experience to
SE2004 Volume ­ 8/23/2004
evaluate many possible solutions. They have to determine which standard parts can be used and
which parts have to be developed from scratch. To make the necessary decisions, the designer
must have a fundamental knowledge of specialty subjects. While domains span the entire
spectrum of industry, government, and society, there is a shorter list of concrete specialty
application areas such as scientific information systems ­including bioinformatics,
astrinformatics, ecoinformtaics, and the like, microsystems, aeronautics and astronautics, etc.
SE2004 Volume ­ 8/23/2004