软件工程

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

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

软件危机的主要原因是

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

软件危机:

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

软件工程的三要素:

过程、方法、工具。

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

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

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

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

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

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

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

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

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

事务型数据流图

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

通信图:有路径有序号。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

采用了三明治的测试策略

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

策略优点:

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

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

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

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

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

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

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

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

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

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

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

答案:C D

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

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

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

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

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

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

风险管理属于风险控制。

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

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

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

软考java题目_软件工程软考题目总结相关推荐

  1. 计算机考研要考java吗_计算机二级考JAVA还是C?

    前几天有学生问我,考计算机二级(全国计算机等级考试,National Computer Rank Examination,简称NCRE),是考C还是考JAVA.原因是他们上学期学习了C语言,这学期开始 ...

  2. 初中数学503个必考知识点_初中生物必考知识点总结_生物必考知识点指南

    初中生物看似简单,却为以后的生物学习奠定了基础知识,初中生物必考知识点有哪些?以下是小编收集整理的一些关于初中生物必考知识点总结_生物必考知识点指南,作为参考,希望你喜欢. 基因 概念:DNA分子很长 ...

  3. 通信工程本科生要考Java编程_请问本科“通信工程”这个专业有什么是要学的?...

    满意答案 19920306shi 2013.09.04 采纳率:41%    等级:11 已帮助:2592人 1.我只说专业必修课程,像高数,政经学我就不提了.专业必修课比较重要的有:基础课:通信原理 ...

  4. 面试题目_数据分析SQL面试题目9套汇总

    金九银十又是找工作的好季节啊,最近不少数据蛙数据分析社群同学,问到一些面试数据分析时的SQL题目,所以就结合大家的面试题目以及工作场景给大家总结了一些经典题目.同时也特别感谢001号同学和002号同学 ...

  5. 软考信息系统项目管理师_信息化与信息系统2_常规信息系统集成技术_软件工程---软考高级之信息系统项目管理师004

    然后我们继续看,信息化与信息系统,首先看常规信息系统集成技术,可以看到内容很多. 首先看网络交换,然后看一下定义,再看一下分类,不是特别重要,然后再看互联设备 互联设备也不是特别重要,但是,一般有个问 ...

  6. 中软国际入职java考核_中软国际技术人员入职试题2(Java)

    中软国际技术人员入职试题2(Java) Java 笔试试题 一.介绍JSP中常用的内部对象.(时间4分钟) 1 request 2 response 3 out 4 application 5 ses ...

  7. 中软国际java 学徒_辽宁建筑职业学院-中软国际 现代学徒制校企合作签约仪式...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2019年6月17日,辽宁建筑职业学院校领导一行莅临中软国际参观指导暨现代学徒制签约仪式隆重举行.中软国际教育集团执行CEO李佳历.中软国际大连ETC执行 ...

  8. java.强引用软引用,java 强引用、软引用、弱引用、虚引用-Go语言中文社区

    这篇文章的一个评论很有特点: 强引用: (一)强引用就是在程序代码之中普遍存在的,类似Object obj = new Object()这类的引用, 只要强引用还存在,垃圾收集器永远不会回收掉被引用的 ...

  9. 中软实训总结_中软实训总结

    中软实训总结 中软实训总结 时间过得说快也真快,转眼间年过去了,培训随之也结束了.回头想想,这几十天确实也学到了不少的东西,暂且不说学到的技术有多少,以后用到还是用不到,真正学到并了解了网站开发的流程 ...

最新文章

  1. 离散数学 消解算法判断合取范式的可满足性
  2. ORACLE 数据库性能 与裸设备
  3. 班尼机器人维修方法_梅州市ABB机器人控制器维修中心
  4. c#中textbox属性_C#.Net中的TextBox.Visible属性与示例
  5. java 数据纠错,纠错码简介
  6. python 递归遍历目录排序_python下递归遍历目录和文件
  7. mysql中游标能不能更新数据库_MySQL与MariaDB中游标的使用
  8. 用flash MX 制作 flash video
  9. 安卓dj专业打碟机软件_学DJ打碟必备设备
  10. VB DoEvents用法
  11. 数位板的主要参数解析
  12. C# 身份证号码验证正则和验证函数
  13. 开箱一款高精度智能手表,健康监测运动记录,你来评评是否值得
  14. 计算机中的科学计数法
  15. JN516x串口测试
  16. easyUI右侧搜索面板下拉列表框样例
  17. js中数组的高逼格操作(filter、sort、map、reduce)
  18. Docker服务的重启服务命令(systemctl restart docker)
  19. 你认为DAO是否可行?新年计划,卯足干劲,兔必No.1
  20. Linux的BSD格式什么意思,BSD 文件扩展名: 它是什么以及如何打开它?

热门文章

  1. linux gtx驱动程序,Nvidia 418.43 发布,支持GeForce GTX 1660 Ti的Linux图形驱动程序
  2. 【JUC高并发编程】—— 初见JUC
  3. 阿里云服务器采用AMD CPU处理器ECS实例规格详解
  4. 时间戳转换年月日——记一次字节面试题(C++实现)
  5. vue中使用echarts 使用记录
  6. 第89章、系统服务之SMS服务(从零开始学Android)
  7. 百度SEO高端软装设计装修设计公司网站源码
  8. 关于微信拉票之微信如何拉票及微信投票怎样拉票操作方法
  9. 函数——求三个数的最大值
  10. 区块链技术在中小企业型的应用