0010 西南大学
- 格式:doc
- 大小:789.00 KB
- 文档页数:12
[0010]《软件工程》
第一次作业
[论述题]
(1)简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
(2)软件生命周期划分成哪些阶段。
(3)什么是需求分析,需求分析阶段的基本任务是什么?
(4)可行性研究的任务
(5)什么叫软件测试,软件测试的方法有哪些?
参考答案:
(1)简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):
传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用
(2)软件生命周期划分成哪些阶段。
软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析
2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。
3. 维护时期:主要任务是使软件持久地满足用户的需要。
(3)什么是需求分析,需求分析阶段的基本任务是什么?
需求分析就是理解用户需求,分析软件用户的需求是什么。
需求分析的任务就是解决"做什么"的问题,在问题定义和可行性研究的基础上,全面地理解用户的各项要求,并准确地表达所接受的用户需求。具体说来,就是把可行性研究阶段确定的系统功能进一步具体化,交出包括详细的数据流图、数据字典以及简要的算法描述在内的需求说明书。
(4)可行性研究的任务
1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性;5.为每个可行的解决方案制定一个粗略的实现进度6.对以后的行动方针提出建议
(5)什么叫软件测试,软件测试的方法有哪些?
软件测试:为了发现程序中的错误而执行程序的过程。
软件测试的方法:黑盒测试白盒测试穷尽测试
第二次作业
[论述题]
(6)什么叫逻辑覆盖,常用的逻辑覆盖方法有哪些(写出方法名称即可)
(7)什么是软件危机?什么是软件工程?
(8)可行性研究的步骤。
(9)瀑布模型优点和缺点。 (10)什么叫测试用例,常用测试用例设计技术有哪些?
(11)如何将一个复杂数据流图转化为软件结构图。
参考答案:
(6)什么叫逻辑覆盖,常用的逻辑覆盖方法有哪些(写出方法名称即可)
逻辑覆盖:是对一系列测试过程的总称,这组测试过程逐渐尽兴越来越完整的通路测试,它是以程序内部的逻辑结构为基础的设计测试用例的技术,适用于白盒测试。
常用的逻辑覆盖法:
常用的逻辑覆盖方法有:语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、路径覆盖。
(7)什么是软件危机?什么是软件工程?
什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
(8)可行性研究的步骤。
可行性研究一般有下面的工作步骤:
1、确定系统的规模和目标
2、分析现有系统
3、设计出新系统的高层系统模型
4、评审系统模型
5、设计和评价新系统的实现方案
6、制定行动方案
7、拟定开发计划
8、编制可行性报告
(9)瀑布模型优点和缺点。
瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:传统的瀑布模型过于理想化,是由文档驱动的。
(10)什么叫测试用例,常用测试用例设计技术有哪些?
1测试用例:
是为某个测试目标而编制的一组测试输入、执行条件以及预期结果的方案,以便测试某个程序路径或核实是否满足某个特定需求。
2、常用测试用例设计技术:
适用于黑盒测试的等价划分、边界值分析、错误推测法;
适用于白盒测试的逻辑覆盖法;
通常的做法是,用黑盒测试法设计基本的测试方案,再用白盒测试法补充一些方案。
(11)如何将一个复杂数据流图转化为软件结构图。
面向数据流的结构设计过程和步骤是: 第1步:分析、确认数据流图的类型,区分是事务型还是变换型。
第2步:说明数据流的边界。
第3步:把数据流图映射为程序结构。对于事务流区分事务中心和数据接收通咱,将它映射成事务结构。对于变换流区分输出和输入分支,并将其映射成变换结构。
第4步:根据设计准则对产生的结构进行细化和求精。
下面分别讲座变换型和事务型数据流图转换成程序结构图的实施步骤。
变换型
第三次作业
[论述题]
(12)假定某图书管理系统中,需实现读者查询浏览功能,过程如下:输入学号,检验读者身份是否有效;根据读入的查询信息,检索数据库和图书记录库得出相应结果。请画出此功能模块的数据流图。
(13)根据12所画的查询操作数据流图,采用面向数据流的方法,画出系统的软件结构图。
(14)假设系统中有一个模块的代码如下,请将该代码转换画出程序流程图。
PROCEDUREEX(A,B:REAL;VAR X:REAL);
BEGIN
IF(A=3)OR(B>1)THEN X:=A×B
IF(A>2)AND(B=0)THEN X:=A-3
END
(15)请用语句覆盖和判定覆盖两种测试方法设计出两套测试数据,用于测试问题14中的程序。
参考答案:
(12)假定某图书管理系统中,需实现读者查询浏览功能,过程如下:输入学号,检验读者身份是否有效;根据读入的查询信息,检索数据库和图书记录库得出相应结果。请画出此功能模块的数据流图。
(13)根据12所画的查询操作数据流图,采用面向数据流的方法,画出系统的软件结构图。
(14)假设系统中有一个模块的代码如下,请将该代码转换画出程序流程图。
PROCEDUREEX(A,B:REAL;VARX:REAL);
BEGIN
IF(A=3)OR(B>1)THENX:=A×B
IF(A>2)AND(B=0)THENX:=A-3
END
答:END
程序流程图如下:
(15)请用语句覆盖和判定覆盖两种测试方法设计出两套测试数据,用于测试问题14中的程序。
语句覆盖:A=3,B=0
判定覆盖:1)A=1,B=0;2)A=2,B任意
1.语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.
2.判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次”真”和”假”值,从而使程序的每一个分支至少都通过一次.
第四次作业
[论述题]
(16)某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别、单位、旅行时间、目的地…等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。请画出此系统的数据流图。
(17)根据第16题中画出的数据流图,采用面向对象数据流的方法,画出该系统的软件结构图。
(18)请按照软件工程的规范写出写出16题目中的"旅客信息”数据字典。(定义到第2层)
(19)假设机票预定系统中有一个模块的程序代码如下,请画出该模块的程序流程图。
BEGIN T:=0
IF(X>=80ANDY>=80)THEN
T:=1
ELSEIF(X>=90ANDY>=75)THEN
T:=2
ENDIF
END.
(20)请用语句覆盖和条件组合覆盖两种测试方法设计出两套测试数据,用于测试问题19中你设计的程序。
参考答案:
(16)某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别、单位、旅行时间、目的地…等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。请画出此系统的数据流图。
(17)根据第16题中画出的数据流图,采用面向对象数据流的方法,画出该系统的软件结构图。
(18)请按照软件工程的规范写出写出16题目中的"旅客信息”数据字典。(定义到第2层)
答案:
旅客信息=姓名+性别+单位+旅行时间+目的地+....
姓名=5{字符}15
单位=10{字符}30
.......
(19)假设机票预定系统中有一个模块的程序代码如下,请画出该模块的程序流程图。
BEGIN
T:=0
IF(X>=80ANDY>=80)THEN
T:=1
ELSEIF(X>=90ANDY>=75)THEN
T:=2
ENDIF
END.
程序流程图如下:
(20)请用语句覆盖和条件组合覆盖两种测试方法设计出两套测试数据,用于测试问题19中你设计的程序。
答:
语句覆盖
X=95,Y=80
经化简后的条件组合覆盖测试用例:
1) x=95,y=95;
2) x=95,y=70;
3) x=70,y=95;
4) x=70,y=70;
语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.
条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次.
第五次作业
[论述题]
(21)为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,在系统计算利息后,打印出取款人姓名,取款数目,利息清单等给储户。请画出此系统的数据流图。