软件工程概述信息管理技术_第1页
软件工程概述信息管理技术_第2页
软件工程概述信息管理技术_第3页
软件工程概述信息管理技术_第4页
软件工程概述信息管理技术_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程概述信息管理技术第一页,共四十页,编辑于2023年,星期三学习软件工程的目的软件工程是一门集软件开发技术与软件管理技术于一体的专门基础课。具有广泛的实践性。学习的目的是让学生学会用工程的原理、技术和当前最好的管理手段进行软件的开发与维护。从而提高个人的素质。2第二页,共四十页,编辑于2023年,星期三课程考核办法考核成绩:平时占40%(含平时作业和期中测验)实验占20%(含平时实验成绩和实验报告)期末测验占40%3第三页,共四十页,编辑于2023年,星期三案例练习任务:请设计一个加法运算器。S1:请选出四个组长——分成四组,每组完成一个任务。S2:第一组:提出具体的功能要求。

第二组:进行软件的算法设计,画出流程图。

第三组:进行软件的编码编写C语言代码。

第四组:进行软件的测试——组织一组数据测试。

S3:结果分析第四页,共四十页,编辑于2023年,星期三第一章软件工程概述

1.1软件的概念1.2软件的发展与软件危机1.3软件工程1.4软件的开发方法、工具和环境小结思考与练习返回章目录第五页,共四十页,编辑于2023年,星期三1.1软件的概念

软件是软件工程学的一个重要概念。它是由计算机程序发展而来的一种概念。

那么,软件是不是程序呢?

计算机程序是按既定的算法,用某种计算机语言所规定的指令或语句编写的一系列指令或语句的集合。6第六页,共四十页,编辑于2023年,星期三

中国大百科全书中对软件的定义是:软件是计算机系统中的程序和和有关文件(文档)。这些文档资料包括:

需求分析、功能说明、算法说明、结构说明、使用说明和维护说明等。特点:软件是一种逻辑实体,有抽象性。在它的开发过程中没有明显的制造过程,没有硬件那样的机械磨损、老化问题。7第七页,共四十页,编辑于2023年,星期三软件可分为可执行部分和不可执行部分。

1.可执行部分

软件的可执行部分,是以编码信息存放在存储介质上的程序与过程。

2.不可执行部分软件的不可执行部分,包括面向开发者的文档和面向用户的文档两部分。这两部分文档虽不可执行,但却是开发与维护可执行部分的重要依据。返回节目录8第八页,共四十页,编辑于2023年,星期三

1.2软件的发展与软件危机

1.2.1计算机软件的发展

1.2.2软件危机返回节目录9第九页,共四十页,编辑于2023年,星期三1.2.1计算机软件的发展

自1946年世界上第一台电子计算机诞生以来,计算机软件的发展经历了三个时期,对应了硬件的四个发展阶段。第一时期——程序设计时期从1946年到二十世纪60年代初,是计算机软件发展的初期。这个时期,程序仍是工程技术人员为解决某个具体的实际问题而专门编写的,规模也很小,程序设计很少考虑通用性,但十分讲究编程技巧。此时只有程序的概念,还没有软件的概念。

10第十页,共四十页,编辑于2023年,星期三第二时期——程序系统时期

从20世纪60年代初到70年代初,是计算机软件发展的第二个时期。此时,人们对软件的认识仅仅局限于“软件=程序+说明”。该时期软件开发的特征表现在以下三个方面:

(1)软件的开发方式由“个体生产”到“软件作坊”

(2)程序的运行、维护也不再由一个人来承担。

(3)程序已不再是计算机硬件的附属成分,而是计算机系统中与硬件相互依存、共同发挥作用所不可缺少的部分。

11第十一页,共四十页,编辑于2023年,星期三这个时期,软件产业已经萌芽,其中一个重要特征就是出现了“软件作坊”,软件产品广泛销售,软件的数量急剧增加。基本上沿用软件发展早期所形成的个体化开发方式。软件的开发与维护费用以惊人的速度递增。更为严重的是,由于程序的个体化开发特征,使许多软件产品不可维护,最终导致了“软件危机“的出现。12第十二页,共四十页,编辑于2023年,星期三13第十三页,共四十页,编辑于2023年,星期三第三时期——软件工程时期从20世纪70年代中期至今,是计算机软件发展的第三个时期。这个时期软件产业已经兴起,软件作坊已经发展为软件公司,甚至是跨国软件公司。软件的开发方式是以工程的思想为指导,用工程化的原则、方法和标准来开发和维护软件。软件开发的成功率大大提高,软件的质量也有了很大的保证。软件也已经产品化、系列化、标准化、工程化。14第十四页,共四十页,编辑于2023年,星期三1.2.2软件危机

1.软件危机的概念及其表现软件本身是一个逻辑实体,而非一个物理实体,它是非实物性的,是不可见的。而软件开发又是一个“思考”过程,很难进行管理,开发人员以“手工作坊”的方式开发软件,完全按照自己的爱好和习惯进行,没有任何统一的标准和规范可以遵循。因而,在软件的开发过程中,人们遇到了许多困难(人员、时间、成本和维护)。高成本与低质量的矛盾15第十五页,共四十页,编辑于2023年,星期三

2.软件危机产生的原因

A软件危机的产生,一方面与软件本身的特点有关,另一方面也和软件开发与维护方法的不正确有关。因为:软件是一种逻辑实体,有抽象性。在它的开发过程中没有明显的制造过程,没有硬件那样的机械磨损、老化问题。在某个系统设计完成以前,软件开发人员很难掌握其开发进度,也不易对其进行质量评价。因此,管理和控制软件的开发极为困难。16第十六页,共四十页,编辑于2023年,星期三

B

另外软件规模的不断增大,使程序的复杂程度也在不断增加,软件开发的难度也更难以衡量。对于大型软件的开发.要求所有参与研发的人员之间也必须能够进行准确地交流。而实际情况是在用户、领域专家、软件开发人员之间没有一种合适的通讯手段。用户与软件人员之间交流困难,是造成软件危机的重要原因之一。17第十七页,共四十页,编辑于2023年,星期三

C软件危机产生的另一原因,是软件的开发采用了“手工作坊”式的开发模式。当时的软件规模很小,多为一个人或一组人开发,开发人员没有统一的标准可以遵循,只是按照各自的爱好和习惯进行软件的设计。其结果是开发者把方案构想、总体设计等重要开发步骤完全装在大脑里,只有程序流程图和可执行的源程序作为文档留下来,缺少必要的、面向开发者的、不可执行的文档,如软件需求说明书、结构图、程序代码中的注释、测试用例的设计及测试报告等。

18第十八页,共四十页,编辑于2023年,星期三

3.解决软件危机的途径为摆脱软件危机,北大西洋公约组织成员国在1968年和1969年两度召开会议,商讨解决“软件危机”的对策。会议总结了软件开发中失败的经验与教训,吸收了机械工程和土木工程设计中成熟而严密的工程设计思想,首次提出了“软件工程”的概念,认为计算机软件的开发,也应像工程设计一样,进行规范性的开发,走“工程化”的道路。

第十九页,共四十页,编辑于2023年,星期三1.3软件工程

1.3.1软件工程概述

1.3.2软件生存周期

1.3.3软件生存期模型返回节目录20第二十页,共四十页,编辑于2023年,星期三1.3.1软件工程概述1.软件工程概述

软件工程是指导计算机软件开发和维护的一门工程学科。它运用工程开发的概念、原理、方法和技术来开发和维护软件,把经过时间考验而证明是正确的管理技术和当前能够用到的最好的开发方法结合起来,共同作用于软件的开发和维护。软件工程强调使用软件生命周期方法学和各种先进的分析方法、设计技术。

21第二十一页,共四十页,编辑于2023年,星期三2、软件工程研究的对象软件工程主要研究如何应用一些科学理论和工程技术观点,来指导软件系统的开发与维护。这使其逐渐成为一门严格的工程学科。主要包括:软件开发技术软件管理22第二十二页,共四十页,编辑于2023年,星期三

3、软件工程的目标软件工程的目标是提高软件产品的质量与软件开发的生产率,最终实现软件的工业化生产。“质量”是软件需求方最关心的问题,而“生产率”是软件供应方最关心的问题。“质量”与“生产率”之间又有着内在的联系,高生产率必须以质量合格为前提。23第二十三页,共四十页,编辑于2023年,星期三

4、软件工程的主要环节有:人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试、维护等,如图1.1所示。

24第二十四页,共四十页,编辑于2023年,星期三1.3.2软件生存周期如同人的一生要经历婴儿期、少年期、青年期、老年期直至死亡这样一个全过程一样,任何一个软件产品或软件系统也要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程。我们把软件经历的这一全过程称为软件生存周期。

25第二十五页,共四十页,编辑于2023年,星期三问题定义可行性分析需求分析概要设计详细设计软件编码软件测试软件维护软件开发软件定义软件维护26第二十六页,共四十页,编辑于2023年,星期三1.软件的定义阶段软件定义阶段主要解决待开发的软件是“做什么”的这一问题。系统分析(定义)——确定待开发软件的总体要求和适用范围,以及软硬件支撑的要求;软件项目计划(可行性)——确定待开发软件的目标,对其进行可行性分析,并对资源分配、进度安排等作合理计划;需求分析(功能分析)——确定系统的逻辑模型。

27第二十七页,共四十页,编辑于2023年,星期三

2.软件的开发阶段软件开发阶段主要解决该软件“怎样做”的问题。主要完成软件中数据结构和软件自身结构的设计,算法的设计,程序的编写,程序的测试。最后得到可交付使用的软件。它通常由下述四个阶段组成:概要设计详细设计软件编码和单元测试综合测试28第二十八页,共四十页,编辑于2023年,星期三3.软件的维护通常有四类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。29第二十九页,共四十页,编辑于2023年,星期三1.3.3软件生存期模型

最早出现的软件开发模型是1970年W。Royce提出的瀑布模型,而后随着软件工程学科的发展和软件开发的实践,相继提出了演化模型、螺旋模型、增量模型、喷泉模型等。近年、又提出了渐增模型。30第三十页,共四十页,编辑于2023年,星期三1.瀑布模型一个更精确的软件开发步骤可按需要解决问题的顺序依次为:做什么——如何做——制作——检测——使用首先应给出软件的目标,确定要做什么;然后要决定如何达到这一目标,给出策略、方法和步骤;继而加以实现,制作出所需要的软件;经过适当的检测,判定符合初始目标以后,方可投人运行和使用。可以说这是瀑布模型的雏型。1970年W.Royce首先将这一瀑布模型的雏型精确化,提出了具有多个开发阶段的瀑布模型。31第三十一页,共四十页,编辑于2023年,星期三问题定义可行性分析需求分析概要设计详细设计软件编码软件测试软件维护软件开发软件定义软件维护32第三十二页,共四十页,编辑于2023年,星期三

在瀑布模型中,各阶段结束后,都要进行严格的评审。技术评审、管理复审评审不合格,返回上一节,重新设计开发,保证了软件产品的质量。特点:瀑布模型适用于客户需求明确,技术成熟,阶段目标明确的项目,但缺少灵活性。33第三十三页,共四十页,编辑于2023年,星期三2.螺旋模型螺旋模型是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。①制定计划——确定软件目标,选定实施方案,弄清项目开发的限制条件;②风险分析——分析所选方案,考虑如何识别和消除风险;③实施工程——实施软件开发;④客户评估——评价开发工作,提出修正建议。34第三十四页,共四十页,编辑于2023年,星期三35第三十五页,共四十页,编辑于2023年,星期三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论