一.缩略词解释
BOM:浏览器对象模型
CASE:计算机辅助软件工程
CML:并行映射与定位
COCOMO:构造性成本模型
DD:数据字典(包括:数据流、数据元素、数据存储、数据处理)
DFA:面向数据流分析
DFD:数据流图
DMT:动态多线程结构
DOM:文档对象模型
ERD:实体关系图
MDA:模型驱动架构
MVC:模型视图控制器
OOA:面向对象分析
OOD:面向对象设计
PAD:问题分析图
PD:Powerdesigner
PDL:程序设计语言
PSL:问题陈述语言
SA:结构化分析方法
Scrum:敏捷开发框架
SD:结构化设计
SQA:软件质量检测
SQL:结构化查询语言
SREM:软件要求工程方法学
SRS:软件需求规格
UML:软件建模语言
二.当做选择判断源
ch1概述:
1.什么是软件工程:
是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
2.软件过程模型:瀑布模型、快速原型、螺旋模型、喷泉模型
3.软件生命周期的8个阶段:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护
ch2可行性分析:
可行性分析的三个方面:技术可行性、经济可行性、操作可行性
数据流图的四种成分:四种基本符号(正方形表示数据的源点或终点、圆角矩形代表变换数据的处理、开口矩形代表数据存储、箭头表示数据流)、例子、命名、用途
可行性研究报告的内容
ch3需求分析:
需求分析的任务:
1.确定对系统的综合要求:功能需求,性能需求,可靠性和可用性需求,出错处理需求,接口需求,约束,逆向需求,将来可能提出的要求;
2.分析系统的数据要求;
3.导出系统的逻辑模型;
4.修正系统开发计划。
需求规格说明书:通常用自然语言完整、准确、具体地描述系统的数据要求、功能需求,性能需求,可靠性和可用性需求,出错处理需求,接口需求,约束,逆向需求,将来可能提出的要求。
ch5总体设计(也称为概要设计或初步设计):
耦合(由低到高):数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合;设计原则为尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合;
内聚(由弱到强):低内聚分为偶然内聚、逻辑内聚、时间内聚;中内聚分为过程内聚、通信内聚;高内聚分为顺序内聚、功能内聚。
ch6详细设计
ch7实现
ch8维护
ch9面向对象方法学
三.问答题
1.制定测试计划,给出测试数据,写出测试程序
(1)产品概述
(2)测试任务及分配
(3)测试的阶段
(4)测试策略
(5)资源需求
(6)测试计划安排及进度
(7)软件缺陷报告
(8)度量和统计
(9)风险和问题
3.需求分析对测试的影响
一.什么是需求分析:
我理解的需求分析就是要弄清楚用户需要的是什么功能,用户会怎样使用系统。这样我们测试的时候才能更加清楚的知道系统该怎么样运行,才能更好的设计测试用例,才能更好的测试。
测试需求分析是测试工作的第一步,经过需求分析,对原始需求列表中列出的每一个需求点,找到我们需要测试的测试要点;针对所确定的测试要点,分析测试执行时对应的测试方案/方法。
二。为什么要做需求分析
1需求分析的必要性
如果要成功的做一个测试项目,首先必须了解测试规模、复杂程度与可能存在的风险,这些都需要通过详细的测试需求来了解。测试需求不明确,只会造成获取的信息不正确,无法对所测软件有一个清晰全面的认识,测试计划就毫无根据可言,只凭感觉不做详细了解就下定论的项目是失败的。
测试需求分析越详细精准,表明对所测软件的了解越深,对所要进行的任务内容就越清晰,就更有把握保证测试的质量与进度。
整个测试活动的依据来源于测试需求,所以需求分析是整个测试活动必不可少的环节。
2、不做需求分析的后果
不做需求分析或需求分析不到位,可能会产生很严重的问题,比如:
(1浪费时间和资源实现了用户不需要的需求;
(2遗漏了需求文档中没提到,但很重要的需求,导致客户满意度降低。
(3需求分析不到位,错误的估计了测试的工作量,导致延误发布周期,可能会降低发布质量。
5.软件体系结构的意义
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。软件体系结构在软件开发的各个阶段都起到了十分重要的作用.它不但可以控制软件的复杂性和提供高层次的复用,而且作为工程计划的前期工作,软件体系结构可以使开发者更早的从全局考虑关键性设计问题,从而保持整个软件系统的一致性。
或者
体系结构是风险承担者进行交流的手段,体系结构是早期设计决策的体现,它明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性,可以预测软件的质量,是推理和控制更改更简单,有助于循序渐进的原型设计。同时,软件体系结构是可传递和可重用的模型。
6.软件项目的可行性:
可行性分析就是用最小的代价在尽可能短的时间内确定问题是否能够解决,它有三个方面:技术可行性、经济可行性、操作可行性。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。
7.软件复用的意义:
软件复用技术对提高软件产业效率,推进软件产业真正走上工程化、工业化具有如下重要意义。
1)提高生产率
软件复用最明显的好处在于提高生产率,从而减少开发代价。生产率的提高不仅体现在代码开发阶段。在分析、设计及测试阶段同样可以利用重用来节省开销。
2)减少维护代价
3)提高互操作性
4)支持快速原型
5)减少培训开销
软件复用技术还有利于减少培训开销,即雇员在熟悉任务时所需的非正式的开销程师将使用一个可复用构件库,其中的构件都是他们所熟悉和精通的。
8.静态测试的意义:
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
其重要意义在于提高测试效率。在软件程序编写阶段同时进行静态测试,不仅有利于精简代码需求量及结构设计,提高代码可读性,同时避免低级的代码文本编写错误,提高动态测试效率及程序运行效率,避免可能的大工作量的再次劳动,能极大提高软件开发效率。
9.需求获取的步骤:
1.开发高层的业务模型
2.定义项目范围和高层需求
3.识别用户类和用户代表
4.获取具体的需求
5.确定目标系统的业务工作流
6.需求整理与总结
10.高内聚,低耦合
高内聚低耦合是判断设计好坏的标准,耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
简而言之:高内聚就是说相关度比较高的部分尽可能的集中,不要分散;低耦合就是说两个相关的模块尽可以能把依赖的部分降低到最小,不要让两个系统产生强依赖。
(内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事,它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。)
11.软件测试在软件开发各阶段中的体现
软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。单元测试:对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。集成测试:是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。确认测试:主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。系统测试:是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。
12.如何实现进度管理
目标:确保软件项目在规定的时间内按期完成
项目进度管理任务:1、定义所有的项目任务以及它们之间的依赖关系;2、制订项目的进度安排;3、规划每个任务所需的工作量和持续时间;4、在项目开发过程中不断跟踪项目的执行情况,发现那些未按计划进度完成的任务对整个项目工期的影响,并及时进行调整
2.面向对象的基本设计模式在项目中的应用
(面向对象的特点是:封装,多态,继承。其中多态又分为重载和重写。面向对象的编程思想更加接近现实的事物。有这样几点好处:1、编程更加容易。因为面向对象更接近于现实,所以你可以从现实的东西出发,进行适当的抽象。2、在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚。3、在设计模式上(似乎只有面向对象才涉及设计模式),面向对象可以更好地实现开-闭原则,也使代码更易阅读。相对而言,面向过程的程序设计是面向对象程序设计的基础,面向对象的程序里面一定会有面向过程的程序片段的。)
(1)面向对象设计模式解决的是“类与相互通信的对象之间的组织关系”,包括它们的角色、职责、协作方式几个方面;(2)面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是那些可以满足“应对变化,提高服用”的设计;(3)面向对象设计模式描述的是软件设计,因此它是独立于编程语言的,但是面向对象设计模式的最终实现仍然要使用面向对象编程语言来表达。
(面对向对象设计的一般步骤:1、系统设计;2、对象设计;3、消息设计;4、复审)
4.软件如何部署(未查到也未再查)
参考评分标准:结合具体实验项目6w(What,Where,when,who,why,how?)(4分);理论部分(3分);联系实际部分(3分)
选择、判断、名词解释共四十分,问答题共六十分。
乔阿麦赞赏
人赞赏