软件工程基础软件工程基本概念与原理.ppt
《软件工程基础软件工程基本概念与原理.ppt》由会员分享,可在线阅读,更多相关《软件工程基础软件工程基本概念与原理.ppt(84页珍藏版)》请在三一办公上搜索。
1、软件工程基础教程,1/86,一、课程的性质、任务,“软件工程”是专业核心基础课程,它是研究软件开发和软件管理的一门工程科学。它的主要任务是掌握支持软件开发和管理的理论、方法、技术、标准以及计算机辅助软件工程的工具(Visio或Rose)环境等知识;使学生具有软件开发能力(包括熟练进行程序设计语言的结构化编码与可视化设计能力;UML的阅读和建模能力;培养用软件工程化及项目化的思想处理解决问题的能力等)。,2/86,二、通过学习应能达到如下目标:,接受一种思想。掌握软件工程的基本原理、概念与方法-主要包括软件系统的可行性研究、需求分析、概要设计、详细设计、编码、测试、维护、面向对象、项目管理等方面
2、的基本知识与方法。掌握软件工程中的一些基本技术方法,如数据流图、数据字典、结构分析方法,面向对象分析方法、集成测试方法、项目管理的基本方法等。结合模拟案例,要求学生从实际中掌握从面向过程到面向对象思想理论的基本方法和技巧。掌握软件开发文档的组织编写等。掌握一种工具。学期末能用Visio或Rose软件完成大作业的设计(画各种软件工程图)(指定或自找题目)把目前或以后要学的程序设计知识(C、Java、VC+、C#、ASP.NET)提高到一定理论高度认识。,小提示:,学会思想比掌握一种工具更为重要。,3/86,“现在大家都已认识到,如果有哪个项目不遵循软件工程原则必定会受到实践的惩罚。”,“软件工程
3、课是我们参加工作以后最能直接应用的一门专业课。”,一位刚毕业参加工作的计算机专业学生,三、体会:,4/86,目 录,第1章 软件工程的基本概念与原理 第2章 软件开发过程 第3章 软件项目管理 第4章 可行性分析与初步计划第5章 需求分析第6章 总体设计第7章 详细设计第8章 软件实现第9章 软件维护,第10章 从结构化到面向对象 第11章 面向对象的需求获取第12章 面向对象的分析与设计第13章 面向对象的测试,5/86,第1章 软件工程的基本概念与原理,6/86,先接受2个正确观点,1、“开发软件不等于编写程序”开发软件应该完成的工作远远多于编写程序应该完成的工作。设计算法(即完成指定功能
4、的步骤),然后用程序设计语言(例如:C语言)表达该算法。而开发软件并非就是编写程序,事实上编写程序仅仅是开发软件所应完成的工作的一部分,而且只占一小部分。为了开发出一个符合用户需要、质量合格的软件,软件工程师必须首先弄清楚用户面临的问题是什么,也就是要明确软件的“主攻”方向;接下来应该进行可行性研究方案,分析用户面临的问题是否有行得通的解决方案。为避免浪费资源,仅在该软件的开发是可行的前提下,才进行实质性的开发工作;,7/86,先接受2个正确观点,然后应该进行需求分析工作,通过与用户的反复交流,搞清楚用户对该软件的具体需求,这些需求是进行软件设计的依据;在编写程序之前需要先进行设计。通常,大型
5、软件的设计工作又分成两个阶段进行,先进行总体设计(又称为概要设计),再进行详细设计;编写程序实质上是把设计结果翻译成用某种程序设计语言书写的程序;程序编写出来之后,还需要经过严格的测试过程(需要的工作量通常占软件开发全部工作量的40%50%),软件确实符合用户需求而且质量合格,才能交付给用户使用。,8/86,先接受2个正确观点,2、“错误做法会导致软件危机”。开发软件不等于编写程序。但是,迄今为止,仍然有不少人错误地认为开发软件就是编写程序,或者认为开发软件主要就是编写程序。人们之所以有错误的认识并在开发软件时采用了错误的做法,主要可归因于在计算机系统发展的早期阶段“开发软件”的个体化特点。所
6、谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。,9/86,1.1 软件工程学科的诞生,1.1.1 软件的特点1.1.2 软件生产的发展1.1.3 软件危机1.1.4 软件工程的诞生,10/86,1.1.1 软件的特点,软件的概念:20世纪60年代提出的,(软件=程序+文档)程序是指令的集合;文档有关程序功能、设计、编程使用的文字或图形资料。软件产品的特殊性:软件与硬件构成完整的计算机系统;软件产品与硬件产品的主要区别包括:逻辑产品、无形、脑力劳动的结果,以程序和文档的形式体现,保存
7、在特殊介质上,被计算机执行才能体现出它的功能和作用软件生产成本集中在研制阶段;软件不会被用坏、不存在磨损和消耗,但会过时;是脑力创造的结果,还未完全摆脱手工开发方式,大部分是”定做”;软件生产与维护费用不断增加;,11/86,1.1.1 软件的特点,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列。计算机程序包括源程序和目标程序。数据是使程序能正常操纵信息的数据结构(即数据的组织形式)。文档是与程序开发,维护和使用有关的图文材料。,12/86,1.1.1 软件的特点,面向过程的程序=算法+数据结构 面向对象的程
8、序=对象+消息 面向构件的程序=构件+构架 软件=程序+数据+文档,13/86,软件的维护曲线,14/86,1.1 软件工程的产生,1.1.1 软件的特点1.1.2 软件生产的发展1.1.3 软件危机1.1.4 软件工程,15/86,1.1.2 软件生产的发展,软件生产经历了三个阶段:,程序设计时代(46年-56年),软件开发时代(56年-68年),软件工程时代(68年以后),16/86,程序设计时代(46年-56年),个体手工方式;低级语言、编程效率低、难,编程是聪明人的事;追求编程技巧和程序运行效率;代码不规范,不易读,不易维护;只重视编码,不重视设计和文档;硬件资源紧缺;,17/86,程
9、序系统时代(56年-68年),作坊式小团队开发;出现高级语言,编程效率有所提高;追求写代码技巧,但提出了结构化程序设计方法;软件复杂性增加,需求增加,但软件开发方法和软件项目管理技术跟不上,开发速度慢,与计算机硬件发展速度拉大距离;软件数量猛增,但质量差,可维护性差,维护成本急剧增加;上述矛盾越来越显著,最终导致了软件危机;,18/86,软件工程时代(68年以后),软件工程学科诞生,引入了“工程化”思想;结构化和面向对象的方法成熟;使用数据库、开发工具、开发环境、网络、分布式技术开发软件;软件开发技术有了很大进步,但没有突破性,软件价格不断上升,没有完全摆脱软件危机;,19/86,计算机软件发
10、展的三个时期及特点,20/86,计算机软件发展的三个时期及特点,21/86,1.1 软件工程的产生,1.1.1 软件的特点1.1.2 软件生产的发展1.1.3 软件危机1.1.4 软件工程诞生,22/86,1.1.3 软件危机,软件危机的产生软件危机的表现软件危机的原因,23/86,1.软件危机的产生,软件生产的第二个阶段,硬件生产成本下降、效率提高、性能提高,激发了软件需求;软件复杂性要求提高、生产效率低,与硬件生产进一步拉开距离;软件质量差,难维护,成本急剧增加;软件项目成功率低;上述矛盾的进一步激化,暴发了软件危机,24/86,1.1.3 软件危机,软件危机的产生软件危机的表现爆发软件危
11、机的原因,25/86,2.软件危机的表现,(1)经费超预算,项目一再拖延;(2)开发的软件不能满足用户要求;(3)软件可维护性差;(4)软件可靠性差;,26/86,3.软件危机产生的原因,(1)软件规划越来越大;(2)软件开发管理困难且复杂;(3)软件开发费用不断增加;(4)软件开发技术落后;(5)软件生产方式落后;(6)软件开发工具落后;,27/86,1.1 软件工程的产生,1.1.1 软件的特点1.1.2 软件生产的发展1.1.3 软件危机1.1.4 软件工程的诞生,28/86,1.1.4 软件工程诞生,软件危机促使软件工程学科诞生;借鉴硬件生产的“工程化”思想,1968年,北大西洋公约组
12、织提出了“软件工程”的概念,主张“用工程化思想来开发软件”。,29/86,第1章 软件工程的基本概念与原理,1.1 软件工程的产生1.2 软件工程的基本概念与原理1.软件工程的定义、性质2.软件工程关注的主要问题3.软件工程的目标4.软件的生命周期5.软件工程的基本原理,30/86,软件工程定义、性质,软件工程是用科学知识、技术、原理来定义、开发、维护软件的一门学科。概括地说,软件工程是指导软件开发和维护的一门工程学科。软件工程学科的根本要求:采用工程化的思想、原理、技术和方法来开发与维护软件,把好的管理技术和开发技术方法结合起来,追求可靠性、可维护性、满足用户需求、高的开发效率。用工程学科中
13、的观点进行费用估算、进度控制、制定计划和方案;用管理科学中的方法和原理进行软件生产过程的管理;用数学的方法建立软件开发中的各种模型和算法。,31/86,软件工程关注的关键问题,(1)关注于大型程序的构造(2)中心课题是控制复杂性(3)软件需求经常变化(4)开发软件的效率非常重要(5)有效的沟通是合作开发软件的关键,32/86,(1)软件工程关注于大型程序的构造,“大”与“小”的分界线并不十分清晰。通常把一个人在较短时间内写出的程序称为小型程序,而把多人合作用时半年以上才写出的程序称为大型程序。传统的程序设计技术和工具是支持小型程序设计的,不能简单地把这些技术和工具用于开发大型程序。,33/86
14、,(2)软件工程中心课题是控制复杂性,通常,软件所解决的问题十分复杂,以致于不能把问题放在一起试图一步解决。人们不得不把问题分解,使得分解出的每个部分是直观、明了、可理解的,而且各部分之间保持简单的联系。用这种方法并不能降低问题的整体复杂性,但是却可使它变成容易解决。注意,许多软件的复杂性主要不是由问题的内在复杂性造成的,而是由必须处理的大量细节,让人看上去觉得很复杂。结论:分解的手法,是控制复杂性的主要手段,控制复杂性的有效方法是分解:面向过程的方法,是按功能分解;面向对象的方法,是按责任分解。,34/86,(3)软件需求经常变化,绝大多数软件都模拟了现实世界的某一部分。现实世界不断变化,人
15、们对其认识也有偏差,这就造成了软件需求经常变化的特性。这种变化不仅存在于开发过程中和也存在交付使用以后。前者要求在开发过程中,应能灵活调整设计方案,后者要求软件应具有可维护性。,35/86,(4)开发软件的效率非常重要,随着社会经济和文化的发展,网络及各类开发与应用平台的不断翻新,计算机硬件性能的不断提高,社会对软件的数量、规模和复杂性不断提高,软件的需求供不应求的现象依然日益严重。因此,寻求开发与维护软件的更好、更有效的方法和工具,依然是软件工程的一个重要课题。不断提高软件开发效率非常重要,规范的开发过程好的开发环境和工具、提高软件复用是软件工程提高效率的有效办法。,36/86,(5)和谐地
16、合作是开发软件的关键,软件处理的问题日益复杂和庞大,软件开发往往是多人协同工作的成果,明确的责任划分和有效的互信是团队成员协作的关键。事实上仅有上述规定还不够,每个人还必须严格地按规定行事。为了迫使团队成员遵守规定,应该运用标准和规程。通常,可以用工具来支持这些标准和规程。总之,纪律是成功地完成软件开发项目的一个关键。,团队合作是必须的,使用有效的工具,进行有效的沟通是关键,37/86,软件工程的性质,综合性、交叉性学科涉及计算机科学、工程科学、管理科学、数学等领域。,38/86,1.2 软件工程的基本概念和原理,1.软件工程的定义、性质2.软件工程面临的主要问题3.软件工程的目标4.软件的生
17、命周期5.软件工程的基本原理,39/86,软件工程面临的问题,需求问题质量问题(可靠性可维护性可移植性等)生产效率(重用是为了提高效率)费用,40/86,1.2 软件工程的基本概念,1.软件工程的定义、性质2.软件工程面临的主要问题3.软件工程的目标4.软件的生命周期5.软件工程的基本原理,41/86,软件工程的目标,运用工程化思想组织与管理软件项目,采用科学的管理方法、开发方法及工具,提高软件开发效率,保证软件质量,提高软件的可靠性和可维护性,在合理的工期内生产出能够满足用户需求的软件产品。,42/86,1.2 软件工程的基本概念,1.软件工程的定义、性质2.软件工程面临的主要问题3.软件工
18、程的目标4.软件的生命周期5.软件工程的基本原理,43/86,4.软件生命周期理论,软件生存周期的 定义 软件生命周期阶段的 划分 软件生命周期阶段划分的 原则,44/86,软件生存周期的定义,软件生命周期(Software Life Cycle)是从软件开发需求被提出,启动可行性分析开始,经历软件开发过程,直到软件被开发出来、投入使用,最终被淘汰为止的整个时间。生存周期理论,把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,把规模大、活动多、管理复杂的软件开发活动变得容易控制和管理。,45/86,软件生命周期阶段划分,软件生存周期一般划分为软件定义、软件开发、运行与维护三个时期。软件定
19、义时期,可以进一步分为问题定义、可行性研究、需求分析三个阶段。软件开发时期,可以分为概要设计、详细设计、编码、测试等阶段。软件交付用户以后,就进入了漫长的运行与维护期,在软件被淘汰之前,要经历多次的纠错性、完善性和适应性维护活动,46/86,生命周期理论对开发过程的指导意义,每个阶段的工作均以前一阶段的结果为依据,并作为下一阶段的前提。每个阶段结束时,都要有技术审查和管理复审,从技术和管理两方面对阶段性开发成果进行检查,及时决定系统的继续进行,还是停工或返工。每个阶段都进行复审,主要检查必备的文档资料的质量和有效性。前一阶段复审通过了,后一个阶段才能开始。应避免到开发后期才发现先期工作中存在的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 基础 基本概念 原理
链接地址:https://www.31ppt.com/p-6434213.html