Software Architecture Recovery based on Dynamic Analysis
|
|
- Quentin Cain
- 5 years ago
- Views:
Transcription
1 Software Architecture Recovery based on Dynamic Analysis Aline Vasconcelos 1,2, Cláudia Werner 1 1 COPPE/UFRJ System Engineering and Computer Science Program P.O. Box ZIP Rio de Janeiro RJ Brazil 2 CEFET Campos (Centro Federal de Educação Tecnológia de Campos) Dr. Siqueira, 273 Pq. Dom Bosco ZIP Campos dos Goytacazes- RJ [aline, werner]@cos.ufrj.br Abstract Architecture recovery from legacy systems has been claimed to offer great contributions to software maintenance and reuse. Most of the approaches to architecture recovery is based on the static analysis of systems and lack a sound support to architectural elements identification. In this context, this paper presents an approach to architecture recovery based on dynamic analysis of systems. The system is executed for some specified use-cases and execution traces are collected. By analyzing the execution traces, interaction patterns are detected and architectural elements are defined based on these interaction patterns and their relation to use-case realizations. Moreover, in order to evaluate the proposed approach a case study is presented. 1. Introduction This paper presents an approach to software architecture recovery from object-oriented legacy systems mainly based on the dynamic analysis of systems. Software architecture represents the description of a system global structure in terms of their elements and relationships among them, along with the principles that guide their design and evolution [1]. The proposed approach has been investigated in the context of the Odyssey project [11], which involves the development of a software development environment based on domain models named Odyssey. Our goals are to contribute to program comprehension and software maintenance and to generate artifacts that can later be used to specify a domain reference architecture. Architecture recovery involves a set of methods for the extraction of architectural information from lower level representations of a software system, such as source code [7]. The abstraction process to generate architectural elements frequently involves clustering source code entities (such as files, classes, functions etc.) into subsystems according to a set of criteria that can be application dependent or not. Architecture recovery from legacy systems is motivated by the fact that these systems do not often have an architectural documentation, and when they do, this documentation is many times out of synchronization with the implemented system. Most approaches to software architecture recovery has been exploring the static analysis of systems [2] [5] [6] [7]. When considering object-oriented software, which employs a lot of polymorphism and dynamic binding mechanisms, dynamic analysis becomes an essential technique to comprehend the system behavior, object interactions, and hence to reconstruct its architecture. In this work, the criteria used to determine how source code entities should be clustered in architectural elements are mainly based on the dynamic analysis of the system, taking into account the occurrences of interaction patterns and types (classes and interfaces) in use-case realizations.
2 The proposed architecture recovery approach aims at the extraction of a functional decomposition of the system, clustering entities that implement similar and coherent functionality. However, it is important to state that an application can have many architecture descriptions, considering, for example, the different architectural views [3] or the diversity of implemented architectural patterns [2]. In this work, we adopt the 4+1 view model [3] to describe an architecture and, besides the functional decomposition that corresponds to the logical view of the architecture, the process and scenario views are also recovered by a dynamic reverse engineering sub-process. To present the proposed approach, following this introduction, section 2 describes the proposed software architecture recovery process; section 3 presents a case study used to evaluate the process; and section 4 outlines some conclusions and lists our ongoing work. 2. The Proposed Approach The proposed process to software architecture recovery is depicted in figure 1. Figure 1: The proposed software architecture recovery process. The process is iterative and incremental. The architecture is recovered in cycles, starting by the use-case modeling activity, and in each cycle a more complete description of the system architecture is obtained. The process is semi-automatic and guided by a developer who must have some knowledge about the application. This knowledge, if not existent, can be obtained from system experts, available system documentation and application execution. In the following we briefly describe the process activities. Static Reverse Engineering and Use-Case Modeling The process starts by the static reverse engineering and use-case modeling activities. The static reverse engineering aims at the recovery of a static model of the system, which is represented through UML Class Diagrams. This activity is executed only once. The use-case modeling can start in parallel to the static reverse engineering. Its goal is to establish the focus of the architecture recovery in the current cycle of the process. To recover the whole architecture of an application in one step is a hard task [5]. In [9] the focus of the recovery process is also established by the use-case modeling. However usecases are selected according to the change and evolution requirements of the application. In our work, the recovery must start by some key use-cases of the application, representing essential functionality, and incorporates more use-cases as the developer feels it is necessary.
3 The use-case modeling activity involves a manual reconstruction of some system use-cases whenever an up-to-date use-case model of the application is not available. Besides usecases definition, this activity also involves use-case scenarios description. A use-case scenario encompasses a set of steps that guide the developer during the application execution. In order to specify the use-cases and their scenarios, as stated in [4], which is also a reverse engineering method that performs the analysis of input and output events of the application, user manuals and application execution may be investigated. In application executions, menu options at the application user-interface are a good indicator of system use-cases. Moreover, test cases documentation, if available, can also be analyzed. Dynamic Reverse Engineering and Architectural Elements Definition Dynamic reverse engineering aims at the reconstruction of a system behavioral model, represented through UML sequence diagrams, in this case. To this end, the system is executed for the specified use-case scenarios and these executions are monitored, allowing the collection of execution traces. Execution traces encompass the set of events and messages generated during system execution, with their sender and receiver instances and their types. They are the input source of information to the reconstruction of sequence diagrams and the definition of architectural elements. The criteria to architectural elements definition are based on the analysis of these execution traces. Most of the approaches to architecture recovery does not establish general criteria to architectural elements definition [5] [9]. When they do, architectural elements identification is based on the static analysis of the system [2] [6]. In this work, our assumption is that the dynamic model of the system, considering object-oriented software, reveals significant information about object interactions that is essential to support architectural elements reconstruction. We propose two criteria to architectural elements definition, namely: Criterion 1: Clustering in subsystems source-code entities (classes and interfaces) that participate in interaction patterns that appear in a large 1 set of use-cases. An interaction pattern that participates in the realization of a large set of use-cases indicates types that represent a central functionality in the architecture. Criterion 2: Clustering of source-code entities that participate in the realization of a small set of use-cases together with these use-cases in subsystems. An interaction pattern represents an ordered sequence of messages and events that frequently occur during system execution. Moreover, the architectural elements defined must thereafter be mapped to the sequence diagrams reconstructed in order to allow a representation of a dynamic model of the system architecture, corresponding to the process and scenarios view [3]. The scenarios view relates use-cases to architectural elements. A challenge we face, however, to conduct this dynamic analysis is the volume of information obtained in the traces. One of the solutions proposed to this problem is to filter out from the traces the events and messages to/from Java API classes. Evaluation In each cycle of the recovery process, the architecture reconstructed must be evaluated by system experts. The goal is to validate if the recovered elements really correspond to an expected architecture representation, being helpful to system comprehension. 1 The number of use-cases that indicate a large set is application-dependent. As we perform several case studies applying the proposed process, a percentage value for this number can be defined.
4 In order to reduce the frequently required manual effort to architecture recovery, a tool set to support the process has been developed in the context of the Odyssey project [11]. The following section presents a case study that was performed to evaluate the proposed process along with the description of our tool set. 3. Case Study A case study to evaluate the proposed process has been done with the support of the Odyssey environment, aiming at the reconstruction of its own architecture. Odyssey is a software development environment that covers the development for reuse, through domain engineering, and the development with reuse, through application engineering. It has two main views, namely Environment and Modeling Environment, in which the developer can create domains, applications, model domains and applications etc. Odyssey is written in Java programming language and contains around 650 classes. Along the years Odyssey became a huge environment, with drawbacks related to performance, usage complexity and evolution. Many tools, such as the pattern detection tool, are not necessary in some particular usage scenarios, and they can represent an overhead to the whole environment in these scenarios. Since Odyssey continues to evolve, in 2003 the team decided to reengineer the environment in order to reduce its complexity and to allow its customization to specific needs. However, only a few of the original developers were available and there was no up-to-date documentation of the whole environment design to be investigated. Thus the team realized the need to recover the Odyssey architecture in order to allow its comprehension and facilitate its reengineering. The following sections illustrate how the proposed process was applied to the recovery of the Odyssey architecture, taking into account a few architectural elements, i.e., the kernel of the application and some elements related to essential features of the environment Static Reverse Engineering and Use-Case Modeling The static reverse engineering was performed with the Ares tool, a reverse engineering tool integrated to the Odyssey environment, which is capable of extracting a UML static model from Java source-code. The use-case modeling activity started through the identification of some key use-cases, namely: Create a New Domain; Create a New Class; Create a New Use-Case; Create a New Class Diagram; and Define a New User. The identification of key use-cases is the developer responsibility, but may take into account some essential features of the application. In the case of Odyssey, since it represents a development environment, which encompasses reuse through domain engineering, the key use-cases were the ones related to domain creation and its modeling. Moreover, an important feature of the Odyssey environment is its control over authorized users. Some more use-cases were defined along the other recovery cycles. Create a New Class Main Scenario: Create a new class through pop-up menu option. To start this scenario the user must be in the Modeling Environment view of Odyssey. Steps: 1. The user goes to the Structural View and presses the mouse right button. 2. Odyssey shows a menu window with some options. 3. The user chooses Creates New Class. 4. Odyssey creates a new class element in its Structural View, with a graphical representation and a set of documentation items to be fulfilled. Figure 2. Main scenario for Create New Class use-case.
5 The main scenarios for each use-case were specified. Figure 2 exemplifies a scenario description to the main scenario for the use-case Create a New Class Dynamic Reverse Engineering During the dynamic reverse engineering, Odyssey was executed to the specified use-case scenarios and the execution traces were collected. To support the dynamic reverse engineering, we developed a trace collector tool, named Tracer, that uses aspects [10] to monitor Java program executions and collect the messages and events generated during execution. Tracer fits well the process needs, since it allows the collection of execution traces to be enabled and disabled at run-time, making it feasible to collect only the execution traces related to a specific use-case scenario or application functionality. Moreover, some filters can be applied while using Tracer, allowing the user to determine packages and/or classes to be traced. Tracer stores the trace in a XML file, facilitating the post-processing of the generated information. Based on these execution traces, sequence diagrams, associated to the use-case scenarios, were reconstructed using Odyssey Architectural Elements Definition Architectural elements definition started with the detection of interaction patterns in the reconstructed dynamic model. By comparing the sequence diagrams reconstructed to the Odyssey use-cases, it was possible to identify two interaction patterns that appear in almost all of the use-case scenarios. They are depicted in figures 3 and 4. Figure 3 illustrates the first pattern in the context of the Create New Class use-case. This pattern occurs anytime a new semantic element (like a class, a use-case or a user) needs to be created in Odyssey. Environment and ModelingEnvironment classes control a semantic element creation, asking SemanticFactory to fabricate the correspondent element. There are little differences in this pattern considering the different use-case scenarios, such as the ClassNode class, which is UseCaseNode in the Create New Use-Case use-case. It is important to state, however, that we assume that an interaction pattern can have some interleaved messages. The second interaction pattern detected is illustrated in figure 4. This pattern is in fact a continuation of the first one. By analyzing the patterns in figures 3 and 4, it was possible to realize that every model element, like classes, use-cases, diagrams etc., are modeling items (class ModelItem) and abstract models (class AbstractModel). Through the interaction patterns detected, it was possible to visualize the Odyssey kernel, the Semantic Core element, which encompasses the classes that are essential to the definition and instantiation of any semantic element and appear in the realization of almost all the use-cases, like Environment, ModelingEnvironment, AbstractModel etc. It is depicted in figure 6. Moreover, since Odyssey works with some factories, an architectural element to encapsulate them was defined. Architectural elements are depicted in figure 5. The Semantic Core depends on the Factories in order to create new semantic elements. The Class Modeling architectural element contains the classes (e.g. ClassModelRepresentation) that only appear in the realization of the use-cases related to class modeling. The same holds for the Use-Case Modeling architectural element. The classes in the Class Modeling and UseCase Modeling architectural elements are subclasses of classes in the Semantic Core.
6 Figure 3. First interaction pattern detected in the Odyssey execution. Figure 4. Second interaction pattern detected in the Odyssey execution. In order to reconstruct the internal structure of each architectural element, a tool that queries the Odyssey internal class model was applied. The Class Manipulation tool provides some query capabilities to the Odyssey environment, allowing the user to select classes in the static model of an application based on some search criterion. The static reverse engineering of Odyssey was performed within Odyssey itself, making it possible to use the Class Manipulation tool to locate in the static model the classes that appeared in the interaction patterns detected. Since Odyssey has 650 classes, by using this tool, we could slice its static model and reduce the time to reconstruct its partial architecture. Moreover, by querying classes using their name string, allowed us to find classes with similar names. Grouping classes with a common string in their names,
7 although not being one of our main crietria to architectural elements definition, is also helpful since designers use to follow this criterion in order to characterize architectural elements, like layers. The Class Manipulation tool also computed the high-level dependencies between the architectural elements (shown in figure 5) as their internal structures were reconstructed. Odyssey Architectural Elements Figure 5. Some Odyssey architectural elements Evaluation Figure 6. Semantic Core internal structure. By evaluating the Odyssey architecture with experts we could confirm that the recovered architectural elements were reasonable. However, some static relationships between classes, as the aggregation between the classes Model and ModelItem (figure 6), were not recovered by the static reverse engineering tool and needed to be added manually to the diagram. Nevertheless, the recovered architecture was successfully used as the basis to the reengineering of the Odyssey, which lead to the generation of a new version of the environment, named OdysseyLight [12]. 4. Conclusions and Ongoing Work Through the presented case study it was possible to have an initial evaluation of the effectiveness of architecture recovery based on dynamic analysis of software. There are
8 also a few approaches to architecture recovery that take into account the dynamic analysis. In [8], the authors apply the formal concept analysis technique to identify methods shared by use-cases implementation. Each concept in the generated conceptual lattice encompasses a set of use-cases and their shared methods. However, the lattice does not make clear where a source-code entity, such as a class, must be located in the architecture, since the same entity appears in more than one concept. In [9], dynamic analysis is also considered in the recovery process. However, this analysis is not automated and it is not used as the basis to architectural elements identification. In our proposal, criteria to architecture reconstruction are clearly defined based on use-case realizations. Moreover, we are currently specifying and developing tools to support the process activities to which an automated support still does not exist, such as the sequence diagram reconstruction and interaction patterns detection. References 1. Garlan, D., Perry, D. Introduction to the Special Issue on Software Architecture. IEEE Transactions on Software Engineering, April 1995, p Harris, D. R., Yeh, A., Reubestein, H.B., Yeh, A.S. Reverse Engineering to the Architectural Level. In Proceedings of the 17 th International Conference on Software Engineering, Scattle, Washington, April 1995, p Kruchten, P.B. The 4+1 View Model of Architecture. IEEE Software, November 1995, Vol. 12, Number 6, p Penteado, R.A.D., Germano, Masiero, F., P.C. An Overall Based on Fusion to Reverse Engineer Legacy Code. In Proceedings of the 3 rd IEEE Working Conference on Reverse Engineering, Monterey, California, November, 1996, p Kazman, R., Carrière, S.J. Playing Detective: Reconstructing Software Architecture from Available Evidence. Technical Report CMU/SEI-97-TR-010, Carnegie Mellon University, October Mendonça, N. C., Kramer, J. Developing an Approach for the Recovery of Distributed Software Architectures. In Proceedings of the 6 th IEEE International Workshop on Program Comprehension, Ischia, Italy, June 1998, p Sartipi, K., Kontogiannis, K., Mavaddat, F. Software Architecture Recovery. Software Engineering Group, University of Waterloo, Waterloo, Ontario, Canada, Technical Report, Bojic, D., Velasevic, D. A Use-Case Driven Method of Architecture Recovery for Program Understanding and Reuse Reengineering. In Proceedings of the 4 th European Software Maintenance and Reengineering Conference, Zuriq, Swiss, February 2000, p Ding, L., Medvidovic, N. Focus: a LightWeight, Incremental Approach to Software Architecture Recovery and Evolution. Working IEEE/IFIP Conference on Software Architecture, Amsterdam, Netherlands, August 2001, p AOSD Steering Committee. Aspect-Oriented Software Development. In: Accessed in 09/02/ Odyssey Project. In: Accessed in 05/10/ Murta, L., Vasconcelos, A., et al. Run-Time Variability through Component Dynamic Loading. To appear in the Proceedings of the Tools Session at the 18 th Brazilian Symposium on Software Engineering, Brasilia, Brazil, October 2004.
A Design Rationale Representation for Model-Based Designs in Software Engineering
A Design Rationale Representation for Model-Based Designs in Software Engineering Adriana Pereira de Medeiros, Daniel Schwabe, and Bruno Feijó Dept. of Informatics, PUC-Rio, Rua Marquês de São Vicente
More informationA Lightweight Language for Software Product Lines Architecture Description
A Lightweight Language for Software Product Lines Architecture Description Eduardo Silva, Ana Luisa Medeiros, Everton Cavalcante, Thais Batista DIMAp Department of Informatics and Applied Mathematics UFRN
More informationUsing Architectural Models at Runtime: Research Challenges
Proceedings of the European Workshop on Software Architectures, St. Andrews, Scotland, May 2004. Using Architectural Models at Runtime: Research Challenges David Garlan and Bradley Schmerl Department of
More informationBeginning To Define ebxml Initial Draft
Beginning To Define ebxml Initial Draft File Name Version BeginningToDefineebXML 1 Abstract This document provides a visual representation of how the ebxml Architecture could work. As ebxml evolves, this
More informationQuantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study
Quantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study Jadson Santos Department of Informatics and Applied Mathematics Federal University of Rio Grande do Norte, UFRN Natal,
More informationDesigning a System Engineering Environment in a structured way
Designing a System Engineering Environment in a structured way Anna Todino Ivo Viglietti Bruno Tranchero Leonardo-Finmeccanica Aircraft Division Torino, Italy Copyright held by the authors. Rubén de Juan
More informationImpact of Dependency Graph in Software Testing
Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,
More informationDerivation of Feature Component Maps by means of Concept Analysis
Derivation of Feature Component Maps by means of Concept Analysis Thomas Eisenbarth, Rainer Koschke, Daniel Simon University of Stuttgart, Breitwiesenstr. 20-22, 70565 Stuttgart, Germany {eisenbts, koschke,
More informationBuilding an Assurance Foundation for 21 st Century Information Systems and Networks
Building an Assurance Foundation for 21 st Century Information Systems and Networks The Role of IT Security Standards, Metrics, and Assessment Programs Dr. Ron Ross National Information Assurance Partnership
More informationSOFTWARE ARCHITECTURE & DESIGN INTRODUCTION
SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION http://www.tutorialspoint.com/software_architecture_design/introduction.htm Copyright tutorialspoint.com The architecture of a system describes its major components,
More informationIntegrating decision management with UML modeling concepts and tools
Downloaded from orbit.dtu.dk on: Dec 17, 2017 Integrating decision management with UML modeling concepts and tools Könemann, Patrick Published in: Joint Working IEEE/IFIP Conference on Software Architecture,
More informationCM-OPL: An Ontology Pattern Language for the Configuration Management Task
CM-OPL: An Ontology Pattern Language for the Configuration Management Task Ana Carolina Almeida 1, Daniel Schwabe 2, Sérgio Lifschitz 2, Maria Luiza M. Campos 3 1 Dept. of Comp. Science State University
More informationIOSR Journal of Computer Engineering (IOSRJCE) ISSN: Volume 3, Issue 3 (July-Aug. 2012), PP
IOSR Journal of Computer Engineering (IOSRJCE) ISSN: 2278-0661 Volume 3, Issue 3 (July-Aug. 2012), PP 50-55 Modeling Object Oriented Applications by Using Dynamic Information for the Iterative Recovery
More informationUpdate on AADL Requirements Annex
Open-PEOPLE Open Power and Energy Optimization PLatform and Estimator Update on AADL Requirements Annex Dominique BLOUIN* *Lab-STICC, Université de Bretagne Sud, Lorient, FRANCE AADL Standards Meeting,
More informationSoftware Architectures
Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429
More informationIntegrating Domain Specific Modeling into the Production Method of a Software Product Line
Integrating Domain Specific Modeling into the Production Method of a Software Product Line Gary J. Chastek Software Engineering Institute John D. McGregor Clemson University Introduction This paper describes
More informationComparative Analysis of Architectural Views Based on UML
Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 12 pages Comparative Analysis of Architectural Views Based on UML Lyrene Fernandes
More informationA PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING
IADIS International Conference Applied Computing 2007 A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING Lau Sei Ping 1, Wee Bui Lin 2, Nurfauza bt Jali 3 Faculty of Computer Science and Information Technology
More informationAnalyzing the Product Line Adequacy of Existing Components
Analyzing the Product Line Adequacy of Existing Components Jens Knodel and Dirk Muthig Fraunhofer Institute for Experimental Software Engineering (IESE), Fraunhofer-Platz 1, D-67663 Kaiserslautern, Germany
More informationWARE: a tool for the Reverse Engineering of Web Applications
WARE: a tool for the Reverse Engineering of Web Applications Anna Rita Fasolino G. A. Di Lucca, F. Pace, P. Tramontana, U. De Carlini Dipartimento di Informatica e Sistemistica University of Naples Federico
More informationSoftware Architecture
Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning
More informationProduct Line Evolution Using Source Packages
Product Line Evolution Using Source Packages Arie van Deursen Merijn de Jonge CWI P.O. Box 94079, 1090 GB Amsterdam, The Netherlands http://www.cwi.nl/ {arie,mdejonge} Abstract We present a language-independent
More informationAutomatic Reconstruction of the Underlying Interaction Design of Web Applications
Automatic Reconstruction of the Underlying Interaction Design of Web Applications L.Paganelli, F.Paternò C.N.R., Pisa Via G.Moruzzi 1 {laila.paganelli, fabio.paterno}@cnuce.cnr.it ABSTRACT In this paper
More informationQuality-Driven Conformance Checking in Product Line Architectures
Quality-Driven Conformance Checking in Product Line Architectures Femi G. Olumofin and Vojislav B. Mišić University of Manitoba, Winnipeg, Manitoba, Canada Abstract Software product line are often developed
More informationComprehensive Study on Cybercrime
Federal Ministry of Justice and 17 August 2016 Consumer Protection German Comments on the Comprehensive Study on Cybercrime (Draft February 2013) The United Nations Office on Drugs and Crime (UNODC) invited
More information1. Discovering Important Nodes through Graph Entropy The Case of Enron Database
1. Discovering Important Nodes through Graph Entropy The Case of Enron Email Database ACM KDD 2005 Chicago, Illinois. 2. Optimizing Video Search Reranking Via Minimum Incremental Information Loss ACM MIR
More informationMeta Architecting: Towered a New Generation of Architecture Description Languages
Journal of Computer Science 1 (4): 454-460, 2005 ISSN 1549-3636 Science Publications, 2005 Meta Architecting: Towered a New Generation of Architecture Description Languages Adel Smeda, Tahar Khammaci and
More informationWEB SERVICES TESTING CHALLENGES AND APPROACHES
WEB SERVICES TESTING CHALLENGES AND APPROACHES Sana Azzam CIS department, IT faculty Yarmouk University Irbid, Jordan sana_azzam@yahoo.com Mohammed Naji Al-Kabi CIS department, IT faculty Yarmouk University
More informationDynamic Management of Integration Testing for Self-Adaptive Systems
Dynamic Management of Integration Testing for Self-Adaptive Systems Carlos Eduardo da Silva Escola de Ciências e Tecnologia UFRN, Natal, RN, Brazil carlos.silva@ect.ufrn.br Rogério de Lemos School of Computing
More informationMythoLogic: problems and their solutions in the evolution of a project
6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. MythoLogic: problems and their solutions in the evolution of a project István Székelya, Róbert Kincsesb a Department
More informationdata elements (Delsey, 2003) and by providing empirical data on the actual use of the elements in the entire OCLC WorldCat database.
Shawne D. Miksa, William E. Moen, Gregory Snyder, Serhiy Polyakov, Amy Eklund Texas Center for Digital Knowledge, University of North Texas Denton, Texas, U.S.A. Metadata Assistance of the Functional Requirements
More informationCHAPTER 9 DESIGN ENGINEERING. Overview
CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative
More informationPatterns and Testing
and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3
More informationchallenges in domain-specific modeling raphaël mannadiar august 27, 2009
challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing
More informationAutomation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1
Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:
More informationArchitectural Blueprint
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint
More informationIMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING
IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING Pardeep kaur 1 and Er. Rupinder Singh 2 1 Research Scholar, Dept. of Computer Science and Engineering, Chandigarh University, Gharuan, India (Email: Pardeepdharni664@gmail.com)
More informationSCOS-2000 Technical Note
SCOS-2000 Technical Note MDA Study Prototyping Technical Note Document Reference: Document Status: Issue 1.0 Prepared By: Eugenio Zanatta MDA Study Prototyping Page: 2 Action Name Date Signature Prepared
More informationInternational Journal for Management Science And Technology (IJMST)
Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION
More informationArchitecture Design Recovery of a Family of Embedded Software Systems
Architecture Design Recovery of a Family of Embedded Software Systems An Experience Report Lars Bratthall and Per Runeson Dept. of Communication Systems, Lund University, Sweden. P.O. Box 118, S-221 00
More informationAn Object-Oriented HLA Simulation Study
BULGARIAN ACADEMY OF SCIENCES CYBERNETICS AND INFORMATION TECHNOLOGIES Volume 15, No 5 Special Issue on Control in Transportation Systems Sofia 2015 Print ISSN: 1311-9702; Online ISSN: 1314-4081 DOI: 10.1515/cait-2015-0022
More informationFor 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,
Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,
More informationReflective Java and A Reflective Component-Based Transaction Architecture
Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,
More information1. i. What are the 3 major components of a information system and show their relationship input output
Higher National Diploma in Information Technology First Year, Second semesterexamination-2011 IT2005: System Analysis and Design Answer Script No. of pages: 11 1. i. What are the 3 major components of
More informationQuality Attribute Driven Software Architecture Reconstruction. Version 1.0 QADSAR SATURN page 1
Pittsburgh, PA 15213-3890 Quality Attribute Driven Software Architecture Reconstruction SATURN Workshop April 7, 2005 Liam O Brien Sponsored by the U.S. Department of Defense 2005 by Carnegie Mellon University
More informationSArEM: A SPEM extension for software architecture extraction process
SArEM: A SPEM extension for software architecture extraction process Mira Abboud LaMA Laboratory Lebanese University Tripoli, Lebanon And LINA Laboratory University of Nantes Nantes, France mira.abboud@univ-nantes.fr
More informationHyperFrame - A Framework for Hypermedia Authoring
HyperFrame - A Framework for Hypermedia Authoring S. Crespo, M. F. Fontoura, C. J. P. Lucena, D. Schwabe Pontificia Universidade Católica do Rio de Janeiro - Departamento de Informática Universidade do
More informationA Meta-Model for Fact Extraction from Delphi Source Code
Electronic Notes in Theoretical Computer Science 94 (2004) 9 28 www.elsevier.com/locate/entcs A Meta-Model for Fact Extraction from Delphi Source Code Jens Knodel and G. Calderon-Meza 2 Fraunhofer Institute
More informationCAS 703 Software Design
Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction
More informationSelf-Adaptive Middleware for Wireless Sensor Networks: A Reference Architecture
Architecting Self-Managing Distributed Systems Workshop ASDS@ECSAW 15 Self-Adaptive Middleware for Wireless Sensor Networks: A Reference Architecture Flávia C. Delicato Federal University of Rio de Janeiro
More informationModel Driven Development of Context Aware Software Systems
Model Driven Development of Context Aware Software Systems Andrea Sindico University of Rome Tor Vergata Elettronica S.p.A. andrea.sindico@gmail.com Vincenzo Grassi University of Rome Tor Vergata vgrassi@info.uniroma2.it
More informationSOFTWARE DESIGN COSC 4353 / Dr. Raj Singh
SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a
More informationSoftware Language Engineering of Architectural Viewpoints
Software Language Engineering of Architectural Viewpoints Elif Demirli and Bedir Tekinerdogan Department of Computer Engineering, Bilkent University, Ankara 06800, Turkey {demirli,bedir}@cs.bilkent.edu.tr
More informationA Reconnaissance on Design Patterns
A Reconnaissance on Design Patterns M.Chaithanya Varma Student of computer science engineering, Sree Vidhyanikethan Engineering college, Tirupati, India ABSTRACT: In past decade, design patterns have been
More informationSupport for Static Concept Location with sv3d
Support for Static Concept Location with sv3d Xinrong Xie, Denys Poshyvanyk, Andrian Marcus Department of Computer Science Wayne State University Detroit Michigan 48202 {xxr, denys, amarcus}@wayne.edu
More informationUse-Case Driven Domain Analysis for Milk Production Information Systems
Use-Case Driven Domain Analysis for Milk Production Information Systems Andrea Carla Alves Borim a, Antônio Mauro Saraiva b and Carlos Alberto Ramos Pinto c a Faculdade Comunitária de Campinas Anhanguera
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More informationPanel: Pattern management challenges
Panel: Pattern management challenges Panos Vassiliadis Univ. of Ioannina, Dept. of Computer Science, 45110, Ioannina, Hellas E-mail: pvassil@cs.uoi.gr 1 Introduction The increasing opportunity of quickly
More informationDABYS: EGOS Generic Database System
SpaceOps 2010 ConferenceDelivering on the DreamHosted by NASA Mars 25-30 April 2010, Huntsville, Alabama AIAA 2010-1949 DABYS: EGOS Generic base System Isabel del Rey 1 and Ramiro
More informationIntegrated Framework for Automating the Structural Design Iteration
Integrated Framework for Automating the Structural Design Iteration P. Mujumdar a and J.U. Maheswari b a,b Department of Civil Engineering, Indian Institute of Technology Delhi, India E-mail: purvamujumdar@gmail.com
More informationThe Specifications Exchange Service of an RM-ODP Framework
The Specifications Exchange Service of an RM-ODP Framework X. Blanc (*+), M-P. Gervais(*), J. Le Delliou(+) (*)Laboratoire d'informatique de Paris 6-8 rue du Capitaine Scott F75015 PARIS (+)EDF Research
More informationWhy Consider Implementation-Level Decisions in Software Architectures?
1. Abstract Why Consider Implementation-Level Decisions in Software Architectures? Nikunj Mehta Nenad Medvidović Marija Rakić {mehta, neno, marija}@sunset.usc.edu Department of Computer Science University
More informationAn Approach to Software Component Specification
Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software
More informationEPOS: an Object-Oriented Operating System
EPOS: an Object-Oriented Operating System Antônio Augusto Fröhlich 1 Wolfgang Schröder-Preikschat 2 1 GMD FIRST guto@first.gmd.de 2 University of Magdeburg wosch@ivs.cs.uni-magdeburg.de Abstract This position
More informationQoS-aware model-driven SOA using SoaML
QoS-aware model-driven SOA using SoaML Niels Schot A thesis submitted for the degree of MSc Computer Science University of Twente EEMCS - TRESE: Software Engineering Group Examination committee: Luís Ferreira
More informationThe IDN Variant TLD Program: Updated Program Plan 23 August 2012
The IDN Variant TLD Program: Updated Program Plan 23 August 2012 Table of Contents Project Background... 2 The IDN Variant TLD Program... 2 Revised Program Plan, Projects and Timeline:... 3 Communication
More informationAn UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry
An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry I-Chen Wu 1 and Shang-Hsien Hsieh 2 Department of Civil Engineering, National Taiwan
More informationTowards a Framework to Incorporate NFRs into UML Models
Towards a Framework to Incorporate NFRs into UML Models Subrina Anjum Tonu, Ladan Tahvildari Software Technologies Applied Research Group Dept. of Electrical and Computer Engineering University of Waterloo
More informationAn Approach to Software Architecture Analysis for Evolution and Reusability
An Approach to Software Architecture Analysis for Evolution and Reusability Chung-Horng Lung, Sonia Bot, Kalai Kalaichelvan Rick Kazman 1 Software Engineering Analysis Lab. Department of Computer Science
More informationCapturing Design Expertise in Customized Software Architecture Design Environments
Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture
More informationSoftware Reuse Techniques
DCC / ICEx / UFMG Software Reuse Techniques Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Overview of Reuse Techniques Frameworks Design Patterns Configurable Applications Architecture Patterns
More informationModels in Conflict Towards a Semantically Enhanced Version Control System for Models
Models in Conflict Towards a Semantically Enhanced ersion Control System for Models Kerstin Altmanninger Department of Telecooperation, Johannes Kepler University Linz, Austria kerstin.altmanninger@jku.at
More informationReconstructing Software Architectures using the Code- and Structure Package of the Knowledge Discovery Meta-Model
University of Kiel Department of Computer Science Software Engineering Group Reconstructing Software Architectures using the Code- and Structure Package of the Knowledge Discovery Meta-Model Bachelorthesis
More informationUnderstanding and Automating Application-level Caching
Understanding and Automating Application-level Caching Jhonny Mertz and Ingrid Nunes (Advisor) 1 Programa de Pós-Graduação em Computação (PPGC), Instituto de Informática Universidade Federal do Rio Grande
More informationINTEROPERABILITY OF STATISTICAL DATA AND METADATA AMONG BRAZILIAN GOVERNMENT INSTITUTIONS USING THE SDMX STANDARD. Submitted by IBGE, Brazil 1
SDMX GLOBAL CONFERENCE 2009 INTEROPERABILITY OF STATISTICAL DATA AND METADATA AMONG BRAZILIAN GOVERNMENT INSTITUTIONS USING THE SDMX STANDARD Submitted by IBGE, Brazil 1 Abstract Since 1990, the Brazilian
More informationADD 3.0: Rethinking Drivers and Decisions in the Design Process
ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method
More informationSecond OMG Workshop on Web Services Modeling. Easy Development of Scalable Web Services Based on Model-Driven Process Management
Second OMG Workshop on Web Services Modeling Easy Development of Scalable Web Services Based on Model-Driven Process Management 88 solutions Chief Technology Officer 2003 Outline! Introduction to Web Services!
More informationAspect Design Pattern for Non Functional Requirements
Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,
More informationA B2B Search Engine. Abstract. Motivation. Challenges. Technical Report
Technical Report A B2B Search Engine Abstract In this report, we describe a business-to-business search engine that allows searching for potential customers with highly-specific queries. Currently over
More informationResearch on Construction of Road Network Database Based on Video Retrieval Technology
Research on Construction of Road Network Database Based on Video Retrieval Technology Fengling Wang 1 1 Hezhou University, School of Mathematics and Computer Hezhou Guangxi 542899, China Abstract. Based
More informationPattern-Based Architectural Design Process Model
Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying
More informationSupporting Migration to Services using Software Architecture Reconstruction
Supporting Migration to Services using Software Architecture Reconstruction Liam O Brien 1 Dennis Smith, Grace Lewis Lero-ISERC Software Engineering Institute University of Limerick Carnegie Mellow University
More informationModeling the Evolution of Aspect Configurations using Model Transformations
Modeling the Evolution of Aspect Configurations using Model Transformations Uwe Zdun, Mark Strembeck Institute of Information Systems, New Media Lab Vienna University of Economics, Austria {uwe.zdun mark.strembeck}@wu-wien.ac.at
More informationIntroduction to Object Oriented Analysis and Design
A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,
More informationAn Introduction to PREMIS. Jenn Riley Metadata Librarian IU Digital Library Program
An Introduction to PREMIS Jenn Riley Metadata Librarian IU Digital Library Program Outline Background and context PREMIS data model PREMIS data dictionary Implementing PREMIS Adoption and ongoing developments
More informationA Transformation-Based Model of Evolutionary Architecting for Embedded System Product Lines
A Transformation-Based Model of Evolutionary Architecting for Embedded System Product Lines Jakob Axelsson School of Innovation, Design and Engineering, Mälardalen University, SE-721 23 Västerås, Sweden
More informationSupporting Documentation and Evolution of Crosscutting Concerns in Business Processes
Supporting Documentation and Evolution of Crosscutting Concerns in Business Processes Chiara Di Francescomarino supervised by Paolo Tonella dfmchiara@fbk.eu - Fondazione Bruno Kessler, Trento, Italy Abstract.
More informationCapturing and Formalizing SAF Availability Management Framework Configuration Requirements
Capturing and Formalizing SAF Availability Management Framework Configuration Requirements A. Gherbi, P. Salehi, F. Khendek and A. Hamou-Lhadj Electrical and Computer Engineering, Concordia University,
More informationSoftware Architecture Recovery based on Pattern Matching
Software Architecture Recovery based on Pattern Matching PhD Dissertation Synopsis Kamran Sartipi School of Computer Science, University of Waterloo Waterloo, ON. NL 3G, Canada ksartipi@math.uwaterloo.ca
More informationConceptual Model for a Software Maintenance Environment
Conceptual Model for a Software Environment Miriam. A. M. Capretz Software Engineering Lab School of Computer Science & Engineering University of Aizu Aizu-Wakamatsu City Fukushima, 965-80 Japan phone:
More informationPROJECT PERIODIC REPORT
PROJECT PERIODIC REPORT Grant Agreement number: 257403 Project acronym: CUBIST Project title: Combining and Uniting Business Intelligence and Semantic Technologies Funding Scheme: STREP Date of latest
More informationIntroduction to Software Reuse
DCC / ICEx / UFMG Introduction to Software Reuse Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Software Reuse The use of existing software or software knowledge to build new software In the last
More informationImplementing Trusted Digital Repositories
Implementing Trusted Digital Repositories Reagan W. Moore, Arcot Rajasekar, Richard Marciano San Diego Supercomputer Center 9500 Gilman Drive, La Jolla, CA 92093-0505 {moore, sekar, marciano}@sdsc.edu
More informationQuality-Driven Architecture Design Method
Quality-Driven Architecture Design Method Matinlassi Mari, Niemelä Eila P.O. Box 1100, 90571 Oulu Tel. +358 8 551 2111 Fax +358 8 551 2320 {Mari.Matinlassi, Eila.Niemela}@vtt.fi Abstract: In this paper
More information17. GRASP: Designing Objects with Responsibilities
17. GRASP: Designing Objects with Responsibilities Objectives Learn to apply five of the GRASP principles or patterns for OOD. Dr. Ziad Kobti School of Computer Science University of Windsor Understanding
More informationOverview of lectures today and Wednesday
Model-driven development (MDA), Software Oriented Architecture (SOA) and semantic web (exemplified by WSMO) Draft of presentation John Krogstie Professor, IDI, NTNU Senior Researcher, SINTEF ICT 1 Overview
More informationFrom Design Patterns: Elements of Reusable Object Oriented Software. Read the sections corresponding to patterns covered in the following slides.
From Design Patterns: Elements of Reusable Object Oriented Software Read the sections corresponding to patterns covered in the following slides. DESIGN PRINCIPLES Modularity Cohesion Coupling Separation
More informationHarmonization of usability measurements in ISO9126 software engineering standards
Harmonization of usability measurements in ISO9126 software engineering standards Laila Cheikhi, Alain Abran and Witold Suryn École de Technologie Supérieure, 1100 Notre-Dame Ouest, Montréal, Canada laila.cheikhi.1@ens.etsmtl.ca,
More informationMethodologies for Web Information System Design
Methodologies for Web Information System Design Peter Barna, Flavius Frasincar, Geert-Jan Houben, and Richard Vdovjak Technische Universiteit Eindhoven PO Box 53, NL-5600 MB Eindhoven, The Netherlands
More informationOntology based Model and Procedure Creation for Topic Analysis in Chinese Language
Ontology based Model and Procedure Creation for Topic Analysis in Chinese Language Dong Han and Kilian Stoffel Information Management Institute, University of Neuchâtel Pierre-à-Mazel 7, CH-2000 Neuchâtel,
More information