《软件工程知识点总结》由会员分享,可在线阅读,更多相关《软件工程知识点总结(15页珍藏版)》请在金锄头文库上搜索。
1、软件工程简要知识点软件定义V问题定义确定题目可行性研究概要设计软件生命周期:软件开发详细设计编码和单元测试综合测试I运行维护:主要任务是使软件持久地满足用户的需要一、.软件过程五个模型对比瀑布模型、快速原型、增量、螺旋、喷泉模型二、可行性研究:1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决;2、四个方面:技术、经济、操作可行性、法律3、数据流图四种成分:1、源点/终点 2、处理 3、数据存储 4、数据流三、需求分析:1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求;2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法;3、实体联系图:1、数据对象
2、 2、属性 3、联系 1:1、1: N、M:N四、总体设计:1. 任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构;2. 系统设计阶段确定系统具体实施方案、结构设计阶段确定软件结构3. 模块独立:内聚和耦合4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统5. 内聚Cohesion: 一个模块内各元素结合的紧密程度6. 面向数据流的设计方法:变换流和事务流五、详细设计:1. 任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目
3、标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序;2过程设计的工具程序流程图、盒图、PAD图、判定表、判定树七、测试: 1、单元测试:又称模块测试;每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单 独的测试;由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个 模块的正确性;2、集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协 调问题,所以在单元测试结束之后还要进行集成测试;这个步骤着重测试模块间的接口,子功能的组 合是否达到了预期要求的功能,全程数据结构是否有问题等;3
4、、白盒测试技术逻辑覆盖、基本路经测试白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程; 所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作; 白盒测试又称为结构测试;4、语句覆盖就是设计足够的调试用例,使得程序中的每个语句至少执行一次;5、判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都 执行一次,判定覆盖又称分支覆盖6、条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果;7、判定条件覆盖就是设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每
5、个判定表达式也都取到各种可能的结果;8、条件组合覆盖就是设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次;9、黑盒测试技术等价划分 黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合 它的功能要求;黑盒测试是在程序接口进行的测试,又称为功能测试;1、黑盒测试检查的主要方面有: 程序的功能是否正确或完善; 数据的输入能否正确接收,输出是否正确; 是否能保证外部信息如数据文件的完整性等;用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出2、等价类划分 等价类的划分在很大程度上依靠的是测试人员的经验,下面给出几条基
6、本原则:1 如果输入条件规定了取值范围,则可划分出一个有效的等价类输入值在此范围内和两个无效的等 价类输入值小于最小值、输入值大于最大值;2 如果输入条件规定了输入数据的个数,则可相应地划分出一个有效的等价类输入数据的个数等于 给定的个数要求和两个无效的等价类输入数据的个数少于给定的个数要求、输入数据的个数多于给 定的个数要求;3 如果输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理,则可将这 组可能的值划分为一个有效的等价类,而这些值以外的值划分成无效的等价类;4 如果输入条件规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每个输 入值是一个有效的
7、等价类,此外还有一个无效的等价类所有不允许值的集合;5 如果输入条件规定了输入数据必须遵循的规则,则可以划分一个有效的等价类符合规则和若干个 无效的等价类从各种角度违反规则;八、维护改正性维护、适应性维护、完善性维护、预防性维护九、决定软件可维护性因素可理解性、可测试性、可修改性、可移植性、可重用性 十、对象模型 1、关联 2、聚集 3、泛化 4、依赖和细化软件工程详细复习内容第一章绪论软件危机1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题;熟记2、了解软件危机主要的一些典型表现;3、出现软件危机的原因:4、消除软件危机的途径:首先,我们要对计算机软件有一个正确的认识;更
8、重要的是,必须充分认 识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严格、各类人员协同配 合、共同完成的工程项目;最后,应该开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施方法和工具,又要有必要的组织管理措施;软件工程1、软件工程:采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确 的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维 护它;熟记2、了解软件工程的本质特征:1、软件工程关注于大型程序的构造2、软件工程的中心课题是控制复杂性3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软
9、件的关键6、软件必须有效地支持它的用户7、在软件工程的领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品3、缺乏应用领域地相关知识,是软件开发项目出现问题的常见原因;4、软件工程的基本原理:1、用分阶段的生命周期计划严格管理2、坚持进行阶段审评3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组的人员应该少而精7、承认不断改进软件工程实践的必要性5、方法学范型:在软件生命周期全过程中使用的一整套技术方法的集合;6、软件工程方法学 3要素:方法、工具和过程;7、目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学8、传统方法学也成为生命周期
10、方法学或结构化范型;9、面向对象方法学具有的 4 个要点;软件生命周期1、概括地说,软件生命周期由软件定义、软件开发和运行维护也称为软件维护 3 个时期组成,每个 时期又进一步划分成若干个阶段;2、软件定义时期的任务 3、软件定义时期通常进一步划分成 3个阶段:问题定义、可行性研究、需求分析4、维护时期的主要任务是使软件持久地满足用户的需要;5、软件开发时期通常分成 4个阶段:总体设计、详细设计、编码和单元测试、综合测试;前两个阶 段又称为系统设计,后两个阶段又称为系统实现;6、软件生命周期每个阶段的基本任务:问题定义、可行性研究、需求分析、总体设计、详细设 计、编码和单元测试、综合测试;软件
11、工程生命周期模型过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型;对各种模型要了解第2 章可行性分析 可行性分析的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决; 可行性研究的任务1. 研究解法的可行性的四个方面:技术可行性、经济可行性、操作可行性、法律可行性;2. 可行性研究最根本的任务:对以后的行动方针提出建议;3. 可行性研究需要的时间长短取决于工程的规模;可行性研究过程1. 复查系统规模和目标2. 研究目前正在试用的系统3. 导出新系统的高层逻辑模型4. 进一步定义问题5. 导出和评价供选择的解法6. 推荐行动方针7. 草拟开发计划8. 书写文档提交审查系统流程
12、图1、系统流程图:概括地描绘物理系统的工具;2、系统流程图的基本思想:用图形符号以黑盒子形式描绘组系统的每个部件程序、文档、数据 库、人工过程等;3、P39 符号4、系统流程图的习惯画法:使信息在图中从顶向下或从左向右流动;5、面对复杂的系统时,一个比较好的方法时分层次地描绘这个系统;数据流图1. 数据流图DFD: 种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换;2. 数据流图的四种基本符号3. 数据存储静止状态和数据流运动都是数据;4. 数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”;5. 星号是数据流之间的“与”关系;加号+表示“或”关系;号表示只能从中选一
13、个互斥关系;6. 画数据流图的基本目的是利用它作为交流信息的工具;数据字典1. 数据字典应由对下列 4类元素的定义组成:数据流、数据流分量即数据元素、数据存储、处理;2. 由数据元素组成数据的方式的三种基本类型:顺序、选择、重复;+可选3. 用以下符号描述由数据元素组成数据的关系:=意思是等价于或定义为、+意思是和即连接两个分量、意思是或通常用“|”号隔开供选择的分量、意思是重复、意思是可选;4. 数据字典最重要的用途是作为分析阶段的工具;成本/效益分析1. 成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织 的负责人正确地作出是否投资于这项开发工程的决定;2.
14、 软件开发成本:主要表现为人力消耗;第 3 章需求分析1、需求分析是软件定义时期的最后一个阶段;2、基本任务:准确地回答“系统必须做什么 ”这个问题;3、用于需求分析的结构化分析方法必须遵守下述准则:1、必须理解并描述问题的信息域,根据这条准则应该应该建立数据模型;E-R图2、必须定义软件应完成的功能,这条准则要求建立功能模型;数据流图3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型;状态图4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展开细节;需求分析的任务4、对软件系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将
15、来可能提出的要求;5、需求分析的任务:确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划与用户沟通获取需求的方法1、访谈、面向数据流自顶向下求精、简易地应用规格说明技术,快速建立软件原型;2、结构化分析方法就是面向数据流自顶向下求精进行需求分析的方法;3、快速建立软件原型是最准确、最有效、最强大的需求分析技术;分析建模与规格说明1、需求分析过程应建立 3 种模型:数据模型、功能模型、行为模型;2、数据流图是建立功能模型的基础;3、状态转换图是行为建模的基础;实体-联系图 E-RE-R 图中包含着实体即数据对象、关系和属性 3 种基本成分;第 5 章总体设计设计过程总体设计过程通常有两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段, 确定软件的结构;典型的总体设计过程包括下述 9 个步骤:1、设想选择的方案需求分析阶段得出的数据流程图是总体设计的极好的出发点;2、选择合理的方案对每个合理的方案,分析