ORION - A Component-Based Software Engineering Environment Eduardo Almeida esa2@cin.ufpe.br
Agenda Context Requirements for Component-Based Software Engineering Environments Components of the Orion Environment The Component-Based Software Engineering Environment Summary References
Context Tools and “Environments” – Operating Systems Small collections of stand-alone tools UNIX Editors, compilers, debuggers grep, find Did not provide real means of integrating tools, coordinating their executions, or automating common tasks Programming Support Environment (PSE) The first significant efforts in producing tightly integrated development environment Collections of tools that support coding activities Some support for task automation Support only one software engineering activity and its artifacts
Context Software Engineering Environments (SEE) Identification of the need for integrated support for software engineering activities {motivation} Integrated collections of tools that facilitate software engineering activities – across the software lifecycle Traceability Process-centered Software Engineering Environment (PSEE) Hypothesis – Software engineering process – piece of software Need for semi-automated support for the software process
Requirements for Component-Based Software Engineering Environments Tool integration Platform integration Data integration Presentation integration Control integration Process integration Support for Component-Based Software Engineering activities Domain Engineering Component-Based Development Reusability Referential Integrity Software Configuration Management (SCM) Multiple Views of Information Security Technology and Language Independence
Components of the Orion Environment MVCASE JADE (JAVA DESIGNER) MoDPAI JAMP Platform Repository Incremental Process Model (IPM)
MVCASE
JADE XMI <XMI.content> ... <Class ...> <Element.name>Frame1</Element.name> <Method ...> <Method.visibility xmi.value="public"/> </Method> <Attribute ...> <Element.name>counter</Element.name> <Attribute.visibility xmi.value="public"/> <Attribute.type> <Class xmi.uuid="int"...> </Attribute.type> </Attribute> </Class> </XMI.content> XMI
MoDPAI Network MoDPAI SNMP / PING Requests
JAMP Platform
Repository Store and search services CASE Tools Middleware Artifacts repository - Version Control - Security and Transaction Management XMI Middleware Store and search services CASE Tools
Incremental Process Model (IPM)
The Component-Based Software Engineering Environment
Development of Distributed Components
Development of Distributed Components .
Development of Distributed Components
Development of Distributed Components Repository MVCASE Service Order Model Framework
Development of Distributed Components MVCASE Repository DAP Structure Distributed Independent Layer
Development of Distributed Components JADE Repository MVCASE (1) (2) (4) (3) Added operations Partially-generated code + XMI Completed code
Development of Distributed Applications
Development of Distributed Applications Network topology information (XML) Physical Network MoDPAI MVCASE JAMP (1) (2) (3) (4) (5) (6)
Summary Tool integration Platform integration Data integration Presentation integration Control integration Process integration Support for Component-Based Software Engineering activities Reusability Referential Integrity Software Configuration Management (SCM) Multiple Views of Information Security Technology and Language Independence PSEE in CBSE area
References Almeida, E, S.; Bianchini, C, P.; Prado, A, F.; Trevelin, L, C. IPM: An Incremental Process Model for Distributed Component-Based Software Development. In: The 5th International Conference On Enterprise Information Systems (ICEIS), 2003, Angers - França. ACM Press Almeida, E, S.; Bianchini, C, P.; Prado, A, F.; Trevelin, L, C. MVCase: An Integrating Technologies Tool for Distributed Component-Based Software Development. In: The 6Th Asia - Pacific Network Operations and Management Symposium, Proceedings of IEEE, Poster Session, Jeju Island – Korea, 2002. Alves, V., Borba, P., 2001. Distributed Adapters Pattern (DAP): A Design Pattern for Object-Oriented Distributed Applications. In SugarLoafPlop’2001, The First Latin American Conference on Pattern Languages of Programming Bianchini, C.P., ... [et al]. Devices Monitoring Tool using Pervasive Computing and Software Agents. Proceedings of the 2002 International Conference on Security and Management. P 70-74. Las Vegas, Nevada, USA, 2002. Guimarães, M.P. Implementation Design for Cooperative Work Support in JAMP Platform (in portuguese), MSc. Dissertation - Federal University of São Carlos, 2000. Harrison, W., Ossher, H., and Tarr, P. Software Engineering Tools and Environments: A Roadmap. In The Future of Software Engineering. ACM, New York, 2000, 261-277. Heineman, G., T., Councill, W., T., 2001. Component-Based Software Engineering, Putting the Pieces Together, Addison-Wesley. USA. Lüer, C. and Rosenblum, D. S. WREN: An Environment for Component-Based Development. ACM SIGSOFT Software Engineering Notes. Volume 26. Number 5. September 2001. pp. 207-217. Souza, L.F.H. de, Trevelin, L.C. - JAMP Platform and Multimedia Oriented Middleware Services, International Conference on Intelligente Multimedia and Distance Learning Education (ICIMADE'01) June 2001 Fargo, North Dakota, USA.