27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Some tools may perform the needed functions, but<br />

only in versions incompatible with the laboratory<br />

set up. Thus, sufficient time must be allocated to<br />

experiment and ensure each tool’s capabilities.<br />

• Debugging: Subtle bugs can exist, such that the<br />

tool works fine in one environment, but not the<br />

needed environment. Open source tools may be<br />

beneficial, should the need to debug arise.<br />

• Incentivization: Students’ preferences for development<br />

environments and collaborative styles may<br />

be different than those planned for the course.<br />

It is recommended to provide an incentive (grade<br />

points) for the use of tools that are strongly preferred,<br />

perhaps from the need to enforce consistency<br />

and uniformity, or for the sake of efficiency.<br />

Without incentivization, students can wander off<br />

in unanticipated directions, giving them less of<br />

the planned valuable experience and resulting in<br />

a marginally satisfactory outcome.<br />

• Exploratory assignments: The assignments<br />

should expect students to go beyond what can<br />

be easily and routinely accomplished by the tool.<br />

Such creative assignments will teach them how to<br />

explore and learn a tool, and gain insights into the<br />

value of the abstraction implemented by the tool.<br />

6 Contemporary Tools<br />

This section surveys the approaches taken to select<br />

tools to teach SE. Some institutions select tools that<br />

are designed for the industry. An Internet examination<br />

of the syllabi of SE courses suggests that many open<br />

source, industrially relevant tools exist, and have been<br />

found useful in instruction. These tools, each addressing<br />

an important and interesting facet of SE, are so<br />

numerous that one could imagine using a different one<br />

each week of the semester, for example [22, 25]. Innovative<br />

use of these tools occurs as well, for example<br />

de Marcos et al. [7] report a combined informatics and<br />

philosophy course using StarUML.<br />

A completely different approach is to abjure tools<br />

suitable for the industry because they take too long to<br />

learn, or misdirect students’ focus, and instead develop<br />

a lightweight tool set that supports the software development<br />

process, and in doing so, help novices develop<br />

an understanding and awareness of the principles and<br />

practices as they work [1]. Yelmo et al. [35] adopt this<br />

approach and use a tailored, lightweight version of the<br />

IBM Rational Unified Process. They also develop a<br />

web-based tool to adapt RUP to a specific project.<br />

Our approach can be considered to be a hybrid of<br />

the above two strategies. Because we lacked the resources<br />

to develop a custom, lightweight tool set, we<br />

sought to evaluate existing tools. Our search was narrowed<br />

to open source tools, not only because it was the<br />

theme of the course, but also because the availability<br />

of the source code offered the potential to customize<br />

the tools to meet our objectives. Finally, although<br />

industrial relevance was not a significant selection or<br />

evaluation criteria, the chosen tools were intended to<br />

be used in the industry. This industrial relevance was<br />

a plus because it can conceivably help students when<br />

they seek employment as software engineers.<br />

7. Conclusions and Future Directions<br />

We reported our experiences and lessons in evaluating<br />

open source tools to teach SE. Despite the myriad<br />

of tools, this evaluation was cumbersome because<br />

many tools did not deliver their promised functionality.<br />

Moreover, those tools that do appear to work, can be<br />

unpredictable when called upon. Thus, such evaluation<br />

can require significant trial and error and preparedness<br />

to tackle unexpected, subtle issues.<br />

We want more for reverse engineering of sequence<br />

diagrams, in particular the ability to restrict the sequence<br />

diagrams to specific classes. For this purpose,<br />

we might investigate the code of Diver, as well as continue<br />

searching for more tools. Ultimately, we envision<br />

a set of tools connected through Eclipse, allowing students<br />

to learn, measure, and develop abstractions, so<br />

that the software not only remains useful but can better<br />

evolve with new requirements.<br />

Acknowledgments<br />

This work was supported in part by the National Science<br />

Foundation under grants DUE-1044061 and CNS-<br />

0643971. Any opinions, findings, and conclusions or<br />

recommendations expressed in this material are those<br />

of the authors and do not necessarily reflect those of<br />

the National Science Foundation.<br />

References<br />

[1] K. Alfert, J. Pleumann, and J. Schroder. Software<br />

engineering education needs adequate modeling<br />

tools. In Proc. of 17th Conf. on Software<br />

Engineering Education and Training, pages 72–77,<br />

Mar. 2004.<br />

[2] http://amateras.sourceforge.jp/cgibin/fswiki_en/wiki.cgi?page=AmaterasUML.<br />

166

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!