软件工程基础习题集答案-2
软件工程 刘强 课后习题参考答案
![软件工程 刘强 课后习题参考答案](https://img.taocdn.com/s3/m/870c3d8902d276a200292e42.png)
7.
(
)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过
程,它包括方法、工具和过程三个要素。(D)
A. 软件产品
B. 软件过程
C. 软件测试
D. 软件工程
8.
软件工程的基本要素包括方法、工具和(
A. 软件系统
B. 硬件环境
C. 过程
D. 人员
)。(C)
9.
软件工程师在从事软件工作时应使用下面的(
系统的交互; y 原型评价:由用户或客户对该原型进行评价,需要的话再进一步细化待开发软件的需求,
并继续调整原型直至需求确定下来为止。
3. 对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如何应 用该模型。 (1) 瀑布模型 (2) 快速原型模型 (3) 增量模型 (4) 形式化方法模型 (5) 基于组件的开发模型
)。(D)
11. 下面的(
)不是 RUP 模型的阶段。(D)
A. 启动阶段
B. 精化阶段
C. 构造阶段
D. 确认阶段
[练习题]
1. 请简要说明软件过程的概念和基本元素。 答案要点:
软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它 应该明确定义以下元素:
y 过程中所执行的活动及其顺序关系 y 每一个活动的内容和步骤 y 团队人员的工作和职责
y 系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶
段,从而确定新系统的需求。 y 遗留系统分析:在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,
(3) 增量模型 项目举例:某公司开发一个通用 CAD 软件产品,产品需求是逐步完善的,某些需求在一定 范围内是明确的,某些需求需要进一步细化,但是迫于市场竞争的压力产品需要尽快上市。 选用分析:通用 CAD 软件产品具有一定的成熟度,总体需求和软件系统结构是可以确定的,
软件工程习题与答案
![软件工程习题与答案](https://img.taocdn.com/s3/m/030122b685254b35eefdc8d376eeaeaad1f31627.png)
软件工程习题与答案一、单选题(共56题,每题1分,共56分)1.统递归神经网络(RNN)主要问题是A、没有记忆与遗忘控制单元B、无法处理矩阵数据C、迭代速度D、过拟合正确答案:A2.信息系统测试包含()。
A、内部测试、第三方确认测试、上线测试B、内部测试、第三方确认测试、上线测试、验收测试C、内部测试、第三方确认测试D、内部测试、第三方确认测试、上线测试、验收测试、运行测试正确答案:D3.下列哪一项不是数据预处理的步骤A、缺失值填充B、离散点过滤C、模型调参D、数据标准化正确答案:C4.不属于进程关键要素的是________。
A、原语B、程序C、数据和栈D、进程控制块正确答案:A5.下面哪些概念在页式虚拟存储管理系统中一定用到?()A、联想存储器B、段表C、缺页中断D、抖动正确答案:C6.$1$TLGHx5co$vq6xM0WG1hYfIV1AZEWgD是什么系统的密码加密值?()A、WindowsB、LinuxC、UNIXD、AIX正确答案:B7.在各种作业调度算法中 , 若所有作业同时到达 , 则平均周转时间最短的算法是()。
A、多级反馈队列调度算法B、高优先级优先调度算法C、短作业优先调度算法D、先来先服务调度算法正确答案:C8.系统死锁的可能的原因是A、程序内存访问越界B、进程释放资源C、资源循环等待D、进程死循环正确答案:C9.Select * from admin where username=’admin’ and password=’$_POST[‘pwd’] ‘ ,提交pwd为下面的何值可通过验证。
A、1’ or ‘1’=‘1B、1 or 1 = 1C、‘1’=‘1’D、‘1’ or ‘1’=‘1’正确答案:A10.一棵深度为4的三叉树,最多有多少个节点?A、54B、40C、24D、36正确答案:B11.下列 _____ 不是网络操作系统。
A、Windows NT ServerB、UnixC、DOSD、NetWare正确答案:C12.作业由后备状态转变为执行状态是通过以下那个调度程序实现的()A、中级调度B、进程调度C、作业调度 (调入内存)D、驱臂调度正确答案:C13.下列关于树模型的解释错误的是A、只适用于分类模型B、集成算法中的基础模型C、适合进行可视化展示D、擅长对特征进行优劣判断正确答案:A14.设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为A、11B、6C、6.5D、5正确答案:C15.数据清洗的方法不包括A、噪声清除B、模型调参C、一致性检查D、缺失值处理正确答案:B16.当你感觉到你的Win2003运行速度明显减慢,当打开任务管理器后发现CPU使用率达到了100%,你认为你最有可能受到了()攻击。
软件工程 课后习题答案
![软件工程 课后习题答案](https://img.taocdn.com/s3/m/39987ac3f18583d048645984.png)
第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。
软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。
例如:编译软件、操作系统。
2.支撑软件支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统、网络软件、软件工具、软件开发环境。
3.应用软件应用软件是特定应用领域专用的软件。
例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
1.3简述软件语言的分类,并举例说明。
1.需求定义语言是用于书写软件需求定义的语言。
例如:PSL/PSA。
2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。
例如:广谱语言、Z语言。
3.设计性语言是用于书写软件设计规约的语言。
例如:PDL。
4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。
例如:C、java、PROLOG、FORTRAN、COBOL、Modula。
5.文档语言是用于书写软件文档的语言。
通常用自然语言或半形式化语言书写。
1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。
1.5简述软件工程的基本原则。
软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。
1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。
2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
软件工程练习题库+答案
![软件工程练习题库+答案](https://img.taocdn.com/s3/m/48cd1e4f905f804d2b160b4e767f5acfa1c78326.png)
软件工程练习题库+答案一、单选题(共56题,每题1分,共56分)1.实现虚存最主要的技术是()。
A、整体对换B、整体覆盖C、多道程序设计D、部分对换正确答案:D2.逻辑回归算法通常使用下列哪种方法求解A、统计分析B、梯度下降迭代优化C、直接求解D、相识度计算正确答案:B3.从二叉搜索树中查找一个元素时,其时间复杂度大致为A、O(n)B、O(n2)C、O(1)D、O(log2n)正确答案:D4.下面哪些概念在页式虚拟存储管理系统中一定用到?()A、抖动B、段表C、缺页中断D、联想存储器正确答案:C5.msconfig命令可以用来配置()。
A、系统配置B、协议配置C、服务配置D、应用配置正确答案:A6.执行完当前指令后, PC 中存放的是后继指令的地址,因此 PC 的位数和()的位数相同。
A、指令寄存器B、程序状态字寄存器C、主存地址寄存器D、指令译码器正确答案:C7.下列不属于防火墙核心技术的是()。
A、(静态/动态)包过滤技术B、NAT技术C、应用代理技术D、日志审计正确答案:D8.求 2n 个数中的最大值和最小值,最少的比较次数是A、4n/3B、2n-2C、3n-2D、3n/2正确答案:C9.LSTM网络主要解决了RNN中遇到的哪些问题A、不可并行计算,速度提升B、无法处理语言数据C、可以有选择的记忆D、特征编码稀疏问题正确答案:C10.当你感觉到你的Win2003运行速度明显减慢,当打开任务管理器后发现CPU使用率达到了100%,你认为你最有可能受到了()攻击。
A、缓冲区溢出攻击B、木马攻击C、暗门攻击D、DOS攻击正确答案:D11.A方有一对密钥(KA公开,KA秘密),B方有一对密钥(KB公开,KB秘密),A方向B方发送数字签名M,对信息M加密为:M’= KB 公开(KA秘密(M))。
B方收到密文的解密方案是()。
A、KB公开(KA秘密(M’))B、KA公开(KA公开(M’))C、KA公开(KB秘密(M’))D、KB秘密(KA秘密(M’))正确答案:C12.df.head(6)的含义是A、展示数据中前6条数据B、展示数据中第6条数据C、展示数据中后6条数据D、删除数据中的前6条正确答案:A13.关于机器学习与深度学习的描述正确的是A、深度学习算法不需要对数据进行预处理B、深度学习算法只能应用在计算机视觉与自然语言处理中C、深度学习算法优于机器学习算法D、深度学习算法通常迭代速度较慢正确答案:D14.信息安全中PDR模型的关键因素是()。
计算机二级(VF)软件工程基础章节练习试卷2(题后含答案及解析)
![计算机二级(VF)软件工程基础章节练习试卷2(题后含答案及解析)](https://img.taocdn.com/s3/m/7b41fcfaccbff121dc3683c0.png)
计算机二级(VF)软件工程基础章节练习试卷2(题后含答案及解析) 题型有:1. 选择题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.在软件开发中,下面任务不属于设计阶段的是______。
A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型正确答案:D 涉及知识点:软件工程基础2.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
A.概要设计B.详细设计C.可行性分析D.需求分析正确答案:D 涉及知识点:软件工程基础3.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为______。
A.层次模型B.瀑布模型C.螺旋模型D.对象模型正确答案:B 涉及知识点:软件工程基础4.软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。
A.阶段性报告B.需求评审C.总结D.都不正确正确答案:B 涉及知识点:软件工程基础5.在软件生命周期中,回答“要解决的问题是什么”的阶段是______。
A.需求分析B.测试C.概要设计D.可行性分析和项目开发计划正确答案:D 涉及知识点:软件工程基础6.检查软件产品是否符合需求定义的过程称为______。
A.确认测试B.集成测试C.验证测试D.验收测试正确答案:A 涉及知识点:软件工程基础7.下列工具中属于需求分析常用工具的是______。
A.PADB.PFDC.N-SD.DFD正确答案:A 涉及知识点:软件工程基础8.下面不属于软件设计原则的是______。
A.抽象B.模块化C.自底向上D.信息隐蔽正确答案:C 涉及知识点:软件工程基础9.判定树和判定表用于描述结构化分析方法中______环节的工具。
A.功能说明B.数据加工C.流程描述D.性能说明正确答案:C 涉及知识点:软件工程基础10.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
软件工程课后参考答案
![软件工程课后参考答案](https://img.taocdn.com/s3/m/c61de5c0102de2bd96058850.png)
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
(完整word版)软件工程习题集+答案
![(完整word版)软件工程习题集+答案](https://img.taocdn.com/s3/m/f0ebf1c7afaad1f34693daef5ef7ba0d4a736d30.png)
(完整word版)软件工程习题集+答案《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程课后习题集答案解析
![软件工程课后习题集答案解析](https://img.taocdn.com/s3/m/ed37a4880b1c59eef9c7b403.png)
软件工程课后习题答案习题1 略。
习题2 略。
习题3 略。
习题42.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准那么?人们在理解用自然语言描述的规格说明时,容易产生二义性。
为了克制非形式化方法的缺点,人们把数学引入软件开发工程,创造了基于数学的形式化说明技术。
应用形式化方法的准那么:〔1〕应该选用释放的表示方法;〔2〕应该形式化,但不要过分形式化;〔3〕应该估算本钱;〔4〕应该有形式化方法参谋随时提供咨询;〔5〕不应该放弃传统的开发方法;〔6〕应该建立详尽的文档;〔7〕不应该放弃质量标准;〔8〕不应该盲目依赖形式化方法;〔9〕应该测试、测试再测试;〔10〕应该重用。
4.用有穷状态机说明自动化图书馆流通系统习题5 略。
习题6 略。
习题7 略。
习题8 略。
习题91.什么是面向对象方法学?它有哪些优点?面向对象方法学,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法和过程,从而使得实现解法的解空间〔也称为求解域〕与描述问题的问题空间〔也称为问题域〕在构造上尽可能一致。
优点:1.与人类习惯的思维方法一致;2.稳定性好;3.可重用性好;4.较易开发大型软件产品;5.可维护性好10.建立订货系统的用例模型。
分析如下:从对这个订货系统的需求可以知道,仓库管理员通过放在仓库中的终端把零件入库/出库市事务报告给订货系统,系统承受到事务信息之后应该处理事务;采购员需要使用订货系统提供的产生报表功能,以获取订货报表。
综上所述,用例如下:习题101.用面向对象方法分析研究本书习题2第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
对象模型参考:以上还需将关联关系说明补全。
动态模型参考:(1)脚本正常情况脚本:●储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;●业务员查收存款,审核存款与存款单存款金额吻合;●存款单生效;●储户有取款要求,填写取款单,包含个人账号、密码〔待定〕和存款金额;●业务员审核存款,验证储户身份,确定储户存款金额 > = 取款金额;●审核通过,取款单生效;●系统打印利息清单,业务员把本金和利息返回储户。
软件工程课后习题答案2
![软件工程课后习题答案2](https://img.taocdn.com/s3/m/8c5cd00379563c1ec5da71f5.png)
12
作业及解答(第3章)
从问题陈述可知,复印机的状态主要有“闲置”、“复印
”、“缺纸”和“卡纸”。引起状态转换的事件主要是“ 复印命令”、“完成复印命令”、“发现缺纸”、“装满 纸”、“发生卡纸故障”和“排除了卡纸故障”。
13
作业及解答(第4章)
14
补充:请将下图的DFD转换为软件结构图。 (注:图中⊕表示或者)
1
作业及解答(第3章)
1. 银行计算机储蓄系统的工作过程大致如下:储户填写的 存款单或取款单由业务员键入系统,如果是存款则系统记 录存款人姓名、住址(或电话号码)、身份证号码、存款类 型、存款日期、到期日期、利率及密码(可选)等信息,并 印出存单给储户;如果是取款而且存款时留有密码,则系 统首先核对储户密码,若密码正确或存款时未留密码,则 系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘 系统中的数据对象。
21
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单
取
单
储蓄业务处理
存款单
单据输出
利 息
存单
款
存单
密码
取
利率
清
利
单
密 码
单
息
存款利 率设置
存款单据输 入
取款单 据输入
存款
取款
存单
利息清单
22
(2)机票预定系统 为了方便旅客,某航空公司拟开发一个机票预定系 统。旅行社把预定机票的旅客信息(姓名、性别、 工作单位、身份证号码、旅行时间、旅行目的地等 )输入该系统,系统为旅客安排航班,旅客在飞机 起飞前一天凭取票通知和账单交款取票,系统核对 无误即印出机票给顾客
软件工程课后习题答案2-12章
![软件工程课后习题答案2-12章](https://img.taocdn.com/s3/m/384f39db76eeaeaad1f330be.png)
书状态为S2&终端 输入“H=”加书名 管理员设置状 态 管理员删除 管理员添加
预约
书出库(删除) 书入库
图4.4.2
(三)图书馆终端用户模式的有穷状态机描述 • 状态机J:{读者查询状态,查询结果} • 输入集K:{终端输入用户查询命令,书的各种 状态(S1,S2,S3)} • 转换函数T:如图4.4.3所示 • 初始态S:{读者查询状态} • 终态集F:{查询结果}
取票通知 账单 机票 账单
P3.1 核对取票凭证 顾客 取票通知 P3.2 交款 机票 P3.3 打印机票
机票预定系 统
信 息 通 知 单 机 票
账
单
信息
机票
通
预定信息处 理
信息
知
账
通
单
有
单
取票凭证处 理
通知 账单 单
账单
信 息 定 预 航班信
息
机票预定子 系统
单 知
机票发放子 系统
效 通 知
机
票
取款单
P3.1输入取款 信息
取款信息 E1储 户 密码 P3.2 密码校验
P4 计算利息
利息 利息 P5 打印利息 清单
密码正确信息
E2业 务员
利率
P6设置利 率
利率
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单
取
单
储蓄业务处理
(一)图书状态的有穷状态机描述 • 状态机J:{书在图书馆S1,书被借出S2, 书被预约S3} • 输入集K:{书上条形码,借阅卡条形码, 终端输入各种命令} • 转换函数T:如图4.4.1所示 • 初始态S:{书在图书馆S1,书被借出S2} • 终态集F:{书被借出S2,书被预约S3}
计算机软件基础(二)习题解解答
![计算机软件基础(二)习题解解答](https://img.taocdn.com/s3/m/a55ee86f6c85ec3a87c2c5d7.png)
算机软件基础习题解答第一章 概论(答案参阅)1、 P12、P23、P44、P45、P56、P27、P78、P59、P7 2、第二章 数据结构 一、 选择题1. B P18(2)2. D P16(5)3. D P26 (40 )4. C P23 ( 1 )5. D P30 (3) 即:98+ ((8-1)×8 +(3-1))×5=3886. C P35(2)7. B P34(3)8. A P35(45)9. B P36 (7) 10. C P36 (48) 11. A P38(5) 12. B P45(41) 二、 填空题1. 数据元素 数、字符串、一个或多个数据项 P9(40)2. 顺序存储结构 P11(9)3. 随机 P15 (48) 顺序 P16(40)4. 栈顶 栈底 P22(38)5. 队列 P256. 行下标 列下标 该元素的值7. 2i-1 P358. 右孩子 P38(40) 9. 线性查找 P45(30)10. n 22()即探测总次数为1+2+3+ … +n-111. Log 2 256=8 三、 判断题1. B2. B3. B4. B5. B6. A7. A8. A9. B 四、 问答题 1. P 112. 对一个已建立好的单链表(表头指针为head ),编写一算法计算该链表中的结点个数。
(要求给出结点的结构描述) 统计结点个数int ListLength(LinkList head) {int i=0;LinkList p=head->next; While (p) {i++;p=p->next; }return i; }3. 给定一个n 项元素的线性表V ,写一个过程将元素排列的次序颠倒过来, # define n 100 Int V[n];Int k=0,front=1,rear=n;Scanf(“%d”,&V[n]);While(front!=rear);V[0]=V[front];V[front]=V[rear];V[rear]=V[0];frout++;rear--;4.试设计实现在单链表中删去值相同的多余结点的算法del(LinkList *head){ //删除单链表中值相同的多余结点LinkList *p, *s, *q;p=head->next;while(p!=NULL && p->next!=NULL){ s=p; //s指向要删除结点的前趋q=p->next;while (q!=NULL){ if (q->data= =p->data)} //查找值相同的结点并删除{ s->next=q->next;free(q);q=s->next;}else{ s=q;q=q->next;}}p=p->next;}}5. P206.设计计算线性链表长度的算法int Listlength(Linklist L) //求链表长度{Linklist p;int j=0;p=L;while(p->next!=NULL){++j;p=p->next;}return j;}7. 设一线性链表,其结点值为正整数序列,且按值从小到大链接,设计算法,将此线性链表分成两个纯属链表,其中一个结点值均为奇数,而另一个均为偶数,且也是从小到大链接。
软件工程第一二三章习题参考答案
![软件工程第一二三章习题参考答案](https://img.taocdn.com/s3/m/2b768574f08583d049649b6648d7c1c708a10bf7.png)
第一章软件工程概述软件是计算机程序及其有关旳数据和文档旳结合。
软件危机是指在计算机软件开发和维护时所碰到旳一系列问题。
软件危机重要包括两方面旳问题: 一是怎样开发软件以满足对软件日益增长旳需求;二是怎样维护数量不停增长旳已经有软件。
软件工程是软件开发、运行、维护和引退旳系统措施。
软件工程是指导计算机软件开发和维护旳工程学科。
软件工程采用工程旳概念、原理、技术和措施来开发与维护软件。
软件工程旳目旳是实现软件旳优质高产。
软件工程学旳重要内容是软件开发技术和软件工程管理。
软件开发措施学是编制软件旳系统措施, 它确定软件开发旳各个阶段, 规定每一阶段旳活动、产品、验收旳环节和完毕准则。
常用旳软件开发措施有构造化措施、面向数据构造措施和面向对象措施等。
习题参照答案:1) 1. 什么是软件危机?为何会出现软件危机?2)答: 软件危机是指在计算机旳开发和维护过程中所碰到旳一系列严重问题。
这些问题决不仅仅是不能正常运行旳软件才具有旳, 实际上, 几乎所有软件都不一样程度地存在这些问题。
3)出现软件危机旳原因:首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。
软件不一样于硬件, 它是计算机系统中逻辑件而不是物理部件。
管理和控制软件开发过程相称困难。
软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。
目前相称多旳软件专业人员对软件开发和维护尚有不少糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。
总结如下:4)获得对旳旳顾客需求和对旳地描述需求很困难5)开发人员对需求旳对旳理解也有困难6)常常在没有对旳理解之前就仓促开始编程7)软件项目缺乏有效旳组织、管理和内部交流8)缺乏软件开发措施、模型和工具旳支持9)软件维护旳困难性2. 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说: “假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?答: 在软件开发旳不一样阶段进行修改付出旳代价是很不相似旳, 在初期引入变动, 波及旳面较少, 因而代价也比较低;在开发旳中期, 软件配置旳许多成分已经完毕, 引入一种变动要对所有已完毕旳配置成分都做对应旳修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出旳代价剧增;在软件已经完毕时再引入变动, 当然付出旳代价更高。
软件工程基础习题(含答案)
![软件工程基础习题(含答案)](https://img.taocdn.com/s3/m/5f2a2af3a48da0116c175f0e7cd184254b351b7f.png)
软件工程基础习题(含答案)第三章软件工程重点:需求分析、概要设计、详细设计、软件测试和软件调试的作用、方法等一、软件工程基本概念软件定义与软件特点1. 软件是计算机系统中与硬件相互依存的重要部分,包括程序、数据及相关的文档。
其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2. 下列叙述中,正确的是( d )。
A)软件就是程序清单 B)软件就是存放在计算机中的文件C)软件应包括程序清单及运行结果 D)软件包括程序和文档3. 软件按功能可以分为:应用软件(office)、系统软件(操作系统)、支撑软件(或工具软件)--需求分析工具软件危机与软件工程 61页4. 软件工程的出现是由于( c )A)程序设计方法学的影响 B)软件产业化的需要C)软件危机的出现 D)计算机的发展5. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( b )A)软件投机 B)软件危机 C)软件工程 D)软件产生说明:软件工程概念的出现源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
总之,可以将软件危机归结为成本、质量、生产率等问题。
6. 开发大型软件时,产生困难的根本原因是( a )。
A)大型系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧、任务重7. 软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原理来设计软件这就是软件工程诞生的基础。
8. 下列不属于软件工程的3个要素的是( d )A)工具 B)过程 C)方法 D)环境软件工程过程与软件生命周期 63页9. 软件工程过程(定义)是把输入转化为输出的一组彼此相关的资源和活动。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期10. 软件生命周期中所花费用最多的阶段是(d)A)详细设计 B)软件编码 C)软件测试 D)软件维护11. 软件开发的结构化生命周期方法将软件生命周期划分成( a )。
软件工程习题与参考答案
![软件工程习题与参考答案](https://img.taocdn.com/s3/m/015d64707f21af45b307e87101f69e314332fa62.png)
软件⼯程习题与参考答案习题(第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 中的下标。
软件工程习题二答案
![软件工程习题二答案](https://img.taocdn.com/s3/m/2963cfe8d0f34693daef5ef7ba0d4a7302766c9e.png)
软件工程习题二答案软件工程习题二答案软件工程是一门涉及软件开发、测试、维护和管理的学科。
在软件工程的学习过程中,习题是一种常见的学习方式,通过解答习题可以巩固知识,提高解决问题的能力。
本文将提供软件工程习题二的答案,帮助读者更好地理解和应用软件工程的相关知识。
1. 什么是软件过程?答: 软件过程是指在软件开发过程中,根据特定的目标和约束条件,组织、管理和执行一系列活动的过程。
它包括需求分析、设计、编码、测试、部署和维护等阶段,通过合理的规划和控制,可以提高软件开发的效率和质量。
2. 软件过程模型有哪些?答: 软件过程模型是指在软件开发过程中,按照一定的顺序和方法进行组织和管理的模型。
常见的软件过程模型包括瀑布模型、迭代模型、增量模型、螺旋模型和敏捷模型等。
每种模型都有其适用的场景和特点,可以根据具体的项目需求选择合适的模型。
3. 什么是需求工程?答: 需求工程是软件工程中的一个重要环节,它主要关注用户需求的获取、分析和规格化。
需求工程的目标是确保软件开发过程中的需求与用户真正的需求一致,避免开发出不符合用户期望的软件。
需求工程包括需求获取、需求分析、需求规格化和需求验证等步骤。
4. 软件测试的目的是什么?答: 软件测试的主要目的是发现软件中的错误和缺陷,确保软件的质量和可靠性。
通过进行各种测试活动,如单元测试、集成测试、系统测试和验收测试等,可以验证软件是否满足预期的功能和性能要求,提高软件的可靠性和稳定性。
5. 什么是软件配置管理?答: 软件配置管理是指对软件开发过程中的配置项进行有效管理和控制的过程。
配置项包括源代码、文档、测试用例和配置文件等。
通过配置管理,可以追踪和控制软件的变更,确保软件开发过程的可控性和可追溯性。
6. 什么是软件质量保证?答: 软件质量保证是指在软件开发过程中,通过一系列的活动和措施,确保软件的质量和可靠性。
软件质量保证包括质量计划、质量控制和质量评估等方面。
通过制定合理的质量计划、执行有效的质量控制和评估方法,可以提高软件的质量和用户满意度。
软件工程第1-2章课后习题参考答案
![软件工程第1-2章课后习题参考答案](https://img.taocdn.com/s3/m/d7202227effdc8d376eeaeaad1f34693daef1046.png)
软件⼯程第1-2章课后习题参考答案第⼀章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的⼀系列“严重问题”。
这些问题决不仅仅是不能正常运⾏的软件才具有的,实际上,⼏乎“所有软件”都不同程度地存在这些问题。
“软件危机”包含两⽅⾯的问题:(1)如何开发软件,以满⾜对软件⽇益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)⽤户对“已完成的”软件系统不满意的现象经常发⽣;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的⽂档资料;(6)软件成本在计算机系统总成本中所占的⽐例逐年上升;(7)软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤普及深⼊的趋势。
出现软件危机的原因(1)开发⼈员与客户认识之间的⽭盾(2)开发⼈员能⼒与开发⽬标之间的⽭盾(3)预估与实际⼯作量之间的⽭盾(4)客户认识的提⾼与软件维护之间的⽭盾(5)遗产系统与实施软件之间的⽭盾2.假设⾃⼰是⼀家软件公司的总⼯程师,当把图1.1给⼿下的软件⼯程师们观看,告诉他们及时发现并改正错误的重要性时,有⼈不同意这个观点,认为要求在错误进⼊软件之前就清楚它们是不现实的,并举例说:“如果⼀个故障是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进⾏修改付出的代价是很不相同的,在早期引⼊变动,涉及的⾯较少,因⽽代价也⽐较低;在开发的中期,软件配置的许多成分已经完成,引⼊⼀个变动要对所有已完成的配置成分都做相应的修改,不仅⼯作量⼤,⽽且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引⼊变动,当然付出的代价更⾼。
⼀个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很⼩的,因为这不是整体构架的错误。
3.什么是软件⼯程?它有哪些本质特征?怎么⽤软件⼯程消除软件危机?软件⼯程是知道计算机软件开发和维护的⼀门⼯程学科。
软件工程习题含答案
![软件工程习题含答案](https://img.taocdn.com/s3/m/eb9d71b677eeaeaad1f34693daef5ef7ba0d1294.png)
软件工程习题含答案一、单选题(共56题,每题1分,共56分)1.会话侦听与劫持技术属于()技术A、密码分析还原B、协议漏洞渗透C、应用漏洞分析与渗透D、DOS攻击正确答案:B2.若一棵二叉树具有8个度为2的结点,5个度为1的结点,则度为0的结点个数是?A、不确定B、6C、11D、9正确答案:D3.A、B、C、D、E、F依次入栈,其出栈顺序为B、D、C、F、E、A,则该栈最小容量为A、6B、5C、4D、3正确答案:D4.进程由执行状态到阻塞状态的原因可能是()。
A、请求某种资源B、处于执行状态的进程的时间片结束C、释放某种资源正确答案:A5.下列哪一项不是激活函数A、batch normalizationB、reluC、tanhD、sigmoid正确答案:A6.网络安全法规定,网络运营者应当制定(),及时处置系统漏洞、计算机病毒、网络攻击、网络侵入等安全风险。
A、网络安全事件应急演练方案B、网络安全事件应急预案C、网络安全事件补救措施D、网络安全规章制度正确答案:B7.下列哪种算法更适合做时间序列建模A、CNNB、决策树C、LSTMD、贝叶斯算法正确答案:C8.下面()不是数据字典的内容。
A、外部实体B、程序C、数据结构D、处理逻辑正确答案:B9.通过网页上的钓鱼攻击来获取密码的方式,实质上是一种()。
A、旁路攻击B、社会工程学攻击C、暴力破解攻击D、密码分析学正确答案:B10.已知 10*12的二维数组 A ,以行序为主序进行存储,每个元素占1个存储单元,已知A[1][1]的存储地址为 420 ,则 A[5][5] 的存储地址为A、470B、471C、472D、473正确答案:C11.不属于进程关键要素的是________。
A、进程控制块B、数据和栈C、原语D、程序正确答案:C12.下列哪一项不是卷积神经网络的典型代表A、ALEXNETB、LSTMC、VGGD、RCNN正确答案:B13.关闭系统多余的服务有什么安全方面的好处?A、使黑客选择攻击的余地更小B、没有任何好处C、使系统进程信息简单,易于管理D、关闭多余的服务以节省系统资源正确答案:A14.为了简化管理,通常对访问者(),以避免访问控制表过于庞大。
软件技术基础第二章课后习题答案
![软件技术基础第二章课后习题答案](https://img.taocdn.com/s3/m/081b76d6ce2f0066f5332222.png)
习题2.1 什么是数据结构?它对算法有什么影响?答:数据结构是指同一数据对象中各数据元素间存在的关系。
数据结构对算法的影响:算法的实现必须借助程序设计语言中提供的数据类型及其运算。
一个算法的效率往往与数据的表达形式有关,因此数据结构的选择对数据处理的效率起着至关重要的作用。
它是算法和程序设计的基本部分,它对程序的质量影响很大。
习题2.2 何谓算法?它与程序有何区别?答:广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
计算机算法是通过计算机能执行的算法语言来表达的。
和程序的区别:一个程序包括两个方面的内容:(1)对数据的描述,即数据结构。
(2)对操作的描述,即算法。
所以算法是程序的一个要素。
习题2.3 何谓频度,时间复杂度,空间复杂度?说明其含义。
答:频度:在某个算法中某个语句被重复执行的次数就是此语句的频度。
时间复杂度:是用来估算一个算法的执行时间的量,以算法中频度最大的语句来度量。
空间复杂度:指在算法中所需的辅助空间的单元,而不包括问题的原始数据占用的空间。
习题2.4算法:A=(a0, a1 ……an)mul = 1 //sum=a0for i=1 to nmul = mul * xsum = A[i]*mul + sum //求和end(i)程序代码:#include<stdio.h>#include<stdlib.h>#define N 10double polynomail(int a[],int i,double x,int n);int main(){double x;int n,i;int a[N];printf("输入变量的值x:");cin>>x;cout<<"输入多项式的阶次n:";cin>>n;if(n>N-1) exit(0);cout<<"输入多项式的系数a[0]--a[n]:";for(i=0;i<=n;i++) cin>>a[i];cout<<"The polynomail value is "<<polynomail(a,n,x,n)<<endl;return 0;}double polynomail(int a[],int i,double x,int n){if(i>0) return a[n-i]+polynomail(a,i-1,x,n)*x;else return a[n];}本算法的时间复杂度为O(n)。
《软件工程基础》习题集答案-2
![《软件工程基础》习题集答案-2](https://img.taocdn.com/s3/m/949cc39cdc3383c4bb4cf7ec4afe04a1b171b061.png)
《软件工程基础》习题集答案 -2第一章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开辟和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开辟软件,以满足日益增长、日益复杂的需要;如何维护数量不断膨胀的已有软件。
软件危机的典型表现主要有: a.开辟成本和进度不能准确估计b.开辟出来的软件不能满足用户的要求c.软件的可维护性差d.软件质量不可靠e.软件成本在系统中的比重逐年上升f.软件开辟生产率的提高速度不够2.简述产生软件危机的原因和解决的思路。
软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开辟、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开辟是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开辟和维护的学科。
其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开辟技术,开辟与维护软件,以解决软件危机。
4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开辟和维护计算机软件,从源头上消除软件危机。
6.简述软件的定义。
软件=程序+数据+文档7.软件工程的目的是什么?为高质量的软件开辟提供一个科学的体系框架。
8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开辟技术方法的集合。
目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。
软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极其广泛,而分为三个分支:软件开辟技术、软件项目管理技术、软件质量管理技术。
9.简述软件工程的基本原理。
软件工程有 7 条基本原理:1.严格按照软件生命周期计划进行管理 2.坚持进行阶段评审 3.实行严格的产品控制4.采用先进的程序设计技术 5.结果应能清晰的审查 6.开辟小组成员应少而精7.承认不断改进软件工程实践的必要性10.软件工程的基本开辟原则有哪些?软件工程的基本开辟原则有: 1.模块化2.抽象和信息隐蔽3.模块的高内聚和低耦合 4.确定性 5.一致性 6.完备性11.构成软件工程的基本元素有哪些?除了前面给出的软件工程三大要素,还应该包括控制和质量保证。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程基础习题集答案-2《软件工程基础》习题集答案第一章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。
软件危机的典型表现主要有:a. 开发成本和进度不能准确估计b. 开发出来的软件不能满足用户的要求c. 软件的可维护性差d. 软件质量不可靠e. 软件成本在系统中的比重逐年上升f. 软件开发生产率的提高速度不够2.简述产生软件危机的原因和解决的思路。
软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。
其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。
4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。
6.简述软件的定义。
软件=程序 + 数据 + 文档7.软件工程的目的是什么?为高质量的软件开发提供一个科学的体系框架。
8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。
目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。
软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。
9.简述软件工程的基本原理。
软件工程有7条基本原理:1.严格按照软件生命周期计划进行管理2.坚持进行阶段评审3.实行严格的产品控制4.采用先进的程序设计技术5.结果应能清楚的审查6.开发小组成员应少而精7.承认不断改进软件工程实践的必要性10.软件工程的基本开发原则有哪些?软件工程的基本开发原则有:第二章可行性研究1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?可行性研究的目的是用最小的代价,在尽可能短的时间内确定问题是否可解决,以及是否值得解决。
可行性研究的任务不是解决问题,而是确定是否可解/值得解。
2.应该从哪些方面研究目标系统的可行性?主要从以下几个方面进行可行性研究:1. 技术可行性。
以现有技术,能否在预定时间内完成该系统开发。
2. 经济可行性。
通过成本-效益分析,估算系统的整体经济效益是否满足要求。
3. 操作可行性。
分析系统的运行方式、操作规程是否适应用户应用需要。
4. 社会可行性。
分析系统在法律、社会、市场等方面的认可度。
3.可行性研究有哪些工作步骤?(1) 复查定义,确定系统规模和目标。
(2) 研究老系统(3) 导出高层逻辑模型(conceptual design)(4) 重新定义(5) 导出多种解法(6) 推荐行动方针(7) 开发计划(粗略)(8) 审查、存档4.简述系统流程图在可行性研究中的作用。
系统流程图是概括的描述物理系统的传统工具。
系统流程图反映的是信息在系统各部分间流动的情况。
系统流程图可以帮助了解和分析系统,以概括的方式表达对系统的认识,并可以描述未来物理系统的概貌。
5.简述数据流图在可行性研究中的作用和用途。
数据流图在可行性分析中可以帮助分析和描绘数据在软件中流动和被处理的逻辑过程,用图形的方式描述系统的逻辑功能,是系统分析员和用户之间理想的通信工具。
6.简单描述数据字典的内容和定义数据的方法。
数据字典主要由下列4种元素定义组成:1.数据流2.数据流分量3.数据存储4.处理除了数据定义外,数据字典还应包含一些关于数据的其它信息。
定义数据的方法通常采用自顶向下分解的方式。
并由顺序、选择、重复三种基本数据元素类型组成数据。
7.说明软件计划的内容和目标。
软件计划的内容=项目任务范围 + 环境资源 + 工作量 + 进度软件计划的目标是为了提供一个框架,以便于管理者对资源、成本和进度等进行合理的估算。
8.什么是软件范围?定义软件范围需要哪些信息?软件范围就是在技术和管理层面上都是无二义性和可理解的项目范围,是软件开发各阶段的工作依据。
定义软件范围需要以下信息:a. 与用户、总体目标及利益相关的问题。
b. 有利于系统分析员理解的问题。
c. 集中于交流效果的问题。
9.简述软件开发环境资源的三个层次。
软件开发环境资源由三个层次构成:开发环境、软件构件以及最重要的资源——人。
10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?每一类资源都有四个特征:资源描述、可用性说明和资源提供的时间、资源使用的延续时间。
可以为制定软件计划估算软件开发所需的资源。
11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?编制进度计划的常用工具主要有甘特图和网络计划法。
甘特图的优点是简单,能动态地反映开发进展;缺点是难以反映多个任务间的逻辑关系。
网络计划法则恰好弥补了甘特图的缺点,最适合反映多个工作之间的逻辑关系。
12.主要的成本估计技术有哪些?其依据的主要是什么?主要有,代码行技术。
是一种基于规模的分解估算:D= f(vi)以及基于问题的分解估算:EV=(Sopt+4Sm+Spess)/6还有功能点技术。
这种技术以功能点(FP)为单位,度量软件的规模。
由于项目本身的复杂性,因此,成本估计技术主要采用“分而治之”的分解技术对软件项目进行估算。
13.为什么说成本估计是不可能精准的?那是由于太多的变化因素——人员、技术、环境、策略、复杂性等等,使得成本估算永远不可能精确。
14.进行成本/效益分析的方法主要有哪些?常用成本/效益分析的方法主要有:(1) 货币的时间价值(2) 投资回收期(3) 纯收入(4) 投资回收率16.如何对制定完成的软件计划进行复审?为什么要复审?软件计划的复审通常涉及有关软件工作范围和软硬件资源问题等。
复审应该邀请用户参加,用户可提出建议,并与开发人员最终商定内容。
复审内容分为技术和管理两个方面:技术方面需要考虑的问题有:系统的任务是否合理;系统的给你复杂性是否与开发成本、进度以及风险一致;系统规格说明书是否足够充分;系统性能要求是否恰当管理方面需要考虑的问题有:计划中描述的工作范围是否符合用户需求?计划中对资源的描述是否有效、合理?计划中系统的开发成本与进度要求是否合理?计划中人员的安排是否合理?系统开发存在哪些风险?复审可以尽早发现错误,复审是软件质量保证的重要措施。
第三章需求分析1.为什么要进行需求分析?通常对软件系统有哪些需求?需求问题是软件工程项目失败的主要原因。
一个高质量的软件,很大程度上取决于对要解决的问题的认识,以及如何准确的表达用户的需求。
需求分析就是要解决这个问题。
通常,对一个软件系统的需求可以有功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求等多个方面。
2.怎样与用户有效地沟通,以获得用户的真实需求?访谈、情景分析,以及面向数据流的自顶向下求精等方法,编制简易的系统规格说明文档,创建原型等,是获取真实需求的有效方法。
3.需求分析的任务是什么?确定对待开发系统的综合要求。
4.通常系统的需求可以分为哪几个层次?一般可以分成5个层次:(1) 功能需求:系统必须做什么?(2) 业务需求:反映客户组织机构对系统高层次的目标要求。
(3) 运行需求:运行环境、软硬件配置等。
(4) 属性需求:包括用户关心的属性,如效率、灵活性、完整性、可靠性等;开发者关心的属性,如可维护性、可复用性、可移植性等。
(5) 未来可能的扩充需求:如HDIS各组的合并,3维虚拟现实的效果等等。
5.进行需求分析的步骤有哪些?1.确定系统的综合要求2.分析系统的数据要求3.导出逻辑模型4.修正系统开发计划6.简述建立原型模型对软件需求分析的作用。
可以快速构建旨在演示目标系统主要功能的可运行程序,帮助用户确定及提供更为精准的需求,以利用户和开发者能够在目标系统应该“做什么”这一问题上尽快达成一致。
7.解释实体-联系图及其用途。
实体-联系图是按照用户的观点对数据建立的模型。
描述从用户角度看到的数据,反映用户的现实环境,并且与在软件系统中的实现方法无关。
8.说明为什么需要进行需求验证及验证的步骤有哪些?进行需求验证是为了确保软件开发的质量,降低开发成本。
通常对需求进行验证的步骤有:验证需求的一致性、验证需求的现实性、验证需求的完整性和有效性。
3.简单说明系统总体设计的步骤。
典型的总体设计包括以下9个步骤:1、确定最佳方案2、选取合理方案3、推荐最佳方案4、功能分解5、软件结构设计6、设计数据库7、制定测试计划8、书写文档9、审查和复审5.为什么要尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合?减少模块之间的关联度,提高模块的独立性。
因为内容耦合会导致一个模块修改另一个模块的内容,使得程序逻辑发生严重问题。
而公共耦合是若干模块通过一个公共数据环境相互作用,公共部分的改动将影响所有调用它的模块,公共部分的数据存取无法控制,并且复杂程度也会随耦合模块的个数增加而增加。
控制耦合是一个模块通过传递开关、标志、名字等控制信息,明显地控制选择另一个模块的功能。
由于接口单一,因此仍然会影响被控模块的内部逻辑。
而数据耦合只是模块间通过数据参数来交换I/O信息,因此不会对其它模块产生任何等影响。
6.为什么模块的规模要适中?过大不易理解;太小则接口开销过大。
7.请说明为什么模块控制的宽度和深度要适度。
深度过大表示分工过细,而宽度过大则表示系统复杂度大,所以模块控制的宽度和深度要适度。
8.简述面向数据流设计方法的基本思想。
将由数据流图描绘的信息在系统中加工和流动的情况映射成软件结构。
9.常用数据流类型有哪些?变换流和事务流。
10.面向数据流的设计方法主要有哪几个步骤?主要有下面7个步骤:1.复查基本系统模型2.复查并精化数据流图3.确定数据流图具有变换特性还是事务特性4.确定输入流和输出流动边界,从而孤立出变换中心5.完成“第一级分解”6.完成“第二级分解”7.使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化1.详细设计的任务是什么?包括模块的算法设计、模块内的数据结构设计、模块接口设计、其它根据软件特点需要完成的设计、模块测试用例设计、设计文档编写、设计评审。
2.在对系统做详细设计时,应遵循哪些原则?①模块的逻辑描述应清晰易读、正确可靠;②设计的处理过程应该简明易懂;③选择恰当的描述工具来描述模块算法。