版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程,班级:讲师:孔令东电子邮件:共享电子邮件:密码:123456电话学进度和重点介绍:教学计划/参考书目学习要求:分组,预习,课堂,复习(讨论)工作要求:工作模板,1,2020/7/2020一个组长,负责计划,监督和实施预习:只浏览核心内容,知道要学什么,在知识体系中寻找盲点和难点(标记)课堂:,复习(讨论):逐一攻克核心知识点!必须充分发挥队长的力量!作业:2020/7/23,关于作业的规范,题目编号:(页码)题目内容:(详细内容)所涉及的知识点:(题目内容中可能用到的知识点应进行总结,至少要写2分,最多要写5分,每个知识点不得超过5个单词)回答:每个作业要分
2、开!教材知识体系的框架,1。导言结构化软件工程。面向对象的软件工程。软件项目管理,主要参考书,本章的目标,了解软件工程的背景和原因,了解软件工程的基本原理、概念和方法,掌握软件生命周期模型,并为特定项目选择合适的模型。为什么要提出软件工程?软件工程如何帮助软件开发?主要内容:软件危机,软件工程,软件生命周期,软件过程,走,走,走,走,我。软件危机的内容线索,我。软件危机,软件开发过程,软件危机,性能,软件危机,引起软件危机的方法,消除软件危机,软件工程,软件生命周期,软件过程,软件开发过程,1950年代,1960年代:较小的程序,个性化的软件开发,只有程序列表1960年代在1970年:“软件研
3、讨会”,广泛使用的软件“软件危机”出现了。1968年,北大西洋公约组织计算机科学家在德意志联邦共和国召开了一次国际会议,讨论软件危机。在这次会议上,“软件工程”一词被正式提出并使用,一门新的工程学科诞生了。20世纪70、80年代:微处理器出现并广泛应用于分布式系统,嵌入式智能80年代:功能强大的桌面系统,面向对象技术,专家系统,人工智能,神经网络,并行计算,网格计算,虚拟组织,软件开发过程,软件开发过程中存在的问题,软件开发能力不能满足人们的需求,社会对软件的依赖性增加,人们普遍关注软件的安全性和可靠性。几年前开发的应用软件已经被修改了几十次,没有人知道它的内部结构。由于经济原因,嵌入式系统中
4、有许多奇怪的现象。企业不愿意投入资源进行复制,而是采用修补时尚界面的方法。问题的例子,美国IBM公司从1963年到1966年开发的IBM360操作系统。这个项目每年花费5000人的工作,最多1000人投入开发工作,编写了近100万行源程序。据统计,每次发布这个操作系统的新版本,都是从以前的版本中找出1000个程序错误并加以纠正的结果。这个项目的负责人布鲁克斯总结了他在组织和发展过程中的惨痛教训,他说.就像一只逃亡的野兽跌入泥潭并进行垂死挣扎一样,他挣扎得越多,陷得越深,最终他无法逃脱灭绝的灾难。编程就像这样一个泥潭,许多程序员被迫在泥潭中拼命挣扎,谁也没想到这个问题会陷入这样的困境”。IBM3
5、60操作系统的历史教训已经成为软件开发项目的典型例子。软件危机是指计算机软件在开发和维护过程中遇到的一系列严重问题。典型的性能:开发成本和进度的估计通常是不准确的。用户对“完整的”软件系统不满意。“软件质量不可靠。软件通常是不可维护的。软件产品缺乏适当的文档。”软件危机表明,软件成本的比重在逐年增加。造成软件危机的原因,软件是一个规模更大、复杂度更高、性能更强的逻辑产品,但其本质和特征并没有得到充分的理解。软件缺乏“可视性”。管理和控制软件开发过程是很困难的,而且不会“磨损”。错误可能是在开发期间引入的,软件维护通常意味着修改原始设计,这客观上使得软件维护变得困难,并导致软件危机。缺乏开发和维
6、护大型软件项目的有效和系统的技术手段和管理方法,用户和软件开发人员的错误理解和实践:忽视软件需求分析的重要性,认为软件开发就是编写程序并试图运行它们,忽视软件维护等。软件危机的原因及消除软件危机的方法,消除“软件是程序”的误解。软件必须由完整的配置组成。软件是程序、数据和相关文档的完整集合。文档是开发、使用和维护程序所需的图形材料。软件=程序数据文档,一种消除软件危机的方法。软件开发不是个人劳动的神秘技能。它应该是一个成功的软件开发技术和方法、软件工具和软件工程支持环境,由各类人员组织、管理、协调和完成。2.软件工程内容线索,软件危机2。软件工程软件工程定义了软件工程的本质特征,软件工程的基本
7、原理,软件工程方法论,软件生命周期软件过程,软件工程,1968年北约(NATO)会议,Garmisch Partenkirchen (Gamiz),计算机科学会议,解决软件危机根源的方法,软件工程的目的:解决“软件危机”,软件工程的定义,“简而言之,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间证明是正确的管理技术与目前最好的技术方法结合起来,经济地开发高质量的软件并有效地维护它。”软件工程定义,NATO:软件工程是建立和使用完美的工程原理,以便经济地获得能够在实际机器上有效运行的可靠软件。IEEE定义:软件工程是(1)将系统的、标准
8、化的和可测量的方法应用于软件开发、操作和维护,即把工程应用于软件;(2)研究(1)中提到的方法,软件工程的定义,博姆(Barry Bohm):在软件(包括程序和文档)的设计、实现、检查、操作和维护中使用的基于科学基础的实用方法。它借鉴了传统工程的原理和方法,旨在提高质量和降低成本。其中,计算机科学和数学用于构建模型和算法,工程科学用于制定规范、设计范例、降低成本和确定权衡,管理科学用于管理计划、资源、质量和成本。软件工程是一门交叉学科,这是软件工程的本质特征,侧重于大规模程序的构建,是软件工程的本质特征,软件工程的中心任务是控制复杂性,软件变化频繁,软件开发的效率非常重要。和谐合作是软件开发的
9、关键学科,也是成功完成软件开发项目的关键。软件必须有效地支持它的用户。在软件工程领域,具有一种文化背景的人为具有另一种文化背景的人创造产品。软件工程的基本原则,通过阶段生命周期计划(63% :37%)严格管理阶段评审中出现错误的时间,实施严格的产品控制基线配置和变更控制,采用现代编程技术,其结果应能清晰地评审开发团队的人员,并认识到持续改进软件工程实践的必要性。软件工程包括两个方面:技术和管理。它是一门由技术和管理紧密结合而成的工程学科。通常,在软件生命周期的整个过程中使用的一套技术方法称为方法论,也称为范式,软件工程三要素方法论,传统方法论,传统方法论也称为生命周期方法论或结构化范式。它采用
10、结构化技术(结构化分析、结构化设计和结构化实现)。结构化范例要么面向行为(即数据操作),要么面向数据。面向对象的方法论认为数据和行为同等重要。它是一种面向数据、面向对象的方法,将数据和对数据的操作紧密结合在一起,有以下四点:面向对象的方法=对象类继承的消息通信;与面向对象方法相比,信息隐藏包括责任驱动设计或契约设计,通过维护软件使软件开发变得容易。软件生命周期内容线索,软件危机软件工程3。软件生命周期软件过程软件产品或系统的一系列相关活动的整个生命周期,软件定义、软件开发、可行性分析、需求分析、总体设计、详细设计、编码、测试、软件发布、软件运行、软件维护、软件维护、问题定义、系统设计和系统实施
11、确定用户所需解决方案的性质、项目的目标和规模。2.可行性研究“对于前一阶段发现的问题,是否有可行的解决方案?”经济、技术、法律可行性,不同方案3。需求分析“目标系统必须做什么来解决这个问题?”确定系统必须具备的功能和性能,系统所需的操作环境,并预测系统开发的前景。规范,软件开发,4。总体设计(概要设计)“简而言之,目标系统应该如何实现?”设计了几种实现目标系统的可能方案。推荐一个最佳计划来确定程序由哪些模块组成以及模块之间的关系。5.详细设计(模块设计)“该系统应如何具体实施?”设计详细的程序规范,确定实现模块功能所需的算法和数据结构,软件开发,6。编写易于理解和维护的正确程序模块,并仔细测试
12、每个模块。综合测试、集成测试和验收测试、现场测试或并行操作、软件维护。软件维护使系统长期满足用户需求。维护工作分为以下四类:纠正性维护、适应性维护、完善性维护和预防性维护。4.软件过程内容线索,软件危机,软件工程软件生命周期4。软件过程,软件过程,软件过程是为了获得高质量的软件而要完成的一系列任务的框架。它规定了完成各种任务的工作步骤、应用方法、文件和管理措施的顺序。每个阶段的里程碑通常使用生命周期模型来简洁地描述软件过程生命周期模型,生命周期被划分为哪些阶段,每个阶段的执行顺序也称为过程模型。典型的过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型等。极限编程RUP (Ratio
13、nal Unified Process)建立了一个构建-修复模型、一个瀑布模型、一个理想的瀑布模型和一个实际的瀑布模型,它为生命周期的每个阶段指定了从上到下的固定顺序。瀑布模型的特点,阶段之间的顺序和依赖,延迟实现的观点清楚地区分了逻辑设计和物理设计,并尽可能地延迟程序的物理实现。质量保证的观点(文件驱动)要求的文件必须在每个阶段完成。必须在每个阶段结束前审查完成的文件。瀑布模型的优势迫使开发人员采用标准化的方法;每个阶段都必须提交相应的文件;每个阶段交付的产品必须由质量保证团队(SQA)进行验证。瀑布模型的缺点完全依赖于编写的规范,这可能导致最终开发的软件产品不能真正满足用户的需求。快速原型
14、模型,快速原型是一个可以快速建立并运行在计算机上的程序,其工作模型与产品子集相同。它能够完成的功能通常是最终产品能够完成的功能的子集。快速原型模型、用户测试和运行原型,构建/修改原型,并听取用户的意见。快速原型模型的特点,快速原型的本质是“快速”快速原型可以取代规范阶段,但它不是设计阶段。容易适应需求的变化,有利于发展与培训的同步。它开发成本低,开发周期短,易于维护,对用户友好。客户和开发人员很难以不同的方式理解原型。精确的原型设计不利于开发者的创新。快速原型模型的应用范围和不完整或不准确的用户需求。投标快速原型开发工具项目时,原型模型可以作为软件开发模型,产品可以移植或升级,也可以定制现有的
15、产品原型。相比之下,瀑布模型试图一次获得正确的产品,快速原型经常变化,然后丢弃增量模型,软件产品作为一系列增量组件进行设计、编码、集成和测试。这些代码块来自完成特定功能的多个交互模块、增量模型的特征、瀑布模型和快速原型模型的目标,以及向客户交付完整且可用的产品增量模型的优势。在每个阶段交付一个可用的产品,以减少全新产品对客户的心理影响。在没有大量资本支出的情况下分阶段交付产品,并且需求经常变化。增量模型的灵活性使其更加适用。增量模型的难点在于需要一个开放的结构,便于组件的添加。它要求新的集成组件不能破坏软件的原始体系结构。风险较大的增量模型、螺旋模型和螺旋模型将瀑布模型与快速原型模型相结合,强调被其他模型忽略的风险分析,简化螺旋模型,简化版本:瀑布模型在每个阶段之前进行风险分析,以确定目标、替代方法及其局限性。每一阶段后的风险分析评估下一阶段的计划,简化螺旋模型,完整螺旋模型,风险分析,规划,客户评估,项目实施,累计成本,阶段,螺旋模型的特点,螺旋模型的优势很容易确定,当产品在某一阶段得到充分测试。维护和开发之间没有本质区别。螺旋模型的缺点只适用于大规模的软件风险驱动,这既是优点也是缺点。喷泉模型和喷泉模型为软件复用和生命周期中多种开发活动的集成提供支持,主要支持面向对象的开发方法。“喷泉”这个词
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机网络基本概念及简答
- 我国物联网发展现状和存在问题
- 初中趣味数学2025年游戏化说课稿
- 第12章 人体的自我调节说课稿2025学年初中生物学北师大版七年级下册-北师大版
- 断桥门窗安装工程期限合同合同
- 2026年启蒙舞蹈教学大纲设计
- 初中生防艾知识普及主题班会说课稿
- 本册综合说课稿-2025-2026学年小学书法练习指导三年级下册北师大版
- Unit 1 Where's Kitty?说课稿2025年小学英语二年级下册牛津译林版
- 初中生2025年亲子互动说课稿
- TDT 1089-2023 征收农用地区片综合地价测算规程
- 完美着装智慧树知到期末考试答案章节答案2024年武汉纺织大学
- 旅游服务营销策略与创新
- 7、辽、西夏与北宋的并立
- 跨越档封网计算表
- 耕地占补平衡用户手册
- 《最重要的事 只有一件》读书笔记PPT模板思维导图下载
- 药品生产验证指南
- 2023年机械制造装备设计大作业
- GB/T 20303.1-2016起重机司机室和控制站第1部分:总则
- 市场营销学(MBA)课件
评论
0/150
提交评论