版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章初识软件工程2023/7/16第1章初识软件工程内容介绍1.1软件与软件危机1.2软件工程的由来1.3软件的开发方法1.4软件生存周期1.5了解软件开发模型1.6习题第1章初识软件工程1.1软件与软件危机1.1.1怎样理解软件1.1.2软件的特点1.1.3产生软件危机的原因第1章初识软件工程1.1.1怎样理解软件随着计算机技术的发展,对软件在不同阶段有不同的认识。
计算机发展的初期,硬件的设计和生产是主要问题,那时的所谓软件就是程序,甚至是机器指令程序,它们处于从属的地位。
随后社会对计算机提出了更高的要求,软件在计算机系统中的比重越来越大,这时软件的含义就成了文档加程序。现在对软件的正确理解应该是,软件是计算机系统中与硬件相互依存的部分,它包括程序及其相关文档。程序是计算机程序所需的阐述性资料。第1章初识软件工程1.1.2软件的特点软件包括三个方面:①一个或多个计算机程序,这些程序执行时能够提供期望的功能性能;②一个或多个数据结构,这些数据结构使得程序能够完全操纵信息;③一个或多个文档,这些文档描述了程序的分析、设计、实现和维护的细节及使用说明。
第1章初识软件工程1.1.2软件的特点软件不同于硬件的特征:1.软件的质量是“开发”出来的,不是“制造”出来的
2.软件可能会被“废弃”,但不会被“用坏”
3.过去的软件大多是“定制”的,而不是“装配”的
第1章初识软件工程1.1.3产生软件危机的原因出现软件危机的原因:1.软件维护费用急剧上升,直接威胁计算机应用的扩大。
2.软件生产技术进步缓慢,是加剧这一软件危机的重要原因。
第1章初识软件工程1.2软件工程的由来1.2.1软件工程的产生和发展1.2.2软件工程的定义浅谈1.2.3理解软件工程的作用1.2.4软件工程研究的内容第1章初识软件工程1.2.1软件工程的产生和发展
为了摆脱软件危机造成的困境,北大西洋公约组织(NATO)的科学委员会于1968年在联邦德国召开的有关研讨会上,首先提出了“软件工程”(SoftwareEngineering)的概念,其主要思路是把人类长期以来从事各种工程项目所积累起来的行之有效的原理、概念、技术和方法,特别是人类从事计算机硬件研究和开发的经验教训,应用到软件的开发和维护中。
第1章初识软件工程1.2.1软件工程的产生和发展软件工程是随着计算机系统的发展而逐步形成的计算机科学领域中的一门学科。软件工程的发展可分为4个时期。
1.20世纪40年代中期到60年代中期这个时期计算机硬件从电子管电子计算机发展到晶体管电子计算机,价格昂贵,运算速度低,存储量小。软件通常是规模较小的程序,软件的设计开发者和使用者往往是同一个人。软件设计通常只注意如何节省存储单元、提高运算速度,除了程序清单之外,没有其他任何文档资料。第1章初识软件工程1.2.1软件工程的产生和发展这个时期计算机硬件发展到集成电路计算机,运算速度和内存容量都相应提高了。出现了“软件作坊”,许多用户不再自己开发软件,而是去“软件作坊”购买软件。1968年北大西洋公约组织(NATO)的计算机科学家在联邦德国召开国际会议,正式提出了“软件工程”(SoftwareEngineering)的术语。从此一门新兴的工程学科诞生了。当时“软件工程’’还处于学术研究阶段,但已对软件开发产生了巨大影响。2.20世纪60年代中期到70年代中期第1章初识软件工程1.2.1软件工程的产生和发展这个时期硬件发展到大规模集成电路计算机,计算机硬件的功能和质量都不断提高。计算机应用不断地扩大,软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势,软件产品供不应求,软件危机日益严重,为了对付不断增长的“软件危机”,软件工程学把软件作为一种产品批量生产。3.20世纪70年代中期到80年代第1章初识软件工程1.2.1软件工程的产生和发展计算机系统发展的第四代不再是单台的计算机和计算机系统,而是计算机软件和硬件的综合效果。由复杂操作系统控制的强大桌面机、广域网和局域网,与先进的应用软件相互配合,计算机体系结构从集中的主机环境转变为分布式的客户机服务器环境。软件开发的技术如下:面向对象技术;专家系统和人工智能软件;人工神经网络软件;并行计算、网络计算机、虚拟现实技术、多媒体技术和现代通信技术。4.20世纪80年代以后第1章初识软件工程1.2.2软件工程的定义
关于软件工程的定义,目前尚无统一、一致的定义,下面给出几个有代表性的定义。
1.FritzBauer在NATO会议上给出的定义软件工程是建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效地运行。2.IEEE在软件工程术语汇编中的定义软件工程是:①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究。第1章初识软件工程1.2.2软件工程的定义3.《计算机科学技术百科全书》中的定义软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。第1章初识软件工程1.2.3理解软件工程的作用从历史上讲,软件工程的作用,是为了克服上个世纪60年代出现的软件危机(SoftwareCrisis),这种危机表现为软件开发的成本大、进度慢、维护难和质量得不到保障。从当前来讲,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。
第1章初识软件工程1.2.3理解软件工程的作用从软件项目团队来讲,软件工程的作用在于:在规定的时间内,按照规定的成本,完成预期质量目标(软件的功能、性能和接口达到需求报告标准)的软件。从软件发展进程来讲,软件工程的作用在于:克服软件危机,控制软件进度,节约开发成本,提高软件质量。从软件企业本身来讲,软件工程的作用在于:持续地规范软件开发过程和软件管理过程,不断地优化软件组织的个人素质和集体素质,从而逐渐增强软件企业的市场竞争实力。第1章初识软件工程1.2.4软件工程研究的内容软件工程研究的主要内容是软件开发技术和软件管理两方面。在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要是研究软件管理学、软件经济学、软件心理学等。
第1章初识软件工程1.3软件的开发方法1.3.1面向过程的方法1.3.2面向数据的方法1.3.3面向对象的方法第1章初识软件工程1.3.1面向过程的方法面向过程的方法包括面向过程需求分析、面向过程设计、面向过程编程、面向过程测试、面向过程维护、面向过程管理。面向过程的方法又称结构化方法,习惯上叫做结构化分析、结构化设计、结构化编程、结构化测试、结构化维护。
面向过程的方法的特点是:程序的执行过程不由用户控制,完全由程序控制。面向过程的方法的优点是简单实用,缺点是维护困难。
面向过程的方法,在军事上的实时跟踪监控系统中有很好的应用。
第1章初识软件工程1.3.2面向数据的方法面向数据的方法,也称为面向元数据(Metadata)的方法。元数据是关于数据的数据,组织数据的数据。
面向数据方法的要点是:
1.数据(Data)位于企业信息系统的中心。信息系统就是对数据的输入、处理、传输、查询和输出。2.只要企业的业务方向和内容不变,企业的元数据就是稳定的,由元数据构成的数据模型(DataModel)也是稳定的。
第1章初识软件工程1.3.2面向数据的方法
3.对元数据的处理方法是可变的。用不变的元数据支持可变的处理方法,即以不变应万变,这就是企业信息系统工程的基本原理。4.企业信息系统的核心是数据模型。数据模型包括概念数据模型CDM(ConceptualDataModel)和物理数据模型PDM(PhysicsDataModel)。数据模型的表示形式是E-R图,E-R图要用CASE工具设计。例如,PowerDesigner,OracleDesigner或ERwin,它们不但具有正向设计功能,而且具有逆向分析功能,这样才能实现快速原型法。5.信息系统的实现(编码)方法主要是面向对象,其次才是面向数据和面向过程。6.用户自始至终参与信息系统的分析、设计、实现与维护。第1章初识软件工程1.3.2面向数据的方法面向数据方法的优点是通俗易懂,特别适合信息系统中数据层(数据库服务器)上的设计与实现,缺点是实现窗口界面较困难。
面向数据的方法,与关系数据库管理系统紧密地捆绑在一起,只要面向对象数据库不能完全替代关系数据库,这种方法就不会终结。
面向数据的方法在电子商务中应用有:网站后台数据库服务器上的数据处理和数据传输,其软件都是利用面向数据的方法设计与实现的。
第1章初识软件工程1.3.3面向对象的方法面向对象方法起源于面向对象编程语言。面向对象方法包括分析、设计和实现活动。它是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,建立在“对象”概念(对象、类和继承)基础上的方法学基于对象概念,以对象为中心,以类和继承为构造机制来认识、理解、刻画客观世界和设计、构建相应的软件系统。
第1章初识软件工程1.3.3面向对象的方法面向对象方法的应用,目前有两种方式:(1)在分析、设计、实现活动中完全采用面向对象的技术;(2)传统的功能分解方法与面向对象方法结合使用。即功能分析、面向对象的设计和实现,以及面向对象分析和设计、实现用过程式语言。面向对象分析的任务就是通过分析问题域建立系统的概念模型,并用相应的符号系统表示。
第1章初识软件工程1.3.3面向对象的方法面向对象设计是在面向对象分析的基础上进行系统设计,包括交互过程和用户接口、任务管理、全局资源协调并确定边界、各个类的存储和数据格式。面向对象实现就是用面向对象程序设计语言来实现面向对象设计,因为该类语言支持对象、运行多态性和继承,因此比较容易,如果使用非面向对象程序设计语言,则需要特别注意和规定保留程序的面向对象式的程序结构。第1章初识软件工程1.4软件生存周期软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。软件生存周期大致可以分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。
第1章初识软件工程1.4软件生存周期软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。软件生存周期大致可以分为6个阶段。
1.计算机系统工程2.需求分析3.设计4.编码5.测试6.运行和维护第1章初识软件工程1.5软件开发模型1.5.1瀑布模型1.5.2快速原型模型1.5.3渐增模型1.5.4螺旋模型1.5.5快速应用开发模型第1章初识软件工程1.5软件开发模型根据软件生产工程化的需要,生存周期的划分也有所不同,从而形成了不同软件生存周期模型(SWlifecyclemodel),或称软件开发模型。
软件开发模型可定义为:它是软件开发全部过程、活动和任务的结构框架。
需要注意的是:开发模型仅对开发、运作、维护过程有意义第1章初识软件工程1.5.1瀑布模型瀑布模型遵循软件生存期的划分,明确规定每个阶段的任务,各个阶段的工作顺序展开恰如奔流不息拾级而下的瀑布。
瀑布模型把软件生存周期分为计划、开发、运行3个时期。这3个时期又可细分为若干个阶段:计划时期可分为问题定义、可行性研究两个阶段,开发时期分为需求分析、概要设计、详细设计、程序设计、软件测试等阶段,运行时期则边运行边维护。第1章初识软件工程1.5.1瀑布模型瀑布模型软件开发有以下几个特点。
1.软件生存周期的顺序性2.尽可能推迟软件的编码3.保证质量第1章初识软件工程1.5.2快速原型模型所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集(展示了目标系统的关键功能)。
快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。第1章初识软件工程1.5.2快速原型模型快速原型模型的主要优点:不带反馈环的,这正是这种过程模型软件产品的开发基本上是线性顺序进行的。
能做到基本上线性顺序开发的主要原因如下。
1.原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。
2.开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
第1章初识软件工程1.5.3渐增模型在渐增模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成,如图1-6所示。
在使用渐增模型时,第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,它包括对核心产品的修改和一些新功能的发布。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。第1章初识软件工程1.5.3渐增模型渐增模型的优点:渐增模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。
渐增模型的缺点:1.由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。2.在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。第1章初识软件工程1.5.4螺旋模型螺旋模型通常用来指导大型软件项目的开发,它将开发划分为制订计划、风险分析、实施开发和客户评估四类活动。沿着螺旋线每转一圈,表示开发出一个更完善的新的软件版本。
第1章初识软件工程1.5.4螺旋模型图1-7显示了螺旋模型的原理,沿着螺旋线旋转,在笛卡儿坐标的四个象限上分别表达了四类活动。1.制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;2.风险分析:分析所选方案,考虑如何识别和消除风险;3.实施开发:实施软件开发;4.客户评估:评价软件功能和性能,提出修正建议。
第1章初识软件工程1.5.5快速应用开发模型快速应用开发(rapapplicationdevelopment)是一个线性顺序的软件开发模型,强调极短的开发周期。RAD模型是线性顺序模型的一个“高速”变种,通过使用基于构件的建造方法获得了快速开发。如果需求理解得很好,且约束了项目范围,RAD过程使得一个开发组能够在很短时间内(如60到90天)创建出“功能完善的系统”。
第1章初识软件工程1.5.5快速应用开发模型数据建模:业务建模阶段定义的一部分信息流被精化,形成一组支持该业务所需的数据对象。标识出每个对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医务指控科工作制度
- 医疗垃圾间工作制度
- 医疗质控组工作制度
- 医院医学会工作制度
- 医院质管办工作制度
- 南京派出所工作制度
- 卫生室内科工作制度
- 卫生院中医工作制度
- 卫生院考勤工作制度
- 危重症学组工作制度
- 《正方形的性质》教学课件
- 多孔结构固体储能材料的热传递
- 江左县农村综合性改革试点试验实施方案
- 刑事案件模拟法庭剧本
- 空间不平等与城乡融合发展:一个空间社会学分析框架
- 工程经济学概论(第4版)课件 邵颖红 第9-11章 投资风险分析、资产更新分析、价值工程
- 土地房屋测绘项目 投标方案(技术方案)
- 开封大学单招职业技能测试参考试题库(含答案)
- 采购管理制度及流程采购管理制度及流程
- 水工隧洞的维护-水工隧洞的检查与养护
- 奔驰GLK汽车说明书
评论
0/150
提交评论