软件开发的阶段试题_软件开发阶段包括哪几个阶段
刀豆文库小编猜你可能喜欢“软件开发阶段包括哪几个阶段”。
软件开发的阶段试题(精选9篇)由网友“poshly”投稿提供,以下是小编为大家汇总后的软件开发的阶段试题,希望对大家有所帮助。
篇1:软件开发的阶段试题
软件开发的阶段试题
{RAD(rap application development),就是软件开发过程中的一个重要模型,称为快速应用开发模型,其模型构图形似字母V,所以又称V模型。他通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。
V模型大体可以划分为下面几个不同的阶段步骤,既需求分析、概要设计、祥细设计、编码、单元测试、集成测试、系统测试、验收测试。}
⑴需求分析:明确客户需要,按需求写出规格文档说明书;
⑵概要设计:构建框架,描述模块功能及接口;
⑶祥细设计:设计模块的具体实现方式及模块的组合方式(把程序的具体实现的功能,现象等描述出来);
⑷编码:按照祥细设计好的模块功能表,编写出实际的代码;
①单元测试(模块测试):按照设定好的最小测试单元进行按单元测试,主要是测试程序代码;
②集成测试(也叫组装测试,联合测试):集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确;
③系统测试:是对已经集成好的软件系统进行彻底的测试,以验证软件系统的'正确性和性能等满足其指定的要求;
④验收测试:验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务,
篇2:软件开发笔试题
软件开发笔试题
笔试“软件开发”职位:
1.ISR,APC,DPC的定义
2.windows/linux下系统创建进程的步骤
3.xtoa函数,输入是两个整数,原数字,数制,输出是字符串
4.实现内存拷贝的C函数
5.比较两个二叉树结构是否一样
6.C++中volatile关键字的'作用
7.一个程序找错误
8.根据上述错误给程序员发邮件提出改进意见
9.最喜欢的一首唐诗,原因
10.当代最崇拜的人,原因
篇3:软件开发工程师笔试题
软件开发工程师笔试题
1、试分析下面的SQL语句的优劣,并用另外的方法实现,
(1) Select * from empe where e.No in (select a. No from amp a )
Select * from empe e where NOT EXISTS (Select a.No from amp a where e.NO=a.No)
(2) select * from emp e, anp a where e. No=a. No
2、用Decoole 重写下面的socl 语句
SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;
select count(*),sum(sal) from emp where dept_no = 0030 and ename like ‘smith%’;
select count(decode(dept_no,0020,’x',null)) d0020_count,
count(decode(dept_no,0030,’x',null)) d0030_count,
sum(decode(dept_no,0020,sal,0)) d0020_sal,
sum(decode(dept_no,0030,sal,0)) d0030_sal
from emp where ename like ‘smith%’;
3、下面哪几种SQL不好。2,4,5
(1) update 语句 (2)in语句 (3)子查询 (4)多查等值查询 (5)笛卡尔乘积
4、请造出下列哪3种命名正确 A,B,D
A、ASD B、$abc C、const D、_asd E、3_asd
5、texarea java (1)写出文件名 (2)补充代码
6、型转换
example:
public String getValue(Object a,Object b){}
当下列方法调用时将出现何种异常,如何修正
String c=new String(“aaa”);
int d =123;
my.getValue(c,d);
(1) Integer d=new Integer(123);
(2) My.getValue(c,(String)d);
7、在JSP上显示Araylist中的'元素
<%@ page contentType=”text/html; charset=GBK” %>
<%@ page import = “java.util.ArrayList”%>
<%
ArrayList al = request.getAttribute(“arraylist”);
%>
<%
for(int i=0;i {
%>
<%
}
%>
序号姓名<%=i%><%=al.get(i)%>8、解释
beam:远程接口的具体实现
Home:管理和创建远程对象
Romate:提供给用户的远程接口
9、解释Javabean与EJB的区别
10、SeSS’on bean与Entitybean区别
11、解释Commend、DAO模式,试举例说明。
Command定义
不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作,将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直接指向打开文档的代码,使用Command模式,就是在这两者之间增加一个中间者,将这种直接关系拗断,同时两者之间都隔离,基本没有关系了.
显然这样做的好处是符合封装的特性,降低耦合度,Command是将对行为进行封装的典型模式,Factory是将创建进行封装的模式,
从Command模式,我也发现设计模式一个”通病”:好象喜欢将简单的问题复杂化,
喜欢在不同类中增加第三者,当然这样做有利于代码的健壮性 可维护性 还有复用性.
如何使用
具体的Command模式代码各式各样,因为如何封装命令,不同系统,有不同的做法.下面事例是将命令封装在一个Collection的List中,任何对象一旦加入List中,实际上装入了一个封闭的黑盒中,对象的特性消失了,只有取出时,才有可能模糊的分辨出:
典型的Command模式需要有一个接口.接口中有一个统一的方法,这就是”将命令/请求封装为对象”:
程序代码:
public interface Command { public abstract void execute ( );}
//具体不同命令/请求代码是实现接口Command,下面有三个具体命令
程序代码:
public class Engineer implements Command {
public void execute( ) { //do Engineer’s command }
}
public class Programmer implements Command {
public void execute( ) { //do programmer’s command }
}
public class Politician implements Command {
public void execute( ) { //do Politician’s command }
}
按照通常做法,我们就可以直接调用这三个Command,但是使用Command模式,我们要将他们封装起来,扔到黑盒子List里去:
程序代码:
public class producer{
public static List produceRequests {
List queue = new ArrayList();
queue.add( new DomesticEngineer() );
queue.add( new Politician() );
queue.add( new Programmer() );
return queue; }
}
这三个命令进入List中后,已经失去了其外表特征,以后再取出,也可能无法分辨出谁是Engineer
谁是Programmer了,看下面如何调用Command模式:
程序代码:
public class TestCommand {
public static void main(String[] args) {
List queue = Producer.produceRequests();
for (Iterator it = queue.iterator(); it.hasNext(); )
//取出List中东东,其他特征都不能确定,只能保证一个特征是100%正确,// 他们至少是接口Command的”儿子”.所以强制转换类型为接口
Command((Command)it.next()).execute();
}
}
DAO:
由此可见,调用者基本只和接口打交道,不合具体实现交互,这也体现了一个原则,面向接口编程,这样,以后增加第四个具体命令时,就不必修改调用者TestCommand中的代码了.
篇4:银行软件开发笔试题
银行软件开发笔试题
一,单选,20道吧,涉及到软件可行性分析,需求分析,计算机基础知识,软件测试(黑白盒测试),数据结构(基本概念、线性表、链式存储等),SQL数据库的查询修改语句,ODBC,等等,具体题目记不清了。有点基础的童鞋,考前花半天时间再复习一下就可以了。没学过的,放弃吧,一星期也看不完。还有几道公务员的逻辑推理题,不是很难。
二。程序填空题,2大段C/C++的程序,每段程序挖5个空让你填,
一段是录入学生成绩和考试科目的(涉及到指针、链式存储等数据结构的知识),一段是数组排序的。10个空让填的基本上都是for语句的'循环条件啦、循环体啦,很晕,因为已设变量就有一堆,一大堆字母搞不清代表什么含义(个人编程水平不高)!~
三。大选择题,共有3篇,每篇都是一小短文,内设5道选择,类似英语的完形填空~对了,最后一篇很变态,居然是英文逻辑推理,句子都很简单,就是得好好想一下~
题型就是这样,一个小时的时间基本够用,但绝对不是太富裕,因为我那个考场30来个考生吧,没有提前交卷的。
篇5:JAVA软件开发笔试题
JAVA软件开发笔试题
对日java软件开发工程师笔试题
1:设int a=10, b=20, c=30;条件表达式a
A.5
B.10
C.20
D.30
2:对 do-whie 语言 错误 的说法是
A.可构成多重循环结构
B.循环次数不可能为 0
C.循环次数可能为 0
D.先执行后判断
3:调用函数时,若实参是一个数组名,则向函数对应的`形参传送的是
A.数组的长度
B.数组的首地址
C.数组第一个元素的值
D.整个数组元素的值
4:C语言中,″x3d″在内存中占用的字节数是
A.1
B.2
C.4
D.5
5:若定义了( )
union
{ char a[10];
short b[4][5];
long c[5];
}u;
篇6:群硕软件开发笔试题
群硕软件开发笔试题
软件开发类:
一:选择题
1. 一道简单switch语句考察,没有break的'话,应该顺序执行,所以结果应该为a=2,b=1;
2. having语句,(好像是查询分组吧,其他选项没仔细看,忘记了,)
3 .忘了 真不好意思
二:编程题
1.求最大公约数,语言不限。(很简单,直接法便能很顺利实现。)
2.1-2+3-4……n 求和,注意效率。(个人觉得只有两种情况,一种是N是偶数,另外一种是N是基数,然后直接返回结果即可。)
3.程序查错题:
void main{
char string[10],str1[10];
int i;
for(i=0;i<10;i++){
string='a';
}
strcpy(string,str1);
}
参:数组越界,
因为strcpy(dst,src),src还没初始化,所以越界。str1和string调换位置或者改为strncpy(string,str1,10)也能保证程序正常运行,但结果明显不是所需。
4.U2乐队演奏问题17分钟内赶到音乐会现场,4个人,过桥,必须要手电筒,耗时分别为1,2,5,10……@#*(@$*(&@($&(@&$(&*(#(*&*(#总之就这么个意思。
因为这道题目之前用C语言实现过一个。而且本身题目不难,还是很好解决的。首先时间相差差不多的一起过,1,2一起过,1送回,5,10再一起过,2送回,1,2再一起过,完成。总耗时2+1+10+2+2=17正好完成任务。
篇7:一套软件开发工程师笔试题
一套软件开发工程师笔试题
1、试分析下面的SQL语句的优劣,并用另外的方法实现,
(1) Select * from empe where e.No in (select a. No from amp a )
Select * from empe e where NOT EXISTS (Select a.No from amp a where e.NO=a.No)
(2) select * from emp e, anp a where e. No=a. No
2、用Decoole 重写下面的socl 语句
SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;
select count(*),sum(sal) from emp where dept_no = 0030 and ename like ‘smith%’;
select count(decode(dept_no,0020,’x',null)) d0020_count,
count(decode(dept_no,0030,’x',null)) d0030_count,
sum(decode(dept_no,0020,sal,0)) d0020_sal,
sum(decode(dept_no,0030,sal,0)) d0030_sal
from emp where ename like ‘smith%’;
3、下面哪几种SQL不好。2,4,5
(1) update 语句 (2)in语句 (3)子查询 (4)多查等值查询 (5)笛卡尔乘积
4、请造出下列哪3种命名正确 A,B,D
A、ASD B、$abc C、const D、_asd E、3_asd
5、texarea java (1)写出文件名 (2)补充代码
6、型转换
example:
public String getValue(Object a,Object b){}
当下列方法调用时将出现何种异常,如何修正
String c=new String(“aaa”);
int d =123;
my.getValue(c,d);
(1) Integer d=new Integer(123);
(2) My.getValue(c,(String)d);
7、在JSP上显示Araylist中的元素
序号 姓名
8、解释
beam:远程接口的具体实现
Home:管理和创建远程对象
Romate:提供给用户的远程接口
9、解释Javabean与EJB的区别
10、SeSS’on bean与Entitybean区别
11、解释Commend、DAO模式,试举例说明。
Command定义
不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作,将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直接指向打开文档的代码,使用Command模式,就是在这两者之间增加一个中间者,将这种直接关系拗断,同时两者之间都隔离,基本没有关系了.
显然这样做的好处是符合封装的特性,降低耦合度,Command是将对行为进行封装的典型模式,Factory是将创建进行封装的模式,
从Command模式,我也发现设计模式一个”通病”:好象喜欢将简单的问题复杂化,
喜欢在不同类中增加第三者,当然这样做有利于代码的健壮性 可维护性 还有复用性.
如何使用
具体的Command模式代码各式各样,因为如何封装命令,不同系统,有不同的做法.下面事例是将命令封装在一个Collection的List中,任何对象一旦加入List中,实际上装入了一个封闭的黑盒中,对象的特性消失了,只有取出时,才有可能模糊的分辨出:
典型的Command模式需要有一个接口.接口中有一个统一的方法,这就是”将命令/请求封装为对象”:
程序代码:
public interface Command { public abstract void execute ( );}
//具体不同命令/请求代码是实现接口Command,下面有三个具体命令
程序代码:
public class Engineer implements Command {
public void execute( ) { //do Engineer’s command }
}
public class Programmer implements Command {
public void execute( ) { //do programmer’s command }
}
public class Politician implements Command {
public void execute( ) { //do Politician’s command }
}
按照通常做法,我们就可以直接调用这三个Command,但是使用Command模式,我们要将他们封装起来,扔到黑盒子List里去:
程序代码:
public class producer{
public static List produceRequests() {
List queue = new ArrayList();
queue.add( new DomesticEngineer() );
queue.add( new Politician() );
queue.add( new Programmer() );
return queue; }
}
这三个命令进入List中后,已经失去了其外表特征,以后再取出,也可能无法分辨出谁是Engineer
谁是Programmer了,看下面如何调用Command模式:
程序代码:
public class TestCommand {
public static void main(String[] args) {
List queue = Producer.produceRequests();
for (Iterator it = queue.iterator(); it.hasNext(); )
//取出List中东东,其他特征都不能确定,只能保证一个特征是100%正确,// 他们至少是接口Command的”儿子”.所以强制转换类型为接口
Command((Command)it.next()).execute();
}
}
DAO:
由此可见,调用者基本只和接口打交道,不合具体实现交互,这也体现了一个原则,面向接口编程,这样,以后增加第四个具体命令时,就不必修改调用者TestCommand中的代码了.
12、谈一下对“保障软件质量”的理解。
有效的软件质量管理
一、引言
随着社会信息化水平的不断提高,信息行业急速膨胀,信息企业快速成长,随之带来的信息市场竞争激烈,企业为了求生存,满足客户要求则成为各行各业的首要责任。依赖于质量、成本和进度的客户满意度,质量则是重点支撑之一,这样要求我们对质量管理需要加强认识。我们都知道pmbok把项目管理划分为9个知识领域,即范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理。质量管理作为9大知识领域之一,可见其重要性。
质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。
二 质量管理责任分配
我们公司在开发项目上按照规范化软件的生产方式进行生产,在生产流程上采用ISO9000的标准进行。每个项目除配备了项目开发所需角色外,还专门配备了配置管理小组、测试小组和质量保证小组确保质量管理的实施,下面针对这三种角色进行说明:
1、配置管理小组职责
配置管理小组是保证项目开发完毕的同时,内部文档和外部文档都同时完成。内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提,从另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的前提。如上所述,配置管理小组还是保证质量保证小组得以发挥作用的基础。配置管理小组的主要职责包括: 完善各个部门发送需要存档和进行版本控制的代码、文档(包括外来文件)和阶段性成果; 对代码、文档等进行单向出入的控制; 对所有存档的文档进行版本控制; 提供文档规范,并传达到开发组中。
2、测试小组职责
测试小组作为质量控制的主要手段,负责软件的测试设计和执行工作。如同软件开发一样,测试在执行之前,同样需要进行测试计划和测试策略的设计,通常情况下测试可以分为如下几种类型,如:正确性测试、功能性测试、性能测试、安全测试和系统测试等。而这些测试均需要在测试计划和测试策略中进行描述用以指导测试小组成员进行测试用例编写和测试执行,
程序员在交给测试人员之前是进行过一定的单元测试,确保程序编译、运行正确。
测试人员根据详细设计的文档对软件要实现的功能进行一一测试,保证软件的执行正确的实现设计要求,在此也只证明了软件正确的反映了设计思想,但是否真正反映了用户的.需求仍需要进一步的功能性测试。
测试人员只有根据软件需求规格说明书所提及的功能进行检测,才能确保项目组开发的软件产品满足用户需求。在正确性测试完成之后,需要测试的是软件的性能,软件的性能在本项目中占有重要的地位,性能要求有可能改变软件的设计,为避免造成软件的后期返工,测试在性能上需要较大的侧重。如果有必要的话,测试小组还需要做安全测试,以确保系统使用安全可靠。
3、质量保证小组职责
质量保证小组作为质量保证的实施小组,主要职责是保证软件透明开发的主要环节。在项目开发的过程中几乎所有的部门都与质量保证小组有关。质量保证小组对项目经理提供项目进度与项目真正开发时的差异报告,提出差异原因和改进方法。
在项目进度被延滞或质量保证小组认为某阶段开发质量有问题时,提请项目经理、项目负责人等必要的相关人员举行质量会议。解决当前存在的和潜在的问题。质量保证是建立在文档的复审基础之上,因而文档版本的控制,特别是软件配置管理,直接影响软件质量保证的影响力和力度。质量保证小组的检测范围包括:系统分析人员是否正确的反映了用户的需求; 软件执行体是否正确的实现了分析人员的设计思想; 测试人员是否进行了较为彻底的和全面的测试; 配置管理员是否对文档的规范化进行的比较彻底,版本控制是否有效。
三 质量管理实施
有了良好的资源配备,又如何在项目全生命周期内实施质量保证,让我们从以下几个方面来看质量保证的实施过程:
1、项目进度的质量保证
项目进度是项目进行是否顺利的最直观表现。显然在项目开始之前,项目开发计划是必须的。如果项目开发计划的制定的是完全合理的,那项目进度也就真正表达了项目与最终的交付使用之间的距离,然而要制定完全合理的项目开发计划几乎不太可能。可见要保证项目进度,首先要保证项目开发计划尽可能合理。
项目计划的合理程度与项目计划制定者从事类似规模和类似业务的项目的经验有直接关系,通过经验往往能够预见潜在的阻碍,这样要求项目计划制定者需要集众人之力来完善计划。
当项目计划制定初期,由质量保证小组组织召开的项目计划评审会,邀请公司技术专家、用户以及项目组小组成员一起讨论项目计划的可行性,会议通常采用头脑风暴法,各抒己见,会后由指定的记录员形成质量记录,发送给相关人员,对其计划中不合理的地方进行修改完善,并由质量保证人员对其结果跟踪,以确保项目计划完整性、可行性,完善后的计划交由配置管理人员进行版本控制。
然而在计划实施过程中,计划不是“固定化”。常有人道,“计划赶不上变化”,但“要跟上变化”。项目计划以里程碑为界限,将整个开发周期划分为若干阶段。根据里程碑的完成情况,适当的调整每一个较小的阶段的任务量和完成的任务时间,这种方式非常有利于整个项目计划的动态调整。也利于项目质量保证的实施。
实际运作中,当质保小组发现计划实施的差异后,报告项目经理,由项目经理组织负责对计划进行周期性维护,对于已经变动的计划由质保小组协助配置管理小组完成版本控制。本公司已经开发湖南移动的集中客服系统,开发中的子项目多达六个,历时十个月,目前多数项目已经开发完毕,系统正在试运行阶段,项目金额数千万元。在这样的项目中,从管理者到开发人员到测试人员都积累了较为丰富的经验,特别是项目开发计划的制定,和项目进度的控制。
2、项目开发各阶段的质量保证
a、需求分析
需求分析是开发人员对系统需要做什么和如何做的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。
解决系统分析错误的方法我们公司通常采用邀请用户参与进行需求评定,然后对其用户的意见由质保成员跟踪检测是否纳入需求规格说明书,同时与用户签字确认形成需求基线,交由配置管理员放入配置管理库。
虽然尽早的邀请用户参与,仍然避免不了项目进行中用户的需求变更请求。对于开发过程存在的需求变动,我们要求用户填写变更申请单发送给项目配置管理员,在通过配置配置员转交质保小组,负责组织专家小组和项目组成员一起讨论实施变更的可行性及实施后所带来的影响,小的变更则直接记录入变更记录原因分析项和风险项栏,大的变更则需要形成正式的变更报告,无论那种变更都需要对相应的文档实施同步变更(包括需求规格说明书、详细设计文、安装手册、操作手册等)。但是对于无法实现或是变更会带来巨大的影响而将导致进度的延期,这时,我们将变更报告提交给用户或邀请用户进行协调会议,讨论变更取舍问题或是项目进度变更问题。
决定变更之后,由项目经理组织实施变更,测试人员检测变更结果,而质保小组成员监督变更实施过程并协助配置管理员对变更后的成果物进行版本控制。变更实施完后,上线前还需要指定人员协助用户一同测试并由用户签字后同意方可上线。
b、系统设计
优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,自然设计选型成为了系统设计首要的工作,究竟是采用哪种设计方法好呢?
对于设计选型不能一概而论,需要针对项目的结构、项目的特征和用户的需求来分析,同样也要考虑到参与项目小组成员的素质,如果其中大部分都没有从事过面向对象的设计且项目进对紧迫,这样没有多余的时间来培训小组成员来掌握面向对象的设计方法,尽管众所周知面向对象设计方法的优势,我们还是不如采用面向过程的方式(除用户指定开发设计方式外)可以减少项目承担的技术风险。
我们公司有过一个项目,用户指定需要采用面向对象分析、设计和开发,且开发周期短,在无赖的情况下,项目小组只能选用面向对象的软件开发过程,由于项目小组很少从事过面向对象的开发,经验缺乏,导致项目上马后项目进度延误,项目没有达到预期的效果。
针对此次开发,我们分析其原因,发现小组成员在开发过程中对于新技术互相交流少,各自有各自的理解和想法,造成理解上的不一致性,导致工作重复性高,滞后项目进度。建议解决方法是项目组成员采用集中办公,分块学习,学习的成果马上向项目相关人员发布,再由配置管理员对其发布的文档进行整理、规类放入配置库以供大家共享。这样方便大家的互相学习,减少重复的工作。在这次开发中我们公司从管理人员、设计人员到开发人员都汲取了很多教训,同时经过此次项目的开发,小组成员也积累了丰富的面向对象的开发经验。
除设计选型,还有一个容易被忽视的问题,就是公共类开发。公共类开发可以减少工作中的重复工作,降低开发成本。这要求我们再设计阶段通过对用户需求的仔细研究,尽可能的识别出公共类,并进行定义指定专人负责设计通知其它设计人员,以减少重复工作。对于项目组提供的设计文档,由质保小组组织技术专家、项目组设计人员、开发人员和测试人员对其设计文档的评审,检测设计文档对其下一阶段工作的可行性,及时发现设计中可能存在的错误,降低项目开发风险,同时确保设计文档能为开发人员、测试人员提供切实的指导。对于可复用的设计进行提取作为公共库设计和开发,提供项目组或整个公司重用。最后交由配置管理员进行设计文档的版本控制。
c、实现
实现也就是代码的生产过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。
d、文档管理
文档维护主要是配置管理小组的工作。文档从用途上分主要分为内部文档和外部文档。
内部文档包括: 项目开发计划; 需求分析; 体系结构设计说明; 详细设计说明; 构件索引; 构件成分说明; 构件接口及调用说明; 组件索引; 组件接口及调用说明; 类索引; 类属性及方法说明; 测试报告; 测试统计报告; 质量监督报告; 源代码; 文档分类版本索引; 软件安装打包文件。
外部文档主要包括: 软件安装手册; 软件操作手册; 在线帮助; 系统性能指标报告; 系统操作索引。
如何保证文档的全面性,使其真正为项目的进度提供保证,又不因为文档的写作而耽误项目的进度,这仍然是一个比较难解决的问题。解决此问题,其核心仍然是个”度”的问题。在本项目的开发中,配置管理小组的一个非常重要的任务还是书写文档规范和文档模板。当有文档模板后需要书写文档的人员只剩下”填空”的工作,从某种意义上讲,书写文档的速度会加快。如果书写文档的人员认为文档的更细致的部分可以由他人帮助完成,则该文档即交由他人完成,但此时文档并不算被正式提交,当他人书写完毕之后,必须由文档的初写者进行复审,复审通过后方可以正式提交,进入软件配置管理的循环中。
配置管理小组真正核心的工作是对文档的组织管理。根据文档的不同,文档的来源也不同,有些是通过质量保证小组经过复审之后转交给配置管理小组,有些则会直接从文档的出处到达配置管理小组。文档的管理是一个非常烦琐的工作,但是长远来看它不仅使项目的开发对单个主要人员的依赖减少,从而减少人员流动给项目的带来的风险,更重要的是在项目进行到后百分之十的时候起到拉动项目的作用。
从以往做大项目的经验来看,写作文档在项目开发的早期可能会使项目的进度比起不写文档要稍慢,但随着项目的进展,各个部门需要配合越来越多,开发者越来越需要知道其他人员的开发思路和开发过程,才能使自己的开发向前推进。一个明显的例子就是系统整合,或者某些环节是建立在其他环节完成的基础之上时,就更显现出文档交流的准确性和高效性。
3、系统维护质量保证
在我们公司,维护小组的任务一方面是保证对项目客户的跟踪服务,另一方面是确保该项目其它的开发人员从项目中尽快的解脱出来以便投入到下一个项目的开发中。所以通常项目维护小组成员主要由项目组的少部分开发人员承担完成。他们不仅了解软件的核心内容,而且与客户也不陌生,以便能够以最快的速度修正错误。对于一般性的错误,如操作不当等引起的问题,全部由维护小组执行完成,但需要用户测试确认上线。如果较大的修改则需要走变更控制流程,用户或者维护人员填写变更申请,经专家会议讨论分析可行方案在由维护小组实施,通过测试后方可提交用户。
维护小组的人员基本上是按项目跟进的。当一个项目刚刚交付用户时,在维护小组有较多的人员进行跟进,随软件的稳定,跟进的人逐步减少,并转移到其它项目中去。
13 3.给出一个MVC结果图,请简单用文字对他进行一次前后台交互的描述。(这个图你去找啦)
14 PowerDesigner
15 项目经验
16 三层结构的理解
篇8:腾讯软件开发类笔试题
腾讯软件开发类笔试题
一、不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)
01
已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)
A.CFHGEBDA
B.CDFEGHBA
C.FGHCDEBA
D.CFHGEDBA
02
下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)
A.有序数组
B.有序链表
C.AVL树
D.Hash表
03
下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)
A.快速排序
B.堆排序
C.归并排序
D.冒泡排序
04
初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)
A.8 3 2 5 1 6 4 7
B.3 2 8 5 1 4 6 7
C.3 8 2 5 1 6 7 4
D.8 2 3 5 1 4 7 6
05
当n=5时,下列函数的返回值是:(A)
int foo(int n)
{
if(n<2)return n;
return foo(n-1)+foo(n-2);
}
A.5
B.7
C.8
D.10
06
S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)
A.37.5%
B.32.5%
C.28.6%
D.26.1%
07
Unix系统中,哪些可以用于进程间的通信?(BCD)
A.Socket
B.共享内存
C.消息队列
D.信号量
08
静态变量通常存储在进程哪个区?(C)
A.栈区
B.堆区
C.全局区
D.代码区
09
查询性能(B)
A. 在Name字段上添加主键
B. 在Name字段上添加索引
C. 在Age字段上添加主键
D. 在Age字段上添加索引
10
IP地址131.153.12.71是一个(B)类IP地址,
A.A
B.B
C.C
D.D
11
下推自动识别机的语言是:(C)
A. 0型语言
B.1型语言
C.2型语言
D.3型语言
12
下列程序的输出是:(D)
#define add(a+b) a+b
int main
{
printf(“%d\\n”,5*add(3+4));
return 0;
}
A.23
B.35
C.16
D.19
13
浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)
A 找不到该页面
B 禁止访问
C 内部服务器访问
D 服务器繁忙
14
如果某系统15*4=112成立,则系统采用的是(A)进制。
A.6
B.7
C.8
D.9
15
某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的'编码:(A)
A a(000) b(001) h(01) i(10) o(11)
B a(0000) b(0001) h(001) o(01) i(1)
C a(000) b(001) h(01) i(10) o(00)
D a(0000) b(0001) h(001) o(000) i(1)
16
TCP和IP分别对应了OSI中的哪几层?(CD)
A Application layer
B Presentation layer
C Transport layer
D Network layer
17
一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)
A.EDCBA B.DECBA C.DCEAB D.ABCDE
18
同一进程下的线程可以共享以下?(BD)
A. stack
B.data section
C.register set
D.file fd
19
对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)
1:成员对象的构造函数
2:基类的构造函数
3:派生类本身的构造函数
A.123
B.231
C.321
D.213
20
如何减少换页错误?(BC)
A 进程倾向于占用CPU
B 访问局部性(locality of reference)满足进程要求
C 进程倾向于占用I/O
D 使用基于最短剩余时间(shortest remaining time)的调度机制
21
递归函数最终会结束,那么这个函数一定?(B)
A 使用了局部变量
B 有一个分支不调用自身
C 使用了全局变量或者使用了一个或多个参数
D 没有循环调用
22
编译过程中,语法分析器的任务是(B)
A分析单词是怎样构成的
B 分析单词串是如何构成语言和说明的
C 分析语句和说明是如何构成程序的
D 分析程序的结构
23
同步机制应该遵循哪些基本准则?(ABCD)
A.空闲让进
B.忙则等待
C.有限等待
D.让权等待
24
进程进入等待状态有哪几种方式?(D)
A CPU调度给优先级更高的线程
B 阻塞的线程获得资源或者信号
C 在时间片轮转的情况下,如果时间片到了
D 获得spinlock未果
25
设计模式中,属于结构型模式的有哪些?(BC)
A 状态模式
B 装饰模式
C 代理模式
D 观察者模式
二、填空题(共4题10个空,每空2分,共20 分)
26
设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW,
27
关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。
28
二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址分别为:_________,_________。
29
设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2,NL,NR、N0都是全局量,且在调用count(t)之前都置为0。
typedef struct node
{
int data;
struct node *lchild,*rchild;
}node;
int N2,NL,NR,N0;
void count(node *t)
{
if (t->lchild!=NULL)
if (t->rchild!=NULL) N2++;
else NL++;
else if (t->rchild!=NULL) NR++;
else N0++;
if(t->lchild!=NULL) count(t->lchild);
if(t->rchild!=NULL) count(t->rchild);
}/* call form :if(t!=NULL) count(t);*/
30
请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。
31
A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
篇9:软件开发类招聘笔试试题
试题一:基础知识
1、从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内,
假设某计算机具有1M 字节的内存(目前使用的计算机往往具有64M字节以上的内存),并按字节编址,为了能存取该内存各地址的内容,其地址寄存器至少需要二进制_A_位。为使4字节组成的字能从存储器中一次读出,要求存放在存储器中的字边界对齐,一个字的地址码应_B_。若存储周期为200NS,且每个周期可访问4个字节,则该存储器带宽为_C_BIT/S。假如程序员可用的存储空间为4M字节,则程序员所用的地址为_D_,而真正访问内存的地址称为_E_。
供选择的答案:
A: ①10 ②16 ③20 ④32
B: ①最低两位为00 ②最低两位为10 ③最高两位为00 ④最高两位为10
C: ①20M ②40M ③80M ④160M
D: ①有效地址 ②程序地址 ③逻辑地址 ④物理地址
E: ①指令 ②物理地址 ③内存地址 ④数据地址
2、从供选择的答案中。选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。
给定结点的关键字序列(F、B、J、G、E、A、I、D、C、H),对它按字母的字典顺序进行排列,采用不同方法,其最终结果相同。但中间结果是不同的。
Shell排序的第一趟扫描(步长为5)结果应为_A_。
冒泡排序(大数下沉)的第一趟起泡的效果是_B_3.
快速排序的第一趟结果是_C_。
二路归并排序的第一趟结局是 _D_。
供选择的答案
A:①(B、F、G、J、A、D、I、E、H、C)
②(B、F、G、J、A、E、D、I、C、H)
③(A、B、D、C、E、F、I、J、G、H)
④(C、B、D、A、E、F、I、G、J、H)
B:①(A、B、D、C、F、E、I、J、H、G)
②(A、B、D、C、E、F、I、H、G、J)
③(B、F、G、E、A、I、D、C、H、J)
④(B、F、G、J、A、E、D、I、C、H)
C:①(C、B、D、A、F、E、I、J、G、H)
②(C、B、D、A、E、F、I、G、J、H)
③(B、A、D、E、F、G、I、J、H、C)
④(B、C、D、A、E、F、I、J、G、H)
D:①(B、F、G、J、A、E、D、I、G、H)
②(B、A、D、E、F、G、I、J、H、C)
③(A、B、D、C、E、F、I、J、G、H)
④(A、B、D、C、F、E、J、I、H、C)
3、从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答.把相应编号写在答卷的对应栏内。
进程是操作系统中的一个重要概念。进程是一个具有一定独立功能的程序在某个数据集合上的一次_A2_,
进程是一个_B3_的概念,而程序是一个_C3_的概念。
进程的最基本状态有_D4_。在一个单处理机中,若有6个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有_E5_个。
供选择的答案
A:①单独操作 ②关联操作 ③运行活动 ④并发活动
B:①静态 ②动态 ③逻辑 ④物理
C:①物理 ②逻辑 ③动态 ④静态
D:①就绪、运行、隐蔽 ②停止、就绪、运行
③运行、就绪、阻塞 ④就绪、撤消、运行
E:①5 ②6 ③1 ④4
4、软件设计中划分模块的一个准则是_A2_。两个模块之间的耦合方式中,_B3_耦合的耦合度最高,_C4_耦合的耦合度最低。一个模块内部的内聚种类中_D4_内聚的内聚度最高,_E1_内聚的内聚度最低。
供选择的答案
A:①低内聚低耦合②低内聚高耦合③高内聚低耦合④高内聚高耦合
B:①数据 ②非直接 ③控制 ④内容
C:①数据 ②非直接 ③控制 ④内容
D:①偶然 ②逻辑 ③功能 ④过程
E:①偶然 ②逻辑 ③功能 ④过程
5、从供选择的答案中选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。
最常用的一种基本数据模型是关系数据模型,它用统一的_A 1_结构来表示实体及实体之间的联系。关系数据库的数据操作语言(DML)主要包括_B2_两类操作。
关系运算以关系代数为理论基础,关系代数的最基本操作是并、差、笛卡尔积、_C4_。用RO×OS 表示关系 R和关系 S的_D1_。
设关系R和关系S图示如下:
R: A B C S: B C D T: A B C D
则关系T是关系R和关系S_E _的结果。
供选择的答案
A:①树 ②网络 ③图 ④二维表
B:①插入和删除 ②检索和更新 ③查询和编辑 ④统计和修改
C:①投影、联接 ②联接、选择 ③选择、投影 ④交、选择
D:①联接 ②笛卡尔积 ③日联接 ④自然联接
E:①自然联接 ②θ联接 ③笛卡尔积 ④并
试题二:程序设计
用你所熟悉的任意一种程序语言,编写一个完整的过程,将一个字符串插入到另一个字符串的某个位置后面(例如:将“abc”插入到“abcdef”的第三个字符位置后面,结果为“abcabcdef”)。编写程序时,请在必要的地方加以注释(注:不能用该程序语言的内置函数或过程)。
用你所熟悉的任意一种程序语言,编写一个完整的过程,完成从一个给定的完整的文件路径(如“C:\\My Documents\\Software Test 1.00.doc”)中,析取文件名,扩展名和文件所处目录的功能,编写程序时,请在必要的地方加以注释(注:不能用该程序语言的内置函数或过程)。
试题三:综合
你认为在团队开发中,你能发挥自己的能力吗?为什么?当个人意见与主管出现矛盾时,你用什么方法解决?
软件生存周期各阶段文档软件生存周期各阶段文档文档可行性研需求总体 详细 系统 集成 确认 使用与究与计划分析设计 设计 实现 测试 测试 维护1 可行性研究报告YNNNNNNN2 项......
软件开发工程师试题每题5分,满分100分考试分数:1、用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。2、写一个“标准”宏MIN,这个宏输入连个参数并返回较......
天音通信软件开发工程师岗位笔试试题1、面向对象的思想主要包括什么?封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。继承:子类拥有父......
附件二:六西格玛绿带C阶段考试题库一、单项选择题LB1C0001.关于项目进度,下列何者思路上不周延而有风险? ( E )A、完成流程分析后,有机会找到项目相关的CTP、输入输出指标 B、完......
2007工程系列专业一、填空题:(每空1分,共10分)1、传输控制互联网信息包交换顺序信息交换包2、视频会议终端3、非归档模式4、sp_help5、详细设计6、指针类型7、继承性8、静态......
