3.3软件工程 2 Y5 u% {8 V2 r% F9 x
●软件需求分析与定义
7 H! @" {4 ? H/ i 软件需求定义: 6 G( Q! J8 t( O) j Y
软件需求是一个为解决特定问题,而必须由被开发或被修改软件展示的特性。
, ?5 \2 [6 d; s6 y8 |( Q' n9 b' f( I 软件需求基本特征:可验证性、优先级、唯一性。 8 t' I7 t) l t2 {) s, j( N
软件需求分析的目的: - l1 e1 V: L: u0 \! r. l% c
(1) 检测和解决需求之间的冲突;
3 H+ E2 T+ X6 g6 y3 ? ~ (2) 发现软件的边界,确定软件与环境间的交互;
5 A. p& f" p/ s; d% Z9 e+ X2 h, j (3) 描述系统需求,以确定软件需求。
6 b$ _) F! h" r* `# p 开发真实世界问题的模型是软件需求分析的关键,模型的目的是帮助解决问题,而不是启动方案的设计。概念模型由来自问题域的实体模型组成,实体模型反映了它们在真实世界的联系和依赖。 ) b+ O* T* R1 }+ |) A; s/ `% a @$ h
●软件设计、测试与维护
+ o( W# D2 L4 M0 J% N& i 软件设计是定义一个系统的架构、组件、接口和其他特征的过程,并得到这个过程的结果。软件设计活动组成:
) I" H7 I6 ?# v9 d& M8 d (1) 软件架构设计:描述软件的组织和结构,标识各种不同的组件; * l6 N8 c% y9 C- ]( F+ C6 m& S5 M
(2) 软件详细设计:详细的描述各个组件,使之能被构造。 8 Q: v& r% t; @6 x
软件测试是为评价和改进产品质量、识别产品缺陷和问题而进行的活动。
9 J( }/ O3 C) G 软件测试分类:单元测试、集成测试、系统测试。
9 h' T0 c2 c3 \1 x8 |2 G+ B 软件维护是为需要提供软件支持的全部活动,包括交付前完成的活动,交付后完成的活动。 & W+ j3 I1 |* x' o
软件维护分类:更正性维护、适应性维护、完善性维护、预防性维护。
2 a+ }2 |9 W9 ^% W$ b- U ●软件复用 6 g, Q' ^! _: U9 L3 u- j
软件复用是指利用已有软件的各种知识来构造新的软件,以缩减软件开发、维护的费用。软件复用是提高软件生产力和质量的一种重要技术。 0 _0 t+ |" _8 w6 G- F. o) B
软件复用按抽象程度的高低分类:代码的复用、设计的复用、分析的复用、测试信息的复用。
1 p4 q. W7 U8 `# v0 [. V 面向对象的软件开发和软件复用之间的关系式相辅相成的。 ( K$ l0 x& G: J# m L" U
●软件质量保证及质量评价 $ K8 D/ R! [6 ]6 B1 Z
软件质量定义:软件特性的综合,软件满足规定和潜在用户的能力。 # |- y* P- K+ I. z: q
软件质量包括内部质量、外部质量、使用质量3部分。 4 j& g( V# ^0 l. ~3 u
软件质量管理过程:质量保证过程、验证与确认过程、评审与审计过程。
4 v1 R4 R& `( V2 I2 M3 }% j ●软件配置管理
& a+ y# A5 j6 A& x9 `5 y 软件配置管理:通过标识产品的元素,管理和控制变更,验证、记录、报告配置信息,来控制产品的进化和完整性。软件配置管理和软件质量保证密切相关。
, B# h+ e* D, K 软件配置管理活动:软件配置管理过程的管理和计划、软件配置标识、软件配置控制、软件配置状态记录、软甲配置审计、软件发布管理与交付。
$ {, f5 N# p/ }3 G3 \6 | ●软件开发工具
& L5 T3 W# Q! f8 c: Y 软件需求工具、软件设计工具、软件构造工具、软件测试工具、软件维护工具、软件配置管理工具、软件工程管理工具、软件工程过程工具、软件质量工具。 : ]0 Y, Q4 ^" e
●软件过程管理 软件工程管理包含过程管理和项目管理,包括6个方面:启动和范围定义、软件项目计划、软件项目实施、评审和评价、关闭、软件工程度量。 |