版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程(第二版)
齐治昌、谭庆平、宁洪编著
高等教育出版社
主讲:陈明锐教授★省级精品课程★软件工程(第二版)
齐治昌、谭庆平、宁洪编著
1老师联系方式陈明锐,信息学院副院长办公室(309房)办公电话:66279275,手机/p>
提交作业全部用附件,文件名为:学号+姓名+加章次例如文件名:20060724133陈好五.DOC表示陈好的第五章作业!课后有问题最好用电子邮件。电子邮件:mrchen@
老师联系方式陈明锐,信息学院副院长办公室(309房)课程进度安排分析与设计课堂演讲竞赛,请同学们在第4周前分好组并把分组名单发给老师。分组要求5~7人一组,能力强弱结合,分工合作,发扬团队合作精神。最终形成课程设计提交!
周序日期讲授主要内容实践教学内容备注12.27第一章绪论:软件与软件危机,软件工程学的范畴;传统软件工程和面向对象软件工程,软件工程的应用23.05第二章软件开发模型:软件生存周期,传统软件开发模型,软件演化模型3.06第二章软件开发模型:面向对象开发模型,形式化方法模型,开发模型选用实例33.13第三章软件需求分析:需求分析的任务与步骤,需求获取的常用方法;分析建模,软件需求说明43.19第三章软件需求分析:结构化分析方法实验1:选题(1学时)3.20第三章软件需求分析:面向对象分析方法53.27第四章软件设计概述:软件设计的任务,软件设计的基本概念;模块化设计,其他设计问题的处理,设计文档及其复审实验2:可行性分析64.02第五章传统的设计方法:概述,结构化设计方法、过程设计实验3:需求分析4.03第六章面向对象设计方法:面向对象设计概述,系统设计74.10第六章面向对象设计方法:对象设计,领域对象设计实验4:需求分析第七章统一建模语言UML:UML的组成、特点与应用,静态建模84.16面向过程分析设计课堂演讲竞赛面向过程分析设计演讲竞赛,需要两次课!或者根据学生情况往后推迟两周4.17面向过程分析设计课堂演讲竞赛课程进度安排分析与设计课堂演讲竞赛,请同学们在第4周前分好组课程进度安排周序日期讲授主要内容实践教学内容备注94.24第七章统一建模语言UML:动态建模,实验5:软件设计
第七章物理架构建模,基于UML的统一建模过程——RUP,第八章编码和语言选择
104.30第九章:软件测试:测试的基本概念,黑盒测试备注:5.1放长假
115.08第九章:软件测试:白盒测试,测试用例设计;软件测试:软件的纠错实验6:编码与调试程序
125.14第九章:软件测试:多模块程序的测试策略实验7:编码与调试程序
5.15第九章:软件测试:面向对象系统的测试,第十章软件复用135.22第十一章软件维护,第十二章软件项目计划实验8:编码与调试
145.28面向对象分析设计演讲竞赛实验9:软件测试
5.29面向对象分析设计演讲竞赛156.05第十三章软件工程管理,第十四章软件质量管理:从质量保证到质量认证,质量保证,软件可靠性
166.11第十四章软件质量管理:程序正确性证明,CMM软件能力成熟度模型,ISO9000国际标准,软件度量
6.12第十五章:软件工程环境176.19总复习、答疑
合计68学时随堂与课外结合
课程进度安排周序日期讲授主要内容实践教学内容备注94.24第课程简介及教学目标
“软件工程”是计算机科学与技术、计算机软件与理论、信息与计算科学及其相关专业的一门专业基础课,它是软件设计与开发以及各种计算机应用系统开发的重要基础。是本科培养目标——软件系统设计师和软件开发工程师的必备知识。主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理等。课程的学习对提升同学们的能力、素质、道德修养、团队精神等都具有非常重要的意义。
课程简介及教学目标“软件工程”是课程简介及教学目标
在课程的学习和实践中,同学们应理解和掌握软件工程中的软件生命周期各阶段的任务、过程、结构化方法和工具;面向对象方法学、面向对象分析、设计和实现;软件工程应用的管理技术等。本课程的目的与任务是使同学们通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为今后更深入地学习和从事有关软件工程实践工作打下良好的理论基础。
课程简介及教学目标软件开发与人才需求未来软件开发的生产模式及对人才的要求现有模式:小作坊的、一人身兼多职、英雄式的软件开发生产模式:大规模的软件生产,专业化、分工越来越细,团队合作开发对人才的要求:除精通开发技术外,更需要软件工程意识和团队合作精神软件开发与人才需求未来软件开发的生产模式及对人才的要求中国软件产业中国软件产业的途径之一(软件外包)印度软件产业发展与软件外包
中国向印度学习——发展软件外包业务中国目前外包业务与市场分析
中国目前80%的外包业务来自日、韩等亚洲国家印度的外包业务主要来自于美国中国和印度的不同(文化、语言、软件工程意识)中国软件产业中国软件产业的途径之一(软件外包)软件工程教育的定位我国软件工程的专业教育与软件人才的链之间的关系可描述为如下图:软件开发工程师架构设计师产品经理项目管理者系统分析师系统设计师程序员研究生教育本科教育大专教育中专教育软件工程教育的定位我国软件工程的专业教育与软件人才的链之间的软件工程教育的定位
观点:
不同的人才培养或者不同软件开发的岗位对软件工程的知识要求是不一样的。我们在学习软件工程知识与选用教材时,充分地考虑到这一因素,采取因材取舍的原则。不同的软件工程教材,适用于不同层次的人员学习,所以不同层次的人才选用不同的教材。——例:海南纽康信息系统有限公司岗位能力规定软件工程教育的定位观点:1.程序员岗位能力规定录用员工条件年龄范围:20-25学历要求:大专以上或中专以上并有计算机相关证书专业要求:计算机及相关专业工作经历要求:1.有从事软件编程的实习经历3-6个月以上。2.通过公司内部实习期。日语水平:1.相当三级2.或者有4级证书3.或者进公司时能理解日语仕样书,熟悉日语环境技术水平:1.熟悉和掌握基本的数据库2.熟悉和掌握2门开发语言3.能胜任项目中编程能力要求:1.具备较强的学习能力2.工作积极主动,有责任心,有良好的品质意识岗位工作描述1.能按时按质完成软件项目中的编码工作2.能按时按质完成单体测试工作3.能制作符合要求的测试报告4.能认真的参加项目内或部门、公司安排的培训,并且能达到培训要求。5.每年的技术水平和日语水平考核有进步。1.程序员岗位能力规定录年龄范围:学历要求:专业要求:工2.软件工程师岗位能力规定录用员工条件年龄范围:20-27学历要求:大专以上专业要求:计算机及相关专业工作经历要求:1.有从事软件编程一年以上的相关工作经历2.通过公司内部试用期日语水平:1.相当三级2.或者有4级证书3.能理解日语仕样书,熟悉日语开发环境达一年技术水平:1.熟悉运用SQLserver、Oracle数据库2.熟悉运用VC、C++或Java编程3.能带一个实习生能力要求:1.具备较强的学习能力2.工作积极主动,有责任心,有良好的品质意识3.具有团队协作精神及沟通能力岗位工作描述1.能按时按质完成软件项目中的编码工作2.能完成详细设计的任务3.能完成综合测试任务4.能协助公司独立担当带好新手的任务2.软件工程师岗位能力规定录年龄范围:20-27学历要求3.高级软件工程师岗位能力规定录用员工条件年龄范围:25岁以上学历要求:本科以上或专科并有计算机相关技术证书专业要求:计算机及相关专业工作经历要求:1.从事日本软件编程的工作经历超过三年2.有在项目中担任技术骨干的经验至少一年3.通过公司内部试用期。日语水平:1.相当三级2.能理解日语仕样书技术水平:1.精通运用SQLserver、Oracle数据库2.精通VC、C++或Java,同类技术运用时间在三年以上3.熟悉各种计算机开发语言。能力要求:1.具备较强的学习能力2.工作积极主动,有责任心,有良好的品质意识3.具有团队协作精神及沟通能力4.在项目组中有解决技术难题的能力或能起到项目组协理作用岗位工作描述1.能配合项目主管按时按质完成项目任务。2.在项目组内担当技术骨干作用或担当部门协理作用。3.首先理解项目中客户规定的“工具”,并能辅导组员掌握,并在整个项目中担当指导工作。4.担当事业部内或公司安排的技术培训任务。5.能担任详细设计工作。3.高级软件工程师岗位能力规定录年龄范围:学历要求:本科4.项目主管岗位能力规定录用员工条件年龄范围:28岁以上学历要求:本科以上或专科并有计算机相关技术证书专业要求:计算机及相关专业工作经历要求:1.从事日本软件编程的工作经历超过三年2.有项目主管、组长经历两年以上3.通过公司内部试用期日语水平:1.相当一级2.二级以上证书技术水平:1.熟悉各类数据库2.熟悉各种计算机开发语言3.熟悉特定的开发工具能力要求:1.具备较强的学习能力,具有进取心2.工作积极主动,有责任心,有良好的品质意识3.具有上下沟通的能力4.具有项目组与项目组之间的合作意识和整体意识。岗位工作描述1.项目开始前的准备,培训计划制定、环境构成、体制及人员安排2.项目开发标准的实施3.整个项目过程的控制,进度管理4.项目QA管理,负责项目总体测试工作5.项目后期的文档整理,维护对应计划及安排,项目总结,项目成员能力评价6.保密计划和质量计划等(特殊要求的项目)的制定、实施7.组织解决技术方面重大问题和及时应对的处理。4.项目主管岗位能力规定录年龄范围:学历要求:本科以上或5.项目经理岗位能力规定录用员工条件年龄范围:
28岁以上学历要求:本科以上或专科并有计算机相关技术证书专业要求:计算机及相关专业工作经历要求:1.有项目经理经历两年以上2.同时有日本工作经验一年以上3.通过公司内部试用期日语水平:1.日语一级技术水平:1.熟悉各类数据库2.熟悉各种计算机开发语言3.熟悉特定的开发工具能力要求:1.具备较强的学习能力,具有进取心2.工作积极主动,有责任心,有良好的品质意识3.具有上下沟通的能力4.具有项目组与项目组之间的合作意识和整体意识5.能灵活安排好项目与项目之间的衔接及人员调度岗位工作描述1.项目开始前的准备,培训计划制定、环境构成、体制及人员安排2.项目开发标准的实施3.整个项目过程的控制,进度管理4.维护对应计划几安排,项目总结,项目成员能力评价5.保密计划和质量计划等(特殊要求的项目)的制定、实施6.组织解决技术方面重大问题和及时应对的处理7.能合理安排项目与项目之间的进度5.项目经理岗位能力规定录年龄范围:学历要求:本科以上或课程学习的内容与形式理论内容:基本原理、方法和技术形式:讲授、自学、讨论实践内容:构造一个应用系统(包括分析、设计、编码、测试)形式:分组合作、分阶段形成文档、编码、集成课程学习的内容与形式软件工程的主要内容软件工程的基本概念软件开发模型软件开发各阶段的任务、技术、方法传统方法、面向对象方法软件工程管理软件质量保证软件工程环境软件工程的主要内容软件工程的基本概念第一章绪论1.1软件与软件危机1.2软件工程学的范畴1.3传统软件工程和面向对象软件工程1.4软件工程的应用第一章绪论1.1软件与软件危机软件是信息化的核心,国民经济、国防建设、社会发展及人民生活都离不开软件。软件产业是增长最快的朝阳产业,是高投入/高产出、无污染、低能耗的绿色产业。软件产业关系到国家经济和文化安全,体现了国家综合实力,是决定21世纪国际竞争地位的战略性产业。软件工程(SoftwareEngineering)是在克服60年代末所出现“软件危机”的过程中逐渐形成与发展的。软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。1.1软件与软件危机软件是信息1.1软件与软件危机
软件工程的发展已经历了三个重要阶段:3、第三代软件工程—构件工程(软件复用)2、第二代软件工程—对象工程1、第一代软件工程—传统的软件工程注:软件工程发展阶段论没有统一定论60年代末到70年代为了克服“软件危机”(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。1.1软件与软件危机软件工程的发展已经历了三个重要阶段1.1软件与软件危机软件工程的发展已经历了三个重要阶段:3、第三代软件工程—构件工程(软件复用)2、第二代软件工程—对象工程1、第一代软件工程—传统的软件工程注:软件工程发展阶段论没有统一定论80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。1.1软件与软件危机软件工程的发展已经历了三个重要阶段:31.1软件与软件危机软件工程的发展已经历了三个重要阶段:3、第三代软件工程—构件工程(软件复用)2、第二代软件工程—对象工程1、第一代软件工程—传统的软件工程注:软件工程发展阶段论没有统一定论
90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。1.1软件与软件危机软件工程的发展已经历了三个重要阶段:3软件软件就是程序?×一定要纠正软件就是程序,开发软件就是编写程序的错误观念!
软件定义:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。程序的构成:面向过程的程序=算法+数据结构面向对象的程序=对象+消息面向构件的程序=构件+框架
软件软件就是程序?×一定要纠正软件就是程序,开发软件就是编写软件软件的简要定义:
软件=程序+数据+文档程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发及过程管理、维护和使用有关的图文材料程序、软件与软件产品:独唱—>>小合唱—>>合唱—>>万人大合唱|||简单程序较复杂程序软件软件软件的简要定义:软件=程序+数据+文档程序、软件与软件软件规模越来越大Windows95有1000万行代码Windows2000有5000万行代码Exchange2000和Windows2000开发人员结构Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人软件规模越来越大Windows95有1000万行软件开发的发展过程计算机应用发展软件数量多规模大软件成本高质量低个体化软件开发方法软件维护困难软件危机软件工程软件开发的发展过程计算机应用发展软件数量多规模大软件成本高质软件的特征软件是一种逻辑实体,不是物理实体,他具有抽象性软件不会磨损和老化软件主要是研制,生产是简单的拷贝软件成本昂贵,其开发方式至今尚未摆脱手工方式软件维护不同于硬件维修,易产生新的问题软件具有“复杂性”,其开发和运行常受到计算机系统的限制,即受环境影响大软件的特征软件是一种逻辑实体,不是物理实体,他具有抽象性软件的特征失效率时间硬件失效率曲线失效率时间实际曲线理想曲线软件失效率曲线软、硬件失效情况的对比
硬件失效率曲线,是一U型曲线(即浴盆曲线)。软件失效率曲线,它没有U型曲线的右半翼。因为软件不存在磨损和老化问题,然而存在退化问题。软件的特征失效率时间硬件失效率曲线失效率时间软件危机定义计算机软件的开发和维护过程所遇到的一系列严重问题表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势软件危机定义软件危机例证
IBM公司的OS/360,共约100万条指令,花费了5000个人年;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…”
1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序:
DO5I=1,3
误写为:DO5I=1.
3
1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。软件危机例证IBM公司的OS/360,共约100万条硬件/软件成本变化趋势
硬件
软件
100%0%195519701985硬件/软件成本变化趋势100%0%1955197019软件技术进步落后于需求增长软件技术进步落后于需求增长软件危机原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护软件危机原因软件危机解决途径组织管理系统工程项目管理方法技术措施软件开发技术与方法软件工具软件危机解决途径1.2软件工程学的范畴软件工程学指导计算机软件开发和维护的工程学科工程管理+开发技术1983年B.W.Boehm提出了软件工程的七条基本原理:用分阶段的是的生存周期计划严格管理;坚持进行阶段评审;严格实施的产品控制;采用现代程序技术;结果应能清楚地审查;开发小组的成员应该少而精;承认不断改进软件工程的必要性。1.2软件工程学的范畴软件工程学1.2软件工程学的范畴于1968年在联邦德国召开的北大西洋公约软件可靠性会议(NATO)上,首次提出“软件工程”的概念,提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。了解有关软件、软件生存期及软件工程过程等重要的概念,对掌握、学习和应用软件工程的方法、技术等对于计算机科学与技术专业的学生都是非常必要的。1.2软件工程学的范畴于1968年在联邦德国召开的北大西洋1.2软件工程学的范畴软件工程学软件开发技术软件工程管理软件开发方法学软件工具软件工程环境软件管理学软件经济学软件度量学1.2软件工程学的范畴软件工程学软件开发技术软件工程管理软软件工程层次图
该图展现了软件工程研究的内容及关注的焦点。
软件工程层次图
1.3传统软件工程和面向对象软件工程由于软件开发方法可分为三大类:面向过程的开发方法(传统的)面向对象的开发方法基于构件的开发方法相应地软件工程方法也分为三大类:面向过程的软件工程(传统的)面向对象的软件工程基于构件的软件工程1.3传统软件工程和面向对象软件工程由于软件开发方法可分传统软件工程传统的软件工也称为面向过程的软件开发方法,这类开发方法都典型地包含了分析、设计、实现、确认(测试)、演化(维护)等活动。典型的传统软件开发方法有:Jackson方法、结构化开发方法、原型化方法、HIPO法、IDEF法等。传统软件工程传统的软件工也称为面向过程的软件开发方法,这传统软件工程一、结构化开发方法(StructuredDevelopingMethod)是一种面向数据流的开发方法,是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。结构化方法总的指导思想是自顶向下、逐步求精,以数据流,数据的封闭性准则来逐层分解的,它的基本原则是功能的分解与抽象。
结构化方法强调结构的合理性。提出了一组提高软件结构质量的准则,如功能的分解与抽象、模块独立性、信息屏蔽等。传统软件工程一、结构化开发方法(StructuredDev传统软件工程
JACKSON方法是一种面向数据结构的设计方法。强调程序结构与问题结构相对应。
JACKSON方法由两部分构成:1、JSP(JacksonstructuredProgramming)(杰克逊结构程序设计)2、JSD(JacksonSystemDevelopment)二、Jackson方法传统软件工程JACKSON方法是一种面向数据结构的设计方
1.3传统软件工程和面向对象软件工程三、原型化方法(PrototypingMethod)
原型是软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。
原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,原型化方法又称速成原型法(RapidPrototyping)。强调的是软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。将维护和修改阶段的工作尽早进行,使用户验收提前,从而使软件产品更加适用。1.3传统软件工程和面向对象软件工程三、原型化方法(Pr传统软件工程四、HIPO法(HierarchyPlusInput—Process—Output)
HIPO法(HierarchyPlusInput—Process—Output),按功能层次结构分析法,74年由IBM公司推出的软件分析及设计方法,又称HIPO图。HIPO图是以功能、功能完备性准则逐层分解的。由直观目录表(H图),概要HIPO图,详细IPO图三部分组成。传统软件工程四、HIPO法(HierarchyPlusI面向对象软件工程OOSD(Object-OrientedSoftwareDevelopment)法这是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核心技术之一。
其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。面向对象软件工程OOSD(Object-Orient软件复用技术(基于构件的软件工程)“软件重用”或“软件复用”(SoftwareReuse)是指将已有的软件成分用于构造新的软件系统。该技术是提高软件生产率和质量,降低成本的有效方法。一、复用方式复用程序:包括目标代码和源代码的复用,可通过连接(Link)、绑定(Binding)、包含(include)等功能支持及对象链接及嵌入(OLE)技术实现。复用分析
比设计复用级别更高,实现方式与设计复用类似。复用设计:设计结果比源程序的抽象级别高,因此复用受环境影响小。可以通过从现有系统中提取全部或者不同粒度的设计构件,或者独立于具体应用开发设计构件。复用结构
复用模块结构或者数据结构。软件复用技术(基于构件的软件工程)“软件重用”或“软件软件复用技术(基于构件的软件工程)二、可复用的构件
构件是指可以被明确标识的软件制品,可以是软件开发不同阶段的产品。
可复用构件是指可被其它系统复用,用于构成新系统的构件。可复用构件的特性:1.独立性解决相对独立的问题,与外界联系尽量少。2.完整性既要包括完整的解决方案,还定义相应操作。3.通用性在同类应用中具有一般性。4.可标识性通过合适的命名,构件所解决的问题是可标识的。5.可适应性适应环境变化。6.可靠性对各个使用它的系统都具有高的可靠性。软件复用技术(基于构件的软件工程)二、可复用的构件可复用构件两种程序设计方法程序设计的两次飞跃程序设计从主要依赖于程序员个人的自由活动变成有章可循的一门学科——结构化程序设计面向过程的程序=算法+数据结构结构化程序设计到面向对象程序设计,是程序设计方法的又一次飞跃面向对象的程序=对象+消息两种程序设计方法程序设计的两次飞跃面向过程和面向对象的编码存款取款利息结算帐户余额帐户余额利息结算存款取款例:VB的对象Form1下…面向过程和面向对象的编码存款取款利息结算帐户余额帐户余额利息两类软件工程方法传统软件工程软件分析→总体设计→详细设计→面向过程的编码→测试系统设计面向对象软件工程软件分析与对象抽取→对象详细设计→面向对象的编码→测试建立模型运行与维护两类软件工程方法传统软件工程系统设计面向对象软件工程建立模型面向对象的系统分析与设计方法面向对象的系统分析与设计方法1.4软件工程的应用一、软件的分类1、按照软件功能划分系统软件—如操作系统、设备驱动程序等。支撑软件(实用软件)—协助用户开发的工具软件,如编辑程序、程序库、图形软件包等。应用软件—如工程与科学计算软件、CAD/CAM软件、CAI软件、信息管理系统等。1.4软件工程的应用一、软件的分类1、按照软件功能划分1.4软件工程的应用2、按照软件规模划分类别参加人数研制期限产品规模(源代码行)微型11–4周0.5K小型11–6月1K–2K中型2-51–2年5–50K大型5-202–3年50–500K甚大型100-10004–5年1M极大型2000-50005–10年1M–10M3、按照软件工作方式划分实时处理软件 交互式软件 批处理软件4、按照软件服务对象的范围划分项目软件—由客户委托开发的软件。产品软件—由软件开发机构开发,提供给市场的。此外,还可以按照软件使用的频度或软件失效的影响进行划分。1.4软件工程的应用2、按照软件规模划分类别参加人数研1.4软件工程的应用软件工程指导中小型软件软件工程指导大型软件软件工程的成就软件工程的局限1.4软件工程的应用软件工程指导中小型软件软件工程的最新发展动向软件工程研究的最新动向软件形式语言的研究构件技术质量管理提高工作效率计算机辅助软件工程环境工具箱软件工具模型软件工程的最新发展动向软件工程研究的最新动向提高工作效率计算1.5应正确认识和处理好的几个关系1.传统软件工程与现代软件工程的关系虽然两类工程规范存在很大的差异,但他们还有不少共同点,许多在传统软件工程中总结的指导思想在面向对象软件工程中仍具有指导意义。有些在传统软件工程中行之有效的分析和设计方法(如模块化设计、抽象与细化等)在面向对象中继续适用,有些方法(如分析与设计建模)在面向对象中还有发展。并且,面向对象软件工程还有所发展,在面向对象软件工程趋于成熟的同时,新一代软件工程——“构件工程”正在逐步扩大其应用范围。1.5应正确认识和处理好的几个关系1.传1.5应正确认识和处理好的几个关系2.软件工程原理与软件工程方法的关系软件工程总结了大量的精辟原理(清晰第一,效率第二;设计优先编码;使程序结构适合问题结构;开发伴随复用,开发伴随复用等)和科学方法(结构化分析;结构化设计;OO分析;OO设计;UML语言;白盒测试和黑盒测试等)。要注意原理(指导)和方法(应用)的结合。1.5应正确认识和处理好的几个关系2.软件工程原1.5应正确认识和处理好的几个关系3.软件工程技术与软件工程管理的关系软件工程技术与管理是软件开发的两个方面,没有管理,再好的技术都不能充分发挥作用。管理离不开度量,“靠度量来管理”已经成为现代管理的一条重要原则。软件度量学和软件经济学是该原则在软件工程中的具体体现。1.5应正确认识和处理好的几个关系3.软件1.5应正确认识和处理好的几个关系4.形式化方法与非形式化方法的关系形式化方法是软件工程的高级研究课题之一,是一种基于数学的开发方法,它采用数学方法来描述系统的性质。非形式化方法主要用图、表、文本、符号等来描述系统模型。1.5应正确认识和处理好的几个关系4.形1.5应正确认识和处理好的几个关系5.小程序设计与大程序设计的关系不论大小软件,都应使用软件工程的原理方法来指导开发,只有学会有效地编写小程序,才可能有效地编写大程序。1.5应正确认识和处理好的几个关系5.小程序作业习题P13~.5.1.软件危机的表现:软件复杂性的增长比软件规模的增长要快得多,成非线性增长。使得开发费用超出预算,完成时间严重超期,可靠性下降,质量保证越来越困难;计算机系统软件成本占整个系统的绝大部分。质量的下降对计算机应用的继续扩大构成巨大的威胁。
软件危机的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;软件生产技术进步缓慢,加剧了软件危机。2.采用工程化的原理和方法对软件进行计划、开发和维护。这样做的目的是按预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。早期的程序设计基于个人活动形式,各行其是,无统一的方法可言。4…..5.方法与工具相结合,再加上配套的软硬件支持就形成环境。….作业习软件工程(第二版)
齐治昌、谭庆平、宁洪编著
高等教育出版社
主讲:陈明锐教授★省级精品课程★软件工程(第二版)
齐治昌、谭庆平、宁洪编著
62老师联系方式陈明锐,信息学院副院长办公室(309房)办公电话:66279275,手机/p>
提交作业全部用附件,文件名为:学号+姓名+加章次例如文件名:20060724133陈好五.DOC表示陈好的第五章作业!课后有问题最好用电子邮件。电子邮件:mrchen@
老师联系方式陈明锐,信息学院副院长办公室(309房)课程进度安排分析与设计课堂演讲竞赛,请同学们在第4周前分好组并把分组名单发给老师。分组要求5~7人一组,能力强弱结合,分工合作,发扬团队合作精神。最终形成课程设计提交!
周序日期讲授主要内容实践教学内容备注12.27第一章绪论:软件与软件危机,软件工程学的范畴;传统软件工程和面向对象软件工程,软件工程的应用23.05第二章软件开发模型:软件生存周期,传统软件开发模型,软件演化模型3.06第二章软件开发模型:面向对象开发模型,形式化方法模型,开发模型选用实例33.13第三章软件需求分析:需求分析的任务与步骤,需求获取的常用方法;分析建模,软件需求说明43.19第三章软件需求分析:结构化分析方法实验1:选题(1学时)3.20第三章软件需求分析:面向对象分析方法53.27第四章软件设计概述:软件设计的任务,软件设计的基本概念;模块化设计,其他设计问题的处理,设计文档及其复审实验2:可行性分析64.02第五章传统的设计方法:概述,结构化设计方法、过程设计实验3:需求分析4.03第六章面向对象设计方法:面向对象设计概述,系统设计74.10第六章面向对象设计方法:对象设计,领域对象设计实验4:需求分析第七章统一建模语言UML:UML的组成、特点与应用,静态建模84.16面向过程分析设计课堂演讲竞赛面向过程分析设计演讲竞赛,需要两次课!或者根据学生情况往后推迟两周4.17面向过程分析设计课堂演讲竞赛课程进度安排分析与设计课堂演讲竞赛,请同学们在第4周前分好组课程进度安排周序日期讲授主要内容实践教学内容备注94.24第七章统一建模语言UML:动态建模,实验5:软件设计
第七章物理架构建模,基于UML的统一建模过程——RUP,第八章编码和语言选择
104.30第九章:软件测试:测试的基本概念,黑盒测试备注:5.1放长假
115.08第九章:软件测试:白盒测试,测试用例设计;软件测试:软件的纠错实验6:编码与调试程序
125.14第九章:软件测试:多模块程序的测试策略实验7:编码与调试程序
5.15第九章:软件测试:面向对象系统的测试,第十章软件复用135.22第十一章软件维护,第十二章软件项目计划实验8:编码与调试
145.28面向对象分析设计演讲竞赛实验9:软件测试
5.29面向对象分析设计演讲竞赛156.05第十三章软件工程管理,第十四章软件质量管理:从质量保证到质量认证,质量保证,软件可靠性
166.11第十四章软件质量管理:程序正确性证明,CMM软件能力成熟度模型,ISO9000国际标准,软件度量
6.12第十五章:软件工程环境176.19总复习、答疑
合计68学时随堂与课外结合
课程进度安排周序日期讲授主要内容实践教学内容备注94.24第课程简介及教学目标
“软件工程”是计算机科学与技术、计算机软件与理论、信息与计算科学及其相关专业的一门专业基础课,它是软件设计与开发以及各种计算机应用系统开发的重要基础。是本科培养目标——软件系统设计师和软件开发工程师的必备知识。主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理等。课程的学习对提升同学们的能力、素质、道德修养、团队精神等都具有非常重要的意义。
课程简介及教学目标“软件工程”是课程简介及教学目标
在课程的学习和实践中,同学们应理解和掌握软件工程中的软件生命周期各阶段的任务、过程、结构化方法和工具;面向对象方法学、面向对象分析、设计和实现;软件工程应用的管理技术等。本课程的目的与任务是使同学们通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为今后更深入地学习和从事有关软件工程实践工作打下良好的理论基础。
课程简介及教学目标软件开发与人才需求未来软件开发的生产模式及对人才的要求现有模式:小作坊的、一人身兼多职、英雄式的软件开发生产模式:大规模的软件生产,专业化、分工越来越细,团队合作开发对人才的要求:除精通开发技术外,更需要软件工程意识和团队合作精神软件开发与人才需求未来软件开发的生产模式及对人才的要求中国软件产业中国软件产业的途径之一(软件外包)印度软件产业发展与软件外包
中国向印度学习——发展软件外包业务中国目前外包业务与市场分析
中国目前80%的外包业务来自日、韩等亚洲国家印度的外包业务主要来自于美国中国和印度的不同(文化、语言、软件工程意识)中国软件产业中国软件产业的途径之一(软件外包)软件工程教育的定位我国软件工程的专业教育与软件人才的链之间的关系可描述为如下图:软件开发工程师架构设计师产品经理项目管理者系统分析师系统设计师程序员研究生教育本科教育大专教育中专教育软件工程教育的定位我国软件工程的专业教育与软件人才的链之间的软件工程教育的定位
观点:
不同的人才培养或者不同软件开发的岗位对软件工程的知识要求是不一样的。我们在学习软件工程知识与选用教材时,充分地考虑到这一因素,采取因材取舍的原则。不同的软件工程教材,适用于不同层次的人员学习,所以不同层次的人才选用不同的教材。——例:海南纽康信息系统有限公司岗位能力规定软件工程教育的定位观点:1.程序员岗位能力规定录用员工条件年龄范围:20-25学历要求:大专以上或中专以上并有计算机相关证书专业要求:计算机及相关专业工作经历要求:1.有从事软件编程的实习经历3-6个月以上。2.通过公司内部实习期。日语水平:1.相当三级2.或者有4级证书3.或者进公司时能理解日语仕样书,熟悉日语环境技术水平:1.熟悉和掌握基本的数据库2.熟悉和掌握2门开发语言3.能胜任项目中编程能力要求:1.具备较强的学习能力2.工作积极主动,有责任心,有良好的品质意识岗位工作描述1.能按时按质完成软件项目中的编码工作2.能按时按质完成单体测试工作3.能制作符合要求的测试报告4.能认真的参加项目内或部门、公司安排的培训,并且能达到培训要求。5.每年的技术水平和日语水平考核有进步。1.程序员岗位能力规定录年龄范围:学历要求:专业要求:工2.软件工程师岗位能力规定录用员工条件年龄范围:20-27学历要求:大专以上专业要求:计算机及相关专业工作经历要求:1.有从事软件编程一年以上的相关工作经历2.通过公司内部试用期日语水平:1.相当三级2.或者有4级证书3.能理解日语仕样书,熟悉日语开发环境达一年技术水平:1.熟悉运用SQLserver、Oracle数据库2.熟悉运用VC、C++或Java编程3.能带一个实习生能力要求:1.具备较强的学习能力2.工作积极主动,有责任心,有良好的品质意识3.具有团队协作精神及沟通能力岗位工作描述1.能按时按质完成软件项目中的编码工作2.能完成详细设计的任务3.能完成综合测试任务4.能协助公司独立担当带好新手的任务2.软件工程师岗位能力规定录年龄范围:20-27学历要求3.高级软件工程师岗位能力规定录用员工条件年龄范围:25岁以上学历要求:本科以上或专科并有计算机相关技术证书专业要求:计算机及相关专业工作经历要求:1.从事日本软件编程的工作经历超过三年2.有在项目中担任技术骨干的经验至少一年3.通过公司内部试用期。日语水平:1.相当三级2.能理解日语仕样书技术水平:1.精通运用SQLserver、Oracle数据库2.精通VC、C++或Java,同类技术运用时间在三年以上3.熟悉各种计算机开发语言。能力要求:1.具备较强的学习能力2.工作积极主动,有责任心,有良好的品质意识3.具有团队协作精神及沟通能力4.在项目组中有解决技术难题的能力或能起到项目组协理作用岗位工作描述1.能配合项目主管按时按质完成项目任务。2.在项目组内担当技术骨干作用或担当部门协理作用。3.首先理解项目中客户规定的“工具”,并能辅导组员掌握,并在整个项目中担当指导工作。4.担当事业部内或公司安排的技术培训任务。5.能担任详细设计工作。3.高级软件工程师岗位能力规定录年龄范围:学历要求:本科4.项目主管岗位能力规定录用员工条件年龄范围:28岁以上学历要求:本科以上或专科并有计算机相关技术证书专业要求:计算机及相关专业工作经历要求:1.从事日本软件编程的工作经历超过三年2.有项目主管、组长经历两年以上3.通过公司内部试用期日语水平:1.相当一级2.二级以上证书技术水平:1.熟悉各类数据库2.熟悉各种计算机开发语言3.熟悉特定的开发工具能力要求:1.具备较强的学习能力,具有进取心2.工作积极主动,有责任心,有良好的品质意识3.具有上下沟通的能力4.具有项目组与项目组之间的合作意识和整体意识。岗位工作描述1.项目开始前的准备,培训计划制定、环境构成、体制及人员安排2.项目开发标准的实施3.整个项目过程的控制,进度管理4.项目QA管理,负责项目总体测试工作5.项目后期的文档整理,维护对应计划及安排,项目总结,项目成员能力评价6.保密计划和质量计划等(特殊要求的项目)的制定、实施7.组织解决技术方面重大问题和及时应对的处理。4.项目主管岗位能力规定录年龄范围:学历要求:本科以上或5.项目经理岗位能力规定录用员工条件年龄范围:
28岁以上学历要求:本科以上或专科并有计算机相关技术证书专业要求:计算机及相关专业工作经历要求:1.有项目经理经历两年以上2.同时有日本工作经验一年以上3.通过公司内部试用期日语水平:1.日语一级技术水平:1.熟悉各类数据库2.熟悉各种计算机开发语言3.熟悉特定的开发工具能力要求:1.具备较强的学习能力,具有进取心2.工作积极主动,有责任心,有良好的品质意识3.具有上下沟通的能力4.具有项目组与项目组之间的合作意识和整体意识5.能灵活安排好项目与项目之间的衔接及人员调度岗位工作描述1.项目开始前的准备,培训计划制定、环境构成、体制及人员安排2.项目开发标准的实施3.整个项目过程的控制,进度管理4.维护对应计划几安排,项目总结,项目成员能力评价5.保密计划和质量计划等(特殊要求的项目)的制定、实施6.组织解决技术方面重大问题和及时应对的处理7.能合理安排项目与项目之间的进度5.项目经理岗位能力规定录年龄范围:学历要求:本科以上或课程学习的内容与形式理论内容:基本原理、方法和技术形式:讲授、自学、讨论实践内容:构造一个应用系统(包括分析、设计、编码、测试)形式:分组合作、分阶段形成文档、编码、集成课程学习的内容与形式软件工程的主要内容软件工程的基本概念软件开发模型软件开发各阶段的任务、技术、方法传统方法、面向对象方法软件工程管理软件质量保证软件工程环境软件工程的主要内容软件工程的基本概念第一章绪论1.1软件与软件危机1.2软件工程学的范畴1.3传统软件工程和面向对象软件工程1.4软件工程的应用第一章绪论1.1软件与软件危机软件是信息化的核心,国民经济、国防建设、社会发展及人民生活都离不开软件。软件产业是增长最快的朝阳产业,是高投入/高产出、无污染、低能耗的绿色产业。软件产业关系到国家经济和文化安全,体现了国家综合实力,是决定21世纪国际竞争地位的战略性产业。软件工程(SoftwareEngineering)是在克服60年代末所出现“软件危机”的过程中逐渐形成与发展的。软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。1.1软件与软件危机软件是信息1.1软件与软件危机
软件工程的发展已经历了三个重要阶段:3、第三代软件工程—构件工程(软件复用)2、第二代软件工程—对象工程1、第一代软件工程—传统的软件工程注:软件工程发展阶段论没有统一定论60年代末到70年代为了克服“软件危机”(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。1.1软件与软件危机软件工程的发展已经历了三个重要阶段1.1软件与软件危机软件工程的发展已经历了三个重要阶段:3、第三代软件工程—构件工程(软件复用)2、第二代软件工程—对象工程1、第一代软件工程—传统的软件工程注:软件工程发展阶段论没有统一定论80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。1.1软件与软件危机软件工程的发展已经历了三个重要阶段:31.1软件与软件危机软件工程的发展已经历了三个重要阶段:3、第三代软件工程—构件工程(软件复用)2、第二代软件工程—对象工程1、第一代软件工程—传统的软件工程注:软件工程发展阶段论没有统一定论
90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。1.1软件与软件危机软件工程的发展已经历了三个重要阶段:3软件软件就是程序?×一定要纠正软件就是程序,开发软件就是编写程序的错误观念!
软件定义:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。程序的构成:面向过程的程序=算法+数据结构面向对象的程序=对象+消息面向构件的程序=构件+框架
软件软件就是程序?×一定要纠正软件就是程序,开发软件就是编写软件软件的简要定义:
软件=程序+数据+文档程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发及过程管理、维护和使用有关的图文材料程序、软件与软件产品:独唱—>>小合唱—>>合唱—>>万人大合唱|||简单程序较复杂程序软件软件软件的简要定义:软件=程序+数据+文档程序、软件与软件软件规模越来越大Windows95有1000万行代码Windows2000有5000万行代码Exchange2000和Windows2000开发人员结构Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人软件规模越来越大Windows95有1000万行软件开发的发展过程计算机应用发展软件数量多规模大软件成本高质量低个体化软件开发方法软件维护困难软件危机软件工程软件开发的发展过程计算机应用发展软件数量多规模大软件成本高质软件的特征软件是一种逻辑实体,不是物理实体,他具有抽象性软件不会磨损和老化软件主要是研制,生产是简单的拷贝软件成本昂贵,其开发方式至今尚未摆脱手工方式软件维护不同于硬件维修,易产生新的问题软件具有“复杂性”,其开发和运行常受到计算机系统的限制,即受环境影响大软件的特征软件是一种逻辑实体,不是物理实体,他具有抽象性软件的特征失效率时间硬件失效率曲线失效率时间实际曲线理想曲线软件失效率曲线软、硬件失效情况的对比
硬件失效率曲线,是一U型曲线(即浴盆曲线)。软件失效率曲线,它没有U型曲线的右半翼。因为软件不存在磨损和老化问题,然而存在退化问题。软件的特征失效率时间硬件失效率曲线失效率时间软件危机定义计算机软件的开发和维护过程所遇到的一系列严重问题表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势软件危机定义软件危机例证
IBM公司的OS/360,共约100万条指令,花费了5000个人年;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…”
1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序:
DO5I=1,3
误写为:DO5I=1.
3
1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。软件危机例证IBM公司的OS/360,共约100万条硬件/软件成本变化趋势
硬件
软件
100%0%195519701985硬件/软件成本变化趋势100%0%1955197019软件技术进步落后于需求增长软件技术进步落后于需求增长软件危机原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护软件危机原因软件危机解决途径组织管理系统工程项目管理方法技术措施软件开发技术与方法软件工具软件危机解决途径1.2软件工程学的范畴软件工程学指导计算机软件开发和维护的工程学科工程管理+开发技术1983年B.W.Boehm提出了软件工程的七条基本原理:用分阶段的是的生存周期计划严格管理;坚持进行阶段评审;严格实施的产品控制;采用现代程序技术;结果应能清楚地审查;开发小组的成员应该少而精;承认不断改进软件工程的必要性。1.2软件工程学的范畴软件工程学1.2软件工程学的范畴于1968年在联邦德国召开的北大西洋公约软件可靠性会议(NATO)上,首次提出“软件工程”的概念,提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。了解有关软件、软件生存期及软件工程过程等重要的概念,对掌握、学习和应用软件工程的方法、技术等对于计算机科学与技术专业的学生都是非常必要的。1.2软件工程学的范畴于1968年在联邦德国召开的北大西洋1.2软件工程学的范畴软件工程学软件开发技术软件工程管理软件开发方法学软件工具软件工程环境软件管理学软件经济学软件度量学1.2软件工程学的范畴软件工程学软件开发技术软件工程管理软软件工程层次图
该图展现了软件工程研究的内容及关注的焦点。
软件工程层次图
1.3传统软件工程和面向对象软件工程由于软件开发方法可分为三大类:面向过程的开发方法(传统的)面向对象的开发方法基于构件的开发方法相应地软件工程方法也分为三大类:面向过程的软件工程(传统的)面向对象的软件工程基于构件的软件工程1.3传统软件工程和面向对象软件工程由于软件开发方法可分传统软件工程传统的软件工也称为面向过程的软件开发方法,这类开发方法都典型地包含了分析、设计、实现、确认(测试)、演化(维护)等活动。典型的传统软件开发方法有:Jackson方法、结构化开发方法、原型化方法、HIPO法、IDEF法等。传统软件工程传统的软件工也称为面向过程的软件开发方法,这传统软件工程一、结构化开发方法(StructuredDevelopingMethod)是一种面向数据流的开发方法,是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。结构化方法总的指导思想是自顶向下、逐步求精,以数据流,数据的封闭性准则来逐层分解的,它的基本原则是功能的分解与抽象。
结构化方法强调结构的合理性。提出了一组提高软件结构质量的准则,如功能的分解与抽象、模块独立性、信息屏蔽等。传统软件工程一、结构化开发方法(StructuredDev传统软件工程
JACKSON方法是一种面向数据结构的设计方法。强调程序结构与问题结构相对应。
JACKSON方法由两部分构成:1、JSP(JacksonstructuredProgramming)(杰克逊结构程序设计)2、JSD(JacksonSystemDevelopment)二、Jackson方法传统软件工程JACKSON方法是一种面向数据结构的设计方
1.3传统软件工程和面向对象软件工程三、原型化方法(PrototypingMethod)
原型是软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。
原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,原型化方法又称速成原型法(RapidPrototyping)。强调的是软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。将维护和修改阶段的工作尽早进行,使用户验收提前,从而使软件产品更加适用。1.3传统软件工程和面向对象软件工程三、原型化方法(Pr传统软件工程四、HIPO法(HierarchyPlusInput—Process—Output)
HIPO法(HierarchyPlusInput—Process—Output),按功能层次结构分析法,74年由IBM公司推出的软件分析及设计方法,又称HIPO图。HIPO图是以功能、功能完备性准则逐层分解的。由直观目录表(H图),概要HIPO图,详细IPO图三部分组成。传统软件工程四、HIPO法(HierarchyPlusI面向对象软件工程OOSD(Object-OrientedSoftwareDevelopment)法这是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核心技术之一。
其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。面向对象软件工程OOSD(Object-Orient软件复用技术(基于构件的软件工程)“软件重用”或“软件复用”(SoftwareReuse)是指将已有的软件成分用于构造新的软件系统。该技术是提高软件生产率和质量,降低成本的有效方法。一、复用方式复用程序:包括目标代码和源代码的复用,可通过连接(Link)、绑定(Binding)、包含(include)等功能支持及对象链接及嵌入(OLE)技术实现。复用分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学课件:物流学导论
- 松原市长岭县2024年八年级上学期《数学》期中试题与参考答案
- 青岛市城阳区2023年八年级上学期《数学》期中试题与参考答案
- 《移动模架现浇箱梁》课件
- 《语文上册信客》课件
- 国际金融期权
- 校园春季安全
- 2024年房产二手市场买卖协议模板版B版
- 2024年度股权转让及收购框架合同带眉脚
- 劳动合同签的最低工资标准
- 学校数字化教育资源建设实施方案
- 创新人才认证(解决方案)考试题库(附答案)
- 2024年云天化集团有限责任公司校园招聘考试试题附答案
- 学前儿童 数学100道应用题
- 2022原发性肝癌诊疗指南之肝内胆管癌诊疗中国专家共识
- 文档目录模版(自动生成)
- 2024年精麻药品培训考试题题库及答案(完整版)
- 手术器械回收流程
- 30道计量员岗位常见面试问题含HR问题考察点及参考回答
- SL432-2008水利工程压力钢管制造安装及验收规范
- 2024年长沙民政职业技术学院单招职业技能测试题库及答案解析
评论
0/150
提交评论