四级数据库工程师笔记软件开发.docx
《四级数据库工程师笔记软件开发.docx》由会员分享,可在线阅读,更多相关《四级数据库工程师笔记软件开发.docx(12页珍藏版)》请在冰豆网上搜索。
![四级数据库工程师笔记软件开发.docx](https://file1.bdocx.com/fileroot1/2023-2/21/2fb57626-aa79-41c4-96ce-43ebbad159bb/2fb57626-aa79-41c4-96ce-43ebbad159bb1.gif)
四级数据库工程师笔记软件开发
软件工程概论
1、解决软件危机的途径在于工程化和标准化。
2、软件工程方法又称为软件开发范型,目前使用最广的软件工程方法是面向过程方法、面向对象方法和形式化方法。
3、面向过程方法从功能角度出发,把软件视为处理流,并定义成由一系列步骤构成的程序过程。
4、面向对象方法是问题分解方法的演化结果。
5、对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。
6、形式化方法是一种基于形式化数学变换的软件开发方法,它可将系统的规格说明转换为可以执行的程序。
7、根据软件工程实践,人们把软件生存周期划分为软件定义、软件开发和交付后运行维护三个时期。
8、制定项目计划属于软件定义时期的基本任务。
9、软件开发时期包括概念设计、概要设计、详细设计、编码、测试等阶段。
10、交付后维护时期通常有4种维护活动:
改正性维护、适应性维护、完善性维护、预防性维护。
11、软件过程框架中的保护伞活动,如软件质量保证、软件配置管理等,他们独立于任何一个框架活动并将贯穿于整个过程中。
12、软件过程模型里的螺旋模型将瀑布模型与快速原型模型结合起来,并将两个模型中忽略的风险分析加入进来。
13、每个软件制品的代码通常以三种形式存在:
源代码、目标代码(编译代码)、可执行再如映像。
14、面向对象软件中的基本单位是对象,它是数据抽象和过程抽象的综合体。
15、软件开发时期的概念设计阶段两大任务:
建立分析模型和编写软件需求规格说明。
16、编码-修补模型是没有掌握软件工程的人们最常用的过程模型,实现产品时没有需求规格说明,也没有设计,开发者只是将代码简单的拼凑在一起。
17、螺旋模型中螺线上的每一圈可划分为四个象限:
目标设定、风险评估与弱化、开发与确认、计划。
图1螺旋开发模型
18、CASE(计算机辅助软件工程)工具,按软件过程的活动进行分类:
支持软件开发的工具、支持软件维护过程的工具、支持软件管理过程和支持过程的工具。
19、软件制品的版本需要进行版本控制的两种类型:
修订版本、变种版本。
面向对象的基本概念
1、对象是系统中用来描述客观事物的实体,是构成系统的基本单位。
2、对象名有三种表示格式,有名对象、无名对象、默认类型对象。
3、类是一组具有相同属性、相同操作、相同语义的对象的集合。
4、对象是消息处理的主体,在面向对象的系统中,每个对象不是消息的发送者,就是消息的响应者,不存在既不发送消息也不接收消息的对象。
5、对象是一个黑盒,其属性值对外不可见,被完全封装在盒子内部,对属性值的访问只能通过界面中定义的公有操作进行。
6、由于封装特性禁止外界直接操作类中的数据,模块与模块之间只能通过严格控制的接口进行交互,使得模块之间的耦合度大大降低,从而保证了模块具有较好的独立性。
7、继承从内容上可以划分为4种,取代继承、内容继承、受限继承、特化继承。
8、消息是一个对象向另一个对象传递的信息,消息可以分为4类。
发送对象请求接收对象提供服务、发送对象激活接收对象、发送对象询问接收对象、发送对象仅传送信息给接收对象。
9、UML定义了两类模型元素,一类模型用于表示模型中的各个事物、一类模型用于表示模型元素之间相互连接的关系。
10、在UML中事物可以分为结构事物、行为事物、分组事物、注释事物。
11、关联关系分为普通关联、限定关联、关联类、聚合与符合关联
12、泛化关系是指一般类和特殊类间的继承关系,分为普通泛化和受限泛化。
13、UML中的外部试图包括用例图、活动图、顺序图;内部视图包括类图、对象图、通信图、状态机图、构件图、包图、部署图。
14、状态机图通过对类的对象的生存周期建模来描述对象随时间变化的动态行为,它由状态、迁移、事件和活动组成。
15、状态分为起始状态、中间状态和终止状态,状态机图可以有一个起始状态和零个或多个终止状态。
16、语言编译器根据操作对象的类型自动给调用相应的实现程序,这就是多态,使得相同的函数或操作名适合于不同的对象类型,并且针对不同的对象类型有不同的实现。
图2系统用例图
图3活动图
图4顺序图
软件需求分析
1、软件需求包括三个不同的层次:
业务需求、用户需求、功能需求和非功能需求。
2、用例图提供了对用户需求的可视化表示,描述了系统外的参与者与系统之间的交互,主要注重于用户对系统的看法。
3、结构化分析方法建立的分析模型的核心是数据字典,围绕这个核心有三种图,实体-关系图用于数据建模,数据流图用于功能建模,状态迁移图用于行为建模。
4、基本加工逻辑说明的工具有结构化语言、判定表、判定树。
5、对于复杂的判定,组合条件较多则使用判定表较好。
6、面向对象分析模型由三个独立的模型构成:
由用例和场景表示的功能模型,由类和对象表示的分析对象模型,由状态图和顺序图表示的动态模型。
7、软件项目可行性研究主要有四个方面的内容:
经济可行性、技术可行性、法律可行性、用户操作可行性。
8、非功能需求可以分为:
产品需求和过程需求。
9、需求分析必须理解和描述问题的信息域,该信息域应包括:
信息流、信息内容和信息结构。
10、数据流图的基本图形元素有四种:
加工、数据流、数据存储、数据源(数据潭)。
11、判定表左上部分是条件桩、左下部分是动作桩、右上部分是条件项、右下部分是动作项。
12、软件需求规格说明书是描述需求的重要文档,是软件需求分析工作的主要成果。
图5数据流图
表1判定表
软件设计
1、耦合性按照从紧密到松散的程度分为:
内容耦合、公共耦合、控制耦合、标记耦合、数据耦合。
2、防御性设计是指在进行软件设计时就考虑自动检错、报错和纠错功能。
常采用前置条件、后置条件、不变式检查操作可能存在的缺陷。
3、判断一个算法优劣的标准:
正确性、健壮性、可读性、高效性和简单性。
4、表达处理过程规格说明的工具有三类:
图形工具、表格工具和语言工具。
5、图形工具有程序流程图、N-S图、UML活动图。
6、流程图中最常用的基本控制结构:
顺序型、选择型、先判定循环型、后判定循环型、多情况选择性。
7、mvc是模型-试图-控制器的缩写,该模型把有人机交互的系统分解成模型、试图、控制器3种部件。
8、结构图中有四种类型的模块:
传入模块、传出模块、变化模块、协调模块。
9、接口设计的主要依据是数据流图中的系统边界。
10、接口设计主要包括三个方面:
模块或软件构件之间的结构设计、软件与其他软/硬件之间的接口设计、软件与用户之间的交互设计。
11、体系结构的4+1试图:
逻辑视图、进程试图、开发试图、物理视图和场景试图。
12、Webservices体系结构基于三种角色的交互实现:
服务提供者、服务注册中心和服务请求者。
13、根据各构件如何共享数据、如何分布、如何相互交互,构建型风格可以分为三类:
数据仓库风格、客户机/服务器风格、层次风格。
程序实现
1、测试信息流的测试过程需要三类输入:
软件配置、测试配置、测试工具。
2、程序编码活动的工作制品是源程序、目标程序和用户指南。
3、面向对象的程序设计方法特点:
封装、泛化、多态、协同和复用。
4、多态的四种形式:
参数多态、包含多态、过载多态、强制多态。
5、度量程序复杂性最简单的方法就是统计程序源代码行数,McCabe度量法定义的程序复杂性度量值又称圈复杂度。
6、程序调试的方法:
强行法测试、回溯法调试、归纳法调试、演绎法调试。
软件测试
1、软件测试过程需要三类输入:
软件配置、测试配置、测试工具
2、软件测试方法一般分为两类:
白盒测试、黑盒测试。
3、基本的白盒测试用例设计方法有语句覆盖、分支覆盖、条件覆盖、分支条件覆盖、条件组合覆盖、条件确定测试、路径覆盖。
4、典型的黑盒测试方法有等级类划分、边界值分析、因果图。
5、其他测试方法:
灰盒测试、冒烟测试、随机测试、回归测试。
6、软件测试活动的四个步骤:
单元测试、集成测试、系统测试和验收测试。
7、单元测试的任务:
单元接口、局部数据结构、独立路径、出错处理、边界条件。
8、所谓系统测试就是对被测试系统进行综合检验,其主要目的不再是找出缺陷,而是确认其功能和性能。
9、系统测试属于黑盒测试范畴,不再对软件的源代码进行分析和测试。
10、验收测试中的Alpha测试又称为开发测试,开发方通过检测和提供客观证据,证明软件运行是否满足用户规定的需求。
11、Beta测试是将软件完全交给用户,让用户在实际使用环境下进行的对产品预发布版本的测试。
12、人工测试,就是不用在计算机上动态执行的测试,主要包括:
桌上检查、代码检查、走查等。
13、桌上检查是由程序员自己检查编写的程序,走查与代码检查很相似,都是以小组为单位进行的。
14、单元测试的时候使用的辅助模块包括驱动模块和桩模块,驱动模块相当于被测模块的控制程序,桩模块用于代替被测模块调用的子模块。
软件维护
1、软件维护活动分为三类:
改正性维护、适应性维护、完善性维护。
2、预防性维护是把今天的方法应用于昨天的系统以满足明天的需要。
3、当软件系统使用年限太长,难以修改和演化的时候就称为遗留系统。
4、遗留系统的演化活动可以分为三类:
维护、现代化改造、替换。
5、一个遗留系统的现代化改造工作由三个基本过程组成:
逆向工程、转化、正向过程。
软件过程
1、软件生存周期的基本过程有五个:
获取过程、供应过程、开发过程、运行过程、维护过程。
2、CMM(CapabilityMaturityModel,能力成熟度模型)按软件过程的不同成熟度划分了五个等级,1级被认为成熟度最低,5级则被认为成熟度最高。
3、CMMI集成模型对于软件过程的改进提供了两种不同的途径,即所谓分级表示和连续表示。
4、分级表示的成熟度等级侧重软件组织过程改进方面的成熟度等级,从1级到5级成熟度逐步提高。
5、分级表示的成熟度等级:
初始级、已管理级、已定义级、已定量管理级、优化级。
6、CMMI的连续表示描述的是能力等级,它表明了软件组织选择的过程在软件过程改进方面的能力有多强。
等级越高能力越强。
7、连续表示的各个等级:
不完备级、已实施级、已管理级、已定义级、已定量管理级、优化级。
8、在CMMI的过程域描述中包含了3个模型构建:
必需的构件、期望的构件、资料性构件。
9、软件过程改进的IDEAL模型的五个阶段:
启动阶段、诊断阶段、建立阶段、行动阶段、提高阶段。
10、软件过程改进循环四个步骤:
评估、计划、改进、监控。
软件项目管理
1、范围、时间、成本成为项目管理三要素。
2、项目集成管理又称项目整体管理,主要过程包括项目计划制定、项目计划执行、整体变更控制。
3、里程碑是监控项目活动执行是否结束的重要标志,可以是一个文档也可以是一个项目成果的简短报告,它代表项目中一个特定阶段的结束。
4、项目控制措施有以下四类,组织措施、经济措施、合同措施、技术措施。
5、在软件项目管理范围中,主要关注生产率与质量的度量,。
6、软件项目的度量有两种方式:
直接度量和间接度量。
面向规模度量是对软件产品和软件开发的直接度量,面向功能的软件度量属于间接度量。
7、项目范围管理的结果是产生详细的工作分解结构WBS。
8、每一种资源应明确四个特性,是什么资源,资源用来干什么,资源什么时候投入使用,资源要用到什么时候。
9、软件项目中的硬件资源包括宿主机、目标机和其他硬件设备。
10、软件项目的成本有四种:
硬件/支持软件成本、差旅及培训费、软件开发成本、项目管理费用。
11、项目成本管理由资源计划编制、成本估算、成本预算和成本控制四个过程组成。
12、项目进度管理中的项目活动定义是对工作分解结构中规定的具体活动进行定义,并形成文档。
方法主要有两种:
分解和模型。
13、项目团队成员可分为三类:
面向任务型、面向自我型、面向合作型。
14、团队冲突处理方式:
回避或撤退、竞争或逼迫、调停或消除、妥协、合作正视和解决问题。
软件质量管理
1、软件质量可以归纳为三种质量,使用质量、外部质量和内部质量。
2、软件的使用质量模型包含四个质量特性:
可用性、生产率、安全性、满意度。
3、FCM质量度量模型分为三层框架:
质量因素、质量标准、质量度量。
GQM也表现为一个层次结构:
概念层、运作层、量化层。
4、软件质量特性度量有两类:
预测型和验证型。
5、软件质量保证过程包括四个方面:
过程实施、产品质量保证、过程质量保证和质量保证体系的质量保证。
6、软件评审主要分为管理评审、技术评审、文档评审和过程评审。
7、走查是一种非正式的评审,在软件企业中被广泛应用,这个过程中作者占主导地位,由作者描述产品的功能和结构以及完成任务的基本情况。
8、正式审查在查找错误方面比非正式评审方法有效的多。
9、轮查适合于由于地理位置或时间限制而无法面对面开会的情况。
软件文档
1、按照文档的产生和使用范围,可以分为四类:
开发文档、管理文档、用户文档、维护文档。
2、根据标准的性质可以分为技术标准、管理标准、工作标准。
以上内容根据2017年教材整理