欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件工程实践者教材-概述.ppt

    • 资源ID:6063523       资源大小:2.01MB        全文页数:69页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程实践者教材-概述.ppt

    软件工程,吴洁明北方工业大学信息工程学院,软件工程教学安排,讲课学时:48课外实验:48讲课:30实践:10讨论:6考试:2成绩:期末考试90%,实验10%,教材和参考书,教材:软件工程基础实践教程 吴洁明 清华大学出版社 2007年主要参考书:Roger S Pressman 著。软件工程:实践者的研究方法。第6版。梅宏译。北京:机械工业出版社,2005郑人杰,殷人昆,陶永雷。实用软件工程。第2版。北京:清华大学出版社,1997卡耐基-梅隆大学软件工程研究所编著。能力成熟度模型(CMM):软件过程改进指南。刘孟仁等译。北京:电子工业出版社,2001Ivar Jacobson,Grady Booch,James Rumbaugh著。统一开发软件工程。周伯生,冯学民,樊东平译。北京:机械工业出版社,2002Scott W Ambler著。敏捷建模:极限编程和统一过程的有效实现。张嘉路等译。北京:机械工业出版社,2003IBM大学站点 微软MSDN,第1章 软件工程概述,2学时,引言,建一个茅草屋的过程建一个别墅的过程写一个hello world程序开发一个图书馆图书信息管理软件过程,简陋的小屋太简单!不要设计,新农村别墅造型图复杂!需要设计了,别墅的设计设计图纸、施工图纸,设计和施工说明,其他管理性文件,项目计划书施工质量计划书建设标准和规范施工手册,典型helloworld程序太简单!不要设计,#include int main()printf(“helloworld!”);/输出helloworld!return 0;,图书馆图书信息管理软件复杂!需要设计,图书馆信息管理系统-需求分析,图书馆信息管理系统-功能设计,图书馆信息管理系统-物理模型设计,图书馆信息管理系统部分逻辑模型设计,图书馆信息管理系统-数据设计,-过程设计,图书馆信息管理系统-界面设计,点评:,软件生产同其他行业,例如建筑行业一样需要工程化、规模化、自动化、标准化。软件生产过程中也有中间环节(设计物理模型、逻辑模型、界面、数据、过程等等),也可以随时进行质量检查。软件生产中也需要有高效的工具。软件生产人员也可以细分为:分析员、设计员、程序员、测试员、操作员、维护人员等等。软件生产低水平的手工作坊不能适应当今的大规模软件开发需求怎么办?软件工程化开发与维护!,主要内容,1)软件的特点2)软件危机的现象3)软件工程定义及其概念4)软件工程发展简史5)软件工程的7条基本原理6)主流的软件工程方法7)软件生命周期模型8)软件工程的相关标准和规范9)软件工程师职业道德规范,掌握理解掌握了解 理解理解理解了解了解,要求,1.1软件与软件危机,1.软件定义1983年,IEEE(国际电气与电子工程协会)为软件下的定义是:计算机程序、方法、规则和相关的文档资料以及在计算机上运行时所必需的数据。对软件比较公认的解释:软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档。记住 软件=程序+数据+文档 软件程序,1.1软件与软件危机,软件的特点:软件是一种逻辑实体,具有抽象性。人们可以把它记录在纸上、磁盘或光盘等介质上,但却无法看到软件本身的形态,必须通过观察、分析、思考和判断才能了解它的功能和性能。软件一旦研究开发成功,其生产过程就变成复制过程,不像其他工程产品那样有明显的生产制造过程。由于软件复制非常容易,因此出现了软件产品的版权保护问题和打击盗版的问题。软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。计算机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高许多。,软件的特点(续),软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用“量身订做”软件。其他工程领域有产品标准,所有生产厂家按照标准生产产品。例如,不管哪个厂家生产的灯泡,只要瓦数、电压、电流、接口几个指标符合要求,用户买来装上就可以使用。而长期以来,软件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求。因此,软件产品大多是为客户“订做”的,通用性差。软件涉及各行各业的知识,这对软件工程师提出了很高要求。软件不仅是一种在市场上推销的工业产品,也是与文学艺术作品相似的精神作品。与体力劳动相比,精神活动过程的特点是“不可见性”,这大大增加了组织管理上的困难。,社会对软件的要求,用户的需求更高、涉及的领域更广软件运行环境更加庞大软件更新换代更加频繁,软件危机-软件生产的现状,“已完成”的软件不满足用户的需求软件产品的质量没有保证。开发进度不能保障,交付时间一再拖延。开发成本超出预算。软件没有适当的文档,危机定义:计算机软件开发和维护过程中所遇到的一系列严重问题。,产生软件危机的原因,与软件的特点有关与软件开发和维护的方法有关,1.2 软件行业的出路?-软件工程,1)1993 IEEE软件工程定义:软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对中所选方法的研究。注意:软件工程研究所依据的基础理论:数学、计算机科学、经济学、工程学、管理学和心理学等学科。其中数学和计算机科学用于构造模型、分析算法;工程学用于评估成本、制定规范和标准;管理学和心理学用于进度、资源、环境、质量、成本等的分析和管理。,2)软件工程研究的主要内容,技术方面:研究软件开发方法、软件开发过程、软件开发工具。管理方面:主要研究软件项目管理学、软件经济学、软件心理学。,3)软件工程层次化,4)规范化和文档化,规范化:使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式关注国标、行标。文档化:把软件的设计思想、设计过程和实现过程完整地记录下来,便于各类相关人员交流和沟通;使软件开发过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理;是验收、质量检测的标准和依据。,5)软件工程的目标,软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:实现预期的软件功能,达到较好的软件性能,满足用户的需求。增强软件过程可见性和可控性,保证软件的质量。提高软件的可维护性,降低维护费用。提高软件开发生产率,及时交付使用。合理预算开发成本,付出较低的开发费用。,1.3 软件工程发展简史,1968年在德国格密斯(Garmish)举行的学术会议上,北大西洋公约组织(NATO)正式提出了“软件工程”这一术语。软件工程作为工程学科家族中的新成员,对软件产业的形成和发展起了决定性作用,它指导人们科学地开发软件,有效地管理软件项目,对提高软件质量具有重要作用。,1.3 软件工程发展简史(续),在20世纪70年代基本形成了软件工程的概念、框架、方法,被称之为第一代软件工程,即传统软件工程。结构化分析、结构化设计和结构化编程方法是这个时期的代表。80年代出现的Smalltalk 80程序设计语言标志着面向对象程序设计进入了实用阶段,从80年代中到90年代中,研究的重点转移到面向对象分析和设计上来,从而演化成软件工程的第二代,称之为对象工程。90年代后期,软件工程的一个重要进展就是基于组件的开发方法。为了提高软件生产力,尽可能地利用可复用组件来组装成新的应用软件系统。到目前为止,组件技术的研究和发展形成了新一代软件工程,即第三代软件工程,也有不少人称之为组件工程。,1.3 软件工程发展简史(续),软件工程至今还在不断发展,无论是组件工程还是对象工程都在不断发展,即使是传统软件工程的一些基本概念、框架,也随着技术的进步在发生变化。总之,软件工程代与代之间并没有鸿沟,它们不仅交叉重叠,也携手并进。,1.4 软件工程7条基本原理,原理1、用分阶段的生命周期计划严格管理 在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作,这条基本原理意味着,应该把软件生命周期划分成若干阶段,并相应地制定出切实可行的计划,按照计划对软件的开发与维护工作进行控制。,软件工程核心-7条基本原理,原理2、坚持进行阶段评审。软件的质量保证工作不能等到编码阶段结束之后再进行。经过大量的统计数据表明,大部分错误是在编码之前造成的,其中,设计错误约占软件错误的63%,编码错误占37%。在前期改正错误所需要的可能只是橡皮和铅笔,而在交付后改正错误需要的工作就太多了:查找出错的代码、重新组织程序结构和数据结构、测试、修改文档。也就是说,错误发现与改正的越晚,所需付出的代价也越高。因此,在每个阶段都应该进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。,软件工程核心-7条基本原理,原理3、实行严格的产品控制 基准配置又称基线配置,它们是经过阶段评审后的软件配置成份。基准配置管理的思想是:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审和控制,获得批准以后才能实施修改。目的是当需求变动时,其它各阶段的文档或代码随之相应变动,以保证软件的一致性。,软件工程核心-7条基本原理,原理4、采用现代程序设计技术 自从提出软件工程概念后,人们一直把主要精力用于研究各种新的程序设计技术。60年代末提出了结构化程序设计技术,以后又进一步发展出结构化分析与设计技术、面向对象的分析和设计技术。实践表明,采用先进的技术既可提高软件开发和维护的效率,又可提高软件质量。,软件工程核心-7条基本原理,原理5、结果应能清楚地审查 软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,明确地规定开发小组的责任和产品标准,从而使所得到的产品有明确的标准能清楚地审查。,软件工程核心-7条基本原理,原理6、开发小组的人员应该少而精 软件开发小组成员的素质应该好,人数不宜过多。素质高的人员开发效率高、质量好、错误少。开发小组人员过多,信息交流造成的通信开销会急剧增加。,软件工程核心-7条基本原理,原理7、承认不断改进软件工程实践的必要性 遵循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产。但是,仅有上述六条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,因此,应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。,1.5软件过程模型,1)定义:软件过程是人们开发和维护软件及相关产品(如软件项目计划,设计文档、代码、测试用例及用户手册)的活动、方法、实践和改进的集合。解释:过程是为了达到一个目标所进行的一系列活动,或者说是为达到一个目标而设计的“路线图”。例如:为了培养一个世界体操冠军,需要研究训练方法、运用先进的训练器械、不断改进训练过程,最终有可能培养出世界冠军。比较:软件开发和维护工作的目标是按时交付高质量的、满足需求的、低成本的软件代码和文档,为此也需要研究软件工程的过程、工具和方法,比如过程可以选择RUP或者XP,工具可以选择Rational Suite或者其他,方法可以是面向对象也可以是面向过程等等。,2)软件生命周期,一个软件从提出开发要求到废弃为止的整个时期。通常划分为:问题定义、可行性研究、需求分析、设计、实现、测试、集成、维护8个阶段。,问题定义阶段:,主要内容是确定“要解决什么问题?”。通过对客户的访问调查,系统分析人员简要地写出关于问题的背景、解决的意义和目标。一般这个活动放在可行性研究活动之前,作为其活动的一部分。,可行性研究:,确定“要解决的问题是否有解?”。分析待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。,需求分析:,明确“为了解决这个问题,系统必须做什么?”。通过分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。通过评审需求规格说明书,确保对用户需求达到共同的理解与认识。需求规格说明书明确地描述了软件的功能,列出软件必须满足的所有约束条件,并定义软件的输入和输出接口。,概要设计:,概要设计“系统的蓝图”。确定解决问题的策略,设计目标系统框架结构和主要元素的布局。,详细设计:,详细设计,根据整体结构设计具体的细节:用户界面设计,模块实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。设计过程将现实世界的问题模型转换成计算机世界的实现模型,设计同样需要文档化,并应当在编写程序之前评审其质量。,编码和单元测试:,将所设计的各个模块编写成计算机可接受的程序代码。在设计测试用例的基础上,测试软件的各个组成模块。然后,将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明。一旦生成了代码,就可以开始单元测试,这种测试一般由程序员完成。,系统集成和综合测试:,软件是作为一个整体运行的,而模块的集成方法和顺序对最终的产品质量具有重大的影响。因此,除了单个模块的测试外,还需要进行系统集成,以及集成测试、系统测试和验收测试等。,运行和维护:,一旦软件交付运行之后,所做的任何修改就是维护。维护是软件过程的一个组成部分,应当在软件的设计和实现阶段充分考虑软件的可维护性。,1.6软件开发方法简述,1)结构化方法1978年,E.Yourdon和提出了Yourdon方法,也称为结构化方法或面向功能的软件开发方法或面向数据流的方法。Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析技术进行需求分析,然后用结构化设计技术进行总体设计和详细设计,最后是结构化编程。这一方法的精髓是自顶向下、逐步求精,也就是将功能逐步分解,直到人们可以理解和控制它为止。,2)面向对象方法:研究始于1966年,自90年代以来,面向对象的分析、设计、测试、度量和管理等研究都得到长足发展。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。继承性是对具有层次关系的类的属性和操作进行共享的一种方式。基本思想:用对象模拟问题领域中的实体,以对象间的关系刻画实体间联系。本质是主张从客观世界固有的事物出发构造系统。,1.7软件工程研究的最新方向,软件形式语言的研究:目前,大部分软件文档都是用自然语言书写的。由于自然语言本身具有模糊性,因此有一部分专家研究“形式化描述语言的应用,以及不同形式化语言之间的转换”。这类研究工作难度较大,也不容易为一般人所接受。但是由于越来越多的大型软件的复杂程度与日俱增,这些软件一旦出错所引起的后果十分严重,所以形式化的研究工作就显得非常重要。构件技术:软件开发构件化可以说是软件开发技术的一个发展趋势,也是软件工程界的一个热门话题。近年来,软件技术的进步以及CORBA,DCOM,JavaBean等构件标准的出现已经使情况开始改变,这给软件危机的真正缓和带来了希望。质量管理:软件开发过程的质量控制将逐步得到重视。软件开发过程中精神活动的“不可见性”大大增加了过程管理的困难。因此软件工程管理的指导思想就是千方百计地使这些过程变为“可见的”,以及事后可以检查的记录。只有从一开始就在软件开发过程中严格贯彻质量管理,软件产品的质量才有保证。否则,开发工作一旦进行到后期,无论怎样测试和补漏洞,都无济于事。这就是近年来国际上十分重视的“软件生产过程质量管理”思想。,1.8软件工程标准,1)国际标准:由国际联合机构制定和公布,提供各国参考的标准。ISO(International Standards Organization)国际标准化组织,该机构建立了“计算机与信息处理技术委员会”(简称ISOTC97),专门负责与计算机有关的标准化工作。这类标准通常标有ISO字样,如ISO 863186 Information processing Program constructs and conventions for the representation(信息处理程序构造及其表示法的约定),该标准现已被我国收入国家标准。,2)国家标准,由政府或国家级的机构制定或批准,适用于全国范围的标准。GB中华人民共和国国家标准。国家技术监督局是我国的最高标准化机构,它所公布实施的标准简称为“BG”。ANSI(American National Standards Institute)美国国家标准协会。这是美国一些民间标准化组织的领导机构,具有一定权威性。BS(British Standard)英国国家标准。,3)行业标准,由行业机构、学术团体或国防机构制定并适用于某个业务领域的标准。IEEE(1nstitute Of Electrical and Electronics Engineers)美电气和电子工程师学会。近年该学会专门成立了软件标准分技术委员会(SESS),积极开展了软件标准化活动,取得了显著成果,受到软件界的关注。IEEE通过的标准常常要报请ANSI审批,使其具有国家标准的性质。因此,我们看到IEEE公布的标准常冠有 ANSI字头。例如,ANSIIEEE Str 8281983软件配置管理计划标准。GJB中华人民共和国国家军用标准。这是由我国国防科学技术工业委员会批准,适合于国防部门和军队使用的标准。例如,1988年发布实施的GJB47388军用软件开发规范。DOD-STD(Department Of Defense-STanDards)美国国防部标准。适用于美国国防部门。,4)企业标准,一些大型企业或公司,由于软件工程工作的需要,制定适用于本部门的规范。例如,美国IBM公司通用产品部(General Products Division)1984年制定的“程序设计开发指南”,仅供该公司内部使用。,5)项目规范,由某一科研生产项目组织制定,并且为该项任务专用的软件工程规范。例如,计算机集成制造系统(CIMS)的软件工程规范。,1.9软件工程师职业道德规范,1)规范1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了软件工程师职业道德规范,规范含有8组由关键词命名的行为准则。公众、客户和雇主、产品、判断、管理、专业、同行、自身。,2)职业化素质,职业化,简单说就是能胜任工作,让人放心。“能胜任工作”,就需要具备相应的专业技能、知识和经验;“让人放心”意味着很多,包括遵守行业成文的或未成文的规则和规范,积极有效地和同事沟通,确保自己的工作产品是大家所期望的,尽可能地向客户提供最专业的服务和产品。自律、沟通和技能是成为职业化软件工程师的必要条件。,3)职业化软件工程师忌讳的十大问题,行为一:对外交付半成品。行为二:不遵守标准和规范。行为三:不积极帮助他人。行为四:版权意识不敏感。行为五:对待计划不严肃。行为六:公事私事相混淆。行为七:不注意知识更新。行为八:不主动与人沟通。行为九:不遵守职业规则。行为十:不够诚实和正直。,本章要点,软件危机的主要表现是“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。,本章要点(续),软件工程的7条基本原理是用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性。软件生命周期是指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、集成和测试、维护阶段。软件生命周期模型反映的是软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。对于不同的软件系统,可能采用不同的开发方法,使用不同的程序设计语言、不同的管理方法和手段、以及各种具有不同技能的人员参与工作,但是对于软件生命周期模型来说都应该是稳定有效和普遍适用的。到目前为止,已经提出了多种模型,主要有瀑布模型、快速原型模型、演化模型、螺旋模型、V模型等。模型的选择是基于软件的特点和应用领域。,本章要点(续),目前,主流的软件开发方法有结构化方法和面向对象方法。为了提高软件开发的效率,保障软件产品的质量,软件工程领域中公布了许多国际标准、国家标准、行业标准、企业标准、项目规范,通常由低级到高级使用。软件工程的标准关系到许多方面,有规范开发过程的标准,有定义产品的标准,还有管理标准和记法符号的标准等等。1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了软件工程师职业道德规范,规范含有8组由关键词命名的准则。公众、客户和雇主、产品、判断、管理、专业、同行、自身。职业化软件工程师要注意的十大问题:高质量地完成任务遵守行业标准,不能肆意按照自己的想象来发挥积极帮助他人版权意识敏感严格遵守计划公私分明注意知识更新善于沟通遵守职业规则诚实和正直。,课堂练习,一个简化的养老院软件需求描述如下:老人来到养老院,接待人员将老人的基本信息录入到系统中,管理员读取老人信息,进行护理级别的评估,根据评估结果分配床位、确定护理方案,床位的分配信息存入床位分配数据表,每位老人的护理方案也要保存到数据库表中。财务人员根据收费标准、床位分配信息、护理方案和老人的日常护理记录计算应收费用,老人的家属可以查询应收费信息和老人的日常护理信息。护士根据老人基本信息、护理方案对老人进行日常护理,并向系统录入每日的护理信息。请你根据以上的描述,画出数据流程图。,某学校开发了学生网上选课的系统,学生首先输入学生编号和密码,登录成功后在网上查找到希望选修的课程,并查看是否还有名额,若有名额就可以选课,系统自动记录该学生的选课信息,并返回选课成功。请用顺序图描述学生选课的过程。(只描述成功选课的情形即可),对功率大于50马力的机器或已运行 10 年以上的机器,应送到专业的维修公司处理;否则如果功率小于20马力,并且有维修记录,则在车间维修;否则送到本厂的维修中心维修,请建立判定表。,作业,查一下资料,看看目前有哪些主流的软件开发方法?这些软件开发方法的特点是什么?通过查找资料,了解软件开发经历了哪些历史阶段?各个阶段的硬件条件、主流工具和软件方法?请写一篇关于软件工程工具的调查报告,报告目前国内外各种主流的软件工具、它们的分类、用途、提供商、价格、主要功能、评价。仔细阅读一个软件工程的国际或国家标准,说明在信息化建设过程中,遵循标准的重要性。,

    注意事项

    本文(软件工程实践者教材-概述.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开