《软件开发基础知识》由会员分享,可在线阅读,更多相关《软件开发基础知识(54页珍藏版)》请在金锄头文库上搜索。
1、 系统开发规范与文档编写系统开发规范与文档编写 (期末复习)(期末复习)第一章本本章章主主要要介介绍绍基基本本名名词词和和基基本本概概念念。属属于于基基本本知知识识的的内内容容比比较较多多,需需要要适当记忆。适当记忆。第一章a.a.软件的定义:程序、数据、文档;软件的定义:程序、数据、文档;b.b.软件的分类:系统软件和应用软件,软件的分类:系统软件和应用软件,或者按工作方式分为:实时处理软件、或者按工作方式分为:实时处理软件、分时软件、交互式软件和并行处理软分时软件、交互式软件和并行处理软件;件; c.c.软件的特征:抽象性、复杂性、维护软件的特征:抽象性、复杂性、维护长期性、高成本性;长期
2、性、高成本性; 第一章d.d.软件工程的基本原理:软件工程的基本原理:7 7条,怎样就违条,怎样就违反了基本原理;反了基本原理; e.e.软件生命周期:、计划、需求分析、软件生命周期:、计划、需求分析、设计、编码、测试、维护;设计、编码、测试、维护; f.f.什么是软件危机;产生的原因;什么是软件危机;产生的原因; 第一章g.g.软件工程研究的对象:过程、方软件工程研究的对象:过程、方法和工具;法和工具;h.h.CMMCMM分级:初始级、可重复级、确分级:初始级、可重复级、确定级、管理级、优化级。定级、管理级、优化级。 第一章需要更完整了解的概念:需要更完整了解的概念:什么是软件工程:什么是软
3、件工程:软软件件工工程程是是用用工工程程、科科学学和和数数学学的的原原则则与与方方法法研研制制、维维护护计计算算机机软软件件的的有有关技术及管理方法。关技术及管理方法。第一章软件工程的基本原理:软件工程的基本原理:指指软软件件工工程程专专家家B.W.Boehm提提出出的的7条基本原理,主要条基本原理,主要4条:条:用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理坚持进行阶段评审坚持进行阶段评审实行严格的产品控制实行严格的产品控制结果应能清楚地审查结果应能清楚地审查第一章什么是软件生命周期?什么是软件生命周期?从时间角度对软件开发和维护的复杂从时间角度对软件开发和维护的复杂问题进行分
4、解,把软件生命的漫长周问题进行分解,把软件生命的漫长周期依次划分为若干个阶段,每个阶段期依次划分为若干个阶段,每个阶段都有相对独立的任务,然后逐步完成都有相对独立的任务,然后逐步完成每个阶段的任务。一般将软件生命周每个阶段的任务。一般将软件生命周期划分为六个阶段:计划、需求分析、期划分为六个阶段:计划、需求分析、设计、编码、测试、运行维护。设计、编码、测试、运行维护。第一章 软软件件过过程程可可以以通通过过软软件件过过程程模模型型来来表表示示。最最经经典典的的过过程程模模型型是是瀑瀑布布模模型。型。优优点点:支支持持结结构构化化软软件件开开发发、控控制制了了软软件件开开发发的的复复杂杂性性、促
5、促进进了了软软件件开发工程化。开发工程化。 第二章第二章 需求工程需求工程a.a.需求工程中的主要角色:用户、需求工程中的主要角色:用户、系统分需人员、软件开发人员;系统分需人员、软件开发人员; b.b.结构化需求分析:数据流图和数结构化需求分析:数据流图和数据字典;据字典; c.c.数据流图的构成:数据源、数据数据流图的构成:数据源、数据加工、数据存储、数据流;加工、数据存储、数据流; 第二章第二章 需求工程需求工程d.d.对功能单元(加工)进行说明的对功能单元(加工)进行说明的方法主要有三种:结构化语言、方法主要有三种:结构化语言、判定表和判定树,各自的适用场判定表和判定树,各自的适用场合
6、;合; e.e.面向对象需求分析:基于用例的面向对象需求分析:基于用例的需求分析;需求分析; 第二章第二章 需求工程需求工程f.f.基于用例需求分析的步骤:确定参与基于用例需求分析的步骤:确定参与者、确定用例、确定用例之间的关系;者、确定用例、确定用例之间的关系; g.g.用例和用例之间的关系:扩展关系、用例和用例之间的关系:扩展关系、包含关系、泛化关系;包含关系、泛化关系; h.h.用例模型的两个最重要概念:参与者用例模型的两个最重要概念:参与者和用例;和用例; 第二章第二章 需求工程需求工程什么是数据流图什么是数据流图数据流图用一套简单的符号来描绘信数据流图用一套简单的符号来描绘信息在系统
7、中流动和处理的情况,是软息在系统中流动和处理的情况,是软件设计人员和用户之间极好的通信工件设计人员和用户之间极好的通信工具,是结构化分析方法的核心。具,是结构化分析方法的核心。第二章第二章 需求工程需求工程数据流图只需考虑软件系统必须完数据流图只需考虑软件系统必须完成的基本逻辑功能,完全不需考虑成的基本逻辑功能,完全不需考虑如何具体地实现这些功能。如何具体地实现这些功能。实际的数据流图都是分层的,要掌实际的数据流图都是分层的,要掌握顶层图和握顶层图和0层图的画法。层图的画法。 第二章第二章 需求工程需求工程什么是数据字典什么是数据字典数数据据字字典典是是对对系系统统用用到到的的所所有有数数据据
8、项项和和结结构构的的精精确确定定义义,以以确确保保开开发发人人员员使用统一的数据定义。使用统一的数据定义。第二章第二章 需求工程需求工程什么是用例模型什么是用例模型用用例例模模型型是是所所有有用用于于描描述述指指定定系系统统的的用用例例,参参与与者者和和用用例例参参与与者者关关联联关关系系的的组组合合。用用例例模模型型最最重重要要的的两两个个概概念是参与者和用例。念是参与者和用例。第二章第二章 需求工程需求工程用用例例的的扩扩展展关关系系:表表示示系系统统的的扩扩展展功能;功能;用用例例的的包包含含关关系系:表表示示多多个个基基本本用用例都可以使用的用例例都可以使用的用例用用例例的的泛泛化化关
9、关系系:从从几几个个用用例例中中抽抽象出来的共同行为的父用例象出来的共同行为的父用例第三章第三章 结构化程序设计结构化程序设计a.a.结构化软件设计一般分为概要设结构化软件设计一般分为概要设计和详细设计;计和详细设计; b.b.结构化设计方法:以结构化分析结构化设计方法:以结构化分析产生的数据流图为基础,按一定产生的数据流图为基础,按一定的方法转换为软件结构;的方法转换为软件结构; 第三章第三章 结构化程序设计结构化程序设计c.c.模块:一般把用一个名字就可以调用模块:一般把用一个名字就可以调用的一段程序称为模块,的一段程序称为模块,模块具有三个模块具有三个基本属性:功能,逻辑和状态;基本属性
10、:功能,逻辑和状态; d.d.程序结构和软件过程:程序结构描述程序结构和软件过程:程序结构描述了整个程序的控制层次关系和各个部了整个程序的控制层次关系和各个部分的接口情况,而软件过程则着重描分的接口情况,而软件过程则着重描述各个模块的处理细节;述各个模块的处理细节; 第三章第三章 结构化程序设计结构化程序设计e.e.结构化分析的重要原则:自顶向结构化分析的重要原则:自顶向下,逐步求精(逐步细化);下,逐步求精(逐步细化);f.f.软件体系结构:软件的整体结构软件体系结构:软件的整体结构和这种结构提供给系统在概念上和这种结构提供给系统在概念上的整体性的方式,软件体系结构的整体性的方式,软件体系结
11、构就是软件的结构;就是软件的结构; 第三章第三章 结构化程序设计结构化程序设计g.g.软件设计中划分模块的一个准则是:软件设计中划分模块的一个准则是:高内聚低耦合;高内聚低耦合;h.h.概要设计的主要任务是建立软件系统概要设计的主要任务是建立软件系统的体系结构;的体系结构;i.i.详细设计需要完成的任务是:算法设详细设计需要完成的任务是:算法设计、数据结构设计、物理设计、编写计、数据结构设计、物理设计、编写详细设计说明书和评审等;详细设计说明书和评审等; 第三章第三章 结构化程序设计结构化程序设计j.j.无论数据流图如何庞大复杂,都无论数据流图如何庞大复杂,都可以分为变换型数据流图和事务可以分
12、为变换型数据流图和事务型数据流图两类。型数据流图两类。k.k.JSPJSP是一种面向数据结构的,以数是一种面向数据结构的,以数据驱动的,主要为中小型数据处据驱动的,主要为中小型数据处理系统设计程序结构的一种开发理系统设计程序结构的一种开发方法。方法。 第三章第三章 结构化程序设计结构化程序设计什么是模块独立性什么是模块独立性所谓模块的独立性,是指软件系统中所谓模块的独立性,是指软件系统中每个模块只涉及软件要求的具体的子每个模块只涉及软件要求的具体的子功能,只通过简单的接口和软件系统功能,只通过简单的接口和软件系统中其它的模块相联系。中其它的模块相联系。第三章第三章 结构化程序设计结构化程序设计
13、耦合性由低到高的排列是:耦合性由低到高的排列是:非非直直接接耦耦合合、数数据据耦耦合合、标标记记耦耦合合、控控制制耦耦合合、外外部部耦耦合合、公公共共耦耦合合、内内容耦合。容耦合。 第三章第三章 结构化程序设计结构化程序设计结构化程序设计(结构化程序设计(SP)方法,它有下几)方法,它有下几个基本要点:个基本要点:第一,采用自顶向下、逐步求精的程序设第一,采用自顶向下、逐步求精的程序设计方法;计方法;第二,使用顺序、选择及重复三种基本控第二,使用顺序、选择及重复三种基本控制结构构造程序;制结构构造程序;第三,主程序员的组织方式。开发程序的第三,主程序员的组织方式。开发程序的人员应采用以一个主程
14、序员、一个后备程人员应采用以一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加序员和一个程序管理员三人为核心,再加上一些专家等组成小组上一些专家等组成小组第四章第四章 面向对象程序设计面向对象程序设计a.a.面向对象开发方法是建立在对象概念面向对象开发方法是建立在对象概念(对象、类和继承对象、类和继承)基础上的方法;基础上的方法;b.b.对象是构成世界的一个独立单元,它对象是构成世界的一个独立单元,它具有自己的静态特征和动态特征,从具有自己的静态特征和动态特征,从面向对象程序设计的角度看:对象是面向对象程序设计的角度看:对象是具有相同状态的一组操作的集合;具有相同状态的一组操作的集合
15、;c.c.类是具有相同属性和操作的一组对象类是具有相同属性和操作的一组对象的抽象;的抽象; 第四章第四章 面向对象程序设计面向对象程序设计d.d.消息是一个对象与另一个对象的消息是一个对象与另一个对象的通信单元,是要求某个对象执行通信单元,是要求某个对象执行类中定义的某个操作的规格说明;类中定义的某个操作的规格说明; e.e.对象可看成是属性(数据)以及对象可看成是属性(数据)以及这些属性上的专用操作的封装体。这些属性上的专用操作的封装体。封装是一种信息屏蔽技术;封装是一种信息屏蔽技术; 第四章第四章 面向对象程序设计面向对象程序设计f.f.面向对象的程序设计语言具有数据抽面向对象的程序设计语
16、言具有数据抽象、信息隐藏、分类继承等特征;象、信息隐藏、分类继承等特征; g.g.继承:继承是使用已存在的定义作为继承:继承是使用已存在的定义作为基础来建立新定义的技术,一个类可基础来建立新定义的技术,一个类可以是多个一般类的特殊类,它从多个以是多个一般类的特殊类,它从多个一般类中继承了属性和操作,这种继一般类中继承了属性和操作,这种继承模式叫多继承,否则就是单继承;承模式叫多继承,否则就是单继承; 第四章第四章 面向对象程序设计面向对象程序设计h.h.多态性是指在一般类中定义的属多态性是指在一般类中定义的属性或操作被特殊类性或操作被特殊类继承继承后,可以后,可以具有不同的数据类型或表现出不具
17、有不同的数据类型或表现出不同的行为;同的行为; 第四章第四章 面向对象程序设计面向对象程序设计i.i.多态性是指在一般类中定义的属性或多态性是指在一般类中定义的属性或操作被特殊类操作被特殊类继承继承后,可以具有不同后,可以具有不同的数据类型或表现出不同的行为;的数据类型或表现出不同的行为;j.j.对象(以及它们的类)与外部的关系对象(以及它们的类)与外部的关系结构主要有两种:结构主要有两种:“一般一般- -特殊特殊”结构结构和和“整体整体- -部分部分”结构,结构,“整体整体- -部分部分”结构体现了面向对象方法的聚合原结构体现了面向对象方法的聚合原则,则,“一般一般- -特殊特殊”结构体现了
18、分类及结构体现了分类及继承原则;继承原则; 第四章第四章 面向对象程序设计面向对象程序设计j.j.面向对象的分析过程一般包括:面向对象的分析过程一般包括:获取用户对系统的需求、标识类获取用户对系统的需求、标识类和对象以及定义类的结构和层次;和对象以及定义类的结构和层次; 第四章第四章 面向对象程序设计面向对象程序设计UML部分的主要知识点:a.UML视图包括:用例视图、逻辑视图包括:用例视图、逻辑视图、构件视图、并发视图和部视图、构件视图、并发视图和部署视图,共署视图,共5种;种;b.UML建模包括:用例模型、静态建模包括:用例模型、静态模型、动态模型和实现模型;模型、动态模型和实现模型;第四
19、章第四章 面向对象程序设计面向对象程序设计c.c.静态模型将使用类图、对象图和包图;静态模型将使用类图、对象图和包图; d.d.动态模型使用:用状态图、顺序图、动态模型使用:用状态图、顺序图、协作图和活动图;协作图和活动图; e.e.对象之间的关系一般有:关联对象之间的关系一般有:关联(association)、)、泛化泛化(generalization)、)、依赖依赖(dependency)和细化和细化(refinement)。)。 第四章第四章 面向对象程序设计面向对象程序设计f.f.使用使用UML的过程:系统需求、系的过程:系统需求、系统需求分析、静态结构模型、动统需求分析、静态结构模型
20、、动态结构模型。态结构模型。 第五章第五章 软件配置管理软件配置管理a.a.软件配置管理的软件配置管理的4项功能:版本控项功能:版本控制功能、变更管理功能、状态统制功能、变更管理功能、状态统计功能和配置审核功能;计功能和配置审核功能;b.b.基线:基线是软件生存期各开发基线:基线是软件生存期各开发阶段末尾的特定点,也称为里程阶段末尾的特定点,也称为里程碑,包括碑,包括3 3种基线:功能基线、分种基线:功能基线、分配基线、产品基线;配基线、产品基线; 第五章第五章 软件配置管理软件配置管理c.c.软件配置项:指的是一个硬件,软件软件配置项:指的是一个硬件,软件或者软硬件的集合,配置项是为了配或者
21、软硬件的集合,配置项是为了配置管理而指定的,并在配置管理过程置管理而指定的,并在配置管理过程中被当作单一实体中被当作单一实体 ;d.d.配置审核:功能配置审核配置审核:功能配置审核验证配验证配置项的实际功效是否与其软件需求一置项的实际功效是否与其软件需求一致,物理配置审核致,物理配置审核确定配置项符确定配置项符合预期的物理特性,即特定的媒体形合预期的物理特性,即特定的媒体形式。式。 第五章第五章 软件配置管理软件配置管理 软件配置管理软件配置管理是一门应用技术、管理和监督相结合的学是一门应用技术、管理和监督相结合的学科,科,通过标识和文档来记录配置项的功能和物通过标识和文档来记录配置项的功能和
22、物理特性,理特性,控制这些特性的变更,记录和报告变更的控制这些特性的变更,记录和报告变更的过程和状态,并验证它们与需求是否一致。过程和状态,并验证它们与需求是否一致。第五章第五章 软件配置管理软件配置管理软件配置管理方法软件配置管理方法 定制软件配置管理计划定制软件配置管理计划 软件配置标识软件配置标识软件配置控制软件配置控制配置状态报告。配置状态报告。第六章第六章 软件质量和质量保证软件质量和质量保证a.a.软件质量的概念:依靠特定的或软件质量的概念:依靠特定的或隐含的能力满足特定需要的产品隐含的能力满足特定需要的产品或服务的全部功能和特征或服务的全部功能和特征 ;b.b.软件质量保证:为了
23、向用户和社软件质量保证:为了向用户和社会提供满意的高质量的软件产品会提供满意的高质量的软件产品而进行的有计划,有组织的活动;而进行的有计划,有组织的活动; 第六章第六章 软件质量和质量保证软件质量和质量保证c.c.为了在软件开发过程中保证软件为了在软件开发过程中保证软件的质量,主要采取的措施:审查、的质量,主要采取的措施:审查、复查和管理复审、测试;复查和管理复审、测试;d.d.软件质量保障的标准:软件质量保障的标准:CMMCMM、ISO9000ISO9000、IEEE Std 1028-1988IEEE Std 1028-1988。 第六章第六章 软件质量和质量保证软件质量和质量保证软件测试
24、:软件测试: a.a.软件测试是对软件计划、软件设计、软件测试是对软件计划、软件设计、软件编码进行查错和纠错的活动软件编码进行查错和纠错的活动(包括包括代码执行活动与人工活动代码执行活动与人工活动;b.b.测试的范围是整个软件的生存周期,测试的范围是整个软件的生存周期,而不限于程序编码阶段;而不限于程序编码阶段; 第六章第六章 软件质量和质量保证软件质量和质量保证c.c.软件测试过程就是根据软件开发软件测试过程就是根据软件开发各阶段的规格说明和程序的内部各阶段的规格说明和程序的内部结构而精心设计一批测试用例,结构而精心设计一批测试用例,即输入数据及其预期的输出结果,即输入数据及其预期的输出结果
25、,并利用这些测试用例去运行程序,并利用这些测试用例去运行程序,以发现程序错误的过程;以发现程序错误的过程; 第六章第六章 软件质量和质量保证软件质量和质量保证d.d.程序测试:它是对编码阶段的语法错、程序测试:它是对编码阶段的语法错、语义错、运行错进行查找的编码执行语义错、运行错进行查找的编码执行活动;活动; e.e.软件测试方法:黑盒测试称为功能测软件测试方法:黑盒测试称为功能测试,白盒测试称为结构测试,黑盒测试,白盒测试称为结构测试,黑盒测试不考虑程序内部结构,只对程序的试不考虑程序内部结构,只对程序的外部接口进行测试;白盒测试考虑程外部接口进行测试;白盒测试考虑程序内部结构,按照程序内部
26、的逻辑测序内部结构,按照程序内部的逻辑测试。试。 第七章第七章 文档编写文档编写a.a.软件文档也称文件,是指某种数软件文档也称文件,是指某种数据媒体和其中所记录的数据,它据媒体和其中所记录的数据,它具有永久性,并可以由人或机器具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读阅读,通常仅用于描述人工可读的东西,它是软件的书面描述和的东西,它是软件的书面描述和说明;说明; 第七章第七章 文档编写文档编写b.b.软件文档大致可分为三类:管理文档、软件文档大致可分为三类:管理文档、开发文档和用户文档;开发文档和用户文档; c.c.国家标准指定了国家标准指定了13种软件文档,主要种软件文档,主
27、要包括:可行性研究报告、项目开发计包括:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明划、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、概要设计说明书、详细设计说明书、测试计划、用户手册等;书、测试计划、用户手册等; 第七章第七章 文档编写文档编写d.d.各种主要文档的主要内容:能够判断各种主要文档的主要内容:能够判断什么样的内容应该属于何种文档;什么样的内容应该属于何种文档;e.e.程序注释分类:注释从其整体观感和程序注释分类:注释从其整体观感和作用上可以分为两种:高级注释:说作用上可以分为两种:高级注释:说明程序功能并描述程序各组成部分相明程序功能并描述程序各
28、组成部分相互关系;低级注释:逐行解释程序指互关系;低级注释:逐行解释程序指令如何工作。令如何工作。 试题样式:试题样式: 填填空空题题都都是是基基本本概概念念和和基基本本知知识识,如:如:1.面面向向对对象象的的程程序序设设计计语语言言具具有有数数据据抽象、信息隐藏、抽象、信息隐藏、_等特征。等特征。答案:分类继承答案:分类继承试题样式:试题样式: 选择题要根据基本内容灵活地回答:选择题要根据基本内容灵活地回答:1.某某个个软软件件项项目目的的开开发发过过程程中中,创创建建了了一一些些C+类类及及类类中中的的属属性性和和方方法法的的说说明明,描描述这些类的说明的文档是(述这些类的说明的文档是(
29、 )。)。A. 软件需求说明书软件需求说明书 B. 详细设计说明书详细设计说明书C. 概要设计说明书概要设计说明书 D. 开发进度月报开发进度月报 答案:答案:B 试题样式:试题样式: 判断题有时也要仔细回答:判断题有时也要仔细回答:对象之间的依赖关系一般有:关联对象之间的依赖关系一般有:关联(association)、协作)、协作(cooperation)、依赖)、依赖(depending)和简化)和简化(abbreviation)。()。( ) 答案是:错答案是:错试题样式:试题样式: 简答题要简明扼要地回答,如:简答题要简明扼要地回答,如:1.什么是对象、类和消息?什么是对象、类和消息?
30、 答答:对对象象是是构构成成世世界界的的一一个个独独立立单单元元,它它具有自己的静态特征和动态特征;具有自己的静态特征和动态特征;类类是是具具有有相相同同属属性性和和操操作作的的一一组组对对象象的的集集合;合;消消息息是是一一个个对对象象与与另另一一个个对对象象的的通通信信单单元元,是是要要求求某某个个对对象象执执行行类类中中定定义义的的某某个个操操作作的规格说明。的规格说明。 试题样式:试题样式: 应用题:数据流图和用例图应用题:数据流图和用例图请按照下列说明画出系统的数据流图请按照下列说明画出系统的数据流图(1)由捐助者向基金会提出捐助请求,经)由捐助者向基金会提出捐助请求,经身份确认后被
31、接受,对捐助人进行登记并身份确认后被接受,对捐助人进行登记并授予捐助证书,捐款存入银行。授予捐助证书,捐款存入银行。(2)每月给基金会的理事会议份财政状)每月给基金会的理事会议份财政状况报表,列出本月的收入和支出情况和资况报表,列出本月的收入和支出情况和资金余额。金余额。 试题样式:试题样式:试题样式:试题样式:一个信用卡验证系统,它的使用者一个信用卡验证系统,它的使用者是顾客,顾客通过信用卡验证系统是顾客,顾客通过信用卡验证系统刷卡,向零售商购买商品;而负责刷卡,向零售商购买商品;而负责发放卡的金融机构通过该系统负责发放卡的金融机构通过该系统负责信用卡帐户的结账和帐户管理,请信用卡帐户的结账和帐户管理,请画出信用卡验证系统的用例图画出信用卡验证系统的用例图