软件工程导论第1章.ppt
《软件工程导论第1章.ppt》由会员分享,可在线阅读,更多相关《软件工程导论第1章.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程(Software Engineering)课程介绍课程介绍课程主要内容:课程主要内容:课程主要内容:课程主要内容:第一部分:软件工程的基本定义、基本原理和软件过程模型第一部分:软件工程的基本定义、基本原理和软件过程模型第一部分:软件工程的基本定义、基本原理和软件过程模型第一部分:软件工程的基本定义、基本原理和软件过程模型(对应第一章)(对应第一章)(对应第一章)(对应第一章)第二部分:从可行性研究、需求分析、总体设计、详细设计、第二部分:从可行性研究、需求分析、总体设计、详细设计、第二部分:从可行性研究、需求分析、总体设计、详细设计、第二部分:从可行性研究、需求分析、总体设计
2、、详细设计、编码实现、维护六个步骤来说明软件开发过程中的具体问编码实现、维护六个步骤来说明软件开发过程中的具体问编码实现、维护六个步骤来说明软件开发过程中的具体问编码实现、维护六个步骤来说明软件开发过程中的具体问题和具体解决方法(对应第二、三、四、五、六、七、八题和具体解决方法(对应第二、三、四、五、六、七、八题和具体解决方法(对应第二、三、四、五、六、七、八题和具体解决方法(对应第二、三、四、五、六、七、八章)章)章)章)结构化分析设计结构化分析设计结构化分析设计结构化分析设计第三部分:面向对象方法概论、面向对象分析、设计、实现第三部分:面向对象方法概论、面向对象分析、设计、实现第三部分:面
3、向对象方法概论、面向对象分析、设计、实现第三部分:面向对象方法概论、面向对象分析、设计、实现(对应第九、十、十一、十二章)(对应第九、十、十一、十二章)(对应第九、十、十一、十二章)(对应第九、十、十一、十二章)第四部分:软件项目管理基本概念(对应第十三章)第四部分:软件项目管理基本概念(对应第十三章)第四部分:软件项目管理基本概念(对应第十三章)第四部分:软件项目管理基本概念(对应第十三章)考核方式考核方式考试方法:采用百分制,满分为考试方法:采用百分制,满分为考试方法:采用百分制,满分为考试方法:采用百分制,满分为100100分。分。分。分。(1 1)闭卷考试:占总评成绩的)闭卷考试:占总
4、评成绩的)闭卷考试:占总评成绩的)闭卷考试:占总评成绩的50%50%。(2 2)期中考试:占总评成绩的)期中考试:占总评成绩的)期中考试:占总评成绩的)期中考试:占总评成绩的30%30%。(3 3)课堂作业、平时考勤、提问:占总评成绩的)课堂作业、平时考勤、提问:占总评成绩的)课堂作业、平时考勤、提问:占总评成绩的)课堂作业、平时考勤、提问:占总评成绩的10%10%;课;课;课;课后作业、实验报告:占总评成绩的后作业、实验报告:占总评成绩的后作业、实验报告:占总评成绩的后作业、实验报告:占总评成绩的10%10%。第第1章:软件工程学概述章:软件工程学概述1.1 1.1 软件危机软件危机软件危机
5、软件危机 6060年年年年代代代代中中中中期期期期以以以以前前前前:通通通通用用用用硬硬硬硬件件件件相相相相当当当当普普普普遍遍遍遍,软软软软件件件件却却却却是是是是为为为为某某某某个个个个具体的应用而编写的。具体的应用而编写的。具体的应用而编写的。具体的应用而编写的。6060年年年年代代代代中中中中期期期期到到到到7070年年年年代代代代中中中中期期期期:软软软软件件件件作作作作坊坊坊坊。这这这这时时时时软软软软件件件件危危危危机机机机出出出出现现现现,随随随随之之之之而而而而来来来来人人人人们们们们开开开开始始始始研研研研究究究究消消消消除除除除危危危危机机机机的的的的途途途途径径径径,从
6、从从从而而而而形形形形成成成成一一一一门新的学科门新的学科门新的学科门新的学科软件工程学。软件工程学。软件工程学。软件工程学。软件危机软件危机软件危机软件危机:计算机软件的开发和维护过程中所遇:计算机软件的开发和维护过程中所遇:计算机软件的开发和维护过程中所遇:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都到的一系列严重问题。(正常、不正常运行软件都到的一系列严重问题。(正常、不正常运行软件都到的一系列严重问题。(正常、不正常运行软件都具有这种问题)具有这种问题)具有这种问题)具有这种问题)1.1.1 软件危机的介绍软件危机的介绍软件危机的实质:软件危机的实质:软
7、件危机的实质:软件危机的实质:l l如何开发软件,以满足对软件日益增长的需求如何开发软件,以满足对软件日益增长的需求如何开发软件,以满足对软件日益增长的需求如何开发软件,以满足对软件日益增长的需求l l如何维护数量不断膨胀的已有软件如何维护数量不断膨胀的已有软件如何维护数量不断膨胀的已有软件如何维护数量不断膨胀的已有软件1 1)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;2 2)用户对完成的软件系统不满意的现象经常发生;)用户对完成的软件系统不满意的现象经常发生;)用户对完
8、成的软件系统不满意的现象经常发生;)用户对完成的软件系统不满意的现象经常发生;3 3)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;4 4)软件常常是不可维护的;)软件常常是不可维护的;)软件常常是不可维护的;)软件常常是不可维护的;5 5)软件通常没有适当的文档资料;)软件通常没有适当的文档资料;)软件通常没有适当的文档资料;)软件通常没有适当的文档资料;6 6)软件成本在计算机系统总成本中所占的比例逐年上升;)软件成本在计算机系统总成本中所占的比例逐年上升;)软件成本在计算机系统总成本中所占的比例逐年上升;)软件成本在计算机系
9、统总成本中所占的比例逐年上升;7 7)软件开发生产率提高的速度跟不上计算机应用的发展)软件开发生产率提高的速度跟不上计算机应用的发展)软件开发生产率提高的速度跟不上计算机应用的发展)软件开发生产率提高的速度跟不上计算机应用的发展趋势。趋势。趋势。趋势。软件危机的典型表现:软件危机的典型表现:1.1.2 产生软件危机的原因产生软件危机的原因1)软件本身特点造成;)软件本身特点造成;程序规模庞大;程序规模庞大;程序复杂性随着程序规模的增加而呈指数上程序复杂性随着程序规模的增加而呈指数上升。升。2)软件开发与维护的方法不正确。)软件开发与维护的方法不正确。主要表现:主要表现:(a)忽视软件需求分析;
10、)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;)认为软件开发就是写程序并使之运行;(c)轻视软件维护;)轻视软件维护;在软件开发的不同阶段进行修改需要付出的在软件开发的不同阶段进行修改需要付出的在软件开发的不同阶段进行修改需要付出的在软件开发的不同阶段进行修改需要付出的代价很不相同:代价很不相同:代价很不相同:代价很不相同:高高中中低低早期早期中期中期后期后期软件开发时期软件开发时期代价代价引入同一修改的代价随时间变化的趋势引入同一修改的代价随时间变化的趋势1.1.组织管理:组织管理:组织管理:组织管理:软件开发不是某种个体劳动的神秘技巧,软件开发不是某种个体劳动的神秘技巧,软件
11、开发不是某种个体劳动的神秘技巧,软件开发不是某种个体劳动的神秘技巧,软件开发应该是一种组织良好、管理严密、各类人软件开发应该是一种组织良好、管理严密、各类人软件开发应该是一种组织良好、管理严密、各类人软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。员协同配合、共同完成的工程项目。员协同配合、共同完成的工程项目。员协同配合、共同完成的工程项目。2.2.方法:方法:方法:方法:应该推广使用在实践中总结出来的开发软件应该推广使用在实践中总结出来的开发软件应该推广使用在实践中总结出来的开发软件应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的
12、的成功的技术和方法,并且研究探索更好更有效的的成功的技术和方法,并且研究探索更好更有效的的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段技术和方法,尽快消除在计算机系统早期发展阶段技术和方法,尽快消除在计算机系统早期发展阶段技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。形成的一些错误概念和做法。形成的一些错误概念和做法。形成的一些错误概念和做法。3.3.工具:工具:工具:工具:应该开发和使用更好的软件工具。在软件开应该开发和使用更好的软件工具。在软件开应该开发和使用更好的软件工具。在软件开应该开发和使用更好的软件工具。在软件开发的
13、每个阶段都有许多繁琐重复的工作需要做,在发的每个阶段都有许多繁琐重复的工作需要做,在发的每个阶段都有许多繁琐重复的工作需要做,在发的每个阶段都有许多繁琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作适当的软件工具辅助下,开发人员可以把这类工作适当的软件工具辅助下,开发人员可以把这类工作适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。做得既快又好。做得既快又好。做得既快又好。1.1.3 解决软件危机的途径解决软件危机的途径 如果把各个阶段使用的软件工具有机地集如果把各个阶段使用的软件工具有机地集合成一个整体,支持软件开发的全过程,合成一个整体,支持软件开发的全过程,则
14、称为则称为软件工程支撑环境。软件工程支撑环境。为为为为了了了了解解解解决决决决软软软软件件件件危危危危机机机机产产产产生生生生的的的的问问问问题题题题,软软软软件件件件工工工工程程程程与与与与方方方方法法法法学学学学逐逐逐逐渐渐渐渐形形形形成成成成,然然然然后后后后出出出出现现现现了了了了两两两两个个个个相相相相互互互互相相相相承承承承又又又又各有侧重的学科:各有侧重的学科:各有侧重的学科:各有侧重的学科:1 1)软软软软件件件件工工工工程程程程学学学学:主主主主要要要要应应应应用用用用工工工工程程程程的的的的方方方方法法法法和和和和技技技技术术术术研研研研究究究究软软软软件件件件开开开开发发
15、发发与与与与维维维维护护护护的的的的方方方方法法法法、工工工工具具具具和和和和管管管管理理理理的的的的一一一一门交叉学科。门交叉学科。门交叉学科。门交叉学科。2 2)程序设计方法学程序设计方法学程序设计方法学程序设计方法学:主要应用数学的方法研:主要应用数学的方法研:主要应用数学的方法研:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学究程序的性质以及程序设计的理论和方法的学究程序的性质以及程序设计的理论和方法的学究程序的性质以及程序设计的理论和方法的学科。科。科。科。1.2 软件工程软件工程1.2.1 1.2.1 软件工程的介绍软件工程的介绍软件工程的介绍软件工程的介绍1968年
16、年NATO会会议议:软软件件工工程程就就是是为为了了经经济济地地获获得得可可靠靠的的且且能能在在实实际际机机器器上上有有效效地地运运行行的的软软件件,而建立和使用完善的工程原理。而建立和使用完善的工程原理。1993年年IEEE:软软件件工工程程是是(1)把把系系统统的的、规规范范的的、可可度度量量的的途途径径应应用用于于软软件件开开发发、运运行行和和维维护护过过程程,也也就就是是把把工工程程应应用用于于软软件件;(2)研研究究(1)中提到的途径。)中提到的途径。1.1.软件工程关注于大型程序的构造;软件工程关注于大型程序的构造;软件工程关注于大型程序的构造;软件工程关注于大型程序的构造;2.2
17、.软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性;3.3.软件经常变化;软件经常变化;软件经常变化;软件经常变化;4.4.开发软件的效率非常重要;开发软件的效率非常重要;开发软件的效率非常重要;开发软件的效率非常重要;5.5.和谐地合作是软件开发的关键;和谐地合作是软件开发的关键;和谐地合作是软件开发的关键;和谐地合作是软件开发的关键;6.6.软件必须有效地支持它的用户;软件必须有效地支持它的用户;软件必须有效地支持它的用户;软件必须有效地支持它的用户;7.7.在软件工程领域中是由具有一种文化背景的在软件工程领域中
18、是由具有一种文化背景的在软件工程领域中是由具有一种文化背景的在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。人替具有另一种文化背景的人创造产品。人替具有另一种文化背景的人创造产品。人替具有另一种文化背景的人创造产品。软件工程的本质特性:软件工程的本质特性:1.2.2 软件工程的基本原理软件工程的基本原理1.用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理;2.坚持进行阶段评审;坚持进行阶段评审;3.实行严格的产品控制;实行严格的产品控制;4.采用现代程序设计技术;采用现代程序设计技术;5.结果能清楚地审查;结果能清楚地审查;6.开发小组的人员应该少而精;
19、开发小组的人员应该少而精;7.承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。1.2.3 软件工程方法学软件工程方法学软件工程软件工程软件工程软件工程包括:技术和管理两个方面的内容,是技术和包括:技术和管理两个方面的内容,是技术和包括:技术和管理两个方面的内容,是技术和包括:技术和管理两个方面的内容,是技术和管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。通常把在软件生命周期全过程中使用的一整套技术方法通常把在软件生命周期全过程中使用的一整套技术方法通常把在软件生命周期全过程中使用的一整套技术方法通常把
20、在软件生命周期全过程中使用的一整套技术方法的集合称为的集合称为的集合称为的集合称为方法学方法学方法学方法学(MethodologyMethodology),也称为范型),也称为范型),也称为范型),也称为范型(ParadigmParadigm)。)。)。)。软件工程方法学的软件工程方法学的软件工程方法学的软件工程方法学的3 3要素要素要素要素:方法方法方法方法、工具工具工具工具和和和和过程过程过程过程一一.传统方法学传统方法学 也称为生命周期方法学或结构化范型。也称为生命周期方法学或结构化范型。也称为生命周期方法学或结构化范型。也称为生命周期方法学或结构化范型。从时间角度从时间角度对软件开发和
21、维护的复杂问题进行分解,把软件生命的漫长周期依次划分为对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。文档是通信的工具,它们清楚准确地说明了到这个时候为止,关于该项工程已经知道了什么,同时确立了下一步工作的基础。此外,文档也起备忘录的作用,在完成生命周期每个阶段的任务时,应该采用适合该阶段任务特点的系统化的技术方法结构分析或结构设计技术。结构化方法(结构化方法(Structure Method)有:有:1)结构化设计方法()结构化设计方法(SD);
22、);2)结构化分析方法(结构化分析方法(SA););3)结构化分析与设计技术()结构化分析与设计技术(SADT)4)JACKSON方法方法 5)WARNIER方法方法二二.面向对象方法学面向对象方法学 把数据和对数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。模拟人类认识世界解决问题的方法和过程。模拟人类认识世界解决问题的方法和过程。模拟人类认识世界解决问题的方法和过程。面向对象的方法面向对象的方法面向对象的方法面向对象的方法 =对象(属性与服务的封装)对
23、象(属性与服务的封装)对象(属性与服务的封装)对象(属性与服务的封装)+分类分类分类分类 +继承继承继承继承 +通过消息的通讯通过消息的通讯通过消息的通讯通过消息的通讯面向对象方法把数据和行为看成同等重要,是一种以数据为主线,把数面向对象方法把数据和行为看成同等重要,是一种以数据为主线,把数面向对象方法把数据和行为看成同等重要,是一种以数据为主线,把数面向对象方法把数据和行为看成同等重要,是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。其具有如下据和对数据的操作紧密地结合起来的方法。其具有如下据和对数据的操作紧密地结合起来的方法。其具有如下据和对数据的操作紧密地结合起来的方法。其
24、具有如下4 4个要点:个要点:个要点:个要点:把对象把对象把对象把对象(Object)(Object)作为融合了数据及在数据上的操作行为的统一的作为融合了数据及在数据上的操作行为的统一的作为融合了数据及在数据上的操作行为的统一的作为融合了数据及在数据上的操作行为的统一的软件构件。用对象分解取代传统方法的功能分解。软件构件。用对象分解取代传统方法的功能分解。软件构件。用对象分解取代传统方法的功能分解。软件构件。用对象分解取代传统方法的功能分解。把所有对象划分为类把所有对象划分为类把所有对象划分为类把所有对象划分为类(Class)(Class):每个类定义了一组数据和一组操:每个类定义了一组数据和
25、一组操:每个类定义了一组数据和一组操:每个类定义了一组数据和一组操作。作。作。作。按照父类(基类)和子类(派生类)的关系,把若干个相关类按照父类(基类)和子类(派生类)的关系,把若干个相关类按照父类(基类)和子类(派生类)的关系,把若干个相关类按照父类(基类)和子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。子类能够继承。组成一个层次结构的系统。子类能够继承。组成一个层次结构的系统。子类能够继承。组成一个层次结构的系统。子类能够继承。对象彼此间仅能通过发送消息互相联系。对象是数据处理的主对象彼此间仅能通过发送消息互相联系。对象是数据处理的主对象彼此间仅能通过发送消息互相联系。对象是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论
限制150内