当前位置:文档之家› R软件期末考试复习提纲

R软件期末考试复习提纲

R软件期末考试复习提纲
R软件期末考试复习提纲

#期末考试专项复习

#一、矩阵与数据框

#1.生成特定的矩阵与数据框

#矩阵

#方法一

a=array(1:10,dim=c(2,5))

rownames(a)=1:2

colnames(a)=c("one","two","three","four","five")

a

dimnames(a)=list(1:2,c("one","two","three","four","five"))

nrow=nrow(a)

ncol=ncol(a)

dim(a)

#方法二

a=matrix(1:10,nrow=2,byrow=F)

rownames(a)=1:2

colnames(a)=c("one","two","three","four","five")

a=matrix(1:10,nrow=2,byrow=F,

dimnames=list(1:2,c("one","two","three","four","five"))

)

#数据框的生成

df=data.frame(

Name=c("Alice","Becka","James","Jeffrey","John"),

Sex=c("F","F","M","M","M"),

Age=c(13,13,12,13,12),

Height=c(56.5,65.3,57.3,62.5,59.0),

Weight=c(84.0,98.0,83.0,84.0,99.5)

);df

Lst=list(Name=c("Alice","Becka","James","Jeffrey","John"), Sex=c("F","F","M","M","M"),

Age=c(13,13,12,13,12),

Height=c(56.5,65.3,57.3,62.5,59.0),

Weight=c(84.0,98.0,83.0,84.0,99.5))

Lst

Lst[["Name"]]

Lst["Name"]

Lst[1]

Lst[[1]]

Lst$Name

df=as.data.frame(Lst)

df

x=array(1:6,dim=c(2,3))

as.data.frame(x)

#数据框的引用

df[1:2,3:5]

df[["Height"]]

df$Weight

names(df)#此属性一定非空

rownames(df)=c("one","two","three","four","five") df

attach(df)

r=Height/Weight

r

df$r=r

names(df)

detach()

r=Height/Weight

#2.矩阵的运算

a=diag(1:3)

a[2][1]=1

a

#1转置运算

t(a)

#2行列式

det(a)

#3向量积

x=1:5

y=2*1:5

x%*%y

t(x)%*%y

crossprod(x,y)

#4向量的外积

x%*%t(y)

tcrossprod(x,y)

outer(x,y)

x%o%y

#矩阵的乘法

a=array(1:9,dim=c(3,3)) b=array(9:1,dim=c(3,3)) x=1:3

a*b

a%*%b

x%*%a%*%x

crossprod(a,b)#t(a)%*%b tcrossprod(a,b)#a%*%t(b) #矩阵的逆

solve(a)

b=1:3

solve(a,b)#ax=b的解

#矩阵的特征值与特征向量sm=eigen(a)

sm

e=diag(1:3)

svde=svd(e)

svde

attach(svde)

u%*%diag(d)%*%t(v)

#与矩阵运算有关的函数#取维数

a=diag(1:4)

nrow(a)

ncol(a)

#矩阵的合并

x1=rbind(c(1,2),c(3,4))

x2=x1+10

x3=cbind(x1,x2)

x3

x4=rbind(x1,x2)

x4

cbind(1,x1)

#矩阵的拉直

a=matrix(1:6,ncol=2,

dimnames=list(c("one","two","three"),

c("first","second")),byrow=T)

as.vector(a)

#apply函数

apply(a,1,mean)

apply(a,2,sum)

tapply(1:5,factor(c("f","f","m","m","m")),mean) #第二题

#产生随机数

x=rnorm(100,0,1)

x

#画随机数的直方图

hist(x,freq=F)

#核密度曲线

density(x)

lines(density(x),col="blue")

#添加正态分布分布函数

y=seq(-4,3,0.2)

lines(y,dnorm(y,mean(x),sd(x)),col="red")

#画随机数的经验分布函数

z=rnorm(50,0,1)

plot(ecdf(z),do.p=F,verticals=T)

d=seq(-3,2,0.2)

lines(d,pnorm(d,mean(z),sd(z)),col="red")

y=rpois(100,2)

plot(ecdf(y),col="red",verticals=T,do.p=F)

x=0:8

lines(x,ppois(x,mean(y)),col="blue")

w=c(75,64,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0 ,56.9,50.0,72.0)

hist(w,freq=F)

lines(density(w),col="blue")

x=44:76

lines(x,dnorm(x,mean(w),sd(w)),col="red")

plot(ecdf(w),do.p=F,verticals=T)

lines(x,pnorm(x,mean(w),sd(w)),col="red")

#编写函数求随机数的各种描述统计量

data_outline=function(x){

n=length(x)

m=mean(x)

v=var(x)

s=sd(x)

me=median(x)

cv=100*s/m

css=sum((x-m)^2)

uss=sum(x^2)

R=max(x)-min(x)#样本极差

R1=quantile(x,3/4)-quantile(x,1/4)#四分位差

sm=s/sqrt(n)#样本标准误

g1=n/(n-1)/(n-2)*sum((x-m)^3)/s^3

g2=n*(n+1)/(n-1)/(n-2)/(n-3)*sum((x-m)^4)/s^4

-3*(n-1)^2/(n-2)/(n-3)

data.frame(N=n,Mean=m,Var=v,std_dev=s,

Median=me,std_mean=sm,CV=cv,CSS=css,USS=uss, R=R,R1=R1,Skewness=g1,Kurtosis=g2,https://www.doczj.com/doc/1d2363631.html,s=1) }

x=rnorm(100)

data_outline(x)

#第三题

#r,p,q,d

rnorm(100,0,1)

pnorm(1:5,0,1)

dnorm(-3:3,0,1)

qnorm(seq(0,1,0.25),0,1) rbeta(100,2,2)

rbinom(100,100,0.5) pbinom(1:100,100,0.5) dbinom(1:5,100,0.5) qbinom(seq(0,1,0.1),100,0.5) rchisq(100,1)

qchisq(seq(0,1,0.2),10) pchisq(1:10,10)

dchisq(1:10,10)

rexp(100,0.5)

rpois(100,2)

ppois(1:1000,2)

dpois(1:100,2)

runif(100,0,1)

qunif(c(0,0.2,0.8),0,1)

punif(seq(0,1,0.2),0,1)

dunif(seq(0,1,0.01),0,1)

rt(100,2)

qt(0.8,2)

pt(-3:3,2)

dt(-3:3,2)

rf(100,1,2)

qf(0.8,1,2)

#四置信区间

#1

#(1)sigma已知

interval_estimate1=function(x,side=0,sigma=1,alpha=0.05){ xb=mean(x);n=length(x)

if(side<0){

tmp=sigma/sqrt(n)*qnorm(1-alpha)

a=-Inf;b=xb+tmp

}

else if(side>0){

tmp=sigma/sqrt(n)*qnorm(1-alpha)

a=xb-tmp;b=Inf}

else{

tmp=sigma/sqrt(n)*qnorm(1-alpha/2)

a=xb-tmp;b=xb+tmp}

data.frame(mean=xb,a=a,b=b)

}

x=rnorm(100,0,4)

interval_estimate1(x,sigma=4,side=0)

interval_estimate1(x,sigma=4,side=-1)

interval_estimate1(x,sigma=4,side=1)

#(2)sigma未知

interval_estimate2=function(x,side=0,alpha=0.05){ xb=mean(x);n=length(x)

if(side<0){

tmp=sd(x)/sqrt(n)*qt(1-alpha,n-1)

a=-Inf;b=xb+tmp

}

else if(side>0){

tmp=sd(x)/sqrt(n)*qt(1-alpha,n-1)

a=xb-tmp;b=Inf

}

else{

tmp=sd(x)/sqrt(n)*qt(1-alpha/2,n-1)

a=xb-tmp;b=xb+tmp

}

data.frame(mean=xb,a=a,b=b)

}

x=rnorm(100,0,1)

interval_estimate2(x,side=-1)

interval_estimate2(x,side=0)

interval_estimate2(x,side=1)

t.test(x,side=-1)

t.test(x,side=0)

t.test(x,side=1)

#两个总体sigma1=sigma2但未知

interval_estimate3=function(x,y,alpha=0.05){

xb=mean(x);yb=mean(y)

n1=length(x);n2=length(y)

sw=((n1-1)*var(x)+(n2-1)*var(y))/(n1+n1-2)

tmp=sqrt((1/n1+1/n2)*sw)*qt(1-alpha/2,n1+n2-2) a=xb-yb-tmp;b=xb-yb+tmp

data.frame(mean=xb-yb,a=a,b=b)

}

x=rnorm(100,0,1)

y=rnorm(100,1,1)

interval_estimate3(x,y)

-0.03643479 - 0.98699097

#第五题假设检验

#(1)sigam已知,双侧,检验mu=mu0 mean.test1=function(x,mu=0,sigma=1){ xb=mean(x);n=length(x)

z=(xb-mu)/sigma*sqrt(n)

p=pnorm(z)

if(p<=1/2)

P=2*p

else

P=2*(1-p)

data.frame(mean=xb,Z=z,p_value=P)

}

x=rnorm(100,0,2)

mean.test1(x,mu=0,sigma=2)

#(2)sigma未知,双侧,检验mu=mu0 mean.test2=function(x,mu=0){

xb=mean(x);n=length(x)

z=(xb-mu)/sd(x)*sqrt(n)

p=pt(z,n-1)

if(p<=1/2)

else

P=2*(1-p)

data.frame(mean=xb,Z=z,p_value=P)

}

x=rnorm(100)

mean.test2(x,mu=0)

t.test(x,mu=0,alt="two.side")

#两个总体sigma1=sigma2但未知,检验mu1=mu2 mean.test3=function(x,y,mu=0){

xb=mean(x);yb=mean(y)

n1=length(x);n2=length(y)

sw=((n1-1)*var(x)+(n2-1)*var(y))/(n1+n2-2)

t=(xb-yb-mu)/sqrt(sw*(1/n1+1/n2))

p=pt(t,n1+n2-1)

if(p<=1/2)

P=2*p

else

P=2*(1-p)

data.frame(mean=xb-yb,T=t,p_value=P)

}

x=rnorm(100,0,1)

y=rnorm(100,2,1)

mean.test3(x,y,mu=-2)

t.test(x,y,var.equal=T,mu=-2)

x=rnorm(100,0,1)

y=rnorm(100,0,2)

mean.test3(x,y)

t.test(x,y,var.equal=T)

#第六题调用R函数

#k-s检验两组数是否同分布

x=rnorm(100,0,1)

y=rt(100,5)

z=rnorm(100,0,1)

ks.test(x,y),alt="l"

ks.test(x,z)

#检验一组数是否服从已知分布

ks.test(x,"pnorm",0,2)

ks.test(x,"pt",1)

#符号检验两组数是否有差异

x=rbinom(100,100,0.5)

binom.test(sum(x>=50),100)

y=rbinom(100,100,0.4)

binom.test(sum(x

#wilcoxon符号秩和检验(精确或大样本近似)

#wilcox.test(x,y,alt,mu,paired=F,exact=NULL,correct=T,conf.int=F, conf.level=0.95)

r=runif(100,136,145)

wilcox.test(r,mu=140,alt="l",exact=F,conf.int=T,correct=F)

x=rnorm(100)

y=rnorm(100)

wilcox.test(x,y,paired=T,alt="g")

wilcox.test(x-y,alt="g")

binom.test(sum(x>y),length(x),alt="g")

#第七题

#相关性检验

x=1:6

y=6:1

z=2:7

cor.test(x,y,alt="g",method="spearman")

cor.test(x,z,alt="g",method="spearman")

#无节点

x=c(2,3,1,4,5,8,6)

y=1:7

cor.test(x,y,alt="g",method="spearman",correct=T)

n=length(x)

r=rank(x)

r

R=rank(y)

R

s=sum((r-R)^2)

rho=1-6*s/n/(n^2-1)

rho

#有节点

x=c(2,3,4,4,5,8,6)

y=1:7

cor.test(x,y,alt="g",method="spearman",correct=T)exact=F, n=length(x)

r=rank(x)

r

R=rank(y)

R

sxy=sum((r*R))

sx=sum(r^2)

sy=sum(y^2)

t=n*((n+1)/2)^2

rho=(sxy-t)/sqrt(sx-t)/sqrt(sy-t)

rho

#第八题回归

x=c(seq(0.1,0.18,0.01),0.20,0.21,0.23)

y=c(42,43.5,45,45.5,45,47.5,49,53,50,55,55,60)

#散点图

plot(x,y)

#做回归

lm.sol=lm(y~x)

lm.sol=lm(y~1+x)

#汇总统计量

summary(lm.sol)

#画回归线

abline(lm.sol)

#求回归系数的区间估计

beta.int=function(lm.sol,alpha=0.05){

A=summary(lm.sol)$coefficients

df=lm.sol$df.residual

left=A[,1]-A[,2]*qt(1-alpha/2,df)

right=A[,1]+A[,2]*qt(1-alpha/2,df)

rowname=dimnames(A)[[1]]#列表的第一个元素

colname=c("estimate","left","right")

matrix(c(A[,1],left,right),ncol=3,dimnames=list(rowname,colname)) }

beta.int(lm.sol)

#对新的自变量求因变量的预测值及预测区间

new=data.frame(x=c(0.16,0.19,1.20))

lm.predict=predict(lm.sol,new)

lm.predict

lm.predict=predict(lm.sol,new,interval="confidence",level=0.95) lm.predict=predict(lm.sol,new,interval="prediction",level=0.95) #残差图

resid=lm.sol$residuals

plot(resid)

y.res=resid(lm.sol)

y.fit=predict(lm.sol)

plot(y.res~y.fit)

plot(y.res~x)

plot(lm.sol,1)

plot(lm.sol,2)

plot(lm.sol,3)

plot(lm.sol,4)

软件工程期末考试题含答案

一、选择题 1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。 ( C ), A .详细计划 B .可行性分析 C .运行阶段 D.测试与排 错 2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A ) A .需求分析阶段 B .详细设计阶段 C.概要设计阶段 D .可行性研究阶段, 3.软件工程的出现主要是由于(C ) , A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展, 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C) A.硬件环境 B.软件开发的环境 C.软件开发工具和软件开发的环境 D.开发人员的素质 5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B) A.相互排斥B相互补充C独立使用 D.交替使用 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C) A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法 C.基于对象的面向对象的方法 D.基于数据的数据流开发方法 7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B) A.结构化方法B原型化方法C面向对象的方法 D.控制流方法 8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B) A.控制流 B.数据流 C.程序流 D.指令流 9.软件开发的结构化生命周期方法将软件生命周期划分成(A) A.计划阶段.开发阶段.运行阶段 B.计划阶段.编程阶段.测试阶段 C.总体设计.详细设计.编程调试 D.需求分析.功能定义.系统设计 10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C) A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段

软件工程期末考试重点

软件工程期末考试重点 《软件工程》期末复习重点 第一章软件工程 1. 什么是软件工程。 A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。2. 软件工程的三要素:方法、工具和过程。 第二章软件过程 1. 软件生命周期分为哪几个阶段?每个阶段的基本任务是什么? a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么 可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么 b.软件开发:具体设计和实现在前一个时期定义的软件。概要设计:怎样宏观地解决问题 详细设计:应如何具体地实现这个系统 编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。 c.运行维护:修正错误,使软件持久地满足用户需要。改正性维护:诊断和改正使用中的错误适应性维护:修改

以适应环境变化 完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备 2. 常用的过程模型有哪些?各自的特点及不足。如:瀑布模型的不足是不能适应需求的动 态变更。 A.瀑布模型 特点: 可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。 缺点:太理想化,于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格与用户需求之间有差异,就会发生这种情况。只适用于项目开始时需求已确定的情况。 B.快速原型模型 特点:快速 软件产品开发基本上是线性顺序进行。降低了规格说明文档变化的可能性。减少了后续阶段错误的可能性。 c.增量模型 1 优点: 人员分配灵活,刚开始不用投入大量人力资源。

软件体系结构期末考试

北京工业大学2014 - 2015学年 第二学期模拟试题 考试课程:软件体系结构I 考试日期:2015年5 月20日 学院:软件学院专业:软件工程 学号:姓名:成绩: 一填空题(共30 空,每空 1 分) 1. 软件或程序是由软件工程人员设计与开发,使计算设备发挥计算潜能,________ 的逻辑层次组织。 2. 软件体系结构(Software Architecture)-- 是软件产品设计的思想和系统的蓝图;是 对软件产品_______的规划和_______的设置;是定义软件系统组件(Components)或构建块(Building Blocks)的重要工具;用于 -- 实现对一个软件系统的构成进行_________的划分 -- 所形成和采用的工程化规范,是指导软件后续过程方方面面组成的模型。 3.软件开发中的面临若干问题:1)软件固有的复杂性;2)软件开发的随意性;3)周期 长,代价高,质量低的问题;软件体系结构设计是软件产品及大型信息系统工程实现中最重要的环节和关键技术之一,解决从软件的__________到系统实现(代码)的有效和平坦过渡。 4.软件产品的工业化生产:是指建立流水线型的软件产品生产线,是指按_____、标准 化的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件___,通过软件体系结构来确定各个软件组件如何部署到开发架构模式中,组装成达到期望的软件产品。 5.体系结构设计方法的发展中,软件程序开发经历了如下的阶段 -- 功能分解法 (计算任务) -- 结构化程序设计 (以数据为中心) -- _________________ -- _________________ -- 基于 SOA 的程序设计 (以服务为中心)。 6. 一个现代软件产品生产过程如下图表示,请在带___________的方框中,填上相应的组 件名称

软件工程课程设计心得总结

软件工程课程设计个人总结 学期就快要结束了,到了最后一周居然还有软件工程课程设计,还要考试真的有点忙啊,不管怎样还是好好干吧,把对工程的理论研究、学习成果用于实践也是一种检验学习成果和提升工程能力的有效手段嘛。 工作内容安排 软件工程课程设计的第一天拿到题目,听取老师对于课程设计的要求、要完成的工作、预期要达到的效果和注意事项。然后分组、讨论和确定选题。这真正的课程设计才算开始了,经过组长,组员的反复研究、论证后一致决定选择:实习题目4:开发一个基于Web的BBS系统,包含一般BBS所具有的功能,如用户注册、用户信息管理、发贴功能、贴子管理、主题词查询、用户信息修改和查询等。 这个题目对于现代化的网络交流来说发展的成熟而且符合当代互联网大众的网络需求,符合现代网络对信息分享讨论的爱好,我们一致预测在今后很长的一段时间内也将会是非常流行的一种交流介质。 确定选题后我们开始软件开发的第一步,需求分析,详细设计等内容,分块分工完成模块,我分到的主要部分就是分析论坛里面的帖子内容,用户的爱好,然后解决用户的索引需求,把用户的索引需求智能的、友好的呈现给用户,把这部分的代码编写,测试,把用户界面做好就是我接下来几天的工作内容。 俗话说:磨刀不误砍柴工,要想把我的这部分内容做好,做得完美,我的好好的分析一下,对全组对整个系统的需求分析的基础上又认真分析了本部分的内容和本部分要实现的功能,对本部分实现的主要思想理清,认真设计界面,还有对队员们的模块能有效的结合起来,让他们的模块也能有效的供我使用,做好我的接口也方便其他模块与此的衔接。 问题与解决 在本次课程设计中遇到了好多前所未有的问题,第一次接触HTML网页开发,第一次邂逅JSP web应用程序开发,第一次有了原来开发应用程序是需要数据库的,对于这些都是第一次接触,需要了解HTML的基本语法,需要学习JSP web 应用程序web app的开发方法,需要实践配置数据库TOMCAT、SQL sever,居然有这么多的东西需要从头来,对于这些方面我就像一张崭新的白纸,怎么能在短短的四五天时间内将这张白纸绘成一幅栩栩如生的画卷呢,这是我们面对的亟待解决的问题。 为了解决这一系列的问题,我们没有找借口,我们没有懒惰,我们更没有放弃,而是迎难而上,到图书馆“大采购”求资料,找到想要的,真想把图书馆搬到课程设计实验室。接下来就是根据我们的需求分析,概要设计,详细设计等内容分模块编写网页源代码,修复bug,测试代码,连接数据库这样我们的全新的基于web的BBS论坛就成功上线了。

软件工程期末考试题3

试卷一 中南大学考试试卷 2006--2006 学年学期时间110分钟 专业年级:总分100分,占总评成绩 100% 注:此页不作答题纸,请将答案写在答题纸上 填空题(本题20分,每小题2分) 1. 瀑布模型是以文档为驱动、适合于()软件项目的开发。 2. 需求分析的基本任务是()。 3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()。 4. 根据程序流程图划分的模块通常是()内聚的模块。 5. 软件的分类,按其功能可分为:系统软件、()和应用软件。 6. UML的定义包括UML语义和()两个部分。 7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和( )。 8. IDEF1X图用来描述系统的()模型,主要有实体、联系和()三种成分,其中实体可分为独立实体和(),且一个实体只能在图中出现一次。 二、简答题(本题30分,每小题5分) 1. 什么是软件工程?软件工程和计算机科学有何区别?

2. 面向对象方法和结构化方法有何区别与联系? 3. 什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内? 4. 什么是设计模式?试举例说明组合设计模式的应用。 5.什么是依赖倒置原则?它和开闭原则有何联系? 6. 软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点? 三、绘图题(本题34分) 1. 某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。 (1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。 (2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件体系结构期末大题

软件体系结构-期末大题

————————————————————————————————作者:————————————————————————————————日期: ?

1.基于构件的软件开发的优势是什么? 基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用2.尝试用自己的语言介绍Kruchten的“4+1”模型。 Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。

3.在希赛公司的一个财务管理系统,财务部要客户提供………… 4.不同的体系结构风格具有各自的特点、优劣和用途。试对管道-过滤器风格、事件驱动风格、分层系统、C2风格和基于消息总线的风格进行分析比较。P52-56 (1)管道和过滤器 特点: @使得软构件具有良好的隐蔽性和高内聚、低耦合的特点; @允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;

@支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来; @系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉; @允许对一些如吞吐量、死锁等属性的分析; @支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行?缺点:①通常导致进程成为批处理的结构。 ②不适合处理交互的应用。 ③因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。 (2)

软件工程学习心得作业

软件工程作业

软件工程心得体会 通过这半学期我对软件工程的学习,老师在课堂上从软件工程的基础到用户的需求分析,最后到黑盒白盒测试通过自身做过的一些案例,生动形象的讲解了软件工程这门本身枯燥乏味的课程,这不仅增强了学生学习的积极性,也通过让我们自己去做一些需求分析,我们从中学到了许多知识。 老师不仅仅在课堂上对我们悉心的知道,在课外还让我们多看一些有关软件工程方面最前沿的理论,通过这段时间我读了《软件工程——实践者的研究方法》、《件工程案例》这两本书,通过自己的读书学习,我有以下心得体会。 众所周知软件对于一个公司,一个企业乃至一个国家都是十分重要的,因此一个软件的维护也十分重要,下面我就讲一些关于软件维护的知识。 维护阶段是软件生存期中时间最长的一个阶段,也是花费的精力和费用最多的一个阶段。由于操作系统软件和基础软件版本升级或应用管理系统软件的不断开发、完善,需要对软件进行维护。但当运行环境改变或者系统功能、性能需求发生变化,使原软件不能通过维护的手段满足用户需求时,则需要进行软件更新。 1.软件维护的类型: 软件的开发过程对软件的维护有较大的影响。若不采用软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工这是一种结构化的维护。非结构化维护活动只能从阅读、理解和分析源程序开始,这样做难以弄清系统功能、软件结构、数据结构等问题,常常造成误解。同时由于没有测试文档,也不可能进行回归测试很难保证程序的正确性。这种软件维护

方法仅在软件工程时代之前采用。在进行结构化维护活动时,需从评价需求说明开始,弄清楚软件功能、性能上的改变;对设计说明文档进行评价,并进行修改和复查;根据设计的修改,进行程序的变动;根据测试文档中的测试用例进行回归测试;最后,把修改后的软件再次交付使用。这对于减少精力、减少花费和提高软件维护效率有很大的作用。 2.软件维护的困难: 软件维护的困难主要是由于软件需求分析和开发方法的缺陷造成的。软件生存周期中的开发阶段没有严格而科学的管理和规划,就会引起软件运行时的维护困难。这种困难表现在如下几个方面。 (1)读懂别人的程序是困难的。 (2)文档的不一致性。这种不一致性表现在各种文档之间的不一致以及文档与程序之的不一致。 (3)软件开发和软件维护在人员和时间上存在差异。 (4)软件维护不是一项吸引人的工作。 3. 软件维护的费用: 软件维护的费用在总费用中的比重是不断增加的,它在1970 年占35%~40%,1980 年上升到40%~60%,1990 年上升到70%~80%。软件维护费用不断上升,这只是软件维护有形的代价,另外还有无形的代价,即要占用更多的资源。由于大量软件的维护活动要使用较多的硬件、软件和软件人员等资源,这样一来,投入新的软件开发的资源就因不足而受到影响。由于维护时的改动,在软件中引入了潜在的故障,从而降低了软件的质量。 4.软件维护的分类

软件工程(清华钱乐秋版)期末复习重点

1、什么是软件工程 在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。 2、软件生存周期分哪几个阶段分别简述各个阶段的任务。 答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。 A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机 系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。 B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面 等要求,生成软件需求规约。 C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细设 计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。 E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。 3、简述各类软件过程模型的特点。 答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是: 接受上一阶段活动的结果作为本阶段活动的输入; 依据上一阶段活动的结果实施本阶段应完成的活动; 对本阶段的活动进行评审; 将本阶段活动的结果作为输出。 B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软 件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。 然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下

软件设计与体系结构期末复习整理解读

1面向对象编程中是如何体现封装性的? 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。 2重载和重写的含义 重载是发生在一个类中,方法名相同,参数不同 重写(覆盖)是子类继承父类,子类可以通过重写的方法隐藏继承的方法 3 什么是接口回调,过程细节是什么? 概念:把可以实现某一接口的类创建的对象的引用赋给该接口声明接口变量,那么该接口变量可以调用被类实现(重写)的接口方法。 4试举例说明什么是组合关系和依赖关系 组合(关联)关系:A类中成员变量是用B类声明的对象。公司--职员 依赖关系:A类中某个方法的参数是用B类声明的对象,或某个方法返回的数据类型是B类的对象 5抽象类和接口,区别是什么?如何应用 抽象类:抽象类中有抽象方法;抽象类中不能用new运算符创建对象;抽象类的对象做商转型对象 接口:(1)接口中只可以有public权限的抽象方法,不能有非抽象方法; (2)接口由类去实现,即一个类如果实现一个接口,那么他必须重写接口中的抽象方法 (3)接口回调 区别:接口中只有常量,不能有变量;抽象类中既可以有常量也可以有变量; 抽象类中也可以有非抽象方法,接口不可以。 应用:定义抽象方法:public abstract void 方法名(); 在子类实现抽象方法:public void 方法名(){} 接口:public interface 接口名{}接口只负责定义规则,不负责任何实现;实现交给实现接口的类 (6)面向对象的六条基本原则包括: 开闭原则,里式代换原则,单一职责,依赖倒转、迪米特法则(接口隔离)。 (7)什么是设计模式? 设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 (8)什么是框架?框架与模式的区别有哪些? 框架是针对某个领域,提供用于开发应用系统的类的集合。 区别:层次不同、范围不同、相互关系

山东大学-软件工程复习重点整理

第一章 1.1软件工程(SE)的定义、向、作用: SE:在将有关软件开发与应用的概念科学体系化的基础上,研究如有计划、有效率、经济的开发和利用能在就算机上正确运行的软件的理论和技术的工程法学,一些开发和维护软件的法、过程、原则。是一个系统工程,既有对技术问题的分析与综合,也有对开发过程和参与者的管理。 SE的向:面向对象模式,结构化模式,基于过程的模式等 SE的作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。 1.2开发模式:软件开发的全部过程,活动和任务的结构框架,它能直观的表达的表达软件开发全过程,明确要完成的主要活动,任务和开发策略。 1.3说明错误、故障和失效的含义及联系(并举例): 错误:是在软件生产过程中人为产生的错误(需求说明中的错误,代码中的错误) 故障:是在功能实现过程中产生的问题;是错误导致的结果,是在软件中一个错误的表现(一个错误可能产生多个缺陷,静态存在的) 失效:是相对于系统指定行为的偏离,系统违背了它应有的行为(动态存在的) 联系:当一个开发者编写程序时,会在代码中出现错误。当这个程序被编译或集成到一个系统中时,系统就存在故障。当你运行这个系统时,可能会导致失效,即人们产生错误,故障是错误的结果(部观角:从开发者的角度看待问题),当故障执行时出现失效(外部视角:从用户角度看到的问题)。并不是所有的错误会导致故障,并非每个缺陷都对应相应的失败。1.4软件质量应从哪几个面衡量,论述之: (1产品的质量)(2过程的质量)(3商业环境背景下的质量) (1)产品的质量:用户从失败的数目和类型等外部特征进行评价,如果软件具有足够的功能并且易于学习和使用,用户就断定软件是高质量的;开发者从缺陷的数目和类型等部特征来作为产品质量的依据。 (2)过程的质量:有很多过程都会影响到最终的产品质量,只要有活动出了差错,产品的质量就会受到影响;开发和维护过程的质量与产品的质量是同等重要的。 (3)商业环境背景下的软件质量:将技术价值和商业价值统一起来。 1.5软件系统的系统组成(系统的要素有哪些):对象(实体)+ 活动+ 关系+ 系统边界活动:活动是发生在系统中的某些事情,通常描述为由某个触发器引发的事件,活动通过改变属性把一个事物变成另一个事物。 对象:活动中涉及的元素称为对象。 关系:是指活动与对象之间的关系。 系统边界:即系统包含的功能与系统不包含的功能之间的界限。 1.6现代软件工程大致包含几个阶段及各个阶段的文档: (1)需求分析:主要包括问题定义、可行性分析、需求分析《需求规格说明书》

软件体系结构期末复习题概述

《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。 2、“4+1”视图模型从5个不同的视角包括: 逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 3、构件:是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。 连接件:表示构件之间的交互。 配置:表示构件和连接件的拓扑逻辑和约束。 端口:表示构件和外部环境的交互点。 角色:定义了该连接交互的参与者。 4、画出“4+1”视图模型图,分析各部分的原理和功能。 5、软件体系结构风格: 是描述某一特定应用领域中系统组织方式的惯用模式。 6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、吞吐量、一致性和兼容性等属性。软件体系结构由组件、连接件和属性组成。 7、分层系统的优点有: 1)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解; 2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3)支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可

以定义一组标准的接口,而允许各种不同的实现方法。 8、分层系统的缺点有: 1)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2)很难找到一个合适的、正确的层次抽象方法。 9、 B/S体系结构的优点有什么? 答:1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。 2)B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。 10、B/S体系结构的缺点有什么? 答:1)B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。 2)B/S体系结构的系统扩展能力差,安全性难以控制。 3)采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。 4)B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。 11、DSSA 答案:DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构 11、软件体系结构的动态性主要分为: 交互式动态性、结构化动态性、体系结构动态性等三类。 12、请画出基于构件的动态系统结构模型画。 13、软件产品线 产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统遵循一个预描述的方式,在公共的核心资源(core assets)基础上开发的 14、SOA 即service-oriented architecture,面向服务架构。它是一个组件模型,它 将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接 口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于 实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的 系统中的服务可以以一种统一和通用的方式进行交互。 14、RIA

《软件工程》期末考试题及答案++精华版!!

《软件工程》期末考试样题 一、填空题 1.软件开发模型有(瀑布模型)(螺旋模型)第四代技术模型(原型模型)构件组装模型、混合模型。 2.可行性研究一般可以从(经济)可行性、(技术) 可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n 年后从银行得到F元,现在应该存入的钱数为 (F/(1+i)n)。 4.数据流图的基本符号包括(数据输入的源 点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。 5.Jackson图除了可以表达程序结构外,还可以 表达(数据结构),它首先要分析(数据结构),并用适当的工具来描述。 6.详细设计的工具有图形工具)、表格工具和(语言工具)。 7.IPO图由(输入)、处理和(输出)三个框组 成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(继承)、(封装)、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列( A )属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX 2.下列哪个图是N-S图的构件( C )。 A. B.

3.对于螺旋模型,下列( D 卡尔坐标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABXD A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(A.表头 B.表体 C.表名 D.字段名 AD )。、内容耦合是最高程度的耦合 、应该尽量使用内容耦合 、高级语言一般设计成允许内容耦合的形式、如果一个模块有多个入口,可能发生内容.下列属于不标准的书写格式( BCD )。、书写时适当使用空格分隔 、一行写入多条语句 、嵌套结构不使用分层缩进的写法 、程序中不加注释 ,错误的) 软件生存周期是从软件开始开发到开发结束 () 系统流程图是一个典型的描述逻辑系统的传() 数据流图和数据字典共同构成系统的逻辑 A

软件体系结构期末考试试题

软件体系结构-设计模式练习题1 1.面向对象分析与设计中的(1)是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的;而(2)是指子类应当可以替换父类并出现在父类能够出现的任何地方。 (1) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则 (2) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则 2.(3)限制了创建类的实例数量,而(4)将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 (3) A.命令模式(Command)B.适配器模式(Adapter)C.策略模式(Strategy) D.单例模式(Singleton) (4) A.命令模式(Command) B.适配器模式(Adapter) C.策略模式(Strategy) D.单例模式(Singleton) 3. (5)设计模式允许一个对象在其内部状态改变时改变它的行为。下图为这种设计模式的类图,已知类State 为抽象类,则类(6)的实例代表了Context 对象的状态。 (5) A.单件(Singleton) B.桥接(Bridge) C.组合(Composite) D.状态(State) (6) A. Context B. ConcreteStateA C. Handle D. State

4.某公司欲开发一门户网站,将公司的各个分公司及办事处信息进行整合。现决定采用Composite设计模式来实现公司的组织结构关系,并设计了如下图所示的UML类图。图中与Composite模式中的“Component”角色相对应的类是(7) ,与“Composite”角色相对应的类是(8) 。 (7) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany (8) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany 5.某软件公司正在设计一个通用的嵌入式数据处理平台,需要支持多种数据处理芯片之间的数据传递与交换。该平台的核心功能之一要求能够屏蔽芯片之间的数据交互,使其耦合松散,并且可以独立改变芯片之间的交互过程。针对上述需求,采用(9)最为合适。 (9) A. 抽象工厂模式 B. 策略模式 C. 中介者模式D. 状态模式 6.某软件公司正在设计一个图像处理软件,该软件需要支持用户在图像处理中的撤销和重做等动作,为了实现该功能,采用(10)最为合适。 (10) A. 单例模式B. 命令模式 C. 访问者模式 D. 适配器模式 7.某互联网公司正在设计一套网络聊天系统,为了限制用户在使用该系统时发表不恰当言论,需要对聊天内容进行特定敏感词的过滤。针对上述功能需求,采用(11)能够灵活配置敏感 词的过滤过程。 (11) A. 责任链模式 B. 工厂模式 C. 组合模式 D. 装饰模式

最新软件工程期末考试题

41.软件是一种产品。 A.物质 B. 逻辑√ C. 工具 D. 文档 2.软件产品的生产主要___ _ _。 A. 研制√ B. 再生产 C. 开发 D. 生产 3.软件工程是一门__ _学科。 A. 工程性 B. 原理性 C. 综合性√ D. 理论性 4.类是面向对象方法中的一个重要概念,类的描述分为:名称、和操作。 A. 角色 B. 用例 C. 方法 D. 属性√ 5.下列描述中正确的是___ __。 A.软件工程的主要是解决软件开发中的技术问题 B.软件工程主要解决软件产品的生产率问题 C.软件工程的主要思想是强调在软件开发过程中需要运用工程化的原则√ D.软件工程只是解决软件项目的问题. 6.需求分析最终结果是产生。 A.项目开发计划B.可行性分析报告C.设计说明书D.需求分析说明书√7.需求分析中,开发人员要从用户那里解决最重要的问题是。 A.要让软件做什么√B.要给软件提供哪些信息 C.要求软件工作效率怎样D.要让该软件具有何种结构 8.分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的。 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.数据字典是用来定义中的各个成分的具体含义的。

软件工程期末考试复习题及答案

(4分) 变换型结构的数据流呈() A. 线性形状 B. 辐射状 C. 椭圆形 D. 阶梯形 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..2. (4分) 可行性研究阶段使用的图形工具是() A. DFD图 B. N-S图 C. PAD图 D. Warnier图 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..3. (4分) 软件的开发模式有() A. 面向过程模式、面向对象模式、混合模式 B. 变换模式、渐增模式、瀑布模式 C. 自顶向下模式、自底向上模式、关系模式 D. 分步模式、渐增模式、非渐增模式 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 B .解析..4. (4分) 模块的初始化工作和模块处理意外故障均属于() A. 时间内聚 B. 顺序内聚 C. 功能内聚 D. 逻辑内聚 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案 A .解析..5. (4分) HIPO的含义是()

A. 层次、输入、处理、输出 B. 高速、信息、程序、目标 C. 顶层的IPO图 D. 关于输入、处理、输出的层次 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..6. (4分) 数据字典和数据流图共同构成系统的() A. 物理模型 B. 结构模型 C. 设计说明书 D. 逻辑模型 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案D .解析..7. (4分) 好的软件结构它的外观形状一般呈() A. 线性 B. 扇形 C. 椭圆形 D. 层次型 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 C .解析..8. (4分) CMU/SEI推出的()将软件组织的过程能力分为五个成熟度级别,每一个级别定义了一组过程能力目标,并描述了要达到这些目标应该具备的实践活动。 A. CMM B. PSP C. ISO-9000 D. RUP 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..9. (4分) 若要保证开发出来的软件局部优化,而且能尽早发现设计上的错误,应采用()

最新软件体系结构期末试题+答案

1.以下关于系统性能的叙述中,不正确的是(17)。(17)A. 常见的Web服务器性能评估方法有基准测试、压力测试和可靠性测试B. 评价Web服务器的主要性能指标有最大并发连接数、响应延迟和吞吐量C. 对运行系统进行性能评估的主要目的是以更好的性能/价格比更新系统D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈 2某公司欲对其内部的信息系统进行集成,需要实现在系统之间快速传递可定制格式的数据包,并且当有新的数据包到达时,接收系统会自动得到通知。另外还要求支持数据重传,以确保传输的成功。针对这些集成需求,应该采用(21)的集成方式。(21)A. 远程过程调用 B. 共享数据库C. 文件传输 D. 消息传递 3 在RUP中采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(26),系统工程师侧重于(27)。(26)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图(27)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图 4.某银行系统采用Factory Method方法描述其不同账户之间的关系,设计出的类图如下所示。其中与Factory Method中的“Creator”角色相对应的类是(33);与“Product” 角色相对应的类是(34)。(33) A. Bank B. Account C. Checking D. Savings(34) A. Bank B. Account C. Checking 5.是一个独立可交付的功能单元,外界通过接口访问其提供的服务。(35)A. 面向对象系统中的对象(Object)B. 模块化程序设计中的子程序(Subroutine)C. 基于构件开发中的构件(Component)D. 系统模型中的包(Package) 6 软件的横向重用是指重用不同应用领域中的软件元素。(31)是一种典型的、原始的横向重用机制。(31)A. 对象 B. 构件 C. 标准函数库 D. 设计模式

软件工程复习考点小结

《软件工程》考点小结 1、软件工程的定义及软件工程的研究内容? 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件工程是研究软件开发和软件管理的一门工程学科。2、软件工程五个面向实施理论? “五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,是对前者的继承与发展。 3、什么是“软件生命周期模型”,常用的软件生命周期模型有哪些?软件生命周期由哪5个阶段构成? 软件生命周期模型是指在整个软件生命周期中,软件开发过程应遵循的开发路线图。或者说,软件生命周期模型是软件开发全部过程、活动和任务的结构框架。 瀑布模型、增量模型、迭代模型、原型模型、XP等模型分析、设计、编码、测试、维护 4、简述瀑布模型与迭代模型之间的关系? 在宏观上,迭代模型是动态模型,瀑布模型是静态模型。在微观上,迭代模型与瀑布模型都是动态模型。在迭代和瀑布模型中,你中有我、我中有你。 瀑布模型与迭代模型之间的关系,反映了人们对客观事物的认识论:要认识与掌握某一客观事物,必须经历由宏观到微观的多次反复的过程。只有从宏观上反复迭代几次,才能看清全貌,掌握事物的宏观发展规律。只有从微观上反复迭代几次,才能吃透每个细节,掌握事物的微观发展规律。 5、何谓软件的“功能模型”? 功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。 6、“容错技术”的定义? 容错就是当由于种种原因在系统中出现了数据、文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统能够连续正常运行的一种技术。 7、何谓软件的“快速原型法”? 快速原型法就是在系统开发之初,尽快给用户构造一个新系统的模型(原型),反复演示原型并征求用户意见,开发人员根据用户意见不断修改完善原型,直到基本满足用户的要求再进而实现系统,这种软件开发方法就是快速原型法。 8、.业界存在哪三种需求分析方法?你认为哪一种方案更好? 业界存在三种需求分析方法:面向功能分析、面向对象分析、面向数据分析。 以上这三种方法,各自适用于不同的目标系统。目前时尚的方法是面向对象,包括面向主体和面向方法。总的来说,对于系统软件和应用软件来说,面向功能需求分析的方法简单明了,而面向对象的需求分析方法则复杂抽象。对于以关系数据库为平台的信息系统软件来说,面向数据需求分析方法的特点是抓住了本质。但是,这三种分析方法都离不开面向流程分析这根总线:功能、对象、数据都是在流程中产生的,又都是为流程服务的。 9、需求分析的目的是什么,输入及输出是?需求分析的难点在哪里? 软件需求分析,其目的是用于说明软件产品或软件项目需要满足的条件和限制。在软件工程项目中首先要获取用户的需求,通过对软件需要的提取、分析、文档化及验证,为进一步的设计和实现提供依据。 输入是软件《合同》或软件《立项建议书》,以及对用户现场的调研、分析和确认,输出是《用户需求报告》/《需求分析规格说明书》 需求分析的难点是:在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。要知道,合同是具有法律效力的。 10、试说出黑盒测试和白盒测试的区别和联系。? 黑盒测试又称功能测试。在这里,盒子指的是被测试的软件,“黑盒”就是只知道被测试软件的外部情况,主要是界面和接口,被测试软件的内部逻辑结构和数据结构,对测试人员来说是不可见的,主要关注被测试软件的功能实现。 白盒测试就是对程序执行路径的测试,又叫做玻璃盒测试(Glass Box Testing)、透明盒测试(Clear B ox Testing)、结构化测试(Structured Testing)、开放盒测试(Open B ox Testing)、基于代码的测试(C ode-Based Testing)等。 黑盒测试和白盒测试的联系是:一般宏观上用黑盒测试,微观上用白盒测试,系统集成人员用黑盒测试方法对系统进行测试,构件开发人员用白盒测试方法对构件进行测试,这是常用的测试方法。 11、为什么说需求分析是面向流程的? 系统的功能、性能、接口、界面都是在流程中动态实时的反映出来。在所有的流程(物流、人流、资金流、信息流、单据流、报表流、数据流)中,数据流最重要,也最具有代表性。因为在计算机网络系统内,一切流程都表现为数据流,或者说是数据流在不同方向的投影。而流程是动态的、实时的。所以说,需求分析是面向流程的。 12、简述实用软件测试的流程?

相关主题
文本预览
相关文档 最新文档