搜档网
当前位置:搜档网 › 软件工程-原理、方法及应用(史济民第二版)答案

软件工程-原理、方法及应用(史济民第二版)答案

软件工程-原理、方法及应用(史济民第二版)答案
软件工程-原理、方法及应用(史济民第二版)答案

软——应 课习题

件工程原理、方法与用后答案最完整版

绪论

1.什么是软件危机?为什么会产生软件危机?

答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。

(2).软件生产技术进步缓慢

2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?

答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。5.什么是软件工程环境?谈谈你对环境重要性的认识。

答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。

6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。

答:以面向对象程序设计为基础。

7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。

答:按规模分为极小、小、中、大、甚大、极大。

(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。

8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?

答:它是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质(例如程序变换和程序验证等)。形式化的方法加上自动化的开发环境,可能是解决这一难题的出路。

软件开发模型

1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?

答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。

2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?

答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。

3.说明文档和复审对于软件质量的控制的作用。

答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务。软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。愈是早期潜伏下来的故障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。及时复审是保证软件质量,降低开发成本的重要措施。

4.什么是快速原型法?其快速表现在哪里?

答:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型改进,最终建立完全符合用户要求的新系统。它的快速表现在能够缩短开发周期的语言和工具,能在短时间内提供出成品,但不包括成品中的细节,然后让客户进行对比。

5.实现快速原型法的最终系统可以有几种方法?请说明并加以比较。

答:原型系统仅包括未来系统的主要功能,以及系统的重要接口。为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。最终系统的形成可以采用原型废弃不用,另一方法是补充修改模型获得最终系统。方法一不包括系统的细节。后一种方法在实际工作中,由于原型系统使用的语言往往存在效率不高等原因,除了少数简单的事务系统外,大多数原型都废弃不用,仅把建立原型的过程当作帮助定义软件需求的一种手段。

6.比较增量模型和螺旋模型的特点,有什么不同和相似的地方?

答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。增量模型每个增量具有高内聚低耦合,高度的独立性。而螺旋模型它在结合瀑布模型与快速原型的基础上还增加了风险分析。

7.为什么利用转换模型开发软件有一定难度?什么是净室软件工程?

答:从理论上说,一个正确的,满足客户需要的形式化规格说明,经过一系列正确的程序变化后,可以确保得到这样一个形式化规格说明,目前还有较高的难度,同时,软件开发者很少具有实用形式化方法所需的背景知识,况且,转换模型开发软件现在还很费时和昂贵!净室基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。8.哪些开发模型适用于面向对象的软件开发?

答:构件集成模型

9.比较螺旋模型和构件集成模型的异同。

答:构件集成模型利用预先对封装好的软件构件来构造应用软件系统,它融合了螺旋模型的很多特征,支持软件开发的迭代方法。

软件需求分析

1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎么做”?

答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建立分析模型;第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。需求分析的任务就是为了明确要开发的是一个什么样的系统,而不是去怎么去实现这个系统。2.需求分析要经过哪些步骤?

答:需求获取、需求提炼、需求描述、需求验证。

3.有哪两种主要的分析模型,它们有什么联系?

答:面向对象分析模型、结构化分析模型。前者是采用面向对象的思想进行软件需求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。他们的模型分别起到了描述数据模型,功能模型与行为模型的作用。

4.什么是结构化分析?它的“结构化”体现在哪里?

答:是使用DFD、DD、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档。

5.什么是面向对象分析?其主要思想是什么?

答: OOA面向对象的分析是采用面向对象的思想进行软件需求分析建模的过程.主要思想是采用面向对象的思想。

6. 需求说明(或需求规格说明书)由哪些部分组成?各部分的主要内容是什么?

答:引言、信息描述、功能描述、行为描述、质量描述、接口描述、其他描述。

引言:主要叙述在文体定义阶段确定的关于软件的目标与范围,简要介绍系统背景、盖帽、软件项目约束和按考资料等。

信息描述:给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。功能描述:对软件功能要求的说明,包括系统功能划分、每个功能的处理说明、限制和控制描述等。行为描述:包括对系统状态变化及事件和动作的描述,据此可以检查外部事件和软件内部的控制特征。

质量描述:阐明在软件交付使用前需要进行的共更能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。

接口描述:包括系统的用户界面、硬件接口、软件接口和通信接口等的说明。

其他描述:阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容。

7. 为什么DFD要分层?画分层DFD要遵循哪些原则?

答:大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不能设想一次就将它们全部画齐。正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。原则:由顶向下,逐步细化。

8. DFD和CFD有什么区别?

答:

9. 什么是系统的行为模型,如何建立?

答:类对象模型所表示的是面向对象分析模型中的静态部分,而对象行为模型则用于描述系统的动态行为,即系统如何对应外部事件---系统的行为模型。

建立一个对象行为模型一般要经历一些过程:评估所以的用例来理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创建事件轨迹;为对象创建状态转换图。

10.选一个系统(例如工资处理系统、飞机订票系统、图书馆管理系统等),分别用SA方法和OOA方法对它进行分析,并给出分析模型。

答:

软件设计概述

1.传统软件工程把设计过程分成2步:概要设计与详细设计。试述这2个阶段个字主要完成的任务。答:概要设计,包括结构设计和接口设计,并编写设计文档。详细设计,其任务是确定各个软件组件的数据结构和操作,产生描述个软件组件的详细设计文档。

为什么大型软件设计必须分成两步走?

答:概要设计和详细设计是软件设计的两步,概要设计确定模块的划分,模块之间的调用关系,接口等;详细设计细分模块、数据结构等;大型系统中分两步走是必要的,概要设计确定模块划分后,详细设计可把各模块交给不同的人做详细设计,大型系统中这样的分工是比较合理的,能提高效率,做到合理分工。

2.解释下列名词:(1)模块;(2)模块化;(3)模块化设计。

答:模块是一个拥有明确定义的 、输出和特性的程序实体。

模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

模块化设计是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。但又相互关联的模块。

3.什么是模块独立性?用什么度量?

答:模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupling)。

4.具体说明“一个模块,一个功能”的含义,并试讨论这类模块的优点。

答:

5.什么是自顶向下设计?为什么说它尤其适用于大型软件的开发?

答:设计时首先对所设计的系统有一个全面的理解。然后从顶层开始,连续的逐层向下分解,直至系统的所有模块都笑道便于掌握为止。

自底向上设计反映了软件规模较小的设计思想,随着软件规模的增长,这种方法的缺点逐渐暴露出来。而自顶向下的设计需要进行详细的可行性论证,易于修改和扩展,整体测试较易通过。

6.自顶向下逐步细化的方法也适用于编写教材。使用这种方法说明编写一本教材的过程。

答:

7.输入三角形的3条边长(假定这些边确实能组成一个三角形),用它们来鉴别三角形的性质(等腰、等边、任意或者直角),并输出结果。试用逐步细化的方法设计这一程序,并用结构化语言(汉语或英语)写出细化过程中每一步的过程描述。

答:

8.比较概要设计复审和过程设计复审的评审内容,并说明他们采取的复审方式有何异同。

答:概要设计复审的重点放在系统的总体结构、模块划分、内外结构等方面。例如软件结构是否满足需求?结构形态是否合理?层次是否清晰?模块的划分是不是符合优化原则?系统的人机界面、内外部接口、以及出错处理是不是合理等。

过程设计复审的重点放在模块的具体设计上。例如模块设计能否满足其功能与性能要求?选择算法与数据结构是否合理,是否符合编程语言的特点?设计描述简单、清晰等。

概要设计复审常用的复审方式是正式复审。

传统的设计方法

1.简释事务、事务型结构和变换型结构。

答:一次动作、时间或状态变化也可以成为一次事务。

事务型结构由至少一条接受路径、一个事务中心与若干条动作路径组成。

变换型结构由至少一条传入路径、变换中心和传出路径组成。

2.简述从DFD图到SC图的映射规则。

答:(1)复审DFD图,必要时可再次进行修改或细化;

(2)鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型。(3)按照SD方法规定一组规则,把DFD图转换为初始的SC图;

(4)按照优化设计的指导原则改进初始的SC图,获得最终SC图。

5.某事务系统具有下列功能:

(1)读入用户命令,并检查其有效性;

(2)按照命令的编号(1-4号)进行分类处理

(3)1号命令计算产品共识,能根据用户给出的各种产品数量,计算出各工种的需要工时和缺额工时;

(4)2号命令计算材料消耗,根据产品的材料定额和用户给出的生产数量,计算各种材料的需求量(5)3号命令编制材料订货计划

(6)4号命令计算产品成品

试用结构化分析和设计方法画出该系统的DFD图并据此到处系统的SC图。对动作分支中的1号和2号命令要详细描述和设计,3号命令和4号命令允许从略,可仅用示意图表示。

答:

7.简述过程(详细)设计说明书的主要内容,怎样对它进行复审?

答:(1)为每个模块确定采用的算法。选择某种适当的工具表达算法的过程,写出模块的详细过程描述;

(2)确定每一模块使用的数据结构;(3)确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节。

8.简化比较本章讲解的几种过程设计表达工具的优缺点。

答:流程图和N-S图,伪代码和PDL语言。

流程图具有能随意表达任何程序逻辑的有点,随着结构化程序设计方法的普及,流程图在描述程序逻辑时的随意性与灵活性恰恰变成了它的缺点。

N-S图所有的程序结构均用方框来表示,无论并列或者嵌套,程序的结构清晰可见。容易养成良好的程序设计风格。缺点是当程序内嵌的层数增多时,内层的方块越画越小,不仅增加画图的困难,也使图形的清晰性受到影响。

伪代码工作量比画图小,又容易转换为真正的代码,PDL具有很强的描述功能,是一种十分灵活和有用的过程表达工具。

9.任选一种排序(从小到大)算法,分别用流程图、N-S图和PDL语言描述其详细过程。

10.试将下列用PDL伪代码表示的某种模块的过程性描述改用N-S图表示。

……

Execute process a

REPEAT UNTIL condition X8

Execute process b

IF condition X1

THEN BEGIN

Execute process f

IF condition X6

THEN

REPEAT UNTIL condition X7

Execute process i

ENDREP

ELSE BEGIN

Execute process g

Execute process h

END

ENDIF

ELSE CASE OF Xi

WHEN contdition X2 SELECT

DO WHILE contition X5

execute process C

ENDDO

WHEN condition X3 SELECT process d

WHEN condition X4 SELECT process e

ENDCASE

ENDIF

ENDREP

Execute process j

和Recept分别表示零件的出库量和入库量。现要求:

(1)找出输入结构与输出结构之间的对应单元(2)画出用Jackson 图表示的程序结构

(3)列出程序所需要的操作,并加到第(2)步画出的程序结构图上(4)用伪代码写出收发管理程序的过程性表示

13.某工资管理程序的输入/输出数据中包括:

输入数据:职工姓名,日工资率,工作天数,加班天数,病事假天数,补贴变更,扣款变更等;输出数据:职工姓名,基本工资,各项补贴,各项扣款,事发工资等;试用Jackson 方法设计这一程序。

软件测试

1.软件测试的基本任务是什么?测试与纠错有什么不同?

测试的目的是发现程序错误;测试的任务是通过在计算机上执行程序,暴露程序中潜在的错误。纠错的目的是定位和纠正错误;纠错的任务是软件故障,保证程序的可靠运行。

通常把一次程序执行需要的测试数据成为一个测试用例,每个测试用例产生一个相应的测试结果,如果它与期望结果不符,便说明程序中存在错误,需要用纠错来改正。

2.怎样理解下面的话所蕴含的意义:“程序测试只能证明错误的存在,但不能证明错误不存在”、“测试是为了证明程序有错,而不是证明程序无错”

揭示了测试固有的一个重要性质——不彻底性。彻底测试就是让被测程序在一切可能的输入情况下全部执行一遍,又称穷举测试。在实际情况中是根本无法实现的。这就注定了一切实际测试都是不彻底的,当然也就不能保证测试后的程序不存在遗留的错误。◆测试的分类

◆测试方法测试用例和测试结果

测试用例={测试数据+期望结果}

测试结果={测试数据+期望结果+实际结果}

黑盒测试

1等价测试

把输入数据的可能值划分为若干个等价类,使每类中的任何一个测试用例,都能代表同一等价类中的其它测试用例。

采用等价测试注意以下两点:

划分等价类不仅要考虑代表“有效”输入值的有效等价类,还要考虑代表“无效”输入值得无效等价类;每一无效等价类至少要用一个测试用例,不然可能漏掉某一类错误,但允许若干个有效等价类合用一个测试用例,以便进一步减少测试的次数。

【例】某工厂公开招工,规定报名者年龄在16周岁至35周岁(在1967年2月到1986年3月)。如果出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。试用等价分类法设计这一程序功能的测试用例。

第一步:划分等价类

2边界测试

程序员在处理边界情况时,很容易因忽略或考虑不周发生编码错误。例如,数组容量、循环次数以及输入数据与输出数据在边界值附近程序出错概率往往较大。

采用边界值分析法就是要这样来选择测试用例,使得被测试程序能在边界值及其附近运行,从而更有效地暴露程序中潜在的错误。

例如程序可能设有语句

If(196702<=value(birthdate)<=198603)

then read(birthdate)

else write “invalid age”

将上式<=写成<,以上所有测试都不能发现该错误。

3错误猜测法

猜错就是猜测被测程序放在哪些地方容易出错,然后针对可能的薄弱环节来设计测试用例。一般先用等价分类法和边界值分析法设计测试用例,然后用猜错法补充一些例子作为辅助的手段。

白盒测试

1逻辑覆盖测试:用流程图来设计测计用例。主要考察的重点是图中的判定框(选择或循环)。按照被测试程序所作测试的有效程度,逻辑测试可由弱到强区分5种覆盖标准:

语句覆盖:每条语句至少执行一次。

判定覆盖:每一判定的每个分支至少执行一次。

条件覆盖:每一判定中的每个条件,分别按“真”、“假”至少各执行一次。

判定/条件覆盖:同时满足判定覆盖和条件覆盖的要求。

条件组合覆盖:求出判定中所有条件的各种可能组合值,每一可能的条件子和至少执行一次。

程序图:是一种简化的流程图。

对程序图中每一条可能的程序执行路径至少测试一次。如果程序中含有循环(在程序中表现为环),则每个循环至少执行一次。

路径测试具有如下特征:满足结构测试的最低要求。语句覆盖加判定覆盖是对白盒测试的最低要求,同时满足这两种标准的覆盖为“完全覆盖”。从对路径测试的要求可见,它本身就包含了语句覆盖和判定覆盖(在程序图上分别为点覆盖与边覆盖)。

软件复用

1.什么是软件复用?

答:在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。

2.什么是领域工程?简述其活动内容。

答: 领域工程是指通过领域分析找出最优复用,把它们设计和构造为可复用构件,进而建立大规模的

软件构件仓库的过程。

答:按复用活动所应用的领域范围,复用可划分为横向复用和纵向复用。横向复用是指复用不同应用领域中的软件元素如数据结构、分类算法等。纵向复用是指在一类具有较多公共性的应用领域之间进行软部分复用。纵向复用包括以下几个方面的活动:

(1)实施领域分析:根据应用领域的特征及相似性,可预测软构件的可复用性,发现并描述可复用实体,进而建立相关的模型和需求规约。

(2)开发可复用构件:一旦确认了构件的复用价值,即可进行构件的开发,并对具有复用价值的软构件进行抽象、一般化和参数化,以便它们能够适应新的类似的应用领域。

(3)建立可复用构件库:将软件构件及其文档进行分类归并,形成相关的分类检索机制,成为可供后继项目使用的可复用资源。

3.什么是CBSD?实施软件构件技术要解决哪些问题?

答:基于构件的软件开发(Component-Based Software Development,简称CBSD)是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合构件来构造应用软件系统的开发过程。

要解决的问题:

构件应具有的特征:通用性、可变性、易组装性。

在建造构件时,必须考略应用领域的特征。领域构件设计框架:标准数据、标准接口协议、程序模板。

软件维护

1.为什么说软件维护是不可避免的?

答:满足用户对已开发产品的性能与运行环境不断提高的需要,进而达到延长软件的寿命。

2.纠错和纠错性维护有哪些异同?

答:纠错的目的是定位和纠正错误;纠错的任务是软件故障,保证程序的可靠运行。

纠错性维护是由于软件测试的不彻底性,任何大型软件交付使用后,都会继续发现潜在的错误,对它们进行诊断和改正。目的在于纠正在开发期间未能发现的遗留错误。

5.什么是软件配置?说明搞好维护时期配置的意义与方法。

答:软件配置是一个软件在生存周期内,它的各种形式、各种版本的文档与程序的总称。

对软件配置进行科学的管理,是保证软件质量的重要手段。配置管理贯穿于整个生存周期,在运行和维护时期,其任务尤为繁重。

为了方便对多种产品和多种版本进行跟踪和控制,常常借助于自动的配置管理工具:配置管理数据库工具和版本控制库工具。

8.什么是软件再工程?软件再工程的主要活动有哪些?

答:软件再工程是将新技术和新工具应用于老的软件的一种较“彻底”的预防性维护。

主要活动有6类:

软件再工程与软件维护差异?

答:软件维护是局部的,以完成纠错或适应需求变化为目的;软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用以提高软件的可理解性、可维护性或演化性。

软件工程管理

2.一个4万行规模的应用程序,花50万美元可以在市场上买到。如果自己开发,则没人一月的总花费需4000美元。试问是购买合算呢?还是自己开发合算呢?(注:开发成本用COCOMO模型计算)答:

6.下图是某软件项目的PERT图。

图框中的数字代表活动所需的周数。要求:

(1)找出关键路径和完成项目的最短时间;

(2)标出每项活动的最早起止时间与最迟起止时间。

答:

7.在上题中,若活动G的持续时间分别缩短为7周、6周或5周,试问,完成项目的最短时间有何变化。答:

8.将第2题的内容改用Gantt图表示。

答:

软件质量管理

3.解释下列各队名词,并说明他们的相互关系和差别:

(1)验证与确认

答:

(2)软件质量保证与软件质量认证

答:软件质量保证着眼于每一个软件,保证提供给用户的产品都达到规定的质量水平。

软件质量认证注重软件企业的整体资质,目的在于全面考察企业的质量体系,判断它是否具备设计、开发和生产符合质量要求的软件产品的能力。

4.什么是软件可靠性?怎样对他进行定量表示?

答:在给定时间内,程序按照规定的条件成功地运行的概率。

R(t)=P{在时间[0,t]内按规定条件运行成功}

计算方法1:R(t)=e-λt,其中,t为程序运行时间,λ为故障率,即单位时间内程序运行失败的次数。

计算方法2:平均故障时间MTTF=1/λ,其中, λ为故障率,即单位时间内程序运行失败的次数。

5.可靠性模型有几大类?他们的主要区别是什么?

答:可靠性模型分为宏观模型和微观模型2大类。

后者是建立在对程序语句和控制结构详细分析的基础之上的,在开发时期很难建立;前者则忽略程序方面的细节,主要从程序中残留错误的角度来建立模型,并且用统计方法确定模型中的常数。

8.什么是CMM软件过程能力成熟度模型?他有哪些应用?

答:“能力成熟度模型”是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。是用来确定一个软件过程的成熟程度以及指明如何提高过程成熟度的参考模型。

CMM的主要应用在能力评估和过程改善2个方面。

软件破解入门教程

先教大家一些基础知识,学习破解其实是要和程序打交道的,汇编是破解程序的必备知识,但有可能部分朋友都没有学习过汇编语言,所以我就在这里叫大家一些简单实用的破解语句吧! ---------------------------------------------------------------------------------------------------------------- 语句:cmp a,b //cmp是比较的意思!在这里假如a=1,b=2 那么就是a与b比较大小. mov a,b //mov是赋值语句,把b的值赋给a. je/jz //就是相等就到指定位置(也叫跳转). jne/jnz //不相等就到指定位置. jmp //无条件跳转. jl/jb //若小于就跳. ja/jg //若大于就跳. jge //若大于等于就跳. 这里以一款LRC傻瓜编辑器为例,讲解一下软件的初步破解过程。大家只要认真看我的操作一定会!假如还是不明白的话提出难点帮你解决,还不行的话直接找我!有时间给你补节课!呵呵! 目标:LRC傻瓜编辑器杀杀杀~~~~~~~~~ 简介:本软件可以让你听完一首MP3歌曲,便可编辑完成一首LRC歌词。并且本软件自身还带有MP3音乐播放和LRC歌词播放功能,没注册的软件只能使用15天。 工具/原料 我们破解或给软件脱壳最常用的软件就是OD全名叫Ollydbg,界面如图: 它是一个功能很强大的工具,左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值. 右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示. cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态. 左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息. 右下角的是当前堆栈情况,还有注释啊. 步骤/方法 1. 我们要想破解一个软件就是修改它的代码,我们要想在这代码的海洋里找到我们破解关键的代码确实很棘 手,所以我们必须找到一定的线索,一便我们顺藤摸瓜的找到我们想要的东东,现在的关键问题就是什么

第2章 软件工程 答案

第2章软件工程 一、选择题 1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致 了___A___ A .软件危机 B .软件工程 C .程序设计革命 D .结构化程序设计 2.“软件工程的概念是为解决软件危机而提出的”这句话的意思是___C______。 A 强调软件工程成功解决了软件危机的问题 B 说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理 C 说明软件工程这门学科的形成是软件发展的需要 D 说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护 3.瀑布模型的存在问题是_____B______。 A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 4.下列关于瀑布模型不正确的是_____B______。 A 瀑布模型上一阶段的变换结果是下一阶段的输入 B 瀑布模型每个阶段都不需要反馈 C 瀑布模型提供了软件开发的基本框架 D 瀑布模型存在局限性 5.快速原型是利用原型辅助软件开发的一种新思想,它是在研究___A___的方法和技术中产生的。 A 需求阶段 B 设计阶段 C 测试阶段 D 软件开发的各个阶段 6.原型化方法是用户和设计者之间执行的一种交互构成,适用于__A____系统。A.需求不确定性高的B.需求确定的C.管理信息D.实时 7. 信息隐蔽概念与_____A_______这一概念直接的相关。

A 模块的独立性 B 模块类型的划分 C 软件结构定义 D 软件生命周期 8. 为高质量地开发软件项目,在软件结构设计时,必须遵循____A_____原则。 A 信息隐蔽 B 质量控制 C 程序优化 D 数据共享 9._____A_________的目标是确定软件开发工程的总目标,确定工程的可行性。 A 软件定义 B 软件开发 C 软件测试 D 软件维护 10.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出___B____ 的回答。 A.确定 B.行或不行 C.正确 D.无二义 11.经济可行性研究的范围包括___C____。 A.资源有效性 B.管理制度 C.效益分析 D.开发风险 12.需求分析中开发人员要从用户那里了解____A____。 A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 13. 需求分析阶段的任务是确定____D_____。 A 软件开发方法 B 软件开发工具 C 软件开发费 D 软件系统的功能 14. 需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出____B_____的过程。 A 模块说明书 B 软件规格说明 C 项目开发计划 D 合同文档 15. 需求规格说明书的作用不包括____C_______ A 软件验收的依据 B 用户与开发人员对软件要做什么的共同理解 C 软件可行性研究的依据 D 软件设计的依据

软件工程(第2版)-在线作业_A

软件工程(第2版)-在线作业_A用户名:W130244122121最终成绩:85.0一单项选择题 1. 个体手工劳动生产方式的时代是()。 程序设计 软件生产生动化 程序系统 软件工程 本题分值: 5.0 用户得分: 5.0 教师评语: 用户解答:程序设计 知识点: 1.1 软件工程的产生 2. 成本-效益分析的目的是从()角度评价一个新软件项目是否可行。 成本 经济 技术 效益 本题分值: 5.0 用户得分: 5.0 教师评语: 用户解答:经济

知识点: 2.1 可行性研究 3. 项目开发计划是一个()文档。 管理性 可行性 技术性 分析性 本题分值: 5.0 用户得分: 5.0 教师评语: 用户解答:管理性 知识点: 2.2 系统流程图 4. 需求分析是()。 由用户自己单独完成的 软件生存周期的开始 由系统分析员单独完成的 软件开发工作的基础 本题分值: 5.0 用户得分: 5.0 教师评语: 用户解答:软件开发工作的基础

知识点: 3.1 需求分析的任务 5. 与早期的软件开发方式相比较,结构化生命周期法其最要的指导原则应该是()。 分阶段开发 逐步求精 用户需求至上 自顶向下设计 本题分值: 5.0 用户得分: 5.0 教师评语: 用户解答:自顶向下设计 知识点: 3.2 结构化分析方法 6. 数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示()。 软件功能 软件加工 软件模型 软件结构 本题分值: 5.0 用户得分:0.0 教师评语: 用户解答:软件模型

知识点: 3.3 数据流图(DFD) 7. IDEF0图不反映出系统()。 系统功能如何实现 系统实现的约束条件 系统由谁来做 系统做什么 本题分值: 5.0 用户得分: 5.0 教师评语: 用户解答:系统功能如何实现 知识点: 3.6 IDEF方法 8. 下列()是耦合度最高、且最差的耦合。 公共耦合 控制耦合 内容耦合 数据耦合 本题分值: 5.0 用户得分: 5.0 教师评语: 用户解答:内容耦合

软件工程可行性研究报告

竭诚为您提供优质文档/双击可除软件工程可行性研究报告 篇一:软件工程可行性分析报告实例(图书管理系统) 可行性分析报告实例 本实例以一个图书管理系统为例,介绍软件工程技术方法以及软件工程各阶段主要文档。 本文介绍可行性分析报告。可行性分析报告包括: ? ? ? 封面(略)目录(略)可行性分析报告内容 -1- -2- -3- -4- 项目开发计划实例 项目开发计划内容如下: ?

? ? -5- 封面(略)目录(略)项目开发计划报告内容 篇二:软件工程项目可行性分析报告 可行性与项目计划研究报告 1.引言 1.1项目的背景,研究的目的和意义 背景:经过一段时间的调查我们发现周边网吧的管理系统不尽相同,而其实现的功能都基本相同。大多数网吧的管理系统仅仅实现了计时收费的目的。所以我们觉得现在大多数网吧的管理系统功能还不够完善,做得还不够人性化。因此我们想尝试改进现有的网吧管理系统,使其功能更人性化,提供的服务更齐全,以改变现状 我们也从网上找了几个别人做的系统简单地看了一下 项目名称:****** 项目发起者:******** 面向用户:****** 1.2项目的目前研究现状 此项目现阶段还处于可行性分析阶段,具体实施将等到所学知识的进一步健全以及对项目有进一步的认识 1.3参考资料(作者、标题、出版单位、发表日期、编

号、页号)《软件工程》高等教育出版社史济民等 《数据库系统教程》高等教育出版社施伯乐等 《Java面向对象编程》电子工业出版社孙卫琴 《Java编程思想》机械工业出版社bruceexkel 等 2.系统的技术可行性 2.1系统的简要描述 功能:网吧管理帮助网吧管理员管理网吧管理员可以通过该系统对上网人员(会员、非会员)记时收费、充值,对出售的食品饮料等计费,对网吧内的各台机器进行控制,以及提供一些特殊的服务(如在节假日对上网费打折等等)而被控制端有登陆、登离、呼叫网管、修改密码、买东西、查看个人信息(余额、姓名等等) 特点:由于上网顾客需要食品和饮料,而大多数网吧内也有这些商品出售,但 往往是买一次东西结算一次,搞得网管十分头疼,而且效率也不高。上网顾客往往对这样的购物方式也不满意,他们希望可以不用离开座位就可以获得所需的商品。为了解决这个问题,我们将在网吧管理系统中添加了购物系统。在购物系统中,上网人员可以看到各种商品及其价格,点击购买后网管可以在服务器端看到顾客的请求,并将所需商品送给顾客,而计费系统会自动将商品的费用添加进计费系统中。

电力系统分析软件ETAP V7破解安装方法

ETAP V7.0 Installation Guidelines ?Freshtime:2010-07-29 13:13:27 ?Tag:ETAP SN ETAP CRACK HOW TO INSTALL ETAP 1. After unzip the file be sure you have the following elements: - Folder peta_7 - File ETAP 7.0.0.iso - This instruction file 2. Mount ETAP 7.0.0.iso and install ETAP 7.0.0. Instead of mounting ETAP 7.0.0.iso, it may possible to extract the files/directories to a temporary folder. 3. After install ETAP, runs the application. It will ask to connect to the licence manager. Click cancel and software will exit. 4. Find the folder 'peta_7'. Open folder and run etap7.exe 5. It will ask to restart. Restart PC. 6. After reboot run Etap again. It will now ask for serial instead of licence manager. 7. Enter the following serial: Qt***L 8cx*** i***** R****i /***** W****+ (the same that appears in file etap6 serial.txt located in folder peta_7. Be sure to include the / and +, because they are part of the serial too. 8. ETAP 7.0.0 it ready to run. Test with the examples located in the Etap 700 folder (C:etap 700). If in case after restart, it goes to licence manager again instead of asking for serial, do the following: 9. Unzip file ETAP_7_Crack.rar 10. Go to your installed Etap folder (C:etap 600) and locate file 'etapsdb.dll'. 11. Cut it and paste it in a safe folder (or make a copy). You will need it back later. 12. Copy the 'etapsdb.dll' file from ETAP_Demo_Crack.rar into the Etap installed folder (C:etap 700). 13. Run Etap and you will get an error. ETAP will close. 14. Now copy back the original 'etapsdb.dll' back to your Etap 600 folder and replace

软件工程课后习题答案第五版

软件工程课后习题答案第五版 《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

PDG转PDF全攻略(超星电子书打印破解)

PDG转PDF全攻略(超星电子书打印破解) 法一:(利用Acrobat的“正确配置的”虚拟打印机) 安装Adobe Acrobat 7 或者以上版本。 在控制面板-传真和打印机中把Adobe PDF打印机这个名字改成其它的名称(可能超星打印把PDF屏蔽了,我的电脑上不需要修改),所以要改个名字迷惑它。 然后在超星软件里面选图书-打印,选择“指定起始页”,设置好页数(可以设置很大)后,在打印机选项里面选已经被你改了名字的PDF打印机,打印后就可以拥有一个完整的PDF文件了,而不是一堆碎碎的PDG文件。 转完格式记得把名字再改回“Adobe PDF”,免得影响以后WORD或者网页转成PDF。 梦零已经试过,很好用。不过,此法及以下二法,均需要建立在Acrobat的软件之上,唉。 法二: 自行安装虚拟PS打印机: 1:PS驱动根本不用下载,直接添加打印机,然后选择一款后面带有PS的打印机,最好选择彩色打印机,比如:HP Color LaserJet 8550-PS,这样就可以打印彩色书籍了,端口只要选择不冲突就行,一路下一步安装结束,就可以使用了 2:打印时选择打印到文件,这时需要输入文件名,自己连路径一起输入,扩展名直接用ps就行,如果没有路径打印出来的文件就在超星的history文件中。 3:然后就可以使用Acrobat Distiller转换成PDF文件,速度比Acrobat虚拟打印机快很多。(机器配置:CPU 2.8G,256MB内存,XP-SP2)

4:页数是不用数的,选中所有的PDG文件,有多少就有多少页。 这种方法不错,比PDF的打印速度快很多。 法三: 好多图书是超星PDG格式的,没有做目录的话,一页页阅读很不方便。解决方案: 基本上每个学校图书馆都购买了超星数字图书馆版权,在校学生可以随便浏览以及下载任何你想要的书籍。通过学会下面的破解,个人认为最大的好处是不需要花不必要的时间购买任何书籍了,下载超星图书,然后破解后选择一页双排的打印就能以接近书价的3折弄到打印版的图书。这对于使用大学教材或者特别贵的书的同学来说简直是个伟大的发现。 离开前有点儿舍不得学校啊,尤其是校园网……先别拍我,话说校园网把P2P 给封了,实在令人咬牙切齿,尤其是我这种磨硬盘爱好者,要说此时的校园网还能令人不舍,就只有因为图书馆服务器上的那些个资源了,什么知网上的论文那,KUKE上的音乐那(https://www.sodocs.net/doc/4710509966.html,/其中有个很不错的乐谱库,您若是喜欢钢琴,可以到此地转悠一下) 尤其不舍的,就是这个超星。在此特别友情提示一下,图书馆网页上的那个链接所指向的镜像十分老旧,真正的好地方在这里: https://www.sodocs.net/doc/4710509966.html,/library.jsp?username=zncjzfdx(选择教育网更快一点)这里的书已经更新到08年出版的了,种类也广那是数量也多,虽说被超星收进来的书未必有您想找的,而且质量那是良莠不齐,但是庞大的规模之下,也是经常能淘到宝。 您若是对超星有些了解,就会知道,超星有点恶心。其一是它的诸多限制,比如下载的图书有阅读时间上的限制,一般是半年,半年之后,下载的一切都会变成废物;再比如,匿名下载的书只能在本机上阅读,它认机器码的,比如我的机器添了块硬盘,以前下载的书,也就全都报废了,还有比如下载的数量限制,打印页数的限制等等;其二就是超星图书的格式很垃圾,一个本书的文件夹里边堆满了与其页数相等数量的*.pdg,零碎不堪而且需要专门的垃圾阅读软件,阅读翻页很是不爽快,堆积多了,您要是全盘杀次毒那是慢得令人抓狂……总之,超星的恶心造成了其电子书无法方便阅读、无法大量收藏、无法互相交流等一系列问题,整个是全方位与读书人作对。 几句过渡: 定思痛之后,众多读书人开始想办法解决这些问题,各种破解软件层出,超星呢,也不断升级其加密方法,双方斗争可谓惨烈,然而魔高一尺,道高一丈,经过前辈们的长期积累,总结出的最好的办法就是将超星图书转化成通用的PDF 格式的图书以实现克服超星图书的缺点,可喜的是,通过转化,现在的超星,已经几乎成为一座自由的PDF格式电子书的图书馆了。

加密狗的概述与破解原理

加密狗的概述与破解原理 加密狗的概述: 加密狗是外形酷似U盘的一种硬件设备,正名加密锁,后来发展成如今的一个软件保护的通俗行业名词,"加密狗"是一种插在计算机并行口上的软硬件结合的加密产品(新型加密狗也有usb口的)。一般都有几十或几百字节的非易失性存储空间可供读写,现在较新的狗内部还包含了单片机。软件开发者可以通过接口函数和软件狗进行数据交换(即对软件狗进行读写),来检查软件狗是否插在接口上;或者直接用软件狗附带的工具加密自己EXE文件(俗称"包壳")。这样,软件开发者可以在软件中设置多处软件锁,利用软件狗做为钥匙来打开这些锁;如果没插软件狗或软件狗不对应,软件将不能正常执行。 加密狗通过在软件执行过程中和加密狗交换数据来实现加密的.加密狗内置 单片机电路(也称CPU),使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加密狗.加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=12345、DogConver t(A)=43565。 加密狗是为软件开发商提供的一种智能型的软件保护工具,它包含一个安装在计算机并行口或USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密狗基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。 加密狗的工作原理: 加密狗通过在软件执行过程中和加密狗交换数据来实现加密的.加密狗内置 单片机电路(也称CPU),使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加密狗.加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=12345、DogConver t(A)=43565。下面,我们举个例子说明单片机算法的使用。比如一段程序中有这样一句:A=Fx(3)。程序要根据常量3来得到变量A的值。于是,我们就可以把原程序这样改写:A=Fx(DogConvert(1)-12342)。那么原程序中就不会出现常量3,而取之以DogConvert(1)-12342。这样,只有软件编写者才知道实际调用的常量是3。而如果没有加密狗,DogConvert函数就不能返回正确结果,结果算式A=F x(DogConvert(1)-12342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式,要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、

电子软件破解方法

Proteus软件是来自英国Labcenter Electronics公司的EDA工具软件,Proteus软件除了其具有和其它EDA工具一样的原理布图,PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器,逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境 先运行“P7.8sp2.exe”安装,然后运行“Proteus Pro 7.8 SP2破解1.0.exe”破解,用管理员身份运行破解文件 先破解,再汉化,这个汉化补丁用7.5的汉化修改而来,覆盖前注意备份原文件,如果汉化报错,就将“汉化报错.exe”复制到安装文件夹再运行。 7.5安装方法 1.执行setup75 Sp3.exe安装proteus 7.5 Sp3; 2.添加licence时指定到Grassington North Yorkshire.lxk; 3.安装完成后执行LXK Proteus 7.5 SP3 v2.1.2,将目录指定到X:\Progr> Altium Designer 2013 v.13 新特性包括: PCB对象与层透明度(Layer transparency)设置——新的PCB对象与层透明度设置中增添了视图配置(View Configurations)对话 丝印层至阻焊层设计规则——为裸露的铜焊料和阻焊层开口添加新检测模式的新规划 用于PCB多边形填充的外形顶点编辑器——新的外形顶点编辑器,可用于多边形填充、多边形抠除和覆铜区域对象 多边形覆盖区——添加了可定义多边形覆盖区的指令 原理图引脚名称/指示器位置,字体与颜色的个性设置——接口类型、指示器位置、字体、颜色等均可进行个性化设置 端口高度与字体控制——端口高度、宽度以及文本字体都能根据个人需求进行控制 原理图超链接——在原理图文件中的文本对象现已支持超链接 智能PDF文件包含组件参数——在SmartPDF生成的PDF文件中点击组件即显示其参数 Microchip Touch Controls支持——增添了对Microchip mTouch电容触摸控制的支持功能 升级的DXP平台——升级的DXP平台提供完善且开放的开发环境 Altium Designer 2013 v.13 的破解方法: 1,运行安装好的Altium Designer,在home页点击Add standalone license file 2,选择证书路径,在安装包解压文件中的Licenses文件夹中 3,选择前十个中任意一个打开,破解有效期到2025年。 Altium Designer 2013 v.13 的汉化: Altium designer自带了汉语汉化,不过还是建议使用英文的。点左上角DXP按钮,以此选择 Preferences---System---General 在最下面选择Use localized resources,点击OK后,重新启动软件就变成汉语的了

软件工程(第2版)_在线作业_5

软件工程(第2版)_在线作业_5 交卷时间:2016-03-26 13:49:45 一、单选题 1.(5分) 在面向对象方法中,信息隐蔽是通过对象的()来实现的。 ? A. 继承性 ? B. 共享性 ? C. 分类性 ? D. 封装性 纠错 得分:5 知识点:10.1 面向对象概述 展开解析 答案D 解析 2.(5分) 下列是关于系统开发方法JSP的说法,不正确的是()。 ? A. JSP方法适用于输入数据和输出数据之间有对应关系的问题求解? B. JSP方法不明确的划分软件概要设计和详细设计的两个阶段 ? C. JSP方法主要用于规模不大的数据处理系统 ? D. JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适用于详细设计阶段

得分:5 知识点:5.2 Jackson方法 展开解析 答案D 解析 3.(5分) 下列是关于功能性注释的说法,()是不正确的。 ? A. 修改程序也应修改注释 ? B. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态 ? C. 可使用空行或缩进,以便很容易区分注释和程序 ? D. 注释用来说明程序段,需要在每一行都要加注释 纠错 得分:5 知识点:6.2 程序设计风格 展开解析 答案D 解析 4.(5分) 对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。 ? A. 封装 ? B. 结合 ? C. 抽象 ? D. 隐藏

得分:5 知识点:10.1 面向对象概述 展开解析 答案A 解析 5.(5分) 原型化方法是用户和软件开发人员之间进行的一种交互过程,它适用于()系统的开发。 ? A. 动态改变的 ? B. 需求不确定性的 ? C. 管理信息 ? D. 需求确定的 纠错 得分:5 知识点:9.3 快速原型模型 展开解析 答案B 解析 6.(5分) 以下叙述中,()是正确的。 ? A. 对象模型指出发生了什么 ? B. 动态模型确定什么时候发生 ? C. 功能模型描述了系统的所有计算,它考虑所计算的次序 ? D. 功能模型确定发生的客体

软件工程-原理、方法及应用(史济民第二版)答案

软——应 课习题 件工程原理、方法与用后答案最完整版 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 (1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。 (2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。 软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。5.什么是软件工程环境?谈谈你对环境重要性的认识。 答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。 (1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。 8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?

妙解破解的原理

妙解破解的原理 不可不说一下学习破解的三个阶段: 初级,修改程序,用ultraedit等工具修改exe文件,称暴力破解,简称爆破. 中级,追出软件的注册码. 高级,写出注册机. 先说这爆破.所谓爆破,就是指通过修改可执行文件的源文件,来达到相应的目的.你不明白?呵呵,举个例子好了,比如说某共享软件,它比较用户输入的注册码,如果用户输入的,跟它通过用户名(或其它)算出来的注册码相等的话(也就是说用户输入的注册码正确了),那么它就会跳到注册成功的地方去,否则就跳到出错的地方去. 明白过来了吧,我们只要找到这个跳转指令,把它修改为我们需要的“造型”,这样,我们是不是就可以为所欲为了?(某软件双手放在胸口,你要干嘛?) 常见的修改方法有两种,我给你举例说明: no.1 在某软件中,这样来进行注册: 00451239CALL00405E02(关键CALL,用来判断用户输入的注册码是否正确) 0045123DJZ004572E6(!!!<——此为关键跳转,如果用户输入的注册码正确,就跳向成功处,即004572E6处) 0045XXXXYYYYYYYYYY XXXXXXXXYYYYYYYYYY XXXXXXXXYYYYYYYYYY XXXXXXXX执行到此处,就提示用户注册失败 ……提示用户注册码不正确等相关信息 ……

004572E6……<——(注册成功处!!!) ……提示用户注册成功等相关信息 呵呵,看明白了吗?没有的话,我来给你讲一下.在软件执行到00451239处的时候,CALL置0045E02处来进行注册码判断.接着回来后就来一个跳转语句,即如果用户输入的注册码正确就跳到004572E6处,跳到此处,就算是注册成功了.如果用户输入的注册码不正确的话,那么就不会在0045123D处进行跳转,而一直执行下去.在下面等它的,是注册失败部分. 想明白了吗?嘿嘿……没错,我们只要把那个关键跳转JZ给改为JNZ(如果用户输入的注册码错误,就注册成功,输入正确则注册失败).当然你也可以将JNZ修改为Jmp,这样的话,你输入的注册码无论正确与否.都可以注册成功. no.2 我们再来讲一下另外的一种情况: 00451239CALL00405E02(关键CALL,用来判断用户输入的注册码是否正确) 0045123DJNZ004572E6(!!!<——此为关键跳转,如果用户输入的注册码不正确,就跳向失败处,即004572E6处) 0045XXXXYYYYYYYYYY XXXXXXXXYYYYYYYYYY XXXXXXXXYYYYYYYYYY XXXXXXXX执行到此处,就提示用户注册成功 ……提示用户注册成功等相关信息 …… 004572E6……<——(注册失败处!!!) ……提示用户注册码不正确等相关信息 这次我相信,并且深信不疑.你一定明白了.我还是不明白……倒…… 你一定看出跟第一种情况不同的地方了吧.没错!它与第一种不同的,就是第一种情况是如果

软件工程(第二版)课后习题

第一d ìy ī章zhāng 1.什么s h ?n m e 是s h ì软件ru ǎnji àn 危机w ēi j ī?为什么w ai s h ?n m e 会h u ì产生ch ǎnsh ēng 软件ru ǎnji àn 危机w ēi j ī? 答d á:软件ru ǎnji àn 危机w ēi j ī是s h ì指z h ǐ在z ài 计算机j ìs u àn j ī软件ru ǎnji àn 的d e 开发k āi f ā和h ?维护w ?i h ù过程gu òch ?ng 中zh ōng 遇到y ùd ào 的一系列严重问题。 (1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方 式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时 间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济 地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产 方法。 3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方 法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。 (2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良 好的效益。 软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。 所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在 计 算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发 现错误,就 重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧 所有通过了 编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运 行的可执行 软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统, 都属于软 件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效, 甚至不能 运行。

有线电视数字机顶盒破解原理方法和软件工具

有线电视数字机顶盒破解原理方法和软件工具把杀毒软件删除了下载的 数源机顶盒程序烧写步骤 此步骤为机顶盒串口升级,利用一条串口线把PC机与机顶盒相连。 第一步:打开“迷你终端MINICOMM”; 第二步:在“通讯”中,点“建立连接”,串口设置键附录1串口设置; 第三步:一直按住“Enter回车键”; 第四步:打开机顶盒电源; 第五步:等迷你终端出现:testtool>; 第六步:输入“update boot”,然后按回车键,出现:等待从串口发送boot文件.........;第七步:在“通讯”菜单中,点“发送文件”,弹出目录框,找到要烧写的程序(boot_rs232.bin),打开即可。然后等待(大概持续8分钟)。直到出现testtool>。说明boot烧写完毕;第八步:重启机顶盒(或者敲命令update reset)。 第九步:使用升级工具“STBUpdate-Search.exe”升级程序 (STM5105_program_update.bin)、字库(SHUYUAN_font_update.bin)、loader后即可正常使用; 把杀毒软件删除了下载的 数源机顶盒程序烧写步骤 此步骤为机顶盒串口升级,利用一条串口线把PC机与机顶盒相连。 第一步:打开“迷你终端MINICOMM”; 第二步:在“通讯”中,点“建立连接”,串口设置键附录1串口设置; 第三步:一直按住“Enter回车键”;

第四步:打开机顶盒电源; 第五步:等迷你终端出现:testtool>; 第六步:输入“update boot”,然后按回车键,出现:等待从串口发送boot文件.........;第七步:在“通讯”菜单中,点“发送文件”,弹出目录框,找到要烧写的程序(boot_rs232.bin),打开即可。然后等待(大概持续8分钟)。直到出现testtool>。说明boot烧写完毕;第八步:重启机顶盒(或者敲命令update reset)。 第九步:使用升级工具“STBUpdate-Search.exe”升级程序 (STM5105_program_update.bin)、字库(SHUYUAN_font_update.bin)、loader后即可正常使用; 机顶盒加密系统称之为条件接受系统(ContionalAccess),广电说的CA系统就是它了。付费频道实际上就是CA加密的频道,必须经过广电授权才能够解密。MPEG2码流经过通用加扰器加扰后,需要密钥进行还原,这个密钥就是CW(Control Word)。不同家CA的解密过程就是对CW复原,并把它传送到机顶盒解扰器。 图1广电机顶盒解码原理 在图1中,机顶盒通过高频头收下来是加扰并复用过的TS,首先机顶盒对它进行解复用(Demux),并提取出其中的加密过的ECM、EMM传送给IC卡,IC卡计算出CW控制字后传送给解扰器,解扰器根据控制字还原加扰码流,输出清流,也就是没有加密的码流传递给解码器,供解码器进行MPEG2正常解码。CW一般为8个字节,每隔5-10秒钟更换一次。从上面的CA解密原理中可以看出其中可能存在的安全漏洞。在IC卡的条件接收系统传递CW的这个过程中,是可能被攻破的。 一般来说,IC向解扰器传递CW有三种可能: 第一种情况:直接传递明文。 这种情况最简单,只要把CW捕捉下来传递给其他机顶盒即可。

软件工程(第2版)_在线作业_1

软件工程(第2版)_在线作业_1 交卷时间2018-08-11 16:25:28 一、单选题(每题5分,共14道小题,总分值70分) 1. 面向对象的程序设计语言必须具备()特征。 (5分) A可视性,可移植性,封装性 B继承性,可重用性,封装性 C继承性,多态性,封装性 D可视性,继承性,封装性 纠错 正确答案您的答案是C回答正确展开 2. 个体手工劳动生产方式的时代是()。 (5分) A程序系统 B软件工程 C软件生产生动化 D程序设计 正确答案您的答案是D回答正确展开 3. 系统流程图是描绘()的传统工具。 (5分) A数据结构

C物理系统 D逻辑系统 正确答案您的答案是C回答正确展开 4. Putnam 成本估算经验模型是()。 (5分) A动态多变量模型 B模块性成本模型 C结构性成本模型 D动态单变量模型 正确答案您的答案是A回答正确展开 5. 软件详细设计主要采用的方法是()。 (5分) A PDL语言 B模块设计 C结构化程序设计 D数据流图 正确答案您的答案是C回答正确展开 6. 成本的差别估算方法是将开发项目与一个或多个()的类似项目进行比较,找出与其的不同之处,并由此估算不同之处对成本的影响,进而导出开发项目的总成本。 (5分) A正在进行 B正在论证

D已经完成 正确答案您的答案是D回答正确展开 7. 结构化分析(SA)是软件开发需求分析阶段所使用的方法,下列()不是SA所使用的工具。 (5分) A结构化语言 B DFD图 C PAD图 D判定表 正确答案您的答案是C回答正确展开 8. 成本-效益分析的目的是从()角度评价一个新软件项目是否可行。 (5分) A效益 B技术 C经济 D成本 正确答案您的答案是C回答正确展开 9. 面向对象的主要特征除对象唯一性、封装和继承外,还有()。 (5分) A兼容性 B可移植性 C多态性

软件工程实验教案

《软件工程》实验教案 学院系部:计算机科学与技术系 专业: 课程名称:软件工程 主讲教师:周学清 使用教材:张海藩.《软件工程导论》.[M].清华大学出版社课时10课时(四个实验) 2015年下学期

一、课程的地位、作用与目的 本课程为计算机科学与技术专业的专业必修课程。软件开发是建立计算机应用系统的重要环节,因此,“软件工程”是本专业的一门工程性课程,也是一门十分重要的专业课程。软件工程研究的是在软件开发中应遵循的原理、可使用的方法和工具,用以指导软件开发过程,规范软件开发步骤,提高软件开发的质量。 二、课程内容与基本要求 软件工程主要讲述构建软件系统的方法、技术、流程、工具及规范。通过本课程的学习,掌握软件工程的基本概念、基本原理、实用的开发方法和技术;了解软件工程各领域的发展动向;用工程化的方法开发软件项目,掌握在开发过程中应遵循的流程、准则、标准和规范;掌握软件的可行性研究、软件的需求分析、软件的总体设计、软件的详细设计过程、软件的实现、软件的维护;特别是需求分析中数据流图的画法、由数据流图导出软件的基本结构的方法以及模块划分原则、模块的设计。掌握统一建模语言UML的应用;掌握面向对象分析、面向对象设计、面向对象实现的软件工程方法,其重点在于面向对象的模型建立;掌握软件项目管理的方法,能够通过计划、组织和控制等活动,合理配置和使用资源来达到软件开发的总体目标。引导学生重视软件测试工作,掌握软件测试技术。 三、集中实践场所及相关设施要求 1、实践场所选择 计算机实验室 2、设施要求 计算机、配套软件开发环境、相关作图软件(ROSE或starUML) 四、课程考核形式与成绩评定 理论课程占本课程80%,其实验课、作业、考勤成绩应占本课程总成绩的20%左右。五、教学参考书 1.张海藩.软件工程导论.北京:清华大学出版社,2003年,第四版 2.邓良松,刘海岩,陆丽娜.软件工程.西安:电子科技大学出版社,2004年9月 3.刘超,张莉.可视化面向对象建模技术.北京:北京航空航天大学出版社,1999年4.UML National Guide https://www.sodocs.net/doc/4710509966.html,/uml. 5.周佰生,冯学民,樊东平译.统一软件开发过程.北京:机械工业出版社,2002年六、实验内容:

相关主题