1.1 软件开发基本概念

  1. 软件是计算机系统中与硬件相互依存的另一部分,它的组成结构可写作:软件=程序+数据+文档:
    1. 程序:程序是按事先设计好的功能和性能要求执行的指令序列;
    2. 数据:数据是指程序能正常处理信息的数据和数据结构;
    3. 文档:文档是与程序运行和维护有关的图文资料。
  2. 软件特征:抽象、无明显制造过程、无备件、手工制作、成本昂贵。
  3. 软件分类:微型、小型、中型……
  4. 软件危机:
    1. 用户需求不明确、变更过多
    2. 软件成本日益增长
    3. 开发进度难以控制
    4. 软件质量差,可靠性不保证
    5. 软件维护困难
  5. 软件生存周期:软件计划(问题定义、可行性研究、需求分析)、软件开发(概要设计、详细设计、软件实现、综合测试)、软件运行与给维护(运行与维护),从面向对象角度来看,可分为系统分析、系统设计、系统实现与系统维护。
  6. 软件开发模型:瀑布模型、迭代模型、螺旋模型。

    1. 原型模型->迭代式增量模型:统一过程(Unified Process)中一个迭代增量式的开发过程。采用这种方法,不是在项目结束时一次性提交软件,而是分块逐次开发和提交软件。开发过程分为四个阶段:初阶段、细化阶段、构造阶段和移交阶段。统一过程的核心思想是:首先选择一些功能点,然后完成这些功能,随后再选择其他的功能点,如此循环往复。

      1.2 需求分析

      为系统应该做什么创建非常高级的规格说明的工作称为需求工程,需求分为功能性需求和非功能性需求。

      1.3 设计

      设计的目的是说明如何才能完全实现这些功能。

      1.4 实现

      实现是将设计模型转化为可执行的代码。

      1.5 测试

  7. 测试目的

    1. 软件测试是为了发现错误而执行程序的过程;
    2. 测试是为了证明程序有错误,而不是证明程序无错误;
    3. 一个好的测试用例在于它能发现至今未发现的错误;
    4. 一个成功的测试是发现至今未发现的错误的测试。
  8. 测试方法:白盒测试法、黑盒测试法和灰盒测试法。

    1.6 维护

    维护三步骤:分析和理解程序 、修改程序 、重新验证程序。

    1.7 风险分析

    1.需求风险:指项目的目标是否满足用户的需求方面所存在的风险。
    2.技术风险:指所选的技术方案是否可行方面存在的风险。
    3.技能风险:指项目实施者的素质是否满足项目要求方面存在的风险。
    4.政策风险:考虑是否存在将会影响项目进行的一些政策性因素。