Skip to content

Latest commit

 

History

History
99 lines (99 loc) · 5.67 KB

File metadata and controls

99 lines (99 loc) · 5.67 KB

第1章 软件开发方法

1.1 论快速原型技术

  • 原型的分类
    • 抛弃型
    • 追加型或演化型
  • 当系统规模很大、要求复杂、系统服务不清晰时,在需求分析阶段先开发一个系统原型是很值得的。特别是当性能要求比较高时,在系统原型上先做一些试验是很有必要的。
  • 原型开发技术
    • 可执行规格说明
    • 基于场景的设计
    • 自动程序设计
    • 专用语言
    • 软件复用技术
    • 简化假设
    • 面向对象技术

1.2 论软件开发平台的演变和选用

  • 软件开发平台主要向Web的应用方向发展。
  • 由于Web是基于分布和异构的网络环境的,所有要求开发平台应具有开放性、分布性和平台无关性。

1.3 论软件开发范式的选用原则

  • 软件开发模型大致可分为三种类型
    • 以软件需求完全确定为前提的瀑布模型;
    • 在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,例如螺旋模型、统一过程、敏捷方法等;
    • 以形式化开发方法为基础的变换模型;
  • 软件开发模型
    • 瀑布模型:即生存周期模型,其核心思想是按工序将问题简化,将功能的实现与设计分开,便于分工协作,采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
    • 螺旋模型:将瀑布模型和演化模型结合起来,不仅体现了两个模型的优点,而且还强调了其他模型均忽略了的风险分析。螺旋模型的每一周期都包括需求定义、风险分析、工程实现和评审4个阶段。
    • 变换模型:基于形式化规格说明语言及程序变换的软件开发模型。
    • 喷泉模型:是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
    • 智能模型:也称为基于知识的软件开发模型,它把瀑布模型和专家系统结合在一起,利用专家系统来帮助软件开发人员进行开发工作。
    • 增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征。增量模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。
    • WINWIN模型:强调风险分析和标识,通过早期谈判使客户和开发者之间达成一致协议,通过一组谈判活动达成双赢的结果。
    • RAD模型:快速应用开发(RAD)模型,是一个增量型的软件开发过程模型,强调极短的开发周期。
    • 并发开发模型:也称并发工程,关注于多个任务的并发执行,表示为一系列的主要技术活动、任务及他们相关的状态。并发过程模型是由客户要求、管理决策、评审结果驱动的。
    • 基于构件的开发模型:是利用模块化方法,将整个系统模块化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量的构造应用软件系统的过程。
    • 敏捷方法:强调适应性而非预测性、强调以人为中心而非以流程为中心,强调对变化的适应和对人性的关注。

1.4 论软件的选用和二次开发

  • 系统功能与能力配置
  • 软件性能价格比
  • 与硬件的匹配性
  • 二次开发能力与环境
  • 开放性
  • 可靠性

1.5 论嵌入式操作系统的功能与特性

  • 稳定性
  • 精炼高效
  • 可裁剪
  • 代码固化
  • 启动速度快
  • 具有实时性
  • 能够适应多种处理器平台
  • 一般提供配套的开发环境

1.6 论软件的复用

  • 软件复用(重用)是指在两次或多次的软件开发过程中重复使用相同或相近软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。通常,把这种可复用的元素称做软构件(通常简称为“构件”),可重用的软件元素越大,就称复用的粒度越大。
    1. 构件模型及实现
    1. 构件获取
    1. 构件管理
    1. 检索与提取构件
    1. 理解与评价构件
    1. 修改构件
    1. 构件组装

1.7 论面向对象开发技术及其应用

  • OOA面向对象分析
  • OOD面向对象设计
  • OOP面向对象程序设计
  • 由于封装特性,面向对象方法是有利于软件维护的。

1.8 论软件开发环境的选用和建立

  • 较完善的软件开发环境通常具有如下功能:
    • 软件开发的一致性及完整性维护
    • 配置管理及版本控制
    • 数据的多种表示形式及其在不同形式之间自动转换
    • 信息的自动检索及更新
    • 项目控制和管理
    • 对方法学的支持

1.9 论自由软件的合理使用

  • 开放源代码\自由软件的发展不能排除在现有开放技术和应用需求的基础上,开发具有自由知识产权(自有版权)的技术成果或软件商品的可能性。
  • 开发自有知识产权(自有版权)的操作系统应当严格按照现有知识产权(版权)的法律、法规进行,并依据法律、法规界定自有知识产权(自有版权)相关问题。

1.10 论迭代式软件开发过程与方法

  • 目前,主要的迭代式开发过程和方法包括统一开发过程(RUP)和敏捷开发方法。
  • 主要的敏捷开发技术
    • 极限编程
    • 自适应软件开发

1.11 论敏捷开发方法的应用

  • 不同的流派
    • 极限编程
    • 自适应软件开发
    • 水晶方法
    • 特性驱动开发
  • 从开发者的角度
    • 短平快会议
    • 小版本发布
    • 较少的文档
    • 合作为重
    • 客户直接参与
    • 自动化测试
    • 适应性计划调整
    • 结对编程
  • 从管理者的角度
    • 测试驱动开发
    • 持续继承
    • 重构