主要学习系统开发的基础知识,包括软件开发方法的基本概念、需求管理、开发管理、设计方法、软件重用和逆向工程等相关知识
定义功能模块及功能模块之间的关系
研究模块内部
算法与数据结构数据分布数据组织模块间信息接口用户界面等设计严格按照软件生命周期各阶段顺序执行
有利于人员的组织管理,但明显存在使用缺陷:用户并不能了清晰定义及描述其需求、初始版本的呈现周期较长提前通过可视化的方式呈现需求
原型获取有三种途径
利用模拟软件系统的人机界面和人机交互方式真正开发一个原型寻求一个或者几个类似的软件在快速原型的基础上扩展的,支持大型软件开发,适用于面向规格说明,面向过程和面向对象的软件开发方法
可分为多个周期开发,每个周期由4个阶段组成
目标设定风险分析开发和有效性验证评审侧重于支持软件的设计和是现阶段,并支持全过程,
其主要特征:
非过程化语言:可通过生成器代替编程语言与数据库密切相关4个核心价值观:
沟通设计者、开发者和客户之间
简单满足当前需求,代码简单化
反馈勇气 12条实践原则简单设计测试驱动代码重构结对编程持续集成现场客户发行版本小型化系统隐喻代码集体所有制规则策略规范代码40小时工作机制用例驱动
以体系结构为中心
体系结构的设计与代码设计无关,并不依赖于程序语言迭代与增量体系结构层次的设计问题包括 系统的总体组织全局控制通信协议同步数据存取给设计元素分配特定功能设计元素的组织物理分布系统的伸缩性性能4+1视图模型
逻辑视图
描述系统功能,最终用户关注
实现试图
描述系统配置、装配,程序员关注
进程试图
描述系统性能、吞吐,集成人员关注
部署试图
描述系统安装、托盘结构,系统工程师关注
用例视图
描述人机互动的系统行为,分析人员和测试人员关注
RUP是一个通用的过程模板,包括开发指南、开发过程产物及过程中的角色说明,可用于各类项目,因体系庞大,需要针对具体实例进行适当裁剪
裁剪步骤
确定开发过程设计的工作流确定工作流的产出确定4个阶段间的演进确定每个阶段的迭代计划规划工作流内部结构(难点)反编译工具的使用属于逆向工程的范畴
再工程工具目前的工具主要集中在代码重构、程序结构重构、数据结构重构等方面
软件管理和软件支持工具 项目管理工具配置管理工具软件评价工具 如Mc-Cabe可以对环路复杂度进行度量CMM模型第二级关键过程域增减需求管理的内容,目标是
为软件需求建立基线软件计划、产品和活动与软件需求保持一致为严格控制软件项目,需要确保
评估已提出的变更适当的人选评估和决策变更变更应及时通知所有人需求变更需要遵循一定的程序需求变更管理的目的是将变更产生的负面影响降到最低
问题分析和变更描述变更分析和成本计算变更实现需求变更应遵循的原则
必须遵循变更控制程序变更未经批准不得实施变更应有变更控制委员会进行评估和决策项目干系人有权获悉变更信息变更库中原始文档不得更改或者删除变更实施均应可追溯到已获批的变更请求变更控制委员会的总则/章程
目的授权范围成员构成决策流程操作步骤需求跟踪链 traceability link
客户需求向前追溯到软件需求(需求变更更新至需求规格说明书中)从软件需求回溯相应的客户需求(确认每个需求的源头)从软件需求向前追溯到下一级工工作产品(逐步确保最终产品满足需求)从产品部件回溯到软件需求(验证部件来源)变更只能在项目时间、预算、资源等限制允许范围内进行协商 进行影响分析的能力依赖于跟踪能力、数据的质量和完整性
范围
项目章程(初始的范围说明书)项目范围管理计划组织过程资产(过程性成果)批准的变更申请时间管理
活动定义(WBS)活动排序活动资源估算活动历时估算指定进度计划