浙江大学远程教育学院。
软件工程基础》课程作业。
第一章概述。
1.什么是软件危机,它有哪些典型表现?
2.简述产生软件危机的原因和解决的思路。
3.什么是软件工程?它有哪些本质特性?
4.软件工程是如何用来消除软件危机的?
5.假设你是某软件开发企业的ceo,当你把教材p.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:
“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服?
6.简述软件的定义。
7.软件工程的目的是什么?
8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?
9.简述软件工程的基本原理。
10.软件工程的基本开发原则有哪些?
11.构成软件工程的基本元素有哪些?
12.什么是软件过程?它与软件工程方法学有何关系?
13.什么是软件生命周期?什么是软件生命周期模型?
14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。
15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。
第二章可行性研究。
1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?
2.应该从哪些方面研究目标系统的可行性?
3.可行性研究有哪些工作步骤?
4.简述系统流程图在可行性研究中的作用。
5.简述数据流图在可行性研究中的作用和用途。
6.简单描述数据字典但内容和定义数据的方法。
7.说明软件计划的内容和目标。
8.什么是软件范围?定义软件范围需要哪些信息?
9.简述软件开发环境资源的三个层次。
10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?
11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?
12.主要的成本估计技术有哪些?其依据的主要是什么?
13.为什么说成本估计是不可能精准的?
14.进行成本/效益分析的方法主要有哪些?
15.软件计划的主要内容有哪些?
16.如何对制定完成的软件计划进行复审?为什么要复审?
17.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统。如果是存款,系统记录存款人的姓名、地址、存款类型、存款日期、存款数量和利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
请写出问题定义并分析此系统的可行性。
第三章需求分析。
1.为什么要进行需求分析?通常对软件系统有哪些需求?
2.怎样与用户有效地沟通,以获得用户的真实需求?
3.需求分析的任务是什么?
4.通常系统的需求可以分为哪几个层次?
5.进行需求分析的步骤有哪些?
6.简述建立原型模型对软件需求分析的作用。
7.解释实体-联系图及其用途。
8.说明为什么需要进行需求验证及验证的步骤有哪些?
9.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务人员键入系统,如果是存款则系统记录存款人姓名、住址(或**号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。
第四章总体设计。
1.为每种类型的模块耦合举一个具体的例子。
2.为每种类型的模块内聚举一个具体的例子。
3.简单说明系统总体设计的步骤步骤。
4.举例说明模块化原理的经验1和经验2。
5.为什么要尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合?
6.为什么模块的规模要适中?
7.请说明为什么模块控制的宽度和深度要适度。
8.简述面向数据流设计方法的基本思想。
9.常用数据流类型有哪些?
10.面向数据流的设计方法主要有哪几个步骤?
11.用面向数据流的方法设计第二章习题17系统的软件结构。
第五章详细设计。
1.详细设计的任务是什么?
2.在对系统做详细设计时,应遵循哪些原则?
3.简述结构化设计的特点。
4.结构化程序设计中有哪几种基本控制结构?分别描绘在程序流程图、盒图和pda图中这些基本控制的图例。
5.假设只有sequence和do_while两种控制结构,请问应该如何完成if_then_else操作?
6.假设只有sequence和if_then_else两种控制结构,请问应该如何完成do_while操作?
7.试说明iso为什么要建议停止使用程序流程图,而推荐使用pda图?
8.请画出下列伪码程序的程序流程图、盒图和pda图。
startif p then
while q do
fend do
elseblockgn
end block
end if
stop9.试说明jackson方法是一种怎么样的程序设计方法。它有哪些工作步骤?
10.请将教材p.124图6.13统计空格程序的jackson图改画成为等价的盒图和pda图。
11.人机对话由操作员信息和系统信息交替组成。假设一段对话总是由操作员信息开始,以系统信息结束,请用jackson图描绘这样的一段人机对话过程。
第六章实现。
1.说明什么是程序编码?为什么程序设计语言的特点和编码风格会影响到程序的可靠性、可读性、可测试性和可维护性?
2.用户界面设计的最一般原则,即所谓“**规则”是什么?
3.软件界面设计包含了哪几个方面的基本内容?
4.用户界面提供系统服务的方式通常有哪两种?
5.wimp界面是屏幕菜单驱动用户界面的一种形式,其设计准则有哪些?
6.为什么说软件界面设计的质量会直接影响到用户对软件产品的评价?
7.什么是系统响应时间?系统响应时间有哪些重要属性?
8.在设计软件系统的用户帮助设施时,需要注意解决哪些问题?
9.软件出错处理设计,即软件安全性设计。一个交互式出错处理程序应该具备哪些功能和属性?
10.测试的最基本目标是什么?
11.软件测试的原则有哪些?
12.软件测试的方法有哪几种?
13.简单说明什么是白盒测试,什么是黑盒测试。
14.简述软件测试的步骤。
15.举例说明通常情况下穷尽测试是不可能的。
16.为什么单元测试必须由编程者自己完成?
17.单元测试的主要手段有哪些?
18.单元测试主要从哪5个方面进行?
19.为什么人工**审查十分重要?
20.集成测试主要有渐增式测试、非渐增式测试两种,试述两种方式的异同点。
21.描述集成测试的两种策略,并比较它们的优缺点。
22.什么是回归测试?回归测试的测试用例集如何确定?
23.什么是确认测试?确认测试的任务是什么?如何确认其范围?
24.设计测试方案的任务有哪些?
25.什么是逻辑覆盖测试法?它主要用于什么测试?
26.什么是等价划分法?它主要用于什么测试?
27.什么是边值分析法?它主要用于什么测试?
28.什么是错误推测法?它主要用于什么测试?
29.一个软件的测试策略应该是怎样的?
30.什么是调试?调试和测试有什么不同?
31.简单说明调试的方法和策略。
32.什么是软件的可靠性、可用性和正确性?
第七章维护。
1.什么是软件维护?
2.软件维护有哪几种类型?
3.为什么说软件文档维护和**维护同样重要?
4.为什么说维护的代价很高?应该怎样做才能降低维护的代价?
5.导致维护成本高企的原因主要有哪些?
6.什么是软件的可维护性?
7.如何提高软件的可维护性?
8.维护报告的主要内容有哪些?
9.为什么说文档是影响软件可维护性的决定因素?
10.什么是软件的系统文档?
11.什么是软件的用户文档?
12.什么是可重用性?如何通过提高软件的可重用性来提高软件的可维护性?
13.为什么要进行软件可维护性复审?
14.什么是软件的逆向工程和再工程?
15.逆向工程与再工程与软件的预防性维护有什么样的关系?
16.假设你的任务是对一个已有软件进行重大修改,而且只允许你从以下文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(b)源程序清单(其中有适当数量的注解)。
你将选取哪两份文档?为什么这样选取?你打算如何完成这个任务?
17.分析**在第二章习题17的储蓄系统交付使用后,用户可能提出哪些改进或扩充功能的要求。如果由你来开发该系统,你在设计时会采取哪些措施,以方便交付后的修改?
第八章面向对象方法学引论。
1.为什么要引入面向对象方法学?
2.面向对象方法学有哪4个基本要素?
3.面向对象方法学的优点主要有哪些?
4.什么是“对象”?它与传统数据有何不同?
5.什么是“类”?
6.什么是“继承”?
7.什么是模型?软件开发为什么要建立模型?
8.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?
9.什么是动态模型?建立动态模型时主要使用哪些图形符号?这些符号的含义是什么?
10.什么是功能模型?建立功能模型时主要使用哪些图形符号?
11.试用面向对象的观点分析、研究第二章习题17的储蓄系统的例子。在这个例子中,有哪些类?试建立它的对象模型。
第九章面向对象分析。
1.进行面向对象分析的基本过程是怎么样的?
2.建立对象模型有哪几个步骤?
3.复杂问题的对象模型有哪5个层次?
4.建立动态模型的步骤有哪些?
5.如何建立功能模型?
6.用面向对象方法分析第二章习题17中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
第十章面向对象设计。
1.面向对象设计应该遵循哪些准则?简述每条准则的内容,并说明遵循该条准则的必要性。
2.简述有助于提高面向对象设计质量的每条主要启发式规则的内容和必要性。
3.为什么说类构件是目前较为理想的可重用软构件?它有哪些重用方式?
4.什么是继承耦合?
5.如何计算软件重用带来的净成本节省?
6.试用面向对象的方法设计第二章习题17中描述的储蓄系统。
软件工程基础离线作业
浙江大学远程教育学院。软件工程基础 课程作业。第一章概述。1 什么是软件危机,它有哪些典型表现?答 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。概括地说,软件危机包含下述两方面的问题 如何...
2019软件工程作业题目
软件工程期末大作业说明。按照软件工程的基本原理,实施下述项目。提交以下内容 1 软件需求规格说明 2 软件 结构 设计说明 3 编码实现 4 软件测试报告。提倡团队精神和团队合作,鼓励组成项目小组 每组5 6人 小组提交的报告中必须严格注明各人自己的工作。评价给分按照个人的工作质量和数量确定。报告中...
软件工程大作业题目
1 英汉小词典。基本要求 实现类似 金山词霸 的英汉双向词典。输入英文,显示词性 解释 音标和衍生词等。输入中文,显示拼音和英文。同时显示单词的索引,无需输入,只需点击就可查询。高级要求 屏幕拾词。2 围棋。围棋是一种古老的运动,现在计算机大面积普及,围棋电子化也是一种大势所趋。围棋对弈 就是希望开...