书签 分享 收藏 举报 版权申诉 / 434
上传文档赚钱

类型全套课件·《软件工程(第二版).ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3158442
  • 上传时间:2022-07-25
  • 格式:PPT
  • 页数:434
  • 大小:4.95MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《全套课件·《软件工程(第二版).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    全套 课件 软件工程 第二
    资源描述:

    1、软件工程软件工程(第二版)(第二版)前言前言 本书是依据教育部高职高专教育基础课程教学的基本要求和高职高专教育专业人才培养目标与规格编写而成。全书共分十四章。第一、二章是软件工程基础,主要讨论软件工程的发展历程、软件工程的结构与分类和概要论述系统建设的基本思路与主要方法,以作为后续各章的预备知识和概念基础。第三、四章论述计算机工程及需求分析流程改革。第五、六、七、八、九章讨论软件系统分析、设计与系统实施的方法软件工程开发的项目管理与运行维护的基本知识。尽管一些新的方法有了很大发展,结构化方法作为信息系统建设中比较成熟的方法与技术,仍然在软件工程建设中得到广泛应用,是本专业学生应该掌握的基本方法

    2、与技能。前言前言 第十、十一、十二章讨论面向对象方法。近20年来,在软件工程领域,面向对象方法有了较大的发展,统一建模语言(UML)和统一过程(RUP)的建立和日趋完善使得面向对象方法在应用上有了实际的工业标准。第十三、十四章构成本书的最后一部分,专门介绍比较新颖、颇具发展潜力的软件开发技术,包括:快速原型技术、重用技术。第一章第一章 软件危机与软件工程软件危机与软件工程学习要点:学习要点:n软件工程是在20世纪60年代末期提出的。这一概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。n本章介绍软件危机和软件工程的基本概念。第第第第第第1 1 1章章

    3、章章章章 软件危机与软件工程软件危机与软件工程软件危机与软件工程软件危机与软件工程软件危机与软件工程软件危机与软件工程1.1软件危机软件危机 软件包括了使计算机运行所需要的各种程序及其有关的文档资料。其中,程序是计算机任务的处理对象和处理规则的描述;文档是为了理解程序所需的阐述性资料。20世纪60至70年代,“软件危机”一词在计算机界广为流传,其主要针对当时存在的软件代价高和软件错误多的现象。1.1软件危机软件危机1.1.1 软件代价高软件代价高1.1.2 软件开发和维护中的严重问题软件开发和维护中的严重问题1.1.3产生软件危机的原因产生软件危机的原因1.1.1软件代价高软件代价高 1 0

    4、0 8 0 6 0 4 0 2 0 0 1 9 5 5 1 9 7 0 1 9 8 5 硬 件 软 件 总费用的百分比 n计算机系统硬件/软件成本变化趋势n在开发一个新型计算机系统或修改一个现有系统的过程中,最大部分的资金是用在软件系统开发方面。二十年来软件技术的发展 硬件技术 计算速度容量增高成本下降 计算能力106-108倍。主频 4.7M2G 内存 256K-512MB,2-4GB 外存 360K-680M 一张光盘1.5万页A4文字 40册400页书真空管半导体集成电路微处理器连接性 19 51 5751 58 6351 64 6951 70 9051 91 8551单主机计算C/S

    5、分布式计算网络计算 95计算模式20001.1.2 软件开发和维护中的严重问题软件开发和维护中的严重问题计算机系统发展的早期时代所形成的错误概念与做法,已经严重阻碍了计算机软件的开发,更严重的是:用错误方法开发的软件几乎根本无法维护,只好提前报废。1、软件危机2、有那些软件开发的错误方法和观念有那些软件开发的错误方法和观念n(3)软件产品的质量量化分析不够。n(1)软件开发成本与进度估计不准确。n(2)闭门造车。软件开发人员仓促上阵,编写程序。n(4)软件重用性差。n(5)软件没有适当的文档资料。n(6)软件成本逐年上升。n(1)建设环境的复杂性 软件工程结构复杂,要涉及到用户组织内部与外部环

    6、境n(2)用户需求的多样性 软件开发失败最主要的原因是:用户对软件需求描述 不精确,可能有遗漏、有二义性、有错误。n(3)建设内容的复杂性 软件是逻辑部件:试制阶段难衡量;开发质量较难评 价,开发过程管理和控制较难。n(4)技术手段的复杂性 软件设计、实施、维护技术手段的复杂性。n(5)建设所需资源的密集性 软件系统是资金、劳动、智力、知识密集型大型项目,各类的信息交流不及时是产生软件危机的主要原因。1.1.3产生软件危机的原因产生软件危机的原因关于软件危机的总结n1、软件是逻辑部件:试制阶段难衡量;开发质量较难评价,开发过程管理和控制较难;运行过程才能暴露没有检测出来的事故,相当于修改设计,

    7、软件维护困难;n2、软件规模庞大,有技术问题,也有管理方法问题。n3、早期开发的个体化;忽视需求分析;认为软件开发写程序;轻视维护,对用户不了解,n4、对前期工作不能忽视,做好软件定义时期的工作,这是降低成本,提高件质量的关键。n5、严重性:在软件开发的不同阶段修改付出代价(后期是前期的2-3个数量级),软件维护是极端艰巨复杂的工作,占55%70%)1.2 软件工程软件工程什么是软件工程 软件工程是指把系统的、规范化的、可以度量的方法运用于软件的开发、运行和维护的过程;简言之,工程化在软件方面的作用。以工程的方法制作软件项目project或产品product的全过程(从立项到交付)工程方法:人

    8、们利用技术(或工具)、技能通过有组织活动完成契约规定的目标,即按预定完工期交付合格成品。工程要素:人力、资金、技术 工程目标:在给定的资金、限制的时间内,完成符合相应标准的产品。1、软件工程的七条基本原理n(1)用分阶段的生命周期计划进行严格管理n(2)坚持进行阶段评审n(3)实行严格的产品控制n(4)采用现代程序设计技术n(5)结果应能清楚地审查n(6)开发小组的人员应该少而精n(7)承认不断改进软件工程实践的必要性1.2.2 软件工程的目标软件工程的目标n软件工程的目标可概括为:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、

    9、可追踪性和可互操作性并满足用户需要的软件产品。n应该特别指出;“可靠性”这个目标在软件工程中有着重要的意义。广义上讲,它涉及到产品设计的一系列问题,从而使产品能在相当长的期间内稳定工作。狭义上讲,可靠性是软件成功运行的概率度量,可靠性分析和可靠性测试可作为衡量软件质量和其他开发过程的最重要的方法之一。1.2.3 软件工程框架及原则软件工程框架及原则 开 发 模 型 设 计 方 法 支 持 过 程 管 理 过 程 用可 可可可 性可 正可 确 性可 性可 合 算 软 件 分 析 实现 与维护 软 件 设 计 原则:一、选取适宜的开发模型;二、采用合适设计方法;三、提供高质量工程支持;四、重视开发

    10、过程管理。第第第第第第2 2 2章章章章章章 软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开软件生命周期及软件开发模型发模型发模型发模型发模型发模型学习要点:学习要点:软件生命周期表明软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直至被新的需要所替代而停止该软件的使用的全过程。软件开发模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。第第第第第第2 2 2章章章章章章 软件生命周期及软软件生命周期及软软件生命周期及软软件生命周期及软软件

    11、生命周期及软软件生命周期及软件开发模型件开发模型件开发模型件开发模型件开发模型件开发模型 软件生命周期:软件定义、软件设计、软件使用与维护三阶段,而又可以具体分成几个子阶段。(1)可行性研究(2)需求分析和定义(3)总体设计(4)详细设计(5)编码(实现)(6)软件测试、运行维护图2.1 软件生命周期 退 役 维 护 调 试 实 现 详细设计 需 求 分 析 概要设计 可 行 性 研 究 2.1软件生命周期软件生命周期2。2软件开发生命周期过程和活动软件开发生命周期过程和活动 软件生命周期过程的IEEE(美国电气电子工程师学会 IEEE)标准描述了一系列活动和过程,对于IEEE Std1074

    12、-1995的软件的开发和和维护来说这些活动是强制性的。它的目标是为开发生命周期模型建立一个通用框架。在这一节,我们描述由这一标准引入的主要过程和活动。过程是一系列朝着特定目标(例如,需求、管理、发布)执行的活动。IEEE标准一共列出了17个过程(见表2.1)。把过程分组成更高层的抽象称为过程组(process group)。过程组的例子是项目管理、前期开发、开发和后期开发。表2.1 IEEE 1074的软件过程2。2软件开发生命周期过程和活动软件开发生命周期过程和活动 过程组 过程生命周期建模 选择生命周期模型项目管理 项目启动项目监控和控制软件质量管理前期开发 概念探讨 系统配置开发 需求设

    13、计 实现后期开发 安装 操作和支持 维护 报废整体过程 验证并确认 软件配置管理 文档开发培训2。2软件开发生命周期过程和活动软件开发生命周期过程和活动 最早出现的软件开发模型是1970年WRoyce提出的瀑布模型,而后随着软件工程学科的发展和软件开发的实践,相继提出了原型模型、演化模型、增量模型、喷泉模型等。问题计划问题计划 开发时期开发时期 运行时期运行时期 图图2.2瀑布模型瀑布模型问题定义问题定义可行性可行性需求分析需求分析总体设计总体设计详细设计详细设计编码编码测试测试维护维护需需求求设计设计编编码码测试测试集成集成需求需求设计设计编码编码 测试测试集成集成需求需求设计设计编码编码测

    14、试测试集成集成 需求采集细化 快速 设计 建造 原型 用户评价原型 原型 对原型 加工 产品 样本 停止 开始 需求计划 风险分析 风险分析 风险分析 原型 1 原型 2 原型 3 可运 行原型 风险分析:评价方案 识别风险 消除风险 累计成本 指定计划:决定目标 方案限制 提交线 评审 生存期计划 开发计划 组装测试 客户评价 软件 需求 需求 确认 设计确认验证 软件产品设计 实现 验收 测试 编码 组装 测试 单元 测试 实施工程:开发、验证 形成产品 演 化 维 护 确 认 实 现 设 计 分 析 关于关于 模型小结模型小结 螺旋模型是由上面四个部分组成的迭代模螺旋模型是由上面四个部分

    15、组成的迭代模型。螺旋模型的每一周期都包括需求定义、风型。螺旋模型的每一周期都包括需求定义、风险分析、工程实现和评审四个阶段。开发过程险分析、工程实现和评审四个阶段。开发过程每迭代一次,螺旋线就增加一周,软件开发又每迭代一次,螺旋线就增加一周,软件开发又前进一个层次,系统又生成一个新版本,而软前进一个层次,系统又生成一个新版本,而软件开发的时间和成本又有了新的投入。最后得件开发的时间和成本又有了新的投入。最后得到一个客户满意的软件版本。到一个客户满意的软件版本。喷泉模型该模型表明软件开发活动之间没喷泉模型该模型表明软件开发活动之间没有明显的间隙,用于支持面向对象开发过程。有明显的间隙,用于支持面

    16、向对象开发过程。由于对象概念的引入,使分析、设计、实现之由于对象概念的引入,使分析、设计、实现之间的表达没有明显间隙。并且,这一表达自然间的表达没有明显间隙。并且,这一表达自然地支持复用。地支持复用。第第3章章 计算机系统工程计算机系统工程第第3章章 计算机系统工程计算机系统工程 计算机软件工程和硬件工程可以看作是一门更广义的学科“计算机系统工程”内的活动。它们所要做的都是按一定的次序开发基于计算机的系统。计算机系统工程是指与构造基于计算机系统有关的过程、方法和技术。它是一种问题求解活动。计算机系统工程的任务是:组织并指导系统工程师定义全系统各层次中的所有基于计算机系统的要素。20世纪60年代

    17、开始发展起来的计算机系统工程,是计算机硬件、软件、数据通信装置、数据存储设备、规章制度和有关人员的统一体。软件工程在各个领域有着广泛的应用,如计算机辅助设计(CAD)系统、计算机辅助制造(CAM)系统、计算机辅助教学系统、计算机辅助医疗系统、军用的计算机指挥系统、通信软件工程、公用或专用的现代通信系统和信息服务系统都各具特色。管理软件是一类最具代表性的软件工程。3.1基于计算机的系统基于计算机的系统 基于计算机的系统是“某些要素的一个集合,这些要素被组织起来以实现某种方法、过程或借助处理信息进行控制。”图3.1给出了基于计算机系统的系统要素及相互之间关系。过 程 文 档 硬 件 软 件 人 数

    18、据库 输入输入输出输出系统 图3.1 基于计算机系统的系统要素及相互之间关系 3.1.1 计算机系统工程 计算机系统工程是一个问题求解活动,目的是揭示、分析所期望的功能,并把它们分配到各个单独的系统要素中去。计算机系统开发设计周期见图3.2。详 细 设 计:软 件 硬 件 开 发 或 购 买 硬 件 测 试 硬 件 模 块 组 成 软 件 和 硬 件 联 调 功 能 测 试 维 护 改 进 现 场 运 行 软 件 详 细 设 计 设 计 评 审 模 块 编 程 调 试 联 调 软 件 模 块 测 试 调 试 分 析 系 统 要 求 完 成 系 统规 范 用 户 确 认 总 体 设 计 主 要

    19、功 能 确 认 设 计 并 选 择 硬 件 来源 设 计 评 审 图3.2 系统开发设计周期 在系统的功能规范确立之后,下一步要对系统的功能进行认真、仔细的分析,问题的焦点集中于功能、性能、信息流和容量上。一个计算机系统方案应包括以下几个方面的内容:(1)任务的来源,技术要求,质量指标和经费.(2)采取的技术途径。(3)方案的规模,子系统的划分。(4)系统的数据库结构。(5)预计系统的各项指标。(6)所需的设备、仪器、关键元器件、工艺工具 等 的购置情况及保证条件。(7)研制周期、异常情况的处理等等。用户中心设计UCD方法在某种程度上代表了当今的计算机系统技术发展水平,使用该方法能设计极具竞争

    20、力的产品,UCD方法适合一切项目。现将传统设计方法与用户中心设计UCD方法加以比较。传统的设计方法技术驱动以组件为中心有限的多学科协作注重产品的内部体系结构没有专门考虑用户体验竞争意识不强开发先于用户评价产品缺陷质量观不重视用户测量只考虑现有用户 UCD方法用户驱动以解决方案为中心多学科小组成员协同工作注重产品的外部设计专门考虑用户体验以竞争为目标由用户评价设计方案后才开发用户质量观很重视用户测量考虑当前和将来所有用户图3.3 UCD方法和传统设计方法的比较 3.1.2 硬件和硬件工程 基于计算机的系统离不开计算机硬件的支撑。计算机系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。21世

    21、纪以来,信息可以很方便地通过计算机网络实现共享。作为网络文件服务器的计算机,可以给分布在网络上不同站点的客户提供共享的公用程序和数据,这就是客户服务器计算模式。计算机的硬件工程是在几十年电子设计经验的基础上发展起来的,一般将硬件工程分为三个阶段。硬件工程阶段需解决的问题成果(一)硬件研制计划需求分析根据功能可选择、采购的硬件?哪几种硬件接口?必须制造的硬件?潜在的问题及资源?确定项目成本估计、工程进度估计、硬件规格说明(二)硬件设计硬件实现确定硬件元素中的所有元件精确的功能、性能和接口需求。设计约束条件(如尺寸,环境)及测试准则;必要时建造原型并对原型进行测试;画出生产图、硬件规格说明书、对规

    22、格说明书评审和修改(三)生产、销售售后服务质量如何得到保证?产品的维护和修理如何实现?建立质量保证方法、建立产品销售机构、储备备件,售后服务表3.1 硬件工程三个阶段 3.1.3 软件和软件工程 从系统工程的角度来看,软件与硬件、软件工程与硬件工程分别是基于计算机系统和基于计算机的系统工程的重要组成部分。系统工程的论证阶段应该确定系统的软硬件功能和性能。系统对软件提出的功能和性能要求将成为软件需求分析的基础。基于计算机系统的软件要素由程序、数据和文档组成。它们分为两类应用软件与系统软件:应用软件实现信息处理,系统软件完成使应用软件能与其他系统要素交互的控制功能。一个基于计算机的系统可以用输入处

    23、理输出(IPO)模型来表示。软件要素在这个模型的各个方面都起着一定的作用。(1)软件从系统的外部实体或其他系统要素(包括宏要素)接收输入信息。(2)软件还用于建立数据库的接口,使程序能够存取预先存储的数据。(3)软件实现系统功能所需要的计算方法。(4)在实际使用中,软件必须产生输出,把数据转换成某种能适合于输出介质的格式,或适合于输出设备接口的格式。软件工程三个阶段软件工程阶段必须完成的步骤阶段成果(一)软件定义制定软件项目规划;需求分析和定义;确定软件性能和资源约束;软件要素定义验收标准成本、工程进度估计;通过软件原型化信息域分析获得软件规格说明;对软件规格说明技术评审(二)软件开发、实现软

    24、件总体结构设计软件模块结构;数据设计、过程设计接口及信息结构;编码生成源程序代码确定一些有效性准则;对规格说明书评审修改;根据准则判断软件质量(三)检验、发行、维护测试软件,找出错误:进行单元测试调试,组装测试调试;开发用户文档;把软件发行给终端用户对测试文档、测试用例和测试结果进行评审;建立配置管理机制;整个使用寿命中维护软件;3.1.4 人机工程 人机工程是应用从心理学和方法论导出的知识来确定和设计高质量HCI(人机界面)的多学科活动。人机工程过程包括以下步骤:(1)活动分析。(2)语义分析和设计:(3)语法和词法设计:(4)用户环境设计:(5)原型:人机工程的关键要素是设计一个整体解决方

    25、案,它应该对用户而言:易于购买、易于安装、易于学习、易于使用、直观、吸引人、有用3.1.5 数据库和数据库工程 数据库系统是基于计算机系统的重要组成部分,它将有关的硬件、软件、数据和数据库管理人员组合起来,为用户提供信息服务。开发、运行和管理一个数据库系统是一项复杂的数据库工程,人们也常称之为数据库工程。阶段任务结果(一)需求分析、可行性研究调查用户信息需求、处理要求进行可行性论证;提出成本预算和工作计划(二)选择硬件和软件应确定数据管理系统;支持数据库查询、维护和分析确定运行的操作系统、网络环境(三)数据库设计与实现根据需求分析和数据分析;概念设计;逻辑设计;物理设计;评审、测试;产生需求说

    26、明和数据说明;产生数据库概念模型;产生逻辑模型;产生数据软件工程的原则;生成各种文档(四)运行和管理及时补充、修改和更新数据库;数据的收集、整理、分类;储存数据库的管理和维护对数量大、类型多、关系复杂的数据存储应有利于数据的查询、修改并尽量减少数据的冗余;为用户提供培训及有关资料表3.4 数据库工程的阶段 不同的数据存储管理模式有不同的特点,适用范围也不相同。3.2可行性研究可行性研究 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。在讨论一个项目是否可行,需要从市场可行性、技术可行性、经济可行性、法律可行性分析几个方面着手进行考虑。图3.4表明了可行性研究的步骤 系

    27、统 输 入 约 束 条 件 定 义 问 题 研 究 旧 系 统 分 析 问 题 导 出 新 系 统 模 型 市 场 可 行 性 技 术 可 行 性 操 作 可 行 性 经 济 可 行 性 成 本 估 算 目 标 做 什 么(流 图)解 3.2.2 市场可行性 要求在项目启动时定位目标市场,清楚在这个市场中的所有用户及他们的特点,并且清楚大部分目标用户当前所采用的解决方案,从而掌握产品竞争形势。必须在项目一开始就得到这些信息。如果没有这些信息或信息不全,那么接下来的设计活动是否有效就值得怀疑了。3.2.3 经济可行性 基于计算机系统的成本效益分析是可行性研究的重要内容,它用于评估基于计算机系统的

    28、经济合理性,给出系统开发的成本论证,并将估算的成本与预期的利润进行对比。计算机系统的成本由四个部分组成:购置并安装软硬件及有关设备的费用;系统开发费用;系统安装、运行和维护费用;人员培训费用。在系统分析和设计阶段只能得到上述费用的预算,即估算成本。在系统开发完毕并交付用户运行后,上述费用的统计结果就是实际成本。系统效益包括经济效益和社会效益两部分。经济效益指应用系统为用户增加的收入,可以通过直接的或统计的方法估算。社会效益只能用定性的方法估算。1成本估计(1)代码行技术(2)任务分解技术 2成本效益分析 成本效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。3货币的时间价值 通

    29、常用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为:这也就是P元钱在n年后的价值。反之,如果n年后能收入F元钱,那么这些钱的现在价值是:假定年利率为12,利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值,如表所示。年将来值(元)(li)n现在值(元)累计的现在值(元)125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.944投资回收期 所谓投资回收

    30、期就是使累计的经济效益等于最初投资所需要的时间。投资回收期越短就越能获得利润。例如,修改库存清单系统:两年以后可以节省4225.12元,比最初的投资(5000元)还少774.88元;三年以后将再节省1779.45元,774.881779.45=0.44,因此,投资回收期是2.44年。5纯收入 衡量工程价值的另一项经济指标是工程的纯收入,也就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。3.2.4 技术可行性 技术可行性的评估必须在软件系统分析和定义过程中进行,当技术可行性确定后,就可以完成在规格说明书。一般地,技术可行性要考虑的情况包一般地,技术可行性要考虑的情况包括:括:

    31、开发风险:在分析时给出的各种约束条件下,系统能否被设计出来,并实现必需的功能和性能?资源有效性:可用于开发系统元素的人员是否存在问题?是否具备用于建立系统的其他资源(硬件、软件)?技术:相关技术的发展是否能支持这个系统?3.2.5 方案选择 系统分析任务完成后,系统工程师开始研究问题求解方案。通常系统工程师将一个大的复杂系统分解为若干个子系统;精确地定义子系统的界面、功能和性能;给出各子系统之间的关系。这样可以降低解决方案的复杂性,有利于人员的组织和分工,提高系统开发效率和工作质量。可行性研究的结果可作为系统规格说明书的一个附件。项目背景项目背景:问题描述;实现环境;限制条件;管理概要与注意事

    32、项管理概要与注意事项:重要的研究结果;说明;注意事项;影响;候选方案候选方案:候选系统的配置;选择最终方案的准则;系统描述系统描述:简略的范围描述;分配元素的可行性;市场可行性市场可行性:项目是否有潜在市场,以及市场的变化对项目影响经济可行性(成本经济可行性(成本效益分析)效益分析):经费概算;预期的经济效益;技术可行性(技术风险评价)技术可行性(技术风险评价):技术实力;已有工作基础;设备条件;法律可行性:法律可行性:系统开发可能导致的侵权、违法和责任;用户使用可行性:用户使用可行性:用户单位的行政管理、工作制度;使用人员的素质;其他与项目有关的问题:其他与项目有关的问题:其他方案介绍;未来

    33、可能的变化。表3.7 可行性研究报告目录 3.3 系统开发过程的新体系结构快速原型与面向对象 1存在的问题存在的问题 (1)有些类型的系统需求是模糊的 (2)项目参与者之间存在通信鸿沟 (3)预先定义的需求可能是过时的 2解决问题的途径 为克服传统方法的缺点,人们在实践中逐渐创造出快速原型法和面向对象方法等软件工程的新途径。面向对象的统一软件开发方法迭代开发模式 近似小型的瀑布流程 迭代工作流 迭代 2 迭代 1 下一循环 V1提交 构造 演化 起始 主里程碑 迭代 3 迭代计划 需 求 分析与设计 实 现 测 试 准备版本 3.4本章小结本章小结 计算机系统工程是指与构造基于计算机系统有关的

    34、过程、方法和技术。它是一种问题求解活动。计算机系统工程的任务是:组织并指导系统工程师定义全系统各层次中的所有基于计算机系统的要素(硬件、软件、人、数据库、文档、过程)。本章首先阐述了计算机系统工程的总体设计方案的内容及要点:硬件工程、软件工程、人机工程和数据库工程。然后进一步阐述了计算机系统工程可行性研究的目的:应确定问题是否值得去解;任务是从市场、经济、技术、法律、开发方案的选择性四方面研究计算机系统工程可能性;强调了技术可行性研究应给以高度重视,这一阶段决策的失误将会给开发工作带来灾难性的影响。介绍了系统结构模板的概念与使用要点。第4章 需求分析 软件需求分析就是把软件计划期间建立的软件可

    35、行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。在本章首先我们介绍需求分析的基础,然后介绍结构化需求分析方法,最后介绍其它分析方法与图形工具分析方法。第4章 需求分析4.1 需求分析基础 4.4 实体关系图 4.6 本章小结 4.5 需求规格说明与评审 4.3 其它分析方法与图形工具 4.2 结构化分析方法 4.1 需求分析基础 4.1.1 分析的任务与原则 4.1.2 初步需求获取技术 4.1.3 需求建模 4.1.4 开发原型系统 4.1.1 分析的任务与原则

    36、软件需求分析的任务是:深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。需求分析任务与其实现步骤如图4.1所示。需求分析可分为需求提出、需求分析描述及需求评审三个阶段。图4.1 需求提出和分析的结果 需求提出 分析 系统规格说明:模型 分析模型:模型 需求提出需求提出主要集中于描述系统目的。需求提出和分析仅仅集中在使用者对系统的观点上。用户、开发人员和用户确定一个问题领域,并定义一个描述该问题的系统。这样的定义称作系统规格说明,并且它在用户和开发人员之间充当合同。需求

    37、分析描述 在问题分析阶段分析人员的主要任务是:对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员的主要做法是:要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。需求评审 在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快

    38、更正,再行检查。4.1.2 初步需求获取技术 为了完成软件需求任务,分析人员必须掌握一些基本技术,主要有:初步需求获取技术、需求建模、以及用于需求分析的快速原型技术;一些公共的技术包括:采访、观察、先前的系统版本的测试和系统分析。作为一个好的需求获取技术的显著特征是:方便通信(可以通过易于理解的语言)。提供定义系统模块的方法。鼓励分析员用问题空间的术语而不是软件术语去思考问题和编制文档。允许并提醒分析员有多种可供选择的设计方案。适应需求的变化。4.1.3 需求建模 由于用户群体的各个用户往往会从不同的角度、不同的抽象级别上阐述他们对原始问题的理解和对目标软件的需求,因此,有必要为原始问题及目标

    39、软件解建立模型。这种模型一方面用于精确地记录用户从各个视点、不同抽象级别上对原始问题及目标软件的描述;另一方面,它也将帮助分析人员去伪存真、由此及彼、由表及里挖掘用户需求。建模的步骤是:(1)获得当前系统的物理模型 (2)抽象出当前系统的逻辑模型。(3)建立目标系统的逻辑模型。做什么 抽象化 导 出 怎么做 实例化 当前 系统 目标 系统 物理模型 物理模型 逻辑模型 逻辑模型 模型化具体化图4.2 软件需求建模的任务 4.1.4 开发原型系统 快速原型方法核心思想是:在软件开发的早期快速建立目标软件的原型,让用户对原型进行评估并提出修改意见,当原型几经改进最终确定后,它将由软件设计和编码阶段

    40、进化成软件产品;或者设计和编码人员遵循原型所确立的外部特征实现软件产品。把建立原型系统作为一种可能采取的策略的主要理由如下:(1)由于用户与软件设计人员认识上的局限,不能预先指定所有要求,因此在开发过程中重复和反复是必要的和不可避免的;(2)在用户和系统分析员之间存在固有的通信鸿沟,用户需要一个“活的”系统模型,以便获得实践经验,以便沟通;(3)目前有快速建立原型系统的工具可供选用。4.2结构化分析方法结构化分析方法 此方法基于模块化的思想,采用“自顶向下,逐步求精”的技术对系统进行划分。结构化方法是结构化分析、结构化设计和结构化编程的总称。结构化方法由于具有简单易懂、使用方便的特点,且出现较

    41、早,所以获得了广泛的应用。4.2结构化分析方法结构化分析方法4.2.1 结构化分析的策略 4.2.2 数据流图 4.2.3 数据字典 4.2.4 小说明 4.2.5 结构化分析实施步骤 4.2.1 结构化分析的策略 一旦基于计算机系统的功能被分配到各个系统元素,系统分析员就能够据此建立起一个模型,用以表达系统元素之间的相互关系,并为今后的需求分析和设计奠定基础。为了开发系统模型,使用一个“结构模板”。处理与控制功能维护和自测试用户界面处理输入处理输出处理图4.3 结构模板的格式 下图给出传送带在线货物分类系统的总体结构关系图 系统 卡片机 传送线 分类机制 分类操作员 主机 分类操作员 线 速

    42、 卡 片 代 码 要求 查询 报告 分 流 命 令 数 据 诊 断 数 据 4.2.2 数据流图 数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。数据流图的特点是:它是逻辑系统的图形表示,容易理解,是极好的通信工具,设计数据流图只需考虑系统必须完成的基本逻辑功能,不需要考虑如何实现这些功能,是软件设计很好的出发点。1符号 数据源点或终点:正方形(或立方体)。变换数据处理:圆角矩形(或圆形)。数据存储:开口矩形(或两条平行横线)。数据流:箭头表示,即信息与数据的流动方向。或 数据源点或终点 或 变换数据或处理 或 数据存储 数据流 数据流图有四种基本

    43、符号。2例子 假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库被称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。定货系统的数据流图的成份 源点/终点处理采购员仓库管理员产生报表处理事务数据流数据存储定货报表零件编号零件名称定货数量目前价格主要供应者次要供应者定货信息(定货报表)库存清单*零件编号*库存量库存量临界值事务 零件编号*事务类型数量*定货系统基本系统模型 仓

    44、库 管 理 员 定 货 系 统 采 购 员 事 务 发 货 报 表 把处理事务功能进一步分解后的数据流图 仓 库 管理员 1.1 接收 事务 1.2 更新库 存清单 1.3 处理 定货 D1 库存清单 D2 定货信息 事务 事务 库存 信息 定货 信息 报表 2 产生 报表 定货 采购员 3命名 数据流图中每个成份的命名是否恰当,直接影响数据流图的可理解性。为数据流命名:(1)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成份。(2)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。(3)如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因

    45、为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。为处理命名:(1)通常先为数据流命名,然后再为与之相关联的处理命名(2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好由一个具体的及物动词,加上一个具体的宾语组成。(4)通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把它再分解成两个处理可能更恰当些。(5)如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。4用途 画数据流图的基本目的是利用它作为交流信息的工具。数据流图的另一个主要用途是作为分析和设计的工具。4.2.3 数据字典 1数据字典的内容数据字典的

    46、内容(1)数据流(2)数据流分量(即数据元素)(3)数据存储 (4)处理 2定义数据的方法 由数据元素组成数据的方式有下述几种基本类型:(1)顺序:即以确定次序连接两个或多个分量。(2)选择:即从两个或多个可能的元素中选取一个。(3)重复:即把指定的分量重复零次或多次。3实例(1)数据流条目一个完整的数据流条目应该包括以下内容:名称描述频率和数据量数据结构例如,“图书管理系统”中的“入库单”是一个数据流,对它的说明如下:入库单=分类目录号+数量+书名+作者+内容摘要+价格+购书日期(2)数据存储条目名称描述数据存储方式关键码频率和数据量安全性要求数据结构例如,同样图书管理系统中的“目录文件”是

    47、个数据存储,对它的说明如下:文件名:目录文件 组成:分类目录号+书名+作者+内容摘要+价格+入库日期+总数+库存数+图书流水号4.2.4 小说明 小说明是用来描述加工的。集中描述一个加工“做什么”,即加工逻辑,也包括其他一些和加工有关的信息,如执行条件、优先级、执行频率、出错处理等。目前小说明一般用自然语言、结构化自然语言、判定表和判定树等来描述。在描绘复杂的关系时,图形比文字叙述优越得多,它形象直观,一目了然。4.2.5 结构化分析实施步骤 第一步,确定系统边界,画出系统环境图。第二步,自顶向下,画出各层数据流图。分层数据流图和图中的加工进行编号规则(1)顶层图不参与数据流图编号,顶层图中的

    48、惟一加工也不编号。(2)从0层图开始的所有子图和加工均需编号,子图的编号为分解的父图中相应加工编号。(3)加工的编号由相应的子图号、小数点、加工在子图中的顺序号组成。第三步,定义数据字典。第四步,定义小说明。第五步,汇总前面各步骤的结果。注意事项:(1)模型平衡规则 数据流图中所有的图形元素必须根据它们的用法规则正确使用。数据字典中的定义使用合法的逻辑构造符号。数据流图中最底层的加工必须在小说明中有定义。父图和子图必须平衡。小说明和数据流图的图形表示必须一致。(2)控制复杂性的一些规则 上层数据流可以打包(打包的数据流作特殊标记),上、下层数据流的对应关系用数据字典描述(编号对应),同层的数据

    49、流也可编号对应,避免形成复杂的连线;只有一点限制,数据流的性质(输入、输出)必须一致。4.3 其它分析方法与图形工具 1结构化自然语言结构化自然语言的语法通常分为内外两层,外层语法描述操作的控制结构,如顺序、选择、循环等,这些控制结构将加工中的各个操作连接起来。内层语法一般没有什么限制,就用自然语言描述。2层次方框图 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。例如,描绘一家计算机公司全部产品的数据结构可以用图中的层次方

    50、框图表示。这家公司的产品由硬件、软件和服务三类产品组成,软件产品又分为系统软件和应用软件,系统软件又进一步分为操作系统、编译程序和软件工具。产品 硬件 软件 服务 处理机 存储器 外部 设备 设备 系统软件 应用软件 软件服务 硬件维修 培训 编译程序 操作系统 软件工具 3Warnier图 用Warnier图可以表明信息的逻辑组织 软件产品系统软件应用软件操作系统(P1)编译程序(P2)软件工具编译程序(P3)测试驱动程序(P4)设计辅助工具(P5)4IPO图 IPO图是输入处理输出图的简称,它的基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:全套课件·《软件工程(第二版).ppt
    链接地址:https://www.163wenku.com/p-3158442.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库