1 / 20

Present and Future of Software Transformation Tools

Present and Future of Software Transformation Tools. Dr. Carlos Araya CEO ArtinSoft Feb, 2003. About ArtinSoft. Founded in 1993 HQ in San José, CR; operations in US, MX, EU R&D in automatic source code transformation 150 employees

nitesh
Télécharger la présentation

Present and Future of Software Transformation Tools

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Present and Future ofSoftware Transformation Tools Dr. Carlos Araya CEO ArtinSoft Feb, 2003

  2. About ArtinSoft • Founded in 1993 • HQ in San José, CR; operations in US, MX, EU • R&D in automatic source code transformation • 150 employees • Customers include Microsoft, Borland, ICL-Fujitsu, Intel, AT&T • Strategic investors include Intel and Microsoft

  3. PresentationContents • General transformation process • Current transformation processes • Next generation of transformation tools • What is needed to get there... • Study case: ArtinSoft´s technologies

  4. Source codetransformation Meaning Semantic level Compilation Understating Abstractrepresentation Abstract targetsource code Abstractsyntax Term by Term transformation Target sourcecode Source code Concrete syntax

  5. Some semantics formalisms • Denotational • Value based (what expressions denote) explained in functional calculus • Operational • Evaluation based • Explains execution • Axiomatic semantic • Axiomatic semantics • Introduced by Tony Hoare and others • Defining programming language semantics independently of syntax and any particular implementation of language • General linguistic representations • Similar to XML • Other formalisms separate from human understanding • Used by ArtinSoft

  6. Current transformation tools/services • Based on term-by-term transformation • With manual adjustments(Services) • Mostly for Migrations • Un-maintainable result code • High risk of human error • Increased testing cost

  7. Next generation of transformation tools • Semantics representation formalisms and standards • Linguistic reasoning & transformation technology • Transparent manipulation • Independence of concrete languages • Automatic programming • Automatic programming assistance • Total human maintainable code • Risk free and low cost software maintainable processes • Software & knowledge as assets • Independence of market shifts

  8. What is needed • Semantic representation languages • Automatic deduction and reasoning • Equivalence preserving re-writing tools • Strong search and matching capabilities • Broad range of applicability

  9. What can be done Tools that might derive from a languages: Scanner/Parsers Pretty-printers Syntax-directed editors Type-checkers Interpreters Dataflow analyzers Call graph extractors Partial evaluators Optimizers Program slicers Origin trackers Debuggers Code generators Compilers Profilers Test case generators Test coverage analyzers Impact analyzers Complexity analyzers Documentation generators Systematic program modification tools Component descriptions ….and more…

  10. … and what we are really looking for • Software automation • Language and platform migration • Re-architecture transformations • Aspect-oriented manipulation • Self-correcting software • Model-based and constrained systems • Immobots (immobile robots) • Autonomic computing

  11. Model-based and constrained systems • Coming from engineering design • Variety of formal and informal tools {representation formalisms, component manipulation,properties from the modeled artifact} • Critical, essential, static and dynamic component properties • Ex: Finite state machine models of software • Ex: XIML interface model markup language

  12. Immobots • “Inward-focused, self-reconfiguring machines” • Hard to anticipate all possible contingencies: how vs what • Models of their own inner workings • Safest, fastest and most cost-effective way to deal with instructions, simulations, corrections, and emergencies • Mars Polar Lander vs Deep Space One

  13. IBM’s autonomic computing"Civilization advances by extending the number of important operations which we can perform without thinking about them." - Alfred Whitehead • … "know itself" - its components must also possess a system identity • … configure and reconfigure itself under varying (and in the future, even unpredictable) conditions • … always looks for ways to optimize its workings • … be able to recover from routine and extraordinary events • … must be an expert in self-protection • … know its environment and the context surrounding its activity, and act accordingly • … function in a heterogeneous world and implement open standards • … marshal I/T resources to shrink the gap between the business or personal goals of the user and the necessary implementation

  14. Káblök technology(from Bribrí: agreement, matching) A programming language for linguistic reasoning ‘Positivism’, if it exists, then it can be described New general purpose programming paradigm Algebraic optimizations and simplifications Highest-level pattern detection and re-write Top-down design patterns, bottom-up concept mapping 100% semantic equivalence ‘Natural’ mathematical deduction+ OO grammar representation

  15. Káblök advantages • Highest automatic manipulation of code (95-99%) • Generated code is for human consumption • Applicable to aspect-oriented manipulation(security, substitution, performance, simplification, re-architecture, etc.) • Consistency: several languages and problems • Integrates/generates other re-architecture/componentization tools • Add-in to Interactive Development Environments • Code understanding & business logic abstraction • Linearly correlated efficiency • Binding resolution and type inference

  16. Example tools for n-tiering • Knowledge-based analysis facilitates keeping related pieces of code together

  17. Where should each piece of code go?

  18. Methodology advantages • Decomposable, fully controllable processes • Safe and predictable • Minimum testing, downtime, and re-training • Quicker, easier and cheaper • Bridges backward compatibility • Results will use latest technologies

  19. Software transformationpromise • Quicker, low-risk corporate evolution • Support the growing complexity • Minimal organizational disruptions • Reinforce knowledge capital • Facilitate platform unification and lower costs • Simplify technology decisions • Better returns on investments • Transform software economics

  20. Thank you very much!

More Related