软件工程
软件工程方法学包含三部分:方法, 工具, 过程
方法 | 工具 | 过程 |
---|---|---|
软件开发的各项任务的技术方法 | 为运用方法而提供的支撑环境 | 所需要完成一系列任务的框架 |
软件工程方法学
软件工程方法学
方法 | 优点 | 缺电 |
---|---|---|
传统方法学 | 降低软件产品复杂性,提高可理解性,简化开发和维护,促进软件重用 | 不适应事务变化需求,开发周期长,规模庞大时不难以维护 |
面向对象方法 | 易维护,质量高,效率高,易扩展 | — |
软件生命周期
软件工程
- 瀑布模型(文档驱动)
阶段间具有顺序性和依赖性,推迟顺序的观点(不过早编程),质量保证的观点,早期不可逆
- 快速模型(用户需求驱动)
快速建立一个能反映用户需求的系统,让用户试用,通过实践了解系统概貌
- 螺旋模型(风险驱动)
用于内部开发大规模项目,每个阶段都进行风险评估
- 敏捷过程
(适用于中小型项目)- 极限编程
客户作为开发团队成员,一人编码,一人审查和测试,设计简单,便于调整
可行性研究
开发一个基于计算机的系统受到资源(人力,财力,设备等)和时间上的限制,可行性分析主要从经济,技术,法律等方面来分析给出的解决方案是否可行,能否在给定的资源和时间的约束下完成
技术可行性(风险分析,资源分析,技术分析)
经济可行性(成本,效益,货币的时间价值,投资回收期,纯收入)
法律可行性(系统开发工程中可能涉及到的合同,侵权,责任以及与各种法律相抵触的问题)
需求分析
软件定义时期的最后一个阶段,回答系统必须怎么做
总体设计
目的:
- 概述地说明系统该如何实现
- 设计系统结构,确定程序有哪些模块组成,以及各模块之间的关系
阶段:
- 系统设计阶段确定系统的实现方案
- 结构设计阶段确定软件结构
过程
- 设想提供方案
- 选取合适方案
- 推荐最佳方案
- 功能分解
- 设计软件结构
- 设计数据库
- 制定测试计划
- 书写文档
- 审查和复查