Paper Abstracts

From CSEET 2010
Revision as of 17:10, 27 January 2010 by Mzrela (Talk | contribs)

Jump to: navigation, search

(authors emails have been omitted to reduce spam)

Contents

Day 1 - Tuesday, March 9th, 2010

Workplace Issues in an Undergraduate Software Engineering Course

Edward Epstein, West Chester University, USA

This paper describes how the author integrates work culture issues into his undergraduate course in Software Engineering. This is a required course for all Computer Science majors in our program. At issue is how work culture impacts upon the quality of the products being created by Software Engineers. The course addresses work culture concerns such as: What kinds of work culture issues arise during a software project? How can conflicts be resolved? How can poor work environments be improved? Work culture issues arise pretty much throughout the course and this paper provides an overview of how that occurs.


Component Based Software Engineering across the Curriculum

John M. Hunt, Covenant College, USA John D. McGregor, Clemson University, USA


Component Based Software Engineering (CBSE) is a technique for designing and assembling systems from existing parts that has important implications for a number of software engineering practices. The basic principles of CBSE, including modularity, substitutability, and composition are important throughout the SE curriculum. The ability to build a component and have confidence that it will function predictably in different environments requires a variety of skills. In this paper we present hands-on projects that use the recently released SEI PSK tool suite to implement exercises in several courses across the computing curriculum, including courses in: software engineering, computational theory, operating systems, programming languages, and verification and validation.



Stages in Teaching Formal Methods

A. J. Cowling, University of Sheffield, UK

This paper describes how a staged approach to the development of students’ abilities to engineer software systems applies to the specific issue of aching formal methods. It reviews the scope of formal methods and the coverage of them in the Software Engineering volume of Computing Curriculum 2001, and then valuates this coverage against a theoretical model nfor the stages through which students develop their practical skills at engineering software systems. In particular, the paper discusses the role of formal methods within the process of developing software systems, and shows that both practically and pedagogically it is important that students use at least some elements of formal methods in their earliest attempts at developing systems. From this it is shown that these basic elements of the methods need to be taught earlier than is currently recommended.


Fostering UML Modeling Skills and Social Skills through Programming Education

Norio ISHII, Yuri SUZUKI, Hironobu FUJIYOSHI, Takashi FUJII, Shubu University, Japan


In this research, we attempted to support the learning of the UML modeling skills and social skills required in software development scenarios as part of programming education in the Department of Engineering. We conducted a class based on PBL in which the learners formed teams to build a robot using LEGO Mindstorms. The results confirmed that through the classes, the learners showed improvements in both modeling skills and social skills. These results demonstrate the educational effectiveness of class design based on PBL and using the theme of building a robot, and the effectiveness of the modeling template created through this research.


Competency Framework for Software Engineers

José Gamaliel Rivera-Ibarra, Josefina Rodríguez-Jacobo,José Alberto Fernández-Zepeda, CICESE, Mexico

Miguel Angel Serrano-Vargas, SPI Solutions, USA


One of the main concerns of the software industry is to develop the talent of its human resources, since the quality and innovation of its products and services depend to a great extent on the knowledge, the ability and the talent that software engineers apply in the software development process. A competency framework defines a set of knowledge, skills, and behaviors that professionals must have to excel in their careers. A competency framework facilitates the identification of training needs and guides the design of a professional development program. In this paper we propose a competency framework for software engineers, whose design is based on the activities and interactions that they perform during the software development process.



The Effects of Layout on Detecting the Role of Design Patterns

Bonita Sharif, Jonathan I. Maletic, Kent State University, USA

A controlled experiment investigating the effect layout has on how students identify design pattern roles in UML class diagrams is presented. Two layout schemes, multi-cluster and orthogonal, are compared with respect to three open source systems and four design patterns. Seventeen students were asked a series of eight design pattern role detection (comprehension) questions for each layout, followed by eight preference rating questions. Results indicate a significant improvement in role detection accuracy with the multi-cluster layout for the strategy pattern and a significant improvement in detection time with the multi-cluster layout for all four patterns. Preference ratings significantly favored the multi-cluster layout for pattern role detection ease. These results can be used to help improve the teaching of design patterns.


KAIST-CMU MSE Program – the Past and the Future

Sungwon Kang, Inyoung Ko, Jongmoon Baik, Hojin Choi, Danhyung Lee, KAIST, Korea


In this paper, we reflect upon the past five years of the KAIST-Carnegie Mellon MSE collaboration, look forward to ways in which we can improve in the yars ahead. Given that the major component of the program is the curriculum, our insights focus mainly on curriculum improvement and evolution. As a means to achieving this goal, two surveys were conducted, one addressing reflections by the program’s participating faculty and graduates, and a second looking at various reference curriculums. Based upon the results of both surveys, an improved curriculum structure is proposed, one that identifies and introduces special track options that would better serve the needs and demands of Korean industry.


PBL Assessment in Software Engineering

Ana Paula C. Cavalcanti, Maria da Conceição Moraes Batista, Silvio Meira, C.E.S.A.R – Recife Center of Advanced Studies and Systems.

Jones Albuquerque, UFRPE – Federal Rural University of Pernambuco.


The actual context of software engineering requires constant improvement on the knowledge acquired about technologies and how to implement them. PBL – Problem Based Learning methodology is an approach that immerses students into real world situations. The implementation of PBL in the context of software engineering discipline was realized by the creation of software factories and, in order to provide a comprehensive feedback to the students, it is necessary to have an effective assessment system. The objective of the work is to describe how this assessment system was implemented, with the use of CMMI, and present the results achieved with this experience in a graduate course of software engineering.


From Student to Software Engineer in the Indian IT Industry: A Survey of Training

Vidya Kulkarni, University of Delhi, India Christelle Scharff, Pace University, NY, USA Olly Gotel, Research Consultant, USA


The benefits of Global Software Development are now well known and India currently has the lion’s share in outsourced offshore software development. As a result, the demand for skilled IT professionals is increasing in India. In order to meet the demand, new academic institutes are being established and the existing ones are increasing their intake in IT-related courses. However, according to the latest report of the National Association of Software and Service Companies (NASSCOM) in India, only 25% of the fresh graduates are considered readily employable by the IT industry. To undertake their jobs effectively, most of the companies provide training to fresh recruits before putting them on actual jobs. In order to understand the nature of the training that is conducted, the topics that are covered, and the adequacy of the preparatory education for the first job in the IT industry, two surveys were administered. One was conducted with human resource managers of some of the leading IT companies in India and another was conducted with fresh company recruits. The findings are reported in this paper and recommendations for the curriculum are proposed.



Day 2 - Wednesday, March 10th, 2010

A Graduate Education in Software Management and the Software Business for Mid-Career Professionals

Ray Bareiss, Gladys Mercier, Carnegie Mellon Silicon Valley


Given the unique nature of the software business, the faculty of Carnegie Mellon University’s Silicon Valley campus concluded that mid-career software professionals would be better served by a tailored master’s degree focusing on software management and more broadly on the business of software than by a typical MBA. Our software management master’s program integrates business, technical, and soft skills to prepare our students for technical leadership in their current companies or in entrepreneurial ventures. Our initial program built on the strengths of Carnegie Mellon’s world-class software engineering education. We targeted students working in large companies, engaged in large-scale enterprise software projects, employing “high ceremony” software development processes. However, the majority of our students came from Silicon Valley companies which shared a product development focus, engaged in smaller projects, favored agile development processes, and measured development cycles in weeks rather than years. Our program has evolved to align with these interests. It employs a unique team-based and project-based pedagogy which emphasizes practical skills over theory, depth over breadth, and coaching over lecturing. High student satisfaction and growing enrollment have validated our curriculum decisions and have led us to make this program the educational centerpiece of Carnegie Mellon’s Silicon Valley campus.


Customers' Role in Teaching Distributed Software Development

Ivana Bosnić, Igor Čavrak, Mario Žagar, University of Zagreb, Croatia

Rikard Land, Ivica Crnković, Mälardalen University, Sweden


This paper describes different aspects of teaching distributed software development, regarding the types of project customers: industry and academia. These approaches enable students to be more engaged in real-world situations, by having customers from the industry, local or distributed customers in universities, distributed customers in software engineering contests or being involved in an ongoing project, thus simulating the company merging. The methods we describe are used in a distributed project-oriented course, which is jointly carried out by two universities from Sweden and Croatia. The paper presents our experiences of such projects being done during the course, the differences in each approach, issues observed and ways to solve them, in order to create a more engaging education for better-prepared engineers of tomorrow.


Teaching an End-User Testing Methodology

Huai Liu, Fei-Ching Kuo, Tsong Yueh Chen, Swinburne University of Technology, Australia


One important focus of software engineering is how to develop quality software. Software testing is the main approach to the software quality assurance. Nowadays, more and more end-users write the program on their own but lack formal trainings on how to test their programs, and hence cannot guarantee the quality of their own software. Metamorphic testing is a simple, automatable, and cost-effective testing methodology. It is particularly suitable for end-users to test their own programs, because it does not demand the user to have great knowledge of software testing but knowledge of the program under development. In this paper, we report our experience in teaching metamorphic testing to various groups of students at Swinburne University of Technology, Melbourne, Australia. Our work not only enhances the teaching of software testing, but also fosters the training of end-user programmers.



Current State of the Software Testing Education in North American Academia and Some Recommendations for the New Educators

Vahid Garousi

Software Quality Engineering Research

Group (SoftQual)

Department of Electrical and Computer

Engineering, Schulich School of Engineering

University of Calgary, Alberta, Canada Aditya Mathur

Department of Computer Science,

Purdue University

West Lafayette, IN, USA

This article is a brief overview of the current state of the software testing education in the Canadian and American universities. In doing so, the authors hope to pinpoint the strengths, and areas for improvement and to encourage a systematic software testing curriculum development. We also present some recommendations for new software testing educators.

Improving Distance Mentoring: Challenges and How to Deal with them in Global Development Project Courses

Gil Taran, Lynn Carter


In an attempt to provide real-world industrial experience, an increasing number of


academic programs are broadening their portfolio to include global development projects. In


these projects, the customer, the team or even the faculty are in different locations than those of


their students creating a set of real world experiences and educational challenges.


Various project elements such as asynchronous communications, remote assessment, and


required knowledge transfer make effective learning challenging and problematic. To


understand how to help faculty members overcome some of these challenges, faculty at


Carnegie Mellon have studied recent and past projects specifically where clients, and/or faculty


advisors were not co-located with their students. This paper presents some of their findings,


provides recommendations and explains where specific attention is required for project and


learning success.


Why Better Industrial/Academic Links Are Needed If There Is To Be An Effective Software Engineering Workforce

J. Barrie Thompson

Department of Computing, Engineering and Technology,

University of Sunderland,

St. Peter’s Way, Sunderland, SR1 3SD, UK

The case is made that to address the current problems of a graduate and skills shortage industry and academia need to work together to present a positive image of what are challenging and exciting disciplines and ensure that there is an effective workforce. Elements of a four year research project concerned with investigating and analyzing industry/academic links is reported which has provided insights into the challenges and problems that exist today. The project has involved: running a series of international workshops to identify and evaluate a of range industry/academic interactions, a literature review centered on CSEE&T conference proceedings, and a series of activities that have enabled an investigation of roles played by government, professional bodies, industry and industrial bodies and how they interact with academia. A number of fundamental problems are identified that currently hinder co-operation. Finally suggestions are made with regard to improving the current situation.


A Comprehensive Embedded Systems Lab for Teaching Web-based Remote Software Development

Janusz Zalewski


Dept. of Computer Science

Florida Gulf Coast University

Ft. Myers, FL 33965-6565, USA


The paper discusses an approach to the implementation of a web-based lab to teach

remote software development in courses focused on real-time embedded systems. The lab

involves data acquisition and control access to remote devices as well as a capability of

remote software development, uploading and debugging. Several different platforms are used

focusing on teaching specific aspects of real-time embedded systems development, which

includes: programming in VHDL at the chip design level, microcontroller programming at

the board level, programming at the real-time kernel level with both Windows and Unix

flavor, and using a broad spectrum of programming languages (C/C++, C#, Java,

ASP.NET). Current lab status is presented and plans for future expansion are outlined.



Using LEGO MINDSTORMS NXT and LEJOS in an Advanced Software Engineering Course

Michael W. Lew, Thomas B. Horton, Mark S. Sherriff


Department of Computer Science, University of Virginia

This paper describes the benefits of using LeJOS and the Lego Mindstorms NXT set for teaching

advanced software development. While Lego Mindstorms has been used in introduction to computer

science courses, it is not reported to be widely used in a simulated production environment requiring such things as threading, network communications, and the implementation of command protocols.

Additionally, because the Mindstorms NXT system supports Bluetooth communications with multiple

devices, it is possible to use this system as the basis for a complex, communicating system requiring

multiple software artifacts on different machines.


Information Systems Application Development Courses

A Carnegie Mellon University Experience in Global Pedagogy

Selma Limam MansarCarnegie Mellon University


In this experience report, we describe recent initiatives in global undergraduate Information Systems education at Carnegie Mellon University.  The entire systems development core curriculum is now offered at CMU campuses in Pittsburgh and Doha, Qatar.   Courses are co-designed and delivered by faculty in both locations with an eye toward consistency of content and assessment, but also with content tuned for local sections.  The collaboration and lessons learned among collaborating faculty in two example courses is described.


Day 3 - Thursday, March 11th, 2010

Pedagogical and Structural Analysis of SE Courses

Muhammad Usman1,2, Javed Khan2, Manas Hardas2, Naveed Ikram1


1 Department of Computer Science,

International Islamic University Islamabad, Pakistan.


2Media Communications and Networking Research Laboratory,

Department of Computer Science, Kent State University,Kent, Ohio,USA.


One of the ways of improving quality of Software Engineering (SE) education is to develop

mechanisms for quantitatively analyzing SE courses taught in universities. We propose a new

multidimensional approach for analyzing SE courses. Two aspects are important for this

analysis. One is what is covered (how much of the total SE knowledge space is covered in the

course)? And second is how is it covered (how effectively SE topics and subtopics are covered

in lectures)? We call the first one structural analysis and second one pedagogical analysis.

Techniques and metrics for structural and pedagogical analysis of SE courses are presented

in this paper together with results from implementation of the work on four SE courses.



Building Organizational Competitive Advantages with Strategically Aligned Technical Degrees

Dividends from a Visionary Corporate-University Partnership

Edward R. Alef David C. Poirier Past Dean - Walsh College and Technical Fellow, Education - General MotorsIS&S Information Officer, General Motors</center>

In 1999, the technical leadership from Carnegie Mellon University (CMU) and General Motors Corporation (GM) with a vision for creating strategic competitive competences through distance learning education technologies partnered to develop and implement technical master’s degrees with a defined output: Graduates with unique skills to add value with automotive technology applications. In less than ten years, these degrees produced 153 graduates who applied the technical knowledge learned to realize over $30M in documented first year cost savings, six major quality process implementations and one pending patent. This result translated into a 500% return on employee development through tuition investment. This article chronicles this success story and how it can be duplicated in other corporations with the same degree of success. Learn more about this partnership, the implementation and execution of the Quality Standards that strengthened the commitment to maintaining the degrees, and the keys to replicate its implementation in other organizations.


Should Software Engineering Projects be the Backbone or the Tail of Computing Curricula?

David Broman

Department of Computer and Information Science, Linköping University



Most computer science (CS) and software engineering (SE) curricula include some form of

SE project with the aim of lowering the gap between CS and SE education and real-world

demands in industry. In this paper we briefly discuss and explain our findings of software

engineering projects taught at LiU in Sweden. These courses use what we call the “tail”

approach, where student projects are performed at the end of a degree program. We then

argue that there are several problems with this approach and sketch an idea where SE

projects are an integrated part of a curriculum. Furthermore, pros and cons of this idea,

which we call the SE project “backbone” approach, are discussed and analyzed.


An Undergraduate Summer Research Program in Software Safety

TB Filled


= An Open Modern Software Testing Laboratory Courseware

Software Quality Engineering Research Group (SoftQual)

Department of Electrical and Computer Engineering, Schulich School of Engineering

University of Calgary, Alberta, Canada

In order to effectively teach software testing students how to test real-world software, the

software tools, exercises, and lab projects chosen by testing educators should be practical

and realistic. However, there are not many publicly-available realistic testing courseware for

software testing educators to adapt and customize. Even for the existing testing lab exercises

developed and/or used by the educators, there are various drawbacks, e.g.: (1) They are not

usually kept up-to-date with the most recent testing tools and technologies, e.g., JUnit, (2)

They are not built based on realistic/real-world Systems Under Test (SUTs), but rather use

“toy” examples (SUTs). The above needs were the main motives for the author and his team

at the University of Calgary to modernize the lab exercises of an undergraduate software

testing course. This paper presents the designed lab courseware, and the experiences learned

from using the courseware in the University of Calgary. It is hoped (and expected) that other

software testing educators start to use this laboratory courseware and find it useful for their

instruction and training needs.


Adding Service Engineering and Management to a Software Engineering Program

TB Filled



Software Engineering Practicum Course Experience

Edward P. Katz

Carnegie Mellon Silicon Valley


The CMU Silicon Valley Software Engineering Practicum course is a curriculum capstone

which provides the practicum student the opportunity to interact with an actual client. The

client has a real problem and is in need of a software developed solution. Concurrently, it

provides the opportunity for the student to demonstrate the acquired skills and knowledge

derived from the software engineering curriculum. Student feedback has been very positive

for this course because the students have a voice in their project selection, and they work on

a real problem (not just a class assignment) with a real owner appreciating the student's

efforts. A client benefits from working directly with a software engineering team (instead of a

group of interns) in developing a meaningful solution to their specific problem within a one

semester time window. Another success measure is the repetition of clients wishing to

engage additional teams for more or continued projects.



Software Engineering Leadership: A Student Initiative to Promote Change Agents in Industry

TBFilled


Capstone Project: From a Software Engineering to an “Informatics” Approach

TBFilled