Information Technology Research Update by Diomidis Spinellis Department of Management Science and Technology Athens University of Economics and Business (AUEB) http://www.dmst.aueb.gr/dds/ Volume 2 Issue 1 January 25th, 2002 A free periodic newsletter providing summaries, analyses, insights, and commentaries on information technology research. In this issue: - Lightweight Software Development Methodologies - JUnit Simplifies Testing of Java Programs - Research Focus: IBM Systems Journal - European Central Bank Notes to Embed RFID chips Lighweight Software Development Methodologies --------------------------------------------- The concept of Internet time, focus on customer satisfaction, and a number of high-profile failures in IT system development have prompted a re-examination of the software development methodologies. Two, so called lightweight, alternative methodologies have had particular impact and are currently being used and reviewed by practitioners and academics. "eXtreme programming" (XP) and "Agile Software Development" both focus on rapid turnaround times, customer requirements, continous incremental development, and treating the developer as a human instead of a machine cog. In this issue of the "Information Technology Research Update" we present an overview of the two methodologies. The theoretical basis for Kent Beck's XP is an options-based pricing model of software development. Because software is developed in an environment where technological, business, and human risks abound, investing for the future through careful architectural design, elaborate code structures that support all possible future requirements, and matching documentation can be a waste of effort. Changing requirements or technology might render parts of the system obsolete. Kent Beck's insight lies in discounting elaborate design for future needs in favor of today's simplicity. He suggests deferring important design decisions until a particular feature is needed. According to Beck, you should develop the most important features first, rapidly providing the customer with the functionality required and minimizing the risk of total project failure. As code evolves, you can always refactor it in response to new needs. Surprisingly, Beck takes for granted that current state-of-the-art technology and programmer skills will not stand in the way of these support these continuous design changes. The basic tenents behind XP are an early planning stage, small, frequent releases, the use of a metaphor shared between developers, a simple design, continous testing and refactoring, pair programming, collective ownership, continous integratio, 40 hour working weeks, and on-site customer, and common coding standards. XP is not without limitations. It should not be used in an environment whose culture would not tolerate it: in large teams (a 10-person team is probably the upper limit), applications where changes incur large overheads, systems with long compile or test cycles, applications that do not allow easy testing, and physical environments that separate people (XP teams are encouraged to work cooperatively in a single room; it is unclear how constant interruptions and pair working allow deliberate concentration). Agile software development was brought to life by a number of practitioners sharing the same distrust for large waterfall-style methodologies. We let the "Manifesto for Agile Software Development" speak for itsself: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: o Individuals and interactions over processes and tools o Working software over comprehensive documentation o Customer collaboration over contract negotiation o Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Principles of the Agile Alliance 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10. Simplicity--the art of maximizing the amount of work not done--is essential. 11. The best architectures, requirements, and designs emerge from self-organizing teams. 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. For further information see: - http://www.AgileAlliance.org/ - @Book {Bec00, Author="Kent Beck", Title="Extreme Programming Explained: Embrace Change", Publisher="Addison Wesley Longman", Year="2000", ISBN="0-201-61641-6" } - IEEE Software, 16(6), November/December 2001 "eXtreme programming experiences" JUnit Simplifies Testing ------------------------ If you are still testing Java programs using println statements or by manually interacting with the completed application, you should invest some time experimenting with unit testing (also advocated by XP) and the JUnit testing framework. Java programs can organise assertions into complete test cases using JUnit. The JUnit framework supports the initialisation of test data, the definition of test cases, their organisation into a test suite, and the collection of the test results. It also provides a GUI tool, TestRunner, for executing the test cases. Test cases are organised into a class derived from the TestCase class. Fields inside the class are used to hold data needed between different test cases. A method called setUp is responsible for initialising the field values, while the tearDown method is responsible for tearing down the support erected for the specific test case (e.g. a network connection). Test cases are written as separate methods and their name begins with "test". Inside each test case you can employ many different types of assert methods used for verifying the obtained results. A number of test cases implemented inside a class can be collected into a test suite method named "suite"; the suite's constructor can automatically collect from the class all public methods starting with test. JUnit, TestRunner, their source code and their documentation are freely available. For further information visit http://www.junit.org Research Focus: IBM Systems Journal ----------------------------------- The IBM Systems Journal often publishes cutting edge research in application-related areas our group works on. For this issue of "Information Technology Focus" we have selected some very interesting articles from four issues of particular importance to us. The issues we used for choosing the articles deal with Knowledge Management, Technology for e-business, the MIT Media Laboratory, and Pervasive Computing. The journal is available in our library and also on-line at < http://www.research.ibm.com/journal/sjimg.html> [thanks to Ioulia Livaditi for supplying me the link]. IBM Systems Journal, 40(1), 2001. Issue theme: Knowledge Management - Knowledge management technology, A. D. Marwick p. 814 - Communities of practice and organizational performance, E. L. Lesser and J. Storck p. 831 - The knowledge management puzzle: Human and social factors in knowledge management, J. C. Thomas, W. A. Kellogg, and T. Erickson p. 863 - Views of knowledge are human views, G. Dueck p. 885 - Linking e-business and operating processes: The role of knowledge management, L. Fahey, R. Srivastava, J. S. Sharon, and D. E. Smith p. 889 - Knowledge resource exchange in strategic alliances, S. Parise and J. C. Henderson p. 908 - Knowledge portals and the emerging digital knowledge workplace, R. Mack, Y. Ravin, and R. J. Byrd p. 925 - Text analysis and knowledge mining system, T. Nasukawa and T. Nagano p. 967 - Toward speech as a knowledge resource, E. W. Brown, S. Srinivasan, A. Coden, D. Ponceleon, J. W. Cooper, and A. Amir p. 985 IBM Systems Journal, 40(4), 2001. Issue theme: Technology for e-business - Java Management Extensions for application management, H. Kreger p. 104 - Security challenges for Enterprise Java in an e-business environment, L. Koved, A. Nadalin, N. Nagaratnam, M. Pistoia, and T. Shrader p. 130 - Transcoding: Extending e-business to new environments, K. H. Britton, R. Case, A. Citron, R. Floyd, Y. Li, C. Seekamp, B. Topol, and K. Tracey p. 153 - Intermediary-based transcoding framework, S. C. Ihde, P. P. Maglio, J. Meyer, and R. Barrett p. 179 - Application hosting for pervasive computing, S. G. Hild, C. Binding, D. Bourges-Waldegg, and C. Steenkeste p. 193 IBM Systems Journal, 39(3 and 4), 2000. Issue theme: MIT Media Laboratory - From being digital to digital beings, N. Negroponte p. 417 - Why the Media Lab works-A personal view, K. Haase p. 419 - Media, networks, and content, A. Lippman p. 435 - Hyperlinked television research at the MIT Media Laboratory, V. M. Bove, Jr., J. Dakss, E. Chalom, and S. Agamanolis p. 470 - Media in performance: Interactive spaces for dance, theater, circus, and museum exhibits, F. Sparacino, G. Davenport, and A. Pentland p. 479 - A new structure for news editing, D. Gruhl and W. Bender p. 569 - Time Frames: Temporal augmentation of the news, D. B. Koen and W. Bender p. 597 - SuperNews: Multiple feeds for multiple views, S. Elo Dean and L. Weitzman p. 633 - Synthetic News Radio, K. Emnett and C. Schmandt p. 646 - Learning and expressing, W. Bender p. 683 - What's the big idea? Toward a pedagogy of idea power, S. Papert p. 720 - Silver Stringers and Junior Journalists: Active information producers, B. K. Smith, W. Bender, I. Endter, J. Driscoll, M. Turpeinen, and D. Quan p. 730 - An installation of interactive furniture, O. Omojola, E. R. Post, M. D. Hancher, Y. Maguire, R. Pappu, B. Schoner, P. R. Russo, R. Fletcher, and N. Gershenfeld p. 861 - Context-aware design and interaction in computer systems, T. Selker and W. Burleson p. 880 - Sensor systems for interactive surfaces, J. A. Paradiso, K. Hsiao, J. Strickon, J. Lifton, and A. Adler p. 892 - Emerging frameworks for tangible user interfaces, B. Ullmer and H. Ishii p. 915 IBM Systems Journal, 38(4), 1999. Issue theme: Pervasive Computing - A look at human interaction with pervasive computers, W. S. Ark and T. Selker p. 504 - Classroom 2000: An experiment with the instrumentation of a living educational environment, G. D. Abowd p. 508 - Contrasting paradigms for the development of wearable computers, C. Baber, D. J. Haniff, and S. I. Woolley p. 551 - Wireless networked digital devices: A new paradigm for computing and communication, T. G. Zimmerman p. 566 - A universal information appliance, K. F. Eustice, T. J. Lehman, A. Morales, M. C. Munson, S. Edlund, and M. Guillen p. 575 - At what cost pervasive? A social computing view of mobile computing systems, D. C. Dryer, C. Eisbach, and W. S. Ark p. 652 - The origins of ubiquitous computing research at PARC in the late 1980s, M. Weiser, R. Gold, and J. S. Brown p. 693 European Central Bank Notes to Embed RFID Chips ----------------------------------------------- The European Central Bank is working with technology partners on a project to embed radio frequency identification tags into the very fibers of euro bank notes by 2005. Intended to foil counterfeiters, the project would create an instant mass market for RFID chips, which have long sought profitable application. . The work raises a number of interesting issues regarding security and privacy. Applying our experience from the myGrocer project into this scenario could be highly profitable from a research point of view. [abstracted from comp.risks]