已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 软件工程概述 软 件 工 程 林 茂 2008.8.20 1 第1章 软件工程概述 学习软件工程的目的 软件工程是一门集软件开发技术与软件 管理技术于一体的专门基础课。具有广泛 的实践性。 学习的目的是让学生学会用工程的原理 、技术和当前最好的管理手段进行软件的 开发与维护。 从而提高个人的素质。 2 第1章 软件工程概述 课程考核办法 考核成绩: 平时占40%(含平时作业和期中测验) 实验占20% ( 含平时实验成绩和实验报告 ) 期末测验占40% 3 第1章 软件工程概述 案例练习 任务:请设计一个加法运算器。 S1:请选出四个组长分成四组,每组完成一个任务。 S2: 第一组:提出具体的功能要求。 第二组:进行软件的算法设计 ,画出流程图。 第三组:进行软件的编码编写 C 语言代码。 第四组:进行软件的测试组织一组数据测试。 S3:结果分析 4 第1章 软件工程概述 第一章 软件工程概述 1.1 软件的概念 1.2 软件的发展与软件危机 1.3 软件工程 1.4 软件的开发方法、工具和环境 小 结 思考与练习 返回章目录 5 第1章 软件工程概述 1.1 软件的概念 软件是软件工程学的一个重要概念。 它是由计算机程序发展而来的一种概念。 那么,软件是不是程序呢? 计算机程序是按既定的算法,用某种 计算机语言所规定的指令或语句编写的一系列 指令或语句的集合。 6 第1章 软件工程概述 中国大百科全书中对软件的定义是: 软件是计算机系统中的程序和和有关 文件(文档)。 这些文档资料包括: 需求分析、功能说明、算法说明、结构 说明、使用说明和维护说明等。 特点:软件是一种逻辑实体,有抽象 性。在它的开发过程中没有明显的制造过程 ,没有硬件那样的机械磨损、老化问题。 7 第1章 软件工程概述 软件可分为可执行部分和不可执行部分 。 1可执行部分 软件的可执行部分,是以编码信 息存放在存储介质上的程序与过程。 2不可执行部分 软件的不可执行部分,包括面向 开发者的文档和面向用户的文档两部分。 这两部分文档虽不可执行,但却是开发与 维护可执行部分的重要依据。 返回节目录 8 第1章 软件工程概述 1.2 软件的发展与软件危机 1.2.1 计算机软件的发展 1.2.2 软件危机 返回节目录 9 第1章 软件工程概述 1.2.1 计算机软件的发展 自1946年世界上第一台电子计算机诞生以来 ,计算机软件的发展经历了三个时期,对应了硬件 的四个发展阶段。 第一时期程序设计时期 从1946年到二十世纪60年代初,是计算机软 件发展的初期。这个时期,程序仍是工程技术人员 为解决某个具体的实际问题而专门编写的,规模也 很小,程序设计很少考虑通用性,但十分讲究编程 技巧。 此时只有程序的概念,还没有软件的概念。 10 第1章 软件工程概述 第二时期程序系统时期 从20世纪60年代初到70年代初,是计算机软 件发展的第二个时期。此时,人们对软件的认识仅仅 局限于“软件程序+说明”。 该时期软件开发的特征表现在以下三个方面: (1)软件的开发方式由“个体生产” 到“软件 作坊” (2)程序的运行、维护也不再由一个人来承担 。 (3)程序已不再是计算机硬件的附属成分,而 是计算机系统中与硬件相互依存、共同发挥作用所不 可缺少的部分。 11 第1章 软件工程概述 这个时期,软件产业已经萌芽,其中一 个重要特征就是出现了“软件作坊”,软件产品 广泛销售,软件的数量急剧增加。基本上沿用软 件发展早期所形成的个体化开发方式。 软件的开发与维护费用以惊人的速度递 增。更为严重的是,由于程序的个体化开发特征 ,使许多软件产品不可维护,最终导致了“软件 危机“的出现。 12 第1章 软件工程概述 13 第1章 软件工程概述 第三时期软件工程时期 从20世纪70年代中期至今,是计算机软 件发展的第三个时期。这个时期软件产业已经兴 起,软件作坊已经发展为软件公司,甚至是跨国 软件公司。软件的开发方式是以工程的思想为指 导,用工程化的原则、方法和标准来开发和维护 软件。软件开发的成功率大大提高,软件的质量 也有了很大的保证。软件也已经产品化、系列化 、标准化、工程化。 14 第1章 软件工程概述 1.2.2 软件危机 1软件危机的概念及其表现 软件本身是一个逻辑实体,而非一个物理 实体,它是非实物性的,是不可见的。而软件开发 又是一个“思考”过程,很难进行管理,开发人员 以“手工作坊”的方式开发软件,完全按照自己的 爱好和习惯进行,没有任何统一的标准和规范可以 遵循。因而,在软件的开发过程中,人们遇到了许 多困难(人员、时间、成本和维护)。 高成本与低质量的矛盾 15 第1章 软件工程概述 2软件危机产生的原因 A 软件危机的产生,一方面与软件本身的 特点有关,另一方面也和软件开发与维护方法的不 正确有关。 因为:软件是一种逻辑实体,有抽象性 。在它的开发过程中没有明显的制造过程,没有硬 件那样的机械磨损、老化问题。在某个系统设计完 成以前,软件开发人员很难掌握其开发进度,也不 易对其进行质量评价。因此,管理和控制软件的开 发极为困难。 16 第1章 软件工程概述 B 另外软件规模的不断增大,使程序的复杂 程度也在不断增加,软件开发的难度也更难以衡量。 对于大型软件的开发要求所有参与研发的人员之间 也必须能够进行准确地交流。而实际情况是在用户、 领域专家、软件开发人员之间没有一种合适的通讯手 段。用户与软件人员之间交流困难,是造成软件危机 的重要原因之一。 17 第1章 软件工程概述 C 软件危机产生的另一原因,是软件的开发 采用了“手工作坊”式的开发模式。 当时的软件规模很小,多为一个人或一组 人开发,开发人员没有统一的标准可以遵循,只是 按照各自的爱好和习惯进行软件的设计。其结果是 开发者把方案构想、总体设计等重要开发步骤完全 装在大脑里,只有程序流程图和可执行的源程序作 为文档留下来,缺少必要的、面向开发者的、不可 执行的文档,如软件需求说明书、结构图、程序代 码中的注释、测试用例的设计及测试报告等。 18 第1章 软件工程概述 3解决软件危机的途径 为摆为摆 脱软软件危机,北大西洋公约组织约组织 成员员国 在1968年和1969年两度召开会议议,商讨讨解决“软软件 危机”的对对策。会议总结议总结 了软软件开发发中失败败的经经 验验与教训训,吸收了机械工程和土木工程设计设计 中成熟 而严严密的工程设计设计 思想,首次提出了“软软件工程” 的概念,认为认为 计计算机软软件的开发发,也应应像工程设设 计计一样样,进进行规规范性的开发发,走“工程化”的道 路。 19 第1章 软件工程概述 1.3 软件工程 1.3.1 软件工程概述 1.3.2 软件生存周期 1.3.3 软件生存期模型 返回节目录 20 第1章 软件工程概述 1.3.1 软件工程概述 1.软件工程概述 软件工程是指导计算机软件开发和维 护的一门工程学科。它运用工程开发的概念、 原理、方法和技术来开发和维护软件,把经过 时间考验而证明是正确的管理技术和当前能够 用到的最好的开发方法结合起来,共同作用于 软件的开发和维护。 软件工程强调使用软件生命周期方法 学和各种先进的分析方法、设计技术。 21 第1章 软件工程概述 2、软件工程研究的对象 软件工程主要研究如何应用一些科学 理论和工程技术观点,来指导软件系统的开发与 维护。这使其逐渐成为一门严格的工程学科。 主要包括: 软件开发技术 软件管理 22 第1章 软件工程概述 3、软件工程的目标 软件工程的目标是提高软件产品的 质量与软件开发的生产率,最终实现软件的 工业化生产。 “质量”是软件需求方最关心的问题 ,而“生产率”是软件供应方最关心的问题。 “质量”与“生产率”之间又有着内在 的联系,高生产率必须以质量合格为前提。 23 第1章 软件工程概述 4、软件工程的主要环节有:人员管理、项目管理 、可行性与需求分析、系统设计、程序设计、测试、维 护等,如图1.1所示。 24 第1章 软件工程概述 1.3.2 软件生存周期 如同人的一生要经历婴儿期、少 年期、青年期、老年期直至死亡这样一个 全过程一样,任何一个软件产品或软件系 统也要经历软件定义、软件开发、软件维 护直至被淘汰这样一个全过程。我们把软 件经历的这一全过程称为软件生存周期。 25 第1章 软件工程概述 问题定义 可行性分析 需求分析 概要设计 详细设计 软件编码 软件测试 软件维护 软件开发 软件定义 软件维护 26 第1章 软件工程概述 1 软件的定义阶段 软件定义阶段主要解决待开发的软件是“做 什么”的这一问题。 系统分析(定义)确定待开发软件的 总体要求和适用范围,以及软硬件支撑的要求; 软件项目计划(可行性)确定待开发 软件的目标,对其进行可行性分析,并对资源分配、 进度安排等作合理计划; 需求分析(功能分析)确定系统的逻 辑模型。 27 第1章 软件工程概述 2软件的开发阶段 软件开发阶段主要解决该软件“怎样做” 的问题。主要完成软件中数据结构和软件自身结构的 设计,算法的设计,程序的编写,程序的测试。最后 得到可交付使用的软件。 它通常由下述四个阶段组成: 概要设计 详细设计 软件编码和单元测试 综合测试 28 第1章 软件工程概述 3软件的维护 通常有四类维护活动: 改正性维护,也就是诊断和改正在使用过 程中发现的错误; 适应性维护,即修改软件以适应环境的变 化; 完善性维护,即根据用户的要求改进或扩 充软件使它更完善; 预防性维护,即修改软件为将来的维护活 动预先做准备。 29 第1章 软件工程概述 1.3.3 软件生存期模型 最早出现的软件开发模型是1970年W 。Royce提出的瀑布模型,而后随着软件工 程学科的发展和软件开发的实践,相继提 出了演化模型、螺旋模型、增量模型、喷 泉模型等。 近年、又提出了渐增模型。 30 第1章 软件工程概述 1 瀑布模型 一个更精确的软件开发步骤可按需要解决问 题的顺序依次为: 做什么如何做制作检测使 用 首先应给出软件的目标,确定要做什么; 然后要决定如何达到这一目标,给出策略、方法和 步骤;继而加以实现,制作出所需要的软件;经过 适当的检测,判定符合初始目标以后,方可投人运 行和使用。可以说这是瀑布模型的雏型。 1970年WRoyce首先将这一瀑布模型的雏型精 确化,提出了具有多个开发阶段的瀑布模型。 31 第1章 软件工程概述 问题定义 可行性分析 需求分析 概要设计 详细设计 软件编码 软件测试 软件维护 软件开发 软件定义 软件维护 32 第1章 软件工程概述 在瀑布模型中,各阶段结束后, 都要进行严格的评审。 技术评审、管理复审 评审不合格,返回上一节,重新设计 开发,保证了软件产品的质量。 特点:瀑布模型适用于客户需求 明确,技术成熟,阶段目标明确的项目, 但缺少灵活性。 33 第1章 软件工程概述 2螺旋模型 螺旋模型是在瀑布模型和演化模型的基础上, 加入两者所忽略的风险分析所建立的一种软件开发 模型。 制定计划确定软件目标,选定实施方案 ,弄清项目开发的限制条件; 风险分析分析所选方案,考虑如何识别 和消除风险; 实施工程实施软件开发; 客户评户评 估评评价开发发工作,提出修正建议议 。 34 第1章 软件工程概述 35 第1章 软件工程概述 特点: 螺旋模型适合于大型软件的开发 ,特别适合于对安全性和保密性需求极高 的系统开发。 只有经过特殊训练的专家才能完 成,很难用形式化的方法来描述。 36 第1章 软件工程概述 3喷泉模型 喷泉模型体现了软件创建所固有的迭代和无间隙 的特征。这一模型表明了软件刻画活动需要多次重复。 例如,在编码之前(实践之后),再次进行分析和设计, 其间,添加有关功能,使系统得以演化。同时,该模型 还表明活动之间没有明显的间隙,例如在分析和设计之 间没有明显的界限。 喷泉模型主要用于支持面向对象开发过程。由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广播稿400字左右(35篇)
- 高中技术《技术与设计2》模块测试题 一
- 课外书的心得体会范文
- 幼儿园主题方案简单
- 风险合规部工作总结
- 销售培训心得(35篇)
- 居间代理房屋合同(3篇)
- 《技术的未来》教学设计(两篇)
- 苏教版 高中技术《技术与设计1》教案合集
- 26.1 锐角三角函数 同步练习
- 植物盆栽课件教学课件
- 2024年中小学天文知识竞赛初赛试卷
- 2024年10月时政100题(附答案)
- 学生校外托管协议书
- 建筑幕墙施工方案
- 第二章 地图(考点串讲课件)七年级地理上学期期中考点大串讲(人教版2024)
- 2024年危险化学品经营单位安全管理人员证考试题库
- JJF(苏) 275-2024 测斜仪校验台校准规范
- 【9道期中】安徽省黄山地区2023-2024学年九年级上学期期中考试道德与法治试题(含详解)
- 2024年医疗污水处理管理制度范本(二篇)
- 2024年官方兽医考试题库(单选题)
评论
0/150
提交评论