25/1/15上海大学计算机学院1软件工程学概述可行性分析与需求分析总体设计详细设计实现维护面向对象方法学引论面向对象分析面向对象设计复习25/1/15上海大学计算机学院2软件工程学概述◆软件危机●定义:指在计算机软件的开发和维护过程中所遇到的一系列严重问题
●典型表现:开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意;“闭门造车”;软件质量不可靠;软件常常是不可维护的;软件成本的比例逐年上升;软件产品“供不应求”;●产生软件危机的原因软件的规模加大、复杂性提高、性能增强;软件是逻辑产品,尚未完全认识其本质和特点;缺乏系统的开发、维护大型软件项目的技术手段和管理方法;用户和软件开发人员的理解鸿沟;错误的认识和作法25/1/15上海大学计算机学院3软件工程学概述◆软件工程●定义软件工程是指导计算机软件开发和维护的一门工程学科
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它
●本质特性软件工程的中心课题是控制复杂性和谐地合作是开发软件的关键……25/1/15上海大学计算机学院4软件工程学概述◆软件工程的7条基本原理1
用分阶段的生命周期计划严格管理2
坚持进行阶段评审3
实行严格的产品控制4
采用现代程序设计技术5
结果应能清楚地审查6
开发小组的人员应该少而精7
承认不断改进软件工程实践的必要性25/1/15上海大学计算机学院5软件工程学概述软件生命周期是软件产品或系统一系列相关活动的全周期
软件生命周期的3个大阶段1
软件定义:确定软件开发总目标;确定工程的可行性;导出实现策略及系统功能;估计资源和成本,并且制定工程进度表
问题定义、可行性研究、需求分析2
软件开发:具体设计和实现在前一个时期定义的软件