一、软件工程知识点 简要总结

1.软件基础知识

瀑布模型:

我感觉整个《软件工程》书的布局就是按照瀑布模型来的,上面右图少个运维。

2.UML图

2.1 用例图 UseCase Diagram

用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。

从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

2.2 类图 Class Diagram

用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

  各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

例子:

2.3 时序图 Sequence Diagram

时序图:描述了对象之间消息发送的先后顺序,强调时间顺序。

时序图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。

 

3. 设计模式 Design Pattern

几种主要的Java设计模式:

4. 软件测试方法

1.        软件测试方法:白盒测试、黑盒测试、灰盒测试、静态测试、动态测试

2.        白盒测试:是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。

白盒测试技术一般可被分为静态分析和动态分析两类技术。

2.1 静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。

2.2 动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插桩等。

白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。

白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。

3.        黑盒测试又叫功能测试,这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测对象的内部结构,运作情况对测试人员是不可见的,测试人员对被测产品的验证主要是根据其规格,验证其与规格的一致性。

在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等。

4.        灰盒测试:白盒测试和黑盒测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法,在黑盒测试中交叉使用白盒测试的方法。灰盒测试就是这类界于白盒测试和黑盒测试之间的测试。

最常见的灰盒测试是集成测试。

5.        静态测试:是一种不通过执行程序而进行测试的技术。它的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

6.        动态测试:包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。

单元测试属于白盒测试范畴;集成测试属于灰盒测试范畴;系统测试属于黑盒测试范畴。

二、软件工程测试题(参考百度文库)

单项选择题

1.瀑布模型的存在问题是( B  )

A.用户容易参与开发          B.缺乏灵活性

C.用户与开发者易沟通        D.适用可变需求

解析:瀑布模型各个阶段的划分完全固定、模型是线性的,用户只有等到整个过程的末期才能见到开发成果,不适应需求的变化,缺乏灵活性。

2.下列哪个阶段不属于软件生存周期的三大阶段(C )。

A、计划阶段                      B、开发阶段

C、编码阶段                      D、维护阶段

解析:软件的生存周期包括:计划阶段、开发阶段、维护阶段。编码是开发阶段的一部分。

3.在设计测试用例时,(  A    )是用得最多的一种黑盒测试方法。

A. 等价类划分    B. 边界值分析     C. 因果图       D. 判定表

解析:等价类划分是一种典型的黑盒测试方法。等价类划分是指分步骤把海量的测试用例集减得很小但过程同样有效。也就是说,选取足够小测试用例,发现更多软件缺陷。

解析:深度为3,宽度为3。A的扇出为3,t的扇入为2。     题目考察模块化编程中,各个函数的调用关系。  扇入:该模块被调用的次数,扇入大,说明该模块的复用性好;扇出:该模块调用其他模块的个数,扇出大,说明该模块的业务逻辑复杂。一般设计高扇入合理扇出(3到4)的函数。

5.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。

对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( A )

A.模块化的根据  B.逐步求精的根据  C.抽象的根据   D.信息隐藏和局部化的根据

解析:从 E(P1+P2)> E(P1)+E(P2)看出:整体的复杂性大于局部之和,所以需要模块化降低耦合带来的复杂性。

6.下列哪个图是N-S图(盒图)的构件(   C   )。

解析:A是PAD图,B是流程图,C是盒图,D是PAD图。

填空题

1.  软件生存周期一般可分为__________、可行性研究、__________、设计编码、__________、运行与维护阶段。

答案:问题定义    需求分析    测试

2. 大型软件测试包括__________、__________、确认测试和驱动测试四个步骤。

答案:单元测试    集成测试

3.将下面的关系按继承关系、聚集关系或普通关联进行分类。

小汽车---------Tesla  Model S跑车   __________     答案:  继承

小汽车---------驾驶员                     __________     答案: 普通关联

班级------------学生                        __________     答案: 聚集

判断题

1.软件生存周期是从软件开始开发到开发结束的整个时期。(  ×  )

解析:软件生命周期包含3大阶段: 计划阶段、开发阶段、维护阶段。 开发只是其中一个阶段。

2.扇出是一个模块直接调用的模块数目,一般推荐的扇出为3或4。(  √   )

解析:扇出是一个模块调用其他模块的数目,如果扇出过大,说明该模块的业务逻辑复杂,一般增加调用层数来降低扇出。

3.耦合用于衡量一个模块内部的各个元素彼此结合的紧密程度。(  × )

解析:内聚衡量模块内部紧密程度,耦合衡量模块之间的紧密程度。

4.软件测试的目的是证明程序没有错误。                             (   × )

解析:软件测试一般达到一定程度就结束了,A、B类核心代码100%无缺陷,C、D、E类缺陷允许存在一些。

简答题

1.  软件生命期各阶段的任务是什么?

答:软件生命期分为7个阶段:(阶段划分言之有理即可,也可以不是这7个阶段)
(1、问题定义:要解决的问题是什么

(2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性

(3、需求分析:系统必须做什么

(4、总体设计:系统如何实现,包括系统设计和结构设计

(5、详细设计:具体实现设计的系统

(6、实现:编码和测试

(7、运行维护:保证软件正常运行。

 2.     软件危机产生的原因是什么?

答:软件危机的原因:

a)     软件不同与硬件,是逻辑部件;

b)     软件规模庞大,逻辑结构复杂;

c)     软件开发人员和管理人员只重视设计程序而轻视用户的需求分析,导致最后研制出的软件产品无法满足用户的需求;

d)     软件设计技术和管理技术落后,没有统一的软件质量管理规范;

e)     在软件的开发与维护关系问题上存在错误的概念,重视开发,而轻视维护。

 3.     面向对象方法的优点有哪些?

答:面向对象方法学的优点:

(1)多角度模拟客观世界;

(2)具有较高的稳定性;

(3)重用性好;

(4)适合开发大型软件。

4.  什么是白盒测试?什么是黑盒测试?

答:白盒测试又称为结构测试,它的前提条件是可以看成将程序放在一个透明的白盒子中,也就是完全了解了软件系统的结构和整个处理过程。

黑盒测试又称为功能测试,它把程序看成是一个不透明的黑盒子,完全不去考虑程序的内部结构和处理过程。

5.  简述软件质量三要素及其具体包括的内容。

答:软件质量要素可以分为三类,

第一类要素表现软件的运行特征,包括正确性、可靠性、有效性、安全性和可用性;

第二类要素表现软件承受修改的能力,包括可维护性、灵活性和可测试性;

第三类要素表现软件对新环境的适应程度,包括可移植性、可重用性和可互操作性。

应用题

一、某一新闻管理系统主要用来发布新闻,管理员只需要一个,登录后可以 在后台发布新闻。任何人可以浏览新闻,浏览者可以注册成为系统会员,注册后 可对新闻进行评论。管理员在后台可以对新闻、评论、注册会员进行管理,如修改、删除。

请画出该新闻管理系统的用例图:

二、输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出”不能构成三角形”.

(1)用程序流程图表示该问题的算法;

(2)计算程序复杂度(路径个数);

(3)设计路径覆盖的测试用例。

答案:

(1)程序流程图:

(2)

(3)

试题参考百度文库:https://wenku.baidu.com/view/adf7f013e55c3b3567ec102de2bd960590c6d9a0.html

高软期末考试 B2C模式的更多相关文章

  1. 复旦大学2018--2019学年第二学期高等代数II期末考试情况分析

    一.期末考试成绩班级前十名 丁思成(99).周烁星(97).王捷翔(96).顾文颢(92).顾天翊(90).封清(89).张思哲(89).李哲蔚(88).陈钦品(88).邹年轶(88).王祝斌(88) ...

  2. 复旦大学2017--2018学年第二学期高等代数II期末考试情况分析

    一.期末考试成绩班级前十名 张菲诺(95).刘宇其(95).魏一鸣(93).郭宇城(92).程梓兼(91).葛珈玮(90).汪子怡(90).余张伟(90).张昰昊(89).朱柏青(89) 二.总成绩计 ...

  3. 复旦大学2015--2016学年第二学期高等代数II期末考试情况分析

    一.期末考试成绩班级前几名 胡晓波(90).杨彦婷(88).宋卓卿(85).唐指朝(84).陈建兵(83).宋沛颖(82).王昊越(81).白睿(80).韩沅伯(80).王艺楷(80).张漠林(80) ...

  4. 复旦大学2014--2015学年第二学期高等代数II期末考试情况分析

    一.期末考试成绩班级前几名 钱列(100).王华(92).李笑尘(92).金羽佳(91).李卓凡(91).包振航(91).董麒麟(90).张钧瑞(90).陆毕晨(90).刘杰(90).黄成晗(90). ...

  5. 复旦大学2014--2015学年第一学期高等代数I期末考试情况分析

    一.期末考试成绩班级前几名 金羽佳(92).包振航(91).陈品翰(91).孙浩然(90).李卓凡(85).张钧瑞(84).郭昱君(84).董麒麟(84).张诚纯(84).叶瑜(84) 二.总成绩计算 ...

  6. 复旦大学2016--2017学年第一学期高等代数I期末考试情况分析

    一.期末考试成绩班级前十名 宁盛臻(100).朱民哲(92).徐钰伦(86).范凌虎(85).沈伊南(84).何陶然(84).丁知愚(83).焦思邈(83).董瀚泽(82).钱信(81) 二.总成绩计 ...

  7. 复旦大学2018--2019学年第一学期高等代数I期末考试情况分析

    一.期末考试成绩90分以上的同学(共21人) 周烁星(99).封清(99).叶雨阳(97).周子翔(96).王捷翔(96).张思哲(95).丁思成(94).陈宇杰(94).谢永乐(93).张哲维(93 ...

  8. 复旦大学2017--2018学年第一学期高等代数I期末考试情况分析

    一.期末考试成绩班级前十名 郭宇城(100).魏一鸣(93).乔嘉玮(92).刘宇其(90).朱柏青(90).王成文健(90).方博越(88).熊子恺(88).张君格(88).崔镇涛(87).史书珣( ...

  9. 复旦大学2016--2017学年第二学期高等代数II期末考试情况分析

    一.期末考试成绩班级前十五名 林晨(93).朱民哲(92).何陶然(91).徐钰伦(91).吴嘉诚(91).于鸿宝(91).宁盛臻(90).杨锦文(89).占文韬(88).章俊鑫(87).颜匡萱(87 ...

随机推荐

  1. Linux下Docker的安装与使用

    yum安装Docker最新版和docker-compose(超级简单的安装方法) Install Docker 首先安装依赖 yum install -y yum-utils device-mappe ...

  2. 结巴分词 java 高性能实现,是 huaban jieba 速度的 2倍

    Segment Segment 是基于结巴分词词库实现的更加灵活,高性能的 java 分词实现. 变更日志 创作目的 分词是做 NLP 相关工作,非常基础的一项功能. jieba-analysis 作 ...

  3. Java ArrayList类的简单介绍

    ArrayList类的说明: ArrayList类是List接口的实现类,java.util.ArrayList集合数据存储的结构是数组结构. 特点: 元素增删慢,查找快.(由于日常开发中使用最多的功 ...

  4. const和volitale

    1. const只读变量 const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间(可以通过指针修改) const修饰的全局变量在全局数据区分配空间(指针也修改不了) con ...

  5. JMeter——jmx脚本文件解析

    <!--Jmeter版本信息--> <?xml version="1.0" encoding="UTF-8"?> <jmeterT ...

  6. java Random类(API)

    一.过程 1.导包 2.实例化 3.使用(类的成员方法) 二.作用 生成随机数,与python中random 相似 三.常用方法 1.nextInt(),随机生成int数据类型范围的数 2.nextI ...

  7. spring cloud的配置

    注解篇 @EnableEurekaServer 注解启动一个服务注册中心提供给其他应用进行对话 @EnableDiscoveryClient 激活Eureka中的DiscoveryClient实现 配 ...

  8. Manipulating Data from Oracle Object Storage to ADW with Oracle Data Integrator (ODI)

    0. Introduction and Prerequisites This article presents an overview on how to use Oracle Data Integr ...

  9. moco响应中文乱码

    moco版本为:moco-runner-standalone-0.11.1.jar 在一次使用moco框架的时候,浏览器查看响应时,发现返回来的中文是乱码. 按照网上的操作,在响应结果中加上heade ...

  10. 共享excel工作簿