您好,欢迎访问三七文档
软件工程概论知识点总结第一章软件定义:是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。软件特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。软件分类。(1)系统软件(2)应用软件(3)支撑软件(4)可复用软件软件危机的原因:1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。2)软件人员与用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法和需求描述工具也是重要的一个原因。3)软件开发过程不规范,缺少方法论和规范的指导,软件难以维护。4)随着软件规模的增大,其复杂性往往会呈指数级升高。5)缺少有效的软件评测手段,提交用户的软件质量差软件工程的定义:1.指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理技术和方法进行软件的开发和维护,把经过时间考虑而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护2.软件工程的目标:运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。3.软件的生存周期:软件孕育、诞生、成长、成熟、衰亡的生存过程。由软件定义、软件开发和运行维护三个时期组成。软件定义:解决“做什么”的问题;软件开发:解决“如何做”的问题,分为概要设计、详细设计、编码和测试四个阶段;维护:使软件持久的满足用户的需求。4.开发过程中的典型文档a.软件需求规格说明书:描述将要开发的软件做什么。b.项目计划:描述将要完成的任务及其顺序,并估计所需要的时间及工作量。c.软件测试计划:描述如何测试软件,确保软件应实现规定的功能,并达到预期的性能。d.软件设计说明书:描述软件的结构,包括概要设计及详细设计。e.用户手册:描述如何使用软件各阶段基本任务:问题定义与可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试。5.软件生存期模型:瀑布模型。优点:强迫开发人员规范化方法、严格规定每个阶段必须提交的文档、要求每个阶段交出的所有产品必须经过验证。缺点:完全依赖书面规格说明,可能会导致产品与用户需求有差异、只适用于项目开始时需求已确定的情况。需求分析、规格说明、设计、编码、综合测试、维护快速原型模型。优点:易于满足用户真实需求、已通过与用户的交互验证,能正确描述用户需求、产品开发基本上按线性顺序、规格文档说明正确描述了用户需求,后期错误率和返工率很低、开发人员建立原型系统时学到的东西有助于减少后期的错误率、快速开发有助于节约成本,原型的用途是获取用户的正真需求。增量模型。优点:较短时间内能提交有用产品、逐步增加产品有助于用户适应学习、项目失败风险较低、优先级最高的服务首先交付,则系统核心服务接受最多测试,一般不会失败。注意:新的构件加入系统时必须不破坏已开发出的产品、体系结构必须开放,易于向其中加入新构件。螺旋模型。四个象限:目标设定、风险估计与弱化、开发与验证、计划。优点有利于已有软件的重用,也有助于把软件质量作为开发的一个重要目标、减少了过多测试或测试不足带来的风险、维护和开发之间没有本质区别。缺点:此模型为风险驱动,要求开发人员必须具有丰富的风险评估经验,否则会意识不到风险的出现导致失败。6.统一过程的6个核心工作流:业务建模、需求、分析与设计、实现、测试、部署7.统一过程的4个阶段:初始阶段、细化阶段、构造阶段、移交阶段.a.主要关注项目计划和风险评估,其目的是确定是否值得开发目标系统。b.细化阶段关心定义系统的总体框架,目标是:细化初始需求,细化体系结构,监控风险并细化他们的优先级,细化业务案例以及制定项目管理计划。c.构造阶段是建立系统,构造系统的第一个具有操作性的版本,以能够交付给客户进行β测试版本结束。d.移交阶段包含β测试时期,以发布完完整的系统而终止,其目标是确保系统真正满足客户的需求。第二章1.软件工程方法学:软件生命周期全过程中使用的一整套技术的集合成为方法学,也称为范型。三要素:方法、工具、过程2.传统方法的特点:传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地逐步完成每个阶段的任务。每一个阶段的开始和结束都有严格的标准,对于任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准。(2)面向对象方法的特点:面向对象方法是将数据和对数据的操作紧密地结合起来的方法,其出发点和基本原则是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法与过程,适用于大型、复杂及交互性比较强的系统3.形式化方法学:是一种基于形式化数学变换的软件开发方法,它可将系统的规格说明转换为可执行的程序。特点:软件需求规格说明书被细化为用数学记号表达的详细形式化规格说明;设计、实现和单元测试等开发过程由一个变换开发过程代替,通过一系列变换将形式化的规格说明细化成为程序。面向对象=对象+类+继承+消息通信,面向对象程序的基本组成单位是类,核心是对象。面向对象的开发方法:Booch方法,Rumbaugh方法,Coad和Yourdon方法,Jacobson(OSSE)方法,Wirfs-Brock方法4.类.现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)。封装。面向对象的封装特性与其抽象特性密切相关。封装是一种信息隐蔽技术,就是利用抽象数据类型将数据和基于数据的操作封装在一起。用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的。封装的定义是:(1)清楚的边界,所有对象的内部信息被限定在这个边界内;(2)接口,即对象向外界提供的方法,外界可以通过这些方法与对象进行交互;(3)受保护的内部实现,即软件对象功能的实现细节,实现细节不能从类外访问。5.UML的特点:a.统一标准。b.面向对象。c.可视化,表达能力强大。d.独立于过程。e.容易掌握使用。f.与编程语言的关系6.软件工具是指能支持软件生存周期中某一阶段(如系统定义、需求分析、设计、编码、测试或维护等)的需要而使用的软件工具。软件工具的发展:50年代末期出现了程序设计语言,60年代末提出软件工程的概念,80年代中期提出了软件过程的新概念,如今,软件工具重视用户界面的设计,不断地采用新理论和新技术第三章软件需求分析阶段的任务:需求获取、需求分析、需求定义和需求验证。结构化分析方法:是一种面向数据流进行需求分析的方法。结构化设计方法的分类:一类是根据系统的数据流进行设计,称为面向数据流的设计,或称过程驱动的设计;另一类是根据系统的数据结构进行设计,称为面向数据结构的设计,或称数据驱动的设计。需求获取是软件生存期中决定性的一步,涉及客户、用户及开发方。需求获取的问题:系统的目标或范围问题、需求不准确性问题、需求的易变问题需求获取的任务:发现和分析问题,并分析问题的原因和结果的关系、与用户进行各种方式的交流,并使用调查研究方法收集信息、按照数据过程和接口观察问题的不同侧面、将获取的需求文档化,形式有用例、决策表、决策树等。需求获取的原则:深入浅出、以流程为主线。需求获取的过程:开发高层的业务模型、定义项目范围和高层需求、识别用户类和用户代表、获取具体的需求、确定目标系统的业务工作流、需求整理与总结(功能需求、性能需求、环境需求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求)。获取具体的需求:与用户进行交流、现有产品或竞争产品的描述文档、系统需求规格说明、当前系统的问题报告和改进要求、市场调查和用户问卷调查、观察用户如何工作。软件需求分析阶段的任务:需求获取、需求分析(完整性、正确性、合理性、可行性、充分性)、需求定义、需求验证。数据字典:以词条的方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义包括数据流、加工、数据文件、数据元素,以及数据源点和数据汇点。数据字典精确地、严格地定义了每一个与系统相关的数据元素。、第四章结构化设计方法是在模块化、自顶向下逐步细化及结构华程序设计技术基础之上发展起来的。结构化设计方法可以分为两类,一类是根据系统的数据流进行设计,称为面向数据流设计或称过程驱动设计;另一类是根据系统的数据结构进行设计,成为面向数据结构设计,或称数据驱动设计。软件设计过程包括一套原理、概念和实践,可以指导高质量的系统或产品开发。软件设计的原则:分而治之、模块独立性(耦合和内聚)、提高抽象层次、复用性设计、灵活性性设计(降低耦合提高内聚、建立抽象、不要将代码写死、抛出异常、使用并创建可复用代码)结构化设计(立方体图)分为概要设计(体系结构设计、接口设计、数据设计)和详细设计(过程设计)模块的4个类型:传入模块、传出模块、变换模块、协调模块接口设计概述:模块或软件构件间的接口设计、软件与其他软硬件系统之间的接口设计、软件与人之间的交互设计。程序流程图(程序框图)特点:直观、清晰、易于学习和掌握,5种基本控制结构:顺序型、选择型、先判定、后判定、多情况。任何复杂的程序流程图都是由者个基本类型嵌套而成。第五章机器语言(二进制代码)、汇编语言(更直观、符号指令与机器指令相对应)、高级程序设计语言(用途广泛、有大量软件库,ALGLOL,FORTRAN,COBOL,Basic,Pascal,C,C++,Lisp,Prolog,Ada)、第四代语言(面向问题、非过程化程度高)4GL缺点:整体能力不如3GL,只能面向专项应用、抽象级别较高,系统运行开销大效率低、缺乏统一的工业标准,品种繁多差异大、主要基于数据库应用的领域,不宜于科学计算、实时系统和系统软件开发。4GL分类:查询语言和报表生成器、图形语言、应用生成器、形式化规格说明语言。第六章软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量控制的关键步骤。软件测试的对象:需求分析、概要设计、详细设计及程序编码等阶段所得的文档资料,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序。确认是一系列的活动和过程,目的在于证实在一个恰当的外部环境中软件的逻辑正确性,分为静态确认和动态确认。验证是试图证明在软件生存期各个阶段以及阶段间的逻辑协调性、完备性和正确性。确认与测试都属于软件测试。黑盒测试:已知产品的功能设计规格,可以通过测试证明每个实现了的功能是否满足要求(根据软件的外部特性)用列设计:a.等价类划分;b.边界值分析。白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查(对软件的过程性细节作细致的检查)。用例设计:a.逻辑覆盖;b.语句覆盖;c.判定覆盖;d.条件覆盖;e.判定—条件覆盖;f.条件组合覆盖;g.路径覆盖。软件测试:步骤:单元测试、组装测试、确认测试和系统测试。单元测试的内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试。第七章UML模型:UML模型是由事物、关系和图组成。UML事物:结构事物(类、主动类、接口、对象、用例、参与者、协作、构件、节点)、行为事物(交互、状态机)、分组事物(包)、注释事物(注释)UML关系:依赖关系、关联关系(普通关联、限定关联、关联类、聚合)图:类图、用例图、交互图、状态图、活动图和实现图。第八章面向对象分析的三个模型:用例和场景构成的功能模型(用例模型)、类和对象表示的静态模型(对象模型)、状态图和顺序图表示的动态模型(交互模型)建立用例模型过程:确定业务参与者;确定业务需求用例。对象模型:划分主题;确定类与对象;确定关联;确定属性;确定服务。第九章1.软件体系结构:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据2.构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起
本文标题:软件工程概论知识点
链接地址:https://www.777doc.com/doc-2011438 .html