软件工程-软件工程概论_第1页
软件工程-软件工程概论_第2页
软件工程-软件工程概论_第3页
软件工程-软件工程概论_第4页
软件工程-软件工程概论_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1.1软件与软件工程1.1.1软件1.1.2软件工程(软件危机、软件工程)1.1.3软件工程的活动1.2软件的生存周期1.3软件过程第1章软件工程概论1.软件与软件的组成软件的组成:包括程序、数据及其相关的文档的完整集合。软件程序数据文档1.1.1软件1.1软件与软件工程程序是按事先设计的功能和性能要求执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序开发,维护和使用有关的图文材料。2.软件的特点软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性,软件是一种无形(看不见,摸不着)的逻辑实体,需要安装在计算机中才能运行。

软件的生产与硬件不同,软件的生产方式是开发,是人的智力劳动的成果,是知识与技术转化而成的一种信息产品。在软件的运行和使用期间,没有硬件那样的机械磨损、锈蚀等问题,但需要维护。软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。开发工作的劳动强度决定了软件开发需要有效的软件开发工具或软件开发环境。软件的开发至今尚未完全摆脱手工操作的开发方式。软件本身是复杂的,因为实际问题的复杂性;程序逻辑结构的复杂性。软件的特点之二软件成本相当昂贵,软件的开销大大超过硬件的开销。相当多的软件开发、运行、管理工作涉及到社会因素。软件的特点之三3.软件的分类按软件的功能分类:系统软件,如OS、DBMS等;支撑软件,如Office、VB、Delphi等;应用软件,MIS、CAD、CAE等。其它分类工作方式分类:批处理、交互式;规模分类:大、中、小;体系结构分类:C/S、B/S;

C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,一种新的软件系统构造技术。面向服务的体系结构(Service-OrientedArchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互4.软件发展阶段程序设计阶段—50至60年代程序系统阶段—60至70年代 软件工程阶段—70年代以后1.1.2软件工程(软件危机、软件工程)软件开发无计划性,不能正确地估计软件开发成本和进度,致使实际开发成本往往高出预算很多。软件需求不充分,软件产品不可靠,满足不了用户的需求,甚至无法使用。软件开发人员的合作障碍。软件的产权保护问题。交付使用的软件不易演化,以至于人们不得不重复开发类似的软件。软件生产率低下,缺乏有力的开发工具支持,远远满足不了社会发展的需求。1.软件危机2.解决软件危机的途径----软件工程技术措施(方法和工具)要有必要的组织管理措施软件工程的定义概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程化的方法来开发和维护软件,把经过时间考验而证明正确的工程管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。软件工程的其它定义软件工程有过许多的定义,如:Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料IEEE:软件工程是开发、运行、维护和修复软件的系统方法FritzBauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法软件工程三要素:方法、工具和过程方法是完成软件开发的各项任务的技术方法,为软件开发提供“如何做”的技术。工具是为运用方法而提供的自动的或半自动的软件工程的支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。1.建模模型是一个系统的抽象表示,它能够回答关于这个系统的问题。模型还是可视化的,能够让我们理解那些不存在或仅仅声称存在的系统,并且有利于交流。2.问题求解软件工程是问题求解活动。求解方法包括以下步骤:形式化问题,分析问题,寻找解决方案问题,确定合适的解决方案,详细说明解决方案。 1.1.3软件工程的活动3.知识获取知识获取是非线性的,对于软件开发过程的建模具有非常重要的意义。4.决策知识开发人员对系统所作的假设总是在变化,求解域的模型也总是在变化。软件工程的活动之二确认测试可行性研究、指定初步软件项目计划概要设计需求分析、制定需求规格说明详细设计组装测试实现使用退役维护1.2

软件的生存周期软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期包括软件定义、软件开发、软件使用维护退役。软件生存期的定义可行性研究的任务是了解用户的要求及现实环境,从技术、经济和社会等几个方面研究并论证软件系统的可行性。软件需求规格说明软件定义{软件系统的可行性研究需求分析{

任务重要性与困难需求分析过程1.软件定义需求分析问题定义和可行性研究的主要任务都是概括地了解用户的需求,为了简洁地描述软件过程,把它们都归并到需求分析中。在软件生存周期模型中,软件开发由需求分析、概要设计、详细设计、实现、组装测试和确认测试等主要阶段组成。(1)需求分析(2)概要设计(3)详细设计(4)实现(5)组装测试(6)确认测试2.软件开发软件设计概要设计—把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应。详细设计—对每个模块要完成的工作进行具体的描述,为源程序编写打下基础。编写设计说明书,提交评审。为简洁起见,把总体设计和详细设计合并在一起称为“软件设计”。程序编写程序员根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言,把详细设计的结果翻译成用选定的语言书写的程序,即“源程序清单”。写出的程序应当是结构良好、清晰易读的,且与设计相一致。软件测试通过各种类型的测试(或调试)使软件达到预定的要求。单元测试,查找各模块在功能和结构上存在的问题并加以纠正。集成测试,将已测试过的模块按某种选定的策略组装起来。验收测试,按照规格说明书的规定,由用户对目标系统进行验收。即根据各项需求,逐项进行有效性测试,确定已开发的软件是否合格,能否使用。可行性研究需求分析详细设计编码与调试概要设计单元测试组装测试确认测试运行3.软件使用、维护和退役运行维护通过各种必要的维护活动使软件系统持久地满足用户的需要,通常有4类:改正性维护:运行中发现了软件中的错误需要修正。适应性维护:为了适应变化了的软件工作环境,需做适当变更。完善性维护:为了增强软件的功能需做变更。预防性维护,即修改软件为将来的维护活动预先做准备。软件开发模型给出了软件开发活动各阶段之间的关系。1.瀑布模型2.快速模型3.增量模型 4.螺旋模型5.基于构件的开发模型6.极限编程1.3软件过程组装测试可行性研究需求分析概要设计详细设计编码与调试单元测试确认测试运行与维护退役1.瀑布模型瀑布模型的特点阶段间具有顺序性和依赖性:

1.完成前一阶段开始后一阶段

2.前一阶段的输出文档是后一阶段的输入文档质量保证的观点

1.每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。

2.每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。需求的采集和细化生产样品对原型加工客户评价原型建造原型快速设计开始停止2.快速原型模型原型模型由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。第一步只是试验开发,其目标只是在于探索可行性,弄清软件需求。第二步则在此基础上获得较为满意的软件产品。螺旋模型螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件。风险分析──分析所选方案,考虑如何识别和消除风险。实施工程──实施软件开发。客户评估──评价开发工作,提出修改建议。

极限编程(

温馨提示

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

评论

0/150

提交评论