版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程概论
主讲:曾子维辽宁科技大学软件学院联系方式:Tel:5929800作业Email:1536349117@
资料Email:zzwustlm@163.com,密码5929800课程介绍总学时:48学时(3学分),均为理论。考核方式
成绩=课堂(10%)+模拟项目(40%)+期末考试(50%,开卷考试)。参考资料[1]沈文轩《软件工程基础与使用教程》自编2012版[2]张海藩《软件工程导论(第五版)》清华大学出版社 2008.2[3]史济民等《软件工程-原理方法与应用》高等教育出版社2002.12第2版[4]《人月神化》
(美)弗雷德里克.布鲁克斯清华大学出版社课程介绍上篇:软件工程基础篇(主要内容)第1章 软件工程概述第2章 软件过程第3章 软件计划第4章 软件需求基础第5章 软件设计基础第6章 模型结构化的从分析到设计第7章 面向对象的从分析到设计第8章 软件实现第9章 软件维护第10章软件项目管理课程介绍下篇:基于架构与MVC模式的一体化开发(简介或自学)第11章架构与MVC模式第12章面向架构与MVC的一体化开发方法第13章一体化开发方法应用实例教学目标了解软件的概念和软件产品的特点; 了解软件危机以及解决办法——软件工程的重要性;了解软件工程的概念、原理和内容。教学重点
软件工程的基本原理。教学难点软件工程课程的框架。第1章软件工程概述1.1软件的概念1.2软件的发展与软件危机的产生1.3解决软件危机的途径1.4软件工程的定义1.5软件工程的内容1.6软件发展的新阶段与新问题1.7软件工程的演变发展第1章软件工程概述1.1.1
软件和软件产品1.软件1983年IEEE为软件下的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。软件工程的先驱者RogerS.Pressman教授:软件是(1)能够完成预定功能和性能的可执行的指令(计算机程序);(2)使得程序能够适当地操作信息的数据结构;(3)描述程序的操作和使用的文档。“软件=程序”错误认识;1.1软件的概念“软件=程序+数据+文档”被广泛接受。程序和数据是软件运行的基本要素(基因),而文档则是延续软件运行寿命的保障。2.软件产品①
软件产品自身特点软件是抽象的逻辑产品不是实物产品。软件的实现与硬件和支撑环境密切相关,不能独立存在。软件复制容易,软件著作权保护。软件不会损耗,但会随着环境的变化而退化。软件的错误较多,测试也无法杜绝。1.1软件的概念②业界环境特点软件开发者和用户知识领域不同,造成交流上的困难。不断修改需求,致使双方厌倦,工程流产。大型应用软件开发工期长于软件平台技术的更新周期,往往开发完就是落后的产品。构件与复用技术并不理想,在IT公司内部通过开发积累可利用一些复用,但还没有做到象其它物理产品那样在市场上供应∕购买标准构件。开发人员流动性大,质量和工期不保证。1.1软件的概念1.1.2软件产品的类型不同的角度可分为不同类型按工作方式分:有实时软件、交互式软件、批处理式软件等;按服务对象分:有商业通用、企业定制、个人办公、工程应用、科学计算、人工智能等软件。软件工程的角度划分如下三个层面:基础软件、应用软件、支撑软件。1.1软件的概念1.1.2软件产品的类型1.基础软件:保证计算机本身运行和支撑应用软件运行的基础环境;①系统软件:操作系统、语言处理系统、通用办公软件②数据库:如Oracle、SQLServer、DB2、Informix、MySQL等国外数据库软件,国产的数据库软件有东软OpenBASE、金仓KingbaseES等。③中间件:为处于自己上层的应用软件提供运行与开发的环境,帮助用户开发和集成应用软件。有两个关键特征,为上层的应用层服务;必须连接到操作系统的层面,并确保持运行工作状态。例如:微软公司的IIS、Apache公司的开源Tomcat。1.1软件的概念1.1.2软件产品的类型2.支撑软件:在系统软件和应用软件之间,提供应用软件设计、开发、测试、评估、运行检测等辅助功能的软件①编程工具:微软的VisualStudio、IBM提供的开源集成开发环境Eclipse等;②建模工具:如IBMRationalRose软件建模;③版本控制、软件测试;3.应用软件:解决特定应用领域问题或解决具体项目而开发的软件;4.嵌入式软件:就是嵌入在硬件中的操作系统和开发工具软件及应用程序;应用及其广泛。1.1软件的概念1.2.1软件的发展过程软件发展的四个过程:1.2软件的发展与软件危机的产生表1-1软件开发早期三个阶段
阶段加工特点软件特点主要用途第一阶段1950-1960(个体式)个体化编程,依靠个人想法和智慧;只有程序设计概念,没有过程和方法;只有源代码、无其它文档;语言低级,工具简单;小规模;特定目的专用;科学计算,不追求商业效应;第二阶段1960-1970(作坊式)小组合作式“软件作坊”,基本上仍然沿用早期的个体化软件开发方式;有了软件设计的概念,采用结构化方法,但不讲究过程,没形成软件开发的理论体系;出现高级语言和数据库技术;规模变大、结构复杂、成本增高、维护困难;导致烂尾子工程、项目流产,失败的项目越来越多,软件危机逐渐显现。应用于企业;可以作为商品出售,可以赚钱;第三阶段始于上世纪70年代中期至80年代后期(团队式)形成规模化团队开发,出现软件业;软件开发技术有很大进步,面向对象开发技术出现,开发工具、网络环境、分布式计算有很大发展;但未能获得突破性进展,软件开发技术的进步一直未能满足日益增长的软件需求。大量软件开发项目的失败和经济损失,明确认识软件危机的存在及其解决之道,软件开发过程的管理,软件工程的意识得到重视和应用;软件的数量及规模急剧膨胀;软件功能及运行环境复杂;开发难度越来越大,找不到解决维护的办法,失败的软件开发项目屡见不鲜;软件危机的表现突出。面向市场的软件商品已形成一定的市场规模;主要市场是需求巨大的合同式企业定制软件,解决企业的信息管理;1.2.2软件危机1.软件危机概念软件危机(softwarecrisis),这个名词是1968年在德国召开的NATO(NorthAtlanticTreatyOrganization,北大西洋公约组织)会议上计算机科学家首次提出的。先看几个例子:1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。1.2软件的发展与软件危机的产生1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序:DO5I=1,3误写为:DO5I=1.3IBM公司的OS/360,共约100万条指令,花费了5000个人年;经费达数亿美元,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…”
1.2软件的发展与软件危机的产生2.软件危机产生的原因
1.2软件的发展与软件危机的产生计算机应用发展软件数量多规模大,功能复杂个体化软件开发方法无开发过程指导无开发过程管理软件成本高、质量低、维护困难软件危机客观因素主观因素主客观不相适应1.2.3软件危机的表现(1)(1)软件开发进度难以预测,开发成本难以控制,导致超预算、超时;(2)产品功能难以满足用户需求;(3)软件产品质量无法保证;(4)软件缺少适当的文档资料,维护困难;(5)软件成本超过硬件成本;(6)软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势;1.2软件的发展与软件危机的产生1.3
解决软件危机的途径管理措施项目管理配置管理过程管理质量控制
技术措施开发过程开发技术与方法开发工具软件工程学(软件产品开发工程)软件工程(SoftwareEngineering)的两个定义1968年在第一届NATO(北大西洋公约组织)会议上曾经给出了软件工程的一个早期定义:“软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”软件工程的目标:是经济地开发出高质量的软件;软件工程方法:运用工程学科的相关工程原理去开发软件。1.4软件工程的定义1993年IEEE进一步给出了一个更全面更具体的定义:“软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。”软件工程的作用:(1)是指导软件产品进行计划、开发和维护的工程学科(2)指导软件行业按工业化生产过程进行软件开发,即按照目标化、规范化、文档化、标准化——工程化。1.4软件工程的定义软件工程是围绕软件开发的一门交叉学科: 软件工程=计算机科学+工程学+管理学。1.5.1从计算机科学视角看软件工程1.软件工程的知识体系IEEE的软件工程知识体系指南(SWEBOK)中界定了软件工程的10个知识领域:软件工程过程(SoftwareEngineeringProcess)软件工程工具和方法(SoftwareEngineeringToolsandMethods)软件需求(SoftwareRequirement)1.5软件工程的内容1.软件工程的知识体系
IEEE的软件工程知识体系指南(SWEBOK)中界定了软件工程的10个知识领域:软件设计(SoftwareDesign)
软件构造(SoftwareConstruction)
软件测试(SoftwareTesting)
软件维护(SoftwareMaintenance)软件配置管理(SoftwareConfigurationmanagement)
软件工程管理(SoftwareEngineeringmanagement)
软件质量(SoftwareQuality)1.5软件工程的内容2.软件工程三要素
分别是过程、方法和工具
软件质量的保障。目标:软件工程必须以有组织的质量保证为基础,进行全面质量管理,不断地过程改进使软件工程方法走向成熟。1)软件工程“过程”:是进行一系列有组织的活动,从而能够合理地和及时地开发出计算机软件。过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理。1.5软件工程的内容2)软件工程“方法”:为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的开发活动如何来做。开发方法经历了从面向结构、面向对象、面向组件到面向服务的发展工程。3)软件过程“工具”:为过程和方法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件工程(CASE,ComputerAidedSoftwareEngineering)。CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。1.5软件工程的内容3.转变学习思维
从计算机技术的学习上升到软件工程的学习,要提升学习的思维:1)将模块的算法分析与程序设计的思维定式提升到系统分析与设计层面;2)将只定位程序员的训练提升到系统工程师培养层面;3)将只关心符合计算机逻辑提升到符合工程规范的层面;1.5软件工程的内容1.5.2从工程视角看软件工程1.5软件工程的内容可用性性确正选取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视软件工程的管理基本过程原则目标(高质量高效益)过
程支持过程组织过程合算性1.5.3从管理视角看软件工程
软件工程的过程、方法和工具许多属于管理学领域问题,又由于软件的特殊性,软件规模难以估算、劳动效率和产品质量难以评价、加工过程难以控制,因此软件工程管理与物理加工的传统管理既具有共性又具有特殊性,即要借鉴传统工程管理规范又要发展新的理论和实践,所以对软件工程的管理的是一个不断发展和完善、新的管理学科。软件工程管理的主要形式是项目管理。1.5软件工程的内容软件项目管理就是运用系列的知识、技能、工具和技术,在软件开发的活动中有效地掌控资源,对项目时间、质量和成本进行管理。如项目计划、团队管理、质量管理、过程管理、过程改进、配置管理等。有关内容见本书第10章“软件项目管理”。1.5软件工程的内容1.5.4从基本原理看软件工程
软件工程的专家学者们陆续提出了100多条关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《天津中心城区杂草物种的多样性和四十年变化》
- 《CD103~+DC调控NK细胞抗黑色素瘤机制的研究》
- 《基于DSP的故障诊断方法研究》
- 《基于点入渗参数计算土渠床渗漏损失的方法研究》
- 《基于资源循环理论的造纸行业会计确认、计量与信息披露问题研究》
- 《ST辅仁控股股东掏空上市公司案例研究》
- 《基于模型预测的永磁同步电机高速弱磁控制策略研究》
- 2024租用钩机施工合同协议书
- 淮阴工学院《外国文学作品选读》2023-2024学年第一学期期末试卷
- 淮南师范学院《体育舞蹈》2022-2023学年第一学期期末试卷
- 国企应聘面试技巧培训课件
- 服装店规划设计方案
- 单位工程竣工验收自评报告
- 2024领导力培训课程ppt完整版含内容
- 《对外贸易管制概述》课件
- 20以内加减法口算题(10000道)(A4直接打印-每页100题)
- 穷爸爸富爸爸
- 税务会计的年终总结报告
- 宿舍设计问题现状分析报告
- 高铁乘务调研报告
- 虚拟人运动仿真研究的中期报告
评论
0/150
提交评论