软考java题目_软件工程软考题目总结

本文总结了软件工程的相关知识,包括软件生命周期、软件特点、软件危机、软件工程的三要素,以及软件开发过程中的需求分析、设计、测试等阶段的关键点。详细介绍了软件质量特性、数据流图、ER图、软件测试分类、模块耦合与内聚等概念,并涵盖了软件维护工具、软件配置管理、敏捷开发方法等内容。
摘要由CSDN通过智能技术生成

软件工程

软件的生命周期: 问题定义、可行性研究、需求分析、概要设计、编码和单元测试、综合测试、软件维护。

软件特点:复杂性、不可见性、演化性。

软件危机的主要原因是

软件本身的特点及开发的方法。

软件危机:

开发和维护过程中的一系列问题。

软件工程的三要素:

过程、方法、工具。

软件工程:一门交叉学科。目的消除软件危机。

可行性任务:经济可行性、技术可行性、操作可行性、法律可行性。

需求分析方法:功能模型(DFD数据流图)、数据模型(ER图实体关系图)、行为模型(状态转换图)、模型核心(数据字典)。

根据ISO/IEC9126定义,软件的六大质量特性:易用性、安全性、可靠性 、可用性、可维护性、可移植性。

ER图的基本要素:实体、属性、联系。

软件设计的两个定性度量标准(模块独立):耦合和内聚。

体系结构设计图形工具—层次图

数据流图分为变换型数据流图和事务型数据流图。

变换型数据流图基本呈线性形状,由输入、变换、输出三部分组成。

事务型数据流图

5c288333662e6ade8139c033d16277b1.png

cb06095195b899b4eb1e42e978364d1d.png

6d4a045c805556f964e2dd44c5e1402d.png

353502b1fda0d0787a5aeebf5bef8de2.png

c2952537b9e45fd73f436db86166a8f9.png

d9241165f0be4d1f905d45ba4d362bad.png

702d9aad2facd6646dd39e5b0fd5b877.png

4ea048c704858219ffdea23b93edd265.png

测试分类:单元测试、集成测试、系统测试、验收测试。

单元测试:一般由开发人员执行,采用白盒测试(结构测试)。

集成测试:一般由测试人员执行,采用黑盒测试(功能测试)。

系统测试:在实际运行环境或模拟实际运行环境下,针对系统非功能特性所做的测试。

验收测试是目的验证软件的功能和性能是否满足用户预期的要求。

回归测试:是指修改了旧代码,重新进行测试,已经确认修改没有引入新的错误。

黑盒测试主要测试功能,方法为等价类划分法,正交实验法,因果法,边界值分析、场景法、决策表法等。

状态转化图的组成:状态(初态、终态、中间终态)、事件。

非功能需求:性能需求(速度、容量、负载、及时性)、质量属性、对外接口(硬件接口,软件接口等)、约束。

数据流图是结构化分析的工具,结构化方法就是采用自顶向下逐层分解的思想进行分析建模的。随着分解层次的增加,抽象的级别也越来越低,即越来越接近问题的解。数据流图建模应遵循:自顶向下、从抽象到具体的原则。

模块结构图的主要组成有:模块、调用、数据、控制信息和转接符号。

结构图的基本成分:模块、调用、控制。

程序设计语言的基本成分包括数据、运算、控制和传输等。程序设计语言的控制成分包括顺序、选择和循环3种结构。

原型模式不能用来指导代码优化。

数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

瞬时内聚:所包含的任务必须在同一时间间隔内执行(如初始化模块)。

逻辑内聚:完成逻辑上相关的一组任务。

顺序内聚:处理元素相关,而且必须顺序执行。

外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。

6d249435f9d80e50b7d79f19fe6c5af9.png

人机交互“黄金三原则”包括:置于用户控制之下、减少用户的记忆负担、保持界面的一致性。

fef1c8ada5e143fe05a6a29d3cae4a7f.png

40edd5e36b437eb47d78cc568951dd09.png

A.因为一个高效的测试尽可能用少量的代码。

白盒测试:白盒测试中语句覆盖是覆盖度最弱的,所以路径覆盖往往能比语句覆盖发现更多的错误。

14a6fd7cb45afcdf3b4cf35719f3c343.png

7b7f482034f4e6b60c0e10ce891238e1.png

类图:展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中,最常见的就是类图,它给出系统的静态设计视图。

对象图:展现了某一时刻一组对象以及它们之间的关系。

用例图:展现了一组用例、参与者(Actor)以及它们之间的关系。

组件图:展现了一组组件之间的组织和依赖。

序列图:强调消息时间顺序的交互图。

通信图:也是一种交互图,它强调收发消息的对象或参与者的结构组织。

部署图:是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。

顺序图也叫序列图,展示了一个用例和多个对象的行为。

什么是基本事件流和备选事件流?

52851a6bd54645a609db0cd8cfd008eb.png

133de42c044ef5ca2f116c81fa9dd851.png

数据字典有以下4类条目:数据流,数据项,数据存储和基本加工。

f6a8733e5a06e613c073a1eb865dac3a.png

29fdffd5ea682a4a6eb0b71c33d66091.png

辅助软件维护过程中的活动的软件称为“软件维护工具”,它辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有:1、版本控制工具;2、文档分析工具;3、开发信息库工具;、4、逆向工程工具;5、再工程工具;6、配置管理支持工具。

概要设计文档主要包括:软件体系总体结构设计;数据结构及数据库设计。

a3ff89eaeaa2efbe90667da6d8d0841f.png

类图:就是举了一个例子,有父类,有子类。

组件图:各个组件之间的依赖关系。

通信图:有路径有序号。

部署图:面向对象的物理建模,是静态部署。

通信图的好处就是方便观察对象之间的消息流及其顺序。

大题:实体联系图的联系表示:1:1、1:n 和 m:n (或 1:1、1:*和*:*)。

软件工程的基本要素包括方法、工具和过程。

8b7bb3aa96c140f282ff4bb2326a126b.png

562890c9ec76d6fae62a13b5ad484974.png

瀑布模型:将软件生存周期各个活动规定为线性顺序连接的若干阶段的模型,规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。这种方法是一种理想的开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。

原型模型:从初始的原型逐步演化成最终软件产品,特别适用于对软件需求缺乏准确认识的情况。

增量模型:是把软件产品作为一系列的增量构件来设计、编码、集成和测试,可以在增量开发过程中逐步理解需求。

螺旋:将瀑布模型与快速原型模型结合起来,并且加入两种模型均忽略了的风险分析,适用于复杂的大型软件。

a7cd9f0869609476d5f64f87f9073b6e.png

极限编程XP:是激发开发人员创造性、使得管理负担最小的一组技术.。

水晶法Crystal:认为每—个不同的项目都需要一套不同的策略、约定和方法论。

并列争球法(Scrum)使用迭代的方法:其中把每30天一次的迭代称为个冲刺, 并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。

f382a5502d41e73d046392c9e0d1a617.png

软件配置管理SCM:其主要内容包括版本管理、配置支持、变更支持、过 程支持、团队支持、变化报告和审计支持等。

8cac2962a925a4b58c5cf94f5277b23c.png

模块内聚类型从高到低依次为功能、通信、顺序、过程、时间、逻辑和偶然内聚。

一个模块内的几个操作是相关的,而且必须以特定的次序执行,则该模块的内聚类型为过程内聚。

模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行, 则该模块的内聚类型为时间内聚。

若一个模块的各个部分只是通过代码的逻辑结构相关联,则该模块的内聚类型为逻辑内聚。

把访问或操作在同一数据结构的操作放在一个模块中,则该模块的内聚类型为通信内聚。

面向对象的4个核心概念是对象、类、继承和消息传递。

fc2e1068bf7047ae655b99617e7f0fcc.png

6de0e90e5ce8e7c932fb86e9adb62219.png

138997fd7c3fd8938ae65ff375481948.png

根据题意部门和员工关系进行自然连接运算,应该去掉一个重复属性“部门代码”,所以自然连接运算的结果集为7元关系。

0d4a2b0e8074c8c010f21b530036f2f9.png

人员管理是软件项目管理的一个重要部分,在组织开发团队时,应该考虑开发人员的工作能力、知识背景、工作风格、兴趣爱好等多方面的因素。每个成员的工作任务分配清楚,不应该参与所有阶段的工作。当项目进度滞后于项目计划时,增加开发人员不一定可以加快开发进度。

f6a245c43361c01e379286cc300e6c5f.png

在这几种开发过程模型中,原型模型不适宜大规模软件的开发。

a7ae7f4b9843d44c76b3998acda6614a.png

abedab16e5cff2e2273598f9449a984c.png

42d7abdd1454be35e03827e5c4b8fa0b.png

逆向工程从源代码得到软件系统的规格说明和设计信息,属于软件维护阶段行为,因此逆向工程工具属于软件维护工具。

e696646181c13941b9e5cb5df251569e.png

ca600ca5936d5dc41e6947f763fa3e76.png

dd53055767e3deb847e0341a48d215cf.png

af87c83879fc1524380cb7f74a28bcf0.png

3ffe1e758e1eefedd6e5f693b7167859.png

数据流图用来记录系统中的数据和数据在特定的过程中的流动,即数据如何被采集、处理、保存和使用的(围绕信息系统的功能)。

外部实体指系统之外又与系统有联系的人或事物。它表达了该系统数据的外部来源和去处。

d5fdc9be49eeb02b6a403dd0c18e7d25.png

软件体系结构图属于概要设计阶段的工作内容

96809068cd1be983151299d2404150e9.png

1d10381aeefb5e3519d8b5235f5f38f6.png

采用了三明治的测试策略

从先测试A,再测试A、B、C、D可以看出集成测试时用到了自顶向下的方式。而从先测试E、F,再测试B、E、F可以看出集成测试时用到了自底向上的方式,两者结合即为三明治方式。

策略优点:

1.较早地验证了主要的控制和判断点且较早地验证了底层模块。

2.同时由于可以两端向中间发展,所以效率也是比较高的。

3.且运用一定的技巧,能够减少了桩模块和驱动模块的开发。

ca254ea799414c2a5c906ac613bdf5ea.png

参与者是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象。

48ffa35d4ac91f618408effc73b7f575.png

12a245bee7846ac35d4d23945b2b4ca9.png

0b15a14ac71f4f50e2d280da18ab896e.png

据库设计中规范化是在逻辑设计阶段进行的一项工作,该工作负责把关系模式进行规范,以减少冗余,以及一定程度上消除修改异常,插入异常及删除异常。

4e341c3d5edfc1f9a037ef7eb9e67035.png

体系结构设计:主要是指要开发的系统中包含哪些部件,这些部件与部件之间的关系就是体系结构的设计。

数据设计:也称为数据库设计,主要包含数据库的设计和这个数据所包含的核心表的设计。

接口设计:用于子系统和模块之间或者内部系统和外部系统之间的各种交互,如功能描述,输入输出的定义,错误处理的设计。

过程设计:也称为模块详细设计,主要是详细模块的实现算法,以及模块所使用的数据结构。

b198acf9f91f80690c976661a5f921f6.png

107391a906af5de42cbc1bfd9b52b1e0.png

对于较大型软件系统的需求往往难以在前期确定,所以瀑布模型最不适合。

7ae9450e40180434523979e9b3f9476d.png

可移植性包含:适应性、易安装性、共存性和易替换性四个特性。

4d8faaa2d987b9ea363307180cf0fbea.png

答案:C D

路径覆盖:检测流程图有多少种路径,总共有6种路径

环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。

V(G)=E-N+2=10-8+2=4。

0fb087136b1b274529fca681f4819658.png

263db6b334aa6fe54acaa00e7054035e.png

a845cfd8bdce2f791b0942b22f07d4d7.png

c4b0d0e4be794c45fac8b416beabd8ab.png

03138ba2cf312f945ddd6ccea104f86e.png

ffa2fbed591cb2c98bc4cd811e8bd629.png

c4760c27e4c0222b8e6a735f0d0974a6.png

ab23b52d3e758170adfb79f0034bc41d.png

b289e357d7daf082f0f42e7ca5a4fa4b.png

巧合内聚也称偶然内聚,模块内各部分之间没有联系,或即使有联系,也很松散,是内聚程序最低的模块。

f2ef217ebc417ca2a8bf29b1b399ec6e.png

f4f1f3ad13fe073f4b452ade3b191f78.png

58e09118fd090bd9ee86391361b9dec9.png

数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。在实际情况中并非总有一个属性是键,为描述这类情况,E-R图引入了弱实体元素。即没有键属性的实体型。例如本地电话号码、寝室等(如果其仅按照顺序编号的话),对应地,存在键属性的实体型则为强实体型。

8e352a117ee3db4fea1b8ce26a3c8aca.png

风险管理属于风险控制。

9146f730b7d7067664c1f1fe82a8795e.png

4大价值观:沟通,简单性,简单,反馈与勇气;

5个原则:快速反馈,简单性假设,逐步修改,提倡更改和优质工作

12个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试现行(先写测试代码,然后再编写程序)、重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40个小时、现场客户和编码标准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值