《(网络工程师培训教程)系统开发和运行基础知识(课堂PPT)》由会员分享,可在线阅读,更多相关《(网络工程师培训教程)系统开发和运行基础知识(课堂PPT)(80页珍藏版)》请在金锄头文库上搜索。
1、系统开发和运行基础知识,主题二,1,2.1 主要知识点,1 系统开发基础知识 2 系统运行和维护知识 3 典型试题分析,2,2.2 系统开发基础知识,2.2.1 需求分析和设计方案 2.2.2 开发环境 2.2.3 测试评审方法 2.2.4 项目管理基础知识 2.2.5 系统可审计性,3,2.2.1 需求分析和设计方案,软件工程概述 结构化分析设计 面向对象分析设计 模块设计、I/O设计、人工界面设计,4,软件工程概述,软件: 程序、软件与软件产品 独唱-小合唱-合唱-万人大合唱 | | | 简单程序 较复杂程序 软件 软件包括 程序:按事先设计的功能和性能需求执行的指令序列 数据:是程序能正
2、常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文材料,5,软件工程概述,软件工程: 定义 指导计算机软件开发和维护的工程学科 工程方法+管理技术+技术方法 B.W.Boehm七条基本原理 确保软件质量和开发效率 具较低的维护费用和较高的可靠性,6,软件工程概述,B.W.Boehm七条基本原理: 用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采纳现代程序设计技术 结果应能清楚地审查 开发小组的人员应少而精 承认不断改进软件工程实践的必要性,7,软件工程概述,软件危机: 定义 计算机软件的开发和维护过程所遇到的一系列严重问题 表现 对软件开发成本和进度的估算很不
3、准确 用户很不满意 质量很不可靠 没有适当的文档 软件成本比重上升 供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,8,软件工程概述,软件危机原因: 客观:软件本身特点 逻辑部件 规模庞大 主观:不正确的开发方法 忽视需求分析 软件开发=程序编写 轻视软件维护,9,软件工程概述,软件危机解决途径: 组织管理 工程项目管理方法 技术措施 软件开发技术与方法 软件工具,10,结构化程序设计,程序=数据结构+算法 传统软件工程方法 软件分析 总体设计 详细设计 面向过程的编码 测试,11,结构化分析模型,12,快速原型程序设计,程序=原型 + 需求分析 快速原型软件工程方法 快速分析 构造原
4、型 运行、评价 修改 产品,13,结构化分析模型,14,面向对象程序设计,程序 = 对象 + 消息 面向对象软件工程方法 软件分析与对象抽取 对象详细设计 面向对象的编码 测试,15,面向对象分析模型,16,面向对象的基本概念,对象Object 类Class 继承Inheritance 消息Message 面向对象 对象+类+继承+消息通信,17,对象Object,客观世界中的实体 状态(静态属性 Attributes) 操作(动态行为 Mehtods) 对象:= Identifier Method Set Data Structure Message Interface,18,对象的特点,以
5、数据为中心 对象是主动的 实现数据封装 本质上有并行性 模块独立性好,19,类Class和实例Instance,类 相同属性和行为的对象的抽象 实例 特定类所描述的一个具体对象,20,继承(Inheritance),子类直接继承父类的数据和操作 继承的传递性,单继承、多重继承,家具,桌子,椅子,衣柜,床,椅子的实例,21,多态性Polymorphism,概念 不同类层次共享一个方法名 相同的参数特征和返回值类型 多种不同实现 C+中虚函数实现 动态联编,22,重载Overloading,函数重载 同一作用域 多个名字相同的函数 参数特征不同 静态联编 运算符重载,23,消息Message,对象
6、间的交互手段 形式: Message:dest,op,para Destination Object Operation Parameters,24,模块设计,模块: 以单独命名和可编址的构件被集合,以满足问题的需求。 模块属性: 接口功能逻辑状态 模块设计: 以指解决一个复杂问题是自顶向下独层 把软件系统划分成若干模块,一个模块完成一个子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统所有的功能。 作用: 使一个软件易于为人们理解、设计、测试和维护。,25,I/O设计,面向批处理: 逻辑的组织输入 有效的出错检查 好的I/O出错恢复 合理的输出格式 面向互交: 简单而带提示性的输
7、入方式 完备的出错检查和出错恢复 人机工程的输出 I/O格式一致性,26,人工界面设计,基本原则: 一般可交互性 信息显示 数据输入 注意问题: 系统响应时间 用户帮助设施 出错信息处理 命令互交,27,人工界面设计,界面形式: 问答式 菜单,28,图符 表格 命令语言,人工界面设计,29,2.2.2 开发环境,开发工具 集成开发环境,30,开发工具,设计工具 编程工具 测试工具 CASE(维护、管理 ) 用来辅助软件开发、运行、维护、管理、支持等过程中的活动软件,31,集成开发环境,各种类型的软件工具通常集中于某个软件环境中,此类环境称为集成开发环境。,32,集成开发环境,按解决问题分类:
8、程序设计环境 系统合成环境 项目管理环境 按现有软件开发环境的演变趋向分类: 以语言为中心的环境 面向结构的环境 工具箱环境 基于方法的环境 按集成化程度分类,33,2.2.3 测试评审方法,软件测试概述 软件评审 测试设计和管理方法 (注入故障、系统测试),34,软件测试概述,测试目的: 测试是一个为了发现错误而执行程序的过程 好的测试用例是很可能找到尚未发现的错误 成功的测试是指发现了尚未发现的错误 测试原则: 所有的测试都要追溯到用户需求 应该尽早制定测试计划 应该由第三方进行测试工作 穷举测试是不可能的 充分注意到错误的群集现象 测试应该从“小规模”到“大规模”,35,软件测试概述,测
9、试方法: 白盒子测试 黑盒子测试 测试类型: 恢复测试 安全性测试 强度测试,36,软件测试概述,测试步骤:,37,软件测试概述,测试用例设计: 逻辑覆盖 等价划分 边界值分析 图形技术,纠错技术: 蛮干 消去原因 回溯,38,软件评审,评审的目的是检验工作产品是否正确的满足了以往的工作产品中建立的规范,如需求或设计文档,识别工作产品相对于标准的偏差,包括可能影响软件可维护性的问题,提出改进建议。审评 对象包括所有中间和最终的开发工作产品。 审评分两步,首先从管理的角度进行审查,然后 对系统元素和功能进行技术评估。,39,软件评审,项目评审 需求规范的评审 设计的评审 编码检验 测试评审,40
10、,测试设计和管理方法,注入故障 系统测试,41,2.2.4 项目管理基础知识,制定项目计划 质量管理与评估 过程管理(PERT图、甘特图、工作分解结构、进度控制、关键路径) 配置管理 人员计划和管理 文档管理(文档规范、变更手续) 开发组织和作用(开发组成员、项目经理) 成本组织和风险管理,42,制定项目计划,确定软件范围: 项目目标、功能、性能与约束 系统接口 估计项目: 估计项目规模 估计工作量和成本 估计资源 编写项目进度表,43,制定项目计划,项目组成员责任表:,P表示负责人,S表示辅助者,44,质量管理与评估,如果在软件开发生命周期后期才发现的缺陷将会大大增加成本,因此,我们想尽可能
11、早地找出缺陷,最好在缺陷的产生阶段就把它找出来,这就涉及到建立一个软件质量的基础设施来帮助在缺陷产生阶段进行错误探测了。 为了开发高质量的软件,必须进行有系统、有计划的软件质量保证(SQA)活动。,45,质量管理保证活动,在需求分析阶段对软件质量提出要求,并自顶向下逐步分解为可以亮度、可以控制的质量要素,为软件开发、维护各个阶段的软件测量、定量和定性打下基础; 研究并选用软件开发方法和工具; 对软件工程各个阶段进行正式技术审查(FTR) ; 制定并执行软件测试策略和测试计划; 生成软件文档并对文档的改变进行控制; 保证软件开发过程与选用软件开发标准相一致; 建立软件质量要素的测量机制; 记录S
12、QA活动并生成各种SQA报告。,46,过程管理,PERT图 甘特图 工作分解结构 进度控制 关键路径,47,过程管理,PERT图,48,制定项目计划,甘特图:,49,配置管理,关键要素:,50,配置管理,以结构为中心,软件配置管理主要关心: 软件产品的个组成单元 软件产品结构 软件产品的构造 软件开发项目组 以开发过程为中心,软件配置管理则主要管理: 审核处理 统计处理 控制处理 工程管理,51,人员计划和管理,P表示负责人,S表示辅助者,52,文档管理,项目任务书 可行性研究报告 软件需求说明书 数据要求说明书 概要设计说明书 数据库设计说明书 测试计划 编码与单元 功能模块程序文件说明书
13、用户手册 项目开发总结报告 ,53,开发组织和作用,项目经理 监控开发过程,确保软件在一定时间内开发 配置管理者 确保代码的创建、变更和测试等活动都执行响应的程序和方针,并使有关工程的信息都是可以访问的 系统分析员 负责软件需求规格说明的开发,并参与整个评审 系统设计员(美工程序员) 有效的创建和维护软件。(界面的设计和代码的编写) 测试员 找出系统的所有错误和漏洞,确保软件经过测试并且结果符合要求 质量保证经理 确保产品的高质量,54,成本组织和风险管理,软 件 开 发 各 阶 段 工 作 量 分 配 表,55,风险管理,风险识别: 指系统化地确定对软件项目计划(估计、进度、资源分配)构成威
14、胁的因素。 通过风险识别,项目管理者可以对潜在的风险做到心中有数、并估算风险带来的影响,从而要效地避免或控制风险。 风险估计 又称风险预测,指软件项目管理人员从风险发生的可能性或概率,以及风险发生后带来的影响两个方面对风险做出的评价。 通常包括四种活动: 建立风险度量指标体系,以反映风险发生的可能性; 指明风险发生后的损失; 估算风险发生后对软件项目及软件产品的影响; 标注风险估算的整体精确度,以免产生错误。,56,风险管理,风险评价 通过风险的数量、风险出现的概率、风险的影响来对风险进行分析评价。 做风险评价步骤: 为项目定义风险参照水准; 尝试找出在每个风险和每个参照水准之间的关系。 预测
15、参照点组以定义一个终止区域,用一条曲线或一些易变动区域来界定。 预测什么样的风险组合会影响参照水准。,57,风险管理,风险驾驭和监控(RMMP) : 指利用某些技术,如原型化、软件自动化、软件心理学、可靠性工程学和某些项目管理方法对风险进行缓解、监控和管理。 一个有效的风险驾驭的策略必须考虑: 风险避免 风险监控 风险应急计划,58,2.2.5 系统可审计性,审计方法和跟踪 在系统中纳入可审计性 在系统开发过程中,审计工作伴随着进行,随时监控系统质量。,59,审计方法和跟踪,审计方法 指系统管理人员为了达到系统审查和监管目的,完成审计任务所采用的各种具体方法的总称。 常见方法: 日志审计 安全
16、审计 信息完整性审计 代码审计 系统审计人员应可以通过检测信息系统的可用性、安全性和过程的完整性来确定其是否可信。,60,2.3 系统运行和维护知识,2.3.1 系统运行 2.3.2 系统维护,61,2.3.1 系统运行,系统运行管理的常规目标就是对系统的运行进行实时控制,记录其运行状态,进行必要的修改和扩充,以便使软件系统真正的符合设计的需要,为用户系统。 首先,系统需要一套管理制度,以确保信息系统的正常运行。 其次,信息系统的日常运行管理是为了保证系统能长期、有效的正常运转,具体包括系统运行情况的记录、系统运行的日常维护等工作。 最后,对系统软件及文档进行管理。,62,2.3.1 系统运行,系统运行环境管理(计算机系统、网络) 系统成本管理 系统运行(作业调度、数据I/O管理、操作手册) 用户管理(ID注册和管理) 设备和设施管理(电源、空调设备、设