新县住房和城乡规划建设网站,广告公司网站(附falsh及源代码),人才培训网,电子商务网站建设评估的工具软件生命周期
问题定义#xff1a;要示系统分析员与用户进行交流#xff0c;弄清”用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”#xff0c;提交用户审查和确认
可行性研究#xff1a;一方面在于把待开发的系统的目标以明确的语言描述出来#xf…软件生命周期
问题定义要示系统分析员与用户进行交流弄清”用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”提交用户审查和确认
可行性研究一方面在于把待开发的系统的目标以明确的语言描述出来另一方面从经济、技术、法律等多方面进行可行性研究
需求分析确定软件系统的功能需求和非功能需求分析软件系统的数据要求导出系统的逻辑模型修正项目开发计划如有必要可以开发一个原型系统
开发阶段设计-实现-测试
维护
改正性维护在软件交付使用后由于开发测试时的不彻底、不完全、必然会有一部分隐藏的错误被带到运行阶段这些隐藏的错误在某些特定的使用环境下就会暴露。适应性维护是为适应环境的变化而修改软件的活动。完善性维护是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。预防性维护是为了进一步改善软件系统的可维护性和可靠性并为以后的改进奠定基础。
统一过程UP
初启阶段生命周期目标
精华阶段生命周期架构
构建阶段初始动作功能
移交阶段产品发布
CMM软件能力成熟度模型
初始级软件工程管理制度缺乏过程缺乏定义、混乱无序
可重复级建立了基本的项目管理过程和实践来追踪项目费用、进度和功能特性
已定义级所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件
已管理级收集对软件过程和产品质量的详细度量对软件过程和产品都有度量的理解与控制
优化级过程的量化反馈和先进的新思想新技术促使过程不断改进
CMMI软件能力成熟度集成模型
未完成级表明过程域的一个或多个特定目标没有被满足
已执行级过程通过转化可识别输入工作产品产生可识别的输出工作产品关注于过程域的特定目标的完成
已管理级过程作为已管理的过程制度化针对单个过程的实例的能力
已定义级过程作为已定义的过程制度化关注过程的组织级标准化和部署
量化管理级过程作为定量管理的过程制度化
优化级过程作为优化的过程制度化表明过程得到很好的执行且持续得到改进
COCOMO
基本COCOMO模型静态单变量模型用于对整个软件系统进行估算
中级COCOMO模型静态多变量模型将软件系统模型分为系统和部件两个层次
详细COMO模型将软件系统分为系统、子系统、模块三个层次除包括中级模型所考虑的因素外还考虑了在需求分析、软件设计等每一步的成本驱动属性的影响
COCOMOII
应用组装模型在软件工程的前期阶段使用这时用户界面的原型开发、对软件和系统交互的考虑、性能的评估以及技术成熟度的评价是最重要的
早期设计阶段模型在需求已经稳定并且基本的软件体系结构已经建立时使用
体系结构阶段模型在软件的构造过程中使用
Putnam估算模型动态多变量它是假设在软件开发的整个生存周期中工作量有特定的分布
ISO/IEC 9126(软件质量模型)
由3个层次组成第一层是质量特性第二层是质量子特性
特性含义
其中各六个质量特性与二十七个质量子特性的关系如下表 质量特性 功能性 可靠性 易使用性 效率 可维护性 可移植性 质量子特性 适合性 成熟性 易理解性 时间特性 易分析性 适应性 准确性 容错性 易学性 资源特性 易改变性 易安装性 互用性 易恢复性 易操作性 稳定性 一致性 依从性 易测试性 易替换性
耦合
无直接耦合最低耦合两个模块之间没有直接的关系它们分别从属于不同模块的控制与调用它们之间不传递任何信息。因此模块间的耦合性最弱模块独立性最高
数据耦合两个模块之间有调用关系传递的是简单的数据值
标记耦合两个模块之间传递的是数据结构如果高级语言的数组名记录名文件名等这些名字即为标记其实传递的是这个数据结构的地址
内容耦合最高耦合当一个模块直接使用另一个模块的内部数据或通过非正常入口而转入另一个模块内部
控制耦合模块间传递的信息不但有数据还包括控制信息
外部耦合模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)
公共耦合通过一个公共数据环境相互作用的那些模块间的耦合
内聚
功能内聚完成一个单一功能各个部分协同工作缺一不可(最高)
顺序内聚处理元素相关而且必须顺序执行
通信内聚所有处理元素集中在一个数据结构的区域上
过程内聚处理元素相关而且必须按特定的次序执行
瞬时内聚所包含的任务必须在同一时间间隔执行
逻辑内聚完成逻辑上相关的一组任务
偶然内聚完成一组没有关系或松散关系的任务最低
软件开发模型
瀑布模型
给出了软件生存周期中制定开发计划、需求分析、软件设计、编码、测试和维护等阶段以及各阶段的固定顺序上一阶段完成后才能进入到下一阶段整个过程如同瀑布流水。该模型为软件的开发和维护提供了一种有效的管理模式但在大量的实践中暴露出其缺点其中最为突出的是缺乏灵活性特别是无法解决软件需求不明确或不准确的问题。这些问题有可能造成开发出的软件并不是用户真正需要的并且这一点只有在开发过程完成后才能发现。所以瀑布模型适用于需求明确且很少发生较大变化的项目。
演化模型快速原型模型
允许在获取了一组基本需求后通过快速分析构造出软件的一个初始可运行版本(称作原型)然后根据用户在适用原型的过程中提出的意见对原型进行改进从而获得原型的新版本。这一过程重复进行直到得到令用户满意的软件。该模型主要用于对软件需求缺乏准确认识的情况。
螺旋模型
将瀑布模型和演化模型进行结合在保持二者优点的同时增加了风险分析从而弥补了二者的不足。该模型沿着螺线旋转并通过笛卡尔坐标的四个象限分别表示四个方面的活动制定计划、风险分析、实施工程和客户评估。螺旋模型为项目管理人员及时调整管理决策提供了方便进而可降低开发风险。
喷泉模型
以面向对象的软件开发方法为基础以用户需求为动力以对象来驱动的模型。该模型主要用于描述面向对象的开发过程体现了面向对象开发过程的迭代和无间隙特性。迭代指模型中的活动通常需要重复多次相关功能在每次迭代中被加入新的系统。无间隙是指在各开发活动(如分析、设计、编码)之间没有明显边界。
软件开发方法
结构化方法
面向数据流、自顶向下、适合数据处理领域的问题、不适合大规模、复杂的项目、难以适应需求的变化
Jackson方法
面向数据结构、适合小规模项目、当输入数据结构与输出数据结构没有对应关系时难以应用此方法
原型化方法
适合需求不清、业务理论不确定、需求经常变化的情况
Booch方法
面向数据结构 冗余附加技术
屏蔽硬件错误的容错技术
键程序和数据的冗余及调用检测、表决、切换、重构和复算的实现。
屏蔽软件错误的容错技术
冗余备份程序的存储及调用实现错误检测和错误恢复的程序实现容错软件所需的固化程序。
软件风险
项目风险项目风险威胁到项目计划若发生项目风险就有可能拖延项目的进度和增加项目的成本。项目复杂度、规模及结构不确定性也属于项目风险因素
技术风险技术风险威胁到开发软件的交付时间。若发生技术风险开发工作就可能变得很困难或根本不可能。规格说明的歧义性、技术的不确定性、技术陈旧以及前沿技术也是技术风险因素
商业风险商业风险威胁到开发软件的生存能力
市场风险开发了一个没有人真正需要的优良产品或系统
策略风险开发的产品不再符合公司的整体商业策略
销售风险开发了一个销售部们不知道如何去销售的产品
管理风险由于重点的转移或人员的变动而失去了高级管理层的支持
预算风险没有得到预算或人员的保证
Gantt
无法描述任务之间的依赖关系也无法确定影响进度的关键任务 Pert和CPM
Pert无法描述任务之间的并行关系