软件工程习习题解答 第一章 概述
- 格式:doc
- 大小:134.00 KB
- 文档页数:18
《软件工程》张海藩一章习题 5根据历史数据可以做出如下假设。
⑴对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:)1960(28.04080-=Y e M⑵存储器价格按下面公式描述的趋势逐年下降:1974172.03.0-⨯=Y P (美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:1974272.0048.0-⨯=Y P (美元/字)在上列公式中Y 代表年份,M 是存储容量(字数),P 1和P 2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。
⑴在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? ⑵假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美圆。
如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
⑶假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美圆,重复⑴⑵题所问。
解:⑴设1985年计算机16位存储器容量为M 1,则67)1960(28.011047447266.47183.240804080⨯≈⨯≈=-Y e M (字) 16位的存储器的价格为:5.578966.447447272.0048.072.0048.01111974'≈⨯⨯=⨯⨯=-M P Y (美元)⑵1985年装满一个存储器的程序成本为:71097.54000103066.4474472⨯≈⨯⨯=A (美圆) ⑶1995年32位存储器的容量为:78.9)19601995(28.02103582499696.77183.240804080⨯≈⨯≈=-e M (字) 32位存储器的价格为:5.7128696.7358249972.0096.072.0096.021*********''≈⨯⨯=⨯⨯=-M P (美元)装满一个32位存储器的程序的成本为:8'1091.460003030696.73582499⨯≈⨯⨯=A (美圆)。
软件工程导论复习题含答案软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是( A )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件 2. 软件是一种( B )性工业产品。
A. 理论B. 知识(或逻辑)C. 消耗D. 体力3. 需求分析是在( B )进行的。
A. 用户B. 用户和分析设计人员之间C. 开发人员内部 4. 软件的主要结构和功能是在( A )阶段决定的。
A. 分析设计B. 编程C. 测试D. 维护5.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。
D. 使用和维护人员间A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展7. 在软件开发模型中,提出最早、应用最广泛的模型是( A )。
A. 瀑布模型B. 喷泉模型C. 增量模型D. 螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与( C )三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错9. 计算机辅助软件工程,简称( D )。
A. SAB. SDC. SCD. CASE10. 软件危机是软件产业化过程中出现的一种现象,下述现象中:( C )是其主要表现。
① 软件需要增长难以满足。
② 软件开发成本提高。
③ 软件开发进度难以控制。
④ 软件质量不易保证。
A. ③和④B. ③和④C. 全部D. ①、②和③11 软件工程的出现主要是由于( C )。
A. 程序设计方法学的影响 C. 软件危机的出现B. 其他工程科学影响 D. 计算机的发展12、软件生成周期模型有多种,下列选项中,( C )不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型(二)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机的概念、表现形式、产生原因、解决途径4. 简述主要的软件生存期模型(或软件开发模型)。
软件工程基础习题集答案-2《软件工程基础》习题集答案第一章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。
软件危机的典型表现主要有:a. 开发成本和进度不能准确估计b. 开发出来的软件不能满足用户的要求c. 软件的可维护性差d. 软件质量不可靠e. 软件成本在系统中的比重逐年上升f. 软件开发生产率的提高速度不够2.简述产生软件危机的原因和解决的思路。
软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。
其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。
4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。
6.简述软件的定义。
软件=程序 + 数据 + 文档7.软件工程的目的是什么?为高质量的软件开发提供一个科学的体系框架。
8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。
目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。
软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。
软件工程第1章例题分析与解答一、填空题1.软件与物质产品有很大的区别,软件是一种____逻辑___产品。
2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于___建造一个软件系统____。
3.概要设计主要是把各项功能需求转换成系统的__体系结构______。
4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是__瀑布模型_____。
5.简单实用、应用广泛、技术成熟的开发方法是__结构化方法______。
二、选择题1.同一软件的大量软件产品的生产主要是通过( B )而得到。
A.研究B.复制C.开发D.研制2.作坊式小团体合作生产方式的时代是( C )时代。
A.程序设计B.软件生产自动化C.程序系统D.软件工程3.软件工程与计算机科学性质不同,软件工程着重于( C )。
A.理论研究B.原理探讨C.建造软件系统D.原理的理论4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。
A.编码B.需求分析C.详细设计D.测试5.软件生存周期中时间最长的是( D )阶段。
A.需求分析B.概要设计C.测试D.维护一、填空题答案1.逻辑2.建造一个软件系统3.体系结构4.瀑布模型5.结构化方法二、选择题答案1.B2.C3.C4.A5.D第1章自测题及参考答案一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与_____软件___。
2.程序设计时代的生产方式是___个体手工劳动_____。
3.软件工程涉及到几个学科,它是一门__综合性交叉___学科。
4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_____相同___。
5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_瀑布_______模型。
6.喷泉模型是一种以用户需求为动力,以____对象___为驱动的模型。
软件工程概论郑人杰等版第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
软件工程(第四版)习题及解答1-7软件工程(第四版)习题及解答1-7软件工程一直是信息技术领域中一门重要的学科,它涉及到软件设计、开发、测试和维护等多个方面。
对于学习软件工程的学生来说,练习和解答一些相关习题是非常重要的。
本文将为大家提供《软件工程(第四版)》中的习题1-7的解答和详细讨论。
1. 习题1题目描述:什么是软件工程?为什么软件工程如此重要?解答:软件工程是一门学科,涵盖了软件开发的所有阶段,包括需求分析、软件设计、编码、测试和维护等。
软件工程关注如何以系统化的、规范的方法来开发高质量的软件。
软件工程之所以如此重要,原因有以下几点:首先,软件工程能够提供一个结构化的方法来开发软件,保证开发流程可控、可预测。
通过规范的过程和方法,可以减少软件开发过程中的风险和错误。
其次,软件工程将软件开发过程分解为不同的阶段,并引入了各种工具和技术来支持这些阶段的开发工作。
这些工具和技术能够提高开发效率,减少开发成本。
此外,软件工程还注重软件质量管理,包括软件测试、验证和验证等方面,以确保最终交付给用户的软件是高质量可靠的。
最后,软件工程也关注软件的维护和更新。
由于软件在使用过程中会面临各种问题和需求变化,软件工程可以帮助开发人员及时响应和解决这些问题,提供更好的用户体验。
2. 习题2题目描述:简要解释软件需求分析的目标和过程。
解答:软件需求分析的目标是识别和规范用户对软件系统的需求,确保开发人员和用户对软件系统的期望一致,并将这些需求转化为可行的系统规格说明。
软件需求分析的过程包括以下几个步骤:1) 需求收集:通过与用户沟通、调研等方式,收集用户对软件系统的需求。
可以采用面谈、问卷调查、观察等方法。
2) 需求分析和整理:对收集到的需求进行分析和整理,将其转化为可理解的形式。
可以使用需求建模工具和技术,如用例图、数据流图等。
3) 需求规格说明:在此阶段,将需求转化为详细的规格说明,包括功能需求、性能需求、质量需求等。
第1章_软件工程学概述练习题第一章练习题一、判断题1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(√)2..软件是指用程序设计语言(如PASCAL,C,VISUAL BASIC等)编写的程序,软件开发实际上就是编写程序代码。
(X)3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
(X)4.快速原型模型可以有效地适应用户需求的动态变化。
(√)5.类是关于对象性质的描述,由方法和数据组成。
(√)6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。
(√)二、名字解释:1.软件:完成特定功能的程序+数据结构+文档。
2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
3.软件工程:指导计算机软件开发和维护的一门工程学。
4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时期。
5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。
它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。
它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。
增量方式包括增量开发和增量提交。
增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件;增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。
增量开发和增量提交可以同时使用,也可以单独使用。
9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
软件⼯程基础习题集答案-2软件⼯程基础习题集答案-2《软件⼯程基础》习题集答案第⼀章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的⼀系列严重的问题,概括起来归纳为:如何开发软件,以满⾜⽇益增长、⽇趋复杂的需要;如何维护数量不断膨胀的已有软件。
软件危机的典型表现主要有:a. 开发成本和进度不能准确估计b. 开发出来的软件不能满⾜⽤户的要求c. 软件的可维护性差d. 软件质量不可靠e. 软件成本在系统中的⽐重逐年上升f. 软件开发⽣产率的提⾼速度不够2.简述产⽣软件危机的原因和解决的思路。
软件危机产⽣的原因⼀⽅⾯与软件本⾝的特点有关,另⼀⽅⾯,是与已有软件开发、维护的⽅法不正确有密切关系。
解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。
即采⽤⼯程化的原则和⽅法组织软件开发是摆脱软件危机的⼀个主要出路。
3.什么是软件⼯程?它有哪些本质特性?软件⼯程是⼀门研究如何⽤系统化、规范化、数量化等⼯程原则和⽅法进⾏软件开发和维护的学科。
其实质就是⽤⼯程的概念、原理、技术和⽅法,结合有效的管理⽅法和先进的开发技术,开发与维护软件,以解决软件危机。
4.软件⼯程是如何⽤来消除软件危机的?软件⼯程是从技术和管理两个⽅⾯来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。
6.简述软件的定义。
软件=程序 + 数据 + ⽂档7.软件⼯程的⽬的是什么?为⾼质量的软件开发提供⼀个科学的体系框架。
8.什么是软件⼯程⽅法学?软件⼯程是⼀种什么样的技术?包括哪三⼤要素?分为哪三个分⽀?软件⼯程⽅法学就是指在软件⽣命周期全过程中使⽤的⼀整套管理和开发技术⽅法的集合。
⽬前,使⽤最⼴泛的软件⼯程⽅法学分别是传统⽅法学和⾯向对象⽅法学。
软件⼯程作为⼀种层次化的技术,有⽅法、⼯具和过程三⼤要素,并由于其涉及学科内容的极为⼴泛,⽽分为三个分⽀:软件开发技术、软件项⽬管理技术、软件质量管理技术。
软件工程习题集第一章概述一、选择题1.“软件危机”产生的主要原因是( )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、( )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( )和( )两步。
①需求分析②需求调查③可行性分析④问题定义⑤方案设计⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩详细设计3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是()。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.在软件工程时期,决定软件质量的主要因素是( )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展5.下列哪个模型没有采用迭代的思想()A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型6.下列关于瀑布模型的描述正确的是( )A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开7.瀑布模型的关键不足在于()(A)过于简单(B)不能适应需求的动态变更(C)过于灵活(D)各个阶段需要进行评审8.瀑布模型把软件生存周期划分为软件定义、软件开发与()三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错二、判断题1.软件工程是指导计算机软件开发和维护的工程学科。
( )2.在软件工程时期,决定软件质量的主要因素是管理水平. ( )3.软件生存期是从软件项目需求定义直至软件开始使用为止。
()4.常用的软件生存周期模型有瀑布模型和结构化模型。
()5.瀑布模型是一种线形的、顺序的软件开发模型( )6.瀑布模型的关键不足在于不能适应需求的动态变更.( )7.快速原型模型是为了克服瀑布模型的缺点而提出来的。
《软件⼯程》第⼀章软件⼯程学概述第⼀章软件⼯程学概述1.1 软件危机1.1.1 软件的定义——定义:软件=“完成特定功能的程序+数据结构+⽂档”——特征:(3个)软件是开发的,⽽不是制造的;软件不磨损,但退化;⾃定义。
——发展问题1.1.2 软件危机的表现——定义:在计算机软件的开发和维护过程中所遇到的⼀系列严重的问题。
——表现:(6个)(1)对软件开发成本和进度的估计常常很不准确。
(2)软件产品质量较差,可靠性低。
(3)⽤户对开发出来的软件产品不满意。
(4)软件常常是不可维护的。
(5)软件产品缺少应有的⽂档资料。
(6)软件产品的供不应求。
1.1.3 软件危机的原因——客观原因——主观原因1.2 软件⼯程1.2.1 软件⼯程的概念——定义:指导软件开发与维护的⼯程科学。
采⽤⼯程的概念、原理、技术和⽅法来开发和维护软件,综合运⽤正确的管理技术和最好的技术⽅法,以经济地开发出⾼质量的软件并有效维护它。
IEEE的定义:①软件⼯程是把系统的、规范的、可度量的途径应⽤于软件开发、运⾏和维护过程,也就是把⼯程应⽤于软件;②对这些途径加以研究。
1.2.2 软件⼯程的基本原理(7个)——(1)⽤分阶段的⽣命周期计划严格管理(2)坚持进⾏阶段评审(3)实⾏严格的产品控制(4)采⽤现代程序设计技术(5)结果可以清楚地审查(6)开发⼩组成员少⽽精(7)承认不断改进软件⼯程实践的必要性1.2.3 软件⼯程⽅法学:3个要素(⽅法、⼯具和过程)——传统⽅法学:结构化技术,软件⽣命周期——⾯向对象⽅法学:类+对象+继承+消息,软件开发过程更接近⼈类认知模式1.3 软件⽣命周期1.3.1 软件⽣命周期的概念——定义:⼀个软件从定义、开发、使⽤和维护,直⾄最终被废弃,要经历的漫长的时期称为软件⽣命周期。
——构成:3个时期,8个阶段软件定义:问题定义,可⾏性研究,需求分析软件开发:总体设计,详细设计,编码和单元测试,综合测试;运⾏维护:软件维护1.3.2 各阶段的基本任务(8个阶段)——问题定义:需要解决的问题是什么?书⾯报告——可⾏性研究:确定软件系统是否值得去解《可⾏性研究报告》——需求分析:解决这些问题需要系统做什么?《软件需求规格说明书》——总体设计:应该怎样实现⽬标系统?《概要设计说明书》——详细设计:如何具体地实现这个系统?——编码和单元:写代码,测试每个模块!——测试、综合测试:通过各类测试和调试来完善软件《测试计划/⽅案》——软件维护:通过各种必须的维护活动使系统持久地满⾜⽤户的需要。
软件⼯程习题与参考答案习题(第1章)1、简述下列术语:数据、数据元素、数据结构答:数据——在计算机系统中,把客观事物采⽤计算机进⾏识别、存储和加⼯所进⾏的描述,统称为数据。
数据元素——数据的基本单位成为数据元素,也称结点或记录等。
数据结构——是指相互有关联的数据元素的集合。
因此,⼀个数据结构既要反映数据元素的信息,还要反映数据元素之间的关系。
2、数据结构主要研究哪些内容?答:数据结构主要研究以下三⽅⾯的内容:(1)数据元素之间的逻辑关系是什么?(2)适宜选⽤什么存储结构进⾏存储?(3)采⽤什么样的操作实现算法效率更⾼?3、什么是数据的逻辑结构?逻辑结构主要分哪⼏种?答:逻辑结构——能反映数据元素之间的关系的数据组织。
逻辑结构主要分为两⼤类:线性结构和⾮线性结构4、什么是数据的存储结构?存储结构主要分哪⼏种?答:存储结构——反映数据在计算机中的存储⽅法。
⼜称物理结构。
11、设有编号1,2,3,4的四辆列车,顺序进⼊⼀个栈式结构的站台,具体写出这四辆列车开出站的所有可能的顺序。
答:堆栈具有“先进后出”或“后进先出”的特性,在出⼊过程中,可边进边出。
只要保证列车的进⼊先后顺序是1,2,3,4且出栈的总是栈顶元素就可以了。
因此,这四辆列车可能的出栈顺序有14种。
即1,2,3,4 1,2,4,3 1,3,4,2 1,3,2,4 1,4,3,22,1,3,4 2,1,4,3 2,3,4,1 2,3,1,4 2,4,3,13,2,1,4 3,4,2,1 3,2,4,14,3,2,114、对于下列稀疏矩阵A6*7=写出它的三元组表⽰法。
解:三元组表⽰法表⽰了稀疏矩阵中⾮零元的坐标和值。
注:i ——⾏下标,从1开始j ——列下标,从1开始v ——⾮零元素的值第⼀⾏数字表⽰整个稀疏矩阵的信息,即“6”⾏“7”列共“7”个⾮零元素15、设有下列三⾓矩阵A 4*4为A 4*4=A 4*4采⽤压缩存储⽅式存储于⼀维数据Sa 中,试求:(1)⼀维数组Sa 的元素个数;(2)矩阵元素a43在⼀维数据Sa 中的下标。
【关键字】工程软件工程习题解答第一章概述3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件工程?它的目标和内容是什么?软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:软件管理学、软件经济学、软件心理学。
6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、尝试、维护等.7.什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
第一章软件工程概论一、填空题⑴ 软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)、及(C)的完整集合。
其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序员能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文材料。
①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表⑵ 开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。
软件工程中描述软件生存周期的瀑布类型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。
其中,设计阶段在管理上可以依次分成(C)和(D)两个步骤。
A:① 程序开发环境② 操作系统的资源管理功能③ 开发程序人员数量④ 计算机的并行处理能力B:① 需求分析②需求调查③可行性分析④问题定义C、D:① 方案设计② 代码设计③ 概要设计④ 数据设计⑤ 运行设计⑥ 详细设计⑦ 故障处理设计⑧ 软件体系结构设计⑶ 有人将软件的发展过程划分为四个阶段,第一阶段(20世纪50年代),称为程序设计的“原始时期”。
这时既没有(A),也没有(B),程序员只能用机器指令编写程序。
第二阶段(20世纪60年代),称为“基本软件期”。
出现了(A),并逐渐普及。
随着(B)的发展,编译技术也有较大的发展。
第三阶段(20世纪60年代末至70年代中期)称为“程序设计方法时代”。
这一时期,与硬件价格下降相反,软件开发费用急剧上升。
人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。
第四阶段(20世纪70年代中期至今),称为“软件工程”时期。
软件开发技术不再仅仅是程序设计技术,而是包括了软件开发的各个阶段。
如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。
A、B、C、D:① 汇编语言② 操作系统③ 虚拟存储器概念④ 高级语言⑤ 结构化程序设计⑥ 数据库概念⑦ 固件⑧ 模块化程序设计E、F、G:① 使用和维护② 兼容性的确认③ 完整性的确认④ 设计⑤ 需求定义⑥ 图像处理二、简答题⑴ 软件工程过程有哪几种基本活动,试加以说明。
《软件工程基础》习题集答案第一章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。
软件危机的典型表现主要有:a. 开发成本和进度不能准确估计b. 开发出来的软件不能满足用户的要求c. 软件的可维护性差d. 软件质量不可靠e. 软件成本在系统中的比重逐年上升f. 软件开发生产率的提高速度不够2.简述产生软件危机的原因和解决的思路。
软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。
其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。
4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。
6.简述软件的定义。
软件 = 程序 + 数据 + 文档7.软件工程的目的是什么?为高质量的软件开发提供一个科学的体系框架。
8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。
目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。
软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。
9.简述软件工程的基本原理。