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