北邮网研院研究生复试要看的软件工程试题
- 格式:doc
- 大小:60.00 KB
- 文档页数:15
北邮复试上机网研的题目第一题:查找输入数组长度n输入数组 a[1...n]输入查找个数m输入查找数字b[1...m]输出YES or NO 查找有则YES 否则NO如(括号内容为注释)输入:5(数组长度)1 52 4 3(数组)3(查找个数)2 5 6(查找具体数字)输出:YESYESNO#include <stdio.h>#include <stdlib.h>int main(){int n,m,i,j,a[2001]={0},b[2001]={0},flag=0;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);scanf("%d",&m);for(i=0;i<m;i++)scanf("%d",&b[i]);for(i=0;i<m;i++){for(j=0;j<n;j++){if(b[i]==a[j]){flag=1;printf("YES\n");break;}}if(flag!=1)printf("NO\n");flag=0;}// // system("PAUSE");return 0;}第二题:查找第K小数查找一个数组的第K小的数,注意同样大小算一样大如 2 1 3 4 5 2 第三小数为3如(括号内容为注释)输入:6(数组长度n)2 13 5 2 2(数组)3(K 即为第三小数)输出:3Code#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){int n,k,i,j,a[1001],temp,m=1;scanf("%d %d",&n,&k);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}for(i=0;i<n-1;i++)if((a[i]==a[i+1])&&(i<k))k++;printf("%d\n",a[k-1]);// system("PAUSE");return 0;∙}第三题:打牌牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌规则:出牌牌型有5种[1]一张如4 则5...9可压过[2]两张如44 则55,66,77,...,99可压过[3]三张如444 规则如[2][4]四张如4444 规则如[2][5]五张牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大压过输出YES 否则NO如(括号内容为注释)输入:12233445566677(手中牌)33(出牌)输出:YESProblem Id: 1820Submit time: 2010-04-25 20:28:36User_id: jyjyjy1989Memory:204K Time:19MSLanguage:G++ Result:Accepted∙Code∙#include<iostream>∙#include<string.h>∙using namespace std;∙∙int main(void)∙{∙char str1[100],str2[5];∙scanf("%s",str1);∙char ch;ch=getchar();∙scanf("%s",str2);∙int i=0;int count[10]={0};∙while(str1[i]!='\n')∙{∙if((str1[i]-'1')==0)count[0]++;∙else if((str1[i]-'1')==1)count[1]++; ∙else if((str1[i]-'1')==2)count[2]++; ∙else if((str1[i]-'1')==3)count[3]++; ∙else if((str1[i]-'1')==4)count[4]++; ∙else if((str1[i]-'1')==5)count[5]++; ∙else if((str1[i]-'1')==6)count[6]++; ∙else if((str1[i]-'1')==7)count[7]++; ∙else if((str1[i]-'1')==8)count[8]++; ∙else break;∙i++;∙}∙int s1,s2,s3,s4,s5;int flag=1;∙if(strlen(str2)==1)∙{s1=*str2-'1';∙for(;s1<9;s1++)∙if(count[s1+1]>0)∙{printf("YES\n",s1);flag=0;break;}∙}∙else if(strlen(str2)==2){s2=*str2-'1';for(;s2<9;s2++)if(co unt[s2+1]>=2){printf("YES\n",s2);flag=0;break;}}∙else if(strlen(str2)==3){s3=*str2-'1';for(;s3<9;s3++)if(co unt[s3+1]>=3){printf("YES\n");flag=0;break;}}∙else if(strlen(str2)==4){s4=*str2-'1';for(;s4<9;s4++)if(co unt[s4+1]>=4){printf("YES\n");flag=0;break;}}∙else if(strlen(str2)==5){s5=*str2-'1';for(;s5<9;s5++)if(co unt[s5+5]>0&&count[s5+1]>0&&count[s5+2]>0&&count[s5+3]>0&&count [s5+4]>0&&((s5+5)<9)){printf("YES\n");flag=0;break;}}∙if(flag==1)printf("NO\n");∙//system("PAUSE");∙return EXIT_SUCCESS;∙}第四题:树查找简单说就是一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY,具体描述得借助图形比较好,懒得写了,基本就是这个样子的。
北京邮电大学 2007 2008 学年第二学期一、单项选择题(共 10 题,每题 1 分,共 10 分)1、需求规格说明书的作用不包括( C )A .软件验收的依据B .用户与开发人员对软件要做什么的共同理解C .软件可行性研究的依据D .软件设计的依据2、软件结构图中, 模块框之间若有直线连接, 表示它们之间存在 ( A ) A 、调用关系 B 、组成关系 C 、链接关系 D 、顺序执行关系3、下面关于 DFD 中的加工的描述正确的是 ( C )A. 每个加工只能有一个输入流和一个输出流B. 每个加工最多有一个输入流,可以有多个输出流C. 每个加工至少有一个输入流和一个输出流D. 每个加工都是对输入流进行变换,得到输出流4、在基于数据库的信息管理系统中,数据库概念模型的设计对应于系:名姓软件工程》期末考试试题 A 卷:号序内班:号学:级10、用白盒测试法设计测试用例的方法包括( C )A .错误推测B .因果图C .基本路径测试D .边界值分析、判断题(共 10题,每题 1分,共 10 分)1. 软件是一种逻辑实体,由可执行代码构成。
( 错 )2. 用例模型是用来说明系统应该具备的功能描述。
( 对 )3.软件质量主要通过软件的功能测试来保证。
( 错 )统开发的( B )阶段。
A 、需求分析B 、概要设计C 、详细设计D 、 程序设计5、为了提高模块的独立性,模块之间最好是A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合 6、下列关于效率的说法不正确的是 A.( B )效率是一个性能要求,其目标应该在需求分析时给出B. 提高程序效率的根本途径在于采用高效的算法C. 效率主要指处理机时间和存储器容量两个方面D. 程序的效率与程序的算法有关 7、测试的关键问题是 ( D ) A. 如何组织对软件的评审 B. 如何验证程序的正确性 C. 如何采用综合策略D. 如何选择测试用例8、某企业的软件系统希望从 开发厂商为了满足企业的要求进行的维护属于A. 改正性维护 C. 完善性维护9、软件测试的目的是( Windows 平台移植到 Linux 平台上,软件(B )A.为了表明程序没有错误B. 适应性维护 D. 预防性维护)B.为了说明程序能正确地执行C.为了发现程序中的错误D. 为了评价程序的质量4. UML 中顺序图和协作图不仅能用来表示对象之间的动态行为,也能表示对象内部的状态变化。
1、说出软件工程的四项基本原则?选取适合的开发范型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理.2、请列出软件工程的生命周期的6个阶段?问题的定义及规划,需求分析,软件设计,程序编码,软件测试和运行维护.瀑布模型有以下优点:1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段.3)可在迭代模型中应用瀑布模型。
增量迭代应用于瀑布模型。
迭代1解决最大的问题.每次迭代产生一个可运行的版本,同时增加更多的功能。
每次迭代必须经过质量和集成测试.2、瀑布模型有以下缺点:1)在项目各个阶段之间极少有反馈。
2)只有在项目生命周期的后期才能看到结果.3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
1. Strings=newString(‘xyz’);请问产生几个StringObject?2. 软件工程可以分为几个阶段?请问各个阶段的作用是什么?3。
值类型与引用类型的区别?用C#事例说明?4。
编写一个冒泡排序的程序。
6 举例说明你所熟悉几种设计模式,说明各种模式在何种情况下使用?7 你如何理解委托,一般在什么情况下用?8 你做过的C/S结构程序中你用的是几层架构,为什么要用,各层间的关系是什么?9:请问此程序的输出结果:usingSystem;u1 非功能性需求:用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望,包括:(1) 性能需求:用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。
(2) 可靠性需求:用户在软件失效的频率、严重程度、易恢复性,以及故障可预测性等方面的要求。
(3) 易用性需求:用户在界面的易用性、美观性,以及对面向用户的文档和培训资料等方面的要求。
(4) 安全性需求:用户在身份认证、授权控制、私密性等方面的要求.(4)运行环境约束:用户对软件系统运行环境的要求。
(5)外部接口:用户对待开发软件系统与其他软件系统或硬件设备之间的接口的要求。
北京邮电大学2020年硕士研究生招生考试试题考试科目:807软件工程专业综合请考生注意:(1)所有答案(包括选择题和填空题)一律写在答题纸上,否则不计成绩。
(2)允许使用计算器。
(3)本考题包括数据结构,操作系统,数据库三个科目。
其中数据结构为必选。
操作系统与数据库为二选一,考生需选择其中一个科目答题并且注明所选科目的名称。
必选科目数据结构(90分)一、选择题(每小题2分,共20分)1.考虑下面的程序段void running (int n)int j = 0; int k = O;w h ile (j < n) { k = k+ 1; j = j + k;此段代码的时间复杂度为A.O(logn)B.0 (n112)C.0 (n)D.0 (n2)2.设T是高度为h的平衡二叉树(又称A VL树),并且是高度为h的包含节点最少的平衡二叉树,则T包含节点数目的数量级是?A. 1. 41421 hB. 1. 61803hC.2. 71828hD. 3. 14159h3.循环单链表的主要优点是A.不再需要头节点指针B.从表的任一节点出发都能够遍历整个链表C.已知某个节点位置后能够容易找他其前趋D.在进行插入删除操作时能够保证链表不断开4.将n阶对称矩阵A=[a j,k](O<=j, k<n)的上三角元素按行优先压缩存储在数组b[O, N)中,则矩阵元素a j,k(j<=k)在数组中对应的位置是A. b U*n-j* (j—1) /2 + k]B.b U* (j-1) /2 + k]C.b[j*n-j*(j+l)/2 + k-1]D.b[j*(j+l)/2 +k-1]5.对快速排序算法较为不利的情况是A.数据量太大B.数据基本有序C.数据中包含太多的相同键值D.数据量为奇数6.n个节点的二叉树大约有多少个不同的形状?A.3. 14159"B.2"C.2. 71828"D.4"7.在采用线性探测处理冲突的散列表上作查找操作。
第1篇一、软件工程基础1. 请简述软件工程的概念及其重要性。
2. 软件工程的发展经历了哪些阶段?3. 软件生命周期包括哪些阶段?4. 什么是软件危机?其产生的原因有哪些?5. 软件工程的基本原则有哪些?6. 什么是软件需求分析?其主要任务是什么?7. 软件设计的基本原则有哪些?8. 什么是软件测试?其主要任务是什么?9. 软件维护的类型有哪些?10. 请简述软件工程中的项目管理方法。
二、软件需求分析1. 什么是需求规格说明书?其主要内容有哪些?2. 需求分析的方法有哪些?3. 如何进行需求获取?4. 什么是用例?如何编写用例?5. 什么是用户故事?如何编写用户故事?6. 什么是需求变更管理?如何处理需求变更?7. 请简述软件需求分析中的风险评估。
8. 如何进行需求验证?三、软件设计1. 软件设计的基本原则有哪些?2. 什么是面向对象设计?请简述面向对象设计的三个基本要素。
3. 请简述软件设计中的模块化设计。
4. 什么是设计模式?请举例说明几种常见的设计模式。
5. 如何进行软件设计中的数据结构设计?6. 什么是接口设计?请简述接口设计的原则。
7. 请简述软件设计中的架构设计。
8. 如何进行软件设计中的安全性设计?四、软件测试1. 软件测试的目的有哪些?2. 软件测试的分类有哪些?3. 什么是黑盒测试?什么是白盒测试?4. 请简述软件测试的方法。
5. 什么是测试用例?如何设计测试用例?6. 什么是自动化测试?请简述自动化测试的优势。
7. 如何进行软件测试中的缺陷管理?8. 请简述软件测试中的回归测试。
五、软件维护1. 软件维护的类型有哪些?2. 软件维护的基本原则有哪些?3. 如何进行软件维护中的需求变更管理?4. 请简述软件维护中的版本控制。
5. 如何进行软件维护中的配置管理?6. 请简述软件维护中的变更管理。
7. 如何进行软件维护中的风险管理?六、项目管理1. 什么是项目管理?请简述项目管理的五大过程组。
软件工程考研复试计算机机试编程题经典50题(含解析和答案)软件工程考研复试计算机编程题经典50题含解析和答案【题目1】一个偶数总能表示为两个素数之和。
//由于用除sqrt(n)的方法求出的素数不包括2和3,//因此在判断是否是素数程序中人为添加了一个3。
import java.util.*;public class lianxi44 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n,i;do{System.out.print("请输入一个大于等于6的偶数:");n = s.nextInt();} while(n<6||n%2!=0); //判断输入是否是>=6偶数,不是,重新输入fun fc = new fun();for(i=2;i<=n/2;i++){if((fc.fun(i))==1&&(fc.fun(n-i)==1)){int j=n-i;System.out.println(n+" = "+i+" + "+j);} //输出所有可能的素数对}}}class fun{public int fun (int a) //判断是否是素数的函数{int i,flag=0;if(a==3){flag=1;return(flag);}for(i=2;i<=Math.sqrt(a);i++){if(a%i==0) {flag=0;break;}else flag=1;}return (flag) ;//不是素数,返回0,是素数,返回1}}//解法二import java.util.*;public class lianxi44 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n;do{System.out.print("请输入一个大于等于6的偶数:");n = s.nextInt();} while(n<6||n%2!=0); //判断输入是否是>=6偶数,不是,重新输入for(int i=3;i<=n/2;i+=2){if(fun(i)&&fun(n-i)) {System.out.println(n+" = "+i+" + "+(n-i));} //输出所有可能的素数对}}static boolean fun (int a){ //判断是否是素数的函数boolean flag=false;if(a==3){flag=true;return(flag);}for(int i=2;i<=Math.sqrt(a);i++){if(a%i==0) {flag=false;break;}else flag=true;}return (flag) ;}}【题目2】判断101-200之间有多少个素数,并输出所有素数。
北京邮电大学2019年硕士研究生招生考试试题考试科目:软件工程专业综合请考生注意:(1)所有答案(包括选择题和填空题)一律写在答题纸上,否则不计成绩。
(2)允许使用计算器。
(3)本考题包括数据结构,操作系统,数据库三个科目。
其中数据结构为必选部分。
操作系统,数据库为二选一,考生只需选择其中一个科目答题即可。
考生需在答题纸上标明选答科目的名称。
必选科目数据结构部分(90分)一、选择题(每小题2分,共20分)1.考虑下面程序段:void power(int m,int n){ //前提:n>=0int result=1;while(n>1)if(n为偶数){m=m*m;n=n/2;}else{result=result*m;n=n-1;}return result;}则调用power(m,n)的时间复杂度是:A.O(n)B.O(n logn)C.o(logn)D.O(n2)2.下面是对有序数组进行二分查找程序的教学版。
bool search(T a[ ],int n,T key){ //n:数组a的长度。
前提:n>=0,T是某种数据类型if(n<=0)return false;int mid=n/2;if(a[mid]==key)return true;if(almid]<key)return search(a,mid,key);else return search(a+mid+1,n-mid-1,key);}考虑函数调用search(a,n,key);下面三个命题中哪些是正确的?(1)成功查找的键值比较次数的时间复杂度是O(logn)。
(2)不成功查找的键值比较次数的时间复杂度是O(logn)。
(3)若键值x,y均不在数组中,则查找他们所执行的键值比较次数相A.(1),(2),(3)全部正确B.仅(1),(2)正确C.仅(1),(3)正确D.仅(2),(3)正确3.n个结点的简单有向图最多有多少条弧边?4.以下哪个函数是O(n3)?A.n3log(n)+n3B.n3+log(n)C.3nD.n3log(n3)5.将键值个数分别为m,n的两个有序表归并为一个大的有序表最多需要多少次键值比较?A.min(m,n)B.m+n-1C.max(m,n)D.m+n6.假设队列是用循环单链表存储,队列的长度是n,头指针是front,尾指针rear 指向队列的最后一个元素所在的结点,指针x指向的结点包含的元素需要入队,需要下面的那个选项的入队操作序列?A.front=x;front=front->next;B.x->next=front->next;front=x;C.rear->next=x;rear=x;D.rear->next=x;x->next=null;rear=x;7.具有n(n>0)个结点的完全二叉树的高度为(假设只有一个结点的二叉树的高度为0)。
软件工程试题一2008年06月11日星期三 17:48一、名名解释(20分,每小题2分)1. 软件工程2. 软件生存周期模型3. 数据流4. 模块5. 模块独立性6. 软件可靠性7. 软件配置项8. 原型9. 类10. 消息二、填空题(20分,每小题2分)1.软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
在软件开发技术中,主要研究、和。
2.维护的副作用有、、三种。
3.技术可行性一般要考虑的情况包括:、、。
4.在需求分析阶段要进行以下几方面的工作:问题识别、、。
5.软件设计是一个把转换为的过程,包括和。
6.在一个模块中,反映模块的外部特性,反映它的内部特性。
7.面向对象有三个基本要素。
它们是、、。
8.软件测试时需要三类信息:、和。
9.为开发一个特定项目选择程序设计语言时,必须从、、几方面考虑。
10。
测试用例应由和预期的两部分组成。
这样便于对照检查。
三、选择题(20分,每小题1分)1.进行需求分析可使用多种工具,但是不适用的。
A。
数据流图B。
判定表C。
PAD图D。
数据词典2.模块,则说明模块的独立性越强。
A。
耦合越强B。
扇入数越高C。
耦合越弱D。
扇入数越低3.数据处理问题的工作过程大臻分为三步,即取得数据、变换数据和给出数据。
A。
变换型B。
事务型C。
结构化D。
非结构化4.为了最乡里实现目标系统,必须设计出组成这个系统的所有程序和文件,通常分为两个阶段完成,即和过程设计。
A。
程序设计B。
结构设计C。
系统设计D。
详细设计5.面向数据流的设计方法把映射成软件结构。
A。
数据流B。
系统结构C。
控制结构D。
信息流6.Jackson方法是一种面向的方法。
A。
对象B。
数据结构C。
数据流D。
控制流7.模块的内部过程描述就是模块内部的,它的表达形式就是详细设计语言。
A。
模块化设计B。
算法设计C。
程序设计D。
详细设计8.软件的开发与维护划分为八个阶段,其中单元测试是在阶段完成的。
A。
概要设计B。
详细设计C。
编码D。
测试9.在结构测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(即分支覆盖)、路径覆盖等,其中是最强是覆盖准则。
A。
语句覆盖B。
条件覆盖C。
判定覆盖D。
路径覆盖10.在实现阶段要完成的工作之一是单元测试,单元测试国根据在阶段中的规格说明进行。
A。
可行性研究和计划B。
需求分析C。
概要设计D。
详细设计11.软件的可维护性、可使用性、是衡量软件质量的几个主要特性。
A。
可靠性B。
可复用性C。
可理解性D。
可修改性12.原型化方法是用户和设计者之间执行的一种交互过程,适用于系统。
A。
需求不确定性高的B。
需求确定的C。
管理信息D。
实时13.原型化方法是一种型的设计过程。
A。
自外向内B。
自顶向下C。
自内向外D。
自底向上14.功能模型中所有的往往形成一个层次结构。
在这个层次结构中一个数据流衅的过程可以由下一层的数据流图做进一步的说明。
A。
数据流图B。
概念模型图C。
状态迁移图D。
事件追踪图15.面向对象的主要特征除对象惟一性、封装、继承外,还有。
A。
多态性B。
完事性C。
可移植性D。
兼容性16.软件质量保证即为了确定、达到和需要的软件质量而进行的所有有计划、有系统的管理活动。
A。
测试B。
维护C。
质量D。
效率17.为了提高软件的质量和,软件质量保证的主要任务有:为争不重复劳动,掌握开发新软件的方法等八类任务。
A。
测试B。
维护C。
质量D。
效率18.在配置管理中,“检出”和“登入”处理实现了两个重要的变更控制要素,即和同步控制。
A。
异步控制B。
同步控制C。
基线控制D。
存取控制19.版本用来定义软件配置项的。
A。
演化阶段B。
环境C。
要求D。
软件工程过程20.支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统称为。
A。
软件工具B。
软件环境C。
软件过程D。
软件模型四、简答题(30分,每小题5分)1.软件工程目标和内容是什么?2.什么是结构化分析方法?该方法使用什么描述工具?3.结构化程序设计基本要点是什么?4.非渐增式测试与渐增式测试有什么区别?5.快速原型模型有几种?各有何特点?6.软件质量保证策略是什么?五、应用题(10分)一. 名词解释题1. 用科学知识和技术原理来定义,开发,维护软件的一门学科.2. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.3. 数据流是数据在系统内传播路径,因此由一组成分固定的数据项组成.4. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.6. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.7. 软件配是软件工程中产生的信息项,它是配置管理的基本单位.8. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.9. 具有相同或相似性质的对象的抽象就是类.10. 对象之间进行通信的构造叫做消息.二. 填空题1. 软件开发方法,软件开发过程,软件开发工具和环境2. 编码副作用,数据副作用,文档副作用3. 开发的风险,资源的有效性,技术4. 分析与综合,导出软件的逻辑模型,编写文档5. 软件需求,软件表示,概要设计,详细设计6. 功能,状态与接口,逻辑7. 抽象,封装性,共享性8. 软件配置,测试配置,测试工具9. 技术特性,工程特性,心理特性10. 输入数据,输出数据三. 选择题1. C2. C3. A4. B5. A6. B7. B8. C9. D10. B11. A12. A13. A14. A15. A16. B17. D18. D19. A20. A四. 简答题1. 答:软件工程的目的是成功地建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要软低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高.软件工程研究的主要内容是软件开发技术和软件开发管理两个方面.在软件开发技术中,主要研究软件开发方法,软件开发过程,软件开发工具和环境.在软件开发管理中,主要是研究软件管理学,软件经济,软件心理学等.2. 答:结构化分析(SA)是面向数据流进行需求分析的方法.是一种建模活动,该方法使用简单易读符号,根据软件内部数据传递,交换的关系,自顶向下逐层分解,描绘出满足功能要求的软件模型.结构化分析的主要思想是采取自顶向下逐层分解的分析策略,即面对一个复杂的问题析人员不可能一开始就考虑到问题所有方面以及全部细节,采取的策略往物主是分解,把一个复杂的问题分成若干小问题后再分别解决,将问题的复杂性降低到人可以掌握的程度.分解可分层进行,先考虑问题本质的方面,忽略细节,形成问题高层概念,然后再逐层添加细节,即在分层过程中采用不同程度的”抽象”级别,最高层的问题抽象,而低层的软为具体.结构化分析方法利用图形等半形式化的描术方式表达需求,简明易懂,用它们形成需求说明书中的主要部分.这些描述工具是:1) 数据流图2) 数据字典3) 描述加工逻辑的结构化语言,判定表,判定树.其中,”数据流图”描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等等.”数据字典”定义了数据流图中每一个图形元素.结构化训言,判定表或判定树则详细描述数据流图中不能被再分解的每一个加工.3. 答:结构化程序设计方法的基本要点有三点:1) 采用自顶向下,逐步求精的程序设计方法.在需求分析,概要设计中,都采用了自顶向下,逐导细化的方法.在详细设计中,虽然处于”具体”设计阶段,但在设计上模块内部处理过程中,仍可以逐步求精,降低处理细节的复杂程度.2) 使用三种基本控制结构构造程序.任何程序都可由顺序,选择,重复三种基本控制结构构造.这三种基本结构的共同点是单人口,单出口,不但能有效的限使用GOTOygk句,还创立了一种新的程序设计思想,方法和风格,同时为自顶向下,逐步求精的设计方法提供了具体的实施手段3) 主程序员组的组织形式.指开发程序的人员组织方式应采用由一个主程序员,一个后备程序员和一个程序管理员三人为核心,再加上一些专家和其他技术人员组成小组.这种组织形式突出了主程序员的领导,设计责任集中在少数人身上,有利于提高软件质量,并且能有效地提高软件生产率.结构化程序设计方法是综合应用这些手段来构造高质量程序的思想方法.4. 答:集成测试的方法主要有两种:非渐增式测试和渐增式测试.1) 非渐增式测试:首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试.2) 渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试.每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕.渐增式与非渐增式测试的方法有以下区别:1) 非渐增方式把单元测试和集成8测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试.而渐增式测试往往把单元测试与集成测试俣在一起,同时完成.2) 非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少.3) 渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现.4) 渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错.5) 渐增式比较彻底,已测试的模块和新的模块再测试.6) 渐增式占用的时间较多,但非渐增式需更多的驱动模块.桩模块也占用一些是境.7) 非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义.5. 答:原型模型又称快速原型模型,它是增量模型的另一种形式.它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作.根据原型的不同作用,有三类原型模型:1) 探索型原理.这种类型的原型是把原型用于开发的需求分析阶段,目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性.它主要针对开发目标模糊,用户与开发都对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求.2) 实验型原型.这种原型主要用于设计阶段,考核;实现方案是否合适,能否实陋.对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性.3) 演化型原型.这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统.它将原型的思想扩展到软件开发的全过程.6. 答:质量保证策略的发展大致以分为以下三个阶段:1) 以检测为重.产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量.2) 以过程管理为重.把质量保证工作重点放在过程管理上,对制造过程的每一道工序都进行质量控制.3) 以新产品开发为重.许多产品的质量问题源于新产品的开发设计阶段,因此在产品开发设计阶段就应采取有力措施来消灭由于设计原因而产生的质量隐患.由上可知,软件质量应从产品计划和设计开始,贯穿于投稿售后服务的软件生存期的每一阶段中的每一步骤软件工程试题二2008年06月11日星期三 17:49一、名词解释(20分,每小题2分)1.软件工程过程2.软件生存周3.数据字典4.模块化5.信息隐蔽6.基线7.桩模块8.软件可维护性9.对象10.继承性二、填空题(20分,每小题2分)1.是描述软件开发过程中各种活动如何搪行的模型。