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

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

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

绪论

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

END

execute process a

execute process b

T

X1

F execute process f

T

X3

F T

X4

F T

X6

F

execute

process d

execute

process e execute process i execute process g

REPEAT UNTIL X7 execute process h

execute process j

REPEAT UNTIL condition X8

12.图5-63显示了某仓库零件收发管理程序的数据结构,用Jackson图表示。图中Part表示零件,Issue 和Recept分别表示零件的出库量和入库量。现要求:

(1)找出输入结构与输出结构之间的对应单元

(2)画出用Jackson图表示的程序结构

(3)列出程序所需要的操作,并加到第(2)步画出的程序结构图上

(4)用伪代码写出收发管理程序的过程性表示

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

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

软件测试

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

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

通常把一次程序执行需要的测试数据成为一个测试用例,每个测试用例产生一个相应的测试结果,如果它与期望结果不符,便说明程序中存在错误,需要用纠错来改正。 2.怎样理解下面的话所蕴含的意义:“程序测试只能证明错误的存在,但不能证明错误不存在”、“测试是为了证明程序有错,而不是证明程序无错”

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

Input file part group* recept

Movement record* issue Net movement line*

body

heading

Output report

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

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

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

黑盒测试

①等价测试

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

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

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

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

第一步:划分等价类

输入数据有效等价类无效等价类

出生年月(1)6位数字字符(2)有非数字字符

(3)少于6个数字字符

(4)多于6个数字字符

对应数值(5)在-之间(6)<

(7)>

月份对应数值(8)在1-12之间(9)等于“0”

(10)>12

第二步:设计有效等价类需要的测试用例

测试数据期望结果测试范围

输入有效(1)、(5)、(8)

第三步:为每一无效等价类设计一个测试用例

测试数据期望结果测试范围

MAY,70 输入无效(2)

19705 输入无效(3)

输入无效(4)

年龄不合格(6)

年龄不合格(7)

输入无效(9)

输入无效(10)

②边界测试

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

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

例如程序可能设有语句

If(<=value(birthdate)<=)

then read(birthdate)

else write “invalid age”

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

【例】上题年月日的测试用例(边界分析法)

输入等价类测试用例说明测试数据期望结果选取理由

出生年月1个数字字符

5个数字字符

7个数字字符

有1个非数字字符

全是非数字字符5

19705A

AUGUST

输入无效仅有一个合法字符

比有效长度恰少一个字符

比有效字符恰多一个字符

非法字符最少

非法字符最多

6个数字字符输入有效类型与长度均有效

对应数值35周岁

16周岁合格年龄最大符合年龄

最小符合年龄

>35周岁<16周岁不合格年龄恰大于合格年龄

恰小于合格年龄

月份对应数值月份为1

月份为12

输入有效最小月份

最大月份

月份<1

月份>12

输入无效恰小于最小月份

恰大于最大月份

③错误猜测法

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

白盒测试

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

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

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

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

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

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

覆盖标准程序结构举例测试用例应满足的条件

语句覆盖A∧B=.T.

判定覆盖A∧B=.T.,A∧B=.F.

条件覆盖A=.T.,A=.F.

B=.T.,B=.F.

判定/条件覆盖A∧B=.T.,A∧B=.F.

A=.T.,A=.F.

B=.T.,B=.F.

条件组合覆盖A=.T. ∧ B=.T.

A=.T. ∧ B=.F.

A=.F. ∧ B=.T.

A=.F. ∧ B=.F.

②路径测试法

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

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

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

软件复用

1.什么是软件复用?

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

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

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

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

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

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

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

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

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

要解决的问题:

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

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

软件维护

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

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

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

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

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

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

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

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

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

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

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

主要活动有6类:

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

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

软件工程管理

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

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

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

起点

H 2

I 3

J 2

E 3

F 5

G 8 D 3

A 3

B 6

C 5

终点

(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. 我们要想破解一个软件就是修改它的代码,我们要想在这代码的海洋里找到我们破解关键的代码确实很棘 手,所以我们必须找到一定的线索,一便我们顺藤摸瓜的找到我们想要的东东,现在的关键问题就是什么

软件工程(第五版)--习题及答案--第三章

一、判断题 1、(√)软件需求分析阶段要确定软件系统要“做什么”。 2、(×)软件需求规格说明书可作为可行性研究的依据。 3、(√)需求分析员可以参加最后的需求评审工作。 4、(×)画数据流图时可以加少量的控制流,使加工之间有时序的关系。 5、(√)结构化分析模型的核心是数据词典。 6、(×)在数据流图中,带有箭头的线段表示的是控制流。 7、(×)在软件生产过程中,需求信息的来源是项目经理。 8、(√)需求分析阶段的任务是确定软件的功能。 二、选择题 1、需求分析最终结果是产生(B)。 A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告 2、数据流图(DFD)是(A)方法中用于表示系统的逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC 3、需求规格说明书的作用不包括(C)。 A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件可行性研究的依据 D、软件设计的依据 4、数据词典是用来定义(D)中的各个成分的具体含义。 A、流程图 B、功能结构图

C、结构图 D、数据流图 5、结构化分析方法(SA)是一种面向(B)的分析方法。 A、数据结构 B、数据流 C、结构化数据系统 D、对象 6、在数据词典中,以下哪一项表示允许重复0至任意次(A)。 A、{ } B、0{ } C、0{ }n D、{ }n 7、以下数据流图符号中哪一个表示加工(B)。 A、B、C、D、 8、软件开发的需求活动,其主要任务是(D)。 A、给出软件解决方案 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 9、结构化分析的核心是(A)。 A、自顶向下的分解 B、用DFD建模 C、用DD描述数据需求 D、自底向上的抽象 10、需求分析的任务是(A)。 A、正确说明让软件“做什么” B、用DFD建模 C、用DD建立数学模型 D、给出需求规格说明书 11、对于分层的DFD,父图与子图的平衡是指(B)。 A、父图与子图的输入输出数据流必须相同 B、子图必须继承父图的输入与输出流 C、父图与子图相应的输入输出数据流名字保持一致

实用软件工程第3版课后习题答案_IT168文库

《实用软件工程》第3版 习题参考答案 习题 1 1.1 开发文档都有哪些?用图示表示它们之间的关系。 开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如下图所示。 1.2 简述软件工程研究的内容。 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 其中软件开发方法的内容又涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose。 软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。 1.3 详细解释软件的定义、程序的定义及软件工程的定义。 软件的定义:软件=程序+数据+文档。这里的程序是指程序系统。这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。 现在有一种新提法正在引起关注,这种提法是:软件=知识+程序+数据+文档。 程序是计算机为完成特定任务而执行的指令的有序集合。从应用的角度可理解为: 面向过程的程序=算法+数据结构 面向对象的程序=对象+信息 面向构件的程序=构件+构架 软件工程是研究软件开发和软件管理的一门工程学科。 1.4 软件工程的7+1条基本原理有什么现实意义? 软件工程的7条基本原理是在面向过程的程序设计时代(结构化时代)提出来的,但在

软件工程可行性研究报告

竭诚为您提供优质文档/双击可除软件工程可行性研究报告 篇一:软件工程可行性分析报告实例(图书管理系统) 可行性分析报告实例 本实例以一个图书管理系统为例,介绍软件工程技术方法以及软件工程各阶段主要文档。 本文介绍可行性分析报告。可行性分析报告包括: ? ? ? 封面(略)目录(略)可行性分析报告内容 -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

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

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

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.360docs.net/doc/7715388187.html,/其中有个很不错的乐谱库,您若是喜欢钢琴,可以到此地转悠一下) 尤其不舍的,就是这个超星。在此特别友情提示一下,图书馆网页上的那个链接所指向的镜像十分老旧,真正的好地方在这里: https://www.360docs.net/doc/7715388187.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后,重新启动软件就变成汉语的了

(完整word版)软件工程第四版第1章参

一.基本概念 1.软件就是程序吗?如何定义软件? 答:人们经过长期实践已经逐步认识到,软件≠程序,程序只是软件的关键要素,普遍接受的观点是:软件=程序+数据+文档。 2.文档有何作用?程序代码属不属于文档? 答:文档指的是在软件开发和维护过程中形成的文字记录。从软件计划、分析、设计、实现(编码和测试)、维护等开发活动中形成的各种文件。文档属于软件的一部分,是软件维护和升级的重要依据,并且文档内容要与代码同步更新。没有文档的软件维护不但不能延长反而会缩短软件寿命。 文档包括需求规格说明书、设计说明书、用户使用说明书、在线帮助等,当然程序代码是必不可少的一种软件文档。 3.什么是软件危机?什么原因产生了软件危机? 答:软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。产生的原因是主客观不相适应。见书图1-2。 客观上:软件规模增大、功能要求越来越复杂,需求不断变化等; 主观上:传统的个体化开发观念和方法,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。 4.软件工程定义有很多说法,用你自己的理解说明软件工程是干什么的? 参考:软件工程是指导计算机进行软件计划、开发和维护的工程学科; 软件工程是为解决软件危机而诞生的,解决的途径是:用工程化的理论、方法和技术来管理软件开发过程。任何产品的工程化就是有计划、有目标、有规范、有文档、有标准。 见1.4节。软件工程就是指导软件产品的工程化。

5.软件工程三要素是什么? 答:软件工程三要素是从计算机科学观点看软件工程,即从软件开发的技术层面应该有过程、方法和工具。见图1-4。 (2)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。过程定义的活动集合及其序列见第2章。 (3)“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。如经常说的面向结构、面向对象、面向组件等开发方法,项目管理中估算、度量、计划等管理方法。软件工程以介绍方法为主,本书从第3章开始逐步介绍开发过程所用到的方法。 (4)“工具”为过程和方法提供自动的或半自动的支持。这些工具既包括软件也有硬件。 软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件工具集成起来搭建一个支持团队开发的平台,称之为计算机辅助软件工程(ComputerAided Software Engineering,CASE)。CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。 6.软件工程的目标、过程和原则是什么? 答:目标、过程、原则是一切工程的三维框架,它是以工程的观点来看待软件开发。见书 1.5.2节 (1)软件工程的目标:降低成本,及时交付高质量的软件产品(高质量、高效率、高效益)。 (2)实现目标的过程:完成产品加工的过程。它包括:基本过程、支持过程和组织过程。

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

软——应 课习题 件工程原理、方法与用后答案最完整版 绪论 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……<——(注册失败处!!!) ……提示用户注册码不正确等相关信息 这次我相信,并且深信不疑.你一定明白了.我还是不明白……倒…… 你一定看出跟第一种情况不同的地方了吧.没错!它与第一种不同的,就是第一种情况是如果

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

有线电视数字机顶盒破解原理方法和软件工具把杀毒软件删除了下载的 数源机顶盒程序烧写步骤 此步骤为机顶盒串口升级,利用一条串口线把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捕捉下来传递给其他机顶盒即可。

软件工程第五版习题及答案

《软件工程》(第五版)习题参考答案 第1章 一、判断题 1、(×)软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、(×)软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。 4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和衰亡的生存过程。 5、(×)文字处理软件Word属于系统软件。应用软件 6、(√)原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。 7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。 8、(×)快速原型模型对软件开发人员的水平要求不高。 9、(√)喷泉模型适合于面向对象的软件开发。 10、(×)面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。 二、选择题 1、软件是一种(C)。 A、程序 B、数据 C、逻辑产品 D、物理产品 2、软件开发方法是(A)。 A、指导软件开发的一系列规则和约定 B、软件开发的步骤 C、软件开发的技术 D、软件开发的思想 3、软件生存周期中花费最多的阶段是(D)。 A、详细设计 B、软件编码(最少) C、软件测试 D、软件维护 4、软件工程的三要素不包括(D)。 A、工具 B、过程 C、方法 D、环境 5、在软件生存周期中,能准确地确定“软件系统必须做什么”的阶段是(D)。 A、总体设计 B、详细设计(怎么做) C、可行性研究(能不能做) D、需求分析 6、瀑布模型本质上是一种(A)模型。 A、线性顺序 B、顺序迭代 C、线性迭代 D、能及早见到产品的 7、瀑布模型突出的缺点是不适应(D)的变动。 A、算法 B、程序语言 C、平台 D、用户需求 8、在软件开发模型中,提出最早、应用最广泛的模型是(A)。 A、瀑布模型 B、喷泉模型 C、快速原型模型 D、螺旋模型 9、瀑布模型不适合用于(A)的软件开发。 A、需求模糊不清 B、用户不能参与开发 C、用户对计算机不了解 D、开发人员对业务知识不熟悉 10、快速原型的主要优点不包括(D)。 A、能让用户参与开发、给出反馈 B、尽早把需求分析清楚,以降低风险

软件工程实验教案

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

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

破解超星的打印限制

在写接下来那些个“技巧”或者说“歪门邪道”之前,还请容在下啰嗦两句,第一,这些个“技巧”总是有些不守规矩的地方,法律人按说首先就是要遵重规矩的,在下是迫不得已,您要是坚定地的按规矩来,那么就不必再往下看了;第二,您若是经济条件许可,平时还请多多支持正版书籍,尤其是您喜欢的学者,其实啊,相信爱书之人绝大多数不喜欢对着屏幕,而是梦想着坐拥书城或者半床明月半床书吧。 核心内容:PDG转PDF全攻略,核心是虚拟打印技术…… 所需软件三种:SsReader 4.0;Adobe Acrobat 7.0 Professional(或其以上版本)(校园网ftp 里就有;具体用到的实际上是Acobat Distiller这个程序,但似乎比较难找到单独下载);UltraEdit-32。 一、破解超星的打印限制 在打印超星图书的时候,超星有一个每月1000页的限制,超过限制,系统就会提示您已经达到了本月打印页数的最上限,就没法继续了。 解决方法:使用UltraEdit-32 软件打开SsReader.exe 文件,选择搜索菜单下的查找命令,在查找栏输入750D8B0764A3 然后点击下一个按钮,将搜索到的750D8B0764A3中的0D 改为2A ,最后存盘即可 PS1:一共可搜索到两处,只修改第一次搜索到的; PS2:这个修改后的SsReader.exe 文件可以备份一下,有重装超星阅读器时,可以直接替换原文件,UltraEdit-32您若没有别的用处,则可以过河拆桥,删除了。 二、设置虚拟打印机 超星限制用虚拟打印机输出PDF文档,见到Adobe Acrobat Printer就不让打印。 解决方法:在控制面板“打印机和传真”项上添加打印机,然后选择一款后面带有PS的打印机,最好选择彩色打印机,比如:HP Color LaserJet 8550-PS,这样就可以打印彩色书籍了,端口只要选择不冲突就行,一路下一步安装结束,就可以使用了。您可以将它设定为默认打印机,也可以在选择虚拟打印机时选择它。 三、虚拟打印 在校园网上的超星图书馆找到您中意的图书之后,“网通阅读”(比较快),电脑就会用修改过的SsReader 4.0打开它啦,找到本书的首页(阅读器左下角封面页前言页〈超星的书不少没有封面、您若是完美主义者,封面可以用百度图片搜索或者在豆瓣在卓越等各大购书网上找〉、缩放选择100%)然后点“图书” -》“打印”(默认的打印范围从当前页开始、比例按纸张大小不用改动)(打印页数从目录或者图书属性中可以知道,但建议直接填个超大的,比如9999999,反正打完了实际页数会自动停下来)-》“确定”……注意在打印对话框中勾选“打印到文件” -》“打印”…… 此时会弹出对话框,输入文件名(此时文件名可以直接用书名,见图书属性,复制粘贴),文件的扩展名最好为.ps(其他也可以,但*.ps或者*.prn文件Acrobat Distiller可自动识别),文件名中可以带路径,以便于查找,否则该文件默认会出现在SSREADER36(超星安装文件夹)中的History文件夹中,极少也会出现在local文件夹中,打印需要一定时间 四、后期处理 用Acrobat Distiller打开该虚拟打印的成果*.ps文件,(双击*.ps文件,Acrobat Distiller会自动开始运行;Acrobat Distiller的默认设置中,推荐选择高质量打印),很快即可转为PDF文件——大功告成。 PS:完成之后,相关的*.ps文件、*.log文件、*.dat文件统统可以删除之。 五、几点补充: 1. 个别超星图书有加密页、或者页面有问题,虚拟打印时会卡住就打不出来,这时不要急,打印的时候有一个页面显示,提示已经打了多少页了(或者查看已经打印生成的*.ps文件转

相关文档
最新文档