Hello, and welcome to DDJ.com
CMP Media Launches New Dr. Dobb's Journal

SD West 2006 announces this year's list of Jolt Product Excellence Award winners and Productivity Award winners.

LOG INRegisterForgot password?
What are the green links?
All Access members only
RSS Feed
DDJ > Dr. Dobb's Departments > Architecture & Design

Architecture & Design

Editor's Note | News | Features |

Best practice in system architecture, programming methods, the test/debug cycle and software product lifecycle management.


Book Review: Come, Let's Play
Jorge Aranda
David Harel and Ramy Marelly wrap scenarios into sequence-like diagrams to describe interactions with other systems. Can they shift our perspective on programming?

Special Guide-MDA and UML Tools: CASE 2.0—or the Developer's Dream
Mike Riley
The quest for model-driven application development that drives model-to-code and model-to-model transformation still needs some work, but the MDA products out there show huge promise.

Interview: Inside the Microsoft Modeling Team
Scott Swigart
Members of Microsoft's Modeling Team speak with Software Development magazine about Visual Studio Team System's modeling tools and Microsoft's thoughts about modeling in general.

Steve McConnell on Software Estimation
Jonathan Erickson
Steve McConnell discusses the black art of estimating schedules and resources involved in software development projects. (MP3, 5:07 mins.)

Accelerating Compute Intensive Functions Using C
Joe Hanson
Joe examines how you accelerate application processing using a software-configurable architecture to achieve hardware-accelerated performance in C.

An Algorithm for Compressing Space and Time
Tomas G. Rokicki
Making a slow program fast can lead to both joy and frustration. But sometimes a new approach yields amazing improvements.

Dependency Management
John Graham-Cumming
John explores the irony of Make.

Quantum Cryptography Research Advances and IBM Research May Extend Moore's Law
Deirdre Blake
Quantum cryptography researchers at the University of Toronto have described the first experimental proof of a quantum decoy technique to encrypt data over fiberoptic cable. Also, researchers at IBM have found a way to extend a key chip-manufacturing process to generate smaller chip circuits. (MP3, 2:57 mins.)

Dr. Dobb's Journal April 2006
Jonathan Erickson
Algorithms (13.4 MB)

The Craftsman: Meeting the Visitor
Robert C. Martin
Our apprentices continue their off-duty exploration, as Avery gives Alphonse a lesson on design principles. The challenge: How do you add polymorphic methods to a hierarchy without modifying it?

Design Center: Taming Chaos with SysML
Scott McKorkle, Chris Sibbald
The intricacies of system development require a further evolution: A visual means of planning and displaying the architecture, from basic concepts through implementation.

On the Road: Navigating Your Way to Regulatory Compliance
Jeannine A. Bartlett
Sarbanes-Oxley, HIPAA, the EU Protection Directive ... While organizations have been tasked with complying with such regulations, little implementation guidance exists. Despite conflicting requirements, compliance is possible—if you begin by identifying your privileged and regulated data, and then apply well-defined best practices to secure it.

Algorithm Accuracy and Artificial Vision
Deirdre Blake
Researchers at Ohio State have found a way to determine, in advance, which algorithms are best in a particular circumstance; a researcher in Spain has developed an improved artificial vision edge-detector technique. (MP3, 3:39 mins.)

Tomorrow's Software Factory--Today
Matthew Heusser
If you read enough technology news, you are bound to run into the software factory. But just what is a software factory?

SCM Strategies
Jonathan Erickson
Laura Wingerd, author of Practical Perforce, discusses strategies for effective Software Configuration Management. (MP3, 4:48 mins.)

Real-Time Stereoscopic Video Streaming
Stuart Ferguson
Our authors examine real-time virtual reality by showing you how to use DirectX and OpenGL to build a stereoscopic webcam.

Viewpoint: Beyond Agile: Smart
Ivar Jacobson
Agility depends too heavily on tacit knowledge, but the Unified Process is too encyclopedic. The answer? Virtual mentors that learn along with their physical peers.

Product Roundup: Scaling Down
Gary Pollice
As agile techniques proliferate, process products aim to answer fresh needs for flexible options. We check out three pioneering tools and a streamlined beta of an old standby.

New & Noteworthy: Take My Build, Please
Rick Wayne
Build tools finally get some respect from Electric Cloud, and two new tomes shed light on SOA and Java security. Also keep revision under control with AccuRev's CVS Health Checker and let Enerjy CQ2 spruce up your Java Metrics.

Software Quality: Sweet Predictability
Watts Humphrey
To tame the increasing complexity of software and meet growing reliability requirements, you need a new discipline. The Personal Software Process shows you how to track your own quality and productivity, and allows you—and your team—to accurately predict success.

Solid-State Lighting and the RAD Lab
Deirdre Blake
TheAlliance for Solid-State Illumination Systems and Technologies unveils a novel concept for lighting homes and offices. New Research Lab Formed The Reliable, Adaptive, and Distributed Systems Laboratory (or RAD Lab) is formed at U.C. Berkeley. (MP3, 3:49 mins.)

Logidex Manages SOA
Mike Riley
LogicLibrary's Alan Himmler, Vice President of Product Management and Marketing, and Brent Carlson, Co-Founder and Vice President of Technology talk about Logidex, the company's SOA governance tool. (MP3, 8:23 mins.)

Contivo Builder and MDA-oriented development
Mike Riley
Software Development Magazine speaks with Dave Hollander, Chief Technology Officer for Contivo, about his company's latest release of Contivo Builder, a data dictionary utility that facilitates MDA-oriented development.

Beyond SOA Governance
Brent Carlson
The debate over registries and repositories.

Network Speed Record Shattered, and New Algorithm Improves Robot Vision
Deirdre Blake
An international team of scientists and engineers has broken the network speed record for the third consecutive year; A new machine-vision algorithm developed at Stanford University gives robots the ability to approximate distances from still images. (MP3, 3:26 mins.)

Of Interest

February 2006 Of Interest.

Proteins for Fun and Profit
Dennis E. Shasha
February 2006 Dr. Ecco's Omniheurist Corner.

Google's Summer of Code: Part III
DDJ Staff
Google's Summer of Code resulted in thousands of lines of code. Here are more students who participated.

Sudoku & Graph Theory
Eytan Suchard, Raviv Yatom, Eitan Shapir
Understanding graph theory is central to building your own Sudoku solver.

Displaying GIF Images on J2ME Mobile Phones
Tom Thompson
Surprisingly, many Java-based mobile phones couldn't display GIF image files--until now.

Range Tracking & Comparison Algorithms
Kirk J. Krauss
Some information is best viewed as a list of ranges. Kirk presents algorithms for dealing with ranges.

Examining uC++
Peter A. Buhr, Richard C. Bilson
uC++ was designed to provide high-level concurrency for C++.

C-Level Secrets: Hijacked!
Steve Adolph, Fariba Matin
Sunrise, sunset ... When Epsilon's biggest client demands a significant upgrade, our reengineering project is derailed. Still, opportunity beckons.

The Agile Edge: Unified and Agile
Scott Ambler
From Objectory to RUP to EUP, the Unified Process has continued to evolve. Now, with its marriage to agility, we have a simplified instantiation tailored for agile software development teams.

Viewpoint: Defending the Gantt Chart
Amit Asaravala
The project manager's mainstay is conspicuously absent from a popular PM application. It's a shame, as the charting feature is still useful and necessary, despite its falling popularity.

Adventures in Offshoring: Global Success Stories
Software Development editors
The latest trends are polar opposites. While some mavens crow about pair programming and on-site customers, others distribute development across the globe. Do lower costs justify oceanic rifts among team members? Three offshore project managers say yes.

Defusing Distance: Too Many Time Zones
Jean tabaka
Are face-to-face meetings a luxury you can't afford? From conference call strategies to Web-based meeting managers, try these tips to facilitate communication and collaboration among distributed team members.

Hotter Events
John Torjo
Sometimes you need to define your own custom events. John shows how to make it as easy on yourself as possible.

Friendship and the Attorney-Client Idiom
Alan R. Bolton
The much-maligned "friend" declaration comes with its share of pitfalls. Alan shows how to use friendship to enhance encapsulation while minimizing the risks.

Examining Objective-C
Kyle Dawkins
Objective-C is an object-oriented strict superset of C and is the language of choice for development with Mac OS X or the GNUStep Foundation classes.

AOP & Accessibility
Jorge Aranda, Laura MacDougall
Jorge and Laura report on Aspect-Oriented Analysis and Design and Access by Design, respectively.

AADL: A Design Language for Embedded Systems
Jonathan Erickson
Peter Feiler discusses the Architecture Analysis and Design Language, a textual and graphical language that supports model-based engineering of embedded real-time systems. (MP3, 3:45 mins.)

The Eclipse Visual Editor
David Orme, Joe Winchester
The Eclipse Visual Editor is a subproject that provides a framework for creating Eclipse-based GUI builders.

Sorting in Java & C#
David K. Perelman-Hall
David uses reflection to sort a list of complex types using both Java and C#.

Thoughts on Language Design
Guy L. Steele Jr.
Guy Steele, an engineer who knows something about designing programming languages, explains why new challenges require new solutions.

Implementing Requirements and Change-based Development
Alexandra Weber Morales
In this interactive conversation between agile software requirements expert Jennitta Andrea and Software Development Editor in Chief Alexandra Weber Morales, you’ll learn about:
  • Agile values that guide decision making
  • Visualizing the distinctive characteristics of a project
  • Strategies for shaping an agile requirements process
  • Recognizing and eliminating hidden waste

    SOA Strategy: BEA's AquaLogic Suite
    Mike Riley
    Software Development interviews, Sanjay Chikarmane, BEA's Senior Director of Product Management for Integration Products, on service-oriented architectures. (MP3, 16:01 mins.)

    Cluster Computers: Special Tools Required
    Jonathan Erickson
    James Reinders discusses the growth in Cluster Computing, and the special demands it puts on software development tools. (MP3, 5:43 mins.)

    An Overview of Generics
    Dino Esposito
    In the .NET Framework 2.0, C# and Visual Basic .NET support generics. This means that you can have a List of Integer and a List of ProductInfo, and they will be different types.

    The Craftsman: Team Player
    Robert C. Martin
    Returning to Jerry, Alphonse gets a reprieve from Jasper's jollity and learns more about acceptance tests—alternate and otherwise—and the collaborative value of his own work.

    C-Level Secrets: One Man's Trash...
    Steve Adolph, Fariba Matin
    Rather than toss out the aging baby with the bathwater, we decide to tackle on Epsilon's system proliferation problem by reengineering the gold standard with some savvy refactorings.

    The Agile Edge: How Agile Are You?
    Scott Ambler
    Just claiming the moniker doesn't make you an agility expert: Mix and match these seven elements to create a unique solution that works for your project.

    RSS Tool Review: Rough Around the Edges
    Chris Minnick
    RSS is widely used to syndicate content like podcasts and blogs—but its tools are far from mature. Still, it's only a matter of time before they also enter the mainstream.

    Comparing RAD & Enterprise Development in .NET
    Mark M. Baker
    .NET Software Legend Juval Lowy explains how RAD and Enterprise developers bring very different perspectives to how they approach .NET technology and how this deeply affects their expectations of it. (MP3 audio, 16:51 mins.)

    A Flexible Framework for Error Reporting
    Terence Parker
    Errors can often occur deep in a class or subroutine, but the way you present that error should ideally be dependent on context. The solution is to separate error generation from error reporting.

    <algorithm>: find_end
    Bjorn Karlsson
    Bjorn covers search, search_n and find_end, which are all useful in finding subsequences.

    SCM: It's More Than Just Source Code
    Jonathan Erickson
    Christopher Seiwald explains how and why Software Configuration Management involves more than just source code. (MP3, 6:01 mins.)

    The Box Chip Game
    Dennis E. Shasha
    December 2005 Dr. Ecco's Omniheurist Corner.

    Memory Management & Embedded Databases
    Andrei Gorine, Konstantin Knizhnik
    Embedded and in-memory databases depend on the quality of their memory-management algorithms.

    A Mac Text Editor Migrates to Intel
    Tom Thompson
    BBEdit, an industrial-strength Macintosh text editor, has been ported to the Intel platform. Here's how.

    Building Grid-Enabled Data-Mining Applications
    Alex Depoutovitch, Alex Wainstein
    Computing grids let you use parallelization to tackle really big data-mining jobs.

    DSO Means Better Software Sooner
    Jonathan Erickson
    Johan Wall discusses Device Software Optimization, an industry-wide initiative for developing better software. (MP3 audio, 3:19 mins.)

    The Art of Project Management
    Scott Berkun
    Learn how to plan, manage and lead projects. This personal account of hard lessons learned over a decade of work in the industry distills complex concepts and challenges into practical nuggets of useful advice. Inspiring, funny, honest, and compelling, this is the book you and your team need to have within arms reach.

    SOA: Concepts, Technology, and Design
    Thomas Erl
    Author Thomas Erl will present SOA principles, strategy, and best practices. The tutorial in Service-Oriented Architecture:Concepts, Technology, and Design provides step-by-step instructions for modeling and designing service-oriented solutions from the ground up.

    The Role of Business Process Modeling in Service-oriented Architecture Development
    Alexandra Weber Morales
    This presentation provides Gartner recommendations on how organizations must change BPM roles and responsibilities to enable Service-oriented Applications (SOAs) and Borland will present how their Together solutions can support BPM, using BPMN, along with the visual modeling needs for the entire development team.

    Configuration Management in Distributed Environments
    Alexandra Weber Morales
    Distributed software development projects are fast becoming the norm, and coordinating the efforts of far-flung development teams is one of the biggest challenges faced by enterprise-level developers and managers today.

    Compuware - Model-driven, Pattern-based Development Explained
    Alexandra Weber Morales
    This webcast examines an automated approach for translating business models into the application code necessary to implement a business solutions based upon best J2EE design and coding practices.

    Real-World Agility Lessons: A Conversation with Peter Schuh
    Alexandra Weber Morales
    Going agile is as easy as getting fit: quietly integrate in somepractices, scope a release, and deliver, right? Most teams,unfortunately, find that, like turning down that plate of donuts in thelunch room, choosing the right agile practices for project success iseasier said than done. Plus, 5 Must-Have Strategies for Agile Builds and Releases.

    Building and Releasing Winning Products
    Alexandra Weber Morales
    Luke Hohmann, author of Beyond Software Architecture: Creating and Sustaining Winning Solutions (part of Addison-Wesley's Martin Fowler Signature Series), describes how developers at independent software vendors can avoid classic mistakes in the second half of the lifecycle, from prototyping through quality assurance, prelaunch and launch.

    Agile Data Modeling With Scott Ambler and The Power Of Design With David Dichmann
    Alexandra Weber Morales
    We'll look at a case study that puts to use the practices described in Ambler's Productivity Award-winning Agile Database Techniques. Also, Sybase's David Dichmann shows how UML, business process modeling, XML, warehouse modeling, metadata cohesion and corporate standards enforcement work together in a 21st century data modeling solution.

    The Intersection of Agility, Objects and UML
    Alexandra Weber Morales
    Robert C. Martin, discusses his Software Development column "The Craftsman," OO design practices, Extreme Programming, project management and the inevitable, and highly entertaining, Star Trek anecdote.

    The Changing Face of Software Licensing: Managing Rights in the Global Digital Economy
    Alexandra Weber Morales
    DRM, license compliance, and targeted marketing are some of the reasons developers are looking to the realm of license management. This seminar explores the key industry software licensing trends in the global digital economy, and discusses how the US legal provisions are affecting the licensing climate in the US.

    Development’s Bottom Line: Discover The Invisible Elephant That Could Save You Millions
    Alexandra Weber Morales
    Partners from the premiere analyst firm Hurwitz and Associates discuss the results of their recent study on development effectiveness and process improvement from leading companies in the software, financial services, insurance, hardware, semiconductor, healthcare, and telecommunications industries

    C-Level Secrets: Burn the Ships!
    Steve Adolph, Fariba Matin
    When Epsilon’s system proliferation problem accelerates out of control, we have to make a stand. How do we move ahead without causing a mutiny?

    The Agile Edge: Great Leaders Are Made
    Scott Ambler
    Much like the Agile Alliance, the Agile Project Leadership Network aims to provide a vision and techniques for flexible, fast, customer value– driven project management.

    Project Management: Taming Template Tyranny
    Gary Evans
    Frameworks can prevent waste, but don’t let them take over your development process. By focusing on discovery, not presentation, you can make the tools work for you.

    Salary Survey 2005: Holding Pattern
    Alexandra Weber Morales
    Little has changed in the last year, according to our eighth annual examination of compensation and satisfaction trends for software developers. Salaries have increased by a hair, and most other job measures are dormant or just budding.The one bright spot? The continued growth of head-hunting.

    Dr. Dobb's Journal November 2005
    Jonathan Erickson
    Distributed Computing

    Graphics & the 64-Bit World
    Jerry Pournelle
    SIGGRAPH, the ACM's Special Interest Group on Graphics, is one of the key places to observe computer trends.

    Java & RFID Tags
    Shamshad Ansari
    The Java Communication API lets you send commands to and receive responses from RFID readers such as the TI S2000 Micro Reader.

    Building Internet Distributed Computing Applications
    David Houlding
    Protege is a tool that lets you efficiently map out an Enterprise Architecture to enable knowledge mining for analysis and planning.

    InfiniBand Technology
    Corky Seeber
    InfiniBand is a serial I/O interconnect architecture designed to connect hundreds--if not thousands--of computers.

    Building Internet Distributed Computing Systems
    Charles Peck, Joshua Hursey, Josh McCoy, Vijay Pande
    Our authors present a framework for harnessing distributed, tightly coupled cluster and SMP resources for computational science research.

    Debugging Heterogeneous Distributed Applications
    Stephen B. Jenkins
    Debugging complex, asynchronous, heterogeneous, distributed applications is hard. The techniques Stephen presents here makes the process easier.

    Parallel Processing Clusters & PVM
    David J. Powers
    The Parallel Virtual Machine is network-clustering software that provides a scalable network for parallel processing.

    The Media Grid
    Aaron E. Walsh
    The Media Grid is a digital media network infrastructure and software development platform based on distributed grid technology.

    Preventing Piracy While Preserving Privacy
    Michael Rabin, Dennis E. Shasha
    The security approach presented here is a privacy-preserving, flexible, antipiracy solution that does not suffer from "Break Once, Run Everywhere."

    Software Builds: Where It All Comes Together
    Jonathan Erickson
    John Ousterhout, founder of Electric Cloud and creator of the Tcl scripting language, discusses the challenges in performing efficient software builds. (MP3 Audio, 4:31 mins.)

    Celebrating Failure
    Rick Wayne, Donna Davis, David Dossot
    Wrangling with customers who cling to a haunted past? Finding out that some requirements aren’t soft—the hard way? Stuck on a product development team that functions more like a self-hating hydra than a well-oiled machine? We’ve got ‘em, plus more.

    Begging for Brains
    Warren Keuffel
    Our job crisis is partly due to the advent of global software development and the dearth of immigrants. Is a flattened world squeezing the economic juice out of the U.S.?

    So Much for Plan A
    Steve Adolph, Fariba Matin
    While we're congratulating ourselves on a well-executed plan, a monkey wrench is tossed into the works. How do we accommodate an extra project we can't refuse?

    Requirements Wisdom
    Scott Ambler
    To apply the right technique for each situation they encounter, effective developers keep multiple requirements elicitation techniques in their intellectual toolkit. Part 2 of 2.

    10 Outsourcing Antipatterns
    Ronald B. Smith
    It's deceptively easy to farm out IT work. Here are some worst practices that guarantee your time and money won't be well spent. But if you cared about that, you wouldn't be reading this, right?

    Cool Beans
    Rick Wayne
    Three Java development environments built on the NetBeans platform provide powerful tools for building anything from applets to enterprise Web applications.

    Simplifying Display Interfaces
    Jonathan Erickson
    Ian Miller, chairman of the Video Electronics Standards Association, discusses the DisplayPort interface proposal. (MP3 Audio, 4:42)

    Predictive Analytics: Looking for Patterns & Trends
    Jonathan Erickson
    Jon Otterstatter, Chief Technology Officer at SPSS Inc., explains what predictive analytics is and how it is used in the real world. (MP3 Audio, 3:43 mins.)

    Thursday Wrap Up
    Andy Patrizio
    Final observations and then a long drive home

    Wednesday Wrap Up
    Andy Patrizio
    When our reporter grapples with a bushel of acronyms. AMT, VT, VIIV, DLNA, and DTCP/IP, for starters.

    Tuesday Wrap Up
    Andy Patrizio
    Between new developer tools and talk about quad-core processors, Day 1 of the Intel Developer Forum was nothing but surprises from sun up to sun down.

    Determinant Algorithm Generation with Numlists
    Michael A. Jones
    Numlists provide the compile-time index list structures that allow processing to happen in place. The compile-time nature of template recursion is key to coding this algorithm.

  • On the Newsstand


    Table of Contents
    Order this issue now.
    Subscribe to DDJ

    Departments

    64bit
    AI
    Architecture & Design
    C++
    Database
    Eclipse & Open Source
    Embedded Systems
    Global Developer
    Java
    Lightweight Languages
    Linux/UNIX
    Mobility
    Security
    SOA, Web Services & XML
    Testing & Debugging
    Windows/.NET

    CMP DevNet Spotlight

    Regular Expressions: Two Easy Steps Better Than One Hard One
    Complicated regular expressions and yacc are powerful parsing tools, but they can cause trouble in inexperienced hands. One helpful alternative is "partial evaluation" (PE) or "active data" parsing

    In the News

    DDJ Newsletters

    Dr. Dobb's Active Scripting Newsletter
    edited by Mark Baker
    Active Scripting techniques as well as interviews with developers from leading companies.
    --more--

    DDJ Resources

    Mobilized Software
    Developer Events

    DevNet Podcasts

    Antarctica: Eclipse Comes In From the Cold
    Josh Reed discusses the Antarctic Geologic Drilling Program, and the important role that open source tools played.

    Software Glitch Implicated in Mars Global Surveyor Failure
    NASA Watch reports that NASA's Mars Global Surveyor stopped responding to commands a few months ago due to improperly coded software.

    Info-Link

    DDJ Store


    Dr. Dobb's Developer Library DVD: Release 2
    The Dr. Dobb's Developer Library DVD is a new fully searchable DVD that includes 17 years of Dr. Dobb's Journal, 14 full years of C/C++ Users Journal, 3 years of The Perl Journal, nearly 4 years of Dr. Dobb's Sourcebook, and thousands and thousands of lines of source code—all on one DVD!

    Click here for more information.

     




    MarketPlace

    Build IT Knowledge with Current & Trusted Content
    Helps Employees Develop & Hone New Technical Programming Skills. Sign Up & Get Full Access.

    Get the ports you need for your VMs to succeed.
    HP network adapters help get the most from your virtualized servers. Learn more at HP.IntelVT.com.

    Online Crash Analysis
    Automatically capture customer crash data, no debugger required. Support for .NET, C++, OS X, Java.

    Instant Answers to Your IT & Business Questions
    Sign Up & Get Full Access To The Definitive Online Book Collection With SkillSoft's Books24x7�.

    Wanna see your ad here?