Your SlideShare is downloading. ×
Model driven development and code generation of software systems
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Model driven development and code generation of software systems

1,132
views

Published on


0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,132
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
49
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • LOCAL SOURCE: sorgentidatilocalisfruttate dal Search Execution Engine, magariaccedutedallo Human Interaction Management per configurare / gestirei task. La suaesistenza e’ accessoriarispettoaglialtri, e codificainformazioni applicative specificheICONE DI DX, DALL’ALTO a SX(social networks) Facebook, Twitter, Google +(Q&A systems) StackOverlflow, Yahoo Answers, Quora(HC Platforms) Freebase, Amazon Mechanical Turk, ODesk
  • Finally, the developer must specify the control logic for the task, and it does so by defining active rules upon control-specific data structures contained in what we call the Control Mart.
  • Non arriva a 100 perche’ sulle X ci siamofermati ad 1 giornodalladomanda (alcunerispostepotrebberoesserearrivatedopo)
  • Non arriva a 100 perche’ sulle X ci siamofermati ad 1 giornodalladomanda (alcunerispostepotrebberoesserearrivatedopo)
  • Non arriva a 100 perche’ sulle X ci siamofermati ad 1 giornodalladomanda (alcunerispostepotrebberoesserearrivatedopo)
  • Finally, the developer must specify the control logic for the task, and it does so by defining active rules upon control-specific data structures contained in what we call the Control Mart.
  • Finally, the developer must specify the control logic for the task, and it does so by defining active rules upon control-specific data structures contained in what we call the Control Mart.
  • Transcript

    • 1. Model-Driven Development and Code Generation of Software Systems Marco Brambilla Politecnico di Milano marco.brambilla@polimi.it @marcobrambi
    • 2. Agenda • Research field • Research path • A sample of research topics • From business processes to software applications • Generating code for crowdsourcing • Impact and perspectives
    • 3. Field Marco Brambilla Politecnico di Milano @marcobrambi
    • 4. Context • Improving software development and maintenance productivity Liberated programming Self-healing and selfevolving programs Modeling and Code Generation Approaches (MDE) End-user Development (EUP), Mashups, … Agile development
    • 5. Model-based Engineering • Engineering practices based on models Represents Model Features: • Mapping • Reduction • Pragmatism System Purposes: • Descriptive • Prescriptive [B1] Brambilla, Cabot, Wimmer. Model-Driven Software Engineering In Practice. Morgan & Claypool, USA, 2012.
    • 6. The MD* Acronyms Map • Model-Based Engineering (MBE) • Model-Driven Engineering (MDE) • Model-Driven Development (MDD) • Model-driven Architecture (MDA)
    • 7. The MD* Acronyms Map • Model-Based Engineering (MBE) • Model-Driven Engineering (MDE) • Model-Driven Development (MDD) • Model-driven Architecture (MDA)
    • 8. The MDE Ingredients • Models (M) • Model Transformations (MT)
    • 9. MDE Basic Architecture Application Application domain Modeling language Model Reuse Transformation Meta-Level Metamodeling language Abstraction (bottom-up) Transformation definition Transformation language Construction (top-down) Artifacts (e.g. code) defined using Platform defined by uses
    • 10. MDE Basic Architecture Application Application domain Modeling language Model Reuse Transformation Meta-Level Metamodeling language Abstraction (bottom-up) Transformation definition Transformation language Construction (top-down) Artifacts (e.g. code) defined using Platform defined by uses
    • 11. Research Path Marco Brambilla Politecnico di Milano @marcobrambi
    • 12. Supported subsystems and data sources Research path Crowds Crowd control & integr. Social BPM Social Net. Search Eng. SN Integr. & Expert finding Advanced Search UI Structured Web Data Ontologies Sem. Web / LD BPM Processes Web Serv. SOA Data intensive Relational Requirements Business Design Application Design Code Gen. SW Devel. Process Span
    • 13. Supported subsystems and data sources Main research results Crowds. • • Reactive CrowdSourcing. ACM Conf. on World Wide Web WWW 2013 Answering search queries with CrowdSearcher. ACM Conf. on World Wide Web WWW 2012 Social Net. • • Choosing the Right Crowd: Expert Finding in Social Networks, EDBT 2013 From Requirements to Implementation of Ad-hoc Social Web Applications: an Empirical Pattern-Based Approach. IET-Sw, 2012 Search Eng. • • Ontologies / Sem. Web A bottom-up, knowledge-aware approach to integrating and querying web data services. ACM Trans. on the Web (TWEB), 2013 Exploratory search framework for Web data sources. VLDB Journal, 2013 Web Serv. Relational (& MDE) Model-Driven Design and Development of Semantic Web Service Applications, ACM Trans. on Internet Technology (TOIT), 2007 • Processes • Process modeling in Web applications. ACM Trans. Softw. Eng. Methodol (TOSEM), 2006 Exception Handling in Workflow-Driven Web Applications. ACM Conf. on World Wide Web WWW 2005 • • Model-driven design and deployment of service-enabled web applications. ACM Trans. Internet Technology (TOIT), 2005 • • Designing Data-Intensive Web Applications, Morgan-Kaufmann, 2003 The Role of Visual Tools in a Web Application Design and Verification Framework: A Visual Notation for LTL Formulae.Conf. Web Eng. ICWE 2005 Content search over model repositories. ACM Transactions on the Web (TWEB), 2014 in print. •
    • 14. Topic 1 From Business Processes to Software Applications Marco Brambilla Politecnico di Milano @marcobrambi
    • 15. Addressed problem • Communication chasm between business and IT is one of the main weaknesses of large organizations • Different language • Different objectives • Different quality metrics • Bridging the gap between business requirements and IT realizations (from design to deployment) • My challenge: • Business  business processes (BPMN) • IT  SOA-oriented and Web-based implementation
    • 16. Model-driven Development Process • Manual specification of BPMN process model • Automatic transformation of BPMN to WebML • Possible manual refinement of WebML models • Automatic full code generation
    • 17. Model-driven Development Process • Manual specification of BPMN process model • Automatic transformation of BPMN to WebML • Possible manual refinement of WebML models • Automatic full code generation
    • 18. BPM  Application model transformation Transformation rules INPUT: BPMN model enriched with data and activity typing • typed activities enable reusable application models • data dependencies are specified at high level
    • 19. BPM  Application model transformation Transformation rules OUTPUT: fine-grained Application Model, needing few refinements by the designer
    • 20. BPMN  WebML transformation (1) One control siteview per pool: Human interaction 20
    • 21. BPMN  WebML transformation (1) One control siteview per pool: Human interaction (2) view per pool: Choreography 21
    • 22. BPMN  WebML transformation (3) (1) One control siteview perper navigationinteraction (2) site view per lane: user pool: WS Choreography serviceview pool: Human 22
    • 23. BPMN  WebML transformation (4) One site view per lane: business logics of activities and gateways 23
    • 24. BPMN  WebML transformation Transformation lane: business component invokes (5) (4) (3) Orchestration perrulesuser pool: WS Choreography the activities (1) One control siteviewaperper navigationinteraction and gateways (2) site view view: controller logics of activities serviceview pool: Human finer-grained Application Model, needing few refinements by the designer • typed activities enables reusable application models • data dependencies are specified at a higher level less errors in Application Model design Faster development 24
    • 25. Additional investigations • Backward engineering (2): modularization of hypertext pieces and reuse as activity types through catalogues • Reverse Engineering (3): decomposition of the web application and extraction of the BP model • Aspect-oriented adaptation of transformation rules: • Higher order transformations for: security, company-specific integration, … • Cross-model validation & coherence
    • 26. Topic 2 Crowdsourcing based web applications Marco Brambilla Politecnico di Milano @marcobrambi
    • 27. From BPM to Social and Crowd Performers Closed BPM • Schema of the process decided and deployed centrally • Tasks defined rigidly • Actor roles predefined and assigned to tasks Participatory Design • Opens the process design to multiple actors • Stakeholders can participate and fuse processes • End users can define their processes Participatory Enactment • Social tools integrated into the process execution • Collateral communications allowed, like following up the status, commenting, voting, etc. Social/Crowd Enactment • Process execution open (in part) to actors that are not known a priori • Collective (community or crowd based) execution of a task allowed.
    • 28. From BPM to Social and Crowd Performers Closed BPM • Schema of the process decided and deployed centrally • Tasks defined rigidly • Actor roles predefined and assigned to tasks Participatory Design • Opens the process design to multiple actors • Stakeholders can participate and fuse processes • End users can define their processes Participatory Enactment • Social tools integrated into the process execution • Collateral communications allowed, like following up the status, commenting, voting, etc. Social/Crowd Enactment • Process execution open (in part) to actors that are not known a priori • Collective (community or crowd based) execution of a task allowed.
    • 29. Crowd-based Applications Emerging crowd-based applications: opinion mining localized information or expert response gathering content annotation and enrichment General structure of crowdsourcing: the requestor poses some questions a wide set of responders (typically unknown to the requestor) are in charge of providing answers the crowdsourcing system organizes a response collection campaign
    • 30. Crowd Control is tough… Crowd engineering is complicated Task design, planning, assignment Workers discovery, assessment, engagement Controlling crowdsourcing is fundamental Cost Time Quality Need for higher level abstraction and tools
    • 31. My take on crowdsourcing: CrowdSearcher Crowdsearcher comprises • a conceptual framework • a specification paradigm and tool • a reactive execution control environment Supports designing, deploying, monitoring, and controlling crowd-based systems Design is top-down, platform-independent Deployment turns declarative specifications into platform-specific implementations which include social networks and crowdsourcing platforms
    • 32. (simplified) example: crowdsourcing opinions on new job position (1)
    • 33. (simplified) example: crowdsourcing opinions on new job position (2)
    • 34. The CrowdSearcher features and architecture Cross-platform integration: social networks and Q&A websites in addition to crowdsourcing platforms Crowd control: model-driven engine controls application deployment and execution Query Answer API Access Search Execution CrowdSearcher Engine SE Access Interface Local Source Access Interface Human Access Interface Human Interaction Management Query Interface Social Networks Q&A Crowdsource platforms
    • 35. The Design Process of crowd-based apps within CrowdSearcher A simple task design and deployment process, based on specific data structures created using model-driven transformations driven by the task specification Task Specification Task Planning Control Specification • Task Specification: task operations, objects, and performers • Task Planning: work distribution • Control Specification: task control policies
    • 36. Model-driven engineering setting App.-specific Data Schema Task Specification Data Instances Task Model Operations T1 Strategy T2 T3 Input design model Transform. Generated artifact artifact flow App.-specific Data Model Task Planning Microtask Logic and UI Microtasks & Executions T4 Control Specification Event-based Control Microtask deployment T5 Crowd Control Mart T6 Control Rules Crowdsourcing Platforms / Communities
    • 37. Model-driven engineering setting App.-specific Data Schema Task Specification Data Instances Task Model Operations T1 Strategy T2 T3 Input design model Transform. Generated artifact artifact flow App.-specific Data Model Task Planning Microtask Logic and UI Microtasks & Executions T4 Control Specification Event-based Control Microtask deployment T5 Crowd Control Mart T6 Control Rules Crowdsourcing Platforms / Communities
    • 38. Model-driven engineering setting App.-specific Data Schema (in MetaModel) Task Model Input design model Task Specification Operations T1 Strategy Transform. T2 T3 Generated artifact artifact flow App.-specific Data Model Microtask Impl. Logic and UI T4 App.-specific Data Instances Crowd Control Mart Event-based Control Microtask deployment T5 T6 Control Rules Crowdsourcing Platforms / Communities Task Planning Control Specification Microtasks and Executions
    • 39. CrowdSearcher Meta-Model
    • 40. CrowdSearcher Datamart for Runtime Control
    • 41. Example experiment: Professors’ images Classification of images retrieved from Google • 16 professors within 2 research groups in DEIB (DB and AI groups) • The top 50 images returned by the Google Image API for each query • Each microtask consisted of classifying 5 images regarding a professor • Agreement of multiple performers checked on the image • Randomization of the image order
    • 42. Experiment objectives Validating impact of model-driven change of: • Crowdsourcing strategies (majority, agreement) • Crowd communities • Control rules (order of invitations, …) Measures: • Speed of result collection (number of closed objects in time) • Quality of classification results (precision of responses) The communities: • the research group of the professor • the research area containing the group (e.g. Computer Science) • and the whole department (more than 600 people in different areas) • Polimi-related social networks
    • 43. Precision of communities 1" 0.9" 0.8" Precision) 0.7" 0.6" 0.5" 0.4" research"group" 0.3" research"area" department" 0.2" social"network" 0.1" total" 0" 0" 500" 1000" 1500" #Evalua0ons) 2000" 2500" 3000"
    • 44. Control rules: order of invitation Precision decreases with less expert communities Outside-in strategy (from generic to expert users) outperforms inside-out strategy (from expert to generic) 1$ precision$ (main$ experiment)$ precision$ (reverse$ invita<ons)$ Precision) 0.95$ 0.9$ 0.85$ 0.8$ 0.75$ 0.7$ 0.65$ 0.6$ 0$ 100$ 200$ 300$ 400$ #Closed)Objects) 500$ 600$ 700$ 800$
    • 45. % of Compl. Objects Precision Strategies Evaluation: different majorities Majority @7 Early Majority @3 R @7 Majority @3 R @5 R @7 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 +26% precision +50% precision -23% executions 0 10 20 30 40 50 #Executions 60 70 80 90
    • 46. Evaluations • Different strategies and communities impact on quality, cost and time • Cost of adapting is very low thanks to definition of strategies and rules at design level and model-driven generation of running system
    • 47. Impact Marco Brambilla Politecnico di Milano @marcobrambi
    • 48. Standardization User interaction has been overlooked in software engineering standards Hence the Interaction Flow Modeling Language (IFML) Proposed as a standard in OMG (Object Management Group) In less than 2 years (a record in OMG!), we obtained approval of the IFML standard (March 2013) Final voting on version 1.0, after 3+ years of work Brambilla, Fraternali. “Model-driven UI Engineering of Web and Mobile Apps with IFML”. Morgan Kauffmann, USA, 2014.
    • 49. Industrial exploitation IFML (and formerly WebML) has been exploited by the spinoff WebRatio Commercial modeler and code generator based on IFML and BPMN 17,000 academic licenses 150+ industrial customers (including Acer, Ikea, Unicredit, General Electrics, …) US and LA branches Different time-to-market for research ideas • From 0 (web service modeling) to 4 (BPM) years!
    • 50. Conclusion: innovation-enabling ecosystem innovation Research (Research group at Polimi) Spin-off (WebRatio) Toolsuite, industrial requirements innovation innovation Teaching (Polimi and int.l courses) Method, Language and Platform & other SME Partners toolsuite Standard Customers use cases (including EU projects) requirements
    • 51. Thanks Marco Brambilla Politecnico di Milano @marcobrambi

    ×