397 research outputs found

    Software Evolution for Industrial Automation Systems. Literature Overview

    Get PDF

    A Methodology for Operationalizing Enterprise Architecture and Evaluating Enterprise IT Flexibility

    Get PDF
    We propose a network-based methodology for analyzing a firm’s enterprise architecture. Our methodology uses “Design Structure Matrices” (DSMs) to capture the coupling between components in the architecture, including both business and technology-related elements. It addresses the limitations of prior work, in that it i) is based upon the actual architecture “in-use” as opposed to planned or “idealized” versions; ii) identifies discrete layers in a firm’s architecture associated with different technologies (e.g., applications, servers and databases); iii) reveals the main “flow of control” within an architecture (i.e., the set of inter-connected components); and iv) generates measures of architecture that can be used to predict performance. We demonstrate the application of our methodology using a novel dataset developed with the division of a large pharmaceutical firm. The dataset consists of all components in the enterprise architecture, the observed dependencies between them, and estimated costs of change for software applications within this architecture. We show that measures of the architecture derived from a DSM predict the cost of change for software applications. In particular, applications that are tightly coupled to other components in the architecture cost more to change. The analysis also shows that the measure of coupling that best predicts the cost of change is one that captures all direct and indirect connections between components (i.e., it captures the potential for changes to propagate via all possible paths between components). Our work represents an important step in making the concept of enterprise architecture more operational, thereby improving a firm’s ability to understand and improve its architecture over time

    A Multi-Agent Architecture for An Intelligent Web-Based Educational System

    Get PDF
    An intelligent educational system must constitute an adaptive system built on multi-agent system architecture. The multi-agent architecture component provides self-organization, self-direction, and other control functionalities that are crucially important for an educational system. On the other hand, the adaptiveness of the system is necessary to provide customization, diversification, and interactional functionalities. Therefore, an educational system architecture that integrates multi-agent functionality [50] with adaptiveness can offer the learner the required independent learning experience. An educational system architecture is a complex structure with an intricate hierarchal organization where the functional components of the system undergo sophisticated and unpredictable internal interactions to perform its function. Hence, the system architecture must constitute adaptive and autonomous agents differentiated according to their functions, called multi-agent systems (MASs). The research paper proposes an adaptive hierarchal multi-agent educational system (AHMAES) [51] as an alternative to the traditional education delivery method. The document explains the various architectural characteristics of an adaptive multi-agent educational system and critically analyzes the system’s factors for software quality attributes

    Tradespace and Affordability – Phase 2

    Get PDF
    MOTIVATION AND CONTEXT: One of the key elements of the SERC’s research strategy is transforming the practice of systems engineering – “SE Transformation.” The Grand Challenge goal for SE Transformation is to transform the DoD community’s current systems engineering and management methods, processes, and tools (MPTs) and practices away from sequential, single stovepipe system, hardware-first, outside-in, document-driven, point-solution, acquisition-oriented approaches; and toward concurrent, portfolio and enterprise-oriented, hardware-software-human engineered, balanced outside-in and inside-out, model-driven, set-based, full life cycle approaches.This material is based upon work supported, in whole or in part, by the U.S. Department of Defense through the Office of the Assistant Secretary of Defense for Research and Engineering (ASD(R&E)) under Contract H98230-08- D-0171 (Task Order 0031, RT 046).This material is based upon work supported, in whole or in part, by the U.S. Department of Defense through the Office of the Assistant Secretary of Defense for Research and Engineering (ASD(R&E)) under Contract H98230-08- D-0171 (Task Order 0031, RT 046)

    An Adaptive Design Methodology for Reduction of Product Development Risk

    Full text link
    Embedded systems interaction with environment inherently complicates understanding of requirements and their correct implementation. However, product uncertainty is highest during early stages of development. Design verification is an essential step in the development of any system, especially for Embedded System. This paper introduces a novel adaptive design methodology, which incorporates step-wise prototyping and verification. With each adaptive step product-realization level is enhanced while decreasing the level of product uncertainty, thereby reducing the overall costs. The back-bone of this frame-work is the development of Domain Specific Operational (DOP) Model and the associated Verification Instrumentation for Test and Evaluation, developed based on the DOP model. Together they generate functionally valid test-sequence for carrying out prototype evaluation. With the help of a case study 'Multimode Detection Subsystem' the application of this method is sketched. The design methodologies can be compared by defining and computing a generic performance criterion like Average design-cycle Risk. For the case study, by computing Average design-cycle Risk, it is shown that the adaptive method reduces the product development risk for a small increase in the total design cycle time.Comment: 21 pages, 9 figure

    Early aspects: aspect-oriented requirements engineering and architecture design

    Get PDF
    This paper reports on the third Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Workshop, which has been held in Lancaster, UK, on March 21, 2004. The workshop included a presentation session and working sessions in which the particular topics on early aspects were discussed. The primary goal of the workshop was to focus on challenges to defining methodical software development processes for aspects from early on in the software life cycle and explore the potential of proposed methods and techniques to scale up to industrial applications

    Adaptable software reuse:binding time aware modelling language to support variations of feature binding time in software product line engineering

    Get PDF
    Software product line engineering (SPLE) is a paradigm for developing a family of software products from the same reusable assets rather than developing individual products from scratch. In many SPLE approaches, a feature is often used as the key abstraction to distinguish between the members of the product family. Thus, the sets of products in the product line are said to have ’common’ features and differ in ’variable’ features. Consequently, reusable assets are developed with variation points where variant features may be bound for each of the diverse products. Emerging deployment environments and market segments have been fuelling demands for adaptable reusable assets to support additional variations that may be required to increase the usage-context of the products of a product line. Similarly, feature binding time - when a feature is included in a product and made available for use - may vary between the products because of uncertain market conditions or diverse deployment environments. Hence, variations of feature binding time should also be supported to cover the wide-range of usage-contexts. Through the execution of action research, this thesis has established the following: Language-based implementation techniques, that are specifically proposed to implement variations in the form of features, have better modularity but are not better than the existing classical technique in terms of modifiability and do not support variations in feature binding time. Similarly, through a systematic literature review, this thesis has established the following: The different engineering approaches that are proposed to support variations of feature binding time are limited in one of the following ways: a feature may have to be represented/implemented multiple time, each for a specific binding time; The support is only to execution context and therefore limited in scope; The support focuses on too fine-grained model elements or too low-level of abstraction at source-codes. Given the limitations of the existing approaches, this thesis presents binding time aware modelling language that supports variations of feature binding time by design and improves the modifiability of reusable assets of a product line

    Empirically characterizing evolvability and changeability in engineering systems

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Aeronautics and Astronautics, 2012."June 2012." Cataloged from PDF version of thesis.Includes bibliographical references (p. 205-212).The beginning phases of system development and conceptual design require careful consideration, as these decisions will have significant influence on system lifetime performance and are often made with incomplete system knowledge. Decision makers may improve their capacity to discriminate between system concepts and design choices by measuring a system's "ilities" such as changeability, evolvability, and survivability. These ilities may enable systems to respond to perturbations in the design space, context space, and needs space in order to ensure system functionality and adequate performance over time. A system may be designed to change in response to perturbations, or remain statically robust/survivable to perturbations in order to avoid deficiencies or failures. This research attempts to analyze the mechanisms that allow system changes to occur. More specifically, this research will further the characterization of system changeability and evolvability and ultimately provide a structured and meaningful way of classifying system characteristics often described as "ilities". Value sustainment is proposed as an ultimate goal of systems, providing value in spite of perturbations in design, context, or needs. The premise of value sustainment is investigated through four distinct research thrusts: 1) a basis for defining system changes and ilities; 2) a system change examples database with categorical cluster analysis case research; 3) epoch-shift, impact, response, outcome case research; and 4) expert interviews case research. Focusing on change-related ilities, this research proposes constructs for identifying and enabling vague, yet desirable, system properties. Evolvability is characterized as a subset of changeability and defined as the ability of an architecture to be inherited and changed across generations [over time], with a set of ten proposed design principles including decentralization, redundancy, targeted modularity, scalability, integrability, reconfigurability, mimicry, leverage ancestry, disruptive architectural overhaul, and resourceful exaptation.by Jay Clark Beesemyer, Jr.S.M

    Technical Debt in Software Development : Examining Premises and Overcoming Implementation for EïŹƒcient Management

    Get PDF
    Software development is a unique ïŹeld of engineering: all software constructs retain their modiïŹability — arguably, at least — until client release, no single project stakeholder has exhaustive knowledge about the project, and even this portion of the knowledge is generally acquired only at project completion. These characteristics imply that the ïŹeld of software development is subject to design decisions that are known to be sub-optimal—either deliberately emphasizing interests of particular stakeholders or indeliberately harming the project due to lack of exhaustive knowledge. Technical debt is a concept that accounts for these decisions and their eïŹ€ects. The concept’s intention is to capture, track, and manage the decisions and their products: the aïŹ€ected software constructs. Reviewing the previous, it is vital for software development projects to acknowledge technical debt both as an enabler and as a hindrance. This thesis looks into facilitating eïŹƒcient technical debt management for varying software development projects. In the thesis, examination of technical debt’s role in software development produces the premises on to which a management implementation approach is introduced. The thesis begins with a revision of motivations. Basing on prior research in the ïŹelds of technical debt management and software engineering in general, the ïŹve motivations establish the premises for technical debt in software development. These include notions of subjectivity in technical debt estimation, update frequency demands posed on technical debt information, and technical debt’s polymorphism. Three research questions are derived from the motivations. They ask for tooling support for technical debt management, capturing and modelling technical debt propagation, and characterizing software development environments and their technical debt instances. The questions imply consecutive completion as the ïŹrst pursued tool would beneïŹt from—possibly automatically assessable—propagation models, and ïŹnally the tool’s introduction to software development organizations could be assisted by tailoring it based on the software development environment and the technical debt instance characterizations. The thesis has seven included publications. In introducing them, the thesis maps their backgrounds to the motivations and their outcomes to the research questions. Amongst the outcomes are the DebtFlag tool for technical debt management, the procedures for retrospectively capturing technical debt from software repositories, a procedure for technical debt propagation model creation from these retrospectives, and a multi-national survey characterizing software development environments and their technical debt instances. The thesis concludes that the tooling support, the technical debt propagation modelling, and the software environment and technical debt instance characterization describe an implementation approach to further eïŹƒcient technical debt management. Simultaneously, future work is implied as all previously described eïŹ€orts need to be continued and extended. Challenges also remain in the introduced approach. An example of this is the combinatorial explosion of technology-development-context-combinations that technical debt propagation modelling needs to consider. All combinations have to be managed if exhaustive modelling is desired. There is, however, a great deal of motivation to pursue these eïŹ€orts when one re-notes that technical debt is a permanent component of software development that, when correctly managed, is a development eïŹƒciency mechanism comparable to a ïŹnancial loan investment.Ohjelmistokehitys on uniikki tekniikan ala: kaikki ohjelmistorakenteet sĂ€ilyttĂ€vĂ€t muokattavuutensa — otaksuttavasti ainakin — asiakasjulkaisuun asti. YhdenkÀÀn projektiosakkaan tietĂ€mys ei kata koko projektia ja merkittĂ€vĂ€ osa tĂ€stĂ€kin tiedosta karttuu vasta projektin suorittamisen aikana. NĂ€mĂ€ ominaisuudet antavat ymmĂ€rtÀÀ, ettĂ€ ohjelmistokehitysala on sellaisten suunnitelupÀÀtösten kohde, joiden tiedetÀÀn olevan epĂ€tĂ€ydellisiÀ—joko tarkoituksella tiettyjen projektiosakkaiden intressejĂ€ painottavia tai tahattomasti projektia vahingoittavia puutteelliseen tietoon perustuvia. Tekninen velka on konsepti, joka huomioi nĂ€mĂ€ pÀÀtökset sekĂ€ niiden vaikutukset. Konseptin tarkoitus on havaita, seurata ja hallita nĂ€itĂ€ pÀÀtöksiĂ€ sekĂ€ tuloksena syntyviĂ€ teknisen velan vaikutuksen alla olevia ohjelmistorakenteita. Edellisen kuvauksen valossa ohjelmistokehitysprojekteille on erityisen tĂ€rkeÀÀ huomioida tekninen velka sekĂ€ mahdollistajana ettĂ€ hidasteena. TĂ€mĂ€n vuoksi kyseinen vĂ€itöskirja perehtyy tehokkaan teknisen velan hallinnan fasilitointiin moninaisille ohjelmistokehitysprojekteille. VĂ€itöskirjassa tarkastellaan teknisen velan roolia osana ohjelmistokehitystĂ€. Tarkastelu tuottaa joukon premissejĂ€, joihin perustuen esitellÀÀn lĂ€hestymistapa teknisen velan hallinnan toteuttamiselle. Viisi vĂ€itöskirjan alussa esitettyĂ€ motivaatiota kiinnittĂ€vĂ€t ne premissit,joille ratkaisu esitetÀÀn. Motivaatiot rakennetaan olemassa olevaan teknisen velan sekĂ€ ohjelmistotekniikan tutkimustietoon perustuen. NĂ€ihin lukeutuvat muun muassa subjektiivisuus teknisen velan estimoinnissa, teknisen velan informaatiolle nĂ€hdyt pĂ€ivitystaajuusvaatimukset sekĂ€ teknisen velan polymorïŹsmi. Havainnoista johdetaan kolme tutkimuskysymystĂ€. Ne tavoittelevat työkalutukea teknisen velan hallinnalle, velan propagoitumisen havainnointia sekĂ€ mallinnusta kuin myös ohjelmistotuotantoympĂ€ristöjen ja niiden velka instanssien kuvaamista. Tutkimuskysymykset implikoivat perĂ€kkĂ€istĂ€ suoritusta: tavoiteltu työkalu hyötyy—mahdollisesti automaattisesti arvoitavista—teknisen velan propagaatiomalleista. Valmiin työkalun kĂ€yttöönottoa voidaan taas edistÀÀ jos kuvaukset kehitysympĂ€ristöistĂ€ sekĂ€ niiden velkainstansseista ovat kĂ€ytettĂ€vissĂ€ työkalun rÀÀtĂ€löintiin. VĂ€itöskirjaaan sisĂ€ltyy seitsemĂ€n julkaisua. VĂ€itöskirja esittelee ne kiinnittĂ€mĂ€llĂ€ julkaisujen taustatyön aikaisemmin mainittuihin motivaatioihin sekĂ€ niiden tulokset edellisiin tutkimuskysymyksiin. Tuloksista huomioidaan esimerkiksi DebtFlag-työkalu teknisen velan hallintaan, retrospektiivinen prosessi teknisen velan kartoittamiselle versionhallintajĂ€rjestelmistĂ€, prosessi teknisen velan mallien rakentamiselle nĂ€istĂ€ kartoituksista ja monikansallinen kyselytutkimus ohjelmistokehitysympĂ€ristöjen sekĂ€ nĂ€iden teknisen velan instanssien luonnehtimiseksi. VĂ€itöskirjan yhteenvetona huomioidaan, ettĂ€ teknisen velan hallinnan työkalutuki, teknisen velan propagaatiomallinnus ja ohjelmistokehitysympĂ€ristöjen sekĂ€ niiden teknisen velan instanssien luonnehdinta muodostavat toteutustavan, jolla teknisen velan tehokasta hallintaa voidaan kehittÀÀ. Samalla implikoidaan jatkotoimia, sillĂ€ kaikkia edellĂ€ kuvattuja työn osia tulee jatkaa ja laajentaa. Toteutustavalle nĂ€hdÀÀn myös haasteita. ErĂ€s nĂ€istĂ€ on kombinatorinen rĂ€jĂ€hdys teknologia- ja kehityskontekstikombinaatioille. Kaikki kombinaatiot tulee huomioida mikĂ€li teknisen velan propagaatiomallinnuksesta halutaan kattavaa. Motivaatio vĂ€itöskirjassa esitetyn työn jatkamiselle on huomattavaa ja sitĂ€ kasvattaa entuudestaan edellĂ€ tehty huomio siitĂ€, ettĂ€ tekninen velka on pysyvĂ€ komponentti ohjelmistokehityksessĂ€, joka oikein hallittuna on kehitystehokkuutta edistĂ€vĂ€nĂ€ komponenttina verrattavissa ïŹnanssialan lainainvestointiin.Siirretty Doriast

    Applying Genetic Algorithms for Software Design and Project Planning

    Get PDF
    Today's software systems are growing in size and complexity. This means not only increased complexity in developing software systems, but also increase in the budget and completion time. This trend will lead to a situation where traditional manual software engineering practices are not sufficient to develop and evolve software systems in an economic and timely manner. Automated support can aid software engineers in reducing the time-to-market and improving the quality of the software. This thesis work explores the application of genetic algorithms for automated software architecture design and project planning.Software architecture design and project planning are non-trivial and challenging tasks. This thesis applies genetic algorithms to introduce automation into these tasks. The proposed genetic algorithm exploits reusable solutions, such as design patterns, architecture styles and application specific solutions for transforming a given initial rudimentary model into detailed design. The architectures are evaluated using multiple quality attributes, such as modifiability, efficiency and complexity. The fitness function encompasses the knowledge required for evaluating the architectures according to multiple quality attributes. The output from the genetic algorithm is an architecture proposal optimized with respect to multiple quality attributes.A genetic algorithm has also been devised for assigning work across teams located in distributed sites. The genetic algorithm takes information about the target system and the development organization as input and produces a set of work distribution and schedule plans optimized with respect to cost and duration objectives. The fitness function considers the differences in teams and barriers created by global dispersion into account in evaluating the work assignment. In addition, the genetic algorithm also takes solutions that ease or hamper distributed development into account in allocating the work. The genetic algorithm has been further extended with Pareto optimality to find a set of suitable work distribution proposals in a tradeoff between project cost and duration. In the experiments, an electronic home control system was developed by a set of different organizations structures. The results demonstrate that the proposed genetic algorithm can create reasonable work distribution proposals that conform to the general assumptions about the nature of cost and project completion time, i.e., cost of the project can be reduced at the expense of project completion time and vice-versa.In addition, variations have been made to the genetic algorithm approach to software architecture design. To accelerate the genetic algorithm towards multi-objective solutions, a quality farms approach has been developed. The approach uses the idea of cross breeding, where different individuals that are good with respect to one quality objective are combined for producing software architecture proposals that are good in multiple objectives. Also, to explore the suitability of other methods for software architecture synthesis, a constraint satisfaction approach has been developed. The approach models the software architecture design problem as a constraint satisfaction and optimization problem and solves it using constraint satisfaction techniques. This approach can provide rationale about why certain decisions are chosen in the proposed architecture proposals.Tool support for genetic algorithm-based architecture design and work planning approaches has been proposed. It facilitates an end user to give input, view and analyze the results of the developed genetic algorithm based approaches. The tool also provides support for semi-automated architecture design, where a human architect can guide the genetic algorithm towards optimal solutions. An empirical study has also been performed. It suggests that the quality of the proposals produced through semiautomated architecture design is roughly at the level of senior software engineering students. Furthermore, the project manager can interact with the tool and perform whatif analysis for choosing the suitable work distribution for the project at hand
    • 

    corecore