3.3软件工程 " T) R: U$ j0 S$ u
●软件需求分析与定义
$ _5 @$ f( {$ t# g3 G 软件需求定义:
Z% f, N: [5 R7 P4 M# J 软件需求是一个为解决特定问题,而必须由被开发或被修改软件展示的特性。 3 `) g. F6 r" _6 ~
软件需求基本特征:可验证性、优先级、唯一性。
" H/ i% ?6 w8 f 软件需求分析的目的:
8 r4 g0 Y) g( j; e8 ]! G7 V (1) 检测和解决需求之间的冲突; - ]" n1 y2 c% E
(2) 发现软件的边界,确定软件与环境间的交互; % l8 M, s* s5 Z2 w! {. O
(3) 描述系统需求,以确定软件需求。 ) c$ K! O" }/ x8 F$ B4 c+ G
开发真实世界问题的模型是软件需求分析的关键,模型的目的是帮助解决问题,而不是启动方案的设计。概念模型由来自问题域的实体模型组成,实体模型反映了它们在真实世界的联系和依赖。
3 i* D* s" X9 I% J+ Z ●软件设计、测试与维护
5 l' k9 C1 |/ `; m" }' b8 R 软件设计是定义一个系统的架构、组件、接口和其他特征的过程,并得到这个过程的结果。软件设计活动组成:
, C3 |% `& \+ C$ T3 @$ V) v (1) 软件架构设计:描述软件的组织和结构,标识各种不同的组件; 1 ^: H9 J' U- W& E5 h2 e
(2) 软件详细设计:详细的描述各个组件,使之能被构造。 3 ]( h7 o! }6 a& N
软件测试是为评价和改进产品质量、识别产品缺陷和问题而进行的活动。 5 t+ [" Y+ y/ P
软件测试分类:单元测试、集成测试、系统测试。 2 M0 g a) x4 K, S% m/ N o0 [
软件维护是为需要提供软件支持的全部活动,包括交付前完成的活动,交付后完成的活动。
^0 G/ p; z! P Q4 `" k7 m* y7 z 软件维护分类:更正性维护、适应性维护、完善性维护、预防性维护。 + b( N) ?( U* h9 P- Y7 I! v7 M
●软件复用 # z5 @. `% [0 B& [7 a
软件复用是指利用已有软件的各种知识来构造新的软件,以缩减软件开发、维护的费用。软件复用是提高软件生产力和质量的一种重要技术。 9 o% F4 v' L6 ^. N( U
软件复用按抽象程度的高低分类:代码的复用、设计的复用、分析的复用、测试信息的复用。
4 x0 y, D& C1 \0 R. n 面向对象的软件开发和软件复用之间的关系式相辅相成的。 7 g6 d% v/ p3 w" r
●软件质量保证及质量评价
# P' [8 o. C! h ^ 软件质量定义:软件特性的综合,软件满足规定和潜在用户的能力。 ( }+ \6 [1 H7 I& B# ^! o7 M) A
软件质量包括内部质量、外部质量、使用质量3部分。
! u+ m: W6 t' D; D8 ?1 I( [! V% M$ h 软件质量管理过程:质量保证过程、验证与确认过程、评审与审计过程。
* T T7 l$ L m- z! v ●软件配置管理
8 P. K/ `, j1 m- p$ \' b0 f 软件配置管理:通过标识产品的元素,管理和控制变更,验证、记录、报告配置信息,来控制产品的进化和完整性。软件配置管理和软件质量保证密切相关。
9 g( _1 G6 x& X( N E 软件配置管理活动:软件配置管理过程的管理和计划、软件配置标识、软件配置控制、软件配置状态记录、软甲配置审计、软件发布管理与交付。 * Z2 `0 C' ~& P
●软件开发工具
; g" a9 h- Q2 \+ m7 z6 o 软件需求工具、软件设计工具、软件构造工具、软件测试工具、软件维护工具、软件配置管理工具、软件工程管理工具、软件工程过程工具、软件质量工具。
1 \- g @! W- u ●软件过程管理 软件工程管理包含过程管理和项目管理,包括6个方面:启动和范围定义、软件项目计划、软件项目实施、评审和评价、关闭、软件工程度量。 |