Overview of the Book. Using Open Source Technologies CHAPTER

Similar documents
Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

P-4: Differentiate your plans to fit your students

No Parent Left Behind

Student Handbook 2016 University of Health Sciences, Lahore

Why Pay Attention to Race?

Three Strategies for Open Source Deployment: Substitution, Innovation, and Knowledge Reuse

Generating Test Cases From Use Cases

Android App Development for Beginners

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

Strategic Practice: Career Practitioner Case Study

Getting Started with Deliberate Practice

Education the telstra BLuEPRint

Thesis-Proposal Outline/Template

DIFFUSION AND ADOPTION OF OPEN SOURCE LEARNING MANAGEMENT SYSTEMS IN EDUCATIONAL INSTITUTIONS

Project Management for Rapid e-learning Development Jennifer De Vries Blue Streak Learning

PUBLIC CASE REPORT Use of the GeoGebra software at upper secondary school

Visit us at:

Using Virtual Manipulatives to Support Teaching and Learning Mathematics

Online Marking of Essay-type Assignments

Book Review: Build Lean: Transforming construction using Lean Thinking by Adrian Terry & Stuart Smith

COMMUNICATING EFFECTIVELY WITH YOUR INSTRUCTOR

DICTE PLATFORM: AN INPUT TO COLLABORATION AND KNOWLEDGE SHARING

SAP EDUCATION SAMPLE QUESTIONS: C_TPLM40_65. Questions. In the audit structure, what can link an audit and a quality notification?

Team Dispersal. Some shaping ideas

Conceptual modelling for simulation part I: definition and requirements

Enhancing Customer Service through Learning Technology

Blended E-learning in the Architectural Design Studio

Soaring With Strengths

Automating Outcome Based Assessment

Web-based Learning Systems From HTML To MOODLE A Case Study

Institutionen för datavetenskap. Hardware test equipment utilization measurement

LEARNER VARIABILITY AND UNIVERSAL DESIGN FOR LEARNING

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

KEYNOTE SPEAKER. Introduce some Fearless Leadership into your next event. corrinnearmour.com 1

Introduction of Open-Source e-learning Environment and Resources: A Novel Approach for Secondary Schools in Tanzania

The Success Principles How to Get from Where You Are to Where You Want to Be

DYNAMIC ADAPTIVE HYPERMEDIA SYSTEMS FOR E-LEARNING

Calculators in a Middle School Mathematics Classroom: Helpful or Harmful?

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

Java Programming. Specialized Certificate

University of Delaware Library STRATEGIC PLAN

Reducing Features to Improve Bug Prediction

What is an internship?

Software Maintenance

Positive turning points for girls in mathematics classrooms: Do they stand the test of time?

Two Futures of Software Testing

The open source development model has unique characteristics that make it in some

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

The IDN Variant Issues Project: A Study of Issues Related to the Delegation of IDN Variant TLDs. 20 April 2011

use different techniques and equipment with guidance

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

The Foundations of Interpersonal Communication

Carolina Course Evaluation Item Bank Last Revised Fall 2009

CLASS EXODUS. The alumni giving rate has dropped 50 percent over the last 20 years. How can you rethink your value to graduates?

Being Extreme in the Classroom: Experiences Teaching XP

Pre-Algebra A. Syllabus. Course Overview. Course Goals. General Skills. Credit Value

How to Judge the Quality of an Objective Classroom Test

PeopleSoft Human Capital Management 9.2 (through Update Image 23) Hardware and Software Requirements

Strategic Planning for Retaining Women in Undergraduate Computing

University clearing advice/contact details for most common destinations for BHASVIC students

AUTHORITATIVE SOURCES ADULT AND COMMUNITY LEARNING LEARNING PROGRAMMES

How to Repair Damaged Professional Relationships

Group Assignment: Software Evaluation Model. Team BinJack Adam Binet Aaron Jackson

Introduction to Modeling and Simulation. Conceptual Modeling. OSMAN BALCI Professor

STUDENT MOODLE ORIENTATION

The Moodle and joule 2 Teacher Toolkit

Dyslexia and Dyscalculia Screeners Digital. Guidance and Information for Teachers

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

A Pipelined Approach for Iterative Software Process Model

SCHOOL EXEC CONNECT WEST ST. PAUL-MENDOTA HEIGHTS-EAGAN AREA SCHOOLS SUPERINTENDENT SEARCH FOCUS GROUP FEEDBACK January 12, 2017

Motivating developers in OSS projects

AU MATH Calculus I 2017 Spring SYLLABUS

Rule discovery in Web-based educational systems using Grammar-Based Genetic Programming

COMMUNITY ENGAGEMENT

On the Combined Behavior of Autonomous Resource Management Agents

DfEE/DATA CAD/CAM in Schools Initiative - A Success Story so Far

Memorandum. COMPNET memo. Introduction. References.

Measurement & Analysis in the Real World

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

CS Course Missive

Nearing Completion of Prototype 1: Discovery

Prepared by: Tim Boileau

Improving software testing course experience with pair testing pattern. Iyad Alazzam* and Mohammed Akour

Worldwide Online Training for Coaches: the CTI Success Story

Career Preparation for English Majors Department of English The Ohio State University

Video Marketing Strategy

Course Content Concepts

Cognitive Thinking Style Sample Report

Selling Skills. Tailored to Your Needs. Consultants & trainers in sales, presentations, negotiations and influence

THE VIRTUAL WELDING REVOLUTION HAS ARRIVED... AND IT S ON THE MOVE!

BUSINESS HONORS PROGRAM

Computer Organization I (Tietokoneen toiminta)

User Guide. LSE for You: Graduate Course Choices. London School of Economics and Political Science Houghton Street, London WC2A 2AE

Course Specification Executive MBA via e-learning (MBUSP)

Alignment of Australian Curriculum Year Levels to the Scope and Sequence of Math-U-See Program

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

Genevieve L. Hartman, Ph.D.

Tradeshow 102: Attracting Visitors. Dr. Amy Brown Wednesday, January 27, 2016

Computer Software Evaluation Form

Transcription:

03 463620 Ch01.qxd 10/28/03 8:49 AM Page 3 CHAPTER 1 Overview of the Book In this chapter, we briefly discuss the things to come primarily what the tools we ll employ when building PetSoar as well as the development-process philosophies we ll be covering. Using Open Source Technologies Open Source Software (OSS) is an interesting phenomenon that, in the last few years, has really begun to show its incredible staying power. With the widespread usage of the Apache HTTP Server, the Linux operating system, and lately the JBoss application server, it is clear that Open Source technology can be as good as or better than commercial offerings. Open Source Software also has many advantages. The most significant being that the source is freely available, which means that you can customize, tweak, and learn from code written by your peers. This minimizes risk because you can always modify the code to meet your custom needs. It is sometimes challenging to determine whether an individual OSS project is going to survive. A good metric is whether the project has unit tests and good test coverage. Another is the size of the community that is both developing and using the project. By valuing either, you should find it easy for defects to be addressed as they are discovered. However, the most important factor is 3

03 463620 Ch01.qxd 10/28/03 8:49 AM Page 4 4 Chapter 1 whether you are willing to work directly with the source code. If you are willing to contribute back to the project or make modifications for your own personal needs, the public success of the project is largely irrelevant once you ve adopted the code as your own. By investing yourself in knowing the project at a level deeper than just a cursory glance, you can guarantee the success of integration with your project even if the OSS project itself is not considered a widespread success. Through the widespread use of simplicity and decoupling in your application design, we will show you how utilizing Open Source technology can actually reduce the points of failure in your application and increase overall system stability and robustness while your application remains maintainable and flexible. In this book, we draw upon several Open Source products. Some will be offered under an umbrella organization, such as Apache Jakarta or OpenSymphony, while others are more independent, such as Hibernate or XDoclet. Following is a list of the Open Source products presented in this book and in the PetSoar application: JUnit and Mock Objects A test harness and library designed to assist with rapid and robust unit testing. OpenSymphony WebWork A Model-View Controller (MVC) framework that easily allows for pluggable view technologies and extensible configuration. We present examples of using both of these popular frameworks. Hibernate A transparent and powerful object/relational persistence and query service. OpenSymphony SiteMesh A Web-page layout system and Webapplication integration system that transparently aids in the creation of large sites with a common look and feel. OpenSymphony OSCache A utility component that enables developers to easily cache slow dynamic sections of Web sites, which results in pages that load hundreds of times faster. XDoclet A code-generation tool originally popularized for Enterprise JavaBeans (EJB) deployments but now in use for a wide variety of tasks. We will show how it can be used to simplify the configuration of Hibernate. Jakarta Lucene A high-performance, full-text search engine that is applicable in any project that demands text-based searching. Jakarta Commons A repository of simple, reusable Java components that is applicable to everyday development.

03 463620 Ch01.qxd 10/28/03 8:49 AM Page 5 Overview of the Book 5 Each product we use specializes in simplifying one (and only one) problem. Leveraging fine-grained OSS components in a larger application design can produce great time and cost savings. Understanding Design and Development Philosophies Besides the numerous quality Open Source projects that we will introduce and use in this book, we will also go one step further and show you first-hand, through the development of PetSoar, how to apply the philosophies presented here in your own projects. While there are many small techniques and principles that you ll find in the remaining chapters, they can all be classified in one of three categories: Test First Less is More Always Ask the Dumb Questions Test First During our careers as software engineers, the authors of this book have all come to the same conclusion. In order for complex, secure, stable software applications to succeed, proper testing must take place throughout the entire development lifecycle. Unfortunately, as the world grows and the pace of business increases, the time allocated for proper testing has shrunk to only a fraction of the time that is needed. In this book, we show you that the philosophy of writing tests before writing your actual code is more than just an academic proposition by Extreme Programming advocates. Whether you are an Extreme programmer or not, we maintain (and will demonstrate) that properly designed unit tests written at the onset of a development task can not only secure the stability of your code, but it can also speed up the development process with the pleasant side effect of saving your sanity. Less Is More Building on the principle of Test First, we also show you that, when given the choice between less and more, a software developer will reap the benefits if less is chosen. For example, unless there is compulsory evidence that a project requires the use of an Enterprise JavaBean server, it is usually advantageous to avoid over-architecting and avoid such heavier implementations. Such simplicity is the primary belief presented in this book. We show you how you

03 463620 Ch01.qxd 10/28/03 8:49 AM Page 6 6 Chapter 1 can apply simple, abstract, modular solutions toward your business requirements so that, if a heavier implementation is required, it is trivial to scale up the lighter-weight solution. Always Ask the Dumb Questions Before thinking about how any code is to be implemented, take a step back and ask yourself what you actually need to achieve to meet the business requirements. Let s face it. Writing software is the easy part. Writing software that meets requirements is where we often fall down. It s important to get a broad understanding of what the software should do before even considering how it should be implemented. In many cases, it may be that J2EE or even Java is the wrong solution to your problem. Always pay careful attention to what the best solution actually is. Don t try to fit a solution to the wrong problem. To do this, ask the dumb questions. Ask the really dumb questions. The simplest dumb question is why? Why does a button need to be placed there? Why is an extra field needed? Why does a JMS queue need to be used? The higher up you go (that is, the closer to the requirements and further from the implementation), the more likely you are to discover something that may fundamentally change the way you implement the solution. Even if you don t discover anything new, you will at least be reassured that you have understood the requirements. Only after discovering the broad overall goal of the requirement should you start thinking about the details of implementation. Before and during implementation, you should continually ask questions. Ask the dumb questions and then ask detailed questions related to the fine-grained implementation. These questions can be answered in the form of a formalized specification document or a friendly chat by the coffee machine. Only through repeated questioning can a developer truly pick the brain of the client and implement the best solution possible. We do not, however, recommend asking these kinds of questions if you are a certifiable psychic or a mind reader. Exploring the PetSoar Project The PetSoar project may have begun as a way to showcase the technologies and techniques presented in this book, but it is a project that will continue to grow and flourish long after this book s publication. By reading this book, you will begin to understand the development ideologies used during the initial implementation of PetSoar. However, we highly encourage every reader to actively seek out the source code of this project and further enhance it by

03 463620 Ch01.qxd 10/28/03 8:49 AM Page 7 Overview of the Book 7 applying derivatives of the technologies and philosophies presented here. Pet- Soar will surely be a very active and dynamic project so that you can continue to learn and grow as a software developer even after you ve read this book. The Web site for this project is http://www.wiley.com/compbooks/ walnes. Here, you will find Book errata (hopefully, this section will be fairly desolate) as well as an online demo of PetSoar and downloadable source code. It is our sincere hope that, if you are not already an Open Source contributor, the PetSoar project and book could motivate you to begin to actively seek out and develop alternative products that hold your attention. Lastly, the PetSoar application presented in this book at the time of publication may or may not be the same PetSoar you ll find on the Web site. As time goes on, future iterations of this project should further increase the simplicity, scalability, robustness, and general usability of the application. Sticking to the Basics As you read this book, remember that the overall theme is less is more achieved through simplicity. Simplicity can be a challenging task to undertake, especially when being bombarded with more and more complex specifications and products on a daily basis. The best advice we can offer is to take your time and understand that moving from complexity to simplicity is not an easy task and may take several project iterations before you truly feel comfortable developing applications in this manner. If you already embrace this philosophy, we recommend that you use this book as a guide to alternative ways to implement this development approach. Summary This chapter has provided an overview of material to be discussed throughout this book. We examined Open Source technologies that have played a key role in the development of the PetSoar application as well as the philosophies we followed when developing PetSoar. We described in general terms the PetSoar application, which will serve as the foundation for discussions throughout this book.

03 463620 Ch01.qxd 10/28/03 8:49 AM Page 8