软件工程
- 软件工程是知道计算机软件开发和维护的一门工程学科
本质特征:
软件工程关注于大型程序的构造
软件工程的核心课题是控制复杂性:把大问题分解成几个小的问题
软件经常变化
软件开发效率非常重要(敏捷开发)
和谐合作是软件开发的关键
软件必须有效的支持他的用户
通常由具有一种文化背景的人体具有另一种文化背景的人创造产品
七个互相独立的基本原理------软件工程专家B.W.Boehm
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实施严格产品控制(主要实行基准配置)
- 采用现代化程序设计技术(提高开发和维护效率,而且可以提高软件质量)
- 结果应能清楚地审查(根据项目的总目标和完成期限规定开发组织的责任和 标准)
- 开发人员小组应少而精
- 承认不断改进软件工程实践的重要性
软件工程方法学
软件生命周期全过程中使用的一整套技术方法的集合称为方法学(范型);
软件工程方法学包含三个要素:方法、工具和过程。
-
传统方法学
又名生命周期方法学或结构化范型。 -
采用结构化技术(结构化分析结构化设计结构化实现)
把软件开发的生命周期划分为若干个阶段,然后顺序的完成每个阶段。
维护较为困难
== 面向对象方法学=对象+类+继承+用消息通信==
把对象作为数据以及对数据操作的行为的统一软件构件;
将对象划分成类;
按父类、子类的继承关系,将若干类组成层次结构的系统;
对象之间仅以发送消息互相联系。
软件规模较大时,使用传统方法学往往不成功
数据和行为同等重要,以数据为主线,把数据和对数据的操作紧密的结合起来。
软件生命周期
软件定义时期:问题定义,可行性研究,需求分析(最重要,完成系统逻辑模型,并产出规格说明书);
软件开发时期:总体设计,详细设计(系统设计);编码和单元测试,综合测试(系统实现);
软件维护(改正、适应性、完善性、预防性维护)