软件工程基础知识

发布时间 2023-10-27 11:16:31作者: yesyes1

1、软件生存周期

可行性分析与项目开发计划--生成可行性分析报告与项目开发计划;

需求分析--生成软件需求说明书;

概要设计--主要设计软件的结构--生成概要设计说明书;

详细设计--生成详细设计文档;

编码;

测试--生成软件测试计划、测试用例、软件测试报告;

维护--软件生存周期中时间最长;

2、软件开发方法

结构化方法--自顶向下,逐层分解(面向数据流);

Jackson方法--适用于小规模开发(面向数据结构);

原型化方法--需求经常变化,且规模不大;

面向对象开发方法;

3、成本估算

成本估算方法--自顶向下、自底向上、差别、专家、类推、算式;

成本估算模型--

1、Putnam模型--是一种动态多变量的模型;

2、COCOMO模型--

--基本COCOMO是一种静态单变量的模型,对整个软件系统进行估算;

--中级COCOMO是一种静态多变量的模型,划分为系统+部件,系统中也包含了部件;

--详细COCOMO划分为系统、子系统和模块;

4、风险分析

1、风险识别--它的一个方法是风险条目检查表;

2、风险预测--从两方面评估一个风险:风险发生的可能性或概率,以及如果风险发生所产生的后果;

3、风险评估--定义风险参照标准;

4、风险控制--需要考虑三个问题:风险避免、风险监控、风险管理及意外事件计划;

如果软件项目组对于风险采取主动的方法,则避免是最好的策略;

5、进度安排

1、Gantt图--横向表示时间、纵向表示任务;不能很好地表示出各任务之间的依赖关系;

2、PERT图--不能很好地表示出各任务之间的并行关系;

6、软件组织的过程能力

分为5个成熟度级别:

1、初始级--软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力;

2、可重复级--建立了基本的项目管理过程来跟踪费用、进度和功能特性;制定了必要的过程纪律,能重复早先类似应用项目取得的成功;

3、已定义级--已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件;

4、已管理级--收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制;

5、优化级--过程的量化反馈和先进的新思想、新技术促使过程不断改进。

7、统一过程UP

1、初始阶段--生命周期目标

2、精化阶段--生命周期架构

3、构建阶段--生命周期功能

4、移交阶段--产品发布

8、敏捷方法

1、极限编程XP--贯穿整个生命周期;

4个价值观--沟通、简单性、反馈和勇气;

5个原则--快速反馈、简单性假设、逐步修改、提倡更改和优质工作;

12个最佳实践--

--计划游戏(快速制定计划、随着细节的不断变化而完善);

--小型发布(系统的设计要能够尽可能地早交付);

--隐喻(找到合适的比喻传达信息);

--简单设计(只处理当前的需求,使设计保持简单);

--测试先行(先写测试代码,然后再编写程序);

--重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求);

--结队编程;

--集体代码所有制;

--持续集成(可以按日甚至按小时为客户提供可运行的版本);

--每周工作40个小时;

--现场客户;

--编码标准;

2、水晶法--不同策略;

3、并列争求法--冲刺、迭代;

4、自适应软件开发;