欢迎来到天天文库
浏览记录
ID:38445384
大小:3.32 MB
页数:38页
时间:2019-06-12
《软件工程第1章概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程徐晓君课程性质:考试课学时:64(48+16)学分:4成绩分配:50%+50%本课程讲述软件工程的基本概念、原理、方法和工具,系统地介绍目前流行的和较成熟的软件工程技术。学习软件开发与维护的普遍原理和基本技术,提高软件开发维护的效率。前续课程:数据库原理、数据结构、软件开发工具后续课程:毕业实践、毕业设计目录概述软件计划软件需求分析软件总体设计软件详细设计软件编码软件测试软件实施与维护软件项目管理面向对象软件工程技术第1章概述本章要点软件软件工程软件危机软件生存周期软件开发模型软件开发方
2、法1.1软件工程学的几个基本概念1.1.1软件与软件工程1.软件及其组成软件是指计算机程序及其有关的数据和文档的集合软件可执行部分应用程序系统程序不可执行部分面向用户的文档面向开发方的文档软件的发展第一代(20世纪40年代中期到60年代中期):程序设计阶段。第二代(从20世纪60年代中期到70年代初期):程序系统阶段,软件=程序+文档阶段1968年北大西洋公约组织正式提出“软件工程”(softwareengineering)的术语第三代(从20世纪70年代中期到90年代):软件工程阶段。这阶段的
3、主要任务是为了克服软件危机,适应软件发展的需要,而采用“工程化的生产”方式。第四代技术阶段(从20世纪80年代中期至今):软件产业在世界经济中已经占有举足轻重的地位。项目程序设计时代程序系统时代软件工程学时代名称程序软件软件产品生产方式个人作坊式项目小组软件组织质量取决于个人水平取决于小集团水平生产管理可靠性评价和质量控制设计对象硬件为中心硬件/软件为中心以软件为中心开发工具无无系统工具且个人所有软件生成器等,为组织所公有维护无由开发者进行维护,且在设计中不重视设计维护问题。设计制作时均考虑维护
4、问题,维护占成本主要部分,近年已达到80%以上。设计方法没有系统的方法自顶向下的方法结构化程序设计及自顶向下和自底向上结合的方法2.软件危机与软件工程软件危机:在软件开发和维护过程中所遇到的一系列严重问题。软件危机包含下述两方面的问题:如何满足日益增长的软件需求如何维护数量不断膨胀的已有软件软件危机的主要表现供求矛盾软件成本与开发进度难以估计软件产品不符合用户的实际需要软件的可靠性差软件的维护费急剧上升软件危机产生的原因目标不清情况不明通信误解步骤混乱不遵守统一的标准解决软件危机的途径组织良好、
5、管理严密、各类人员协同配合统一开发标准使用软件开发辅助工具3.软件工程软件工程:1983年美国《IEEE软件工程标准术语》对软件工程下的定义为:软件工程是开发、运行、维护和修复软件的系统方法.1993年,IEEE为软件工程的定义是:“软件工程是将系统化的、规范化的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件中的方法的研究。本书:采用工程的概念、原理、技术和方法来研制和维护软件。软件工程是指导计算机软件开发和维护的工程学科。软件工程采用工程的概念、原理、技术和方法来开发与维
6、护软件。软件工程的目标是以较少的投资获取较高质量的软件1.1.2软件工程的任务及研究范围软件工程主要研究的内容:软件的规范与标准p9软件开发技术软件工程方法学软件工具和软件支撑环境软件管理1.软件工程方法学软件工程方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每个阶段的活动、产品、验收的步骤和完成准则三要素:方法:完成软件开发任务的技术方法(定义说明法、结构化的构造方法、文档资料描述方法)。为软件开发提供了“如何做”的技术工具:为了支持软件的开发和维护而研制的程序系统。(需求分析工具
7、、编辑程序、编译程序、排错工具等)过程:把输入转化为输出的一组彼此相关的资源和活动。规定了完成任务的工作阶段、工作内容、产品、验收的步骤和完成的准则2、软件工具和软件支撑环境软件工具是指可以用来帮助开发、测试、分析、维护其他计算机程序及文档资料的一类程序。需求分析工具设计工具编码工具确认工具维护工具软件支撑环境:在基本软硬件基础上,提供一组能支持软件生存周期的工具。组成:数据库一组工具命令或调用方式3、软件管理目的:合理地使用人力、物力资料,以最少消耗来开发软件,保证软件质量,最有效地组织力量,
8、制定计划,保证各类资源与各种活动协调同步。内容:工程计划管理费用管理人员组织管理质量管理等。1.1.3软件生存周期软件生存周期:软件产品或软件系统从计划、分析、设计、投入使用到被淘汰的全过程。软件生存周期中,软件开发与维护时的费用越低,软件的使用寿命越长,产生的价值就越大,这就是掌握软件工程学的目的。软件生存周期各阶段及相应的任务软件计划问题定义:确定系统的目标、规模、基本任务可行性研究:经济、技术、法律等是否可行软件开发需求分析:确定系统应具备的具体功能总体设计:系统的模块功能、模块结构及模块
此文档下载收益归作者所有