📝软件开发方法
type
status
date
slug
summary
tags
category
icon
password
软件开发生命周期
- 需求规格说明书包括:系统名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。
- 概要设计定义功能模块及功能模块之间的关系,详细设计研究模块内部,包括算法与数据结构、数据分布、数据组织、模块间信息接口和用户界面等设计。
- 测试氛围单元测试、集成测试、确认测试和系统测试。
软件开发模型
- 瀑布模型严格按照软件生命周期的各阶段顺序执行,有利于人员的组织管理,但明显存在使用缺陷,用户并不能清晰定义及描述其需求,初始版本的呈现周期较长。
- 原型模式的原理既是提前通过可视化的方式呈现需求,因此原型获取有三种途径:
- 利用模拟软件系统的人机界面和人机交互方式
- 真正开发一个原型
- 寻求一个或几个类似的软件
- 螺旋模型是在快速原型的基础上扩展的,支持大型软件开发,适用于面向规格说明、面向过程和面向对象的软件开发方法,通常将软件开发切割为多个周期,每个周期由4各阶段组成:
- 目标设定
- 风险分析
- 开发和有效性验证
- 评审
- 基于四代技术的模型,只侧重于支持软件的设计和实现阶段,并不支持全过程,其主要特征有:
- 非过程化语言,可通过生成器代替编程语言
- 与数据库密切相关
敏捷方法
- 敏捷方法的特点:
- 强调适应性而非预设性
- 强调面向人的而非面向过程的
- 敏捷方法的核心思想
- 是适应性的而非可预测性的
- 是以人为本而非一过程为本
- 迭代增量式的开发过程
- 敏捷方法的主要内容
- 4个核心价值观
- 沟通:设计者、开发者和客户之间
- 简单:满足当前需求,代码简单化
- 反馈
- 勇气
- 12条过程时间原则
- 简单设计
- 测试驱动
- 代码重构
- 结对编程
- 持续集成
- 现场客户
- 发行版本小型化
- 系统隐喻
- 代码集体所有制
- 规划策略
- 规范代码
- 40小时工作机制
RUP
- 9个核心工作流
- 业务建模
- 需求
- 分析与设计
- 实现
- 测试
- 部署
- 配置与管理
- 项目管理与环境
- 4个阶段:
- 初始
- 细化
- 构造
- 移交
- 特点
- 用力驱动
- 以体系结构为中心
- 体系结构的设计与代码设计无关,不依赖于程序语言
- 体系结构层次的设计问题包括系统的总体组织和全局控制、通信协议、同步、数据存取、给设计元素分配特定功能、设计元素的组织、物理分布、系统的伸缩性与性能
- 迭代与增量
- 4+1视图模型中,不同人员对于视图的关注重点不同
- 逻辑视图:描述系统功能,最终用户关注
- 实现视图:描述系统配置、装配,程序员关注
- 进程视图:描述系统性能、吞吐,集成人员关注
- 部署视图:描述系统安装、拓扑结构,系统工程师关注
- 用力视图:描述人机互动的系统行为,分析人员和测试人员关注
- RUP是一个通用的过程模板,包括开发指南、开发过程产物及过程中的角色说明,可用于各类项目,因体系庞大,需要对具体实例进行适当裁剪
- 裁剪步骤:
- 确定开发过程中涉及的工作流
- 确定工作流的产出
- 确定4个阶段间的演进
- 确定每个阶段的迭代计划
- 规划工作流内部结构
软件系统工具
- 软件开发工具的衡量因素:
- 功能
- 易用性
- 稳健性
- 硬件要求和性能
- 服务和支持
- 软件开发工具包括:
- 需求分析工具
- 基于自然语言或图形描述的工具:反应用户需求的功能规范,帮助分析员提高需求文档的质量,降低功能规范的维护费用,结构化分析工具通常由图形编辑器、数据字典管理器和监测机制构成,典型的方法如数据流图
- 基于形式化需求定义语言的工具:以基于知识的需求智能助手形式出现,通常包括一个知识库和一个推理(运行)机制
- 其他需求分析工具:通过展示可执行的原型,方便进行需求确认
- 设计工具(设计规范):
- 概要设计规范:描述软件的功能模块机器相互关系,说明模块的处理过程和外部行为,同时还应描述数据的逻辑结构
- 详细设计规范:描述每个模块的处理算法以及涉及到的所有数据结构
- 编码与排错工具
- 编码工具:
- 编辑程序:对源程序进行增删改
- 汇编程序:将汇编语言翻译成机器语言程序
- 编译程序:将高级语言程序翻译成低级语言程序
- 生成程序:通过特定语言描述的用户需求自动生成程序
- 排错工具:包括源代码排错程序和排错程序的生成程序
- 软件维护工具
- 版本控制工具:用来存储、更新、恢复和管理一个软件的多个版本
- 文档分析工具:对文档进行分析,给出软件维护活动所需要的维护信息
- 开发信息库工具:用来维护软件项目的开发信息
- 逆向工程工具:反编译工具的使用
- 再工程工具:代码重构、程序结构重构和数据结构重构等
- 软件管理和软件支持工具
- 项目管理工具:通常是把重点放在某一个或几个特性的管理环节,文不是支持所有活动
- 配置管理工具:用以辅助完成软件配置项的标识、版本控制、变化控制、审计和状态统计等基本任务,简化审计过程,改进状态统计,减少错误,提高质量
- 软件评价工具:不能定量化地梁的指标需要通过专家评分后推送给评价工具,已经定量化的可利用评价工具自动获取,评价内容可以使程序结构,如Mc-Cabe可对环路复杂度进行度量