☆软件工程的本质特性:①软件工程关注于大型程序的构造②软件工程的中心课题是控制复杂性③软件经常变化④开发软件的效率非常重要⑤和谐地合作是开发软件的关键⑥软件必须有效地支持它的用户⑦在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。 ☆软件工程的基本原理:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。
☆软件工程方法学包含3个要素:方法、工具和过程。
☆软件生命周期:由软件定义、软件开发和软件维护3个时期组成(①问题定义②可行性研究③需求分析)(④总体设计⑤详细设计⑥编码和单元测试⑦综合测试)⑧软件维护 ☆瀑布模型的特点:①阶段见具有顺序性和依赖性②推迟实现的观点③质量保证的观点 ☆从技术可行性、经济可行性、操作可行性3个方面研究每种解法的可行性。可行性研究的目的不是解决问题,而是确定问题是否值得去解决,用最小的代价在尽可能短的时间内确认问题是否能够解决。
☆数据字典是关于数据的信息的集合,也就是对数据流图中所包含的所有元素的定义的集合,由对数据流、数据流分量(数据元素)、数据存储、处理4类元素的定义组成。 ☆由数据元素组成数据的方式只有下述3种基本类型:①顺序②选择③重复④可选是重复的特例
☆需求分析过程中应建立的3个模型:数据模型、功能模型、行为模型。
☆对软件系统的综合要求:①功能需求②性能需求③可靠性和可用性需求④出错处理需求⑤接口需求⑥约束⑦逆向需求⑧将来可能提出的要求。
☆数据对象是对软件必须理解的复合信息的抽象。
☆属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”(特殊属性)。 ☆①第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不包含内部结构②第二范式:满足第一范式条件,并且每个非关键字属性都由整个关键字决定③第三范式:符合第二范式条件,每个非关键字属性都由关键字决定,而且一个非关键字属性不依赖于另一个非关键字属性值,
☆4方面验证软件需求的正确性:一致性、完整性、现实性、有效性。
☆模块是由边界元素限定的相邻程序元素(如数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。
☆Miller法则:一个人在任何时候都只能把注意力集中在(7加或者减2)个知识块上。 ☆耦合式对一个软件结构内不同模块之间互联程度的度量,类型:数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合。
☆内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。高内聚(功能内聚、顺序内聚)中内聚(通信内聚、过程内聚)低内聚(时间内聚、逻辑内聚、偶然内聚)。
☆启发规则:①改进软件结构提高模块独立性②模块规模应该适中③深度、宽度、扇出和扇入都应适当④模块的作用域应该在控制域之内⑤力争降低模块接口的复杂程度⑥设计单入口单出口的模块⑦模块功能应该可以预测。
☆事务流:数据流沿输入通道到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流称为事务流。
☆经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE型分支和DO_WHILE型循环这3种基本控制结构;扩展的结构程序设计:除了上述3种基本控制结构之外,还允许使用DO_CASE型多分支结构和DO_UNTIL型循环结构;修正的结构程序设计:再允许使用LEAVE(或BRAKE)结构。
☆系统响应时间有两个重要属性,分别是长度和易变性。
☆计算环形复杂度的方法:①流图中的区域数等于环形复杂度②流图G的环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是结点数③流图G的环形复杂度V(G)=P+1,P是流图中判定结点的数目。
☆软件测试的目标或定义:①测试是为了发现程序中的错误而执行程序的过程②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案③成功的测试时发现了至今尚未发现的错误的测试。
☆软件测试准则:①所有测试都应该追溯到用户需求②应该远在测试之前就制定出测试计划③把Pareto原理应用到软件测试中④应该从“小模块”测试开始,并逐步进行“大规模”测试⑤穷举测试是不可能的⑥为了达到最佳的测试效果,应该由独立的第三方从事测试工作 ☆测试步骤:①模块测试②子系统测试③系统测试④验收测试⑤平行运行。
☆代码审查小组的成员:①组长,应该是一个很有能力的程序员,而且没有直接参与这项工程②程序的设计者③程序的编写者④程序的测试者。
☆Alpha和Beta测试区别:Alpha测试由用户在开发者的场所中运行,并且在开发者对用户的“指导”下进行测试。Alpha测试是在受控的环境中进行的。Beta测试由软件的最终用户们在一个或多个客户场所进行,开发者通常不在Beta测试的现场,所以,Beta测试是软件在开发者不能控制的环境中的“真实”应用。 ☆估计错误总数的方法:
①植入错误法:在测试之前由专人在程序中随机地植入一些错误,测试之后,根据测试小组发现的错误中原有的和植入的两种错误的比例,来估计程序中原有错误的总数。
②分别测试法:在测试过程的早期阶段,由测试员甲和测试员乙分别测试同一个程序的两个副本,由另一名分析员分析他们的测试结果。
☆软件维护的分类:改正性维护、完善性维护、适应性维护、预防性维护。
☆决定软件可维护性的因素:①可理解性②可测试性③可修改性④可移植性⑤可重用性。
因篇幅问题不能全部显示,请点此查看更多更全内容