软件设计与规范复习题解析

2.1.

  1. 软件工程标准编制的层次分为5个,分别为 :

正确答案:

国际标准、国家标准、行业标准、

企业标准;机构标准;企业(机构)标准 、

项目标准;课题标准;项目(课题)标准。

 

2.GB/T 25000.51-2010,软件工程 软件产品质量要求和评价(SQUARE) 商业现货(COTS)软件产品的质量要求和测试细则

属于什么层次的标准

A.国际标准         B.国家标准         C.行业标准      D.企业标准

正确答案:B

 

3.ISO 9000系列质量管理与质量保证标准属于哪个层次的标准

A.国际标准       B.国家标准          C.行业标准       D.企业标准

正确答案:A

 

4.IEEE Std 1012-2012,系统和软件验证与确认标准哪个层次的标准?

A.国际标准      B.国家标准         C.行业标准        D.企业标准

正确答案:C

解析:IEEE 美国电气与电子工程师学会,属于行业标准

 

5.GJB与GB,哪一个是行业标准

A.GJB                   B.GB

正确答案:A

解析:GB为中国国家标准,GJB为中国国家军用标准

 

2.3

1.计算机软件 =______+_______+_______.    

正确答案: 程序 , 数据 , 文档

 

2.造成软件危机的原因不包括

A.缺乏管理经验     B.需求不断变化     C.预算不足     D.问题复杂

正确答案:C

 

3.造成软件危机的原因包括

A.缺乏管理经验     B.需求不断变化     C.预算不足     D.问题复杂

正确答案:ABD

 

4.软件工程的要素有哪三个?

正确答案:过程、方法、工具

 

5.以下属于软件开发过程模型的有

A.瀑布模型    B.螺旋模型    C.喷泉模型    D.快速原型模型    E.W模型

正确答案:ABCD

 

  1. 软件开发过程模型主要有:_______、_______、_______、_______。

正确答案: 瀑布模型 , 快速原型模型 , 螺旋模型 , 统一软件开发过程模型

 

  1. 软件的生存周期通常包括 可行性研究、需求分析、     、     、      、     、     、     、使用与维护、退役等阶段。

正确答案: 概要设计 , 详细设计 , 软件构造 , 单元测试 , 集成测试 , 确认测试

 

 [简答题]

1.软件生命周期“V模型”,简述各测试阶段的关注点

正确答案:

1.单元测试关注模块内所有重要控制路径;

2.集成测试关注各模块间的连接正确性、系统或子系统的输入/输出处理、系统或子系统正确处理能力和承受错误的能力;

3.确认测试关注全部功能和性能要求。

 

2.软件生命周期V模型中,各测试阶段的依据是什么?

正确答案:单元测试阶段的依据是详细设计规格说明;

集成测试阶段的依据是概要设计规格说明;

确认测试阶段的依据是软件需求规范说明。

 

3.分析瀑布模型与V模型的优缺点

正确答案:

1、瀑布模型

优点:

1)为项目提供了按阶段划分的检查点.

2)当前一阶段完成后,您只需要去关注后续阶段.

3)可在迭代模型中应用瀑布模型.

缺点:

1)在项目各个阶段之间极少有反馈.

2)只有在项目生命周期的后期才能看到结果.

3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段.

2、V模型

优点:简单、高效

缺点:

1)容易让人误解为测试是在开发完成之后的一个阶段;

2)由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些

bug 可能不容易找到其根源,并且代码修改起来很困难;

3)实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。

3.1

【简答题】

1.简述SOLID设计原则

正确答案:

  1. SRP(Si,需求的满足情况一直到后期的验收测试才被验证。ngle Responsibility Principle)

单一职责,一个类应该仅有一个引起它变化的原因

(2)OCP(Open-Closed Principle)

开放-封闭,可扩展,不可修改,避免添加新功能之后产生连锁反应。

OCP关注灵活性,功能的改动是通过增加代码进行的,而不是修改现有代码

(3)LSP(Liskov Substitution Principle)

里氏替换,子类型必须能替换基类型

(4)ISP(Interface Segregation Principle)

接口分离,不强迫类实现它不需要的方法。

如果一个接口中包含许多不大而且不相关的方法,那么就应该分离成多个  

接口,让实现接口的类只是去实现它所需要的方法。

(5)DIP(Dependency Inversion Principle)

依赖倒置,高层模块不依赖于低层模块,都依赖于抽象;抽象不依赖于细节,细节依赖于抽象

 

2.简要说明下列软件设计基本原则:

(1)KISS;(2)DRY;(3)Tell,Don’t Ask;(4)YAGNI;(5)SoC。

 

正确答案:

(1)KISS(Keep It Simple Stupid)

避免不必要的复杂,尽量保持代码的简约

(2)DRY(Don’t Repeat Yourself)

抽取系统中的公共部分,并将其放置在一个地方避免重复

(3)Tell,Don’t Ask

合理封装,将代码方到正确的类中。明确告诉对象我们想要它们去执行怎样的操作,

而不是首先询问对象状态,然后我们决定执行什么操作

(4)YAGNI(You Ain’t Gonna Need It)

防止过度设计,只包含必需的功能,不包含你认为将来可能会用到的功能或特性

(5)SoC(Separation of Concerns)

   软件功能分离为单独功能点。被分离的功能点有唯一的行为和数据,而且每个功能点都能被其他所需要的类单独使用。通过该原则,可最大限度地实现代码重用、功能重用、模块重用

 

[多选题]

1.四则计算器的UI设计方案中,将计算类的实例化与流程分离,通过ICalculate获得计算结果,当增减功能时保持了流程代码的稳定,运用了以下哪些设计原则。

A.SRP单一职责              B.OCP开放-封闭

C.LSP里氏替换             D.ISP接口分离              E.DIP依赖倒置

正确答案:BCD

 

1. [简答题]

设计四则计算器程序,要求实现加减乘除二元运算。采用接口抽象封装运算,绘制类图

正确答案:

2. [简答题]

撰写除法类实现代码,操作数数据类型为double,除数为零应抛出异常。

正确答案:

public double Calculate(double operatorX, double operatorY)

{

   if (operatorY - double.Epsilon > 1e-5)

   {

     return operatorX / operatorY;

   }

   else

   {

      throw new DivideByZeroException("除数为0");

   }

}

 

3.3

[选择题]

1.以下哪种情况不使用camel命名风格

A.私有字段                   B.命名空间     

C.局部变量                   D.方法参数

正确答案:B

 

2.以下哪一种名称符合软件命名规范                         

A.System.Xml                B.System.XMl

C.System.XML                D.System.xml

正确答案:A

 

3.下面是某方法的签名,符合软件设计规范的是

A.public  IList<City>  showCities  (  int  provinceId  )

B.public  IList<City>  ShowCities  (  int  provinceId  )

C.public  IList<City>  showCities  (  int  ProvinceId  )

D.public  IList<City>  ShowCities  (  int  ProvinceId  )

正确答案:B

 

4.以下哪一种符合软件命名规范

A.System.XML                   B.System.IO

C.System.Io                     D.System.HTML

正确答案:B

 

5.以下哪种情况使用PascalCasing命名风格

A.私有字段                    B.命名空间

C.局部变量                    D.方法形参

正确答案:B

 

6.代码命名规范中标识符大小写规则有哪些?

A.PascalCasing                 B.BasicCasing

C.camelCasing                 D.CSharpCasing

正确答案:AC

 

7. 下面是某个类中字段的声明,符合软件设计规范的是      正确答案:BD

A.private string  Textbook;

B.private  string  textbook;

C.public  string  textbook;

D.public string  Textbook;

 

3.5

[填空题]

1.软件设计的基本概念包括

正确答案: 抽象与逐步求精 , 模块化与信息隐藏 , 内聚与耦合

 

2.软件设计的入口文档是?

正确答案: 需求规格说明

 

  1. 软件设计的一般过程,首先制订        ,然后展开设计活动,形成         文档,通过          后方进入下一阶段。

正确答案: 设计计划 , 设计规格说明 , 设计评审

 

3.软件设计一般被看作是迭代的过程,这里的迭代包括哪两层含义?

正确答案:

第一层:针对给定的需求模型,通过多次从抽象到具体的设计过程,得出足够精细的设计模型以供软件实现之用。

第二层:在需求模型发生变化并更新完成后,第一层含义的设计过程再随之展开,直至获得最终的目标软件产品。

 

4.软件设计活动主要包括哪些?

正确答案:体系结构设计、界面设计、模块/子系统设计、过程/算法设计、数据模型设计。

 

[选择题]

1.抽象与逐步求精、模块化与信息隐藏、内聚与耦合是软件设计过程常用原则,关注设计的不同侧面,

A.设计过程                     B.业务对象

C.业务对象之间的关系           D.设计活动

正确答案:ABC

 

[填空题]

1.软件设计一般过程的基本概念有

正确答案: 抽象与逐步求精、模块化与信息隐藏、内聚与耦合。

 

2.进行模块设计时,要尽量保持功能独立性,遵循_____、低耦合的设计原则。

正确答案: 高内聚

 

3.6

[简答题]

  1. 思考-计算器(UI与算法分离)

以计算器新增二元计算log为例,比较UI与算法分离、UI与算法绑定的优缺点

正确答案:

优点

结构稳定,只需为log增加一个实现类,然后在UI中增加实例化该类的代码

缺点

UI与算法绑定,难以扩展,无论更改表现层技术还是新增功能,都必须对已有代码进行改动,极易引入缺陷。

 

2.反思(流程与实例化分离)

针对UI采用switch实例化对象的设计,给出改进建议

正确答案:

改进建议一:

用工厂封装Switch。将switch代码封装起来,对外只暴露一个通用的获得实例化对象的方法(输入为字符串,代表四则计算操作符,输出为ICalculate接口类型的对象)。这样新增log计算时,只要更改实例化方法,增加log实现类,UI代码无需更改,保持了结构稳定。

改进建议二:

流程与实例化分离。UI增加操作符按钮,每个按钮的点击事件负责算法类的实例化,取代switch计算流程放在等号按钮事件中处理。新增log计算时,只需要增加log实现类,UI增加log按钮,按钮实例化log类,分工明确、条理清晰。

 

3.7

[简答题]

1.

答案:

2. 简述抽象与逐步求精的设计过程。

正确答案:识别业务概念,概念之间关系,类属性和业务方法,属性数据类型与方法签名。

我的答案:逐步求精是与抽象密切相关的一个概念,可视为一种早起的自顶向下设计策略,其主要思想是,针对某个功能的宏观描述,使用逐步求精的方法不断的分解,逐步确立过程细节,直到该过程能用程序语言描述的算法实现为止。因为求精的每一步都是用更为详细的描述代替上一层次的抽象描述,所以在整个设计过程中,产生的具有不同详细程度的各种描述,组成了系统层次结构。层次结构的上一层还是下一层的抽象,下一层是上一层的求精。在过程求精的同时自然伴随着数据的求精,无论是过程还是数据,每个求精步骤都蕴含着某些设计决策

 

4.1

 [单选题]

1.UML是一种软件设计工具,它不适合用来绘制                          

A.构件图     B.部署图     C.交互图        D.E-R图

正确答案:D

 

2.用例分析与设计阶段,常用UML图包括

A.用例图       B.类图       C.包图          D.部署图

正确答案:A

 

3.UML可以绘制哪些图

A.用例图          B.类图           C.活动图

D.包图            E.数据流图       F.E-R图

正确答案:ABCD

 

4.下列说法正确的是

A.接口不能有方法实现,抽象类也不能

B.接口不能有方法实现,抽象类可以

C.接口可以有方法实现,抽象类也可以

D.接口可以有方法实现,抽象类不可以

正确答案:B

 

 [填空题]

1.接口实现与类继承是常用的软件抽象手段,表达的涵义却不相同。

接口用于描述_____关系,类表达的是_____关系。

正确答案: Can-Do , Is-A

 

 [简答题]

1.以手机为例,建立软件模型。

(1)手机要提供收发短信、拨打电话、移动上网、导航、浏览网页、安装应用等功能,绘制用例图。

正确答案:

2.以手机为例,建立软件模型。

(1)手机具备IMEI、品牌、型号、屏幕尺寸、CPU、Ram、ROM等属性,以及发声、拨号、显示等方法,绘制类图

4.2

[简答题]

  1. 为订单项目绘制用例图:

4.4

 [单选题]

1.以下软件文档中不属于用户文档的是

A.系统安装配置手册              B.用户操作手册

C.数据库设计说明书              D.数据要求说明书

我的答案:C

 

2.常用的软件开发文档包括

A.软件需求规范说明             B.软件开发计划

C.概要设计文档                 D.详细设计文档

我的答案:ABCD

 

3.以下属于软件管理文档的是

A.项目开发计划                 B.测试计划

C.测试报告                     D.开发进度月报

我的答案:ABCD

 

5.1

[选择题]

1.开发视图侧重于软件模块的组织与管理,关注的是

A.用例                  B.功能需求

C.领域对象              D.分层与层间模块的关系

正确答案:D

 

2.逻辑视图主要支持系统的功能需求,关注的是

A.逻辑结构建模         B.业务需求

C.领域模型             D.模块之间的关系

正确答案:AC

 

[填空题]

1.软件体系结构设计中的“4+1”视图,包括______、________、________、________、_________。

正确答案:逻辑视图、开发视图、进程视图、物理视图、场景视图。

 

  1. 软件体系结构设计的4+1视图中,哪些描述系统的动态结构_________、___________。

正确答案:进程视图、物理视图。

 

3.软件架构设计视图包括:_______、_________、_________、___________。

正确答案:业务架构、应用架构、信息架构、基础设施架构。

 

4.软件架构=_______+________+_______。

正确答案:软件元素、元素间关系、约束。

 

[填空题]

  1. 软件设计中经常提到分层,Tier是指           分层,而Layer指         分层

   正确答案:物理、逻辑。

 

2.以常见的SOA五层架构为例,绘图说明Tier与Layer的区别

3.简述Tier与Layer在软件设计中的关系

答案:

Tier指物理的分层,Layer指逻辑上的分层。

不同的Layer可以部署在同一个Tier上,不同的Tier上可以有相同的Layer

 

4.软件体系结构设计中常用的三层架构,其中“层”指的是Tier or Layer?说明理由。

答案:三层架构是Layer层三层架构的界面,业务逻辑,数据访问三层分层的目的是为了实现功能和实现的分离

 

1.软件文档根据其产生和使用的范围,主要划分为三类,包括

我的答案:开发文档、用户文档、管理文档

 

5.3.

 [多选题]

1.《设计模式—可复用面向对象软件的基础》中描述了23个设计模式,可分为三个类型

A.创建型      B.结构型      C.行为型       D.关系型

我的答案:ABC

 

[简答题]

1.什么是软件设计模式

我的答案 :

广义定义: 可解决一类软件问题并能 重复使用的软件设计方案

狭义定义: 设计模式是对被用来在特 定场景下解决一般设计问题的类和相 互通信的对象的描述,是在类和对象 的层次描述的可重复使用的软件设计问题解决方案。

 

2.以商品打折为例,试比较策略模式与装饰者模式在应用场景上的区别。

我的答案 :

策略模式(Strategy) :定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。

装饰模式(Decorator) :动态地给一个对象添加一些额外的职责。就扩展功能而言,它能生成子类的方式更为灵活。

 

[多选题]

1.软件再工程包括

A.业务过程重构             B.设计重构

C.代码重构                 D.数据重构

正确答案:ABCD

 

2.软件的进化策略包括

A.完全放弃该软件

B.不改变该软件系统并继续进行常规的维护

C.对软件系统实施再工程以提高可维护性

D.用新系统替换遗留软件系统的全部或其中一部分

正确答案:ABCD

 

5.4[简答题]

1.业务需求:商品包含名称、定价和折扣价属性,折扣类型有四种:

(1)默认折扣为保持原价;

(2)商家折扣为9折;

3商场折扣为满100减10;

4政府折扣为22:00至23:59实行95折,

同一时刻只允许一种折扣方案生效,试设计业务模型。

  1. 基于该场景适用何种设计模式?绘制该模式类图

答案:

装饰者模式:

 

 

 

 

 

 

 

public decimal DiscountedPrice

{

get

{

//对商向下取整

var mod = Math.Floor(_price.DiscountedPrice / 100);

var discountedPrice = _price.DiscountedPrice - mod * 10

return discountedPrice;

}

}

计算流程:取得前一个折扣算法的折后价-->进行该折扣的打折-->返回折后价.

猜你喜欢

转载自blog.csdn.net/lfy905805357/article/details/89470454