📝软件开发方法
📝软件开发方法
type
status
date
slug
summary
tags
category
icon
password
 
😀
 

软件开发生命周期

  • 需求规格说明书包括:系统名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。
  • 概要设计定义功能模块及功能模块之间的关系,详细设计研究模块内部,包括算法与数据结构、数据分布、数据组织、模块间信息接口和用户界面等设计。
  • 测试氛围单元测试、集成测试、确认测试和系统测试。

软件开发模型

  1. 瀑布模型严格按照软件生命周期的各阶段顺序执行,有利于人员的组织管理,但明显存在使用缺陷,用户并不能清晰定义及描述其需求,初始版本的呈现周期较长。
  1. 原型模式的原理既是提前通过可视化的方式呈现需求,因此原型获取有三种途径:
    1. 利用模拟软件系统的人机界面和人机交互方式
    2. 真正开发一个原型
    3. 寻求一个或几个类似的软件
  1. 螺旋模型是在快速原型的基础上扩展的,支持大型软件开发,适用于面向规格说明、面向过程和面向对象的软件开发方法,通常将软件开发切割为多个周期,每个周期由4各阶段组成:
    1. 目标设定
    2. 风险分析
    3. 开发和有效性验证
    4. 评审
  1. 基于四代技术的模型,只侧重于支持软件的设计和实现阶段,并不支持全过程,其主要特征有:
    1. 非过程化语言,可通过生成器代替编程语言
    2. 与数据库密切相关

敏捷方法

  1. 敏捷方法的特点:
    1. 强调适应性而非预设性
    2. 强调面向人的而非面向过程的
  1. 敏捷方法的核心思想
    1. 是适应性的而非可预测性的
    2. 是以人为本而非一过程为本
    3. 迭代增量式的开发过程
  1. 敏捷方法的主要内容
    1. 4个核心价值观
      1. 沟通:设计者、开发者和客户之间
      2. 简单:满足当前需求,代码简单化
      3. 反馈
      4. 勇气
    2. 12条过程时间原则
      1. 简单设计
      2. 测试驱动
      3. 代码重构
      4. 结对编程
      5. 持续集成
      6. 现场客户
      7. 发行版本小型化
      8. 系统隐喻
      9. 代码集体所有制
      10. 规划策略
      11. 规范代码
      12. 40小时工作机制

RUP

  1. 9个核心工作流
    1. 业务建模
    2. 需求
    3. 分析与设计
    4. 实现
    5. 测试
    6. 部署
    7. 配置与管理
    8. 项目管理与环境
  1. 4个阶段:
    1. 初始
    2. 细化
    3. 构造
    4. 移交
  1. 特点
    1. 用力驱动
    2. 以体系结构为中心
      1. 体系结构的设计与代码设计无关,不依赖于程序语言
      2. 体系结构层次的设计问题包括系统的总体组织和全局控制、通信协议、同步、数据存取、给设计元素分配特定功能、设计元素的组织、物理分布、系统的伸缩性与性能
    3. 迭代与增量
  1. 4+1视图模型中,不同人员对于视图的关注重点不同
    1. 逻辑视图:描述系统功能,最终用户关注
    2. 实现视图:描述系统配置、装配,程序员关注
    3. 进程视图:描述系统性能、吞吐,集成人员关注
    4. 部署视图:描述系统安装、拓扑结构,系统工程师关注
    5. 用力视图:描述人机互动的系统行为,分析人员和测试人员关注
  1. RUP是一个通用的过程模板,包括开发指南、开发过程产物及过程中的角色说明,可用于各类项目,因体系庞大,需要对具体实例进行适当裁剪
  1. 裁剪步骤:
    1. 确定开发过程中涉及的工作流
    2. 确定工作流的产出
    3. 确定4个阶段间的演进
    4. 确定每个阶段的迭代计划
    5. 规划工作流内部结构

软件系统工具

  1. 软件开发工具的衡量因素:
    1. 功能
    2. 易用性
    3. 稳健性
    4. 硬件要求和性能
    5. 服务和支持
  1. 软件开发工具包括:
    1. 需求分析工具
      1. 基于自然语言或图形描述的工具:反应用户需求的功能规范,帮助分析员提高需求文档的质量,降低功能规范的维护费用,结构化分析工具通常由图形编辑器、数据字典管理器和监测机制构成,典型的方法如数据流图
      2. 基于形式化需求定义语言的工具:以基于知识的需求智能助手形式出现,通常包括一个知识库和一个推理(运行)机制
      3. 其他需求分析工具:通过展示可执行的原型,方便进行需求确认
    2. 设计工具(设计规范):
      1. 概要设计规范:描述软件的功能模块机器相互关系,说明模块的处理过程和外部行为,同时还应描述数据的逻辑结构
      2. 详细设计规范:描述每个模块的处理算法以及涉及到的所有数据结构
    3. 编码与排错工具
      1. 编码工具:
          • 编辑程序:对源程序进行增删改
          • 汇编程序:将汇编语言翻译成机器语言程序
          • 编译程序:将高级语言程序翻译成低级语言程序
          • 生成程序:通过特定语言描述的用户需求自动生成程序
      2. 排错工具:包括源代码排错程序和排错程序的生成程序
    4. 软件维护工具
      1. 版本控制工具:用来存储、更新、恢复和管理一个软件的多个版本
      2. 文档分析工具:对文档进行分析,给出软件维护活动所需要的维护信息
      3. 开发信息库工具:用来维护软件项目的开发信息
      4. 逆向工程工具:反编译工具的使用
      5. 再工程工具:代码重构、程序结构重构和数据结构重构等
    5. 软件管理和软件支持工具
      1. 项目管理工具:通常是把重点放在某一个或几个特性的管理环节,文不是支持所有活动
      2. 配置管理工具:用以辅助完成软件配置项的标识、版本控制、变化控制、审计和状态统计等基本任务,简化审计过程,改进状态统计,减少错误,提高质量
      3. 软件评价工具:不能定量化地梁的指标需要通过专家评分后推送给评价工具,已经定量化的可利用评价工具自动获取,评价内容可以使程序结构,如Mc-Cabe可对环路复杂度进行度量
 
📝需求管理The Milkmaid
Loading...