软件架构历史详解(软件架构设计系列之一)

cht 2023-05-29 14次阅读

软件架构设计系列包括软件生命周期、软件开发模型、软件开发方法、基于架构的软件开发等。

软件生命周期

软件生命周期也就是软件生存的周期。同万物一样,软件也存在从产生到消亡的过程,软件生命周期就是指软件自构思到消亡的整个过程(构思—>研发—>使用—>不再使用)。关于软件生命周期的组成,不同的模型或标准中有不同的划分方法。不管是哪种模型或者方法,软件的生命周期主要可以分为定义阶段(规划、需求分析)、开发阶段(设计、编码、测试)、维护阶段(运行、维护)。

软件架构历史详解(软件架构设计系列之一)(1)

(1)软件规划:主要用于描述从项目提出、选择到确立的过程,包括软件项目的提出与可行性分析,方案的制订、评价和改进,新旧系统的分析和比较,以及现有软件、硬件和数据资源的有效利用等问题。在决定是否开发软件之前,首先需要进行可行性研究。通过可行性研究,来确定开发此软件的必要性,并根据可行性研究的结果初步确定软件的目标、范围、风险、开发成本等内容。从而制定出初步的软件开发计划。通过可行性研究,如果确定该软件具有研发的必要,则将产生《可行性研究报告》和《软件开发计划》,并进入需求分析的阶段。

(2)需求分析:需求分析是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。经过可行性研究后,初步确定了软件开发的目标和范围,之后则需要对软件的需求进行细致的分析,来确定软件要做成什么样的。需求分析是软件开发过程中极其重要的一环,如果需求分析出现了重大偏差,那么软件开发必然会偏离正确的道路,越走越远。

(3)软件设计:软件设计一般分为概要设计和详细设计。概要设计:概要设计确定整个软件的技术蓝图,负责将需求分析的结果转化为技术层面的设计方案。在概要设计中,需要确定系统架构、各子系统间的关系、接口规约、数据库模型、编码规范等内容。概要设计的结果将作为程序员的工作指南,供程序员了解系统的内部原理,并在其基础上进行详细设计和编码工作。详细设计:详细设计完成编码前最后的设计,详细设计在概要设计的基础上,进行细化,如类设计。详细设计不是开发过程中必需的阶段,在一些规模较小、结构简单的系统中,详细设计往往被省略。同样,在某一次软件开发中,可能只会对部分关键模块进行详细设计。

(4)编码和单元测试:编码是将上一阶段的详细设计得到的处理过程的描述转换为基于某种计算机语言的程序,即源程序代码。测试有分为:单元测试、集成测试、确认测试等。

单元测试:对一个小的程序单元进行测试,如某一个过程、方法或函数。因为单元测试的对象是小的程序单元,而不是完整的程序,因此往往需要编写一些测试程序来进行测试。有效的单元测试可以大大提高编码的质量,降低软件系统的缺陷率。

集成测试:集成测试又称为组装测试。通过单元测试的程序并不意味着没有缺陷,当程序单元被集成到一起进行交互的时候,往往会出现单元测试中不能发现的问题。同单元测试不同,集成测试必须经过精心的组织,指定集成测试计划,确定如何将这些程序单元集成到一起,按照什么样的顺序进行测试,使用哪些测试数据等问题。

确认测试:当完成集成测试后,软件之间的接口方面的错误已经排除,这时需要验证软件是否同需求一致,是否达到了预期目标。同集成测试一样,确认测试也需要进行计划和组织,逐步地验证软件系统同需要的一致性。经过确认测试的软件将投入正常使用,并进入维护期。

(5)运行和维护:即使通过了单元测试、集成测试和确认测试,也不可能发现软件系统中的全部缺陷;软件系统的需求也会根据业务的发展变化而变化。因此,在软件使用过程中,必须不断地对软件进行维护,修正软件中的缺陷,修改软件中已经不能适应最新情况的功能或者增加新的功能。软件维护的过程会贯穿整个软件的使用过程。当运行和维护阶段结束后,软件系统也就自然消亡,软件系统的生命周期结束。


标签: 软件  架构  历史  详解  设计  系列  之一 


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。