121 |
INTRODUCING ASPECTS INTO SOFTWARE ARCHITECTURES BY GRAPH TRANSFORMATIONHossain, Md Nour 11 1900 (has links)
While aspect-oriented programming (AOP) addresses the introduction of “aspects” at the code level, we argue that addressing this at the level of software architecture is conceptually and methodologically more adequate, since many aspects, that is, “crosscutting concerns”, are formulated already in the requirements, and therefore can be dealt with in a more controlled manner in the “earlier” phase of software architecture design.
We use the precise concept of software architectures organised as diagrams over a category of component specifications, where the architecture semantics are defined as a colimit specification (Fiadeiro and Maibaum, 1992). The diagram structure suggests aspect introduction via an appropriate variant of graph transformation. Singlepushout rewriting in categories of total homomorphisms has already been used previously for different kinds of “enrichment” transformations; we identify “zigzag-path homomorphisms” as producing a category where many practically useful aspect introductions turn out to be such single-pushout transformations, and present the relevant theorems concerning pushout existence and pushout construction.
Practical aspect introduction (e.g., privacy) always breaks some properties (e.g., “message can be read in transit”); therefore, aspect introduction transformations cannot be designed to be semantics preserving. Our special categorical setting enables selective reasoning about property preservation in the transformed specifications, and property introduction from the introduced aspects. This method enables us to detect and resolve both conflicts and undesirable emergent behaviors that arise from aspect introduction or interaction.
We have developed tool support to introduce and analyze aspects at the system architecture level through zigzag graph transformation. The implementation is based on Hets, an initiative of Mossakowski et al. (2007) and consists of two key parts: the language development and the zigzag transformation. The development of the MFLogic language is based on the specification language Casl (Astesiano et al., 2002) and uses the logic introduced by Fiadeiro and Maibaum (1992). Besides parsing, syntactic and static semantics correctness checking, the language inclusion in Hets opens the door for automatic property preservation analysis and conflict detection. The main contribution of the tool support in Hets is the automatic aspect introduction and the “result architecture” generation by applying our zigzag graph transformation. / Thesis / Doctor of Philosophy (PhD)
|
122 |
A procedural approach to the evaluation of software development methodologiesDandekar, Ashok V. January 1987 (has links)
This thesis presents a procedural approach to evaluating software development methodologies. The evaluation procedure adopts a unique approach based on the fundamental assumption that the requirements govern the process by which software is constructed. To begin with, this research partitions desirable software characteristics into three categories, viz., objectives, principles and attributes. The thesis claims (claims are substantiated with literature references) that there exist definitive relationships (or linkages) among the software objectives, principles and attributes. These linkages form the foundation of the evaluation procedure. The procedure constitutes two processes, top-down process and bottom-up process. These processes are used to assess the software product and the employed software development methodology. The top-down process begins by identifying the objectives and travels down through principles and product attributes; thus, evaluating the adequacy of the methodology. The bottom-up process, on the other hand, starts at the attribute level and goes up through principles and objectives. The bottom-up process highlights the effectiveness of the methodology. Attributes are identified in the product via properties. This research establishes several properties (called factors in the report) for each attribute. A measurement approach is also presented to help assess the extent to which attributes are present. The feasibility and validity of the evaluation procedure are illustrated through the analysis of two real life methodologies. / M.S.
|
123 |
Método para manutenção de sistema de software utilizando técnicas arquiteturais. / Method for software system maintenance using architectural techniques.Guimarães, Júlio Henrique dos Nogueira e Oliveira 24 September 2008 (has links)
Diversos negócios hoje são suportados por sistemas de software. Acredita-se que o uso de Arquitetura de Software é fundamental para atingir alcançar as metas de negócio e qualidade. Visto que o conjunto de requisitos que levou à construção de uma determinada arquitetura pode mudar, tal arquitetura pode tornar-se inadequada. Em diversas situações é preciso conviver com os sistemas existentes, portanto é preciso alterá-los para as novas necessidades. Manutenção de sistemas usando técnicas de evolução arquiteturais tem se mostrado um eficaz caminho para alterar um sistema à nova situação. O objetivo deste trabalho é apresentar um método para manutenção de sistemas de software usando técnicas arquiteturais de forma a convergir mais rapidamente à adequação da arquitetura destes sistemas. Algumas técnicas do método incluem avaliação de arquitetura de software, levantamento de riscos, provas de conceito construtivas e destrutivas e métricas estáticas e dinâmicas de software. O método proposto foi aplicado em contextos de laboratório e da indústria, permitindo a verificação de pontos fortes e críticos para realizar seu refinamento e tais aplicações são também relatadas neste trabalho. Embora as aplicações do método proposto tenham sido diferentes, tanto no objetivo principal quanto no desenrolar das atividades, seus resultados foram considerados bastante satisfatórios, tanto no contexto de ensino quanto no contexto de indústria. / Several business today are supported by software systems. It is believed that the use of software architecture is fundamental to achieve the business goals and quality. Since the set of requirements that led to the construction of a given architecture may change, such an architecture may become inadequate. In many situations we must live with existing systems, so we must change them to meet the new needs. Systems maintenance using architectural evolution techniques has proven to be an effective path to take a system to the new situation. This works goal is to provide a method for maintenance of software systems using architectural techniques in order to converge more rapidly to match the architecture of these systems. Some techniques used in the method include software architecture evaluation, risks survey, constructive and destructive proofs of concept, static and dynamic software metrics. The proposed method was applied in contexts of laboratory and industry, allowing the verification of strengths and critical points to guide its refinement and such applications are also reported in this work. Although the applications of the proposed method has been different in both the main goal and the conduct of activities, their results were considered very satisfactory, both in the education and the industry context.
|
124 |
Método para manutenção de sistema de software utilizando técnicas arquiteturais. / Method for software system maintenance using architectural techniques.Júlio Henrique dos Nogueira e Oliveira Guimarães 24 September 2008 (has links)
Diversos negócios hoje são suportados por sistemas de software. Acredita-se que o uso de Arquitetura de Software é fundamental para atingir alcançar as metas de negócio e qualidade. Visto que o conjunto de requisitos que levou à construção de uma determinada arquitetura pode mudar, tal arquitetura pode tornar-se inadequada. Em diversas situações é preciso conviver com os sistemas existentes, portanto é preciso alterá-los para as novas necessidades. Manutenção de sistemas usando técnicas de evolução arquiteturais tem se mostrado um eficaz caminho para alterar um sistema à nova situação. O objetivo deste trabalho é apresentar um método para manutenção de sistemas de software usando técnicas arquiteturais de forma a convergir mais rapidamente à adequação da arquitetura destes sistemas. Algumas técnicas do método incluem avaliação de arquitetura de software, levantamento de riscos, provas de conceito construtivas e destrutivas e métricas estáticas e dinâmicas de software. O método proposto foi aplicado em contextos de laboratório e da indústria, permitindo a verificação de pontos fortes e críticos para realizar seu refinamento e tais aplicações são também relatadas neste trabalho. Embora as aplicações do método proposto tenham sido diferentes, tanto no objetivo principal quanto no desenrolar das atividades, seus resultados foram considerados bastante satisfatórios, tanto no contexto de ensino quanto no contexto de indústria. / Several business today are supported by software systems. It is believed that the use of software architecture is fundamental to achieve the business goals and quality. Since the set of requirements that led to the construction of a given architecture may change, such an architecture may become inadequate. In many situations we must live with existing systems, so we must change them to meet the new needs. Systems maintenance using architectural evolution techniques has proven to be an effective path to take a system to the new situation. This works goal is to provide a method for maintenance of software systems using architectural techniques in order to converge more rapidly to match the architecture of these systems. Some techniques used in the method include software architecture evaluation, risks survey, constructive and destructive proofs of concept, static and dynamic software metrics. The proposed method was applied in contexts of laboratory and industry, allowing the verification of strengths and critical points to guide its refinement and such applications are also reported in this work. Although the applications of the proposed method has been different in both the main goal and the conduct of activities, their results were considered very satisfactory, both in the education and the industry context.
|
125 |
Re-engineering the solicitation management systemFan, Yao-Long 01 January 2006 (has links)
The scope of this project includes a re-engineering of the internal architecture of the Solicitation Management System (SMS), a web-based application that facilitates the running of grant proposal solicitations for the Office of Technology Transfer and Commercialization at California State University San Bernardino (CSUSB). A goal of the project is to increase consistency and efficiency of the code base of the system, making it easier to understand, maintain, and extend. The previous version of SMS was written to rely on the Spring and Hibernate frameworks. The project includes a restructuring of the system to remove reliance on the Spring framework, but maintain reliance on Hibernate. The result is an updated version of the SMS. The system was written using current technologies such as Java, JSP, and CSS.
|
126 |
Mapping Java Source Code To Architectural Concerns Through Machine LearningFlorean, Alexander, Jalal, Laoa January 2021 (has links)
The explosive growth of software systems with both size and complexity results in the recognised need of techniques to combat architectural degradation. Reflexion Modelling is a method commonly used for Software Architectural Consistency Checking (SACC). However, the steps needed to utilise the method involve manual mapping, which could become tedious depending on the system's size. Recently, machine learning has been showing promising results outperforming other approaches. However, neither a comparison of different classifiers nor a comprehensive investigation of how to best pre-process source code has yet been performed. This thesis compares different classifier and their performance to the manual effort needed to train them and how different pre-processing settings affect their accuracy. The study can be divided into two areas: pre-processing and how large the manual mapping should be to achieve satisfactory performance. Across the three software systems used in this study, the overall best performing model, MaxEnt, achieved the following average results, accuracy 0.88, weighted precision 0.89 and weighted recall 0.88. SVM performed almost identically to MaxEnt. Furthermore, the results show that Naive-Bayes, the algorithm in recent related work approaches, performs worse than SVM and MaxEnt. The results yielded that the pre-processing that extracts packages and libraries, together with the feature representation method Bag-of-Words had the best performance. Furthermore, it was found that manual mapping of a minimum of ten files per concern is needed for satisfactory performance. The research results represent a further step towards automating code-to-architecture mappings, as required in reflexion modelling and similar techniques.
|
127 |
Software architecture evaluation for framework-based systems.Zhu, Liming, Computer Science & Engineering, Faculty of Engineering, UNSW January 2007 (has links)
Complex modern software is often built using existing application frameworks and middleware frameworks. These frameworks provide useful common services, while simultaneously imposing architectural rules and constraints. Existing software architecture evaluation methods do not explicitly consider the implications of these frameworks for software architecture. This research extends scenario-based architecture evaluation methods by incorporating framework-related information into different evaluation activities. I propose four techniques which target four different activities within a scenario-based architecture evaluation method. 1) Scenario development: A new technique was designed aiming to extract general scenarios and tactics from framework-related architectural patterns. The technique is intended to complement the current scenario development process. The feasibility of the technique was validated through a case study. Significant improvements of scenario quality were observed in a controlled experiment conducted by another colleague. 2) Architecture representation: A new metrics-driven technique was created to reconstruct software architecture in a just-in-time fashion. This technique was validated in a case study. This approach has significantly improved the efficiency of architecture representation in a complex environment. 3) Attribute specific analysis (performance only): A model-driven approach to performance measurement was applied by decoupling framework-specific information from performance testing requirements. This technique was validated on two platforms (J2EE and Web Services) through a number of case studies. This technique leads to the benchmark producing more representative measures of the eventual application. It reduces the complexity behind the load testing suite and framework-specific performance data collecting utilities. 4) Trade-off and sensitivity analysis: A new technique was designed seeking to improve the Analytical Hierarchical Process (AHP) for trade-off and sensitivity analysis during a framework selection process. This approach was validated in a case study using data from a commercial project. The approach can identify 1) trade-offs implied by an architecture alternative, along with the magnitude of these trade-offs. 2) the most critical decisions in the overall decision process 3) the sensitivity of the final decision and its capability for handling quality attribute priority changes.
|
128 |
CARES - Computer Aided Rehabilitation SoftwareKatiyar, Kirti 01 January 2005 (has links)
This project was done with the vision that it would simplify and improve outpatient treatment of substance abusers through a rehabilitation software program with 24-7 access availability. By developing an easy-to-use interface for out-patient substance abuse patients, they along with their counselors, administrators and insurance agencies, will be able to facilitate continuous communication during the course of a patient's treatment.
|
129 |
Software Systems In-House Integration : Observations and Guidelines Concerning Architecture and ProcessLand, Rikard January 2006 (has links)
<p>Software evolution is a crucial activity for software organizations. A specifc type of software evolution is the integration of previously isolated systems. The need for integration is often a consequence of different organizational changes, including merging of previously separate organizations. One goal of software integration is to increase the value to users of several systems by combining their functionality, another is to reduce functionality overlap. If the systems are completely owned and controlled in-house, there is an additional advantage in rationalizing the use of internal resources by decreasing the amount of software with essentially the same purpose. Despite in-house integration being common, this topic has received little attention from researchers. This thesis contributes to an increasing understanding of the problems associated with in-house integration and provides guidelines to the more efficient utilization of the existing systems and the personnel.</p><p>In the thesis, we combine two perspectives: software architecture and processes. The perspective of software architecture is used to show how compatibility analysis and development of integration alternatives can be performed rapidly at a high level of abstraction. The software process perspective has led to the identification of important characteristics and practices of the integration process. The guidelines provided in the thesis will help those performing future in-house integration to make well-founded decisions timely and efficiently.</p><p>The contributions are based on several integration projects in industry, which have been studied systematically in order to collect, evaluate and generalize their experiences.</p>
|
130 |
A graphical, self-organizing approach to classifying electronic meeting output.Orwig, Richard Eldon. January 1995 (has links)
This dissertation describes research in the application and evaluation of a Kohonen Self-Organizing Map (SOM) to the problem of classification of Electronic Brainstorming output. Electronic Brainstorming is one of the most productive tools in the Electronic Meeting System called GroupSystems. A major step in group problem solving involves the classification of Electronic Brainstorming output into a manageable list of concepts, topics, or issues that can be further evaluated by the group. This step is problematic due to the information overload and cognitive load of the large quantity of data. This research builds upon previous work in automating the classification process using a Hopfield Neural Network. Evaluation of the Kohonen output in comparison with the Hopfield and human expert output over the same set of data found that the Kohonen SOM performed as well as a human expert in the recollection of associated term pairs and outperformed the Hopfield Neural Network algorithm. Using information retrieval measures, recall of concepts using the Kohonen algorithm was equivalent to the human expert. However, precision was poor. The graphical representation of textual data produced by the Kohonen SOM suggests many opportunities for improving information management of textual electronic information. Increasing uses of electronic mail, computer-based bulletin board systems, and world-wide web textual data suggest an overwhelming amount of textual information to manage. This research suggests that the Kohonen SOM may be used to automatically create "a picture that can represent a thousand (or more) words."
|
Page generated in 0.0761 seconds