软件工程的产生.docx
- 文档编号:17247611
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:21
- 大小:42.06KB
软件工程的产生.docx
《软件工程的产生.docx》由会员分享,可在线阅读,更多相关《软件工程的产生.docx(21页珍藏版)》请在冰点文库上搜索。
软件工程的产生
软件工程的产生
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(UnifiedModelingLanguage)语言。
它是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,将成为面向对象建模的工业标准。
1.3.3软件开发工具
1.软件工具的重要性
软件工具一般使指为了支持软件人员开发和维护活动而使用的软件。
2.工具箱
最初的软件工具是以工具箱的形式出现的,一种工具支持一种开发活动,然后将各种工具简单具有结合起来就构成工具箱。
3.软件开发环境
由于工具箱存在的问题,人们在工具系统的整体化及集成化方面开展一系列研究工作,使之形成完整的软件环境。
4.计算机辅助软件工程
计算机辅助软件工程可以简单地定义为软件开发地自动化,通常简称为CASE(ComputerAidedSoftwareEngineering)。
软件工程第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.B
2.C
3.C
4.A
5.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/3
7.软件开发中大约要付出( )%的工作量进行测试和排错。
A.20 B.30 C.40 D.50
8.准确地解决“软件系统必须做什么”是( )阶段的任务。
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.C
5.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.⑴B⑵D⑶A⑷D⑸A
全国2006年10月高等教育自学考试软件工程试题
作者:
不详 来源:
网络 2006年12月6日 发表评论 进入社区
全国2006年10月高等教育自学考试
软件工程试题
课程代码:
02333
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.软件开发环境按解决的问题分类包含( )
A.程序设计环境 B.工具箱环境
C.基于方法的环境 D.以语言为中心的环境
2.为了提高软件产品的质量和可靠性,对某些无法避开的差错,使其影响减至最小程度所采用的技术是( )
A.容错技术 B.避开错误技术
C.检测技术 D.排错技术
3.软件复杂性的常用度量方法包括( )
A.BOEHM度量法 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.至今已有好几百种不同的高级语言,它们有的是用于数值计算,有的是用于商业管理,有的是用于编写系统软件。
以下语言中较适用于数值计算的语言是( )
A.BASIC B.SQL
C.LISP D.FORTRAN
13.在JSP方法中解决结构冲突的具体办法是( )
A.引入中间数据结构或中间文件 B.删除某个输入数据结构
C.删除某个输出数据结构 D.增加某个输入或输出数据结构
14.模块的内聚性可以按照内聚程度的高低进行排序,以下排列中属于从低到高的正确次序是( )
A.偶然内聚,时间内聚,逻辑内聚
B.通信内聚,时间内聚,逻辑内聚
C.逻辑内聚,通信内聚,顺序内聚
D.功能内聚,通信内聚,时间内聚
15.以下软件生存周期的活动中,要进行软件结构设计的是( )
A.测试用例设计 B.概要设计
C.程序设计 D.详细设计
16.能够清楚地表示复杂的条件组合与应做的动作之间的对应关系的工具是( )
A.结构化语言 B.PAD图
C.判定表 D.程序流程图
17.需求分析方法必须能够表达和理解问题的数据域和( )
A.数据流 B.用户类型
C.功能域 D.应用领域
18.以用户需求为动力,以对象作为驱动的模型是( )
A.瀑布模型 B.基于知识的模型
C.喷泉模型 D.增量模型
19.把
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 产生