版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程概述第1章概述工程-将理论和所学的知识应用于实践的科学。软件工程-应用计算机科学、数学及管理科学等原理,开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门交叉性学科。软件工程的主要内容软件工程的基本概念软件开发模型软件开发各阶段的任务、技术、方法软件过程软件工具软件工程管理软件质量保证软件工程环境软件经济学软件的概念程序、软件与软件产品独唱-->小合唱-->合唱-->万人大合唱 |||简单程序较复杂程序软件软件定义:软件=程序+数据+文档程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料
软件的特点软件是逻辑实体。具有抽象性。软件的形态不可见,必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。
软件是人脑思维的产物,其生产过程与硬件不同--开发过程的质量控制及软件产品保护问题。
软件的开发和运行受计算机系统限制--软件移植问题。
软件的开发技术落后,手工开发方式仍占统治地位,开发效率低。
软件的特点软件的失效率与硬件不同。失效率时间硬件失效率曲线失效率时间软件失效率曲线
软件的特点软件的复杂性越来越高,对软件人员的要求越来越高,出现了软件复杂性与软件技术发展的不适应现象。软件复杂性差距软件需求与软件技术发展现状软件需求时间软件技术软件技术进步落后于需求增长
软件的特点
软件的特点软件的开发研制成本高,自80年代以来,已大大超过硬件成本。计算机系统软、硬件成本比例的变化情况硬件年份软件50年70年85年20608010040成本
软件的特点相当多的软件工作涉及社会因素,如机构、体制、管理方式等,包括人的观念及心理,都直接影响软件工作的成败。
软件的分类按功能按规模按工作方式按使用频度按失效影响系统软件支撑软件应用软件按服务对象
软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象微型软件小型软件大型软件甚大型软件极大型软件
软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象实时处理软件分时软件交互式软件批处理软件
软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象产品软件项目软件
软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象使用频度低使用频度高
软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象不良影响严重影响软件开发的发展过程程序设计阶段—50至60年代程序系统阶段—60至70年代 软件工程阶段—70年代以后计算机应用发展软件数量多规模大软件成本高质量低个体化软件开发方法软件维护困难软件危机软件工程软件危机定义计算机软件的开发和维护过程所遇到的一系列严重问题。表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势软件危机原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护软件危机解决途径组织管理工程项目管理方法技术措施软件开发技术与方法软件工具
软件工程
为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术方面研究如何更好地开发和维护计算机软件的学科。定义:软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来——即软件工程。
软件工程软件工程的基本原理(自“软件工程”提出后,专家和学者们陆续提出了100多条关于软件工程的准则或“信条”,有专家归纳出了确保开发质量和效率的原理的最小集合——7条基本原理):1)用分阶段的生命周期严格管理;2)坚持进行阶段评审;3)实行严格的产品控制;4)采用现代程序设计技术;5)结果应能清楚地审查;6)开发小组人员应少而精;7)承认不断改进软件工程实践的必要性。
软件工程三要素软件工程三个要素方法工具过程提供一系列软件开发技术。包括完成开发过程中各方面任务的方法并用某种特殊的语言或图形来描述。
软件工程三要素软件工程三个要素方法工具过程软件工具为软件方法提供了自动的或半自动的支撑环境。将多种工具集成在一起可构成计算机辅助软件工程(CASE)的软件开发支撑系统。
软件工程三要素软件工程三个要素方法工具过程软件过程是将软件工程的方法和工具综合起来,进行软件开发。
方法、工具和过程:软件工程方法为软件开发提供了“如何做”的技术.软件工具为软件工程方法提供了自动的或半自动的软件支撑环境.软件工程过程定义了:方法使用的顺序要求交付的文档资料为保证质量和适应变化所需要的管理软件开发各个阶段完成的里程碑软件工程的三要素软件工程项目的基本目标付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作,及时交付使用软件工程基本原则抽象
采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复杂性。信息隐蔽
将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。模块化
如C语言程序中的函数过程,C++语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。局部化
要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于控制解的复杂性。确定性
软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。一致性整个软件系统的各个模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致。软件工程基本原则完备性
软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。可验证性
开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。软件工程基本原则
软件工程过程和软件生命期软件工程过程:软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。软件工程过程内容软件工程过程特性1)软件规格说明:规定软件的功能及运行限制2)软件开发:产生满足规格说明的软件3)软件确认:对软件能否满足用户要求进行确认4)软件演进:为满足用户的变更要求的演进
软件工程过程和软件生命期软件工程过程:软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。软件工程过程内容软件工程过程特性1)可理解性;2)可见性;3)可支持性;4)可接受性;5)可靠性;6)健壮性;7)可维护性;8)速度。
软件工程过程和软件生命期软件生命期(Lifecycle):
一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。生命期的划分:制定计划需求分析和定义软件设计程序编写软件测试运行/维护定义阶段开发阶段维护阶段
软件生存期模型瀑布模型原型模型螺旋模型喷泉模型构件组装模型统一过程模型第四代技术
瀑布模型计划需求分析设计编码测试运行、维护定义阶段开发阶段维护阶段原型模型原型模型也称快速原型模型.原型模型的基本思想是:软件开发人员在与用户进行需求分析时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统,让用户在计算机上进行操作,在实践过程中提出改进意见,开发人员根据用户的意见,对原型进行补充和完善,然后再由用户试用、评价、提出建议,重复这一过程,直到用户对开发的原型系统满意为止。
原型模型原型开发原型评价最终系统设计用户反馈
原型模型螺旋模型螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制风险分析──分析所选方案,考虑如何识别和消除风险实施工程──实施软件开发客户评估──评价开发工作,提出修正建议螺旋模型螺旋模型特点瀑布模型+快速原型+风险分析迭代过程一个螺旋式周期
确定目标,选择方案,选定完成目标的策略
风险角度分析该策略
启动一个开发阶段
评价前一步的结果,计划下一轮的工作
喷泉模型迭代重复演进无间隙各阶段间无明显界限喷泉模型构件组装模型构件组装模型特点:面向对象基于构件库融合螺旋模型特征支持软件开发的迭代方法
软件重用统一过程模型Rational统一过程(RationalUnifiedProcess,RUP)是由Rational公司开发的一种软件过程,它的开发过程有如下3个主要特点:⑴是一种用例(Use-case)驱动的软件开发过程⑵是以体系结构(Architecture)为中心的过程⑶迭代(Iterative)开发与增量(Incremental)开发相结合的过程第四代技术“第四代技术”(4GT)包含了一系列的软件工具,其特点是:能使软件工程师在较高级别上说明软件的某些特征,然后利用工具将开发者的说明自动生成源代码,并且软件被说明级别越高,其建造程序的速度就越快。基于4GT的开发过程如下:⑴像其他范型一样,4GT也是从需求收集这一步开始。
⑵制订一个系统的设计策略。
⑶应用4GL的生成功能,自动生成所期望的代码。
⑷进行测试,完成相关文档,并完成其他软件工程范型中同样要求的所有集成活动,得到最终产品。
软件开发方法简述
软件开发方法是指软件开发过程中所应遵循的方法和步骤。局部软件开发方法:针对某些活动的开发方法全局软件开发方法:覆盖开发全过程的方法考虑如下的几个因素:(1)对该软件开发方法是否已具有经验,或有已受过训练的人员;(2)为软件开发提供的软件硬件资源及可使用的工具的情况;(3)该开发方法在计划、组织和管理方面的可行性;(4)对开发项目所涉及领域的知识的掌握情况。软件开发方法简述1、结构化方法结构化方法也称为面向功能的软件开发方法或Yourdon方法,是由E.Yourdon和L.Constantine提出的.
结构化分析方法SA:对软件进行需求分析结构化设计方法SD:进行总体设计和详细设计结构化编程SP特点:按照功能分解的原则,自顶向下、逐步求精,直到实现软件功能为止。该方法简单、实用。软件开发方法简述1、结构化方法主要问题:(1)它以功能分解为基础,而用户的功能是经常改变的,必然导致系统的框架结构不稳定。
(2)从数据流程图到软件结构图之间的过渡有明显的断层,导致设计回溯到需求有困难。
软件开发方法简述2、面向数据结构的开发方法面向数据结构的软件开发方法有两种:Warnier方法:由J.D.Warnier提出的结构化数据系统开发方法(DSSD);Jackson方法:由M.A.Jackson提出的Jackson系统开发方法(JSD)。面向数据结构的软件开发方法基本思想是:从目标系统的输入/输出数据结构入手,导出程序的基本框架结构,在此基础上,对细节进行设计,得到完整的程序结构图。软件开发方法简述3、面向对象的方法面向对象方法的优
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人防材料选用标准
- 混凝土施工风险评估方案
- 燃气管道交接验收流程
- 大学智能排课系统设计
- 旧城改造施工技术方案
- 城区老旧供水管网更新改造项目环境影响报告书
- 未来五年食品饮料及烟酒市场管理服务企业数字化转型与智慧升级战略分析研究报告
- 未来五年蒲草企业县域市场拓展与下沉战略分析研究报告
- 未来五年新形势下全自动涂片机行业顺势崛起战略制定与实施分析研究报告
- 绿色混凝土配合比设计方案
- LYT 2085-2013 森林火灾损失评估技术规范
- 材料样品确认单
- 彝族文化和幼儿园课程结合的研究获奖科研报告
- 空调安装免责协议
- 《传感器与检测技术》试题及答案
- 湖北省襄樊市樊城区2023-2024学年数学四年级第一学期期末质量检测试题含答案
- 初中班会主题课件科学的复习事半功倍(共23张PPT)
- PCB封装设计规范
- GB/T 9349-2002聚氯乙烯、相关含氯均聚物和共聚物及其共混物热稳定性的测定变色法
- GB/T 32473-2016凝结水精处理用离子交换树脂
- 《水利水电工程等级划分及洪水标准》 SL252-2000
评论
0/150
提交评论