软件工程课程笔记
第一章:软件与软件工程
软件工程三要素是方法、工具、过程。
软件开发模型
软件开发模型又称为软件过程模型。
软件过程模型是对软件开发实际过程的抽象和简化。
目前典型的有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。
- 瀑布模型
主要思想:
软件开发过程与软件生命周期一致;
相领二阶段存在因果关系;
需要对阶段性产品进行评审
优点:
软件开发过程具有系统性,可控性,客服了软件开发的随意性;
每个阶段都有产出,非常经典的模型
缺点:
项目开始阶段用户很难精确提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。每个阶段都依赖于上一阶段,不能应对客户需求变更;
项目开发晚期才能得到程序运行版本,这时修改软件需求和开发的错误代价很大;
采取线性模型组织项目开发经常发生小组成员“堵塞状态”。
- 增量模型
增量模型是一个非整体开发的模型。
先开发核心模块,按照模块一个个开发。
- 快速原型
- 螺旋模型
- 其他
软件开发方法
软件开发方法分为两大类:
①面向过程的开发方法
②面向对象的开发方法
结构化开发方法:
现有软件开发方法中最成熟,应用最广泛的方法,特点是快速、自然和方便。
面向对象方法
四个要点:对象;类;父类(基类)和子类(派生类);消息
模拟人类习惯的思维方式,使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
信息系统开发方法
第三章:需求分析基础
软件生命周期
需求工程
没有需求就没有软件。
软件需求的困难:
- 应用领域的广泛性;
- 非功能性需求建模技术缺乏
- 沟通上的困难