软件工程及生命周期

1.什么是软件工程

  软件工作的范围不仅仅局限在程序编写,而是扩展到整个软件生命的周期,

  如软件的基本概念形成、需求分析、设计、实现、安装部署、运行维护,直到软件被跟新或替换新版本。

  软件工程还包括很多技术性管理工作,例如过程管理、产品管理、资源管理和质量管理,在这些方面也逐步建立起了标准和规范。

2.软件生命周期

                                      

软件的生命周期可以分为6个阶段如图示:

  •   计划:此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
  •        需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。
  •        设计:此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。
  •        编码:此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。 
  •        软件测试:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
  •        运行维护:软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。 

3.软件工程的研究领域

  软件工程研究的领域涉及软件的方方面面。至少包括人员管理、项目管理、可行性分析、需求分析、系统设计、编码、测试、质量管理和配置管理。如图4.2所示

            

 4.软件的发展史

  如图4.3所示                  

                  

5.软件工程化概念的提出

  20世纪60年代。“软件危机”就已经出现。

  针对“软件危机”,人们提出了软件工程化的概念。软件工程化概念首次出现在1968年的NATO(北大西洋公约组织)会议上。

  这一时期主要提出了zhuming著名的“瀑布模型”,然而软件测试作为瀑布模式的一个独立阶段出现,也受到了人们的广泛关注。

  随后的软件开发主要以结构化的分析和设计、结构化的编码和测试为特征。

6.“软件工厂”

  20世纪70年代初,“软件工厂”的概念出现,主要围绕软件过程和软件复用展开研究,使软件工程思想得到进一步的深化和提高。

  这一时期主要提出了“面向对象”的编程思想,软件测试在这一阶段有新的挑战,尤其是单元测试方法的改变。

7.软件管理过程

  20世纪80年代后,软件生产进入以过程为中心的阶段。

  提出了过程能力成熟度模型CMM、个体软件过程PSP、群组软件过程TSP等模型。软件测试在这个阶段更加强调与开发协作!

  软件不是一个人开发的,是一大帮人一起开发的,因此需要沟通、协作、需要大家遵循一定的流程和做事方式,这是“软件过程”,如图4.4

      

  “瀑布模式”尝试从软件过程的角度解决“软件危机”。

  但事实证明这种简单的阶段划分并不能完美地解决软件工程化问题。后来陆续提出了快速原型法、螺旋模型、喷泉模型等对“瀑布式”生命周期模型进行补充。

8.软件过程相关方法和工具

   

           

          

          

9.软件工程发展新趋势

  

10.软件工程目的

   软件工程的目的是提高软件的质量和生产率,最终实现软件的工厂化生产。采用软件工程模型的目的是为了保证项目成功,

  并且每次都成功。决定成功的三个因素如图4.6

      

 摘自:《软件测试技术大全》

原文地址:https://www.cnblogs.com/eric88/p/10522231.html