软件工程

阅读数:75 评论数:0

跳转到新版页面

分类

工程管理

正文

1、软件生存周期

(1)可行性分析与项目开发计划

(2)需求分析

  • 功能需求
  • 非功能需求
  • 设计约束

需求捕获、需求分析、编写规格说明书、需求验证

(3)概要设计

(4)详细设计

(5)编码

(6)测试

(7)维护

2、软件项目管理

(1)成本估算

Putnam模型

这是1978年Putnam提出的模型,是一种动态多变量模型。它是假定在软件开发的整个生存期中工作量有特定的分布。这种模型是依据在一些大型项目(总工作量达到或超过30个人年)中收集到的工作量分布情况而推导出来的,但也可以应用在一些较小的软件项目中。

$L = C_k \times K^{\dfrac{1}{3}} \times T_{d}^{\dfrac{4}{3}}$

其中:

L表示源代码行数

K表示开发过程中所花费的工作量(以人年计)

$T_d$表示开发持续时间(以人年计)

$C_K$表示技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表。

2000 没有系统的开发方法,缺乏文档和复审
8000 有合适的系统的开发方法,有充分的文档和复审
11000 有自动的开发工具和技术

COCOMO模型

“构造性成本模型”(Constructive Cost Model),CoCoMo模型分为基本、中间、详细三个层次,分别用于软件开发的三个不同阶段。

  1. 基本CoCoMo模型 用于系统开发的初期,估算整个系统的工作量(包括软件维护)和软件开发所需要的时间。
  2. 中间CoCoMo模型 用于估算各个子系统的工作量和开发时间。
  3. 详细CoCoMo模型 用于估算独立的软部件,如子系统内部的各个模块。

基本CoCoMo模型

$E = a\cdot L \cdot b$

$D = c\cdot E \cdot d$

其中:

E表示工作量,单位是人月(PM)。

D表示开发时间,单位是月(M)。

L是项目的代码行估计值,单位是千行代码

a ,b ,c ,d是常数,取值如下表所示。

软件类型 a b c d 适用范围
组织型 2.4 1.05 2.5 0.38 各类应用程序
半独立型 3.0 1.12 2.5 0.35 各类实用程序、编译程序等
嵌入型 3.6 1.20 2.5 0.32 实时处理、控制程序、操作系统

中间CoCoMo模型

以基本CoCoMo模型为基础,在工作量估计公式中乘以工作量调节因子(EAF)
$E = a \cdot L\cdot b \cdot EAF$
其中:L是软件产品的目标代码行数,a,b是常数,取值如下表所示。

软件类型 a b
组织型 2.4 1.05
半独立型 3.0 1.12
嵌入型 2.8 1.20

工作量调节因子(EAF)与软件产品属性、计算机属性、人员属性、项目属性有关

  1. 软件产品属性:软件可靠性、软件复杂性、数据库的规模
  2. 计算机属性:程序执行时间、程序占用内存的大小、软件开发环境的变化、软件开发环境的响应速度
  3. 人员属性:分析员的能力、程序员的能力、有关应用领域的经验、开发环境的经验、程序设计语言的经验
  4. 项目属性:软件开发方法的能力、软件工具的质量和数量、软件开发的进度要求

四种属性共15个要素。
每个要素调节因子 Fi, i=1,2,…...,15,的值分为:

很低、低、正常、高、很高、极高,共六级。
正常情况下 Fi=1。
Boehm推荐的Fi值范围
(0.70, 0.85, 1.00, 1.15, 1.30, 1.65)
当15个Fi的值选定后,EAF的计算如下
$EAF=F1\ctimes F2\ctimes ……\ctimes F15$

调节因子集的定义和调节因子定值是由统计结果和经验决定的。不同的软件开发组织,在不同的历史时期,随着环境的变化,这些数据可能改变。

使用中间CoCoMo模型可以估算开发软件产品的工作量,比较各种开发方案的工作量

(2)进度管理

进度安排的常用图形描述方法有Gantt图和项目计划评审技术(Program Evaluation&Review Technique,PERT)图

Gantt图

Gantt图(也称横道图)是安排工程进度计划的简单工具,如下图。

在Gantt图中,每项任务的开始时间和结束时间先均用空心小三角形表示,两者用横线相连,令人一目了然。当活动开始时,将横线左面的小三角形涂黑,当活动结束时,再把横线右边的小三角形涂黑。

Gantt图简单明了,易画易读易改,使用十分方便。图上显示了年月时间,用它来检查工程完成的情况十分直观方便,但是它不能显示各项任务之间的依赖关系,只适用于简单的软件项目。

Pert图

PERT图是一种图形化的网络模型,描述一个项目中任务之间的关系。

3、软件配置管理

在软件开发过程中,由于没有进行变更控制,可能加剧项目的混乱,为了协议软件开发使得混乱减到最小,使用配置管理技术,使变更所产生的错误达到最小并有效地提高生产率。

最主要的就是版本控制:SVN、GIT

4、项目管理工具

1)国内的禅道

(2)oKit

(3)Collabtive

(4)Freedcamp

(5)Project Pier

(6)Achievo

(7)Redmine

5、测试

(1)单元测试

模块接口
局部数据结构
重要的执行路径
出错处理
边界条件

(2)集成测试

(3)确认测试

有效性测试
软件配置审查
验收测试

(4)系统测试

自己理解就是布署测试。

恢复测试。检查系统的容错能力
安全测试。
压力测试。
性能测试。
可靠性、可用性和可维性测试(平均失效间隔时间 Mean Time Betwee

 




相关推荐

墨盒测试是功能测试,白盒测试是代码测试,性能测试是负载测试。 基础能力 弹

安装 1、centos yum install httpd-tools