Use software to define silicon p. 15



Similar documents
Domain-Specific Modelling for Cross-Platform Product Families

Industrial Experiences on Using DSLs in Embedded Software Development

Utilizing Domain-Specific Modelling for Software Testing

Example Software Development Process.

Business Process Management In An Application Development Environment

Basic Trends of Modern Software Development

IndustrialIT System 800xA Engineering

Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry

COCOVILA Compiler-Compiler for Visual Languages

The QlikView deployment framework

Verification and Validation of Software Components and Component Based Software Systems

UPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts

What s new in Teamcenter Service Pack

Standard Glossary of Terms Used in Software Testing. Version 3.01

Work Process Management

Answers to Top BRMS Questions

MDE Adoption in Industry: Challenges and Success Criteria

Simulation Software: Practical guidelines for approaching the selection process

Authoring for System Center 2012 Operations Manager

JOURNAL OF OBJECT TECHNOLOGY

Best Practices for Improving the Quality and Speed of Your Agile Testing

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

EL Program: Smart Manufacturing Systems Design and Analysis

WebSphere Business Modeler

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Planning a Successful Visual Basic 6.0 to.net Migration: 8 Proven Tips

Quality Management. Lecture 12 Software quality management

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

Service Performance Management: Pragmatic Approach by Jim Lochran

What is a process? So a good process must:

CASE workbenches. . Software tools to support specific process phases. Objectives. Chapter 26. Chapter 26 CASE Workbenches

FreeForm Designer. Phone: Fax: POB 8792, Natanya, Israel Document2

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Business Modeling with UML

BUSINESS RULES AND GAP ANALYSIS

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Revel8or: Model Driven Capacity Planning Tool Suite

Foundations of Model-Driven Software Engineering

Design of automatic testing tool for railway signalling systems software safety assessment

Towards Collaborative Requirements Engineering Tool for ERP product customization

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

Difference Between Model-Driven and Traditional Iterative Software Development

by Heather Oppenheimer and Steve Baldassano

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

A Case for Online Agile Software Development Process. White Paper

Software development for the on demand enterprise. Building your business with the IBM Software Development Platform

Developing the Architectural Framework for SOA Adoption

OpenText Information Hub (ihub) 3.1 and 3.1.1

Basic Unified Process: A Process for Small and Agile Projects

Mastering increasing product complexity with Collaborative Systems Engineering and PLM

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Agile development of safety-critical software while meetings standards' requirements

BPM: new architecture driven by Business Process Planning and Control (BPPC)

Software Engineering Question Bank

WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT

BPM and Simulation. A White Paper. Signavio, Inc. Nov Katharina Clauberg, William Thomas

RF System Design and Analysis Software Enhances RF Architectural Planning

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Mobia Modeler: An Adaptable Mobile Application Modeler for Non-Expert Users

Software Development Principles Applied to Graphical Model Development

Complementing Your Web Services Strategy with Verastream Host Integrator

Lesson 1 Introduction to Rapid Application Development using Visual Basic

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Fourth generation techniques (4GT)

(Refer Slide Time: 01:52)

Virtual Platforms Addressing challenges in telecom product development

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

IBM Global Business Services Microsoft Dynamics CRM solutions from IBM

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

Software Development Best Practices

A Configuration Management Model for Software Product Line

CDC UNIFIED PROCESS JOB AID

Variation Management for Software Production Lines 1

WITHIN THE MARKETING EFFICIENCY CLOUD FROM BRANDMAKER

Solution Park Support for Computer and Networks

Business Intelligence and Reporting

How to realize software evolution of existing BOSS via ZTE SEEM

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

A Management Tool for Component-Based Real-Time Supervision and Control Systems

Orchestrated. Release Management. Gain insight and control, eliminate ineffective handoffs, and automate application deployments

WHITE PAPER AUTOMATED, REAL-TIME RISK ANALYSIS AND REMEDIATION

To introduce software process models To describe three generic process models and when they may be used

5 Five Ways to Fast ROI With Business Rule Management Systems (BRMS)

Taking the First Steps in. Web Load Testing. Telerik

The Worksoft Suite. Automated Business Process Discovery & Validation ENSURING THE SUCCESS OF DIGITAL BUSINESS. Worksoft Differentiators

I D C T E C H N O L O G Y S P O T L I G H T

Transcription:

April 2008 Use software to define silicon p. 15 >> Domain-specific modeling p.20 >> Efficient CRC calculation p.24 >> Linux development tools p.28 >> Verification enters the atomic age p.33 >> Advantages of Core 2 Duo p.37

Improving productivity and quality with domain-specific modeling BY JAMES L. HAMMOND As calls for increased software development productivity continue to mount, organizations are constantly searching for effective ways to satisfy the demand. Domain-specific modeling (DSM), with its capacity for automated full code generation, is achieving increased attention as a proven approach that achieves this productivity goal, while also improving quality. This article will introduce the fundamental concepts and benefits of DSM, and discuss the implementation of a DSM language for the development of IP telephony services using the latest release of MetaEdit+. Domain-specific modeling is a model-based software development approach that focuses on the use of visual models as primary artifacts in the development process. DSM raises the level of abstraction beyond normal programming languages by directly specifying the solution in a language that uses concepts and rules from the problem domain. Raising the level of abstraction has historically been the catalyst for significant development productivity improvements (e.g. the move from assembler to third generation languages), and the abstraction rise that occurs with DSM is another jump forward. Once these high-level models are created, code can then be automatically generated from them using customized code generators. Code can be produced in any programming language or for any development paradigm. Existing platforms, libraries, components, and legacy code can all be effectively utilized during the generation process. While it certainly is possible, DSM does not require that all code is generated from the models but it does take the position that anything modeled by the modeler should generate complete code that does not need to be changed manually afterwards. The generated code is functional and efficient ideally looking like the code handwritten by the lead developer that defined the generator(s). DSM helps to hide the implementation concepts from the models 20 APRIL 2008 embedded systems design europe www.embedded.com/europe

making it unnecessary for the modeler to be concerned with them. In addition, a single model can be used to generate code for multiple targets and functions (e.g. localization, early prototyping, build scripts) an immensely valuable ability for the myriad of companies that expend considerable time and energy porting their products or components. This automated code generation from models is possible because of domain specificity: the modeling language, code frameworks, and generators are designed to tightly fit the requirements of a single company. The result of this specificity and automation is a reduction in complexity and a dramatic increase in productivity. Experiences from a wide range of companies and application domains (e.g. Lucent [1], Panasonic [2], Nokia [3], EADS [4] ) have consistently proven that DSM is 5 10 times faster than current, manual development practices. The reason for this is that software engineers are able to focus on the functionalities they are looking to develop not on their laborious, routine implementation. Industry analysts are also asserting the benefits of DSM, e.g. in 2004 the Burton Group reported [5] that they saw domain-specific languages and custom metamodels to be the greatest aid to productivity. Improved quality is another key benefit of DSM. Sustaining or improving quality standards remains a significant issue for all software developers, and maintaining quality while confronting increased complexity, can be immensely challenging. Generated code avoids the risks of careless mistakes, syntax problems, and logic errors. It is common in manual coding practices for errors to be introduced during updates an understandable occurrence when multiple developers, need to make multiple changes, to multiple sections of the code. With DSM, a single change in the generator is often enough to correct all the occurrences simultaneously. COMPELLING STUDY A compelling study [6] from the United States Air Force comparing DSM with component-based development found that domain-specific languages and generators were not only three times faster than the code components, but led to 50 percent fewer errors a significant finding in an industry focused on mission-critical systems. An important point to keep in mind is that every language will almost certainly need to change and grow over time, and it is essential that the chosen tool support is able to handle this evolution. Many organizations have learned this lesson the hard way, having found themselves left with useless models that are unable to evolve as needs and requirements change. MetaEdit+ fully supports the idea of language evolution; modifications can be easily made to the modeling language at any time and these changes can be automatically and non-destructively propagated to all models defined by that modeling language. While the key benefits of domainspecific modeling improved productivity and quality are desirable to just about every organization, DSM as a development approach is not. When building any application or feature for the first time that has never been developed before, it is illogical to assume that one is going to be able automate the process at the beginning. The organization must be familiar with what they are doing, before they start to automate their development practices to the best of my knowledge this hold true for all areas of automawww.embedded.com/europe embedded systems design europe APRIL 2008 21

tion. Consequently, companies that work on short term projects, unaware of the general requirements of the next customer, are unlikely to achieve much success with DSM. But for those organizations that make a range of similar products, or build applications on top of a common library or framework (e.g. companies with a product line), the benefits of DSM are nothing short of astounding. MODELING LANGUAGE CREATION In this section we will walk through the process of creating a domain-specific modeling language with the latest release of MetaEdit+ [7], an IP telephony service language as an example. This use case is particularly relevant today, as a fundamental change is now occurring in the telephone service arena. In the past, network-based services were only created by service providers due to the special knowledge required, use of proprietary tools, and lack of user-specific customization options. With the introduction of Internet based telephony, the rules have change, allowing a much wider group to define these services. One of the first required activities when building a modeling language is to define the modeling language concepts. There are various sources for these concepts, with typical examples being: product components, architecture, characteristics, required output, etc. Specifically designed tools in MetaEdit+ for describing modeling languages make it easy to transform these concepts into elements of the modeling language. The language creation process should be agile, allowing the metamodeler to define the language incrementally and to test it at any time by creating specifications. For the IP telephony services language the modeling concepts are pure call processing concepts, e.g. signaling operations, switches, locations, and non-signaling actions. Service engineers are already familiar with all these, even if the final service creation code has been done manually by programming. Now with DSM, such implementation code can be generated form these highlevel service concepts. Once the modeling concepts are defined, the modeling rules need to be established. These rules cover how the concepts can be used and connected with each other. MetaEdit+ provides a variety of predefined rule templates to choose from to address a wide range of possible scenarios however custom rule definition is also supported. The establishment of these policies at the language level assures that all developers adhere to the same domain rules a situation that rarely occurs when relying on in-house standards manuals and documentations. In the use case language, the majority of the rules were able to be defined directly in the metamodel. Examples of the rules established for the language are: there can only be one start element of each service, the root concept must be in only one relationship to start the call process, and the number of connections each object can have. A very useful aspect of DSM also a visually appealing one is the ability to utilize custom graphics within the models and modeling language. These symbols can either be drawn using the integrated drawing tools of MetaEdit+, or imported in vector or bitmap format. Using symbols that closely approximate the real world items they represent, makes development far easier for the modeler, and also produces models that can be understood by any stakeholder familiar with the domain concepts. The symbols also support dynamic graphical behavior by using conditional property values that can display values calculated by the generators. The final step in building a DSM solution is the creation of the generators. As was the case with the modeling language, domain-specificity is also important here. These generators can be created to for a wide variety of purposes: reports to check the consistency of the models, produce metrics, analyze model linkages, create data dictionaries, produce documentation, generate code or configuration information, and to export models to other programs (e.g. simulators, version control systems, etc.). The generator definition below produces the code needed to call other call processes that may be used as reusable actions within the main call process. In this way the generator becomes modular and easy to modify. The integrated Generator Editor included in MetaEdit+ helps in the speci- 22 APRIL 2008 embedded systems design europe www.embedded.com/europe

by at least one other call element, but this kind of rule cannot be checked at the modeling time since immediately after adding a new proxy object to the model the design would be invalid. Generator based rule checking avoids this potential problem. Once the language and generators are complete, the organization is ready to start creating models and achieving the significant productivity and quality benefits previously mentioned. The time it takes to fully create the language and generators is dependent on the domain, but experiences with MetaEdit+ over the years have show that it usually ranges from a few man-days to a few man-weeks. The language and generators described in this use case took approximately 5 days to complete including testing time. This small initial investment in time is quickly recouped thanks to the radically productivity improvement. James L.Hammond james.hammond@ metacase.com) is sales and marketing director of MetaCase (Jyväskylä,Finland) fication of template-based generators that crawl through models and output model values and fixed or conditional text. This domain-specific code generation assures that the code generated from every developer, always meets the exact requirements established by the organization s expert because they are built directly into the code generator. It should be noted that along with the rules established for the modeling language, it is also possible to include rule checking in the generators. This was the situation with this call processing case as well as all the domain rules could not be efficiently included in the metamodel since their checking would not make sense at the modeling time. For example, each proxy needs to be accessed in the call processing flow REFERENCES 1. Weiss, D, Lai, C T R, (1999) Software Product-line Engineering, Addison Wesley Longman. 2. Safa, L (2007) The Making Of User-Interface Designer: A Proprietary DSM Tool. In: Proceedings of the 7th OOPSLA Workshop on domain-specific modeling, 21 22 October. Montreal, Computer Science and Information System Reports, Technical Reports, TR-38, University of Jyväskylä. 3. MetaCase (2007) Nokia Case Study [brochure]. Jyväskylä, MetaCase. 4. MetaCase (2007) EADS Case Study [brochure]. Jyväskylä, MetaCase. 5. Haddad, C (2004) Model-Driven Development: Rethinking the Development Process. Burton Group. 6. Kieburtz, R (1996) A Software Engineering Experiment in Software Component Generation. In: Proceedings of the 18th International Conference on Software Engineering, 25-30 March. Berlin, IEEE Computer Society. 7. Kelly, S and Tolvanen, J-P (2008) domainspecific modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press. A free 31-day evaluation version of MetaEdit+, including the use case described above, is available for download at www.metacase.com.