节点文献
软件开发中软件体系结构假设条件及其管理
Architectural Assumptions and Their Management in Software Development
【作者】 杨晨;
【导师】 梁鹏; Paris Avgeriou;
【作者基本信息】 武汉大学 , 软件工程, 2018, 博士
【摘要】 在软件开发中,存在很多不确定性,但为了实现项目目标(如在计划内完成项目),涉众往往需要处理这些不确定的事物(如假设条件制定)。软件开发中的假设条件指在没有足够证据支持的情况下,被接受或认可为真的软件开发知识。软件开发中存在多种类型的假设条件,本文关注体系结构假设条件,且解决的核心问题是:如何在软件开发中系统地管理体系结构假设条件?本文系统分析了软件体系结构假设条件及其管理的研究和实践问题。首先设计并执行了关于软件开发中假设条件及其管理的系统文献映射研究。关键结果如下:(1)尽管识别出十二类假设条件管理活动,但并未发现任何系统的假设条件管理过程。(2)在软件开发实践中管理假设条件仍然是一个巨大的挑战。(3)应特别重视无效的或隐式的假设条件。此外,针对工业界中体系结构假设条件及其管理的现状,本文设计并执行了案例研究。该案例研究的结果与上述系统文献映射研究的结果一致。例如在该案例研究中识别出十二类体系结构假设条件管理活动(如制定和描述),且未发现任何系统的体系结构假设条件管理过程。过程对体系结构假设条件管理尤为重要,因此本文提出了软件体系结构假设条件的通用管理过程。该过程由四个软件体系结构假设条件管理活动(即制定、描述、评价、维护)组成。此外,使用了案例研究方法来评价该管理过程。主要结果为:(1)理解和执行该管理过程所需的成本适中。(2)该管理过程可以明确体系结构假设条件,识别和减少无效的体系结构假设条件。(3)以上的结果受多种因素影响。在对体系结构假设条件管理过程的评价中,发现系统地描述体系结构假设条件在假设条件管理中具有重要意义。由于现有的体系结构假设条件描述方法均存在不同的问题,因此,本文设计了用于描述体系结构假设条件的框架。该框架包括四个视角(即细节视角、关系视角、追溯视角、演化视角)以涵盖体系结构假设条件及其管理的涉众关注点。此外,本文通过案例研究方法评价了该框架。该案例研究的主要结果为:(1)该框架容易理解(如半天的研讨会);(2)创建体系结构假设条件演化视图所需成本最小,其次为细节视图和关系视图;(3)该框架可以帮助涉众识别项目中的风险以及理解项目中的体系结构假设条件。
【Abstract】 There are many uncertainties existing in the software development lifecycle,while stakeholders have to work within such a context.To deal with these uncertainties,one way is to make implicit or explicit assumptions.An assumption in software development is a type of software knowledge taken for granted or accepted as true without evidence.In this thesis,we concentrated on a specific type of assumption,i.e.,architectural assumption,and we tried to address the following core problem:how can we systematically manage architectural assumptions in software development?To systematically analyze the state of the art regarding architectural assumptions and their management,we first performed a systematic mapping study to gather and analyze data from reserach literature.The main results are:(1)We collected twelve types of activities for assumption management,while no general process was identified to connect the activities as a whole.(2)It is challenging to manage assumptions in software development practices.(3)Invalid or implicit assumptions should be paid more attention.Besides the analysis of literature,it was critical to investigate the state of the practice regarding architectural assumptions and their management in industry.To this end,we conducted a case study.The results of the case study confirm the results of the systematic mapping study on assumptions and their management.As an example,we identified the same twelve architectural assumption management activities(e.g.,Making and Description)from the case study,while we did not find any process to encompass the activities as a whole.Since a general architectural assumption management process is critical in architectural assumption management,we first designed such a process and then evaluated the proposed process through a case study.The proposed process is comprised of four architectural assumption management activities:Architectural Assumption Making,Description,Evaluation,and Maintenance.The results of the case study show that:(1)the ease of understanding and the effort of conducting the process are moderate;(2)the process can help to make architectural assumptions explicit and to identify and reduce invalid architectural assumptions in projects;(3)various factors can influence the aforementioned results.During the evaluation of the proposed assumption management process,we confirmed a high-priority need to systematically describe architectural assumptions.After finding out that existing approaches cannot satisfy certain concerns from stakeholders in documenting architectural assumptions,we designed an Architectural Assumption Documentation Framework,comprised of four viewpoints(i.e.,the Detail,Relationship,Tracing,and Evolution viewpoint)that specifically frame such concerns.We also evaluated the framework through a case study.The results of the case study show that:(1)the framework can be understood by architects in a short time;(2)the Architectural Assumption Evolution view requires the least time to create,followed by the Detail view and Relationship view;(3)the framework can help stakeholders to identify risks and understand architectural assumptions documented by other stakeholders.
【Key words】 Software Architecture; Architectural Assumption; Architectural Assumption Management;