Font Size: a A A

Knowledge-based Approaches For Software Architecture Documentation In Open Source Software And Its Impact

Posted on:2016-02-07Degree:DoctorType:Dissertation
Country:ChinaCandidate:W DingFull Text:PDF
GTID:1318330482957969Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
In software development, software architecture (SA) has been regarded as a foundation for understanding large scale and complex software systems. Software documentation provides an asynchronous way for the communication between stakeholders, which can overcome the time and geographical restrictions during software development. Software architecture documentation (SAD) is an important and essential part of software documentation to record software architecture design and design decision information. There is no standard definition about software architecture and the approaches for describing and documenting software architecture are various.The way to document software architecture can be classified to heavyweight and lightweight approaches. Heavyweight approaches use strictly predefined semantics and models to describe architecture information, e.g.,4+1 views and Architectural Description Language (ADL). The usability of heavyweight approaches highly depends on specialized knowledge which requires a steep learning curve. The described architecture is hard to understand for stakeholders who lack the knowledge of the heavyweight approaches. Lightweight approaches employ simple and concise tools, e.g., Office and Wiki, to describe architecture using natural language. This type of approaches is casually used and the described architecture lacks completeness and formality. The informal content of architecture documentation tends to be interpreted incorrectly by stakeholders.Knowledge-based approaches, the approaches that can explicitly facilitate the development, evolution, and use of knowledge, are used in this thesis to address the following challenges:how to extract architecture information communicated in open source software (OSS) and to improve software architecture documentation in OSS development. The content of this thesis is elaborated as the following:A systematic literature review is used to explore how knowledge-based approaches are employed in software documentation, their influences to the quality of software documentation, and the costs and benefits of using these approaches.SAD is an essential and integrated part of architecture design process that helps architects identify and record design decisions, but whether OSS developers need SAD and how much architecture documentation is enough and appropriate is largely dependent on the contextual factors of software development. To understand the state of the practice of SAD in OSS development, an exploratory survey was conducted to explore how SA is documented in OSS projects, in which IEEE 1471-2000 standard as a reference selection criterion was employed, and 108 projects which have certain SA documentation were identified in 2000 OSS projects from four open source communities. The result shows that SAD has not been widely used in OSS development.To investigate the impact of SAD to maintainability of OSS, we conducted a quantitative empirical study to understand the relationship between maintainability of OSS and the presence of SA documentation (OSS projects that have SAD in one group and OSS projects without SAD in another group). Four sub-qualities of maintainability (analyzability, changeability, stability, and testability) according to ISO/IEC 9126 standard were evaluated against the two groups of selected OSS projects to statistically verify whether a significant difference on these qualities exists between the two groups. The result of this study indicates the usefulness of SAD for analyzability of OSS projects with evidential support.SAD has not been widely practiced in OSS development, but architecture information can be communicated through other media. Mailing list provides a major vehicle to support communication in OSS development. We conducted a case study to analyze the architectural information communicated in the development mailing lists of two popular OSS projects: ArgoUML and Hibernate. The results show that the most frequently-communicated architecture elements in OSS development mailing lists are System, Model, Rationale, and Mission. We analyzed the relationships between architecture information communication and core developers, the first stable release, and issue tracking systems in a social network perspective.To explore the possibility of identifying and understanding the causes of architecture changes, we conducted an empirical study to analyze architecture information communicated in the mailing lists of ArgoUML and Hibernate, verified architecture changes with source code, and identified the causes of architecture changes from the communicated architecture information with a top-down approach. A further analysis of architecture change causes was conducted with a bottom-up approach (grounded theory). The mechanism of the causes of architecture changes are analyzed based on the classification results.In summary, this thesis explored how knowledge-based approaches are employed in software documentation, investigated how software architecture is documented in OSS projects, assessed the usefulness of SAD for analyzability of OSS projects, analyzed the architecture information communicated in the development mailing lists of OSS; and employed knowledge recovery to understand the causes of architecture changes from mailing lists of OSS with their potential impact. This thesis provides a foundation for using knowledge-based approaches in architecture documentation of OSS development.
Keywords/Search Tags:Knowledge-based approach, Software Architecture, Software Document, Software Documentation, Open Source Software
PDF Full Text Request
Related items