软件技术基础软件工程(自学引导).ppt
《软件技术基础软件工程(自学引导).ppt》由会员分享,可在线阅读,更多相关《软件技术基础软件工程(自学引导).ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章软件工程(自学引导)目录概述软件生存周期需求分析软件设计软件编程面向对象的分析和设计软件测试软件维护3.1 概述程序设计时期(19461960年代中期)程序设计是个人行为,没有软件的概念软件时期(60至70年代中期)软件危机出现,结构化思想的提出u软件工程时期 如何适应大型软件的生产 1968年提出“软件工程”这一术语软件危机表现 软件开发代价高 难于控制开发进度 工作量估计困难 软件质量低 软件修改维护困难原因 规模大(大系统的定义:50万行1000万行)复杂性高 软件灵活可变 影响因素多:个人能力、团队联系、产品复杂度、符号方式、时间、其它软件危机的例子IBM 360 系统开发时间:
2、1963-1966 年投入人力:5000人年代码量:100万行每个版本都是从上一个版本找出1000个错误而修订的结果正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷的越深,最后无法逃脱灭顶的灾难。软件工程(Software Engineering)软件工程指导计算机软件开发和维护的工程学科。它应用计算机科学,数学以及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量,降低成本的目的。其中计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本以及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程框架开发范型设计方法支持过程管理过程可用性 正确性
3、 合算性需 求设 计实 现确 认维 护软件开发工具与环境计算机辅助软件工程CASE(Computer-Aided Software Engineering)CASE工具:狭义地说,是一类特殊的软件工具,用于辅助开发、分析、测试、维护计算机程序和/或文档。广义地说,是除了OS之外的所有软件工具的总称。软件开发环境:支持软件产品开发的软件系统。它由软件工具和环境集成机制构成,前者用以软件开发的相关过程、活动和任务;后者为工具集成和软件开发、维护及管理提供统一的支持。软件工程自动化工具CASE=+3.2 软件生存周期定义:是指软件产品从用户提出要求开始,到该软件产品不再能够使用的全过程。包括三个阶段
4、:制定计划,包括问题定义和可行性研究;开发,包括需求分析、设计、编程和测试;维护,包括安装交付、维护和升级等。需求做什么?设计怎么做?编程实现完成系统测试质量保证维护安装后的进一步完善软件开发模型定义软件开发全部过程、活动和任务的结构框架。瀑布模型P.170 图3.1(见后)具有反馈的瀑布模型特点:适用于小型系统的开发,不够灵活演化模型多次分析和设计针对事先不能完成定义需求的软件开发原型系统的重要性螺旋模型考虑风险因素,由Boehm 提出喷泉模型多次重复,无间隙适用于面向对象技术增量模型完整的体系结构的实现确定多次迭代RUPROPES问题定义可行性研究需求分析设 计编 码测 试运行与维护其中:
5、每一阶段具有以下特征:从上一阶段接受工作对象,即输入;对这一输入实施本阶段的工作 给出本阶段的结果作为输出。一、瀑布模型二、快速原型在分析员和用户的紧密配合下,快速确定软件系统的基本要求。根据原型所要体现的特征(或界面形式、或处理功能、或总体结构、或模拟性能等),描述基本规格说明,以满足开发原型的需要。主要有三种不同的类型:(1)探索型:目的是要弄清对目标系统的要求,确定所希望的特征,并探讨多种方案的可行性。(2)实验型:用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠。(3)进化型:进化型原型的目的不在于改进规格说明,而是将系统建造成容易变化,在改进原型的过程中,逐步将原型进化成
6、最终系统。原型快速分析或修改构造运行评价(a)原型开发模型N快速分析,确定初步规格说明构造原型运行/评价原型严格说明细部整理原型提供文档(b)模型的细化过程原型完成否细部说明否效果满意否修改与改进原型NNYYY二、快速原型3.3 需求分析有关软件错误的一些事实在软件生命周期中,一个错误发现得越晚,修复的费用也越高许多错误是潜伏的,并且在错误产生后很长一段时间才被检查出来在需求过程中会产生很多错误在需求阶段,代表性的错误为疏忽,不一致和二义行需求错误是可以被检查出来的需求涉及人员需求者:客户和使用者系统分析员:分析阶段活动的主体开发者:包括设计,编程和项目管理者组成分析员的素质:能力(总体,抽象
7、,本质)过程(保证整个过程的善始善终)交流技术(了解问题域)需求获取目的:了解用户的对软件的要求途径:了解系统的需求 市场调查 访问用户和领域专家 考察现场内容:物理环境、界面、用户或人的因素、功能、文档、数据、资源、安全性、质量需求分析目的:解决需求获取阶段得到的需求的不一致性和二义性方法:结构化 面向对象 实体关系软件需求说明书(SRS)需求分析的结果文档SRS要求正确性无二义性完整性一致性可验证性可理解性可修改性可跟踪性与设计无关结构化分析方法(SA)结构化分析(Structured Analysis)提出人:Yourdon提出的概念有:数据流 数据源 数据潭 加工 存储建模过程(1)建
8、立系统的功能模型 使用的工具为数据流图DFD 首先:建立系统环境图,确定系统边界 继之:自顶向下,逐层分解(2)建立数据字典 定义数据流 定义数据存储 定义数据项(3)给出加工小说明(描述数据的加工)使用的工具为结构化语言、判定表、判定树3.4 软件设计设计阶段的任务:解决怎么做的问题,即将SRS 转换为计算机中可实现的系统,得到软件设计说明书。软件设计可分为:总体设计、详细设计设计复审:每个设计完成后,都应进行复审,以尽早发现软件设计的缺陷。表示形式有:层次图、HIPO 图、结构图等好的设计准则模块化(Modularity)抽象(Abstraction)独立性耦合不同模块之间相互依赖程度的度
9、量 内容耦合(直接操作另一个模块的数据)公共耦合(全局数据结构)外部耦合(全局数据项)控制耦合 标记耦合 数据耦合(参数传递)内聚模块之内各成分之间相互依赖程度的度量 偶然内聚(模块内各部分关系松散)逻辑内聚(模块将几种相关功能组合)时间内聚(模块将同一时刻要执行的任务组合)过程内聚(模块的几个任务按特定次序执行)通讯内聚(模块所有功能通过数据关联)顺序内聚(一个成分的输出作为另一成分的输入)功能内聚(模块只包含单一功能任务)启发性规则(1)改进软件结构,提高模块独立性;(2)模块规模适中-每函数50行语句;(3)深度、宽度、扇入和扇出适中;(4)模块的作用域力争在控制域之内;(5)降低模块接
10、口的复杂性;(6)模块功能应该可以预测。结构化设计方法(SD)基本思想:模块化、自顶向下逐步求精总体设计从数据流图导出软件结构图数据流图分为两大类:变换型数据流图事务型数据流图详细设计是为软件结构图中的每个模块确定算法和数据结构,可用表示工具有:流程图、N-S图、PAD图、伪码结构化设计方法的基本要求是:在详细设计阶段为了确保模块逻辑清晰,就应该使所有的模块只有单入口、单出口和顺序、选择及循环三种基本控制结构。结构化方法小结结构化方法是一种比较系统的软件开发方法,包括:结构化分析和结构化设计紧紧围绕“过程抽象”和“数据抽象”,给出了:完备的符号体系概念与表示 可操作的过程步骤与准则 易理解的表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件技术 基础 软件工程 自学 引导
限制150内