软件工程、设计模式知识点

本文探讨了软件危机的起源、软件工程中的设计原则和模型,如瀑布模型、UML、敏捷开发方法(如Scrum),以及需求分析、数据字典和设计模式在软件开发中的重要性。
摘要由CSDN通过智能技术生成
  1. 为了解决软件危机,人们提出了用(工程学)的原理来设计软件。
  2. 软件危机”是指(软件开发和维护中出现的一系列问题)。
  3. 在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于(计划时期)
  4. 软件工程的基本要素包括(方法、工具、过程)。
  5. UML是软件开发中的一个重要工具,它主要应用于(面向对象的方法)软件开发方法。
  6. 软件生存周期包括可行性分析、需求分析、概要设计、详细设计、编码、(测试)、维护等活动。
  7. 结构化程序设计主要强调的是(程序易读性)
  8. 软件价格便宜不是软件危机的表现形式
  9. 软件是(程序及其文档)  /  (程序+数据+文档)
  10. 软件开发过程:定义/计划->开发->运行/维护
  11. 软件工程的出现主要是由于(软件危机的出现)
  12. 产生软件危机的原因:( 软件产品本身的特点,开发和维护过程中用的方法不正确 )
  13. 软件工程的基本目标是( 开发足够好的软件 )。
  14. “软件工程”术语是在( 1968年NATO会议 )被首次提出。
  15. 运行正确的软件就是高质量的软件(X
  16. 软件质量是在开发过程中逐渐构建起来的。 (
  17. 软件产品质量越高越好,最理想的情况是达到“零缺陷”。 (X
  18. 软件质量是由产品的功能、性能、易用性等外在特性决定的。(X
  19. 与传统方法相比,敏捷方法适合需求变化大或开发前期对需求不是很清晰的项目 (
  20. 敏捷方法尤其适合于开发团队比较庞大的项目(X
  21. 敏捷方法的思想是适应性,而不是预设性(
  22. 敏捷方法以原型开发思想为基础,采用迭代式增量开发 (
  23. 代码审查用于检查源代码是否达到模块设计的要求。(
  24. 代码在审查之前必须要成功地编译通过。(
  25. 代码审查比运行程序进行测试的效率低。(X
  26. 代码审查可以发现不符合团队代码规范的地方。(
  27. 软件开发瀑布模型中的软件定义时期各阶段( 问题定义—可行性研究—需求分析 )
  28. 瀑布模型是(适用于需求被清晰定义的情况)/缺点:(不灵活
  29. 在SCRUM中,迭代计划会议的主要议程是(讨论产品代办事项列表最需优先完成的事项)
  30. 增量模型是(一种需要快速构造核心产品的好方法)
  31. 原型化模型是(适用于客户需求难以清楚定义的情况)
  32. 开发团队了解待开发软件的相关领域知识,尽管此系统庞大,但其较已经开发的系统差异并不大:瀑布模型
  33. 软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位:瀑布模型
  34. 开发一个已发布软件的新版本,公司规定了严格的完成期限,并对外公布:增量模型
  35. 一个位于火车站的交互式火车车次查询系统:原型模型
  36. 敏捷开发法是一种以团队为核心,自顶向下、循序渐进的开发方法(X
  37. 敏捷开发法适合项目常发生变更高风险项目实施、项目规模小的开发场景(
  38. 敏捷开发法适合对系统有极高的关键性、可靠性、安全性要求的项目开发场景(X
  39. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( 数据定义 )
  40. 结构分析方法就是面向( 数据流 )的自顶向下逐步求精进行需求分析的方法。
  41. 一般说来,验证软件需求应考虑的因素有(一致性、完整性、现实性和有效性)。
  42. 数据字典是用来定义( 数据流图 )中的各个成份的具体含义的。
  43. 进行需求分析可使用多种工具,但( N-S图 )是不适用的,适用的有:数据流图、判定表、数据字典
  44. 系统在200人同时使用时,操作响应时间不能超过0.5秒”,这属于 性能需求
  45. 用户提出系统在一个月内不能出现2次以上的故障,这属于(  可靠性需求  )
  46. 需求分析中开发人员要从用户那里了解( 软件做什么 ),实施应该在( 软件定义阶段 )。
  47. 画某系统的数据流图时,顶层图有( 1张 )
  48. 通过( 功能分解 )可以完成数据流图的细化。
  49. 在数据流图DFD中,基本符号元素:数据流、数据处理、数据存储、外部实体
  1. “→”箭头,表示数据流
  2. 〇:圆或椭圆,表示加工
  3. =:双杠(带一边开口,一边闭合),表示数据存储
  4. □:方框,表示数据的源点或终点.
  5. 其绘制采用自上向下、逐层分解的方法
  6. 是一种描述数据及其变换的图形表示,在数据流图上不允许出现( 控制流 )
  7. 是用作结构化分析的一种工具
  8. 舍去了具体的物质,只剩下数据的流动、加工处理和存储
  1. 软件需求规格说明应包括( 功能、用户界面、运行环境、性能 )—不包括具体算法
  2. 数据流图和( 数据字典 )共同组成系统的逻辑模型。
  3. 在E-R 模型中,包含以下基本成分( 实体、联系、属性 )
  4. 软件需求分析阶段的工作,可以分为四个方面:对问题的识别、分析与综合、编写需求分析文档以及( 需求分析评审 )
  5. “列车车门在两个停靠站之间要保持关闭”;“列车发生紧急停车时,要打开车门”。这里出现的需求问题是(矛盾与不一致的需求)
  6. 项目管理三要素:时间、成本、质量
  7. 项目建议书——项目初始阶段
  8. 设计模式一般用来解决( 同一问题的不同表相 )的问题.
  9. 设计模式的两大主题是( 系统复用与系统扩展  ).
  10. 设计模式具有的优点( 适应需求变化 ).
  11. 通过应用设计模式能够解决( 指定对象的接口、针对接口编程、设计应支持变化 )
  12. 创建型模式主要用于创建对象(
  13. 结构型模式主要用于处理类或对象的组合(
  14. 面向对象三大特性(封装、继承、多态),基本原则的是 ( 单一职责原则(SRP) 、开放封闭原则(OCP)  、里氏替换原则(LSP)、  依赖倒置原则(DIP)、  接口隔离原则(ISP)、迪米特法则(Law Of Demeter)、组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP))
  15. (  桥接  )将抽象部分与它的实现部分分离,使它们都可以独立地变化。
  16. Open-Close原则的含义是一个软件实体( 应当对扩展开放,对修改关闭 )
  17. 开闭原则不允许修改源代码
  18. 单一职责:每一个类应该专注于做一件事情,当一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装在不同的类中。
  19. 低层模块依赖于高层模块,细节可以依赖抽象低—>高 / 细节—>抽象
  20. 面向对象设计:针对接口编程,而不是针对实现编程。
  21. 依赖倒置原则:就是要依赖于( 抽象 ),或者说要针对接口编程,不要针对实现编程。
  22. 继承是动态的,在系统编译时就已经决定了对象的行为(X)。
  23. 里氏替换原则指的是父类型和子类型之间可以相互替换(X
  24. 原型 )模式的关键是将一个对象定义为原型,并为其提供复制自己的方法。
  25. 创建型模式有( 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 )
  26. 结构型模式(代理模式、适配器模式、桥接模式、装饰模式、享元模式、组合模式)
  27. 行为型模式(职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式)
  28. 我们可以使用( 单例模式 )来模拟实现打印池的设计。
  29. 我们可以使用( 单例模式 )来模拟实现居民身份证号码办理。
  30. 单例模式能保证一个类只能产生一个唯一的实例
  31. 可以使用( 建造者模式 )描述KFC如何创建套餐。
  32. 创建型模式关注的是对象创建。
  33. 简单工厂模式的核心是(  简单工厂  )
  34. 简单工厂模式中,如果需要增加新的具体产品,通常需要修改(工厂类)的源代码
  35. 工厂方法模式的核心是( 一个抽象工厂 )、工厂模式就是为了消除if else
  36. 简单工厂模式可减少系统中类的个数,简化系统的设计,使得系统更易于理解(X
  37. 原型模式中,不需要为每一个类配置一个克隆方法,因此对于原型模式的扩展很灵活,对于已有类的改造也较为容易(X)(需要为每一个类配备一个克隆方法
  38. 在( 防止一个资源管理器窗口被实例化多次 )时可以使用单例模式。
  39. 抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么被创建,确保系统总能根据当前的情况获得合适的对象(
  40. 抽象工厂模式针对的是多个产品族结构,一个产品族内有多个产品系列,不是一个产品等级结构、一个抽象产品类。(
  41. 工厂方法模式只有一个抽象产品类(
  42. 工厂方法模式的具体工厂类可以创建多个具体产品类的实现(X
  43. 简单工厂模式完全符合“开闭原则”(X
  44. 单例模式和原型模式是冲突的(
  45. 单例模式适用于当类只有一个实例,而且客户可以从一个公共的访问点访问它(
  46. 在并发的情况下,懒汉式单例模式是不安全的(
  47. 可以把饿汉式单例模式看成是预加载,懒汉式单例模式则为延迟加载(
  48. 将一个类的接口转换成客户希望的另一个接口——适配器模式(Adapter)
  49. 使用( 代理模式 )来设计该权限管理模块。
  50. 可以使用( 桥接模式 )来模拟实现模拟毛笔的使用。
  51. 电源总开关、可以使用( 外观模式 )来模拟设计该系统。
  52. 策略模式的意图是:(定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换)策略模式使得算法可独立于使用它的客户而变化。

  1. 关于Scrum的每一次冲刺(Sprint),下面的( D )是正确的

A.Sprint是一个不超过4周的迭代,其长度一旦确定,将保持不变。

B.Sprint的产出是一个可用的、潜在可发布的产品增量。

C.Sprint在进行过程中,其开发目标、质量验收标准和团队组成不能发生变化。

D.以上所有选项

58. 下面的( A )不是敏捷开发方法的特点。

A.软件开发应该遵循严格受控的过程和详细的项目规划。

B.客户应该和开发团队在一起密切地工作 。

C.通过高度迭代和增量式的软件开发过程响应变化。

D.通过频繁地提供可以工作的软件来搜集人们对产品的反馈。

59. 在每日站立会议上,下面( C )不是每个团队成员需要回答的主要问题。

A.从上次Scrum站立会议后你做了什么?

B.你遇到哪些障碍或困难?

C.你所遇到问题的原因是什么?

D.你打算到下次Scrum站立会议完成什么?

60.下面的( A )不属于产品负责人(Product Owner)的职责范围.

A. 组织每日站立会议B.定义产品需求

B. 确定需求优先级

C. 验收迭代结果

D. 负责产品的投资回报

61.下列不是需求建模方法的是?(  B  )

A. 原型方法

B. 结构化设计方法

C. 面向对象的用例分析方法

D. 功能列表方法

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值