Migrating Embedded Systems from Assembler to C Using the Fermat Transformation System.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Automating Software Module Testing for FAA Certification Usha Santhanam The Boeing Company.
Fermat Re-Engineering Workbench Presentation. Agenda Assembler business issues Fermat Solutions –Workbench –Migration Service –Documentation engine About.
Systems Software.
Computers Are Your Future
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Software Reuse Building software from reusable components Objectives
Software Evolution Managing the processes of software system change
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Chapter 4 - Software – Part 2 Dr. V.T. Raja Oregon State University.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
Sonny Goodwin Rene Nunnington. Transoft update.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Chapter 9 – Software Evolution and Maintenance
Accelerating Product and Service Innovation © 2013 IBM Corporation IBM Integrated Solution for System z Development (ISDz) Henk van der Wijk 23 Januari.
® IBM Software Group © IBM Corporation IBM Information Server Understand - Information Analyzer.
UML - Development Process 1 Software Development Process Using UML (2)
Model Bank Testing Accelerators “Ready-to-use” test scenarios to reduce effort, time and money.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
FBD Associates Inc. ENABLING THE FUTURE Natural / Adabas Migration Solutions.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Encapsule Systems Reducing Software Development Costs.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Gordana Rakić, Zoran Budimac
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
Reduce Development and Testing Time on Embedded Space Programs With Auto- Generated Code Software Engineer Northrop Grumman Electronic Systems Matthew.
Chapter 1 : Overview of Computer and Programming By Suraya Alias
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Software Engineering Lecture # 1.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Hello world !!! ASCII representation of hello.c.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Operating Systems A Biswas, Dept. of Information Technology.
Software Engineering Algorithms, Compilers, & Lifecycle.
CS223: Software Engineering Lecture 33: Software Maintenance.
Object Based Programming Chapter 8. 2 Contrast ____________________ Languages –Action oriented –Concentrate on writing ________________ –Data supports.
CS223: Software Engineering Lecture 34: Software Maintenance.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
CSCI-235 Micro-Computer Applications
Software Maintenance.
课程名 编译原理 Compiling Techniques
Software Maintenance
Unleashing the power of customized reports testing framework
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
2016 Maintenance Innovation Challenge
® IRL Solutions File Number Here.
HCL Application Modernization Services
BBVA Francés Unlocking the full power of IBM Z by optimizing mission-critical COBOL code Banking “IBM Automatic Binary Optimizer for z/OS generates code.
Software Re-engineering and Reverse Engineering
Presentation transcript:

Migrating Embedded Systems from Assembler to C Using the Fermat Transformation System

Pigs from Sausages? Extracting the logic and business rules from evolved legacy systems Automatically migrate them to a new High Level Language Re-host them

Why bother? Increased Speed/Capacity Better Price/Performance Larger, more complex systems Cost per function point: –Assembler: £48.00 –PL/1: £39.00 –C: £21.00 Pressure to Migrate to HLL

Case Study – Tenovis Gmbh & Co. Specialists in Convergent Networking 200,000 Clients 6000 Employees Revenues over 950 million euros

Tenovis Challenge Private Branch eXchange (PBX) system Four Hardware Platforms Installed in 18 countries 800,000 lines of C 544,000 lines of 186 assembler in 318 source files Problems: –Backlog of enhancements –Availability and functionality of the processor

SML’s Challenge To migrate the assembler to high-level structured, maintainable C code suitable for porting to more modern processor and also suitable for implementing the backlog of enhancements. The migrated code should meet the coding standards used within the existing C code.

FermaT Transformation System Nearly 20 years research and development (> 120 man years) Core technology Oxford and Durham University Migration projects to validate this research funded by IBM, CAA & DTI Used extensively in Y2K projects FermaT Workbench Transformation System

Fermat Architecture

What is WSL Wide Spectrum Language –From low-level constructs to high-level abstract specifications –Unique transform capability Fermat product set is implemented in MetaWSL WSL is now in the Public Domain under a GUL licence

Case Study – Phase 1 Migration of a single 3,000 line source file –Develop a 186 to WSL parser –Modify the existing WSL to C parser –Implement 186-specific WSL transformations

Case Study – Phase 2 Mini Call Control –Self contained subsystem –67,000 lines of assembler –41 source files

Phase 2 - Requirements Use existing C header files where available Use of the “function parameter table” Translate selected subroutines directly to HLL code Translate bitfield operations into C record fields Eliminate stack usage where possible Detect jump tables and generate appropriate switch statements Generate switch statements instead of nested if statements Can ignore segment addressing for this application

Phase 2 - Process 5 iterations of the Mini Call Control Customer feedback on each iteration Update the parsers or transformations Regenerate the C code automatically Final iteration C code was compiled installed and tested

Final Migration 2.6Ghz PC with 512Mb of RAM All 318 source files processed in 1.5 hours 1,436,031 transformations: –4,500 transformations per source file –275 transformations per second Largest source file was 8,348 lines –73,393 transformations –370 seconds CPU time –42Mb RAM 506,672 lines of C code plus 37,047 lines of header files generated

Results At least 6 bugs were discovered in the system via the migration process “Hey, this really looks like C!” Test environment: “soft switch” between C and Assembler Versions on a PC linked to the hardware.

Cost Savings Estimate for Manual translation: 67 man months Actual customer effort for automated translation: SML’s actual effort 52 man days Less than 10% of manual effort Larger systems will achieve even greater savings

Advantages of Automated Reengineering Scalability Rapid turnaround of the subsystem Customisability Low resource requirements Low Impact on ongoing development Enables porting to different hardware and/or software platform Removes dependence on limited resources

Conclusion Assembler to C using the FermaT Migration System and Workbench is a practical solution to the high costs and skills shortage in assembler maintenance and to the problem of migrating legacy assembler systems to a more modern platform.

The future for Fermat Currently assembler to C and COBOL Pascal to C Assembler/Pascal to C Output to Java Joint 3 year research project with DeMontfort University to extend the use of WSL and Fermat

Further Resources

Further Resources The Fermat Transformation System is available under GNU GPL (General Public Licence) ml