201111电子商务下午真题
第 1 题
阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某公司欲开发招聘系统以提高招聘效率,其主要功能如下:
(1)接受申请
验证应聘者所提供的自身信息是否完整,是否说明了应聘职位,受理验证合格的申请,给应聘者发送致谢信息。
(2)评估应聘者
根据部门经理设置的职位要求,审查已经受理的申请;对未被录用的应聘者进行谢绝处理,将未被录用的应聘者信息存入未录用的应聘者表,并给其发送谢绝决策;对录用的应聘者进行职位安排评价,将评价结果存入评价结果表,并给其发送录用决策,发送录用职位和录用者信息给工资系统。
现采用结构化方法对招聘系统进行分析与设计,获得如图1-1所示的顶层数据流图、图1-2所示0层数据流图和图1-3所示1层数据流图。
图1-1 顶层数据流图
![](../images/shiti/2021-04/401/nrRG3rL68g.png)
图1-2 0层数据流图
图1-3 1层数据流图
【问题1】(3分)
使用说明中的术语,给出图中E1~E3所对应的实体名称。
【问题2】(2分)
使用说明中的术语,给出图中D1~D2所对应的数据存储名称。
【问题3】(6分)
使用说明和图中的术语,给出图1-3中加工P1~P3的名称。
【问题4】(4分)
解释说明图1-2和图1-3是否保持平衡,若不平衡请按如下格式补充图1-3中数据流的名称以及数据流的起点或终点,使其平衡(使用说明中的术语或图中符号)。
![](../images/shiti/2021-04/136/HJ68VYq73q.png)
答案与解析
- 试题难度:较难
- 知识点:数据流图>数据流图案例题分析
- 试题答案:
【问题1】
E1:应聘者
E2:部门经理
E3:工资系统
【问题2】
D1:未录用的应聘者表
D2:评价结果表
【问题3】
P1:验证信息
P2:审查申请
P3:职位安排评价
【问题4】
不平衡。图1-2中加工的输入输出流与其子图1-3中的输入输出流的数量不同。 - 试题解析:
本题考查数据流图(DFD)的应用,采用结构化方法进行系统分析与设计,是一道传统题目,要求考生细心分析题目中所描述的内容。
DFD是一种便于用户理解、分析系统数据流程的图形化建模工具。是系统逻辑模型的重要组成部分。
【问题1】
本问题考查顶层DFD。顶层DFD一般用来确定系统边界,将待开发系统看作一个加工,因此图中只有唯一的一个处理和一些外部实体,以及这两者之间的输入输出数据流。外部实体可以是使用系统的用户,也可以是为系统提供输入或接收系统输出的外部系统。本问题要求根据描述确定图中的外部实体。应仔细分析题目中描述,并结合已经在顶层数据流图中给出的数据流进行分析。从题目的说明中可以看出,与系统的交互者包括应聘者、部门经理和工资系统。分析说明中的描述可知,应聘者提供自身信息,并接收系统验证合格后的致谢信息等。部门经理设置职位要求。对录用者而言,将其录用职位和信息发送给工资系统。对应图1-1中数据流和实体的对应关系,可知E1为应聘者,E2为部门经理,E3为工资系统。
【问题2】
本问题考查DFD中数据存储的确定。本题中涉及的数据存储只有2个,一个是存储未被录用的应聘者信息,即未录用的应聘者表;另一个是存储对录用的应聘者进行职位安排评价的评价结果,即评价结果表。可以确定图1-2中D1和D2为未录用的应聘者表和评价结果表,因为有一个处理与这两个数据存储相关,需要再对应图1-3,可确认D1为未录用的应聘者表,D2为评价结果表。
【问题3】
本问题考查1层DFD中缺失的处理。从说明(1)中接受申请的描述功能,需先对应聘者信息进行验证,受理验证合格的申请,可知缺失的处理P1为验证信息。说明(2)中,根据职位要求,审查已经受理的申请,对录用者进行职位安排评价,可知缺失的处理P2为审查申请,P3为职位安排评价。
【问题4】
本问题考查绘制分层DFD时的注意事项。在分层DFD中,需要保持父图与子图的平衡。即父图中某加工的输入输出数据流必须与其子图的输入输出数据流在数量和名字上相同,或者父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流。
本题中,图1-2中加工的输入输出流与其子图1-3中的输入输出流的数量不同。也无需将父图中一条数据流分解成子图中多条数据流,因此,补充子图中缺失的输入或输出数据流:录用职位、已受理的申请、谢绝决策。
第 2 题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某物流公司为了整合上游供应商与下游客户,缩短物流过程,降低产品库存,需要构建一个信息系统以方便管理其业务运作活动。
【需求分析结果】
(1)物流公司包含若干部门,部门信息包括部门号、部门名称、经理、电话和邮箱。一个部门可以有多名员工处理部门的日常事务,每名员工只能在一个部门工作。每个部门有一名经理,只需负责管理本部门的事务和人员。
(2)员工信息包括员工号、姓名、职位、电话号码和工资;其中,职位包括:经理、业务员等。业务员根据托运申请负责安排承运货物事宜,例如:装货时间、到达时间等。一个业务员可以安排多个托运申请,但一个托运申请只由一个业务员处理。
(3)客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银行账号,其中,客户号唯一标识客户信息的每一个元组。每当客户要进行货物托运时,先要提出货物托运申请。托运申请信息包括申请号、客户号、货物名称、数量、运费、出发地、目的地。其中,一个申请号对应唯一的一个托运申请;一个客户可以有多个货物托运申请,但一个托运申请对应唯一的一个客户号。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如图2-1所示。
![](../images/shiti/2021-04/241/xFrmuACpq3.png)
图2-1 实体联系图
【关系模式设计】
部门(部门号,部门名称,经理,电话,邮箱)
员工(员工号,姓名,职位,电话号码,工资, (a) )
客户( (b) ,单位名称,通信地址,所属省份,联系人,联系电话,银行账号)
托运申请( (c) ,货物名称,数量,运费,出发地,目的地)
安排承运( (d) ,装货时间,到达时间,业务员)
【问题1】(5分)
根据问题描述,补充四个联系、联系的类型,以及实体与子实体的联系,完善图2-1所示的实体联系图。
【问题2】(8分)
根据实体联系图,将关系模式中的空(a)~(d)补充完整。分别指出部门、员工和安排承运关系模式的主键和外键。
【问题3】(2分)
若系统新增需求描述如下:
为了数据库信息的安全性,公司要求对数据库操作设置权限管理功能,当员工登录系统时,系统需要检查员工的权限。权限的设置人是部门经理。为满足上述需要,应如何修改(或补充)图2-1所示的实体联系图,请给出修改后的实体联系图和关系模式。
答案与解析
- 试题难度:较难
- 知识点:数据库设计>数据库设计案例题分析
- 试题答案:【问题1】【问题2】
【问题3】
关系模式:
权限(员工号,权限,设置人)
或 权限(员工号,权限,部门经理) - 试题解析:
本题考查数据库系统中实体联系模型(E-R模型)和关系模式设计方面的应用知识。
【问题1】
两个实体集之间的联系类型分为三类:一对一(1:1)联系、一对多(1:n)联系和多对多(m:n)联系。
根据题意,每名员工只能在一个部门工作,所以部门和员工之间有一个1:n的“所属”联系;由于每个部门有一名经理,只需负责管理本部门的事务和人员,因此部门和经理之间有一个1:1的“管理”联系;由于一个业务员可以安排多个托运申请,但一个托运申请只由一个业务员处理,故业务员和托运申请之间有一个1:n的“托运”联系;又由于一个客户可以有多个货物托运申请,但一个托运申请对应唯一的一个客户号,故客户和托运申请之间有一个1:n的“申请”联系。
根据上述分析,完善图2-1所示的实体联系图可参见参考答案。
【问题2】
根据题意,部门和员工之间有一个1:n的“所属”联系需要将一端的码并入多端,故员工关系模式中的空(a)应填写部门号;在客户关系模式中,客户号为主键,故空(b)应填写客户号;在托运申请关系模式中,申请号、客户号为主键,故空(c)应填写申请号、客户号;又由于一个业务员可以安排多个托运申请,但一个托运申请只由一个业务员处理,因此在安排承运关系模式中,申请号为主键,故空(d)应填写申请号。
部门关系模式中的部门号为主键,经理为外键;因为经理来自员工关系。员工关系模式中的员工号为主键,部门号为外键,因为部门号来自部门关系。安排承运关系模式的中的申请号为主键,业务员为外键,因为业务员来自员工关系。
【问题3】
根据题意,权限的设置人是部门经理,因此,需要建立一个权限关系模式,以及经理到权限之间的1:n的“设置”联系。修改后的实体联系图和关系模式参见参考答案。
第 3 题
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某公司需开发一套电子商务系统,为保证开发进度和开发质量,专门组建测试小组对开发的全过程进行测试。
【问题1】(5分)
电子商务系统的报表处理模块要求用户输入处理报表的日期,日期限制在2003年1月至2006年12月,如日期不在此范围内,则显示输入错误信息。系统日期由6位数字字符组成,前4位代表年,后2位代表月。测试小组设计了等价类,如表3-1所示。请根据题目说明及表3-1,填补空(1)~(5)。
![](../images/shiti/2021-04/412/zAt3huK24T.png)
【问题2】(2分)
完成模块测试后,测试小组进行了集成测试。
集成测试是在软件系统集成过程中所进行的测试,主要检查各单元之间的接口是否正确,有 (6) 集成与 (7) 集成两种方法。前者是将单元测试后的所有模块按设计要求一次性组合起来进行整体测试,后者是测试完一个模块后再将下一个需要测试的模块组合进来测试,逐步把所有模块组合在一起完成测试。
【问题3】(6分)
系统测试是对已经集成好的软件系统进行彻底测试,而电子商务系统是基于网络的信息系统,因此,其测试对传统的软件测试提出了新的要求。针对上述情况,测试小组做了以下几项工作:
A.对数据的完整性、有效性、一致性测试
B.从响应时间、处理速度、吞吐量、处理精度等方面来检测
C.验证系统在指定条件和规定的时间内执行操作的能力
D.检查系统对非法侵入的防范能力以及系统的安全机制、保密措施是否完善
E.对产品选择、签约过程、在线支付及产品交付等方面进行测试
F.针对界面的正确性、导航性、易用性、协调性、规范性及独特性等进行测试
其中, (8) 是性能测试; (9) 是安全性测试; (10) 是可靠性测试; (11) 是界面测试; (12) 是交易功能测试; (13) 是数据库测试。
【问题4】(2分)
请判断以下对测试的叙述是否正确。
A.验收测试是以用户为主的测试,软件开发人员和质量保证人员也应参加。 (14)
B.在验收测试中,α测试是由软件开发机构组织内部人员模拟各类用户在开发环境下进行的测试。 (15)
【问题1】
(1)在2003~2006之间
(3)含有非数字的6个字符
(2)在01~12之间
(4)<2003
(5)>12
【问题2】
(6)非增量式
(7)增量式
【问题3】
(8)B或从响应时间、处理速度、吞吐量、处理精度等方面来检测
(9)D或检查系统对非法侵入的防范能力,以及系统的安全机制、保密措施是否完善
(10)C或验证系统在指定条件和规定的时间内执行操作的能力
(11)F或针对界面的正确性、导航性、易用性、协调性、规范性及独特性等进行测试
(12)E或对产品选择、签约过程、在线支付及产品交付等方面进行测试
(13)A或对数据的完整性、有效性、一致性测试
【问题4】
(14)是或正确
(15)是或正确
本题考查软件测试的基本知识。
【问题1】
本问题考查对黑盒测试中的等价类测试法的掌握情况。
由于采用穷举法来进行测试是不现实的,因此在面对实际问题时,可根据等价类划分的思想,将输入数据按照程序的功能说明划分为若干个集合(可根据输入条件划分为有效的输入和无效的输入),每一个集合中的某一输入数据在程序中执行结果代表了该集合中其他输入数据对程序的作用,一个集合即为一个等价类。在等价类划分完之后,再针对每一个有效的等价类和无效的等价类设计测试用例。如果用某个等价类的一组测试数据进行测试时没有发现错误,则说明在同一等价类中的其他输入数据也一样查不出问题;反之,如果用某个等价类的测试数据进行测试检查出错误,则说明用该等价类的其他输入数据进行测试也一样会检测出错误。所以,测试时只需从每个等价类中取一组输入数据进行测试即可。
问题1共划分了三个等价类,其中,“报表日期的类型及长度”等价类中应包含无效类型、无效长度的无效等价类,长度无效等价类已经给出,因此空(3)处应填写“含有非数字的6个字符”。“年份范围”有效等价类表示正确的年份范围,空(1)处应填写“在2003~2006之间”,无效等价类表示不在此范围内的年份,则空(4)处应填写“<2003”;月份范围的填空同理。注意,设计测试用例时,一个测试用例只能覆盖一个无效等价类,因为程序在遇到错误之后就不再检查是否还有其他错误。
【问题2】
本问题考查对集成测试概念的掌握情况。
集成测试是在软件系统集成过程中所进行的测试,其主要目的是将通过单元测试的模块按照一定的策略,组装成能够完成预期功能要求的软件结构系统。集成测试主要检查各单元之间的接口是否正确。
通常,集成测试有非增量式集成与增量式集成两种方法:前者是将单元测试后的所有模块按设计要求一次性组合起来进行整体测试。这种方法整体性强,可以对模块进行并行测试,能充分利用人力,减少测试的开销;但这种方法容易混乱,出现错误不容易查找和定位。增量式集成是把下一个要测试的模块结合到已测试好的模块中,测试完后再将下一个需测试的模块组合进来测试,逐步把所有模块组合在一起,并完成测试。这种方法从局部开始逐步形成整体,测试范围是一步步扩大的,所以错误容易定位,而且已测试的模块可在新的条件下进行投试,使程序测试得更彻底。因此,通常采用增量式测试方法比较好。
【问题3】
本问题考查对各种测试概念的掌握情况,每一种测试有其不同的测试重点,考生应该掌握它们的不同之处。
功能测试又称正确性测试,它检查系统的功能是否符合规格说明,主要采用黑盒测试方法。通常的做法是构造一些合理输入,检查是否得到期望的输出。
性能测试是检查系统是否满足系统分析说明书对性能的要求。特别是实时系统或嵌入式系统,即使软件的功能满足需求,但性能达不到要求也是不行的。性能测试覆盖了软件测试的各阶段,而不是等到系统的所有各部分都组装之后,才确定系统的真正性能。通常与强度测试结合起来,同时对软件、硬件进行测试,主要从响应时间、处理速度、吞吐量、处理精度等方面来检测。
系统的安全性测试主要是为了检查系统对非法侵入的防范能力,以及系统的安全机制、保密措施是否完善。测试的方法是测试人员模拟非法入侵者,采用各种方法冲破防线。例如,想方设法截取或破译口令;故意使系统出错,利用系统恢复的过程非法入侵;企图通过浏览非保密数据,获取所需信息,等等。
若系统分析说明书提出了可靠性要求,则应对系统的可靠性进行测试,主要验证系统在指定条件和规定的时间内执行操作的能力。通常使用以下两个指标来衡量系统的可靠性:
(1)平均失效间隔时间是否超过了规定的时限;
(2)因故障而停机时间在一年中应不超过多少时间。
用户界面测试用于核实用户与软件之间的交互,检查用户界面中的设计是否合乎用户的期望或要求,界面中的对象是否按照预期的方式运行。
数据库测试一方面是指对数据库本身的完整性进行测试,包括:(1)数据完整性。主要检测数据的损坏。规定适当的检查点可以减轻数据损坏。例如,保留和检查每天的事务日志便于跟踪数据库的改变。(2)数据有效性。数据有效性确保把正确的信息提供给客户,把正确的信息回传到数据库中。一般来说,数据的检测比率高于应用程序本身的检测比率。其中的一个检测方法是查看工作流并在变化点上检查数据库,包括隔离改变数据库的操作并检查改变内容是否正确。(3)数据操作。我们需要从两种级别上测试用户操作:管理员功能和用户功能。数据库管理员可以执行一些不提供给网站客户的受限操作。另一方面,要将数据库与应用系统相结合,对数据一致性、输出结果及数据库容量进行测试。用户提交的表单信息如果不正确,则可能导致数据一致性出错;而网络速度或者程序设计如果存在问题,则可能造成输出错误;同时,还要考虑到系统及数据库在给定时间内能够持续处理的最大负载及工作量。
【问题4】
本问题考查对参与测试的人员属性的了解情况。在整个测试过程中,只有模块测试允许由模块的设计者进行测试,其余测试均由其他人员进行测试,目的是避免自我否定现象,从而能更多地发现错误。
验收测试根据用户需求验证系统,是在投入使用之前的最后测试。验收测试的任务是进一步验证软件的有效性,也就是说,检查软件的功能和性能是否与用户的要求一样。同时验收测试要进行对软件配置的复审,即检查软件(源程序、目标程序)和文档(包括面向开发和用户)是否齐全以及分类是否有序,确保文档、资料的正确和完善,以便维护阶段使用。
验收测试是以用户为主的测试,软件开发人员和质量保证人员也应参加。在验收测试之前,需要对用户进行培训,以便熟悉该系统。验收测试的测试用例由用户参与设计,主要验证软件的功能、性能、可移植性、兼容性、容错性等,测试时一般采用实际数据。由于一个系统拥有众多用户,不可能让每个用户对系统进行验收,因此,多采用α测试和β测试的方法。
α测试是由软件开发机构组织内部人员模拟各类用户在开发环境下进行的测试,其关键在于尽可能逼真地模拟实际的运行环境及用户的操作,并尽最大努力涵盖所有可能的用户操作方式。β测试是由软件用户在实际日常工作环境下进行的测试,并要求用户报告异常情况,提出批评意见,然后由开发机构再对系统进行改错和完善,最后向用户发布最终软件产品。
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某公司使用ASP开发商务网站,该商务网站具有商品介绍、会员管理、在线支付、物流管理和访客计数器等功能,采用Sqlserver数据库,数据库名为business,其中访客计数器表存储今日访问量、昨日访问量和总访问量等字段,其名称为counter。
【问题1】(6分)
ASP访问数据库一般采用ADO技术,ADO对象主要包含Connection对象、Command对象、Parameter对象、Recordset对象、Field对象和Error对象等。请根据ADO对象之间的关系,在空(1)~(6)处填写正确的对象名。
![](../images/shiti/2021-04/341/tTxwEW24UY.png)
【问题2】(7分)
该商务网站的计数器部分代码如下,请根据题目说明,将空缺的代码补充完整。
<%
set conn=server.createobject("adodb.connection")
(7) .provider="sqloledb "
provstr="server=127.0.0.1; database= (8) ; uid=sa; pwd=9857452"
conn_.open provstr
set rs=conn.Execute("select * from counter")
……
conn.Execute"Update counter set counter=counter+1, today=0, statdtm=date(), daynum=daynum+1, yesterday="&rs("today") &""
conn.Execute" (9) into yesday(yesday.stats) values ( ' " &yesday&" ', "&rs("today")&")"
……
application. (10)
if rs("top") conn.Execute"Update counter set counter=counter+1, today=today+1, [top]=" &rs("today") &""
else
conn.Execute"Update counter set counter=counter+1, today=today+1"
end if
(11) .unlock
end if
counters= (12)
today= (13)
yesterday=rs("yesterday")
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
document.write('总共访问量:<%=counters%>, 今日访问: <%=today%>, 昨日访问: <%=yesterday%>');
【问题3】(2分)
从上述ASP代码可以判断出,计数器表counter中statdtm的字段类型是(14),counter的字段类型是 (15)。
答案与解析
- 试题难度:较难
- 知识点:电子商务系统建设>电子商务系统建设案例题分析
- 试题答案:
【问题1】
(1)Connection对象
(2)RecordSet对象
(3)Command对象
(4)Error对象
(5)Parameter对象
(6)Field对象
【问题2】
(7)conn
(8)business
(9)Insert
(10)lock
(11)application
(12)rs("counter")
(13)rs("today")
【问题3】
(14)日期型
(15)数值型 - 试题解析:
本题考查ASP程序设计的应用。
【问题1】
本问题考查ADO技术的基本应用。
ADO是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法之一,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到ASP页面上。
ADO对象主要包含Connection对象、Command对象、Parameter对象、RecordSet对象、Field对象、Property对象和Error对象等七个对象,它们之间的关系如下图所示。<rs("today") then
</rs("today")>
【问题2】
本问题考查ASP程序设计的知识。
<%
set conn=server.createobject("adodb.connection")
conn.provider="sqloledb " //创建的实例名为conn
provstr="server=127.0.0.1; database=business; uid=sa; pwd=9857452" //根据说明,数据库名为business
conn_.open provstr
set rs=conn.Execute("select * from counter")
……
conn.Execute"Update counter set counter=counter+1, today=0, statdtm=date(), daynum=daynum+1, yesterday="&rs("today") &""
conn.Execute"Insert into yesday(yesday.stats) values ( ' " &yesday&" ', "&rs("today")&")" //执行sql的插入操作
……
application.Lock //application对象操作前先锁定
if rs("top") conn.Execute"Update counter set counter=counter+1, today=today+1, [top]=" &rs("today") &""
else
conn.Execute"Update counter set counter=counter+1, today=today+1"
end if
application.unlock //application对象操作后解锁
end if
counters=rs("counter") //从rs记录集中取出counter字段的值
today=rs("today") //从rs记录集中取出today字段的值
yesterday=rs("yesterday")
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
document.write('总共访问量:<%=counters%>, 今日访问: <%=today%>, 昨日访问: <%=yesterday%>');
【问题3】
本问题考查Sqlserver数据库的基本应用。根据代码conn.Execute"Update counter set counte=counter+1,today=O,statdtm=date(),daynum=daynum+1, yesterday="&rs("today")可以判断出,计数器表counter中statdtm的字段类型是日期型,counter的字段类型是数值型。
第 5 题
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
小明在一家超市工作,该超市将进行整体改造,小明负责信息系统软硬件升级,他制定的工作计划如表5-1所示。
每项任务的逻辑关系和部分时间信息如图5-1所示。
图5-1 项目计划网络图
【问题1】(10分)
请根据表5-1和图5-1,计算各项任务的最迟开始时间和最迟结束时间,填充图5-1中的空(1)~(10)。
【问题2】(3分)
计算下表中每项任务的总时差,填充其中的空(11)~(13)。
![](../images/shiti/2021-04/450/n6YHQDjsa4.png)
【问题3】(2分)
写出该项目的关键路径(在答题纸对应位置填写任务代码)。
A—— (14) —— (15) ——G
答案与解析
- 试题难度:较难
- 知识点:电子商务项目控制与优化>项目管理及计划控制案例题分析
- 试题答案:
【问题1】
(1)7
(2)14
(3)9
(4)11
(5)11
(6)15
(7)11
(8)19
(9)15
(10)21
【问题2】
(11)6
(12)4
(13)4
【问题3】
(14)D
(15)F - 试题解析:
本题考查项目管理中网络图、关键路径及相关计算。
项目计划网络图中时间参数的计算应在确定各项工作的持续时间之后进行。
1.最早开始和最早完成时间ES、EF。
计划网络图中各项工作的最早开始时间和最早完成时间的计算应从网络计划的起始结点开始,顺着箭线方向依次逐项计算。
(1)起始结点的最早开始时间为零。
(2)工作的最早开始时间等于该工作的各个紧前工作的最早完成时间的最大值,即ES=max{紧前工作的EF}。
(3)工作的最早完成时间等于该工作的最早开始时间加上其持续时间,即EF=ES+本工作持续时间。
2.最迟开始时间和最迟完成时间LS、LF。
网络计划中各项工作的最迟开始时间和最迟完成时间的计算应以项目规定或计算的工期为基准,从网络计划的终止结点,逆着箭线方向依次逐项计算。
(1)最迟结束时间:某工作的最迟结束时间等于该工作的各项紧后工作的最迟开始时间的最小值,即LF=min{紧后工作的LS}。
(2)最迟开始时间:本项工作的最迟结束时间减本项工作的持续时间,即LS=LF-工作的持续时间。
3.工作的总时差TF:工作的总时差指在不影响整个项目最早完成时间的前提下,各项工作的完工期可以推延的时间。工作总时差等于该工作最迟完成时间与最早完成时间之差,或该工作最迟开始时间与最早开始时间之差,即TF=LF-EF,或TF=LS-ES。
4.工作的自由时差FF:工作自由时差指在不影响紧后工作的最早开始时间的前提下,一项工作的完工期可以推延的时间。自由时差的计算应按以下两种情况分别考虑:
(1)对于有紧后工作的工作,其自由时差等于本工作之紧后工作最早开始时间减本工作最早完成时间所得之差的最小值,即FF=min{ES(紧后工作)}-EF。
(2)对于无紧后工作的工作,也就是以网络计划终点结点为完成结点的工作,其自由时差等于计划工期与本工作最早完成时间之差。
需要指出的是,对于网络中以终点结点为完成结点的工作,其自由时差与总时差相等。此外,由于工作的自由时差是其总时差的构成部分,所以,当工作的总时差为零时,其自由时差必然为零,可不必进行专门计算。
在实际项目中,可能会出现其他情况。例如,紧后工作和紧前工作具有一定的平行特性,即紧后工作的开始并不以紧前工作的结束为前提,紧后工作只需在紧前工作开始一段时间后即可开始,将这样工作间的平行关系称为搭接关系。一般将这样的搭接关系分成四类:
(1)结束——开始型(finish-to-start):B在A结束T时间之前不能开始,标记为FS(T)如下图(a)所示。
(2)结束——结束型(finish-to-finish,FF):B在A结束T时间之前不能结束,标记为FF(T)如下图(b)所示。
(3)开始——开始型(start-to-start,SS):B在A开始T时间之前不能开始,标记为SS(T)如下图(c)所示。
(4)开始——结束型(start-to-finish,SF):B在A开始T时间之前不能结束,标记为SF(T)如下图(d)所示。具体计算如下:
(1)结束——开始型(finish-to-start,FS(T)):B在A结束T时间之前不能开始,标记为FS(T),T表示时间间隔,各参数计算规则如下:
最早时间:ESj=EFi+FS(T)
最迟时间:LFi=LSj-FS(T)
自由时差:FFi=ESj-FS(T)-EFi
(2)结束——结束型(FF):B在A结束T时间之前不能结束,标记为FS(T),T表示时间间隔,各参数计算规则如下:
最早时间:EFj=EFi+FF(T)
最迟时间:LFi=LFj-FF(T)
自由时差;FFi=EFj-FF(T)-EFi
(3)开始——开始型(SS):B在A开始T时间之前不能开始,标记为FS(T),T表示时间间隔,各参数计算规则如下:
最早时间:ESj=ESi+SS(T)
最迟时间:LSi=LSj-SS(T)
自由时差:FFi=ESj-SS(T)-ESi
(4)开始——结束型(SF):B在A开始T时间之前不能结束,标记为FS(T),T表示时间间隔,各参数计算规则如下:
最早时间:EFj=ESi+SF(T)
最迟时间:LSi=LFj-SF(T)
自由时差:FFi=EFj-SF(T)-ESi
这四类情况下,总时差的计算规则与一般网络相同。
根据上述公式,问题1计算结果如下:问题2计算结果如下:
问题3计算结果如下:
总时差最小的工作为关键工作,由关键工作构成的线路为关键线路或关键路径。本项目中从开始结点到最终结点,A、D、F、G工作的总时差均为0,故本项目的关键路径是A-D-F-G。