1.瀑布模型优缺点
(1)优点:
可强迫开发人员采用规范(结构化)方法——
PS:结构化分析方法:面向数据流自顶向下逐步求精进行需求分析的方法
严格规定每个阶段必须提交的文档
(2)缺点:
文档驱动——依赖书面的规格说明,导致最终产品不满足用户需求。
(3)适用范围:需求明确,小规模开发
2.黑盒&白盒
(1)黑盒:
把程序看做黑盒子不考虑程序内部结构和处理过程。
只检查程序能否按照规格说明书正常使用,功能测试。
(2)白盒:
与黑盒相反,测试者知道程序的结构和处理算法,即按照程序的内部逻辑测试程序。
白盒测试在测试的早期阶段,黑盒测试在测试的后期。
3.软件生命周期模型
软件定义、软件开发、运行维护(软件维护)
通常使用生命周期模型简洁地描述软件过程,
也称过程模型:瀑布模型、快速还原模型、增量模型、螺旋模型、喷泉模型。
4.单元测试的5个测试重点
模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件。
5.软件工程方法学三要素
(1)方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题
(2)工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境
(3)过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤
6.详细设计的基本任务
详细设计即过程设计,通过对结构表示进行细化,得到软件详细的数据结构和算法,
其基本目就是回答详尽、精确地描述系统个模块的具体实现方法。
描述方法有:程序流程图、盒图、PAD图、判定表、判定树、jackson图、warnier图。
7.E-R图(实体-联系)
实体-联系方法,描述现实世界的概念模型。
栗子
两个实体之间的联系:如多对多:
8.需求分析的3种模型及工具
(1)数据模型:实体-联系图(E-R图)
(2)功能模型:数据规范化
(3)行为模型:状态转换图(或简称为状态图),通过描绘系统的状态转换的事件,来表示系统的行为。同时提供建模机制。
9.软件配置管理的作用
主要任务:控制变化,同时负责各个软件配置项等。
具体任务:标致软件配置中的对象;版本、变化控制;配置审计;状态报告。
10.软工的基本原理
(1)用分阶段的生命周期计划严格管理
(2)坚持进行阶段审评、严格的产品控制、结果应能清楚地审查
(3)开发人员少而精
(4)承认不断改进软件工程实践的必要性
软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
11.软工的方法学
方法学即范型,是软件生命周期全过程中使用的一套技术方法的集合。
(1)传统方法学
又称生命周期方法学或结构化范型。
它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务
(2)OOP方法学
以数据为主线。
①把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构建
②把所有对象都划分成类(class)
③按照父类(或称为基类)与子类(或称为派生类)的关系,把若干相关类组成一个层次结构的系统(已成为类等级)(继承)
④对象彼此间仅能通过发送消息互相联系
12.详细设计的步骤
大致过程可以理解为:
一、先宏观算法,再根据需求微观模块、接口,最后打杂:数据库、测试用例、文档。
二、开工:编码、单元&综合测试,最后软件维护。
详细设计的具体过程:
(1)为每个模块进行详细的算法设计(用图形、表格等描述算法)。
(2)对模块内的数据结构设计。
对需求分析、概要设计确定的概念性的数据结构进行确切的定义。
(3)模块接口设计。
(4)其他设计:数据库、代码、输入or输出格式设计。
(5)模块测试用例的设计
(6)写说明书,形成正式文档
(7)编码和单元测试
(8)综合测试:如集成测试和验收测试
(9)软件维护
13.多态性
指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。
14.OOP开发的建模
OOP开发软件,通常要建立的3种形式的模型:
(1)对象模型:描述系统数据结构,表示静态的、结构化的系统的“数据”性质
(2)动态模型:描述系统控制结构,表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。
(3)功能模型:描述系统功能,表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。
15.开发时期的4阶段
(1)总体设计 (2)详细设计
(3)编码和单元测试 (4)综合测试
其中,每个阶段都有以下基本任务:
(1)问题定义:“要解决的问题是什么”
(2)可行性研究:“对于上一个阶段所确定的问题有行得通的解决办法吗”
(3)需求分析:准确确定“为了解决这个问题,目标系统必须做什么”
(4)总体设计:“概括地说,应该怎样实现目标系统?”
(5)详细设计:把问题具体化,“应该怎样具体实现这个系统呢?”
16.过程设计的工具
也即详细设计的工具:
(1)程序流程图,又称为程序框图。
主要缺点有:不是逐步求精的好工具;程序员不受任何约束,随意转移控制;不易表示数据结构。
(2)盒图,有如下特点:
功能域(即一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来;
不可能任意转移控制;
很容易确定局部和全程数据的作用域;
很容易表现嵌套关系,也可以表示模块的层次结构。
(3)PAD图,是问题分析图(problem analysis diagram)的英文缩写,
用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易,
主要优点有:
使用表示结构化控制结构的PAD符号设计出来的必定是PAD程序;
程序结构十分清晰;
用PAD图表示程序逻辑,易懂、易读、易记;
容易转化成高级语言源程序;
可用于表示程序逻辑;
支持自顶向下,逐步求精。
(4)判定表
(5)判定树
(6)过程设计语言(PDL),也称为伪码。
17.系统流程图
系统流程图是概括地描绘物理系统(硬件)的传统工具,
它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。
表达的是数据在系统各部件之间流动的情况,是物理数据流程图,而不是程序流程图。(程序流程图有分支、判定结点,主要描绘控制过程)
系统的逻辑模型=数据流图+数据字典。
18.测试&调试
1.测试
在软件投入生产运行前,发现错误。
软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行测试
2.调试
通过测试发现错误后诊断并改正错误。
调试途径:蛮干法、回溯法、原因排除法(对分查找法、归纳法、演绎法)
19.人机交互
(1)设计人机界面遇到的四个问题:
系统响应时间、用户帮助设施、出错信息处理、命令交互
(2)人机设计指南:
一般交互指南、信息显示指南、数据输入指南
20.结构化设计方法
称SD方法, 即基于数据流的设计方法。
目标:给出设计软件结构的一个系统化的途径。
信息流的两种类型:变换流、事务流。
21.IPO图
(1)IPO图是输入、处理、输出图的简称,
它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系
(2)基本形式是在左边的框中列出有关的处理数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据。处理框中列出处理的次序暗示了执行的顺序,但是用这些基本符号还不足以精确描述执行处理的详细情况
(3)适合于需求分析阶段的需要
22.层次方框图
(1)系统分析员从对顶层信息的分类开始,沿途中每条路反复细化,直到确定了数据结构的全部细节时为止;
(2)用树形结构的一系列多层次的矩形框描绘数据的层次结构
(3)适合于需求分析阶段的需要
23.Warnier图
(1)用花括号{表示层次关系,在同一括号下,自上到下是顺序排列的数据项,在有些数据项名字后面附加了圆括号,给出该数据项重复的次数
(2)和层次方框图类似,用树形结构描绘信息,
但提供了更为丰富的手段,可以表明信息的逻辑组织,也就是说,
它可以指出一类信息或一个信息元素是重复出现的,
也可以表示特定信息在某一类信息中是有条件地出现的
(3)适合于需求分析阶段的需要,可以转变成软件设计工具
24.模块化
是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,
而且有一个总体标识符代表它。
模块化就是把程序划分成独立命名且可独立访问的模块,
每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。(要确定合适的模块数量)