软件 程序+文档+数据 软件功能分类 1)系统软件:与计算机硬件紧密配合使计算机各个部件与相关软件及数据协调、高效工作的软件。如操作系统、编译程序等。 2)支撑软件:协助用户开发软件的工具性软件。 3)应用软件 软件工程定义 把系统化、规范化、可度量的途径应用于软件开发、运行和维护过程中;研究其实现途径 软件生存周期
- 可行性研究与计划:解决问题是什么?有行得通解决方法?粗略计划
- 需求分析:目标系统必须作什么?可行性研究的需求分析是粗略、不准确;需求分析是完整、准:确、清晰、具体。
- 总体设计:怎样实现目标系统?根据需求设计方案分析推荐最佳方案;设计软件结构等。
- 详细设计:该怎样具体实现系统?设计每个模块的算法和数据结构。
- 实现(编码和单元测试):选择语言、工具翻译详细设计结果、测试模块。
- 集成测试:将经过单元测试模块组装起来进行测试,通过测试使软件达到预定要求。
- 确认测试:由用户按需求规格说明书规定进行测试
- 使用和维护:通过必要维护活动使系统持久满足用户要求。
改正性维护:软件运行过程中发现错误,进行维护。 适应性维护:软件运行软硬件环境变化,进行的维护 完善性维护:用户要求改进或扩充软件,进行的维护 预防性维护:为将来的维护作准备。 常用软件过程模型
瀑布模型 1.阶段具有顺序性和依赖性:前一阶段结束后一阶段开始,前一个阶段输出文档,后一个阶段输入文档。 2.推迟实现观点:瀑布模型在编码前设置系统分析、系统设计,推迟程序物理实现,保证前期工作扎实。 3.质量保证观点:瀑布模型每阶段坚持两个重要做法:一是每阶段都必须完成完整、准确的文档。软件开发时人员间通信、运行时期维护的重要依据。二是每阶段结束前对文档评审。 优点: 提高软件质量,降低维护成本,缓解软件危机。 缺点: 模型缺乏灵活性,无法解决需求不明确问题。用户不经过实践提出完整准确需求不切实际。 快速原型模型 快速建立反映用户主要需求的原型系统,反复由用户评价修正需求,开发出最终产品。 优点: 确定需求上优于瀑布模型(通过原型与用户交互);提供学习手段,通过开发原型和演示原型对开发者和使用者了解系统都有积极作用;有的软件原型可以成为最终产品的一部分。 缺点: 快速建立的系统结构加连续修改可能导致产品质量低下原型系统的内部结构可能不好。 增量模型 又称渐增模型,开发软件时将软件产品作一系列增量构件设计、编码、集成和测试。区别于瀑布和快速原型模型:瀑布和快速原型模型是一次把满足所有需求产品提交给用户。增量模型是分批向用户提交产品。 优点: 较短时间向用户提交可完成有用工作产品;用户有充裕时间学习适应产品;软件结构必须开放,方便向现有产品加入新构件。 缺点: 做到第三个优点比较困难。 螺旋模型 喷泉模型 Rational 统一过程 微软公司软件开发过程
|