0%

软件工程

一、概述

二、软件过程 P30

要点 P46

软件过程是产生一个软件系统的一系列活动。软件过程模型是这些过程的抽象表示。

一般过程模型描述软件过程的组成。一般过程模型实例包括瀑布模型、增量式开发、面向复用的开发。

需求工程是开发软件描述的过程。

设计和实现过程是将需求描述转换为一个可运行的软件 系统的过程。系统化的设计方法用来完成这个转换。

软件有效性验证时检查系统是否和它的描述一致,以及是否符合系统客户的真正需要的过程。

软件进化是修改已存在的软件系统以适应用户新的需求的过程。

软件过程应包含对变更的活动。这可能包括一个原型构造过程,以帮助避免在需求和设计上的错误决定。

Rational 统一过程是新式基本过程模型,其特点是由阶段(开端、细化、构造、转换)所构成,但是它把活动(需求、分析、设计)和阶段相区别。

三、敏捷软件开发 P49

要点 62

Scrum 方法是一种提供项目管理框架的敏捷方法。它的核心是一组冲刺循环,开发一个系统增量是有固定的时间周期的。规划是基于积压的工作的优先权安排的。

四、需求工程 P65

要点 85

一个软件系统的需求描述了系统应该做什么以及定义系统运行时和实现时的约束。

功能需求是有关系统一定要提供的服务或者是必须执行的运算的描述。

非功能需求约束所开发的系统和所采用的开发过程,

需求工程过程包括可行性研究,需求导出和分析,需求描述,需求有效性验证和需求管理。

需求有效性验证是检查需求的有效性、一致性、完备性、真实性和可检验性。

五、系统建模 P88

要点 P104

上下文模型描述所建模的系统是如何在含有其他系统和流程的环境中工作的。它们帮助定义被建系统的边界。

用例图和时序图用来描述系统用户之间或系统用户和其他系统之间的交互。用例描述的是系统和外部参与者之间的交互;时序图通过表示系统对象之间的交互为用例图添加更多的信息。

结构模型表示的系统的体系结构。类图用来定义系统中的类的静态结构以及类之间的关联关系。

行为模型用来描述可执行系统的动态行为。我们可以从系统处理数据的角度和事件激励系统产生响应的角度来建立这种模型。

活动图用来为数据的处理过程建模,其中每一个活动图代表一个处理步骤。

状态图用来为响应内外部事件的系统行为建模。

模型驱动工程是一种软件开发的方法,其中的系统表示可自动转换为可执行代码的模型的集合。

六、体系结构设计

要点 P122

应用较多的体系结构模式有MVC、分层体系结构、容器结构、客户机-服务器结构,以及管道和过滤器结构。

七、设计与实现

要点 P142

面向对象的设计过程包括系统体系结构的设计、识别系统中的对象、运用不同的对象模型描述设计,以及文档化组件接口。

面向对象的设计过程中会产生不同的模型。这些模型包括静态模型(类模型、泛化模型、关联模型)和动态模型(时序模型、状态机模型)。

八、软件测试 P145

审查和复查是分析和审查系统需求、设计模型、程序的源代码,甚至的建议的系统测试,被称为“静态”V&V技术。 146

审查主要关心一个系统的源代码,也涉及任何可读的软件表示,如它的需求、设计模型。 147

审查的优势 147

测试用例是一个对输入和在特定环境下的期望的输出以及所测试的对象的一个描述。 147

回归测试——重新运行先前的测试以检测对程序的变更没有引入新的故障。

测试驱动开发(TDD):155

要点 P161

开发测试包括单元测试,即测试单个对象和方法;组件测试,即测试相关的一组对象;系统测试,即测试部分或完整的系统。

测试优先开发是开发的一种方式,在代码测试之前就已经写好测试。做小的代码更改和进行代码重构,直到所有测试成功执行。

情景(脚本)测试是非常有用的,因为它可以复制系统的使用。它包括设计一种典型的使用场景,并以此来导出测试案例。

接收测试是一个用户的测试过程,目的是决定这个软件是否足以进行部署。以及能否用在它的实际操作环境中。

九、软件进化 P163

要点 P177