




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/5/30,1,软件工程SoftwareEngineering,主讲:任挺E-Mail:rtscm,2020/5/30,2,软件是信息化社会和知识经济的基础,它渗透到人们生活、工作的所有领域,并迅速的改变着人们的生活和工作方式,改变着社会的产业结构和面貌。人们对软件的依靠越来越密切,社会需要大量的丰富多彩的软件,并随着社会的发展不断更新、充实和提高。,2020/5/30,3,教材,软件工程(第二版)齐治昌谭庆平宁洪高等教育出版社,2020/5/30,4,教材和参考书,1、软件工程导论(第四版)张海藩编著清华大学出版社2、实用软件工程(第二版)郑人杰殷人昆陶永雷清华大学出版社3、软件工程实践者的研究方法RogerS.Pressman机械工业出版社,2020/5/30,5,第一章软件与软件工程,软件与软件工程的概念软件生存周期软件开发模型软件工程工具及环境,2020/5/30,6,1.1软件,软件的概念;软件的特点;软件的分类;软件的发展;软件危机。,第一章软件与软件工程,2020/5/30,7,1.1.1软件的概念,软件是什么?,1.1软件,2020/5/30,8,软件的概念,计算机世界的软件软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。软件=程序+数据+文档程序=算法+数据结构,1.1软件,2020/5/30,9,1.1.2软件的特点,软件开发与传统的产品生产存在本质差别;软件是逻辑产品,而不是物理产品;软件不会磨损;,1.1软件,2020/5/30,10,软件的描述(13),软件由程序、数据、文档组成。,1.1软件,2020/5/30,11,软件的描述(23),程序设计语言面向机器汇编语言、机器语言等面向过程Fortran,Pascal,C等面向对象C+,Java等面向问题结构化查询语言SQL等,1.1软件,2020/5/30,12,软件的描述(33),数据用程序设计语言要求的数据结构表示文档规范准确清晰简洁无歧义自然语言结构化英语图表,1.1软件,2020/5/30,13,1.1.3软件分类,系统软件实时软件商务软件工程和科学计算软件嵌入式软件人工智能软件个人计算机软件,1.1软件,2020/5/30,14,1.1.4软件的发展,软件发展的四个阶段软件发展存在的问题,1.1软件,2020/5/30,15,2)软件发展存在的问题(1/2),软件开发能力不能满足人们的需要。社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性。建造高可靠性、高质量软件的任务任重路远。,1.1软件,2020/5/30,16,软件发展存在的问题(2/2),若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦界面的方法。,1.1软件,2020/5/30,17,1.1.5软件危机,1.软件危机的表现硬件发展超过软件,硬件潜能没有充分发挥。软件产业的发展长期滞后,与硬件发展不协调。,1.1软件,2020/5/30,18,软件危机,软件开发成本过高软件质量得不到保证软件开发效率低难以控制开发进度,工作量估计困难软件不能满足社会发展的需求,成为社会、经济发展的制约因素,1.1软件,2020/5/30,19,程序规模、工作量与成本的关系,1.1软件,2020/5/30,20,2.软件危机原因,软件的规模加大、复杂性提高、性能增强软件是逻辑产品,尚未完全认识其本质和特点缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法,1.1软件,2020/5/30,21,软件危机原因,用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足,1.1软件,2020/5/30,22,3.软件危机仍在继续-影响软件质量的糊涂认识(1/3),在项目的初始阶段对系统若明若暗就开始写程序认为软件是灵活的容易修改,对软件需求的改变不以为然程序调试成功标志着工作的结束,1.1软件,2020/5/30,23,软件危机仍在继续-影响软件质量的糊涂认识(2/3),程序运行前无法评价程序的质量一个软件项目给客户提交的主要是程序,而软件文档则认为可有可无、可多可少等等。虽然发布了软件标准和规范,但在实践中执行需要额外的开销,划不来,1.1软件,2020/5/30,24,软件危机仍在继续-影响软件质量的糊涂认识(3/3),虽然开发了许多软件工具,但很多开发者对使用这些工具兴趣不大为了开发软件人们不惜用重金购买最新型号的主机和工作站而不愿意购买软件工具在软件开发过程中,进度迟后就增派更多的程序员突击,赶进度,1.1软件,2020/5/30,25,1.2软件工程的概念,1968年NATO计算机科学会议软件危机-根源-解决途径软件工程,第一章软件与软件工程,2020/5/30,26,软件工程的定义(3/3),软件工程IEE93(1)将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程;(2)上述方法的研究。,1.2软件工程的概念,2020/5/30,27,软件工程三要素过程、方法和工具(1/5),质量是软件工程的生命线,软件工程以质量保证为基础。质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。,1.2软件工程的概念,2020/5/30,28,软件工程三要素过程、方法和工具(2/5),软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具、过程和工具促进方法学的研究。,1.2软件工程的概念,2020/5/30,29,软件工程三要素过程、方法和工具,将系统的、规范的、可量化的方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。,1.2软件工程的概念,软件工程,过程,方法,工具,2020/5/30,30,软件工程三要素过程、方法和工具(3/5),软件工程的过程过程贯穿软件开发的各个环节,各环节之间建立里程碑;管理者在软件工程过程中对软件开发的质量、进度、成本进行评估、管理和控制;技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报告、表格等)。,1.2软件工程的概念,2020/5/30,31,软件工程三要素过程、方法和工具(4/5),软件工程的方法软件工程方法是完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件需求分析、设计、编程、测试和维护。软件工程方法依赖一组原则,它贯穿软件工程的各个环节。软件工程方法分两类:传统方法和面向对象方法,1.2软件工程的概念,2020/5/30,32,软件工程三要素过程、方法和工具(5/5),软件工程工具它为软件工程的过程和方法提供自动化或半自动化的工具支持。将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统称“计算机辅助软件工程(CASE)”,系统中某一工具的信息加工结果可以作为另一工具的输入。集成的软件工程工具再加上人的因素构成了软件工程环境。,1.2软件工程的概念,2020/5/30,33,软件开发方法和软件工具,结构化分析方法结构化程序设计语言面向对象分折方法面向对象程序设计语言,1.2软件工程的概念,2020/5/30,34,3.软件和软件开发过程,软件过程和软件产品密切相关。大型软件项目没有良好的软件开发过程,不可能建造出用户满意的优质产品;反之,一个好的软件产品隐含着良好的软件开发过程。计算机软件领域产品和过程不断交替创新,促进软件工程的进步和发展。,1.2软件工程的概念,2020/5/30,35,1.2.2软件工程目标(1/6),在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。,1.2软件工程的概念,2020/5/30,36,1.3软件生存周期,软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。软件工程的目标和原则贯穿整个软件生存周期。,第一章软件与软件工程,2020/5/30,37,软件的定义和开发过程,问题定义可行性研究需求分析软件开发概要设计详细设计实现组装测试确认测试,可行性研究,需求分析,概要设计,详细设计,实现,组装测试,确认测试,1.3软件生存周期,2020/5/30,38,1.3.1问题定义,1.可行性研究任务了解用户要求和现实环境从技术、经济、市场等方面研究并论证开发该软件系统的可行性,1.3软件生存周期,2020/5/30,39,可行性研究(2/3),技术可行性当前的软件开发方法和工具能否支持需求的实现;操作可行性用户能否在特定的环境下使用这个软件;经济可行性开发和使用、维护这个软件的成本能否被用户所接受。,1.3软件生存周期,2020/5/30,40,可行性研究(3/3),阶段性产品可行性论证报告制定初步项目开发计划(人员,进度),1.3软件生存周期,2020/5/30,41,软件定义开发与测试的关系,1.3软件生存周期,2020/5/30,42,1.4软件开发模型,软件开发模型是软件开发全过程、软件开发活动以及它们之间关系的的结构框架软件项目的管理提供里程碑和进度表为软件开发提供原则和方法,第一章软件与软件工程,2020/5/30,43,软件开发模型,三类软件开发模型1.以软件需求完全确定为前提的瀑布模型2.在软件开发初期只能提供基本需求所采用的渐进式开发模型如原型模型、螺旋模型3.以形式化开发方法为基础的变换模型,1.4软件开发模型,2020/5/30,44,1.4.1瀑布模型(1/4),主要思想软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系需对阶段性产品进行评审,1.4软件开发模型,2020/5/30,45,瀑布模型(2/4),1.4软件开发模型,2020/5/30,46,瀑布模型的优点(34),软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;软件开发过程具有系统性、可控性,克服了软件开发的随意性。,1.4软件开发模型,2020/5/30,47,瀑布模型的缺点(44),项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束。,1.4软件开发模型,2020/5/30,48,1.4.2快速原型模型,用户/客户给出软件产品的一般需求开发小组和用户共同定义软件总体目标,标识已知需求对界面、功能、人机交互方式等,进行设计并建造原型,1.4软件开发模型,2020/5/30,49,快速原型模型,强调“快速”,釆用基于构件的软件开发方法,尽量缩短软件开发周期,不宜釆用过多的新技术用户/客户对原型进行评估修改需求、更新设计、完善原型直至确定需求。,1.4软件开发模型,2020/5/30,50,原型模型示意图,1.4软件开发模型,2020/5/30,51,原型模型的优点,原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。它产生的正式需求文挡,是软件开发的基础。如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。原型的开发和评审是系统分析员和用户/客户共同参予的迭代过程,每个迭代循环都是线性过程。,1.4软件开发模型,2020/5/30,52,原型模型的缺点,对于大型软件项目,原型模型需要足够的人力资源以建立足够的原型组。原型模型要求开发者和客户在一段时间内共同完成原型系统的开发,如果任何一方没有实现承诺,会导致原型开发的失败。如果系统难以模块化,建造原型所需构件就有问题;如果高性能是一个指标,原型模型也可能不奏效。原型模型不适合采用很多新技术的项目,1.4软件开发模型,2020/5/30,53,原型模型的应用,建造原型定义系统需求一旦原型通过评审,达到预期目的后,应以确定的软件需求为目标进行软件开发,以便保证软件质量和可维护性;建造原型为客户提供初始的版本,1.4软件开发模型,2020/5/30,54,1.4.3螺旋模型,Boehm在1988年提出螺旋模型=线性模型十迭代.原型十系统化螺旋模型适用于计算机软件整个生命周期,1.4软件开发模型,2020/5/30,55,螺旋模型的结构软件过程的Boehm螺旋模型(1998IEEE),1.4软件开发模型,2020/5/30,56,螺旋模型的使用,软件工程项目从螺旋中心开始启动,沿顺时针方向前进。第一圈产生产品规格说明;第二圈产生一个用于开发的原型;第三圈产生软件产品的初始版本;第四圈产生软件产品比较完善的新版本。,1.4软件开发模型,2020/5/30,57,螺旋模型的优点,符合人们认识现实世界和软件开发的客覌规律;支持软件整个生命周期;保持瀑布模型的系统性、阶段性;利用原型评估降低开发风险;开发者和用户共同参予软件开发,尽早发现软件中的错误;不断推出和完善软件版本,有助于需求变化,获取用户需求,加强对需求的理解。,1.4软件开发模型,2020/5/30,58,1.4.4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竹材采运安全风险识别与防范考核试卷
- 药品行业政策变动与影响考核试卷
- 坚定文化自信宣讲
- 数字智慧方案5474丨人力资源管理数字化转型解决方案1
- 中学生法制教育专题
- 公司2024年庆元旦活动方案细选
- 环保儿童视频课件
- 2019-2025年税务师之税法一通关提分题库及完整答案
- 《轴流泵维护》课件
- 2025年医用穿刺器械项目合作计划书
- 2024-2025学年福建省泉州市晋江市安海中学等五校七年级(下)期中数学试卷
- 2025-2030中国建筑智能化工程行业市场发展分析及发展趋势前景研究报告
- 2024年安徽演艺集团有限责任公司招聘笔试真题
- 天津2025年天津市面向昌都籍未就业少数民族高校毕业生招聘事业单位人员笔试历年参考题库附带答案详解
- 和医院签运营合同协议
- 2025-2030有机肥料产业市场深度调研及发展趋势与投资前景研究报告
- 2025年人教版小学五年级下册奥林匹克数学竞赛测试卷(附参考答案)
- 2024年高考数学真题(北京卷)试题试卷原卷答案解析
- 2025年安全生产月主题培训课件:如何查找身边安全隐患
- 职代会知识培训课件
- 第四章 问题解决策略:特殊化 课件 2024-2025学年北师大版七年级数学下册
评论
0/150
提交评论