21 research outputs found

    Visualizing and Measuring Enterprise Application Architecture: An Exploratory Telecom Case

    Get PDF
    We test a method for visualizing and measuring enterprise application architectures. The method was designed and previously used to reveal the hidden internal architectural structure of software applications. The focus of this paper is to test if it can also uncover new facts about the applications and their relationships in an enterprise architecture, i.e., if the method can reveal the hidden external structure between software applications. Our test uses data from a large international telecom company. In total, we analyzed 103 applications and 243 dependencies. Results show that the enterprise application structure can be classified as a core-periphery architecture with a propagation cost of 25%, core size of 34%, and architecture flow through of 64%. These findings suggest that the method could be effective in uncovering the hidden structure of an enterprise application architecture

    An operational process for goal-driven definition of measures

    Full text link

    Measuring modularity in software analysis phase

    Get PDF
    Antud töös uuriti modulaarsusega seotud aspekte süsteemi analüüsifaasis, et avastada struktuurseid vigu võimalikult varakult. Tutvustati modulaarsusega seotud põhimõisteid ja printsiipe ning selgitati, kuidas modulaarsust hinnata. Ehkki ka analüütiku valikuid mõjutavad arhitektuuriotsused ja kasutatav tehnoloogia, saab analüütik süsteemi kirjeldada ja komponentidesse jaotada väga erinevalt, millest aga sõltub ka see, kas modulaarsus on saavutatav. Loogiline ja selge komponentide jaotus ning ilmsed seosed lihtsustavad edaspidist süsteemi arendust ja hooldust. Töö raames arendati välja modulaarsuse mõõtmise raamistik, kasutades eesmärk-küsimus-meetrika lähenemisviisi. Selle käigus konkretiseeriti arvutuslik mudel analüüsifaasis sidestuse, kohesiooni ja komplekssuse arvutamiseks. Mudelit rakendati reaalse projekti peal. Esmalt arendati sõltuvuste visualiseerimiseks välja eraldi programm, mis tagastab analüüsidokumentide põhjal komponentide vaheliste sõltuvuste disaini struktuuri maatriksi. Maatriksi peal rakendati erinevaid meetrikaid analüüsitulemite sidestuse ja komplekssuse mõõtmiseks ning eraldi mõõdeti komponentide suurust. Mõõtmise tulemused võimaldavad analüüsi artefakte modulaarsuse seisukohalt võrrelda, hinnata ning identifitseerida kõrge veariskiga komponendid, mida tuleks modulaarsuse ja parema kvaliteedi saavutamiseks restruktureerida. Analüütik saab mudelit rakendada enne komponentide realiseerimisse suunamist ja nii avastada analüüsivead palju efektiivsemalt.Modularity is a general set of design principles for managing the complexity of large systems. It involves breaking down the system into separate, independent components that communicate with each other through standardized interfaces or rules and specifications. Modularity creates options and makes development and maintenance process much easier to handle. The topic of modularity is more often the focal point when designing the software architectures. However, the aim of this work is to investigate aspects related to modularity in the system analysis phase that precedes and dominates coding. Although the decisions of system analyst are influenced by software architecture and development environment, there are still many choices how to divide the system into components and how the components are connected. If the aspects of modularity are ignored by analysts, those decisions could have cascading negative effect on the system quality while logical and clear structure of components and dependencies will facilitate further development and maintenance process. In this thesis we investigate how modularity can be achieved on a system analysis phase. To assess design modularity quantitatively and objectively, we propose a framework to measure the modularity properties in a software analysis phase. A goal-question-metric approach is used to derive the different metrics in this framework. More specifically, we define measures to quantify coupling, cohesion, complexity and size of components based on the artifacts of system analysis. In order to validate the framework, a case study is conducted. Firstly, dependency analysis tool was developed that represents components dependencies in a dependency structure matrix form. The input of this tool is documentation. Secondly, the matrix is processed according to the coupling and complexity metrics defined before. Size of the component is measured separately. The measurement results can then be used to compare different artifacts of system analysis in terms of their modularity and identify high-risk components that might require redesign. System analyst can apply the method early before coding in order to indicate the possible problem areas of analysis more efficiently

    Property-based Software Engineering Measurement

    Get PDF
    Little theory exists in the field of software system measurement. Concepts such as complexity, coupling, cohesion or even size are very often subject to interpretation and appear to have inconsistent definitions in the literature. As a consequence, there is little guidance provided to the analyst attempting to define proper measures for specific problems. Many controversies in the literature are simply misunderstandings and stem from the fact that some people talk about different measurement concepts under the same label (complexity is the most common case). There is a need to define unambiguously the most important measurement concepts used in the measurement of software products. One way of doing so is to define precisely what mathematical properties characterize these concepts, regardless of the specific software artifacts to which these concepts are applied. Such a mathematical framework could generate a consensus in the software engineering community and provide a means for better communication among researchers, better guidelines for analysts, and better evaluation methods for commercial static analyzers for practitioners. In this paper, we propose a mathematical framework which is generic, because it is not specific to any particular software artifact, and rigorous, because it is based on precise mathematical concepts. This framework defines several important measurement concepts (size, length, complexity, cohesion, coupling). It does not intend to be complete or fully objective; other frameworks could have been proposed and different choices could have been made. However, we believe that the formalisms and properties we introduce are convenient and intuitive. In addition, we have reviewed the literature on this subject and compared it with our work. This framework contributes constructively to a firmer theoretical ground of software measurement. (Also cross-referenced as UMIACS-TR-94-119

    Assessing the Reuse Potential of Objects.

    Get PDF
    In this research, we investigate whether reusable classes can be characterized by object-oriented (OO) software metrics. Three class-level reuse measures for the OO paradigm are defined: inheritance-based reuse, inter-application reuse by extension, and inter-application reuse as a server. Using data from a software company, we collected metrics on Smalltalk classes. Among the 20 metrics collected are cyclomatic complexity, Lorenz complexity, lines of code, class coupling, reuse ratio, specialization ratio and number of direct subclasses. We used stepwise regression to derive prediction models incorporating the 20 metrics as the independent variables and the reuse measures, applied separately, as the dependent variable. Inheritance-based reuse and inter-application reuse by extension can be predicted using a subset of the 20 metrics. Two prediction models for inheritance-based reuse and inter-application reuse by extension were validated using a new set of 310 Smalltalk and VisualAge applications and subapplications. Validation results show that it is possible to predict whether a class from one application can be reused by extension in another application. We also conducted a t-test to test whether the mean metric values between reusable and non-reusable classes are the same. Results suggest that there exists significant differences in the mean metric values between the reusable and non-reusable classes

    Robotin ajurijärjestelmän modularisointi liitännäisarkkitehtuurilla

    Get PDF
    Factory lines are nowadays filled with intelligent systems that can perform various tasks without human interaction. To reach the current level of intelligence and automation, The significance of software in industrial robotics has increased dramatically. That creates new challenges in software design for such environments, which are then tackled with new software platforms and frameworks. This thesis takes an existing test automation platform and designs a new architecture based on plugins for it. The platform is used in functional testing of smartphones. The redesign aims to increase the modularity of the architecture, and thus allow for a more flexible deployment of the system in various hardware configurations. To verify the successfulness of the new architecture, a modularity analysis is performed for both the old and the new architectures. The analysis focuses on cohesion and coupling of the classes and modules in the systems. Both the old and the new platforms are implemented in Python, so the research process will evaluate the feasibility of manual modularity analysis for a dynamically typed programming language, as these kind of analyses are usually performed on a statically typed languages utilizing static analysis tools. The new architecture was shown to increase the cohesion, and decrease the coupling of the platform, which indicates an increase in the overall modularity of the platform. The analysis itself was found to be tedious, and the dynamic nature of Python increases the chance of errors in determining the coupling and cohesion of a component. A possibility of modifying a refactoring tool to aid in a such analysis was discussed.Tehdaslinjastot koostuvat nykyään älykkäistä järjestelmistä, jotka kykenevät toimimaan ilman ihmisen ohjausta. Merkittävä tekijä tämän muutoksen takana on ohjelmistojen kehittyminen, ja niiden merkityksen kasvu teollisuudessa. Tämä luo ohjelmistosuunnitteluun uusia haasteita, joita on ratkottu uusilla sovellusalustoilla ja -kehyksillä. Tässä tutkielmassa toteutetaan uusi ohjelmistoarkkitehtuuri testiautomaatiorobotille käyttäen liitännäisarkkitehtuuria. Tavoitteena on kasvattaa alustan modulaarisuutta, mikä mahdollistaa sen joustavan käytön erilaisissa järjestelmissä, jotka koostuvat erilaisista roboteista, antureista ja sensoreista. Uuden toteutuksen soveltuvuuden varmistamiseksi tässä tutkielmassa suoritetaan modulaarisuusanalyysi molemmille järjestelmille. Analyysissä perehdytään järjestelmien luokkien ja moduulien yhteenkuuluvuuteen (eng. cohesion) sekä riippuvuuksiin (eng. coupling). Järjestelmä toteutetaan Python-kielellä, joten tutkimuksessa selvitetään modulaarisuusanalyysin soveltuvuutta dynaamisesti tyypitetylle ohjelmointikielelle. Tutkimuksessa todettiin luokkien yhteenkuuluvuuden kasvaneen ja moduulien riippuvuuksien vähentyneen, mikä kertoo järjestelmän modulaarisuuden kasvusta. Analyysi itsessään todettiin työlääksi, ja sen huomattiin kasvattavan tulosten virhettä, koska moduulien väliset vuorovaikuttamiset eivät välttämättä olleet yksikäsitteisiä. Tutkimuksessa pohdittiin mahdollisuudesta muokata olemassa olevia refaktorointityökaluja siten, että niitä voisi hyödyntää tämänkaltaisen analyysin tekemisessä

    Construção de uma ferramenta flexível de base histórica de medição

    Get PDF
    Trabalho de Conclusão de Curso (graduação)—Universidade de Brasília, Faculdade UnB Gama, 2018.A medição é uma área importante na engenharia de software, uma vez que ela permite que as organizações consigam fazer estimativas confiáveis sobre prazo, custo e qualidade. Desenvolver um processo de medição bem definido, baseado nos objetivos de negócio, fornece uma fonte de informação confiável para tomada de decisões nos projetos. Problemas relacionados à criação e à manutenção de uma base histórica de medição são recorrentes nas organizações que trabalham com desenvolvimento de software, uma vez que não existem muitas ferramentas que mantém a base histórica das métricas e que existe falta de flexibilidade na criação e edição das métricas na maioria das ferramentas medição disponíveis. Diante deste problema, este trabalho tem como objetivo desenvolver uma ferramenta de base história de medição flexível. A metodologia de pesquisa utilizada foi a revisão sistemática de literatura. Além disso, a metodologia de desenvolvimento foi uma versão simplificada do Scrum. Os resultados da revisão sistemática apresentam as ferramentas de métricas listadas na literatura, quais são as suas funcionalidades, suas vantagens e também desvantagens. Foi obtido também, as principais métricas utilizadas por essas ferramentas. A ferramenta desenvolvida trabalhou boas práticas de programação, buscou utilizar das forças que as ferramentas estudadas mostraram e preencheu as lacunas que essas ferramentas apresentam. Além disso, a ferramenta foi validada por iterações de Interação Humano Computador e em ambiente real de desenvolvimento de software. Os resultados dessa validação foram aplicados em melhorias para o sistema. Assim, o objetivo do estudo foi atingido, uma vez que a ferramenta de base histórica de medições foi construída e validada utilizando boas técnicas de desenvolvimento de software.Measurement is an important area in software engineering once it enables organizations to do reliable estimates of time, cost, and quality. Developing a well-defined measurement process, based on business objectives, provides a reliable source of information for project decision-making. Problems related to the creation and maintenance of a historical measurement base are recurrent in organizations that work with software development since there are few tools that maintain the historical base of the metrics and that there is a lack of flexibility in the creation and edition of the metrics in the majority measuring tools available. Faced with this problem, this work aims to develop a flexible measurement historical base tool. The research methodology used was the systematic review of the literature. In addition, the development methodology was a simplified version of Scrum. The results of the systematic review present metrics tools listed in the literature, what are their functionalities, their advantages and also disadvantages. The main metrics used by these tools were also obtained. The tool developed used good programming practices, sought to use the forces that the tools studied showed and filled the gaps that these tools present. In addition, the tool was validated by Human Computer Interaction iterations and in real software development environment. The results of this validation were applied in improvements to the system. Thus, the objective of the study was reached, since the measurement historical base tool was constructed and validated using good software development techniques

    Software Engineering Laboratory Series: Collected Software Engineering Papers

    Get PDF
    The Software Engineering Laboratory (SEL) is an organization sponsored by NASA/GSFC and created to investigate the effectiveness of software engineering technologies when applied to the development of application software. The activities, findings, and recommendations of the SEL are recorded in the Software Engineering Laboratory Series, a continuing series of reports that includes this document

    Enterprise Information Architecture for the dissemination of Geothermal Data

    Get PDF
    English: This thesis enables an information system for the dissemination of Geothermal Data by using Enterprise Integration Patterns in an Event Driven Service Oriented Architecture and gives details about the architecture, design and implementation of the system, the technologies and concepts used
    corecore