软件维护是软件生命周期中不可或缺的一个阶段,主要涵盖了对软件系统的修正、适应和改善。其中,预防性维护通常被认为所占的维护量最小,它旨在提前预测并解决可能出现的问题,以减少未来的维护工作量。纠错性维护是修复软件中存在的错误,而代码维护则是改进代码结构或性能。文档维护则涉及更新软件相关的文档,确保与软件当前状态一致。
完善性维护是最常见的维护类型,通常在用户提出增加新功能或改进现有功能时进行。在维护软件时,为了确保修改不会破坏原有的正常功能,应进行回归测试,以验证修改后的软件在所有已知场景下仍能正常工作。
数据流图(DFD)是结构化分析的重要工具,用于描绘信息在系统中的流动和处理过程。在绘制DFD时,应注意避免内容耦合,优先使用数据耦合和控制耦合,限制公共耦合的范围。星号(*)表示数据流的选择性,意味着并非所有情况都同时发生。在任何层次的DFD中,数据存储项都是必要的,以表示数据的存储和管理。
需求获取和项目复杂性是软件开发中的技术风险,可能导致理解偏差、沟通困难和项目延期。软件测试涵盖软件计划、设计和编码阶段,但不涉及软件价格。在维护过程中产生的副作用通常指的是因修改软件而导致的新错误,这些错误并非在开发初期就存在。
瀑布模型是一种线性的开发模型,强调阶段间的顺序和依赖性。它不适合灵活的需求变化,但在早期阶段发现问题的代价相对较低。划分模块时,应尽量减少耦合,优先选择数据耦合,限制控制耦合和公共耦合,避免内容耦合。
类是面向对象编程的基础,是具有共同属性和行为的对象抽象,而对象是类的具体实例。分层的DFD中,父图与子图的平衡意味着它们的输入输出数据流应当保持一致。在项目进度管理中,需要估算每个工作任务的预算工作量和成本,以便制定准确的进度计划。
在需求分析阶段,开发人员需了解用户需求,确定软件应执行的功能,以及用户界面设计。错误发现得越晚,修正成本越高。软件过程模型定义了软件生命周期中的开发方法和过程。可行性研究通常在计划时期进行,数据字典包含了对数据流、数据存储、数据加工的描述,但不包括数据源和数据接受的描述。
CMM模型描述了软件过程成熟度的五个级别,可管理级强调定量的过程管理和软件质量管理。理想的可重用软构件是类,因为它们封装了数据和行为,便于复用。软件维护通常是生命周期中费用最高的阶段,而软件需求分析阶段的工作包括问题识别、分析、综合以及需求规格说明等。