软件工程世界城_第1页
软件工程世界城_第2页
软件工程世界城_第3页
软件工程世界城_第4页
软件工程世界城_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

软件工程世界城第1页,课件共43页,创作于2023年2月软件工程=编程?软件工程是一门学科,一种科学理论来指导软件系统开发,标准化、自动化的过程考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的规格要求;怎样才能易于维护编程单纯的代码编写是软件工程发展的前身是软件工程中占据很少时间和空间的一部分第2页,课件共43页,创作于2023年2月学习目标课程性质课程目标考核方式几点建议第3页,课件共43页,创作于2023年2月1课程性质“软件工程”是高职高专院校计算机应用与软件技术专业教学计划中一门专业核心课程,它是研究软件开发和软件管理的一门工程科学。它的主要任务是掌握支持软件开发和管理的理论、方法、技术、标准以及计算机辅助软件工程的工具(Visio或Rose)环境等知识;使学生具有软件开发能力(包括熟练进行程序设计语言的结构化编码与可视化设计能力;UML的阅读和建模能力;培养用软件工程化及项目化的思想处理解决问题的能力等)。第4页,课件共43页,创作于2023年2月概括说:软件开发能力最关键的步骤有三步:第5页,课件共43页,创作于2023年2月2课程目标1.学会接受一种软件工程思想。掌握软件工程的基本原理、概念与方法----主要包括软件系统的可行性研究、需求分析、概要设计、详细设计、编码、测试、维护、面向对象、项目管理等方面的基本知识与方法。2.掌握软件工程中的一些基本技术方法,如数据流图、数据字典、结构分析方法(如Jackson方法等),面向对象分析方法、集成测试方法、项目管理的基本方法等。3.结合模拟案例,学会从实际中掌握从面向过程到面向对象思想理论的基本方法和技巧。掌握软件开发文档的组织编写等。4.掌握一种工具。学期末能用Visio或Rose软件完成大作业的设计(画各种软件工程图)(指定或自找题目)5.把目前或以后要学的程序设计知识(C、Java、C#、VC++、等)提高到一定理论高度认识:编程能否用?学会思想比掌握一种工具更为重要。

温馨提示:第6页,课件共43页,创作于2023年2月3考核方式平时成绩(30%)到课情况上机作业答辩情况实验报告项目成绩项目文档项目答辩(期中期末各一次)第7页,课件共43页,创作于2023年2月4学习资料教材软件工程技术与实用开发工具第8页,课件共43页,创作于2023年2月4学习资料推荐教材张海藩:软件工程导论(第5版)林锐:软件工程思想人月神话第9页,课件共43页,创作于2023年2月1-5一点建议利用互联网获取信息使用信息搜索引擎学术资料博客论坛第10页,课件共43页,创作于2023年2月1-5一点建议参加国家软件考试第11页,课件共43页,创作于2023年2月1-5一点建议认真;开放性大学之道,在明明德,在亲民,在止于至善。知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。物有本末,事有始终。知所先后,则近道矣。 ——大学玉不琢,不成器。人不学,不知道。 ——礼记·学记第12页,课件共43页,创作于2023年2月第一章软件工程概述

现代软件工程入门第13页,课件共43页,创作于2023年2月目标了解软件工程的起因

掌握软件开发模型了解面向对象软件编程第14页,课件共43页,创作于2023年2月计算机软件软件-计算机系统中程序、数据及其相关文档的完整集合运行时,能够提供所要求功能和性能的指令或计算机程序集合。程序能够满意地处理信息的数据结构。描述程序功能需求以及程序如何操作和使用所要求的文档。第15页,课件共43页,创作于2023年2月软件产品的特性逻辑产品。不会用坏,不存在磨损、消耗问题。软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且必须是"定做"的。软件费用不断增加,成本相当昂贵。第16页,课件共43页,创作于2023年2月计算机软件分类按功能分系统软件:能够控制计算机系统各部件(软硬件)的协调、高效地工作和进程处理、资源共享管理等应用软件:应用软件是为特定的应用目的而开发的服务性软件,它的服务领域涉及广泛,例如企业信息系统,计算机辅助设计与制造(CAD,CAM)系统等

支撑软件:是工具软件,它帮助软件开发人员开发自己的软件产品,例如各种软件开发工具,软件测试工具第17页,课件共43页,创作于2023年2月计算机软件分类按工作方式分实时处理软件:实时系统与其他普通的系统之间的最大的不同之处就是要满足处理与时间的关系

分时软件:计算机把它的运行时间分为多个时间段,并且将这些时间段平均分配给用户们指定的任务。轮流地为每一个任务运行一定的时间,直至完成所有任务

交互式软件:可通过各种界面实现人机通信,使人们可以介入到程序内部,这种方式为用户带来很大方便批处理软件:能将一批数据按要求的顺序逐个处理,直至全部作业处理完毕第18页,课件共43页,创作于2023年2月计算机软件发展第一代(20世纪60年代中期以前):程序设计阶段

第二代(60年代中期到70年代中期):程序系统阶段第三代(70年代中期到80年代中期):软件工程阶段第四代(80年代中期至今):软件产业在世界经济中已经占有举足轻重的地位第19页,课件共43页,创作于2023年2月计算机软件发展阶段A.程序设计时代(1946-1956)B.程序系统时代(1956-1968)C.软件工程时代(1968-今)生产方式个体手工劳动小集团合作生产工程化的生产工具机器语言、汇编高级语言数据库、开发工具、开发环境、网络、

分布式、面向对象技术开发方法追求编和技巧,追求程序运行效率个人技巧,开始提出结构化方法硬件特征价格贵、存储容量小、运行可靠性差速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长向超高速、大容量、微型化以及网络化方软件特征只有程序、程序设计概念,不重视程序设计方法程序员数量猛增,已意识到软件开发的重要性,开发技术没有新的突破,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技术不适应规模大、结构复杂的软件开发,产生了尖锐矛盾,导致软件危机的产生开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机第20页,课件共43页,创作于2023年2月软件危机美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。......据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。......第21页,课件共43页,创作于2023年2月软件危机

这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。......程序设计工作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣扎,......谁也没有料到问题竟会陷入这样的困境......”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。SoftwareCrisis!第22页,课件共43页,创作于2023年2月软件危机经费预算经常突破,完成时间一再拖延。开发的软件不能满足用户要求。开发的软件可维护性差。开发的软件可靠性差。第23页,课件共43页,创作于2023年2月软件危机产生原因软件的规模越来越大,结构越来越复杂。软件开发管理困难而复杂。软件开发费用不断增加。软件开发技术落后。生产方式落后。开发工具落后,生产率提高缓慢。概括起来两个问题:如何开发软件维护已有软件第24页,课件共43页,创作于2023年2月解决软件危机的办法

BettermanagementDifferentteamorganizationsBetterlanguages&toolsUniformcodingconventions

必须意识到:“软件”编程,它有自己的生命周期

(lifecycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。第25页,课件共43页,创作于2023年2月软件工程定义研究软件生产的一门学科,用科学知识和技术原理来定义、开发、维护软件的一门学科。软件工程三要素方法-完成软件开发的各项任务的技术方法工具-为方法提供了自动或半自动的软件支撑环境过程-将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的第26页,课件共43页,创作于2023年2月软件工程的本质关注大型程序的构造中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐的合作是开发软件的关键软件必须有效的支持它的用户具有一种文化背景的人替具有另一种文化背景的人创造产品第27页,课件共43页,创作于2023年2月软件工程目标(成功的建造一个大型软件系统)a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;第28页,课件共43页,创作于2023年2月软件工程的基本原理(Principles)用分阶段的生命周期计划严格管理项目概要计划里程碑计划项目控制计划产品控制计划验证计划运行维护计划坚持进行阶段评审实行严格的产品控制——基准配置管理(Baselineconfigurationmanagement)采用现代程序设计技术结果应能清楚地审查—setstandards开发小组的成员应该少而精1+1<2承认不断改进软件工程实践的必要性第29页,课件共43页,创作于2023年2月软件工程方法学传统方法学面向数据或者行为采用结构化技术开发划分为若干阶段,开发强调自顶向下的顺序面向对象方法学模拟人类习惯的思维方式,接近人类认识世界解决问题的方法和过程以数据为主线,数据和对数据的操作紧密结合开发是一个反复迭代的演化过程4个要点:对象融合数据和操作的软件构件类一组具有相同数据和操作的相似对象继承子类拥有基类的数据和操作消息通信对象间的联系方式第30页,课件共43页,创作于2023年2月软件定义时期:问题定义回答“要解决的问题是什么”可行性研究回答“有可行的解决办法吗?”需求分析确定“系统必须做什么?”软件开发时期:总体设计概括回答“应该怎样实现系统”详细设计详细回答“应该怎样实现系统”编码和单元测试综合测试运行维护时期:软件维护软件生命周期第31页,课件共43页,创作于2023年2月软件生周存期弄清楚用户要解决的问题是什么寻求解决问题的综合效益较高的解决方案v确定系统所具备用户所期望的功能设计软件功能模块,再单独实现各个部分功能,再做实际测试软件生存周期最后一个阶段,主要是做好维护工作,满足用户需求,延长软件使用寿命第32页,课件共43页,创作于2023年2月维护开发定义DefinitionFeasibilityStudyRequirementsAnalysisProgramDesignCoding&ModuleTestingIntegration&SystemTestingDelivery&MaintenanceSystemDesign瀑布模型(WaterfallModel)又可称为生命周期瀑布模型,是传统的软件开发模型按照传统的生命周期方法学开发软件,从问题定义开始逐一按生命周期各阶段顺序进行,直至得到用户确认第33页,课件共43页,创作于2023年2月瀑布模型特点阶段间的顺序和依赖性关系

阶段间的顺序是必须待前一阶段的工作完成之后,才能进行下一阶段的工作只要前一阶段正确的输出,后一阶段的工作才有可能获得正确的结果在于各阶段的工作可以独立进行,而且在不同的阶段实施不同的管理和技术若在某一阶段发现了问题,这可能需要追溯到之前的某个或某些阶段,万一问题发生在早期阶段,则需要付出昂贵的代价

第34页,课件共43页,创作于2023年2月瀑布模型特点推迟实现实践表明,编码开始得越早,完成开发工作所需要的时间反而越长瀑布模型是使物理实现推迟到软件开发的后期进行,这就大大降低了软件的风险尽可能推迟程序的物理实现是瀑布模型开发软件的一条重要的原则第35页,课件共43页,创作于2023年2月瀑布模型特点质量保证各阶段都必须完成规定的文档各阶段结束前都要对本阶段的工作和文档进行评审,以便及时发现问题,改正错误经验证明,越是早期的错误,暴露的时间就越晚,排除和改正错误所付出的代价也就越高第36页,课件共43页,创作于2023年2月软件开发模型-瀑布模型

温馨提示

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

评论

0/150

提交评论