技术解决方案过程域
本过程域要实现以下目标:
1)建立需求的解决方案;
2)设计、实现建立的解决方案。
“技术解决方案的目的是设计、开发和实现对需求的解决方案”,从中可以看出,本过程域应用的主要场景就是传统瀑布模型的设计阶段和编码实现阶段。
“技术解决方案过程域的专用实践不仅适用于产品和产品部件,也适用于与产品有关的生存周期过程”。为了更好地建立、设计、实现解决方案,必要时可以修订当前过程,甚至开发新的过程。
专用实践 1.1 制定备选方案和选择准则
本实践要求项目确定解决方案及其选择准则。
都说质量是设计出来的,但是怎样的设计才能算是好的设计?同样的产品需求,不同的设计师从自己不同的视角出发,可能会有不同的设计。所以就需要有一个评判准则,而这个准则应该是满足大多数利益相关方利益的,使用这个准则评判多个不同的设计方案,就能获得最优的那个。
备选方案的目标是“优化整体解决方案而不只是个别部分”,这就要求制定备选方案时要有大局观,要考虑整体,不要囿于一隅。
“备选方案不单是对同一需求的不同处理方式,还反映了产品部件在需求分配上的差异”,这意味着备选解决方案不仅针对同一软件架构,也可能是建立在不同软件架构之上的。
“(备选方案)选择准则通常涉及成本(例如,时间、人员、经费)、效益(例如,绩效、能力、有效性)和风险(例如,技术的、成本的、进度的)”。
制定选择准则,就从成本、效益、风险等涵盖的因素考虑。通常大多数组织的做法,都是将本专用目标和DAR过程域合并来做。
专用实践 1.2 选择产品部件的解决方案
本实践要求选择最能满足所建立的选择准则的最佳备选方案。
这个选择是双向的:依据现有的选择准则评价备选方案,选出其中最优的;反过来,依据对备选方案的评价,评估已有的选择准则,持续改进和更新这些准则。
“更低层次的需求由所选定的备选方案产生,并用于产品部件的设计”,这说明备选方案不需要覆盖所有层次的产品部件,最低层次的产品部件不需要再依据准则来选择。
选择好解决方案后,最后要做的就是——“文档化解决方案的说明和选择的理由”。 这与决定与分析过程域的SP1.6的要求相同。
专用实践 2.1 设计产品或产品部件
本实践要求按照选择的设计方案进行产品和产品部件的设计。
有些组织认为,为了赶任务周期,不写设计文档,直接编码实现产品。除非这种产品是一次性的,否则这种做法就是错误的。
因为产品的设计,“不仅是为了产品的实现,也是为了产品生存周期其它阶段:如修改、重新购买、维护、支撑和安装”。
当然,提供的设计文档也不需要那么正式和臃肿,因为“必须提供合适的内容”。
要确保设计质量,需要遵守组织或项目制定的设计标准(例如,检查单、模板、对象框架),好的设计标准是前提。虽然设计方法有很多专著讲解,可能大多数程序员都知道,但是如果你不标识出来,实际实施过程中总会有些新人茫然不知所以。而且,对于组织内的特定领域的软件产品来说,只有不断开发和改进我们的设计方法,才能持续改进我们软件产品的质量。
设计一般分为概要设计和详细设计两个阶段,这两个阶段可以迭代进行。
概要设计的内容:“概要设计建立产品功能和产品的体系结构,包括产品成份划分、产品部件的标识、系统状态和模式、部件间的主要接口、以及产品的外部接口”。
详细设计的内容:“在详细设计期间,最终确定产品体系结构的细节、完整定义产品部件,并完全特征化接口”。
继需求开发过程域SP3.1制定出运行方案和场景之后,设计阶段它们仍然发挥着巨大作用,因为“运行方案和场景用来产生改进体系结构的用例和质量场景。在体系结构评价期间,它们也作为评价体系结构对其预定目的适用性的一种手段,这种方法应贯穿产品设计过程定期地实施之”。
专用实践 2.2 建立技术数据包
本实践要求建立和维护开发过程中使用的技术数据包。
技术数据包应包括下列信息:
a)产品体系结构说明;
b)分配需求;
c)产品部件说明;
d)与产品有关的生存周期过程说明;
e)关键产品特性;
f)接口需求;
g)确保满足需求所用的验证准则;
h)使用(环境)条件和操作、运作模式和状态、支持、培训、处置,以及遍历整个产品生存周期的验证;
i)决策的理由和特征(需求、需求分配和设计选择)”
其中的a)c)i)一般会在《软件设计说明》文档中,b)f)h)一般会在《需求规格说明》文档中,d)一般会在《软件开发计划》文档中,e)g)一般会在《软件研制任务书》文档中。
所以,技术数据包应该至少包括《软件设计说明》、《需求规格说明》、《软件开发计划》、《软件研制任务书》,以及以上文档没有包括的其它可用的技术数据。
标准当中两次提到“设计文档化于技术数据包中”这一句话。可见,设计文档是技术数据包中最重要的组成部分。
专用实践 2.3 使用准则设计接口
本实践要求依据接口设计准则制定接口设计方案,再依据这个设计方案设计接口。
本实践是继RD过程域的SP2.3标识接口需求、PI过程域的SP2.2管理接口之后,再次出现关于接口的专用实践。足见标准对于接口的重视程度。
专用实践 2.4 作开发、购买或重用分析
本实践要求根据项目实际情况做出产品部件自行研发、使用重用构件还是外购的设计决策。
这种产品部件自行研发、使用重用构件还是外购的设计决策通常使用正式的评价方法进行。
随着项目的进展,项目面临着进度压力、技术风险等,这种决策也会随之不断发生变化。
专用实践 3.1 实现设计
本实践要求使用有效地方法实现产品部件的设计。
“这个活动包括分配、改进和验证每个产品部件,也包括各种产品部件开发工作之间的协调”,本实践除了按照设计进行编码实现之外,还要考虑对产品部件的需求分配、验证和优化改进。
其中编码要遵循编码规范,验证可采用同行评审,或者单元测试,整个实现过程都要满足一定的过程和质量标准。
专用实践 3.2 编撰产品支持文档
本实践要求在产品实现之后,开发产品支持文档。
产品支持文档的典型工作产品,包括:
a)最终用户培训材料;
b)用户手册;
c)操作员手册;
d)维护手册;
e)在线帮助。
这些文档的编写工作在项目的早期就要开始,不要等到闭项才开始。因为这样可以帮助用户进行确认工作,便于用户提早发现问题,及时改进软件设计。