Dimensions of Software Engineering Course Design



Similar documents
Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

Master of Science in Software Engineering Student Guide

Increasing Development Knowledge with EPFC

Software Engineering from an Engineering Perspective: SWEBOK as a Study Object

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Classical Software Life Cycle Models

UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

C. Wohlin and B. Regnell, "Achieving Industrial Relevance in Software Engineering Education", Proceedings Conference on Software Engineering

Agile Projects 7. Agile Project Management 21

What is a life cycle model?

A Life-Cycle Engineering Case Study

A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Using Workflow Technology to Manage Flexible e-learning Services

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Applying Agile Methods in Rapidly Changing Environments

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

AGILE vs. WATERFALL METHODOLOGIES

A Review of an MVC Framework based Software Development

Sistemi ICT per il Business Networking

How To Understand Software Engineering

Web Application Development Processes: Requirements, Demands and Challenges

Plan-Driven Methodologies

REVIEW ON THE EFFECTIVENESS OF AGILE UNIFIED PROCESS IN SOFTWARE DEVELOPMENT WITH VAGUE SYSTEM REQUIREMENTS

Chapter 1 The Systems Development Environment

Redesigned Framework and Approach for IT Project Management

SOFTWARE PROCESS MODELS

Application of software product quality international standards through software development life cycle

A Comparison between Five Models of Software Engineering

COMP 354 Introduction to Software Engineering

Introduction to Software Engineering (ESE : Einführung in SE)

The most suitable system methodology for the proposed system is drawn out.

Effort Reduction in RUP using CRM for Project Development: Mapping the Best Practices of CRM into RUP

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

Qualification details

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Agile Software Engineering Practice to Improve Project Success

A Software process engineering course

The Structure of a Software Development Team

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

COMPARISON OF DESIGN APPROACHES BETWEEN ENGINEERS AND INDUSTRIAL DESIGNERS

Basic Unified Process: A Process for Small and Agile Projects

Teaching Requirements through Interdisciplinary Projects

The Software Engineering Competency Model (SWECOM)

Development/Maintenance/Reuse: Software Evolution in Product Lines

COURSE DESCRIPTIONS IN MANAGEMENT

Software Development Life Cycle (SDLC)

Introduction to Agile Software Development

SOFTWARE ENGINEERING TEAM STUDIOS. Jaime Niño Computer Science, University of New Orleans New Orleans, LA

Abstract. 1 Introduction

A Comparison of SOA Methodologies Analysis & Design Phases

Department of Information Technology ENTD311: Analysis and Design of Information Systems 3 Credit Hours 8 Weeks Prerequisite(s): None

Requirements Engineering: Elicitation Techniques

Report on Game Design and Development Courses Meeting Knowledge Areas

System development lifecycle waterfall model

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

Real-World Object-Oriented Design Experience for Computer Science Students

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

SWEBOK Certification Program. Software Engineering Management

Microsoft Solutions for Security. Delivering the Windows Server 2003 Security Guide

Web Application Development Process

Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry

Title: Topic 3 Software process models (Topic03 Slide 1).

TOGAF usage in outsourcing of software development

Lifecycle Models: Waterfall / Spiral / EVO

Agile Development: How to Define a Lean, Mean Software Process. Phil Robinson Lonsdale Systems lonsdale@iinet.net.au

RUP for Software Development Projects

(Refer Slide Time: 01:52)

11 Tips to make the requirements definition process more effective and results more usable

Experiences with ALM tools in Software Engineering course

Surveying and evaluating tools for managing processes for software intensive systems

Transcription:

Dimensions of Software Engineering Course Design Mario Bernhart 1 mario.bernhart@inso.tu wien.ac.at Thomas Grechenig 1 thomas.grechenig@inso.tu wien.ac.at Jennifer Hetzl 1 jennifer.hetzl@inso.tuwien. ac.at Wolfgang Zuser 1 wolfgang.zuser@inso.tu wien.ac.at ABSTRACT A vast variety of topics relate to the field of Software Engineering. Some universities implement curricula covering all aspects of Software Engineering. A number of other courses cover detailed aspects, e.g. programming, usability and security issues, analysis, architecture, design, and quality. Other universities offer general curricula considering Software Engineering in few or single course only. In each case, a course set has to be defined which directly relates to a specific student outcome. This work provides a method for categorizing and analyzing a course set within abstract dimensions for course design. We subsequently show the results of applying the dimensions to the course degree scheme in use. The course design dimensions can also be related to the student outcomes defined in 004 CC Section 3.2 [10]. Categories and Subject Descriptors K.3.2 Computer and Information Science Education. General Terms Management. Keywords Software Engineering Education, Course Design, Course Design Framework, Course Design Evaluation, Outcome Case Studies. 1. INTRODUCTION The field of Software Engineering (SE) has become enormously complex, integrating a high number of elements, e.g. technical aspects, management skills, and especially, people issues. The way in which SE is taught to Computer Science students is most naturally directly related to this degree of complexity, and therefore, a straightforward or teacher-centered approach for SE course development does not exist. As software products are among the most complex of man-made systems, the most essential of their inherent properties are complexity, abstraction, and adaptability. Although these issues are not easily addressed in SE itself [3], they must be represented as closely as possible in educational SE approaches. Thus, SE teaching requires a highly sophisticated approach. SWEBOK defines ten knowledge areas to be part of the field of SE: software requirements, design, construction, testing, maintenance, configuration management, engineering management, engineering processes, engineering Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ICSE'06, May 20 28, 2006, Shanghai, China. Copyright 2006 ACM 1-59593-085-X/06/0005...$5.00. 667 tools and methods, and quality [1]. According to SWEBOK, SE is related to seven disciplines: computer engineering, project management, computer science, quality management, management, software ergonomics, mathematics, and systems engineering [1]. Consequently, the design of SE course must consider the following questions to cover a wide variety of disciplines: Which of the above knowledge areas and related disciplines can be considered in a single course scheme? If more than one knowledge area or discipline is considered, which area or discipline is ed? Which of the above knowledge areas and disciplines may be handled in separate specialized courses? Are collaboration and cooperation among different courses reasonable? Which course order is reasonable? The Software Engineering Curriculum Guidelines 2004 for undergraduate degree programs in SE provides advice for defining the content of SE curricula [10]. The authors provide a considerable number of valuable guidelines on curriculum design and pedagogies, although advice for the design of a single course or a set of courses with a common or goal is missing. Since SE is a highly applied science, the didactic concept of SE teaching must emphasize on application as well to achieve the maximum learning success for students and to cover the fundamental aspects of the field for teachers. The concept of teaching and the course outline ideally mirror the current developments in SE. Therefore, the didactic concept equally undergoes permanent evolution. 2. RELATED WORK Some work on the foundations and goals of SE education exists that provides a framework for successful course design [1][2][12][15]. Although details of courses may vary, the major issues for all courses are to teach state-of-the-art and state-of-thepractice techniques, and to provide a project framework matching real-life projects as closely as possible - within academic constraints and limitations - for practical application of these concepts. A major area of SE education research deals with defining and developing SE programs on the graduate [7][9][16] and undergraduate level [9][16][17][19]. The evaluation principle es optimal score of student skills and coverage of acquired techniques. In [7], courses on different levels are compared, with a more complex and realistic course on graduate level, emphasizing project work to enhance students SE skills. Collaborative courses may improve the training curve, since prerequisites for subsequent courses are covered only once [13]. As soft skills play an important role in SE education, they are 1 Authors appear in alphabetical order

considered in rather methodically or technically ed SE courses [18]. Other research efforts emphasize on novel techniques, e.g. the Personal Software Process (PSP), to assess and describe SE courses. Many examples reporting experiences with PSP exist, e.g. in [4], but only one references UP [14]. Robillard et al. describe a course considering a customized UP version, and present empirical data based on a sample of 30 students. Yet another research direction relates to the degree of similitude with real-world projects to render SE education more naturalistic. The purpose of these efforts is the optimal preparation of students for industrial projects. The evaluation scheme allows to assess courses having re-introduced change of requirements or staff fluctuation to mirror real-world problems and to overcome academic deficiencies in SE course design [4][6]. Other have reported evaluation results for cooperation between academic and industrial instructors to improve quality in SE education [8][11]. For example, interns have reported stakeholder communications as a crucial aspect of SE to be taught in courses [11]. 3. DIMENSIONS OF VARIATIONS This section discusses the dimensions, in which lecturers have to decide how to design specific SE courses. For each dimension we will discuss the characteristics and the advantages and disadvantages for either end of the range. The dimensions and their characteristics are derived from the experiences with the design of our courses described in section 4 as well as from course descriptions from the referenced work. 3.1 Discipline : full vs. partial coverage of topics The first and most critical decision is which parts of the software lifecycle are included into the course. Typical parts, which may be handled separately, are: business processes, requirements, design, implementation, test, deployment, maintenance, and evolution. Furthermore, there are many related activities and disciplines, which are necessary for successful software engineering: project management, quality management, teamwork, security, and usability engineering. Each part and disciplines are included within a single course, which raises the effort for the students and the supervisors. The more parts and disciplines are included, the more connections and dependencies between lifecycle parts and disciplines can be demonstrated to and experienced by the students. Focusing on single or few parts of the software lifecycle helps to get many experiences in this part. Concentrating on few methods and process steps within a single part will help to get the students awareness for dedicated details. 3.2 Development : Initial development vs. maintenance and evolution The majority of real-world projects are not completely new developments, but rather an evolution or maintenance of an existent system. In contrast to a new development, an evolutionary project es on other demands and skills. Analyzing an existing system in various aspects is in the foreground, while new developments demand more creative skills. The boundary between software evolution and new developments is very flexible and can be set depending on the required course level and objectives, e.g. a maintenance and evolutionary basis is usually featured in advanced courses. 3.3 Process Model: Single in depth vs. overview of many There are several process-models used in practice: (Rational) Unified Process, Extreme Programming, Microsoft Solution Framework, SCRUM, and variants of the waterfall model. Some of these models have similar characteristics and some totally differ in characteristics e.g. Extreme Programming compared to a classic waterfall approach. Teaching a single model allows to learn about the model and practice the model in depth. Preparing students for the industrial practice, however, requires teaching more than one of the models. Using several models in a single course provide a good overview about the most important characteristics of each model. Another possibility is to allow any model within the course and to leave the choice to the student. This requires a profound knowledge of many models from the supervisors. If the students have to attend more than one Software Engineering course it may be easier to alter the models used in the courses and providing in depth knowledge and experience as well. 3.4 Deliverables: Process vs. product Course deliverables should answer two questions: what has a student done (product ) and how has the student achieved this result (process ). The product allows a more objective grading than the process. Products can be assessed following hard criteria like completeness, correctness, presentation style etc. The process allows determining the compliance of the student to the required process. 3.5 Organization: team vs. individual Using individual assignments allows straightforward grading of each student s performance but it is time-consuming to check each student s deliverables. Furthermore it is not possible to assign complex problem statements to individuals. Complex assignments require the collaboration of a team of students. Team assignments enhance the learning experience about team processes like communication, coordination and conflict management. Grading individuals within teams is a complex activity, though [5][20]. 3.6 : universal vs. specific Using specific software technology, which is vendor-dependent in most cases, allows education of students in this technology in depth. This is very valuable for students applying in companies after having finished their degree, if companies are looking for expertise in the selected technology. However, as there are many technologies available, each of them with certain strengths and weaknesses, there is no standard technology and each company is looking for a different expertise. It is impossible to teach all available technologies within an undergraduate and graduate program. Using universal or neutral technology (like experimental technology or technology with low industrial use) helps to on technology-neutral aspects, e.g. object-oriented principles like inheritance and polymorphism, rather than on the technologyspecific issues, e.g. differences between Java and C#. However, using universal technology does not necessarily help students to improve their professional skill table. 3.7 Tools: Hands on vs. Tool-support Today software engineering heavily depends on proper tools. Tools increase productivity and help to on the important issues rather than on how to document or administrate artifacts. 668

Tools are very helpful, if experienced users use them. Getting used to tools causes considerable administrative overhead which exceeds the beneficial effect for inexperienced users Software Engineering students are inexperienced with most of the available tool categories, e.g. modeling, versioning, requirements- and issue tracking. Introducing many tools causes a high amount of learning effort. Students spend much time on getting used to a tool rather than spending time on understanding and solving the assignment. Typical deliverables are well solved in terms of the tool but lack valuable content. Waiving tools helps to direct students attention onto the assignment, e.g. by withholding a modeling tool, but let students draw diagrams on paper. However, Software Engineering education should prepare students for industrial reality. The have to acquire some understanding which tools are suitable for different activities and should know the capabilities of state-of-the art tools. 3.8 Assignment : Independent exercises vs. Projects Single independent exercises allow concentrating on selected issues. Providing the students prepared artifacts or code for each exercise keeps the student efforts within reasonable boundaries. Failing to complete one exercise does not influence the following exercises. Using a single system, which is provided to the students, for the whole course makes exercises building on each other possible. Each exercise may on a different part of the system or system documentation. A whole project or project parts are the most realistic approaches teaching software engineering. Students learn what effects are caused by incomplete or buggy specification and design documents. They see the connections between the artifacts in a software lifecycle. However, doing a whole project within a single course is the most time-consuming variant for the students as well as for the supervisors. If students fail to deliver a minimum quality at the beginning, succeeding phases may receive a reduced quality as a work basis. This may reduce the learning experience in later phases. 3.9 Exercise domain: administrative software vs. technical software Software plays an important role in nearly every technical as well as business field. Embedded systems, real time systems, and ubiquitous computing on the one side, management information systems, enterprise resource planning, web services, and service oriented architecture on the other side are buzz words concerning fields, where software engineering plays an important role besides technical or professional issues. For each field different approaches to software engineering are necessary: different architectures are designed, different development environments are used, different methods (e.g. for testing) are necessary to achieve different quality attributes. The exercises or projects in a software engineering course may on one of these fields to teach special know how. Or the exercises or projects are designed in a way, that students get universal know how in methods applicable to many of the fields. 4. CURRENT COURSES IN RELATION TO THE DIMESIONS The dimensions were defined by our experiences with SE courses and related research. Evaluation of selected courses currently held at our department shows an application orthogonal to the dimensions. This section provides an overview of two courses, and the subsequent, and their evaluation against the course design dimensions. Our courses are embedded in a general Computer Science program, which is not ed on SE solely. Therefore our courses have to cover a large variety of topics, starting from object-oriented analysis to design, coding, and quality assurance issues. Of course, covering such a wide range of topics restricts the scope of the course and has kept us from going into other, less fundamental but equally important, areas of SE, e.g. risk management. 4.1 Software Engineering 1 Software Engineering 1 () is an intensive twelve-week basecourse for undergraduate students in their third semester. The teaching is on developing team skills by elaborating a partly given software project in a group of six. The course is divided into two phases: phase A is a two-week introduction and selection phase, and phase B is the ten-week main part of the course. Phase A is a tutorial non-team-phase followed by a selection test for phase B covering three topics: business modeling, database design and programming. These topics are prerequisite knowledge for the course. It is essential for the course that every student outcomes these competences before entering the team phase. Students that have successfully passed phase A were assigned to teams of six to develop a common software project with given requirement specification documents and a technical foundation. The main objective is working following a customized iterative and incremental process model. In addition to the teamwork, each student has to solve two individual assignments during phase B. The didactic value is on researching and reflecting on SErelated topics, which were not explicitly part of the course. Examples of these topics are: stakeholder analysis, White-Box testing or risk analysis. 4.2 Software Engineering 2 As this course is the direct successor of, obligatory for Software Engineering majors, the teaching objective is again on further developing team skills and following a process model. The main difference to the course of is the underlying project and the type of team allocation. The students are composing the teams on their own authority. These teams of five to seven have to find at least two industrial projects with a real customer to base the course on. These project proposals must be submitted before the course. The course supervisor reviews the proposals and approves or rejects the respective proposals. All project proposals must meet defined minimum standards, e.g. the amount of work must be in an appropriate range for this course. Software Engineering 2 () has neither an introduction phase, nor have the students to qualify for taking the course. Even if not a prerequisite, it is though highly recommended to complete the course of before attending to. prepares the student in a protected environment to allow ing on teamwork, SE methods and products without struggling to sustain the high pressure in a commercial environment. Most organizational aspects of, despite of team allocation and the project, are the same as in. Roles and supervision are equal and the assignments are almost equal. The main is on realizing a project in a commercial environment rather than in the protected environment provided in the preceding course. Regarding to the common process model one outstanding extension to is that the phase of initiation has to be completely passed in, e.g. in a complete 669

requirements document is provided. In opposite to that, in capturing and managing the customer s requirements is one of the most difficult parts of the course. Another important aspect of is that the requirements in were fixed throughout the course whereas in a real project a change of requirements is rather more than less probable. Discipline Development Process model Technolog y Tools Assignme The discipline for ranges widely among engineering, management and quality issues. As the main part of the course is based on a common, i.e. team engineering project, the is considered broad. In addition to the teamwork, the single assignments allow to integrate a view on specialized topics. The students have to decide whether to extend a given foundation or to build completely new software for implementing the requirements. When building upon the provided foundation, even partly, analysis and evolution of this is included to the student s tasks. In general this is not maintenance and evolutionary as in real environments and therefore must not be considered for this aspect. The course is a derivative of RUP. There are no other process models included into the course. The accompanying lecture includes an overview of process models such as XP or the MSF. The theoretical part side es the contrast of agile and heavyweight methods. The grading scheme for this course consists of 50% products at the end of the course and an equal 50% for the process (during the complete course duration). Only when delivering appropriate artifacts and following the given process model, a team qualifies for a proper grade. Even if a noticeable amount of work is done individually, the main part of the course is teamwork. More exactly, the work decisive for the grade is teamwork. Individual work is done for qualifying for the course (phase A) and in single assignments throughout phase B. The reason for individual assignments in phase B is to add the aspect of in-depth researching of SE relevant, mostly technical, topics. Even if the teams do develop a real application, some technologies were simplified. E.g. a lightweight DBMS is used for simpler usage and faster learning. That can be, in some way, considered more universal technology. The course assignments do not require the use of a specific toolset for implementing the required artifacts. In fact the most frequently used industrial tools are too complex and intensive to learn for an application in an undergraduate course. The course tutors try to find a toolset, which is appropriate for the respective skill level of a team. The major part of the course is based on a team project. The single assignments, in contrast, are nt Exercise domain exercises. The courses works with a project about a ticketing system for ticket seller reseller offices. The methods used rather on business software than on technical software. Table 1 Evaluating the course within the dimensions Discipline Deliverables Organization Development Process model Deliverables Organization Technolog y Tools Assignme nt Exercise domain As is placed in a real (mostly commercial) environment, more aspects were included within this course. E.g. requirements engineering. Unlike in, the real environment of forces the need of integrating with existing systems and platforms. Most industrial projects are evolutionary or maintenance projects or have a strong relation to these aspects. The project must not be maintenance only to be accepted by the course administration a development part must be featured as a main aspect. The specified process model is, as in, a simplified derivative of the RUP. The course organization is based on iterative and incremental characteristics. As builds upon a real customer project, the process model of the customer s development environment may influence (or sometimes replace) the provided model, e.g. large enterprises develop own process models and methodologies and the course integrates this on an individual basis. Mostly same as in. As there is less control of the process, e.g. the process is hosted at the customer s site, the evaluation and grading may be difficult for that area. Mostly same as in. further adds more stakeholders, e.g. the customer may add team members to the development team. As commercially used technology is specific, the technology is specific. E.g. in contrast to, most customers are using enterprise-scale DBMS or application servers. The toolset and tool environment is mostly determined by the customer s development environment. Therefore, as most industrial development environments are basing on sophisticated and more complex tools, the students were advised to use these tools as well. The major part of the course is based on a team project. The single assignments, in contrast, are exercises. Students may choose any project the like to realize. Many students groups work for real companies in any fields described above. Because of complexity issues we advise students to select projects from the business domain. Anyhow they are not limited to that. Table 2 Evaluating the course within the dimensions 670

Further difficulties, when basing on a real commercial project, is to coordinate the customer s process with the process and schedule of the course. To obtain a maximum learning success both courses, and have to be taken in succession. The didactic concept is to prepare and teach the methods in and to apply and enhance the skills in. Taking without in advance completely contradict the concept and has proven worse when measuring (e.g. grading analysis) the learning success. Full topic coverage Independent exercises Initial developmen t Single process model Process delivery Team organization Universal Manual work Business software Table 3 Comparison Overview of vs. Partial topic coverage Project Maintenance and evo. Many process models Product delivery Individual work Specific Tool based work Technical software Table 3 shows a visual comparison of courses within the dimensions. This technique does not include or provide any quantitative or empirical information. A simple graph provides a comparative impression of the position of a course within a dimension. The same format is used for relating outcomes within dimensions the subsequent section. 5. FACING THE DIMENSIONS AGAINST THE 004 CC STUDENT OUTCOMES When defining dimensions for SE course design, an evaluation of effects on student outcomes may be considered. Each dimension offers the option for setting up a course on either point of the dimension range. This section tries to evaluate the dimension (resp. certain points within a dimension) against the 004 CC Section 3.2 defined student outcomes. Some relations will be selected and discussed as examples. {C, 3}: This outcome features existing systems. Professional SE as a non-classical engineering discipline needs to consider legacy systems and system integration constantly. When comparing a course set against the dimensions, at least advanced courses should be based on maintenance and evolutionary aspects. {F, 2}: The 004 CC defines individual and teamwork as a required student outcome. When designing a course set and evaluating within the dimensions both, individual and teamwork should be parted within the superset of the evaluated courses. Individual work and teamwork must not necessarily be featured in one distinct course, but within the course set. {G, 7}: One the one end of this dimension is abstract and academic technology; the other one is state-of-the-art professional technology. The defined outcome demands the professional and up-to-date. In some cases the usage of abstract and academic technology helps (inexperienced) students to build up skills in a low complex environment. Nevertheless a defined amount of a course set or curriculum must be based on contemporary industrial technology to meet the outcome. A Discipline : full vs. partial coverage of topics B Assignment : Independent exercises vs. projects C Development : Initial development vs. maintenance and evolution D Process Model: Single in depth vs. overview of many E Deliverables: Process vs. product F Organization: team vs. individual G : universal vs. specific H Tools: hands-on vs. tool support I Exercise domain: administrative sw. vs. technical sw. Table 4 The dimensions defined in section 3 1 Show mastery of the software engineering knowledge and skills, and professional issues necessary to begin practice as a software engineer. 2 Work as an individual and as part of a team to develop and deliver quality software artifacts. 3 Reconcile conflicting project objectives, finding acceptable compromises within limitations of cost, time, knowledge, existing systems, and organizations. 4 Design appropriate solutions in one or more application domains using software engineering approaches that integrate ethical, social, legal, and economic concerns. 5 Demonstrate an understanding of and apply current theories, models, and techniques that provide a basis for problem identification and analysis, software design, development, implementation, verification, and documentation. 6 Demonstrate an understanding and appreciation for the importance of negotiation, effective work habits, leadership, and good communication with stakeholders in a typical software development environment. 7 Learn new models, techniques, and technologies as they emerge and appreciate the necessity of such continuing professional development. Table 5 004 CC [14] (Section 3.2) Student outcomes {F, 6}: This outcome demands teamwork as communication and negotiation is teamwork-related only. At least a defined amount of work within a course set must be non-individual to meet the outcome. 671

6. CONCLUSION The complexity inherent to the field renders SE course design an equal complex task. Although a variety of guidelines exists, single courses, either basic or specialized, require an abstract framework applicable to many types of courses. In this work, we have presented a set of current dimensions identified from teaching experiences in the last years. The set of dimensions described allows navigating through the specifications for SE education. Using the dimensions, SE course design may either be facilitated, as well as existing courses are evaluated regarding their compliance with the requirements. The one-dimensioned categories correlate well with the set of outcome specifications in 004 CC, as shown by selected examples. Furthermore, in cases where full coverage of the scaling range is necessary, two or more courses with full or partial complementary scoring bars may be considered ideal combinations to meet such requirements, which cannot be met by a single course. Furthermore, the evaluation scheme has proven a suitable approach for horizontal browsing through the complete SE and related course list. Although the scaling bars not yet represent quantities, i.e. precise values or statistically derived data, reasonable degrees of complementarily can be achieved when combining courses. The dimensions are neither considered true orthogonal categories nor span a multi-dimensioned space. Nevertheless, some of the dimensions were shown to have direct or indirect influence of others in variable ratios. It is vital though to understand the impact of changes in one dimension to the complex set of dependent dimensions. Therefore, our subsequent work will emphasize the scalability of the dimensions and the dependencies among the set of dimensions in detail. We will also analyze the practical effects of changing selected dimensions and the application of the evaluation scheme to our set of SE courses to achieve maximum coverage in single categories. We are looking forward to see the results of applying of the framework to different kinds of evaluation and conception tasks in SE education. 7. REFERENCES [1] Abran, A., and Moore, J. W.: Guide to the Software Engineering Body of Knowledge: 2004 Edition SWEBOK; IEEE, 2005. [2] Boehm, B., Kaiser, G., Port, D., A Combined Curriculum Research and Curriculum Development Approach for Software Engineering Education, Conference on SE Education and Training, 2000. p. 310 [3] Brooks, F. P: The Mythical Man-Month; Addison-Wesley, 1995. [4] Carrington, D., McEniery, B., and Johnston, D.: PSP SM in the Large Class, Conference on SE Education and Training, 2001. pp. 81 88 [5] Chrisman, C., and Beccue, B.: Evaluating students in system development group projects. SIGCSE-Bulletin, 19(1):366 73, 1987. [6] Dawson, R., Twenty Dirty Tricks to Train Software Engineers, International Conference on Software Engineering, 2000. pp. 209 218 [7] Demuth, B., Fischer, M., and Hussmann, H.: Experience in Early and Late Software Engineering Project Courses. In Proceedings of the 15th Conference on Software Engineering Education and Training (CSEET.02), IEEE, 2002, pp. 241 8. [8] Faulk, S. R., Achieving Industrial Relevance with Academic Excellence: Lessons from the Oregon Master of Software Engineering, International Conference on Software Engineering, 2000. pp. 293 302 [9] Hilburn, T. B., Bagert, D. J., A Software Engineering Curriculum Model, 29 th ASEE/IEEE Frontiers in Education Conference, 1999. pp. 12A4/6 12A411 [10] LeBlanc, R., and Sobel, A.: Software Engineering 2004 Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering, ACM, 2004. [11] McMillan, W. W., What Leading Practitioners Say Should Be Emphasized in Students Software Engineering Projects, Conference on SE Education and Training, 1999. pp. 177 185 [12] Meyer, B., Software Engineering in the Academy, Computer, May 2001. [13] Pérez-Martínez, J. E., and Sierra-Alonso, A.: A Coordinated Plan for Teaching Software Engineering in the Rey Juan Carlos University. In Proceedings of the 16th Conference on Software Engineering Education and Training (CSEET 03), IEEE, 2003, pp. 107 18. [14] Robillard, P.N.; Kruchten, P.; d'astous, P., Yoopeedoo (UPEDU): a process for teaching software process; 14th Conference on Software Engineering Education and Training, 2001. pp. 18 26 [15] Shaw, M., Software engineering education: a roadmap ICSE - Future of SE Track, 2000, pp. 371 380 [16] Shepard, T., An Efficient Set of Software Degree Programs for One Domain, International Conference on Software Engineering, 2001. pp. 623 632 [17] Suri, D., and Sebern, M.J.; Incorporating software process in an undergraduate software engineering curriculum: challenges and rewards. In Proceedings. 17th Conference on Software Engineering Education and Training, 2004, IEEE, 2004, pp. 18 23 [18] Teles, V. M., and Tolla de Oliveira, C. E.: Reviewing the Curriculum of Software Engineering Undergraduate Courses to Incorporate Communication and Interpersonal Skills Teaching. In Proceedings of the 16th Conference on Software Engineering Education and Training (CSEET 03), IEEE, 2003, pp. 158 65. [19] Tvedt, J. D., Tesoriero, R., Gary, K. A., The Software Factory: Combining Undergraduate Computer Science and Software Engineering Education, International Conference on Software Engineering, 2001. pp. 633 642 [20] Wilkins, D. E. and Lawhead, P. B.: Evaluating individuals in team projects. SIGCSE-Bulletin, 32(1):172 5, 2000 672