A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2017; you can also visit the original URL.
The file type is
Encyclopedia of Software Engineering
Test-driven development (TDD) is a software development approach using a growing scaffold of tests that guide and support the production of code. This entry describes TDD, explains the underlying dynamics, provides a small worked example, and offers a theory of how and why it works. It relates TDD to other approaches that employ a similar style of development and presents a summary of the empirical results about TDD's effectiveness. The entry also raises some of the known concerns anddoi:10.1081/e-ese-120044180 fatcat:gakzqwm5xzc7za73nbgegixhd4
more »... cerns and challenges about this development practice and provides pointers to solutions. TDD is a practice that has widespread impact on the software development lifecycle. Adopting it takes a great amount of discipline. However, we cannot say whether TDD is right for everyone and for all types of software: this entry should help the reader decide whether to explore further. Encyclopedia of Software Engineering
Frank Maurer : Maurer http://ebe.cpsc.ucalgary.ca/Frank.Maurer/ Grigori Melnik:http://sern.ucalgary.ca/~melnik ...doi:10.1145/1134285.1134503 dblp:conf/icse/MaurerM06 fatcat:3gkdycg74zbj5bhix6m3l3yzey
Lecture Notes in Computer Science
The paper reports on the results of a recent study on student perceptions on agile practices. The study involved forty-five students enrolled in three different academic programs (Diploma, Bachelor's and Master's) in two institutions to determine their perceptions of the use of extreme programming practices in doing their design and coding assignments. Overwhelmingly, students' experiences were positive and their opinions indicate the preference to continue to use the practices if allowed.doi:10.1007/3-540-45672-4_27 fatcat:wuz4mlfxkbhs7eb62ve2rvgydy
small normalized productivity by 22% Madeyski 18 Quasi- 12 hours No Wroclaw Accounting Small 188 Java n/a -25 to -45% † controlled University application experiment of Technology Melnik ...doi:10.1109/ms.2007.75 fatcat:wv6e6t2b4bdiboj762wsoixj2i
An armada of emerging agile methods of software development (with eXtreme Programming and Scrum being the most broadly used) is both gaining popularity and generating lots of controversy. This high-level tutorial gives an overview of agile methods and provides background to understand how agile teams are addressing modern software engineering challenges. Analysis of empirical evidence is used to discuss strengths and limitations of agile methods in various contexts. The participants aredoi:10.1109/icsecompanion.2007.18 dblp:conf/icse/MaurerM07 fatcat:gngbzfut5rht7hxlsntgrq7xh4
more »... cipants are introduced to the innovation diffusion models and environments, and discuss what is needed for agile methods to cross the chasm and move into the mainstream of software development.
Lecture Notes in Computer Science
This paper describes the experiences of introducing agile methods in four different academic programs (Diploma, Applied Bachelor's, Bachelor's and Master's) in two institutions during two academic years. It contains suggestions and techniques for bringing agile methods into curriculum. Based on overwhelmingly positive students' experiences this report should encourage other academics that are considering introducing agile methods in their software engineering courses.doi:10.1007/978-3-540-45122-8_20 fatcat:zkryh2mahnaofgxcs7lxgjegse
Surprisingly, to some people, one of the most effective ways of testing requirements is with test cases very much like those for testing the completed system. -Donald C. Gause and Gerald M. Weinberg W hen Donald Gause and Gerald Weinberg wrote this statement, 1 they were asserting that writing tests is an effective way to test requirements' completeness and accuracy. They also suggest writing these tests when gathering, analyzing, and verifying requirements-long before those requirements aredoi:10.1109/ms.2008.24 fatcat:znxcuhn75vduxdyrhhhv3feewq
more »... requirements are coded. They go on to say, "We can use the black box concept during requirements definition because the design solution is, at this stage, a truly black box. What could be more opaque than a box that does not yet exist?" 1 Clearly, they value early test
In [ 12] , Melnik and Richter analyze the role of imprecise statements in conversations among software developers. ...doi:10.1007/978-3-540-25983-1_1 fatcat:2pjipl3n5rcbrksifgve7pno4i
Lecture Notes in Computer Science
Executable acceptance testing allows both to specify customers' expectations in the form of the tests and to compare those to actual results that the software produces. The results of an observational study identifying patterns in the use of the FIT acceptance testing framework are presented and the data on acceptance-test driven design is discussed.doi:10.1007/11499053_15 fatcat:r67qp6o4yvdalfwq4i2a7svowu
When developing large software products many verbal and written interactions take place. In such interactions the use of abstract and uncertain expressions is considered advantageous. Traditionally, this is not the case for statements which are imprecise in the sense of being vague or subjective. In this paper we argue that such statements should not only be tolerated but, often, they can be very useful in interaction. For this purpose we relate abstraction, uncertainty and impreciseness todoi:10.1007/978-3-540-25983-1_12 fatcat:bdrauvbphnbctnrxw7aahddkc4
more »... mpreciseness to each other by investigating the differences and common properties. We also discuss the relation to the use of common sense implementations in Artificial Intelligence. The introduction of degrees of i mpreciseness leads to the question of finding an optimal level. This is interpreted as a learning problem for software organizations . The success can be measured in terms of different cost factors. The design of evaluation experiments is shown as an interdisciplinary task.
Lecture Notes in Computer Science
Software engineering is fundamentally driven by economics. One of the issues that software teams face is employee turnover which has a serious economic impact. The effect of job dissatisfaction on high turnover is consistently supported by evidence from multiple disciplines. The study investigates if and how job satisfaction relates to development processes that are being used and the determinants of job satisfaction across a wide range of teams, regions and employees. A moderate positivedoi:10.1007/11774129_4 fatcat:s4pcofgwb5axtmodf3f65c2ouu
more »... rate positive correlation between the level of experience with agile methods and the overall job satisfaction was found. The evidence suggests that there are twice as many members of agile teams who are satisfied with their jobs (vs members of non-agile teams). The ability to influence decisions that affect you, the opportunity to work on interesting projects, and the relationships with users were found to be statistically significant satisfiers.
The paper outlines an experiment conducted in two different academic environments, in which FIT tests were used as a functional requirements specification. Common challenges for functional requirements specifications are identified, and a comparison is made between how well prose and FIT user acceptance tests are suited to overcoming these challenges from the developer's perspective. Experimental data and participant feedback are examined to evaluate whether developers can use requirements indoi:10.1007/978-3-540-27777-4_7 fatcat:ppnjiswrrnexzakluj4gffieza
more »... e requirements in the form of FIT tests to create a design and implementation.
Lecture Notes in Business Information Processing
Sharp, Helen; Giuffrida, Rosalba and Melnik, Grigori (2012). Information flow within a Sharp, Helen; Giuffrida, Rosalba and Melnik, Grigori (2012). ... Fig 6 . 6 Information flow within a co-located agile team Sharp, Helen; Giuffrida, Rosalba and Melnik, Grigori (2012). ...doi:10.1007/978-3-642-30350-0_5 fatcat:27wrms67vrbadmmgxeumu532qi
Research was conducted on using agile methods in software engineering education. This paper explores the perceptions of students from five different academic levels of agile practices. Information has been gathered through the collection of quantitative and qualitative data over three academic years, and analysis reveals student experiences, mainly positive but also some negative. Student opinions indicate the preference to continue to use agile practices at the workplace if allowed. A waydoi:10.1145/1062455.1062543 dblp:conf/icse/MelnikM05 fatcat:koxxjutnrjdi7ovnwexdn6n23q
more »... allowed. A way these findings may potentially be extrapolated to the industrial settings is discussed. Finally, this report should encourage other academics considering adoption of agile methods in their computer science or software engineering curricula.
Critiques of the quantity and quality of empirical evaluations in software engineering have existed for quite some time. However such critiques are typically not empirically evaluated. This paper fills this gap by empirically analyzing papers published by ICSE, the prime research conference on Software Engineering. We present quantitative and qualitative results of a quasi-random experiment of empirical evaluations over the lifetime of the conference. Our quantitative results show the quantitydoi:10.1145/1134285.1134333 dblp:conf/icse/ZannierMM06 fatcat:uyp5ehh67re2nkuj6w4xobin5y
more »... show the quantity of empirical evaluation has increased over 29 ICSE proceedings but we still have room to improve the soundness of empirical evaluations in ICSE proceedings. Our qualitative results point to specific areas of improvement in empirical evaluations.
« Previous Showing results 1 — 15 out of 48 results