<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
<title>David S. Janzen</title>
<copyright>Copyright (c) 2011  All rights reserved.</copyright>
<link>http://works.bepress.com/djanzen</link>
<description>Recent documents in David S. Janzen</description>
<language>en-us</language>
<lastBuildDate>Thu, 22 Sep 2011 04:27:46 PDT</lastBuildDate>
<ttl>3600</ttl>


	
		
	

	
		
	

	
		
	







<item>
<title>Supporting Introductory Test-Driven Labs with WebIDE</title>
<link>http://works.bepress.com/djanzen/27</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/27</guid>
<pubDate>Tue, 20 Sep 2011 09:25:24 PDT</pubDate>
<description>
	<![CDATA[
	<p>WebIDE is a new web-based development environment for entry-level  programmers with two primary goals: minimize tool barriers to writing  computer programs and introduce software engineering best practices  early in a student's educational career. Currently, WebIDE focuses on  Test-Driven Learning (TDL) by using small iterative examples and  introducing lock-step labs, which prevent the student from moving  forward until they finish the current step. However, WebIDE does not  require that labs follow TDL. Instructors can write their own labs for  WebIDE using any software engineering or pedagogical approach. Likewise,  instructors can build custom evaluators - written in any language - to  support their approach and provide detailed error messages to students.  We report on a pilot study in a CS0 course where students were split  into two groups, one that used WebIDE and one that didn't. The WebIDE  group showed a significant improvement in performance when writing a  simple Android application. Additionally, among students with some  programming experience, the WebIDE group was more proficient in writing  unit tests.</p>

	]]>
</description>

<author>T. Dvornik et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Contextual Android Education</title>
<link>http://works.bepress.com/djanzen/26</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/26</guid>
<pubDate>Tue, 20 Sep 2011 09:25:22 PDT</pubDate>
<description>
	<![CDATA[
	<p>Advances in mobile phone hardware and development platforms have  drastically increased the demand, interest, and potential of mobile  applications. We report on development of a new special topics software  engineering course that combines the appeal of Android application  development with software engineering topics and entrepreneurial  thinking. The primary contribution of this project and the focus of this  paper is a series of detailed educational laboratory exercises that are  designed to supplement the Android documentation by providing  contextual examples, activities, and tutorials. The labs were  contributed to the Google Code University under the Creative Commons  license, resulting in over 30,000 visits and nearly 100,000 page views in  its first three months.</p>

	]]>
</description>

<author>J Reed et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Towards Traceable Test-Driven Development</title>
<link>http://works.bepress.com/djanzen/25</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/25</guid>
<pubDate>Tue, 20 Sep 2011 09:25:20 PDT</pubDate>
<description>
	<![CDATA[
	<p>Key among the grand challenges in traceability are those that lead to achieving traceability as a by-product of the natural software development life cycle. This position paper profiles test-driven development (TDD), an emerging software development practice, in which automated tests and code satisfying them are developed in rapid succession over multiple iterations. Our position is that the nature of TDD offers unique opportunities for collecting traceability information throughout the TDD life cycle and that the provision of traceability information to the software developers during TDD will improve the process and the resulting software. We discuss the opportunities, challenges, and plans for the synthesis of TDD and traceability.</p>

	]]>
</description>

<author>Jane Huffman Hayes et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Overcoming Obstacles to Test-Driven Learning on Day One</title>
<link>http://works.bepress.com/djanzen/24</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/24</guid>
<pubDate>Mon, 17 May 2010 09:39:57 PDT</pubDate>
<description>
	<![CDATA[
	<p>We describe the preliminary construction of a web-based tool for test-driven learning in the first weeks of programming. We discuss obstacles to test-driven learning--both pragmatic and ideological--and describe the ways that we believe our tool overcomes these obstacles.</p>

	]]>
</description>

<author>John Clements et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Evaluating Test-Driven Development in an Industry-Sponsored Capstone Project</title>
<link>http://works.bepress.com/djanzen/22</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/22</guid>
<pubDate>Tue, 05 Jan 2010 12:13:51 PST</pubDate>
<description>
	<![CDATA[
	<p>Test-Driven Development (TDD) is an agile development process wherein automated tests are created before production code is designed or constructed in short, rapid iterations. This paper discusses an experiment conducted with undergraduate students in a year-long software engineering capstone course. In this course the students designed, implemented, deployed, and maintained a software system to meet the requirements of an industry sponsor who served as the customer. The course followed an incremental process in which features were added incrementally under the direction of the industry sponsor and the professor. The fourteen students observed in the study were divided into three teams. Among the three teams were two experimental groups. One group consisted of two teams that applied a Test-First (TDD) methodology, while a control group applied a traditional Test-Last methodology. Unlike Test-First, the tests in Test-Last are written after the design and construction of the production code being tested. Results from this experiment differ from many previous studies. In particular, the Test-Last team was actually more productive and wrote more tests than their Test-First counterparts. Anecdotal evidence suggests that factors other than development approach such as individual ambition and team motivation may have more affect than the development approach applied. Although more students indicated a preference for the Test-First approach, concerns regarding learning and applying TDD with unfamiliar technologies are noted.</p>

	]]>
</description>

<author>John Huan Vu et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Design Patterns Go to Hollywood: Teaching Patterns with Multimedia</title>
<link>http://works.bepress.com/djanzen/23</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/23</guid>
<pubDate>Tue, 05 Jan 2010 12:13:33 PST</pubDate>
<description>
	<![CDATA[
	<p>Studies indicate that understanding the contexts in which design patterns are to be used is one of the most (if not the most) difficult challenge in applying design patterns, yet little research on the topic attempts to solve the problem of better teaching the contexts. This paper discusses a new paradigm through which the teaching of design patterns can be viewed, one which focuses on conceptual examples and contexts as the key elements in teaching design patterns. We created several multimedia learning modules that use this approach and we evaluated the modules by comparing them to other methods of instruction in junior-level software engineering courses. The context-oriented modules performed better (or at least not significantly worse) than traditional lectures on virtually all metrics, and the videos are easily deployable, making them ideal for uses like distance learning, and they can save valuable instruction hours for professors.</p>

	]]>
</description>

<author>Adam Dukovich et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Building Web Applications with Servlets and JavaServer Pages</title>
<link>http://works.bepress.com/djanzen/21</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/21</guid>
<pubDate>Fri, 03 Apr 2009 09:42:09 PDT</pubDate>
<description>
	<![CDATA[
	<p>Servlets and JavaServer Pages provide the ability to dynamically generate web pages using the Java programming language. Among other benefits, the use of Java on the server-side allows the web developer to directly implement object-oriented designs, utilize multiple threads of execution, and employ JDBC to communicate with a database. This tutorial will introduce Servlets and JavaServer Pages through UML diagrams, code samples, and an example web application.</p>

	]]>
</description>

<author>David S. Janzen</author>


<category>Articles</category>

</item>






<item>
<title>Test-Driven Learning in Early Programming Courses</title>
<link>http://works.bepress.com/djanzen/20</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/20</guid>
<pubDate>Wed, 01 Apr 2009 16:44:32 PDT</pubDate>
<description>
	<![CDATA[
	<p>Coercing new programmers to adopt disciplined development practices such as thorough unit testing is a challenging endeavor. Test-driven development (TDD) has been proposed as a solution to improve both software design and testing. Test-driven learning (TDL) has been proposed as a pedagogical approach for teaching TDD without imposing significant additional instruction time.</p>
<p>This research evaluates the effects of students using a test-first (TDD) versus test-last approach in early programming courses, and considers the use of TDL on a limited basis in CS1 and CS2. Software testing, programmer productivity, programmer performance, and programmer opinions are compared between test-first and test-last programming groups. Results from this research indicate that a test-first approach can increase student testing and programmer performance, but that early programmers are very reluctant to adopt a test-first approach, even after having positive experiences using TDD. Further, this research demonstrates that TDL can be applied in CS1/2, but suggests that a more pervasive implementation of TDL may be necessary to motivate and establish disciplined testing practice among early programmers.</p>

	]]>
</description>

<author>David S. Janzen et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Software Architecture Improvement through Test-Driven Development: An Empirical Study</title>
<link>http://works.bepress.com/djanzen/19</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/19</guid>
<pubDate>Wed, 01 Apr 2009 16:44:31 PDT</pubDate>
<description>
	<![CDATA[
	<p>Despite a half century of advances, the software construction industry still shows signs of immaturity. Professional software development organizations continue to struggle to produce reliable software in a predictable and repeatable manner. While a variety of development practices are advocated that might improve the situation, developers are often reluctant to adopt new, potentially better practices based on anecdotal evidence alone. As a result, empirical software engineering has gained credibility as a discipline that provides scientific data about practice efficacy on which developers can make critical decisions.</p>
<p>This research proposes to apply empirical software engineering techniques to evaluate a new approach that offers the potential to significantly improve the state of software construction. Test-driven development (TDD) is a disciplined software development practice that focuses on software design by first writing automated unit-tests followed by production code in short, frequent iterations. TDD focuses the developer’s attention on a software’s interface and behavior while growing the software architecture organically.</p>
<p>TDD has gained recent attention with the popularity of the Extreme Programming agile software development methodology. Although TDD has been applied sporadically in various forms for several decades, possible definitions have only recently been proposed. Advocates of TDD rely primarily on anecdotal evidence with relatively little empirical evidence of the benefits of the practice. A small number of studies have looked at TDD only as a testing practice to remove defects. However, there is no research on the broader efficacy of TDD. This research will be the first comprehensive evaluation of how TDD effects overall software architecture quality beyond just defect density.</p>
<p>My hypothesis is that TDD improves overall software quality including characteristics such as extensibility, reusability, and maintainability without significantly impacting cost and programmer productivity. I intend to examine this hypothesis by designing and administering a series of longitudinal empirical studies with undergraduate students and professional programmers.</p>
<p>Controlled experiments will be conducted in a set of undergraduate courses. Student programmers will be taught to write automated unit-tests integrated with course topics using a new approach which I am calling test-driven learning (TDL). Formal experiments will then compare the quality of software produced with TDD to software produced with a more traditional test-last development approach. A case study or controlled experiment will also be conducted with more experienced programmers in a professional environment. In all of the studies, programmer performance, attitudes toward testing, and future voluntary usage of TDD will also be assessed.</p>
<p>The combination of studies in academic and professional environments will establish external validity of the research as well as provide valuable information regarding the effectiveness of TDD at various levels of maturity. The research should also produce several important by-products including pedagogicalmaterials, a framework for future studies, and observations regarding TDD’s fit in the undergraduate computer science curriculum.</p>
<p>Positive results from these studies have the potential of significantly improving the state of software construction. For the first time, professional developers will be able to examine empirical evidence of TDD efficacy both as a testing and as a design practice. Additionally, computer science faculty will be encouraged to incorporate TDD into curricula, resulting in better student design and testing skills. Improved pedagogy combined with widespread adoption of TDD offer the potential of radically improving the software engineering community’s ability to reliably produce, reuse, and maintain quality software.</p>

	]]>
</description>

<author>David S. Janzen</author>


<category>Articles</category>

</item>






<item>
<title>Implications of Test-Driven Development: A Test Study</title>
<link>http://works.bepress.com/djanzen/17</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/17</guid>
<pubDate>Wed, 01 Apr 2009 16:44:30 PDT</pubDate>
<description>
	<![CDATA[
	<p>A Spring 2003 experiment examines the claims that test-driven development or test-first programming improves software quality and programmer confidence. The results indicate support for these claims and inform larger future experiments.</p>

	]]>
</description>

<author>Reid Kaufmann et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>From RS-232 to Object Request Brokers: Incremental Object-Oriented Networking Projects</title>
<link>http://works.bepress.com/djanzen/18</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/18</guid>
<pubDate>Wed, 01 Apr 2009 16:44:30 PDT</pubDate>
<description>
	<![CDATA[
	<p>Selecting an appropriate set of laboratory experiences and projects for a Data Communications and Computer Networks course can be difficult due to the broad and deep nature of the topics. Emphasis may be placed on many networking aspects including design, evaluation, efficiency, security, protocols, tools, and applications. This paper presents a set of projects that attempt to integrate software engineering and systems administration topics. The projects emphasize network application programming. Particular attention will be given to a sequence of incremental projects using an object-oriented approach including the use of the Unified Modeling Language (UML) and a design pattern.</p>

	]]>
</description>

<author>David S. Janzen</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Software Architecture Improvement through Test-Driven Development</title>
<link>http://works.bepress.com/djanzen/14</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/14</guid>
<pubDate>Wed, 01 Apr 2009 16:44:29 PDT</pubDate>
<description>
	<![CDATA[
	<p>This research involves empirical software engineering studies applied in academic and professional settings to assess the influence of test-driven development on software quality. Particular focus is given to internal software design quality. Pedagogical implications are also examined. Initial results and the study protocol and plans will be presented.</p>

	]]>
</description>

<author>David S. Janzen</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Teaching Object Technology in Industry Short Courses</title>
<link>http://works.bepress.com/djanzen/13</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/13</guid>
<pubDate>Wed, 01 Apr 2009 16:44:28 PDT</pubDate>
<description>
	<![CDATA[
	
	]]>
</description>

<author>David S. Janzen</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>A Survey of Evidence for Test-Driven Development in Academia</title>
<link>http://works.bepress.com/djanzen/12</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/12</guid>
<pubDate>Wed, 01 Apr 2009 16:44:27 PDT</pubDate>
<description>
	<![CDATA[
	<p>University professors traditionally struggle to incorporate software testing into their course curriculum. Worries include double-grading for correctness of both source and test code and finding time to teach testing as a topic. Test-driven development (TDD) has been suggested as a possible solution to improve student software testing skills and to realize the benefits of testing. According to most existing studies, TDD improves software quality and student productivity. This paper surveys the current state of TDD experiments conducted exclusively at universities. Similar surveys compare experiments in both the classroom and industry, but none have focused strictly on academia.</p>

	]]>
</description>

<author>Chetan Desai et al.</author>


<category>Articles</category>

</item>






<item>
<title>Test-Driven Learning: Intrinsic Integration of Testing into the CS/SE Curriculum</title>
<link>http://works.bepress.com/djanzen/16</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/16</guid>
<pubDate>Wed, 01 Apr 2009 16:44:17 PDT</pubDate>
<description>
	<![CDATA[
	<p>Test-driven learning (TDL) is an approach to teaching computer programming that involves introducing and exploring new concepts through automated unit tests. TDL offers the potential of teaching testing for free, of improving programmer comprehension and ability, and of improving software quality both in terms of design quality and reduced defect density.This paper introduces test-driven learning as a pedagogical tool. It will provide examples of how TDL can be incorporated at multiple levels in computer science and software engineering curriculum for beginning through professional programmers. In addition, the relationships between TDL and test-driven development will be explored.Initial evidence indicates that TDL can improve student comprehension of new concepts while improving their testing skills with no additional instruction time. In addition, by learning to construct programs in a test-driven manner, students are expected to be more likely to develop their own code with a test-driven approach, likely resulting in improved software designs and quality.</p>

	]]>
</description>

<author>David S. Janzen et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Implications of Integrating Test-Driven Development into CS1/CS2 Curricula</title>
<link>http://works.bepress.com/djanzen/15</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/15</guid>
<pubDate>Wed, 01 Apr 2009 16:44:01 PDT</pubDate>
<description>
	<![CDATA[
	<p>Many academic and industry professionals have called for more testing in computer science curricula. Test-driven development (TDD) has been proposed as a solution to improve testing in academia. This paper demonstrates how TDD can be integrated into existing course materials without reducing topic coverage. Two controlled experiments were conducted in a CS1/CS2 course in Winter 2008. Following a test-driven learning approach, unit testing was introduced at the beginning of the course and reinforced through example. Results indicate that while student work loads may increase with the incorporation of TDD, students are able to successfully develop unit tests while learning to program.</p>

	]]>
</description>

<author>Chetan Desai et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Effects of Dependency Injection on Maintainability</title>
<link>http://works.bepress.com/djanzen/11</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/11</guid>
<pubDate>Mon, 12 Jan 2009 11:54:14 PST</pubDate>
<description>
	<![CDATA[
	<p>Software maintenance consumes around 70% of the software life cycle. Improving software maintainability could save software developers significant time and money. This paper examines whether the pattern of dependency injection significantly reduces dependencies of modules in a piece of software, therefore making the software more maintainable. This hypothesis is tested with 20 sets of open source projects from sourceforge.net, where each set contains one project that uses the pattern of dependency injection and one similar project that does not use the pattern. The extent of the dependency injection use in each project is measured by a new Number of DIs metric created specifically for this analysis. Maintainability is measured using coupling and cohesion metrics on each project, then performing statistical analysis on the acquired results. After completing the analysis, no correlation was evident between the use of dependency injection and coupling and cohesion numbers. However, a trend towards lower coupling numbers in projects with a dependency injection count of 10% or more was observed.</p>

	]]>
</description>

<author>Ekaterina Razina et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>A Leveled Examination of Test-Driven Development Acceptance</title>
<link>http://works.bepress.com/djanzen/10</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/10</guid>
<pubDate>Mon, 08 Dec 2008 11:03:10 PST</pubDate>
<description>
	<![CDATA[
	<p>Test-driven development (TDD) has garnered considerable attention in professional settings and has made some inroads into software engineering and computer science education. A series of leveled experiments were conducted with students in beginning undergraduate programming courses through upper-level undergraduate, graduate, and professional training courses. This paper reports that mature programmers who try TDD are more likely to choose TDD over a similar test-last approach. Additionally this research reveals differences in programmer acceptance of TDD between beginning programmers who were reluctant to adopt TDD and more mature programmers who were more willing to adopt TDD. Attention is given to confounding factors, and future studies aimed at resolving these factors are identified. Finally proposals are made to improve early programmer acceptance of TDD.</p>

	]]>
</description>

<author>David S. Janzen et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>Teaching Object-Oriented Software Engineering Through Problem-Based Learning in the Context of Game Design</title>
<link>http://works.bepress.com/djanzen/9</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/9</guid>
<pubDate>Mon, 08 Dec 2008 11:03:01 PST</pubDate>
<description>
	<![CDATA[
	<p>Although Object Orientation is emphasized in software engineering education, few have attempted to alleviate the initial learning curve associated with an inexperienced audience in non-computer science disciplines. The authors propose a Problem-Based Learning curriculum centered on game development to deliver basic Object-Oriented programming concepts in an interactive and engaging manner. Class activities occur within the context of the Object-Oriented Rational Unified Process. One of the most significant contributions of this paper lies in the design of class modules containing tasks intended to educate students on Object-Oriented Software Engineering in an incremental and self-actuated way.</p>

	]]>
</description>

<author>Jungwoo Ryoo et al.</author>


<category>Conference Proceedings</category>

</item>






<item>
<title>On the Influence of Test-Driven Development on Software Design</title>
<link>http://works.bepress.com/djanzen/8</link>
<guid isPermaLink="true">http://works.bepress.com/djanzen/8</guid>
<pubDate>Mon, 08 Dec 2008 11:02:57 PST</pubDate>
<description>
	<![CDATA[
	<p>Test-driven development (TDD) is an agile software development strategy that addresses both design and testing. This paper describes a controlled experiment that examines the effects of TDD on internal software design quality. The experiment was conducted with undergraduate students in a software engineering course. Students in three groups completed semester-long programming projects using either an iterative Test-First (TDD), iterative Test-Last, or linear Test-Last approach. Results from this study indicate that TDD can be an effective software design approach improving both code-centric aspects such as object decomposition, test coverage, and external quality, and developer-centric aspects including productivity and confidence. In addition, iterative development approaches that include automated testing demonstrated benefits over a more traditional linear approach with manual tests. This study demonstrates the viability of teaching TDD with minimal effort in the context of a relatively traditional development approach. Potential dangers with TDD are identified regarding programmer motivation and discipline. Pedagogical implications and instructional techniques which may foster TDD adoption will also be referenced.</p>

	]]>
</description>

<author>David S. Janzen et al.</author>


<category>Conference Proceedings</category>

</item>





</channel>
</rss>

