1.软件工程:指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件工程的问题。其目的是提高软件生产率,提高软件质量,降低软件成本。基本要素包含方法,工具和过程
2.软件生存周期:可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护
3.软件生存周期模型:
瀑布模型(按顺序阶段性开发,不适应用户需求的变化)
演化模型(先构造一个初始版本再不断改进)
螺旋模型(制定计划、风险分析、实施工程、用户评估),只有螺旋模型会考虑风险因素
喷泉模型(重视用户需求,允许各步骤交叉进行。以用户需求为动力,以对象驱动,适合面向对象开发方法)
4.软件开发方法:
结构化方法(面向数据流,自顶向下逐层分解,数据处理领域的问题)
jackson 方法(面向数据结构)
原型化方法(开发一个对用户透明的框架,然后根据用户需求壮大。用户需求不明确且经常发生变化,但系统规模不大且不复杂)
面向对象开发方法
5.需求分析:确定软件系统的综合要求,分析软件系统的数据要求,导出系统的逻辑模型,修正项目开发计划,可开发一个原型系统
6.数据域的属性:数据流,数据内容,数据结构
7.需求工程:
需求开发(需求捕获、需求分析、编写规格说明书、需求验证)
需求管理(定义需求基线、处理需求变更、需求跟踪)
8.软件开发项目管理:
成本估算(自顶向下估算方法、自底向上估算方法、差别估算方法);
风险分析(风险识别、风险预测、风险评估、风险控制);
风险控制是利用某些技术和方法设法避开或转移风险,在此活动中,通常需要考虑风险避免、风险监控和风险管理及意外事件计划3方面问题
进度管理(Gantt 图、PERT 图);
人员管理(主程序员组、无主程序员组、层次式程序员组)
9.软件配置管理的目标:标识变更,控制变更,确保变更正确地实现, 告有关变更。其主要内容包括版本管理、配置支持、变更支持、过程支持、团队支持、变化 告和审计支持等,没有质量控制
10.基线:软件生存期中各开发阶段的一个特定点,相当于断点,便于检查和肯定阶段成果
11.软件开发工具:需求分析工具,设计工具,编码与排错工具,测试工具
12.软件维护工具:版本控制工具,文档分析工具,开发信息库工具,逆向工程工具【由于缺少文档资料,而对软件的一种分析】,再工程工具
13.软件管理和软件支持工具:项目管理工具,配置管理工具,软件评价工具
14.软件过程评估的意义:改进软件过程,降低软件风险
15.软件能力过程成熟度:初始级,可重复级,已定义级,已管理级,优化级
(1)初始级(initial):工作无序,项目进行过程中常放弃当初的计划。
(2)可重复级(Repeatable)CMM2:管理制度化,建立了基本的管理制度和规程,管理工作有章可循。
(3)已定义级(Defined):开发过程,包括技术工作和管理工作,均已实现标准化、文档化。
(4)已管理级(Managed):产品和过程已建立了定量的质量目标,重点关注产品和过程质量
(5)优化级(Optimizing):可集中精力改进过程,采用新技术、新方法。
16.统一过程UP:起始阶段,精化阶段,构建阶段,移交阶段,产生阶段
(1)起始阶段的里程碑是生命周期目标;
(2)精化阶段的里程碑是生命周期架构,分析问题领域,建立健全的体系结构基础,淘汰项目中最高风险元素(需求分析和架构演进),产生一个补充需求分析、一个软件架构描述和一个可执行的架构原型等制品
(3)构建阶段的里程碑是初始运作功能,在适当的平台上集成软件产品;
(4)移交阶段的里程碑是产品发布,产生移交给用户产品发布版本
17.敏捷开发:
极限编程(计划游戏、小型发布、隐喻、简单设计、测试先行(先写测试代码,然后再编写程序)、重构、结对编程、持续集成(编程和测试))
水晶法(不同的项目需要不同的策略、约定和方法论)
并列征求法(多个小组并行递增实现产品)
自适应软件开发
18.软件质量特性:功能性(适合性、准确性、互用性、依从性、安全性),可靠性,易使用性,效率(时间、资源质量),可维护性【软件开发的各个阶段都需要考虑,易分析性】,可移植性
19.软件质量保证:应用技术方法,进行正式的技术评审,测试软件,标准的实施,控制变更,度量,记录保存和 告
20.软件复杂性:规模,难度,结构,智能度
21.软件质量:
设计质量(设计的规格说明书符合用户的要求)
程序质量(程序按照设计规格说明所规定的情况正确执行)
22.设计质量评审内容:是否合乎用户要求,可靠性,保密措施实现情况,操作特性实施情况,性能实现情况,是否具有可修改性可扩充性、可互换性、可移植性、可测试性、复用性
23.程序质量评审内容:功能结构,功能的通用性,模块的层次,模块结构,处理过程的结构
24.软件实现容错的主要手段就是冗余
25.冗余:结构冗余【静态、动态和混合冗余】,信息冗余【如:纠错码和检错码】,时间冗余,冗余附加
冗余附件包括:冗余备份程序的存储及调用,实现错误检测和错误恢复的程序,实现容错软件所需的固化程序
26.系统分析:
对当前系统进行详细调查,收集数据;
建立当前系统的逻辑模型;
分析现状,提出意见和新目标;
建立新系统的逻辑模型;
编写系统方案说明书
27.结构化分析方法(自顶向下逐层分解):数据流图,数据字典,小说明,补充材料
28.数据流图(DFD:描述系统的分解):数据流,加工,数据存储,外部实体——P190
数据流一般可分为变换型和事务型;一个软件系统可以只有一种数据流,也可以是两种数据流类型;不同类型的数据流有不同的映射方法
29.DFD 信息流的类型:变换流(输入、变换、输出),事务流(输入到事务中心、选择执行)
30.数据字典(DD:对图中各成分进行说明):数据流条目,数据存储条目,数据项条目,加工条目——P194
31.加工逻辑描述方法:结构化语言,判定表,判定树
32.系统分析 告作用:描述目标系统的逻辑模型,作为用户与开发人员之间的协议或合同,作为目标系统验收和评价的依据
33.系统分析 告内容:组织情况概述,现行系统概述,系统逻辑模型,新系统在各个业务处理环节拟采用的管理方法、算法或模型,与新系统相配套的管理制度和运行体制的建立,系统设计与实施的初步计划,用户领导审批意见
34.系统设计:
概要设计(设计软件系统总体结构、数据结构及数据库设计、编写概要设计文档、评审);选择适当的解决方案,将系统分解为若干子系统,建立整个系统的体系结构
详细设计(分模块进行详细的算法设计、对模块内的数据结构进行设计、对数据库进行物理设计、其他设计、编写详细设计说明书、评审)
35.系统设计基本原理:抽象,模块化,信息隐蔽,模块独立(耦合:模块之间联系的紧密程度;内聚:模块内部各元素之间联系的紧密程度)
36.系统结构设计原则:分解-协调,自顶向下,信息隐蔽、抽象,一致性,明确性,模块间耦合尽可能小、内聚尽可能高,模块的扇入、扇出系数要合理,模块的规划适当
耦合:
数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数来交换输入、输出信息
标记耦合:一组模块通过参数表传递记录(某一数据结构的子结构,而不是简单变量)信息
外部耦合:一组模块都访问同一个全局简单变量,而且不是通过参数传递该全局变量的信息
公共耦合:一组模块都访问同一个公共数据环境(全局数据结构、共享的通信区、内存的公共覆盖区等)
例:已知模块A给模块B传递数据结构X,则这两个模块的耦合类型为(标记耦合)
37.子系统划分的原则:要具有相对独立性,之间的数据依赖性要尽可能小,结果应使数据冗余较小,应考虑今后管理发展的需要,应便于系统分阶段实现,应考虑各类资源的利用
38.模块(组成系统的基本单位)四要素:输入和输出,处理功能,内部数据,程序代码
39.模块结构图:模块,调用,数据,控制,转接——P203
40.变换分析(从变换流型的 DFD 导出程序结构图):确定输入流和输出流、分离出变换中心,第一级分解,第二级分解,事务分析——P205
41.面向数据结构的设计方法(jackson 方法):分析确定输入输出数据的逻辑结构,找出输入与输出数据结构有对应关系的数据单元,从描述数据结构的 jackson 图导出描述程序结构的 jackson 图,列出所有操作并分配到程序结构图上,用伪码表示程序——207
42.Jackson 图:表达数据元素间的逻辑关系(顺序,选择,重复)或程序结构(顺序,选择,重复)
43.系统详细设计:
代码设计(唯一性、合理性、可扩充性、简单性、适用性、规范性、系统性);
输出设计(确定输出内容、选择输出设备与介质、确定输出格式);
处理过程设计(程序流程图、盒图:NS 图、形式语言、决策树、决策表);
用户界面设计(菜单方式、会话管理方式、提示方式与权限管理);
安全控制设计(环境性因素、数据处理因素)
决策树:一种适用于描述加工中具有多个策略且每个策略和若干条件有关的逻辑功能的图形工具
44.系统实施的任务:按总体设计方案购置和安装计算机 络系统,软件准备,培训,数据准备,投入转换和试运行
45.系统实施的步骤:按总体设计方案购置和安装计算机 络系统,建立数据库系统,程序设计,收集有关数据并进行录入工作和系统测试,人员培训、系统转换和试运行
46.程序设计方法:
结构化方法(模块内部程序各部分要自顶向下地结构化划分、各程序部分应按功能组合、各程序部分的联系尽量使用调用子程序方式而不是GOTO 方式)
原型方法(将带有普遍性的功能模块集中、开发完成通用模块、生成程序模块原型)
面向对象的方法(一个简单直接的映射过程)
47.程序模块图
48.测试:以最少的人力和时间发现潜在的各种错误和缺陷
49.测试过程:制定测试计划,编制测试大纲,设计生成测试用例,实施测试,生成测试 告
50.软件测试:
单元测试(模块接口、局部数据结构、重要的执行路径、出错处理、边界条件),全局数据结构不是单元测试主要检查的内容
集成测试(把模块按系统设计说明书的要求组合起来进行测试)
确认测试(有效性测试、软件配置审查、验收测试)
系统测试(恢复测试、安全性测试、压力测试、性能测试、可靠性及可用性和可维护性测试、安装测试)
51.测试方法:
静态测试(人工检测、计算机辅助静态分析)
动态测试(白盒测试:逻辑覆盖、循环覆盖、基本路径测试;黑盒测试:等价类划分、边值分析、错误猜测、因果图)——P223
白盒测试:
条件【分支】覆盖:使得程序中每个判断中的每个条件的可能取值至少满足一次,即判断的真假均曾被满足
路径覆盖:要求覆盖程序中所有可能的路径
语句覆盖:要求程序中的每个语句至少被执行
52.调试(改正测试时发现的错误):试探法,回溯法,对分查找法,归纳法,演绎法
53.系统文档:软件开发过程中的文档,硬件采购和 络设计中的文档,系统建设过程中的各种来往文件、会议纪要、会议单据等,程序资料和培训教程等
54.系统转换(新系统试运行成功后与旧系统相互转换):直接转换,并行转换,分段转换
55.系统可维护性的评价指标:可理解性,可测试性,可修改性
56.系统维护:硬件维护,软件维护(正确性维护、适应性维护、完善性维护、预防性维护),数据维护
57.系统维护的步骤:提出维护或修改要求,领导审查并做出答复,领导分配任务、维护人员执行修改,验收维护成果并登记修改信息
58.系统评价:立项评价,中期评价,结项评价
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!