现代软件工程复习总结

第1,2章  本章的主要题型是选择题和简答题。

  1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。

2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。

IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。

  3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。

  4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。

  5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。

  6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。

  7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。

  8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。

  9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。

  10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。

 

第3章  本章的题型主要是选择题。

  1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。

  2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。

  3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。

第4,5章  本章的题型有选择题。

  2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

  3. 软件需求可分解为四个层次:业务需求、用户需求、功能需求和非功能需求。

  4. 数据流程图是描绘系统逻辑模型的图形工具,只描绘信息在系统中的流动和处理情况,不反映系统中的物理部件,数据流程图使用四个标准符号。

  5. 数据字典主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。数据字典中所有的定义必须是严密的、精确的、无二义性的。

  6. 结构化分析的步骤:根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系用E-R图描述。以初始数据流程图为基础进行回溯,完善初始的数据流程图。对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。以数据流程图为核心,辅以数据字典和处理说明,将整个软件的功能要求、数据要求和运行要求和扩展要求逐一确认。画出软件功能结构图。修正开发计划。编写需求规格说明书和初始的用户手册。

  7. 需求规格说明书的主要内容:软件功能说明,软件性能要求、设计限制、外部接口要求。

 

第6章  包括选择题和应用题。

  1. 软件设计的主要原则:模块独立性和信息隐藏。

  2. 反映模块独立性有两个标准:内聚和耦合。内聚衡量一个模块内部各个元素彼此结合的紧密程度,耦合衡量模块之间彼此依赖的程度。

  3. 信息隐藏的核心内容是:一个模块中所包含的信息,不允许其他不需要这些信息的模块访问。

  4. 结构化设计是基于模块化的、自顶向下、逐步求精等概念上的设计方法。

  5. 结构化设计方法的步骤:首先分析数据流的类型,将数据流程图映射为程序结构图,优化设计结构,评审软件结构。

  6.应用题:画判定表

 

第7章  本章主要是选择题。

  1结构化方法存在的主要问题:①分析阶段的主要模型是数据流模型,设计阶段的主要模型是软件模块结构,数据流程图和软件模块结构图之间需要进行转换,转换有一定的随意性。②功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。③结构化设计将数据定义与处理数据的过程相分离,不利于软件复用。

  2. 什么是类?答:类是具有相同属性和相同行为的对象集合。对象是类的一个实例。对象之间通过发送消息相互通信。

  3. 类封装了属性和方法,封装隐藏了对象内部的处理细节。通过继承,子类拥有父类的所有属性和方法,并可以在继承父类的基础上进行扩展,添加新属性和方法;也可以改写父类的方法。通过多态技术使同一操作作用于不同类的实例时,产生不同的执行结果。

  4. UML是一种标准的图形化建模语言,它是面向对象分析与设计方法的表现手段。其本质表现是:它是一种可视化的建模语言,不是可视化的程序设计语言,不是工具或知识库的规格说明,不是过程,也不是方法,但允许任何一种过程和方法使用它。

  5. UML提供了5种视图(用例视图、逻辑视图、组件视图、并发视图和配置视图)

  6. UML有9种图(用例图、类图、对象图、状态图、顺序图、合作图、活动图、组件图、配置图)可以描述任何复杂的系统。

 

第8章 本章包括选择题和应用题。

  1. 向对象分析和设计用到的三个内容:一套完善的建模符号、一系列有效的分析步骤和一个方便易用的建模工具。

  2. 面向对象的分析模型由功能模型、对象模型和动态模型三部分组成。

  3. 功能模型由用例图和顺序图表示,对象模型由类图和对象图表示,动态模型由活动图、状态图和顺序图表示。

  4. 在分析对象模型中,分析类是概念层次上的内容,分为实体类、边界类和控制类三种类型。

  5. 应用题:给出一段需求描述,要求画出用例图和类图。

第9章 本章主要是选择题。

  1. 面向对象设计的内聚有:服务内聚和类内聚。耦合有两类:交互耦合和继承耦合。

  2. 面向对象的设计活动主要有:系统构架设计、用例设计、类设计、数据库设计和用户界面设计。

  3. 构架设计是以分析模型为输入,生成系统的物理构架、逻辑构架(子系统)及其接口、概要的设计类。根据分析阶段产生的高层类图和交互图,细化每个用例的类图,描述实现用例的类及其类之间的相互关系。详细设计每个类的属性、方法和关系。

 

第11章 本章主要是选择题。

  1. 选择程序设计语言考虑的因素:编程人员的水平和编程经历,待开发软件的类型,算法和计算复杂性,数据结构的复杂性,软件的开发成本和时间要求,软件的可移植性要求,可用的软件工具。

  2. 程序设计的风格主要考虑:基本风格、可读性、正确性和容错性、可重用和可移植性、输入和输出风格。

  3. 代码检查是一种有效的代码错误检测技术,通过阅读代码,并进行提问和讨论,从而发现可能存在的缺陷、遗漏和矛盾的地方。

 

第13章 本章包括选择题、简答题和应用题。

  1. 软件测试的定义:是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。

  2. 单元测试集中于每一个独立的模块;集成测试集中于模块的组装;系统测试确保整个系统与系统的功能需求和非功能需求保持一致;验收测试是用户根据验收标准,在开发环境或模拟真实环境中执行的可用性、功能和性能测试。

  3. 软件测试技术大体上可以分成白盒测试和黑盒测试。白盒测试技术依据的是程序的逻辑结构,主要包括逻辑覆盖方法;黑盒测试技术依据的是软件行为的描述,主要包括等价类划分、边界值分析测试等方法。

  4. 应用题:给出一段程序代码,要求做白盒测试用例的设计。




1.  简述你对软件工程的理解?(包括起源,定义,目标,内容,作用等)

1)软件工程的起源来自于软件危机的发生;

2)软件工程的定义:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。

3)软件工程的目标:开发满足用户需要、及时交付、不超过预算和无故障的软件

4)软件工程研究的主要内容:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。

提高软件开发的效率和质量。使软件开发标准化,工业化。

2.  什么是软件危机?

“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证

3.  什么是瀑布模型?

瀑布模型规定了软件生命周期的各项活动:问题定义、可行性研究、需求分析、软件设计、编码、测试、运行和维护。各项活动自顶向下、相互衔接如同瀑布一样

瀑布模型的优点:为软件开发划分了生命周期;为项目提供了按阶段划分的检查点

瀑布模型的缺点:整个过程的末期才能见到开发成果;各个阶段的划分完全固定,阶段之间产生大量的文档;早期的错误可能要等到开发后期的测试阶段才能发现

4.  什么是快速原型化模型?

在需求分析的同时,以较小的代价快速建立一个能够反映用户主要需求的原型系统

5.  什么是需求分析?需求分析阶段的基本任务是什么?

软件需求是指用户对软件的功能和性能要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么样的性能

需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

需求分析阶段的基本任务:定义系统边界;建立软件原型分析需求可行性;确定需求优先级;建立需求分析模型;创建数据字典;制定符合要求的系统开发计划

6.  什么是数据流程图?有几种图形元素,分别起什么作用?

一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换

数据流程图使用四个标准符号: 数据源点/终点; 处理; 数据流;数据存储

7.  什么是数据字典?在数据字典中定义数据时用的几种符号是什么?

数据字典主要用来描述数据流程图中的数据流、数据存储、处理过程和外部实体。数据字典中所有的定义必须是严密的、精确的、无二义性的。

符号

说明

例子

=

定义符

标识符=字母字符 + 字母数据串

+

用于连接两个数据分量

同上

[ ]

选择项

教师的职称=[讲师 | 副教授 | 教授]

{ }

重复项

级别=1{A}5,即级别是A,AA,…AAAAA

( )

可选项

曾用名=(姓名),曾用名可有可无

..

连接符

工龄= 1..50

8.  详细设计的基本任务是什么?结构化设计有那几种描述方法?

详细设计是对模块内部的处理过程进行设计,常用的方法有程序流程图、判定树、PDL

9.  模块的内聚有哪几种?模块间的耦合有哪几种?

1)内聚分为七种类型:

巧合内聚:一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚

逻辑内聚:当一个模块执行一系列相关的动作时,称其有逻辑内聚。

时间性内聚:当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。

过程内聚:模块执行的若干动作之间有顺序关系。

通信内聚:模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。

信息内聚:一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上,这样的模块叫做信息内聚。

功能性内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分

2)耦合分为七类:

内容耦合:如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。

公共耦合:如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。

外部耦合:如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。

控制耦合:如果模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的

数据结构耦合:当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。

数据耦合:如果两个模块传递的是数据项,则这两个模块是数据耦合。

非直接耦合:如果两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,这就是非直接耦合。

10. 面向对象分析的关键步骤有哪些?应建立哪几个模型?

关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;

应建立的模型有功能模型,对象模型,动态模型。

11. 面向对象设计的主要活动有哪些的?

面向对象的设计活动主要有:系统构架设计、用例设计、类设计、数据库设计和用户界面设计。

12. 面向对象设计的原则有哪些?

1)开闭原则:一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为,类结构应抽象化

2)替换原则:子类可以替换父类,但不能改变父类的行为

3)依赖原则:高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象

4)单一职责原则:在软件系统中,一个类只负责一个功能领域中的相应职责

5)接口隔离原则:采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好

13. UML中有哪几图,它们的作用分别是什么?

UML图包括九种:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。

1)用例图:用例图表示了角色和用例以及它们之间的关系。 

2)类图:是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。 

3)对象图:UML面向对象中对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。 

4)状态图:UML图中状态图用来描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。通常创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。 

5)时序图:又称顺序图,描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。

6)协作图:通过描绘对象之间消息的移动情况来反映具体的方案。显示对象及其交互关系的空间组织结构,而非交互的顺序。

7)活动图:UML面向对象中UML活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。 

8)组件图:UML图的组件图是用来反映代码的物理结构。显示系统组件间的结构关系。

9)配置图:UML面向对象中配置图描述系统中硬件和软件的物理配置情况和系统体系结构。

14. 测试的目的是什么?测试的核心问题是什么?为什么?

软件测试是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。

测试的核心问题是设计测试用例。因为穷举测试是不可能的。所谓穷举测试就是把程序所有可能的执行路径,或者所有的输入数据都检查一遍的测试。

15. 什么是白盒测试?有哪些覆盖标准?

白盒测试也叫结构测试,测试者需要了解被测程序的内部结构。白盒测试通常根据覆盖准则设计测试用例,有判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

白盒测试适用与单元测试、集成测试、系统测试


16.

1.  某银行计算机储蓄系统的工作流程大致如下:

储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人的姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。画出数据流程图.


  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值