计算机基础知识(第三篇)
计算机基础知识(第三篇)
软件工程
软件过程概述
软件开发生命周期
- 软件定义阶段:问题定义、可行性分析、需求分析
- 软件开发阶段:概要设计、详细设计、编码、测试
- 软件运行和维护阶段:软件交付、运行、维护
软件系统的文档
- 用户文档:包括用户手册、操作指南、帮助文档
- 系统文档:包括需求规格说明书、概要设计文档、详细设计文档、测试计划和报告
软件工程过程
- P(Plan):软件规格说明。规定软件的功能及其运行时的限制。
- D(Do): 软件开发。开发出满足规格说明的软件。
- C(Check):软件确认。确认开发的软件能够满足用户的需求。
- A(Action): 软件演进。软件在运行过程中不断改进以满足客户新的需求。
软件系统工具
- 软件开发工具:需求分析工具、设计工具、编码与排错工具、测试工具等。
- 软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。
- 软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。
软件设计四个活动:数据设计、架构(体系结构)设计、人机界面(接口)设计和过程(功能)设计
软件工程生命周期:
- 可行性分析与项目开发计划:主要确定软件的开发目标及其可行性。
- 需求分析:确定软件系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型,该阶段产生的主要文档有软件需求说明书。
- 概要设计:概要设计就是设计软件的结构,明确软件由哪些模块组成,这些模块的层次结构、调用关系、功能是什么样的。设计该项目总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。该阶段产生的主要文档有概要设计说明书。
- 详细设计:详细设计阶段的主要任务是把功能描述转变为精确的、结构化的过程描述。即该模块的控制结构是怎样的,先做什么,后做什么,有什么样的条件判定,有些什么重复处理等,并用相应的表示工具把这些控制结构表示出来。该阶段产生的主要文档有详细设计文档。
- 编码:编码阶段就是把每个模块的控制结构转换成计算机可接受的程序代码
- 测试:测试是保证软件质量,该阶段产生的主要文档有软件测试计划、测试用例和软件测试报告。
- 维护:软件维护是软件生存周期中时间最长的阶段。
软件成熟度模型
能力成熟度模型CMM
- 初始级:软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。
- 可重复级:建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。
- 已定义级:管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。
- 已管理级:制定了软件过程和产品质量的详细度量标准。
- 优化级:加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进。
能力成熟度模型集成CMMI
- 初始级:过程不可预测且缺乏控制
- 已管理级:过程为项目服务
- 已定义级:过程为组织服务
- 定量管理:过程已度量和控制
- 优化级:集中于过程改进和优化
软件过程模型
瀑布模型
瀑布模型:将软件生存周期中的各个活动规定为依线性顺接的若干阶段的模型,包括需求分析、设计、编码、运行与维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落。
特点:
- 阶段顺序性:开发过程按照固定的阶段顺序进行,每个阶段的输出作为下个阶段的输入,形成严格的线性流程。
- 逐步推进:每个阶段都有明确的工作内容和成果,开发团队逐步推进,直到完成整个软件开发过程。
- 输入输出清晰:每个阶段都有明确的输入和输出,使得开发过程可控,能够清晰地跟踪和管理项目进展。
- 评审和确认:在每个阶段末尾进行评审,确保工作成果符合要求和质量标准,只有经过确认的成果才能传递给下个阶段。
- 反馈和迭代:如果在评审中发现问题,需要及时反馈并进行修正。在极端情况下,可能需要返回前一阶段甚至更早的阶段进行修正。
- 成本控制:瀑布模型试图通过一次性完成各个阶段的工作来控制开发成本,尽量减少多个阶段间的反复,以较小的费用来开发软件。
V模型
V模型描述了质量保证活动和沟通、建模相关活动以及早期构建相关的活动之间的关系。V模型提供了一种将验证确认活动应用于早期软件工程工作中的方法。
左边的下画线分别代表了以下阶段:需求分析、概要设计、详细设计、编码
右边的上画线代表了以下测试类型:单元测试、集成测试、系统测试、验收测试
特点:
- 单元测试的主要目的是针对编码过程中可能存在的各种错误;
- 集成测试的主要目的是针对详细设计中可能存在的问题;
- 系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行;
- 验收测试通常由业务专家或者用户进行,以确认产品能真正符合用户业务上的需要;
- V模型适用于需求明确和需求变更不频繁的情形。
测试模型
W模型的定义:W模型是对V模型的一种改进。W模型中,软件开发和测试是紧密结合的,每个开发活动完成后就同步进行测试活动&#