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

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. day2(使用list和tuple)

    list list是一种有序的集合 >>>aaa = ['abc','bob','tracy'] >>>aaa ['abc','bob','tracy'] len( ...

  2. owa部署

    新建一台win server 2012(注意如果是2008要补丁) 配置静态ip DNS指向ad域的ip 测试: ping 下ad域的域名,是通的继续 把本机加入到ad域 重启下 用admin登陆: ...

  3. nodeJS实现识别验证码(tesseract-ocr+GraphicsMagick)

    背景 最近在写一个爬虫的小工具,卡在登录这里. 想爬的网站需要登录才能获取数据,登录又需要输入验证码. 好在验证码是简单的验证码,还可以自己识别试试. 需求分析 1.保存验证码图片 2.识别验证码 3 ...

  4. Sample Code之Take a screenshot of a SceneView

    周末事情太多了,以后就工作日发布随笔吧.周末的话,看心情,也许也会发~ 今天的实例代码解析是Take a screenshot of a SceneView,也就是获取快照,话不多说,进入正题. 首先 ...

  5. pandas操作mysql从放弃到入门

    目录 相关帮助文档 一.如何读取数据库-read_sql 二.如何筛选数据 三.如何连表-merge 四.如何删除一行或一列-drop 五.如何分组统计-groupyby 六.如何排序-sort_va ...

  6. Android布局属性与常用控件

    一.Android常用布局属性 1. LinearLayout的特有属性 android:orientation:设置布局排列方式   android:layout_weight:设置所占布局的权重  ...

  7. 关于爬虫的日常复习(2)—— urllib库

  8. pycharm 安装vue

    1.设置JS为ES6 2.安装vue.js 3.重启pycharm 4.检查

  9. Flsak学习笔记(1)

    Day 01 最近项目里要用python写后端,同学推荐了flask框架就来学一学.写这个博客的目的主要是记录一下自己学习的内容,有基础知识忘了不用一个个去百度,还有就是跟大家分享一下,有不是很容易理 ...

  10. 个人任务day7

    今日计划: 整合程序,排除错误. 昨日成果: 写注册界面.