软件工程的产生.doc_第1页
软件工程的产生.doc_第2页
软件工程的产生.doc_第3页
软件工程的产生.doc_第4页
软件工程的产生.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程的产生1.1 软件工程的产生1.1.1 软件的特点 “软件”一词是20世纪60年代才出现的,它是指:计算机程序及其说明程序的各种文档。软件与硬件一起构成完整的计算机系统,它们是相互依存,缺一不可的。软件是一种特殊的产品,它具有以下独特的特性。 (1)软件是一种逻辑产品,它与物质产品有很大的区别。软件产品是看不见摸不着的,因而具有无形性,它是脑力劳动的结晶,它以程序和文档的形式出现,保存在计算机存储器和光盘介质上,通过计算机的执行才能体现它的功能和作用。 (2)软件产品的生产主要是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发研制完成后,通过复制就产生了大量软件产品。 (3)软件产品不存在磨损、消耗问题。 (4)软件产品生产的成本主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做”的。 (5)软件费用不断增加,软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本非常高。1.1.2 软件生产的发展 自从第一台计算机诞生以后,就开始了软件的生产,到现在为止,经过了三个阶段。即程序设计时代,程序系统时代,软件工程时代。 1.程序设计时代(1964年1956年) 这个阶段的生产方式是个体手工劳动,使用的工具是机器语言,汇编语言。 2.程序系统时代(1956年1968年) 这阶段的生产方式是作坊的小集团合作生产,生产工具是高级语言,开发方法仍旧靠个人技巧,但开始提出结构化方法。 3.软件工程时代(1968年至现在) 这阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。1.1.3软件危机 软件危机产生的原因: (1)软件的规模越来越大,结构越来越复杂。 (2)软件开发管理困难而复杂。 (3)软件开发费用不断增加。 (4)软件开发技术落后。 (5)生产方式落后。 (6)开发工具落后,生产提高缓慢。1.1.4软件工程 1.软件工程定义 软件工程有多种定义,其中一种是:用科学知识和技术原理来定义、开发、维护软件的一门学科。 2.软件工程性质 软件工程是一门综合性的交叉学科,它涉及计算机科学、工程科学、管理科学、数学等领域。 3.软件工程目标 (1)付出较低的开发成本;(2)达到要求的软件功能;(3)取得较好的软件性能;(4)开发的软件易于移植;(5)需要较低的维护费用;(6)能按时完成开发任务,及时交付使用;(7)开发的软件可靠性高。 4.软件工程内容 软件工程研究的主要内容是软件开发技术和软件管理两方面。在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要是研究软件管理学、软件经济学、软件心理学等。 5.软件工程面临的问题 (1)软件费用 (2)软件可靠性 (3)软件维护 (4)软件生产率 (5)软件重用软件工程和软件生存周期作者:不详来源:2006年8月31日发表评论进入社区 1.2软件工程和软件生存周期1.2.1软件工程过程软件工程过程包含如下七个过程(1)获取过程。(2)供应过程。(3)开发过程。(4)操作过程。(5)维护过程。(6)管理过程。(7)支持过程。1.2.2 软件生存周期 软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。通常,软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。1.可行性分析和项目开发计划 明确“要解决的问题是什么?”,“解决的问题的办法和费用”,“解决的问题所需的资源和时间”。要回答这些问题,就要进行问题定义、可行性分析,制定项目开发计划。2.需求分析 需求分析阶段的任务是准确地确定软件系统必须做什么,确定软件系统具备哪些功能。写出软件需求规格说明书。3.概要设计 概要设计的任务是把软件需求规格说明书中确定的各项功能转换成需要的体系结构。4.详细设计 详细设计阶段就是为每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述。5.编码 编码阶段就是把每个模块的控制结构转换成计算机可接受的程序代码。6.测试 测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检验软件的各个组成部分。测试分为单元测试、集成测试、确认测试。7.维护 软件维护是软件生存周期中时间最长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至几十年。软件生存周期模型,方法和工具作者:不详来源:2006年8月31日发表评论进入社区 1.3 软件生存周期模型,方法和工具1.3.1 软件生存周期模型 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。目前有若干种软件生存周期模型。例如:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。1.瀑布模型瀑布模型是将软件生存周期各个活动规定为自上向下,按照线性顺序连接的若干阶段的模型。该模型支持结构化的设计方法,但它是一种理想的线性开发模式,缺乏灵活性,无法解决软件需求不明确或不准确的问题。 2.增量模型增量模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发出来的。该模型有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。3.螺旋模型螺旋模型是一种风险驱动的模型。螺旋模型适合于大型软件的开发,它吸收了软件工程“演化”的概念,包括需求定义、风险分析、工程实现及用户评估四个阶段,螺旋模型由上述四个阶段组成的迭代模型,迭代的结果必须尽快收敛到客户允许的或可接受的目标范围内。4.喷泉模型喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。5.基于知识的模型基于知识的模型又称智能模型,它把瀑布模型和专家系统结合在一起。该模型在开发的各个阶段都利用相应的专家系统来帮助软件人员完成开发工作,使维护在系统需求说明阶段开始。该模型还处于研究实验阶段,还未达到实用阶段。6.变换模型这是一种适合于形式化开发方法的模型。从软件需求形式化说明开始,经过一系列变换,最终得到系统的目标程序。1.3.2 软件开发方法软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。软件开发的目标是在规定的投资和时间内,开发出符合用户需求的高质量的软件。为了达到此目的,需要成功的开发方法。下面介绍几种常用的软件开发方法。1.结构化方法结构化方法由结构化分析、结构化设计、结构化程序设计构成。它是一种面向数据流的开发方法。该方法采用自顶向下、逐步求精的指导思想,应用较广,技术成熟。结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。结构化设计是根据模块独立性准则、软件结构准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。结构程序设计是根据结构程序设计原理,将每个模块的功能用相应的标准控制结构表示出来,从面实现详细设计。结构化方法不适应规模大的项目,对于特别复杂的项目,该方法难于解决软件重用问题,难于适应需求变化的问题,难于彻底解决维护问题。2.Jackson方法这是一种面向数据结构的开发方法。JSP方法是以数据结构为驱动的,适合于小规模的项目。3.维也纳开发方法(VDM)这是一种形式化的开发方法,软件的需求用严格的形式语言描述,然后把描述模型逐步变换成目标系统。4.面向对象的开发方法面向对象的开发方法完全不同于传统开发方法,它是90年代的主流开发方法。面向对象开发方法包括面向对象分析、面向对象设计、面向对象实现。面向对象开发方法有Booch方法、Coad方法和OMT方法等。为了统一各种面向对象方法的术语、概念和模型,1997年推出了统一建模语言,即UML(Unified Modeling Language)语言。它是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,将成为面向对象建模的工业标准。1.3.3 软件开发工具1. 软件工具的重要性软件工具一般使指为了支持软件人员开发和维护活动而使用的软件。2.工具箱最初的软件工具是以工具箱的形式出现的,一种工具支持一种开发活动,然后将各种工具简单具有结合起来就构成工具箱。3.软件开发环境由于工具箱存在的问题,人们在工具系统的整体化及集成化方面开展一系列研究工作,使之形成完整的软件环境。4.计算机辅助软件工程计算机辅助软件工程可以简单地定义为软件开发地自动化,通常简称为CASE(Computer Aided Software Engineering)。软件工程第1章绪论例题分析与解答作者:不详来源:2006年8月31日发表评论进入社区 软件工程第1章绪论例题分析与解答一、填空题1.软件与物质产品有很大的区别,软件是一种_产品。2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于_。3.概要设计主要是把各项功能需求转换成系统的_。4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是_。5.简单实用、应用广泛、技术成熟的开发方法是_。二、选择题1.同一软件的大量软件产品的生产主要是通过( )而得到。A.研究 B.复制 C.开发 D.研制2.作坊式小团体合作生产方式的时代是( )时代。A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程3.软件工程与计算机科学性质不同,软件工程着重于( )。A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论4.将每个模块的控制结构转换成计算机可接受的程序代码是( )阶段的任务。A.编码 B.需求分析 C.详细设计 D.测试5.软件生存周期中时间最长的是( )阶段。A.需求分析 B.概要设计 C.测试 D.维护一、填空题答案1.逻辑2.建造一个软件系统3.体系结构4.瀑布模型5.结构化方法二、选择题答案1.B2.C3.C4.A5.D第1章自测题及参考答案作者:不详来源:2006年8月31日发表评论进入社区 一、名称解释1.软件 2.文档 3.软件工程4.软件生存周期 5.软件工程过程 6.软件生存周期模型7.软件开发方法 8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与_。2.程序设计时代的生产方式是_。3.软件工程涉及到几个学科,它是一门_学科。4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_。5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_模型。6.喷泉模型是一种以用户需求为动力,以_为驱动的模型。7.结构化方法是一种面向数据流的开发方法。由结构化分析、_、结构化程序设计构成。8.软件工程研究的主要内容是软件开发管理和_两个方面。9.软件工具是支持软件开发人员的开发和维护活动而使用的_。10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种_,使用相应的工具来进行。三、选择题1.软件是一种( )产品。A.物质 B.逻辑 C.有形 D.消耗2.软件产品的开发主要是( )。A.复制 B.再生产 C.拷贝 D.研制3.个体手工劳动生产方式的时代是( )。A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程4.与计算机科学的理论研究不同,软件工程是一门( )学科。A.理论性 B.原理性 C.工程性 D.心理性5.软件重用的单位是( )。A.软件模块 B.性能 C.系统 D.功能6.软件开发费用只占整个软件系统费用的( )。A.1/2 B.1/3 C.1/4 D.2/37.软件开发中大约要付出( )的工作量进行测试和排错。A.20 B.30 C.40 D.508.准确地解决“软件系统必须做什么”是( )阶段的任务。A.可行性研究 B.需求分析 C.详细设计 D.编码9.软件生存周期中最长的是( )阶段。A.需求分析 B.概要设计 C.测试 D.维护 四、简答题1.软件产品的特性是什么?2.软件生产有几个阶段?各有何特征?3.什么是软件危机?产生的原因是什么?4.软件工程的性质、目标和内容是什么?5.软件工程面临的问题是什么?6.软件工程过程有哪些过程?7.软件生存周期有哪几个阶段?8.软件生存周期模型有哪些主要模型?9.有哪些主要软件开发方法?参考答案二填空题1.软件 2.个体手工劳动3.综合性交叉 4.相同5.瀑布 6.对象7.结构化设计 8.软件开发技术9.软件 10.开发方法三、选择题1.B 2.D 3.A 4.C5.A 6.B 7.C 8.B 9.D 1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( )。 A、详细计划 B、可行性分析 C、 运行阶段 D、 测试与排错 2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( )。A、详细设计阶段 B、概要设计阶段 C、 需求分析阶段 D、 测试和运行阶段 3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( )。A、 需求分析阶段 B、 详细设计阶段 C、 概要设计阶段 D、 可行性研究阶段4、软件工程的出现主要是由于( )。A.程序设计方法学的影响 B.其它工程科学的影响 C. 软件危机的出现 D.计算机的发展5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( )A、 硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、 开发人员的素质6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为 ( )A、 相互排斥 B、 相互补充 C、 独立使用 D、 交替使用 7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( )A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法 C、基于对象的面向对象的方法 D、基于数据的数据流开发方法 8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高( )A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法 9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的( )A、控制流 B、数据流 C、程序流 D、指令流 10、软件开发的结构化生命周期方法将软件生命周期划分成( )A、 计划阶段、开发阶段、运行阶段 B、 计划阶段、编程阶段、测试阶段 C、 总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计 11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为( )A、 瀑布模型 B、 对象模型 C、 螺旋模型 D、 层次模型 12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )A、 分析阶段 B、 设计阶段 C、 编码阶段 D、 测试阶段 13、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。螺旋模型将瀑布模型和演化模型相结合,并增加了(1),它建立在(2)的基础上,沿着螺线自内向外每旋转一圈,就得到(2)的一个新版本。 喷泉模型描述了(3)的开发模型,它体现了这种开发方法创建软件的过程所固有的(4)和(5)的特征。(1) A、 系统工程 B、 风险分析 C、 设计评审 D、 进度控制(2) A、 模块划分 B、 子程序分解 C、 设计; D、 原型(3) A、 面向对象 B、 面向数据流 C、 面向数据结构 D、 面向事件驱动(4) A、 归纳 B、推理 C、 迭代 D、 递归(5) A、 开发各阶段之间无“间隙” B、 开发各阶段分界明显 C、 部分开发阶段分界明显 D、 开发过程不分段答案:1.C 2.C 3.A 4.C 5.C 6.B 7.C 8.B 9.B 10.A 11.A 12.C 13.BDADA全国2006年10月高等教育自学考试软件工程试题作者:不详来源:网络2006年12月6日发表评论进入社区 全国2006年10月高等教育自学考试软件工程试题课程代码:02333一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1软件开发环境按解决的问题分类包含()A程序设计环境B工具箱环境C基于方法的环境D以语言为中心的环境2为了提高软件产品的质量和可靠性,对某些无法避开的差错,使其影响减至最小程度所采用的技术是()A容错技术B避开错误技术C检测技术D排错技术3软件复杂性的常用度量方法包括()ABOEHM度量法 B可扩充度量法C线性度量法 D代码行度量法4面向对象的要素包含()A对象的唯一性 B抽象C继承性 D分类性5构造原型时,主要考虑()A全部功能B原型要体现的特征C全部细节D全部要求6维护中,因修改文件的打开或关闭而引起的错误是()A文档副作用B数据副作用C编码副作用D设计副作用7诊断和消除程序在使用过程中发生错误的过程称为()A校正性维护B适应性维护C完善性维护D预防性维护8在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强的是()A语句覆盖 B判定/条件覆盖C条件组合覆盖 D判定覆盖9软件调试技术包括()A回溯法调试 B循环覆盖调试C边界值分析调试 D集成测试调试10在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为()A确认测试 B系统测试C渐增式测试 D非渐增式测试11源代码的可维护性表现了程序设计语言的()A心理特性B工程特性C技术特性D传统特性12至今已有好几百种不同的高级语言,它们有的是用于数值计算,有的是用于商业管理,有的是用于编写系统软件。以下语言中较适用于数值计算的语言是()ABASIC BSQLCLISP DFORTRAN13在JSP方法中解决结构冲突的具体办法是()A引入中间数据结构或中间文件 B删除某个输入数据结构C删除某个输出数据结构 D增加某个输入或输出数据结构14模块的内聚性可以按照内聚程度的高低进行排序,以下排列中属于从低到高的正确次序是()A偶然内聚,时间内聚,逻辑内聚B通信内聚,时间内聚,逻辑内聚C逻辑内聚,通信内聚,顺序内聚D功能内聚,通信内聚,时间内聚15以下软件生存周期的活动中,要进行软件结构设计的是()A测试用例设计 B概要设计C程序设计 D详细设计16能够清楚地表示复杂的条件组合与应做的动作之间的对应关系的工具是()A结构化语言 BPAD图C判定表 D程序流程图17需求分析方法必须能够表达和理解问题的数据域和()A数据流B用户类型C功能域D应用领域18以用户需求为动力,以对象作为驱动的模型是()A瀑布模型B基于知识的模型C喷泉模型D增量模型19把软件生产的全过程人为地划分为若干阶段使得软件人员能根据每一阶段的不同特点更好地组织和管理软件项目的开发,这种概念就是()A软件项目管理B软件工程C软件项目计划D软件生存期20在软件生存期的各个阶段中跨越时间最长的阶段是()A需求分析阶段 B设计阶段C测试阶段 D维护阶段二、填空题(本大题共10小题,每空2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。21软件工具通常由工具、工具接口和_三部分构成。22软件工程管理中的控制包括进度控制、人员控制、经费控制和_。23软件开发的原型模型可以分为三类,它们是:探索型原型、实验型原型和_。24软件复杂性主要表现在程序的复杂性。程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论