2 research outputs found

    Software Patterns and Architecture Under Examination Hammer: An Approach to the Consolidation of Interdisciplinary Knowledge

    Get PDF
    Software engineering is normally perceived, and even defined, based upon applicability of scientific and technical knowledge, in order to provide solutions to different challenges. The bright side of engineering concepts in general, is the continuous process of acquiring knowledge and skills needed to develop and make adjustments to various systems, in respect to helping humankind. An important phase of this process is ”Architecting”, which is the big picture of any intended systems. While good architecture leads to successful systems, bad architecture can result in misfortune. In this thesis, my proposition is to investigate, in depth, both theoretical (academic) and industry domains, regarding the way in which they treat Software Pattern (SP), Software Architecture (SA), and Software Architecture Evaluation (SAE) techniques. I argue that the process of creating, evaluating, and documenting SPs and SA with no common guidelines, standards, and frameworks, will result in unused and conflicted information within their areas, which finally will impact the software engineering field. While the employment of interdisciplinary knowledge (such as SPs, modelling techniques, description languages, evaluation methods, standards, and frameworks), could elevate SA development and validation methodologies, and increase its utilisation within the software engineering community. The goal here is to help build better systems, which could be improved by developing suitable SA, and evaluate its qualities by proper methods and tools, before further development, which should save time as well as money. Therefore, after a long process of analysing the current-state-of-the-art, I have introduced in this thesis novel findings concerning descriptions, relationships, documentation, and utilisation in relation to SA, SAE, and SPs, through employing several investigatory techniques, including comparisons between reliable references, questionnaires, field study, and case study. The investigation of SPs resulted in creating a database as a partial solution, in order to minimise their confusion within the literature, concerning their definitions, categorisations, and relationships with different quality attributes Quality Attribute (QA)s; also, to introduce the information in a proper fashion for users, which includes the required data that supports comparisons between pattern references, and to facilitate their selection processes. The issues, gaps, limitations, inconsistencies, and conflicts within current SA, QAs, and SPs discovered by this study, such as their poor description and the ignorance of them by developers during software development, has led to important recommendations, as well as suggestions for future research. The required information from different sectors (government, academia and industry) regarding SPs, SA, SAE, and modelling languages, has been gathered, and analysed through two surveys and a field study. The strong relationships and influences between the aforementioned areas were introduced and proven by a case study analysis for the Real-time Control System Real-time Control System (RCS) reference architecture, followed by introducing a conceptual paradigm that aimed to improve and generalise the Moreno et al. [2008] performance model. The outcomes from this thesis provide the basis for future work. Also, the information from different interdisciplinary knowledge merged to form new concepts for SA evaluation, which are recommended for future study

    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
    corecore