hossein tajalli and nenad medvidovic. software development environments augment or automate...

22
A Reference Architecture for Integrated Development And Run-time Environments Hossein Tajalli and Nenad Medvidovic

Upload: justin-nelson

Post on 25-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

A Reference Architecture for Integrated Development And Run-time Environments

Hossein Tajalli and Nenad Medvidovic

Page 2: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Software Development Environments• Augment or automate activities and processes in the software

life-cycle• Spanning requirements elicitation and negotiation• Design• Implementation• Testing and debugging • Deployment • Maintenance• Evolution• Co-ordination of ideas, artifacts, and resources among

involved people

Page 3: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Classification of Tools

Page 4: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Run-time Tools• Classical environments• To support exploratory style of programming• Run-time tools to execute programs and alter running programs• E.g. Interlisp [Tei81], Smalltalk [Gol83], Cedar [Swi85], and The

Rational Environment [Arc86]

• Modern environments• To support self-adaptive software systems • Self-Adaptive Life-cycle Environments (SALEs) • Run-time tools to calculate, validate, and perform run-time

adaptation• E.g. SADE [Don09], PESOI [Tsa06a], PBAAM [Geo04], Rainbow

[Che08], and ArchStudio [Das07]

Existence of run-time tools resulted in the integration of development

and run-time Environments in this systems.

Page 5: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Common Architecture for Self-adaptive Software Systems

Monitors Adapts

Maintains

Page 6: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Advantages of SALEs• Providing artifact updates directly to the adaptation engine• Providing consistent user interfaces to set and control the

behavior of the adaptation engine • Orchestration and integration of the adaptation engine with

other tools to design, generate, validate, and test software adaptation artifacts

• Providing feedback from run-time environment to development environment using adaptation engine

Page 7: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Disadvantages of SALEs• Development and run-time environments have to run

concurrently• Lower availability • Higher resource consumption

Page 8: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

iDARE

A reference architecture for integrated Development And Run-time Environments

• Inspired by SALEs• Based on a new perspective:

interaction with the run-time environments• To study and understand development environments• Captures the architecture of disparate development

environments• Improve availability and resource consumption of SALEs

Page 9: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

iDARE Reference Architecture

Page 10: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Classification of Environments

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

Page 11: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Environments with No Interaction

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

Page 12: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Environments with No Interaction

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

• Traditional programming paradigms• IntegralC [Ros87], OOT [Man93b], Unix/PWB [Dol84], VMX

VAXset [vms84], Rigi [Mul88], PCTE [Bou88], CAIS [Mun89], Aspect [Bro91], SoftBench [Bro92], DSEE [Leb84], Istar [Dow87], Inscape [Per87,Per89], and SLCSE [Str89]

• Multi-agent systems• AgentBuilder1 [Ric00], AgentTool[Loa01]

1 www.agentBuilder.com

Page 13: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Environments with Limited Co-operation

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

Page 14: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Environments with Limited Co-operation

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

• Traditional programming paradigms• DYMOS [Coo83], Erlang [Erl97], Conic [Mag89], Argus

[Lis88,Blo93], and Reconfigurable PolyLith [Hof93]• Multi-agent systems• JADE [Bel01], Zeus [Nwa99], MAGE [Shi04], Jason [Bor05], and

Visual Soar [Fai96] • Service-oriented systems• IBM SOA Foundation Architecture [Hig05], Microsoft

Whitehorse Project [Wil04], and JBoss1 Enterprise SOA Platform

• Component-based systems• Archstudio 2.0 [Ore00]

1 www.jboss.org

Page 15: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Environments with Full Integration

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

Exploratory Style SALEs

Page 16: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Environments for Exploratory Style

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

Exploratory Style SALEs

Examples: Interlisp [Tei81], Smalltalk [Gol83], Cedar [Swi85], and The Rational Environment [Arc86]

Page 17: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Environments for SALEs

Development Environments (based on level of interaction with run-time environments)

No InteractionLimited

Co-operationFull Integration

Exploratory Style SALEs

Examples: SADE [Don09], PESOI [Tsa06a], PBAAM [Geo04], Rainbow [Che08], ArchStudio [Das07]

Page 18: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Re-cast Example: PBAAM

The Policy-Based Architectural Adaptation Management (PBAAM) [Geo08] is an automated approach to architectural software adaptation.

Page 19: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Disadvantages of SALEs• Development and run-time environments have to run

concurrently• Lower availability • Higher resource consumption

The detachable tools in iDARE are intended to solve these problems.

Page 20: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

PLASMAOur ongoing work on the context of the PLASMA [Taj10] has provided preliminary evidence of iDARE’s utility.

Page 21: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Conclusions• iDARE reference architecture • Study and understand development Environments• New perspective: run-time plug-ins• Improve availability and resource consumption of SALEs• Classifications of development environments

Page 22: Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning

Some of the References[Tei81] W. Teitelman and L. Masinter, “The Interlisp programming environment,” Computer, vol. 14,

pp. 25–33, April 1981.[Gol83] A. Goldberg, “The influence of an object-oriented language on the programming

environment,” in Proceedings of the 1983 computer science conference, ser. CSC-83. New York, NY, USA: ACM, 1983, pp. 35–54.

[Swi85] D. C. Swinehart et al., “The structure of Cedar,” SIGPLAN Not., vol. 20, pp. 230–244, June 1985.

[Arc86] J. E. J. Archer and M. T. Devlin, “Rational’s experience using Ada for very large systems,” in First International Conference on Ada (R) Programming Language Applications for the NASA Space Station, vol. 12, NASA, Lyndon B. Johnson Space Center, 1986, pp. 08–61.

[Don09]M. Dong et al., “SADE: a development environment for adaptive multi-agent systems,” in Proceedings of the 12th International Conference on Principles of Practice in Multi-Agent Systems, ser. PRIMA ’09. Berlin, Heidelberg: Springer-Verlag, 2009, pp. 516–524.

[Tsa06] W.-T. Tsai et al., “PESOI: Process embedded service-oriented architecture,” Journal of Software, vol. 17, pp. 1470–1484, 2006.

[Geo04] J. C. Georgas and R. N. Taylor, “Towards a knowledge-based approach to architectural adaptation management,” in 1st ACM SIGSOFT Workshop on Self-managed Systems, 2004.

[Che08] S.-W. Cheng, “Rainbow: Cost-effective software architecture-based self-adaptation,” Ph.D. dissertation, Carnegie Mellon University, Pittsburgh, 2008.

[Geo08] J. C. Georgas, “Supporting architecture- and policy-based self-adaptive software systems,” Ph.D. dissertation, University of California, Irvine, 2008.

[Taj10] H. Tajalli et al., “PLASMA: a plan-based layered architecture for software model-driven adaptation,” in Proceedings of the IEEE/ACM international conference on Automated software engineering, ser. ASE ’10. New York, NY, USA: ACM, 2010, pp. 467–476.