软件工程与UML笔记
软件工程与UML笔记 第一章 面向对象软件工程概论 要求学习的内容: 软件危机 软件工程的由来 软件工程的定义 软件工程的范畴 软件工程实践的目标 软件开发包含的活动 软件维护的成本 修复bug的代价 一.软件危机 软件定义: 软件是程序以及开发、使用和维护程序所需要的所有文档。 软件危机定义: 软件开发和维护过程中遇到的一系列严重问题 表现: 对软件开发成本和进度的估计不准确; 软件产品质量很不可靠; 可维护性差,软件的文档资料不完整和不合格; 软件成本逐年上升; 软件开发生产率不高,不能满足客观需要。 软件危机原因: (1)人们对于软件概念与范畴的理解。 早期软件工程师崇尚个人英雄主义,整个软件开发通常处于一种无序的状态。他们大多认为编写程序就是软件开发的全部。这种观念会导致随着软件规模的增大,程序员对于文档的忽略与不重视,使得软件开发产品的不健全与维护困难。 (2)软件的规模日益增长、设计日益复杂。 Visual Studio/Office等(M->G) (3)软件开发组织发生变化。 在上述因素发生变化的同时,软件开发组织也在发生着变化。早期开发一款小型软件,可能1-2个开发人员就可以完成。然而随着软件规模的飞速增长,软件开发组织也在同比例增长,由单打独斗的状态改变为一个团队若干开发人员共同研发一款产品。人员由一个变成团队协同开发,这种组织形式的转变