1 / 36

Lightweight Process Coordination - Enhancing Software Development

Explore the use of lightweight process coordination techniques in software development to improve efficiency and reliability. Learn about tools, methodologies, and the benefits of this approach.

dgary
Download Presentation

Lightweight Process Coordination - Enhancing Software Development

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. Lightweight Process Coordination Bernhard Steffen Tiziana Margaria

  2. Edsger Dijkstra: The Humble Programmer "[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem."

  3. Sir Tony Hoare: "Software Crisis: where is it?" • "How did Software get so Reliable • without Proof?" (1996) • Defensive programming • Over engineering • Requirement verification remains • to be key.

  4. Sociological Reasons • Global Libraries • Millions of Testers • Enhanced Development Process • Better Tool Support • Lightweight Formal Methods • Typing, • Code Generation, • Model Checking, • Model-Based Testing But: No formal verification

  5. General Trend: The Action moves up Requirements Modelling Design Implementation Machine Code What How What How What How Automation What How Despite undecidability

  6. Platforms(Edward Lee) Where theAction Has Been: Giving the red platforms useful modeling properties (e.g. UML, MDA) Getting from red platforms to blue platforms. source: Edward A. Lee, UC Berkeley, 2003

  7. Component Based Design AMDD Model Library … … M1 Mn M1 Mn Compilation/Synthesis Integration as Consistency/Compatibility Component Library … C1 Cn Global Model Synthesis/Technology Mapping Integration Integration Running System Running System a chip a board CB Design vs. AMDD SoC

  8. ABC‘s AMDD Heterogeneous Service Models Component Model Library Feature Library .. … Temporal Constraints and Types SIB1 uses SIBn FLG1 FLGn .. Macro 1 Macro n Integration as Consistency/Compatibility Global SLG Compilation /Synthesis Running System

  9. Leveraging this Situation • Programming becomes Orchestration • Programs become Process Models • Verification becomes more • Requirement Validation • Property Checking and • Runtime Checking Service-Oriented Design/Computing

  10. Overview • The Java Application Building Center (jABC) • Application Scenarios • Testing: With and for the jABC • Legacy Components: Extrapolation Behavioural Models

  11. Business Object Layer Persistency Layer Application Development The Architecture Application-specific Application GUI ABC Coordination Layer Reliable, graphical Configuration of Coordination Layer Reusability

  12. Service-Oriented Computing

  13. Lightweight Process Coordination GUI Layer internal Coordination Process Layer Business Logic Layer Telco SCM ERP Custom external Persistency Layer Data Protection of the Customers Intellectual Property

  14. Java ABC Role Concept Component Expert • advanced programming skills • basic knowledge about backend systems • collaboration with backend specialists & application experts Application Expert • detailed knowledge of the task • no classical programming skills • Java ABC modeling skills

  15. Java ABC Component Model: SIBs • Service Independent Building Blocks (SIBs) • simple Java classes (comparable to Java Beans) • different optional abstraction layers in one class, defined through interfaces

  16. Java ABC Component Model: SIBs (2) • full Java power in all layers (e.g.: JDBC, RMI, JNI) • minimal basic implementation (SIBClass interface) • extensible & refactorable • fault-tolerant encapsulation within the model

  17. Java ABC: Big Picture

  18. Java ABC Models: SIB Graphs • composed of SIBs • hierarchical • interpretation & execution • analysis & verification • compilation

  19. Requirement Validation • Symbolic Execution & • Workflow Animation

  20. SIBs Create Newsgroup macro Hierarchical Design Macros Main Functionalities

  21. Design Validation • Local constraints • Global constraints

  22. Error Diagnosis • Violating Runs • Missed Deadlines • Wrong Parameters

  23. TestCoordinator Rational Robot HTTP PCM Application PCs CSTA II/III HUSIM HUSIM HUSIM HUSIM HTTP PCM Application Server Hipermon Hipermon Hipermon Hipermon ^ ^ ^ Monitoring

  24. jETI Extension jABC Framework jETI: Remote Component Integration

  25. IT-Expert Comp.develop. Applic. expert HTML-Designer Design, impl. and test elem. services • Rational Rose • JBuilder Identify and define the components • JBuilder • Dreamweaver Design the coord. Workflows Pack the application Implement HTML pages Implement components Generatesource code Validate against requirements Service Definition Environment Distribution of Labour

  26. Process Requirements Life Cycle Management Validation static Consistency Control Orchestration Process Model Deployment Running Process Testing & Monitoring Platforms

  27. Java ABC in a Nutshell Simplicity • designed for application experts • no programming skills needed • easy-to-use graphical user interface

  28. Java ABC in a Nutshell Simplicity Agility • model evolution is expected • full enhanceability • vital development

  29. Java ABC in a Nutshell Simplicity Customization Agility • free component naming & visualization • free component restructuring • usage of familiar terminology

  30. Java ABC in a Nutshell Simplicity Consistency Agility • one model for the whole process • no switching between technologies • avoidance of inconsistencies Customiza- bility

  31. Java ABC in a Nutshell Simplicity Validation Agility • animation • simulation • verification • testing • monitoring Customiza- bility Consistency

  32. Java ABC in a Nutshell Serviceorientation Simplicity Agility • easy integration of existing features & legacy systems • functionality wrapped into components • technology-independent integration Customiza- bility Consistency Validation

  33. Java ABC in a Nutshell Simplicity Executability Agility • different execution levels • rapid prototyping • final runtime implementation Customiza- bility Serviceorientation Consistency Validation

  34. Java ABC in a Nutshell Simplicity Universality Agility • Java ABC runs where Java runs • Platform independence • Object orientation Executa- bility Customiza- bility Serviceorientation Consistency Validation

  35. Java ABC in a Nutshell Simplicity Universality Agility Executa- bility Customiza- bility Serviceorientation Consistency Validation

More Related