软件工程2.docx
- 文档编号:12108209
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:21
- 大小:82.40KB
软件工程2.docx
《软件工程2.docx》由会员分享,可在线阅读,更多相关《软件工程2.docx(21页珍藏版)》请在冰点文库上搜索。
软件工程2
软件工程课程
考核说明与综合练习
第一部分考核说明
一、课程性质、目的与任务
《软件工程》课程是江苏电大开放教育专科计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。
根据培养基层应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为今后更深入地学习和从事软件工程实践打下良好的基础。
二、课程的考试要求
基本概念和基本知识:
软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。
基本技能:
能用软件工程的方法参与软件项目的分析、设计、实现和维护。
重点:
系统分析、系统设计、系统实现、系统维护。
难点:
需求分析、软件测试。
三、考试的层次及比例
考试大体上分为三个层次:
了解、理解和掌握。
了解即能正确判别有关概念和方法;理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用。
考试中的比例为:
了解10%~20%,理解为30%~50%,掌握50%左右。
四、考核形式
本课程采用平时作业与集中笔试考核相结合的方式,平时作业占总成绩的20%,由各个市电大教学班组织考核,江苏电大进行抽查。
大作业即实践性部分,作为平时成绩的一部分。
总分为100分占平时成绩的50%,占课程成绩的10%。
不做大作业者,不能参加笔试。
笔试由江苏电大根据教学大纲统一命题,占总成绩的80%。
笔试题型为:
填空题、名词解释题、简答叙述题(包括画图题)。
课程成绩=笔试(80分)+平时成绩(20分,包括四次作业10分,大作业10分)
(一)平时作业要求
第一次作业
教材第20页2468
第30页1
第二次作业
教材第57页2468
第99页147
第三次作业
教材第113页145
第177页3611
第四次作业
教材第196页1368
第245页8
第264页1
(二)实践性大作业要求
1.根据本门课程的学习,设计一个小型软件。
2.软件用来实现一定的功能,比如人事管理软件。
3.软件的设计按照软件工程的方法,各个阶段必须有相应文档记录,比如可行性分析报告,需求分析报告,详细设计要有流程图,编码有源代码(改进前后的)。
4.软件维护修改过程中,必须有文档记录修改原因,改进前后优缺点等内容。
5.软件不要求十分商业化,要求基本运行正确,无重大错误。
6.作业提交方式:
最好设计完成后采用安装程序打包,可以发行。
将设计好的软件(运行版本或安装版本)、要求的设计文档报告和源程序(各阶段分目录保存)保存在硬盘或刻成光盘供抽查。
(三)大作业考核方法
由于大作业比较复杂,各个学生的作业都不会完全相同,批改量远远超过一般试卷,所以全省统一批改有很大困难。
目前由各个市校批改,所有作业一律保留,省校将在适当时候进行抽查,大作业得分(满分100分)低于50分者不能参加考试;参加考试者如果抽查不合格,需补(重)做,否则考试成绩取消,该门课程成绩为不及格。
(四)大作业评分方法
1.完全或几乎相同者,扣50分。
2.作业6所规定提交内容三项缺一项未完成者扣50分。
3.软件运行有重大错误者扣去25以上。
4.软件功能明显过分简单,核心代码行数少于500行,扣去25分以上。
5.软件能够基本运行,设计各阶段报告文档不够全面视情况扣去15~20分(如无流程图,软件维护改进报告文档扣20分)。
源程序文档不全面扣去5~10分。
6.源程序不全,没有改进前后的全部源程序扣去5~10分。
7.软件用安装程序打包发行,如果以上1~4条没有扣分可以加10分,总分不得超过100分。
第二部分考试主要内容和要求
一、软件工程概述
【考试内容】
1.软件
软件的发展、软件的定义、软件的特点、软件的种类。
2.软件工程的概念
软件危机与软件工程的定义、软件工程的目标,软件工程的原则。
3.软件生存周期与软件开发模型
瀑布模型、原型模型、螺旋模型、基于四代技术模型、面向对象与组件模型、混合模型。
【考试要求】
掌握:
软件和软件工程的基本概念。
了解:
软件生命周期及软件开发的各个模型。
二、可行性分析
【考试内容】
1.可行性研究的任务
2.可行性研究的步骤
3.系统流程图
4.成本/效益分析
【考试要求】
了解:
可行性分析的步骤。
三、需求分析
【考试内容】
1.需求分析的任务与步骤
需求分析的任务、需求分析的步骤、需求分析的原则2.需求分析方法
·面向数据流的分析方法
基本符号、基于数据流的分析方法、数据字典。
·面向数据结构的分析方法
Jackson系统开发方法、Warnier-Orr方法。
3.需求规格说明与评审
【考试要求】
掌握:
需求分析的方法。
了解:
需求分析的任务和原则。
四、概要设计
【考试内容】
1.概要设计的任务与步骤
概要设计的任务、概要设计的步骤。
2.软件设计的概念与原则
模块化、抽象、信息隐藏和局部化、模块独立性、结构设计的评价原则。
3.概要设计的方法
·面向数据流的设计方法
基本概念、变换分析、事务分析、设计优化原则。
·面向数据结构的设计方法
Jackson方法、Warnier-Orr方法。
4.概要设计文档与评审
【考试要求】
掌握:
软件设计的概念与原则,概要设计的步骤、方法。
了解:
概要设计文档与评审。
五、详细设计
【考试内容】
1.详细设计的任务与原则
详细设计的任务、详细设计的原则。
2.详细设计的方法
程序流程图PFC、N-S图、PAD图、HIPO图。
过程设计语言PDL、详细设计方法的选择。
3.详细设计规格说明与评审
【考试要求】
掌握:
详细设计方法。
了解:
详细设计规格说明与评审。
六、面向对象的分析与设计方法
【考试内容】
1.面向对象方法的基本概念和特征
2.面向对象分析
确定对象、确定属性、定义操作、对象间通信。
3.面向对象设计
面向对象设计概念、面向对象设计方法、程序构件及接口、细节设计。
4.UML方法
UML的发展与特点、UML的表示法、UML的开发步骤。
5.面向对象实例分析与设计
建立用例、确定表、设计对象的交互作用、指定联系、寻找继承、分析对象行为、设计系统的体系结构。
【考试要求】
1.掌握:
面向对象的基本概念和特征。
2.了解:
面向对象分析与设计方法及UML的开发方法。
七、编码
【考试内容】
1.程序设计语言
程序设计语言分类、程序设计语言特点、程序设计语言选择。
2.编程风格
3.编程效率
4.编程安全
5.面向对象编程技术
【考试要求】
1.掌握:
一般的编码原则。
2.了解:
面向对象编程的特点。
八、软件质量与质量保证
【考试内容】
1.软件质量的定义
2.影响软件质量的因素
3.软件质量保证策略
4.软件质量保证活动
5.软件质量保证标准
6.软件评审
7.结构化的软件测试
·软件测试的概念和原则
测试的概念、测试的原则、测试的方法。
·软件测试技术
白盒测试、黑盒测试。
·软件测试的步骤
软件测试过程、软件测试步骤、单元测试、综合测试、确认测试、系统测试。
·纠错技术
8.面向对象的软件测试
·面向对象分析和面向对象设计的模型测试
面向对象分析和面向对象设计模型的正确性、面向对象分析和面向对象设计模型的一致性。
·面向对象的测试策略
面向对象的单元测试、面向对象的组装测试、面向对象的确认测试。
·面向对象软件测试用例设计
测试用例设计蕴涵面向对象的概念、传统测试用例设计方法的适用性、基于故障的测试、面向对象编程对测试的影响、测试用例与类的分层、基于脚本的测试设计、测试外部结构和内部结构。
·可用于类层次上的测试方法
面向对象类的随即测试、类层次的分割测试。
·类间测试用例设计
多重类测试、按行为模型导出的测试。
9.软件测试计划与测试分析报告
10.软件维护
软件维护的定义、分类、特点、软件维护步骤及组织、软件的可维护性、软件维护的副作用、逆向工程和再生工程。
【考试要求】
1.了解:
软件质量保证的概念、策略和方法,软件评审或测试的方法和步骤。
2.了解:
软件维护过程。
九、项目计划与管理
【考试内容】
1.软件项目特点、管理的特殊性及软件管理功能
2.确定项目的工作要求
3.确定软硬件资源
4.人员的计划及组织
5.成本估算及控制
6.进度计划
7.软件配置管理
8.软件管理方案
【考试要求】
了解:
项目计划与管理的基本内容。
第三部分考试主要知识点
1.软件的发展、定义、特点、种类
2.软件危机
3.软件开发模型
4.软件生存周期
5.系统流程图
6.可行性研究(目的任务、研究方面、注意点)
7.需求分析的步骤
8.需求分析(目的任务、原则)
9.模块化、抽象
10.结构化分析方法
11.软件设计的概念与原则
12.数据域、数据流图、数据字典
13.详细设计方法
14.内聚、偶合
15.PAD、NS图
16.详细设计(目的,原则)
17.JACKSON、WARNIER图
18.面向对象的概念(类、属性、方法、对象、继承、封装)
19.概要设计(任务)
20.程序效率、注释
21.程序流程图、NS图
第四部分综合练习
(含参考答案)
一、填空题
1.软件是一种产品,同时又是开发和运行产品的载体。
2.软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
3.软件危机包括下面两方面的问题:
如何开发软件,满足对软件的日益增长的需求和如何维护数量不断膨胀的已有软件。
4.软件工程学的内容可包括:
理论、结构、方法、工具、环境、管理、规范等。
(全部加下划线表示考查其中某1-2个空,下同)
5.软件生存周期一般可分为以下阶段:
问题定义、可行性研究、需求分析、设计、编码、测试、运行与维护。
6.软件生存周期也可分为三个大阶段:
计划阶段、开发阶段、维护阶段。
7.可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。
8.可行性研究的目的不是解决问题,而是确定问题是否值得去解决。
9.一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性、开发可行性等方面研究可行性。
10.只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明。
11.需求分析的基本任务是准确的回答系统必须做什么这个问题。
12.需求分析所要做的工作是深入描述软件的功能和性能。
13.需求分析阶段研究的对象是软件项目的用户要求。
14.需求分析结束时交出的文档中应该包括详细的数据流图DFD,数据字典DD,一组简明的算法描述。
15.对系统的综合需求主要有:
系统功能需求、系统性能需求、运行需求、将来可能提出的需求。
16.任何信息处理系统的基本功能都是把输入数据变成需要的输出信息。
17.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
18.数据域具有三种属性:
数据流、数据内容和数据结构。
19.数据流图是描述数据处理过程的工具。
20.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。
21.数据流图的特性有:
抽象性、概括性、层次性。
22.数据字典的作用是在软件分析和设计的过程中提供关于数据的描述信息。
23.数据流图和数据字典共同构成系统的逻辑模型。
24.必须从一致性、完整性、现实性、有效性等四个不同角度验证软件需求的正确性。
25.信息隐蔽原理是指每一个模块的实现细节对其它模块来说是隐蔽的。
26.耦合是对一个软件结构内各个模块之间互连程度的度量。
27.模块间耦合程度强弱的种类有:
非直接耦合、数据耦合、控制耦合、公共环境耦合、内容耦合、标记耦合、外部耦合。
28.内聚标志着一个模块内各个元素彼此结合的紧密程度。
29.Jackson图有三种逻辑数据结构:
顺序结构、选择结构、重复结构。
30.Warnier程序设计方法是一种面向数据结构的设计方法。
31.详细设计又称过程设计。
32.面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。
33.面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
34.面向对象的软件工程学方法是面向对象方法在软件工程领域的全面运用。
35.面向对象的软件工程学方法包括:
面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的软件维护等主要内容。
36.OO方法中把组成客观世界的实体称为问题空间的对象。
37.所谓的方法,它们实际上是类对象上的各种操作。
38.类有方法和数据集成,它是关于对象性质的描述,包括外部特性和内部实现两个方面。
39.UML即:
标准建模语言。
40.UML包括:
UML语义和UML表示法两个部分。
41.标准UML的重要内容可以由五类图来定义:
用例图、静态图、行为图、交互图、实现图。
42.所谓编码就是把软件设计的结果翻译成计算机可以理解的形式,即用某种程序设计语言书写的程序。
43.从应用特点看,高级语言可以分为基础语言、现代语言、专用语言三类。
44.程序的注释一般分为:
序言性注释和功能性注释。
45.程序效率是指程序的执行速度及程序占用的存储空间。
46.源程序的效率与详细设计阶段确定的(算法)的效率直接有关。
47.冗余是改善系统(可靠性)的一种重要技术。
48.防错程序设计可以分为主动式和被动式两种
49.按照测试过程是否在实际应用环境中来分,有静态分析和动态测试。
50.大型软件系统的测试基本上由下述四个步骤组成:
单元测试、集成测试、确认测试、系统测试。
51.在软件运行维护阶段对软件产品所进行的修改就是维护。
二、判断题
52.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,软件维护比硬件维护要复杂得多。
(对)
53.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
(对)
54.软件的开发至今尚未完全摆脱手工的开发方式。
(对)
55.软件的开发费用越来越高,成本相当昂贵。
(对)
56.软件的开发费用越来越低,但成本仍然相当昂贵。
(错)
57.在需求分析阶段,所有的用户要求都是合理的,必须满足。
(错)
58.在需求分析阶段,不是所有的用户要求都是合理的,没有必要全部满足。
(对)
59.任何一个软件系统本质上都是信息处理系统。
(对)
60.数据流图中可以带有控制流。
(错)
61.数据流图中不可以带有控制流。
(对)
62.模块是数据说明、可执行语句等程序对象的集合。
(对)
63.Jackson系统开发方法是一种典型的面向数据结构的分析设计方法。
(对)
64.Jackson系统开发方法是一种典型的面向对象的分析设计方法。
(错)
65.Warnier程序设计方法是一种面向数据结构的设计方法。
(对)
66.Warnier程序设计方法是一种面向对象的设计方法。
(错)
67.详细设计是编码的前奏。
(对)
68.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内的数据结构。
(对)
69.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量和机器执行的速度。
(错)
70.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量,但不影响机器执行程序的速度。
(对)
71.源程序的效率与详细设计阶段确定的算法的效率直接有关。
(对)
72.冗余是改善系统可靠性的一种重要技术。
(对)
73.冗余是改善系统速度的一种重要技术。
(错)
74.判定覆盖比语句覆盖强有效。
(对)
75.语句覆盖比判定覆盖强有效。
(错)
76.软件开发所需的资源可以画成一个金字塔,塔的最基本的资源是人。
(对)
三、简答分析题
77.软件的发展经过哪几个阶段?
程序设计阶段、程序系统阶段、软件工程阶段、第四阶段。
78.软件的定义是什么?
在运行中能够提供所希望的功能和性能的指令集(程序);使程序能够正确运行的数据结构;描述程序研制过程、方法所用的文档。
79.基于软件的功能,软件分为哪几种?
系统软件、支撑软件、应用软件。
80.基于软件的工作方式分,软件分为哪几种?
实时处理软件、分时软件、交互式软件、批处理软件。
81.基于软件的规模分,软件分为哪几种?
微型软件、小型软件、中型软件、大型软件、甚大型软件、极大型软件。
82.基于软件的服务对象的范围分,软件分为哪几种?
定制软件、产品软件。
83.软件危机包括哪两方面的问题?
(1)如何开发软件,满足对软件的日益增长的需求。
(2)如何维护数量不断膨胀的已有软件。
84.产生软件危机的原因是什么?
(1)软件是计算机系统中的逻辑部件而不是物理部件。
(2)软件本身独有的特点确实给开发和维护带来一些客观困难。
(3)开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求。
(4)软件管理技术不能满足现代软件开发的需要,没有统一的软件质量规范。
(5)在软件的开发与维护关系问题上存在错误的概念。
85.软件工程的原则是什么?
(1)分解。
(2)独立性。
(3)一致性。
(4)确定性。
86.软件开发模型有哪些?
(1)瀑布模型。
(2)螺旋模型。
(3)第四代技术模型。
(4)原型模型。
87.某图书馆闭架借书流程如下:
读者须先被验明证件后才能进入查询室。
读者在查询室内通过检书卡来查找自己所需的图书。
找到所需图书并填好索书单到服务台借书。
如果所借图书还有剩余,管理员将填好借书单,从库房中取出图书交于读者,否则读者借不了图书。
下图是上述系统的系统流程图,请填写空缺。
1:
验证2:
图书查询3:
检书卡4:
借书5:
取书
88.需求分析的原则是什么?
(1)必须能够表达和理解问题的数据域和功能域。
(2)自顶向下、逐层分解问题。
(3)要给出系统的逻辑视图和物理视图。
89.一家计算机公司的全部软件产品有系统软件和应用软件,其中系统软件有操作系统、编译程序和包括编辑程序、测试驱动程序、设计辅助工具等的软件工具三类。
请画出系统的Warnier图和层次方框图。
90.在概要设计中两个主要任务是什么?
(1)将系统划分成物理元素,即程序、文件、数据库、文档等等。
(2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成,模块间的相互关系。
91.概要设计的过程是怎样的?
(1)设计系统方案。
(2)选取一组合理的方案。
(3)推荐最佳实施方案。
(4)功能分解。
(5)软件结构设计。
(6)数据库设计、文件结构设计。
(7)制定测试计划。
(8)编写概要设计文档。
(9)审查与复审概要设计文档。
92.为何要强调模块的独立性?
(1)由于能够分割功能而且接口可以简化,具有独立的模块软件比较容易开发出来。
(2)修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够插入模块,使得独立的模块比较容易测试和维护。
93.如何改进软件设计、提高软件质量?
(1)提高模块的独立性。
(2)模块规模应该适中。
(3)适当选择深度、宽度、扇出和扇入。
(4)模块的作用域应该在控制域之内。
(5)力争降低模块接口的复杂程度。
(6)设计单入口单出口的模块。
(7)模块功能应该可以预测。
94.用Jackson图表示下面二维表格:
工人工资单
工号
姓名
性别
工龄
月工资
.
.
.
表头
表体
95.详细设计的原则是什么?
(1)模块的逻辑描述要清晰易读、正确可靠。
(2)采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。
(3)选择恰当描述工具来描述各模块算法。
96.写出下面伪码程序的程序流程图和N-S图
BEGIN
A
Ifx1then
Repeatuntilx2
Ifx3then
C
Else
D
Endif
Endrepeat
Else
E
H
Endif
I
END
97.将下面的程序流程图转换为N-S图。
98.什么是面向对象技术?
一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。
99.面向对象方法的基本思想是什么?
从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
100.面向对象的软件工程学方法包括哪些内容?
面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的软件维护等主要内容。
101.什么是对象?
对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。
102.什么是封装?
封装定义为:
(1)一个清楚的边界,所有的对象的内部软件的范围被限定在这个边界内。
(2)一个接口,这个接口描述这个对象和其他的对象之间相互的作用。
(3)受保护的内部实现。
103.栈是一种常见的数据结构,它的状态和服务如下:
状态
服务
空
半满
满
压入
可执行
可执行
不可执行
弹出
不可执行
可执行
可执行
请画出它的状态转换图。
104.标准UML的重要内容可以哪五类图来定义?
用例图、静态图、行为图、交互图、实现图。
105.什么是编码?
所谓编码就是把软件设计的结果翻译成计算机可以理解的形式,即用某种程序设计语言书写的程序。
106.要求进行软件维护的原因有哪些?
(1)改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷。
(2)因在软件使用过程中数据环境发生变化或处理环境发生变化,需要修改软件加以适应这种变化。
(3)用户和数据处理人员在使用时常提出改进现有功能,增加新的功能,以及改善总体性能的要求。
107.软件维护的步骤有哪些?
(1)分析和理解程序。
(2)修改程序。
(3)重新验证程序。
(4)维护组织。
108.软件管理的主要功能有哪些?
(1)制定计划。
(2)建立项目组织。
(3)配备人员。
(4)指导。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程