- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 软件工程 一、软件工程概述 二、软件需求分析 三、软件设计 四、编程语言的选择和编码 五、软件测试与维护 六、面向对象的软件工程 七、传统设计方法和面向对象设计方法 重点内容 软件的概念、软件工程的概念、软件生存周期、几种软件开发模型的思想及其优缺点、面向对象程序设计的思想、面向对象的软件工程和传统软件工程的区别 软件的概念 为了弄清软件的概念,首先要知道什么是程序。 一般认为,程序是计算机为完成特定的任务而执行的指令的有序集合。更通俗的讲, 面向过程的程序=算法+数据结构 面向对象的程序=对象+消息 面向构件的程序=构件+构架 通常,软件可定义为: 软件=程序+数据+文档 一、软件工程概述 1.1 软件的发展阶段 程序设计阶段 特点:小型源程序、结构简单、功能单一、可靠性差且由设计者自行维护 软件系统阶段 特点:规模大、结构复杂、软件可靠性随着规模的增大而下降 软件工程阶段 特点:规模越来越大、结构越来越复杂、 大型的程序设计已变成了工程项目 1.2 软件危机 从软件发展的第二个阶段开始,就出现了软件危机。软件的生产不能满足日益增长的软件需求,更严重的是,软件的生产率随着软件规模的扩大以及复杂程度的提高而下降,导致了软件成本在计算机系统构成中所占比例进一步加大。 系统实际功能与用户实际需求不符 由于软件开发人员缺乏对用户需求的深入了解,具体的实现的功能和用户相差太远;开发人员和用户未能及时交换意见,使得一些问题不能及时解决而隐蔽下来,造成开发后期矛盾的集中暴露,给将来的调试和维护工作带来了更大的困难。 软件的维护费用急剧上升 软件的费用不仅花费在开发上,尤其要花费 在维护上,由于开发阶段有一定的隐患,维护最重要的事就是纠正软件中遗留的错误,软件的规模越大,维护的成本也越高。 对软件文档配置没有足够的重视 软件文档主要是开发过程中的说明书、数据字典、程序清单、软件使用与维护手册、软件测试报告及测试用例。由于开发过程没有统一的、公认的方法论和规范作指导,软件文档不规范、不健全,参加人员各行其是,忽略人与人的接口部分,发现 问题后修修补补,这样的软件很难维护,提交给用户的软件质量较差。文档的不完整是造成软件开发进程、成本不可控、软件维护与管理困难的主要因素。 基于以上因素,需要一套完整的理论来指导软件的开发和维护整个过程。 型软件开发所必须采用的一种重要手段。 1993年,权威杂志IEEE对软件工程的定义:软件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护中去。 2001年,软件工程大师 Roger S.Pressman对软件工程的定义 :软件工程是一个过程、一组方法和一系列工具。 软件工程是研究软件开发与软件管理的一门工程科学。 软件工程定义的内涵:是指导计算机软件开发与维护的工程学科,可用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明是正确的管理技术和当前能够得到的最好技术方法结合起来。 软件工程的目的:追求软件产品的正确性、可用性及软件生产的效率。 1.4 软件开发模型 1.4.1 软件的生命周期 软件生命周期是一个软件系统从目标提出、定义、开发、使用和维护,直到最后丢弃的整个过程。把整个生存期划分成较小的阶段,是实现软件工程化的重要步骤。阶段的划分使得人员分工职责清楚,项目进度控制和软件质量得到确认。原则上,前一阶段任务的完成是后一阶段工作的前提和基础;而后一阶段的任务是对于前一问题求解方法的具体化。 一般说来,软件生命周期包括计划、开发和运行三个阶段。三阶段划分如下图: 计划时期 计划时期的主要任务是分析用户的需求,确定软件开发的总目标,给出系统功能、性能结构、可靠性以及接口等方面的要求。由分析员和用户合作,研究完成该项软件任务的可行性,制定出软件开发的计划,并对可利用的资源、成本、可取的效益、开发的进度作出估计,制定出完成任务的计划,连同可行性报告,提交管理部门审查,为软件设计提供依据。因此,软件定义可分为问题定义和可行性研究。 (1)问题定义 这是计划时期的第一步,根据用户或市场需求,提出软件项目目标和规模,即确定用户需要解决什么问题。由系统分析员根据对问题的理解,提交关于系统目标和范围说明书。 (2)可行性研究 问题求解目标一经提出,分析员必须对它进行可性研究,目的是为前一步提出的问题寻求在技术上的可行性,且经济有效的解决办法。为此,系统分析员应在高层次上简化需求分析和概要分析,并写出可行性报告。 开发时期 开发
文档评论(0)