Software Product Lines Automate Development
Software Product Lines Automate Development
BALTIMOREWith reuse of software assets as its foundation, the software product line theory will help foster mass production and customization of software to power the next generation of systems, SPL experts said at a conference here.
At the Software Product Line Conference, vendors, researchers and practitioners shed light on the status of software product lines, how they are putting them to use, and what tools and techniques help to implement SPLs.
"Software product lines refers to engineering techniques for creating a portfolio of similar software systems from a shared set of software assets using a common means of production," said Charles Krueger, chief executive of BigLever Software, in Austin, Texas, a corporate sponsor of the event.
Krueger added that manufacturers have long used analogous engineering techniques to create a line of similar products using a common factory that assembles and configures parts designed to be reused across the varying products in the product line.
Paul Clements, a member of the technical staff at the Software Engineering Institute at Carnegie Mellon University in Pittsburgh, said he wants to see more vendors "fold in product line capabilities into tools and IDEs [integrated development environments]." The SEI sponsored the SPLC the week of Aug. 21.
Moreover, Clements said he hopes to see the industry shift the development paradigm so that an emphasis is placed on building families of systems, rather than on single applications. He said the creation of single applications should become the exception as opposed to the norm.
The company that is perhaps furthest along in its support for software product lines is Microsoft with its Software Factories approach to building applications using patterns, models, frameworks and tools that feature code generation and automation, Clements said. Microsoft is a gold corporate sponsor of SPL.
"Software Factories is an example of this kind of thinking," he said.
Jack Greenfield, a Microsoft software architect and thought leader on the Redmond, Wash., companys Software Factories approach, said Software Factories "is a way of implementing software product line theory. Its a tool-based approach to software product line theory in its development and practice," he said.
Greenfield likened Microsofts approach to SPLs with the companys adoption of object-oriented programming.
"Software product lines is a general thing, and we have a specific way of doing it called Software Factories, like we have a way of doing object-oriented development called .Net," he said.
Juha-Pekka Tolvanen, co-president and chief executive of MetaCase, in Jyvaskyla, Finland, demonstrated his companys MetaEdit+ tool set, which enables enterprise developers to do domain-specific modeling. MetaEdit+ is a tool for the expert developer who is looking to boost productivity by generating code directly from models. The technology works 10 times faster than UML (Unified Modeling Language), Tolvanen said.
MetaCase touts its tool as an SPL enabler that comes in two versions: one for domain engineers and one for application engineers.
"Its an open tool that company experts can modify," Tolvanen said. In essence, MetaEdit+ enables developers to build their own CASE (computer-aided software engineering) tools, he said. MetaCase was also a sponsor of SPLC.
Next Page: Aspect-oriented programming.
Also at the conference, Gregor Kiczales, a professor at the University of British Columbia in Vancouver, also known as the father of AOP (aspect-oriented programming), said AOP can be a useful component in SPL development. Kiczales team at Xerox Palo Alto Research Center developed AOP while he worked there in the mid-80s and into the 90s.
Kiczales said one goal of AOP is expressivenessto enable code to look like its design.
AOP is a method of programming that enables developers to modularize functionality or behavior that cuts across systems, Kiczales said. These behaviors or chunks of functionality are known as crosscutting concerns.
Kiczales said AspectJ, an aspect-oriented extension to the Java programming language from Xerox PARC, is the most widely used AOP technology.
However, AOP is targeted at the more serious programmer because it comes with a learning curve, Kiczales said.
He said although AOP is used across the industry, there are some adoption obstacles to be overcome. One is "low-level tool issues" that are merely "temporary" as the industry is working to address them with better tools support.
Moreover, technologies such as Fluid AOP, a research project Kiczales worked on; HyperJ, a tool that supports multidimensional separation and integration of concerns; and Mylar, a task-focused user interface for the Eclipse platform that makes working with very large workspaces easy, are technologies that can help with AOP adoption, Kiczales said.
Kiczales called Fluid AOP "an editor-based version of AOP," where a developer can pull together all the instances of code in a program where a certain function occurs and edit them all at once.
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.