高级软件工程(1).pptx
《高级软件工程(1).pptx》由会员分享,可在线阅读,更多相关《高级软件工程(1).pptx(61页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、n 一个应用系统进入工程化开发之前,要搞清楚计算机系统的整体目标,标识出这一系统中涉及的硬件、软件、人员、数据库、网络、规程和其它系统元素。计算机系统硬件与硬件工程 n 基于计算机的应用系统离不开计算机硬件的支撑。计算机系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。硬件工程师根据硬件需求设计、制造或选择硬部件或设备。n 硬件工程过程分为三个阶段,即计划和定义阶段;设计和样机实现阶段;生产、销售和售后服务阶段,具体如图1.2的(a)、(b)和(c)所示。软件与软件工程 n 计算机软件是软件工程师设计和建造的产品,包括:一个在任意规模和体系结构的计算机中执行的程序,以及软件开发过程中涉及
2、的各种文档和各种形式的数据。n 软件工程是研究软件生产和软件管理的工程科学,其内容包括市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护和版本升级等。n 软件工程师借助于软件工程的过程、方法和工具开发基于计算机的软件系统。软件工程模型虽然种类很多,但它们都有一个共同的特点,即都包括软件项目的定义阶段、软件开发阶段、软件的检验、交付与维护阶段,如图1.3的(a)、(b)和(c)所示。软件定义阶段n 软件定义阶段的任务是,确定软件开发必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能
3、;估计完成该项工程需要的资源和成本,并且制定工程进度表。n 这个时期的工作通常又称为系统分析,由系统分析员负责完成。软件定义阶段通常进一步划分成三个子阶段,即问题定义阶段、可行性研究阶段和需求分析阶段。n 需求分析阶段的一项重要任务是用正式文档准确地记录对目标系统的需求,这份文档通常称为需求规格说明。软件开发阶段 n 这个阶段的基本任务是回答“怎样实现目标系统?”这个问题。n 软件开发阶段具体设计和实现在前一个时期定义的软件,它通常由下述四个子阶段组成:概要设计、详细设计、编码和单元测试、综合测试。其中前两个阶段又称为系统设计阶段,后两个阶段又称为系统实现阶段 软件的检验、交付与维护阶段 n
4、这一阶段的主要任务是使软件持久地满足用户的需要。n 当软件在使用过程中发现错误时,应该加以改正;当环境改变时,应该修改软件以适应新的环境;当用户有新要求时,应该及时改进软件以满足用户的新需要。人机工程 n 人与计算机硬件和软件的直接交互可以启动并控制系统运行,在系统开发与维护活动中,人的因素起着十分关键的作用。数据库工程 n 数据库系统是基于计算机系统的重要组成部分,它将有关的硬件、软件、数据和数据库管理人员结合起来,为用户提供信息服务。开发一个数据库系统是一项复杂的工程项目,人们也常称之为数据库工程。n 数据库工程应完成下列任务,1)确定系统的各项指标并进行评估和计划制定;2)论证、选择和配
5、置数据库系统;3)数据库设计与实现;4)数据库的管理与维护。网络工程 n 随着网络技术的发展,很多基于计算机的系统使用网络进行通信,网络工程也成为了基于计算机系统的重要组成部分。网络工程是研究网络系统的规划、设计与管理的工程科学,要求工程技术人员根据既定的目标,严格依照行业规范,制定网络建设的方案,协助工程招投标、设计、实施、管理与维护等活动。n 网络工程的实施需要经过如下几个阶段:1)需求分析;2)总体设计分析;3)实施;4)验收与维护。n n 软件发展阶段n n 程序设计阶段 50至60年代n n 程序系统阶段 60至70年代 n n 软件工程阶段 70年代以后n n 软件是计算机系统中与
6、硬件相互依存的另一部分,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。它是包括程序,数据及其相关文档的完整集合。n n 程序是按事先设计的功能和性能要求执行的指令序 程序是按事先设计的功能和性能要求执行的指令序列 列n n 数据是使程序能正常操纵信息的数据结构 数据是使程序能正常操纵信息的数据结构n n 文档是与程序开发,维护和使用有关的图文材料 文档是与程序开发,维护和使用有关的图文材料什么是软件?软件的特点n n 软件是一种逻辑实体,而不是具体的物理实体。因而 软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性 它具有抽象性n n 软件的生产
7、与硬件不同,在它的开发过程中没有明显 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程 的制造过程n n 在软件的运行和使用期间,没有硬件那样的机械磨损,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题 老化问题n n 软件的开发和运行常受到计算机系统的限制,对计算 软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性 机系统有着不同程度的依赖性n n 软件的开发至今尚未完全摆脱手工艺的开发方式 软件的开发至今尚未完全摆脱手工艺的开发方式n n 软件本身是复杂的 软件本身是复杂的n n 实际问题的复杂性 实际问题的复杂性n n 程序逻辑结构的复杂性 程序逻辑
8、结构的复杂性 n n 软件成本相当昂贵 软件成本相当昂贵n n 相当多的软件工作涉及到社会因素 相当多的软件工作涉及到社会因素软件发展过程中存在的问题 软件开发能力不能满足人们的需要;社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性;若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护;由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦界面的方法。软件危机n 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。n 典型表现:n 开发成本和进度的估计常常很不准确;n 用户对“已完成的”软件系统不满意;“闭门造车”;n 软
9、件质量不可靠;n 软件常常是不可维护的;n 软件成本的比例逐年上升;n 软件产品“供不应求”;软件危机产生的原因n 客观原因:软件的特点n 主观原因:软件开发和维护过程中使用不正确的方法。消除软件危机的途径n 消除“软件就是程序”的错误观念。n 一个软件必须由一个完整的配置组成,事实上,软件是程序、数据及相关文档的完整集合。n 软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。n 成功的软件开发技术和方法。n 软件工具和软件工程支撑环境。软件工程的定义n 1968年 NATO 计算机科学会议n 软件危机根源解决途径软件工程n“概括地说,软
10、件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。”软件工程的目标n 软件工程的目标是明确的,就是研制、开发与生产出具有良好软件质量和费用合算的产品。1)采用工程化方法和途径来开发与维护软件。2)应该开发和使用更好的软件工具。3)采取必要的管理措施。软件工程的基本原理(B.W.Boehm)n 用分阶段的生命周期计划严格管理n 坚持进行阶段评审n 错误出现的时间:在编代码之前(63%:37%)n 改正错误的代价:发现得月晚,开发代价越
11、高n 实行严格的产品控制n 基线配置、变动控制n 采用现代程序设计技术n 结果应能清楚地审查n 开发小组的人员应该少而精n 承认不断改进软件工程实践的必要性软件工程研究的基本内容n 软件工程学分为:理论与结构、方法、工具与环境、管理和规范等。n 理论与结构包括:程序正确性证明理论、软件可靠性理论、软件成本估算模型、软件开发模型、模块划分原理等。n 软件开发技术包括:软件开发方法学、软件工具和软件开发环境。n 软件工程管理包括:软件开发管理和软件经济管理。软件生存期 life cyclen n 软件有一个孕育、诞生、成长、成熟、衰亡的生存过 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个
12、过程即为计算机软件的生存期 程。这个过程即为计算机软件的生存期n n 软件生存期的六个步骤,即制定计划、需求分析、设 软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护 计、程序编码、测试及运行维护瀑布模型 制定计划n n 确定要开发软件系统的总目标 确定要开发软件系统的总目标n n 给出功能、性能、可靠性以及接口等方面的要求 给出功能、性能、可靠性以及接口等方面的要求n n 完成该软件任务的可行性研究 完成该软件任务的可行性研究n n 估计可利用的资源 估计可利用的资源(硬件,软件,人力等 硬件,软件,人力等)、成本、效、成本、效益、益、开发进度 开发进度n n 制定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 软件工程
限制150内