Possibilities of component-based software development in statistics production Juha Kuosmanen Statistics Finland, Information Technology Services Työpajakatu 13, FIN-00022 Statistics Finland juha.kuosmanen@stat.fi 1. Introduction to components and component-based software development (CBD) This paper describes some of the ideas that Statistics Finland has been researching in the field of component technology in order to improve the quality of statististical services. The information society around us is evolving fast. Virtual corporations operate globally, 24 hours a day, seven days a week. Information is a commodity that needs to be available at anytime, anywhere. From the technology perspective, this means more efficient methods for data collecting, processing and dissemination. So how do we adapt to these new requirements and still build robust and flexible statistical systems economically? We should be able to re-use elements (i.e. documents, designs, source code) created in previous projects. One way to recycle these elements is to package them as components. Components can then be viewed as assets and resources allocated for the building and maintaining of statistical systems. A Component can be defined as a package which can include executables, interface specifications, source code, designs, models, and test cases, and must be self-contained to be delivered independently (Vayda 1999). Components can also be seen as a design paradigm. The major difference with object design is that components have fewer dependencies and provide better support for re-use since they support a higher level of abstraction, such as workflows. At its most basic level, CBD can be defined as the process of building applications from re-usable parts. ”With pluggable software, the idea is that you can combine components in different ways to make different software products - in the same way that hardware designers can make many products from a kit of chips and boards.”(D'Souza, Wills 1999) The benefits of CBD approach are well known and can be found in several publications. Butler Group observed in October 1997 that the emergence of CBD is one of the most important events in the evolution of information technology. 2. Statistics production and CBD Learning CBD can be approached from either technological or conceptual viewpoint. The former option encourages the building of low level components, such as simple database access or GUI components, first. The latter option encourages the building of collaborative collections of (statistical) components immediately. This is a more ambitious and fruitful approach (Laitkorpi, Jaaksi 1998). The focus of system design should gradually shift from application development to the enhancement and maintenance of common business models. We should try to close the semantic gap between the real world, design components and runtime components. More straightforward approach of using just component-based programming will not deliver the same benefits as understanding the business as components and establishing a common set that can be used across the organisation (Butler Group 1998). Statistical systems should be created from human-centric, not technology-centric, designs. Business Frameworks and Patterns: General production models and patterns for statistics production. Component Frameworks and Patterns: Component models and patterns for statistics production. Repository: Datastore for re-usable components. Business processes: Operational models for statistics production. Software process: Development process for producing operational statistical information systems. Business Frameworks and Patterns Repository Component Frameworks and Patterns Business Processes Software Process )LJXUH&RPSRQHQWEDVHGGHYHORSPHQWPRGHOIRUVWDWLVWLFVSURGXFWLRQ Within our business framework we should try to formalise our basic processes for statistics production. If this is done properly we can derive our business components straight from these models. The first versions of actual software components can then be produced within regular application development projects. It is important that a business component should reflect directly the characteristics and abilities (i.e. the information and behavior) of the business concept it represents. This way components create stability to system design since any changes in business logic or requirements reflect only on the corresponding component. We can now categorize our components as engineering components (i.e. gui, database, communication), entity-centric business components(i.e. enterprise, citizen) and process-centric business components (i.e. edit, validate). Report in Win32-client Questionary in browser User Interface Layer / Engineering Components Editing Business Logic Layer / Business Components Validation Data Access Layer / Engineering Components RDBMS Text file Enterprise )LJXUH/RJLFDOWLHUFRPSRQHQWDUFKLWHFWXUHRIDQLQIRUPDWLRQV\VWHP This is also helpful because developers can now be assigned on skills bases to individual components as opposed to the whole application. It is also possible to use different development environments/languages for different components. Computing-intensive parts can be developed with different tools (i.e. SAS, C++) than representation-intensive parts (i.e. PowerBuilder, Visual Basic, Java). With this kind of approach conventional program modules (i.e. legacy systems) can also be considered as components. The common denominator is the concept of interface that should be applied to the conventional program modules as well. REFERENCES: Butler Group (1998). Component-Based Development - Application Delivery and Integration Using Componentised Software. United Kingdom. D’Souza D.F. and Wills A.C. (1999). Objects, Components, and Frameworks with UML. Laitkorpi M. and Jaaksi A. (1998). Extending the Object-Oriented Software Process with Component-Oriented Design. Vayda T. (1999). Organizing for Components – Managing risk and maximizing reuse. Component Strategies Online (http://www.componentmag.com). RÉSUMÉ Cet article présente quelques idées recherchées par Statistique Finlande sur la domaine de la technologie du composant pour améliorer la qualité des services statistiques.