Paper Abstracts

From CSEET 2010
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 for 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 years 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 curricula. 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.


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, USA


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, University of Calgary - Alberta, Canada

Aditya Mathur, 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, Carnegie Mellon University - PA, USA


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, University of Sunderland, 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, Florida Gulf Coast University, 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, University of Virginia, USA

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

Selma Limam Mansar, Carnegie Mellon University, USA

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 Usman, Naveed Ikram, International Islamic University Islamabad, Pakistan.

Javed Khan, Manas Hardas, Kent State University, 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

Edward R. Alef, Past Dean - Walsh College; Technical Fellow, Education - General Motors, USA

David C. Poirier, General Motors, USA


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, Linköping University, Sweden

Winner of the CSEE&T2010 Best Paper Presentation Award.

Slides.

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

W. Eric Wong, Vidroha Debroy, University of Texas at Dallas, USA

This paper shares the experiences and lessons learned from conducting an NSF-sponsored eight week summer research program for ten undergraduate students from multiple universities. The focus of the research was on “Verification and Validation for Software Safety”, and emphasized a strong fundamental knowledge of software safety while maintaining a close collaboration with industry. The program included lectures and special tutorials from guest speakers, field trips, review sessions, as well as posters and final presentations by the students.

An Open Modern Software Testing Laboratory Courseware

Vahid Garousi, 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

Gavin Finnie, Padmanabhan Krishnan, Bond University, Australia

This paper describes the rational and an approach to introduce a new curriculum in the area of service management and engineering. This is done in the context of an existing software engineering and information system program. So the total cost of the new curriculum is not high. Thus the approach, with relatively low start-up costs, is suitable for small departments. As with any new programme or degree there is a problem of getting the concepts known in the marketplace. The School of IT initiating this programme is actively working with several organizations to promote the ideas to potential employees and students.



Software Engineering Practicum Course Experience

Edward P. Katz, Carnegie Mellon Silicon Valley, USA


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

Jonathan Hartje, Gil Taran, Carnegie Mellon University, USA

Most academic programs in software engineering teach the topic of leadership either through lectures intertwined across the curriculum or through project components where students are expected to lead various team efforts. Unfortunately teaching leadership in such a way does not seem to provide the right amount of practical skills and abilities to allow students to assume leadership positions in industry after graduation. A student led, faculty backed leadership initiative at Carnegie Mellon’s Master of Software Engineering Program (MSE) was created to overcome these challenges by providing the environment, the opportunity and the challenges that will in turn challenge students to acquire the necessary skills. This paper is a reflection on this initiative and its usefulness for students, faculty and industry alike.


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

Hadar Ziv, Sameer Patil, University of California - Irvine, USA

Abstract—This paper reports on experiences in transitioning from a single-quarter to a three-quarter capstone course. A single-quarter project course in software design and development had been offered by our department for over twenty years. More recently, upon formation of a new undergraduate degree in Informatics, this course was transformed into a three-quarter capstone course taken by students in their final year. Correspondingly, some aspects of the software projects, such as the business scope and software complexity, grew in proportion to the increase in project duration. At the same time, a number of “costs” were reduced, including the time and effort required to setup development infrastructure and development environments, and learn new tools and languages. Most importantly, several other factors experienced substantial growth. The longer project duration allowed significant increase in effort and attention paid to usability engineering and user-centered design, leading to systems that were deployable and more usable for the target users. It also enabled better software testing, deployment and release management, leading to systems much closer to production quality than the prototypes and proof-of-concept systems typical of single-quarter projects.