软件工程部分备考

1. 软件生存周期

  • 可行性分析
  • 需求分析:解决“做什么”的问题。
  • 概要设计:根据需求分析的结果,对软件整个系统进行设计,例如系统框架设计、数据库设计等。
  • 详细设计:描述每个模块的具体功能,使功能精确、结构化。
  • 程序编码:将软件设计的结果装换成可运行的程序代码。
  • 软件测试:在软件设计完成后要经过严格的测试,已发现软件在整个设计过程中存在的问题并加以修正。
  • 维护:在软件投入使用后,由于需要不断适应新要求,需要对软件进行维护,包括纠错性维护和改进性维护两个方面。

2. 能力成熟度模型(CMN)

分为5个成熟度级别:初始级、可重复级、已定义级、已管理和优化级。成熟度级别越高,软件开发生产精度越高,每单位工程的生产周期越短。

  1. 初始级:软件过程是无序的,可能也是混乱的。
  2. 可重复级:建立了基本的项目管理过程,能重复早先类似应用项目取得的成功。
  3. 已定义级:已将软件管理和工程俩方面的过程文档化、标准化
  4. 已管理级:收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。
  5. 优化级:过程的量化反馈和先进的新思想、新技术促使过程不断改进。

3. 统一过程模型

统一过程(UP):用力和风险驱动,以架构为中心,迭代并且增量的开发过程。

分为4个阶段:

  1. 初始阶段——生命周期目标
  2. 精华阶段——生命周期架构
  3. 构建阶段——初始运作功能
  4. 移交阶段——产品发布

4. 软件开发模型

  • 瀑布模型:迭代模型/迭代开发方法。
  • 演化模型:快速应用开发。

在获取用户的一组基本需求后,通过快速分析构造出该软件的一个初始可运行的版本,初始的软件称为原型。

  • 增量模型:构建组装模型/基于构建的开发方法。

基于瀑布模型的基本成分和原型实现的迭代特征。

  • 螺旋模型:统一过程/统一开发方法。

将瀑布模型和演化模型相结合,4个活动:制定计划、风险分析、实施过程、客户评估。

  • 快速原型模型:敏捷开发方法。
  • V模型:基于架构的开发方法。(瀑布模型的一种变体)
  • 喷泉模型:模型驱动的开发方法。(以用户需求为动力、以对象为驱动,主要采用对象技术的软件开发过程,具有迭代和无间隙特性)
  • 基于构件的开发模型:本质上是演化模型,以迭代方式构建软件。

5. 软件开发方法

  • 结构化方法

面向数据流的开发方法,结构化分析根据分解与抽象的原则,用数据流图来建立系统的功能模型,完成需求分析工作。自顶向下、逐层分解。

  • Jackson方法

,面向数据结构的开发方法,以数据结构为驱动。

  • 原型化方法

适用于用户需求不清、业务理论不确定、需求经常变化的情况。

  • 面向对象的开发方法

UML统一建模语言。

  • 敏捷开发方法

目标是通过尽可能早、持续地对有价值的软件的交付使客户满意。极限编程:轻量级、高效、低风险、柔性、可预测、科学的软件开发方式,由价值观、原则、实践和行为4部分组成。

  • 极限编程

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

12个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户、编码标准。

6. 需求分析

  1. 功能需求:考虑要做什么
  2. 性能需求:技术性指标
  3. 用户或人的因素:用户类型
  4. 环境需求:未来软件应用的环境,包括软硬件
  5. 界面需求:对数据格式、数据存储介质的规定
  6. 文档需求:针对哪些读者
  7. 数据需求:数据的格式、接收、发送数据的频率
  8. 资源使用需求:软件运行时所需的数据、内存空间等
  9. 安全保密要求
  10. 可靠性要求:考虑系统的可靠性
  11. 软件成本消耗与开发进度需求
  12. 其他非功能需求

7. 内聚和耦合

         内聚

  • 功能内聚:完成单一功能,每个部分协调工作,缺一不可
  • 顺序内聚:处理元素相关,必须顺序执行
  • 通信内聚:所有处理元素集中在一个数据结构的区域
  • 过程内聚:处理元素相关,而且必须按照特定的次序进行
  • 瞬时内聚:所包含的任务必须在同一时间段完成
  • 逻辑内聚:完成逻辑上的一组任务
  • 偶然内聚:完成一组没有关系或松散关系任务

        耦合

  • 非直接耦合:两个模块之间没有直接关系,之间的联系通过主模块的控制和调用实现
  • 数据耦合:一组模块借助参数表传递简单数据
  • 标记耦合:通过参数表传递记录信息
  • 控制耦合:模块之间的传递的信息包含用用于控制模块内部逻辑的信息
  • 外部耦合:一组模块都访问同一全局简单变量,不是通过参数表传递全局变量的信息
  • 公共耦合:一组模块都访问同一公共数据环境
  • 内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不能通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值