软件技术基础知识之软件工程课件



《软件技术基础知识之软件工程课件》由会员分享,可在线阅读,更多相关《软件技术基础知识之软件工程课件(169页珍藏版)》请在装配图网上搜索。
1、,,,,,,,,,,,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,*,软件技术基础,--,软件工程,计算机软件基础之一,,,软件技术基础--软件工程计算机软件基础之一,1,第三部分 软件工程,目的与要求,讲课内容与学时,参考资料,,,第三部分 软件工程目的与要求,2,目的与要求,学习、掌握和了解软件工程的概念,掌握软件工程的方法和软件开发的过程,初步了解对软件开发质量的监控和管理,,,目的与要求学习、掌握和了解软件工程的概念,3,讲课内容与学时,软件工程的基本概念(2),软件开发方法与工作模型(2),结构化开发方法概述(2),小结与习题(2)
2、,,,讲课内容与学时软件工程的基本概念(2),4,教科书、参考书,孙淑霞、肖阳春等编,,2000,,《,软件技术基础,》,,成都理工大学,黄迪明编,,1998,,,《,软件技术基础,》,,电子科技大学出版社,郑人杰,软件工程与软件工程管理,讲座,国际标准,ISO 8631<,信息处理,--,程序构造及其表示法的约定,>,国家标准,GB8566-88<,软件开发规范,>,CMM,软件成熟度模型,,,教科书、参考书孙淑霞、肖阳春等编,2000 《软件技术基础》,5,第三部分 软件工程,软件工程的基本概念,软件开发方法与工作模型,结构化开发方法概述,习题,,,,第三部分 软件工程软件工程的基本概
3、念,6,1 软件工程的基本概念,1.1,软件工程学的形成和发展,1.2,软件工程学研究的内容,1.3,软件与软件生命周期,1.4,软件工程基本原则,,,,1 软件工程的基本概念1.1 软件工程学的形成和发展,7,1.1 软件工程学的形成和发展,软件工程学是在克服,60,年代末所出现的“软件危机”(,software crisis,)的过程中逐渐形成与发展起来的,而所谓“软件危机”是在软件的规模越来越大,复杂度不断增加,软件需求量不断增大的情况下出现的,由于软件开发过程是一种高密度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要,所以“软件危机”便产生了,,,1.1 软件工程学的
4、形成和发展软件工程学是在克服60年代末,8,软件工程的发展,计算机软件发展至今经历了三个不同的发展时期:,程序设计时期(,20,世纪,50,年代,——60,年代),软件时期(,20,世纪,60,年代中期,——70,年代),软件工程时期(,20,世纪,70,年代,——,现在),,,软件工程的发展计算机软件发展至今经历了三个不同的发展时期:,9,发展,程序设计语言,(Programming),机器语言,汇编语言,ALGOL60,FORTRAN,COBOL,BASIC,软件,(Software) 1960,程序,文档,数据,软件危机引出软件工程,(Software Engineering),软
5、件开发工程化,1968 NATO,软件开发阶段与瀑布模型,软件工程标准,,,发展程序设计语言 (Programming),10,焦点,目标,少资源、高效益,在人力投入、开发期、成本、质量诸方面求得最佳,风险,需求:不明与变更,人员流动,软件知识产权保护,不存在绝对无缺陷的软件产品,,,焦点目标,11,成功的标志,如期完成,预算内完成,达到质量要求(需求和希望),,,成功的标志如期完成,12,软件业与制造业的差异,,,,,,,,,,,|,,设计,,||,,,生产,,||,运 输,||,仓 储,| |,功能度,…..,制造业,,大量,,,,,|,,设计(开发),,||,,,生产,
6、,||,运输,||,仓储,||,功能度,…..,软件业,,,,,,大量,,,软件业与制造业的差异 |设计|| 生产,13,软件的特点,软件是一种逻辑实体,具有抽象性,这个特点使它与其他工程对象有着明显的差异,人们可以把它记录在纸上、内存和磁盘、光盘上,但却无法看到软件本身的形态,必须通过观察、分析、思考、判断,才能了解它的功能、性能等特性,软件没有明显的制造过程,一旦研制开发成功,就可以大量拷贝同一内容的副本,所以对软件的质量控制,必须着重在软件开发方面下工夫,软件在使用过程中,没有磨损、老化的问题,软件在生存周期后期不会因为磨损而老化,但会为了适应硬件、环境以及需求的变化而
7、进行修改,而这些修改又不可避免地引入错误,导致软件失效率升高,从而使得软件退化,当修改的成本变得难以接受时,软件就被抛弃,软件对硬件和环境有着不同程度的依赖性,这导致了软件移植的问题,,,软件的特点软件是一种逻辑实体,具有抽象性,14,软件的特点 (cont.),软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低,软件是复杂的,而且以后会更加复杂,软件是人类有史以来生产的复杂度最高的工业产品,软件涉及人类社会的各行各业、方方面面,软件开发常常涉及其他领域的专门知识,这对软件工程师提出了很高的要求,软件的成本相当昂贵,软件开发需要投入大量、高强度的脑力劳动,成本非常高,风险也大,现在软件
8、的开销已大大超过了硬件的开销,软件工作牵涉到很多社会因素,许多软件的开发和运行涉及机构、体制和管理方式等问题,还会涉及到人们的观念和心理,这些人的因素,常常成为软件开发的困难所在,直接影响到项目的成败,,,软件的特点 (cont.)软件的开发至今尚未完全摆脱手工作坊,15,软件危机 (software crisis),软件危机是指计算机软件开发和维护过程中所遇到的一系列严重问题,软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜,它主要包含两个方面的问题:,如何开发软件,以满足不断增长,日趋复杂的需求,——,软件产品质量低劣,甚至开发
9、过程就夭折,如何维护数量不断膨胀的软件产品,——,软件生产率低,不能满足需要,,,软件危机 (software crisis)软件危机是指计算,16,软件危机的表现,对软件开发成本和进度的估计常常不准确,开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见,用户对“已完成”系统不满意的现象经常发生,软件产品的质量往往靠不住,,Bug,一大堆,,Patch,一个接一个,软件的可维护程度非常之低,软件通常没有适当的文档资料,软件的成本不断提高,软件开发生产率的提高赶不上硬件的发展和人们需求的增长,,,软件危机的表现对软件开发成本和进度的估计常常不准确,开发成本,17,产生软件危机的原因,由于
10、软件本身的特点,管理和控制软件开发过程相当困难,而且软件维护较难,软件是一种高智力活动,由复杂的逻辑、复杂的运算和复杂的关联等构成,由于对软件开发与软件维护的不正确方法,产生了软件危机,软件规模越来越大,功能越来越强,导致软件结构非常复杂,忽视软件开发前期的需求分析,开发过程没有统一的、规范的方法论的指导,文档资料不齐全,忽视人与人的交流,忽视测试阶段的工作,提交用户的软件质量差,轻视软件的维护;等等,,,产生软件危机的原因由于软件本身的特点,管理和控制软件开发过程,18,对软件看法的转变,早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧,现在人们普遍认为优秀的程序除了功能正确
11、,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充,,,对软件看法的转变早期那些被认为是优秀的程序常常很难被别人看懂,19,软件的定义,软件,(software),是计算机系统中与硬件,(hardware),相互依存的另一部分,它包括:,程序,(program)——,是按照事先设计的功能和性能要求执行的指令序列,相关数据,(data)——,是程序能正常操纵信息的数据结构,说明文档,(document)——,是与程序开发维护和使用有关的各种图文资料,,,软件的定义软件(software)是计算机系统中与硬件(ha,20,软件工程,(software engineering),提出,1968
12、,年秋季,,NATO,(北约)的科技委员会召集了近,50,名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程这个概念。,软件工程的定义,软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。,,,软件工程(software engineering)提出,21,1 软件工程的基本概念,1.1,软件工程学的形成和发展,1.2,软件工程学研究的内容,1.3,软件与软件生命周期,1.4,软件工程基本原则,,,,1 软件工程的基本概念1.1 软件工程学的形成和发展,22,1.2 软件工程学研究的内容
13、,“软件工程”是软件工程人员寻求解决出现的软件危机而产生的,它的核心思想是,采用工程化的原理与方法对软件进行计划、开发和维护,,,1.2 软件工程学研究的内容“软件工程”是软件工程人员寻求,23,,,质量,成本,,,效率,工具,方法,过程,,产品需求,产品,,,资源,,,,管理 !?!,高效率、低成本地,开发高质量的软件!,软件工程面对的挑战,,,质量成本效率工具方法过程产品需求产品资源管理 !?!高效率、,24,软件工程两个方面的内容,软件开发技术,软件开发方法学,软件工具,软件工程环境,软件项目管理,软件度量,项目估算,进度控制,人员组织,配置管理,项目计划等,,,软件工程两个方面的内容
14、软件开发技术软件项目管理,25,1 软件工程的基本概念,1.1,软件工程学的形成和发展,1.2,软件工程学研究的内容,1.3,软件与软件生命周期,1.4,软件工程基本原则,,,,1 软件工程的基本概念1.1 软件工程学的形成和发展,26,1.3 软件与软件生命周期,关于软件,要纠正那种认为“软件就是程序,开发软件就是编写程序”的错误观念,软件应是“程序以及开发、使用和维护程序所需的所有文档”。具体来说是由:,应用程序:面向用户,为解决各种特定问题编写的程序,系统程序:面向硬件,为应用程序服务的程序,面向用户的文档:如何使用和维护应用程序的资料,面向开发者的文档:记载了应用程序的设计和开
15、发过程,以便进一步开发和修改,,,1.3 软件与软件生命周期关于软件,27,1.3 软件与软件生命周期,软件生命周期(,SLC,),软件生命周期是指从软件开发到报废的全过程,也称软件生存期,软件生命周期的描述模型,瀑布模型(经典),快速原型模型,软件生命周期的三个时期,定义时期,开发时期,维护时期,,,1.3 软件与软件生命周期软件生命周期(SLC),28,瀑布模型,问题定义,可行性研究,需求分析,设 计,编 程,测 试,运行与维护,目标与范围说明书,可行性论证报告,需求说明书,设计文档,程序,测试报告,维护报告,计划时期,开发时期,运行时期,,,瀑布模型问题定义可行性研究需求分析
16、设 计编 程测 试运,29,快速原型模型,需求分析,原型开发,原型评定,目标系统设计,目标系统实现,用户意见,,,快速原型模型需求分析原型开发原型评定目标系统设计目标系统实现,30,软件开发流程,,,,,,用 户,初始需求,交付的软件,,运行,维护,分析定义,需求规格说明,设计,设计文档,实现,测试,源程序,,,软件开发流程用 户初始需求交付的软件运行分析定义需求规格说,31,软件生命周期——定义期,定义期,要为被开发的软件规定“做什么”,开发人员要确定,软件将处理什么信息,软件的功能,软件的性能,建立什么样的接口,要考虑什么设计限制,软件开发成功的确认标准,,,软件生命周期——定义
17、期定义期,32,软件生命周期——定义期,定义期包括三个阶段的工作,系统分析,把软件要完成的工作与整个计算机系统的其他部分,如硬件,操作人员及数据库等应完成的工作区分开来,软件项目计划,确定软件开发总目标,进行风险分析,资源分配,成本估计,规定工作任务和进度安排,需求分析,更明确地确定软件做什么,给出所开发软件的功能,性能,用户接口,对数据流进行分析,给出功能说明,写出用户手册初稿,,,软件生命周期——定义期定义期包括三个阶段的工作,33,软件生命周期——开发期,开发期,着重解决所开发软件“怎么做”的问题,开发期要进行,设计数据结构,设计软件总体结构,实现软件的过程细节,将设计转换成程序语言,进
18、行测试,,,软件生命周期——开发期开发期,34,软件生命周期——开发期,开发期含有以下三个阶段,软件设计,把已经确定的软件需求转换成特定形式的设计表示,使其得以实现,程序编制,用某个编程语言表达软件设计时确定的处理过程算法,软件测试,对已编制的程序进行测试,以找出其中功能上、逻辑上和实现中的错误,,,软件生命周期——开发期开发期含有以下三个阶段,35,软件生命周期——维护期,运行维护期,着重解决因多种原因软件要做的变更,软件投入使用后,要对软件作变更的理由,开发期中存在的问题,当时未能发现和及时解决,适应变更了的软件运行环境,软件需进一步完善,用户需求较小的变化,,,软件生命周期——维护期运行
19、维护期,36,软件生存周期,软件生存期的三个时期有时也笼统地称为软件开发,为更清楚地表达生存期内各个阶段的工作和各阶段间的关系,可为生存期设计不同的范型,或称模型。如:,瀑布模型,螺旋模型,喷泉模型,,,软件生存周期软件生存期的三个时期有时也笼统地称为软件开发,37,软件生存周期方法学,软件工程采用的生存周期方法学就是,从时间角度对软件开发和维护的复杂问题进行分解,将软件的生存周期分为若干阶段,需求定义,软件设计,编程,测试,运行维护等,每个阶段有相对独立的任务,便于分工协作,使软件开发过程按有秩序能管理的方式组织起来,从而降低软件开发的难度,,,软件生存周期方法学软件工程采用的生存周期方法学
20、就是,38,软件生命周期的花费比例,,,软件生命周期的花费比例,39,1 软件工程的基本概念,1.1,软件工程学的形成和发展,1.2,软件工程学研究的内容,1.3,软件与软件生命周期,1.4,软件工程基本原则,,,,1 软件工程的基本概念1.1 软件工程学的形成和发展,40,1.4 软件工程基本原则,通用性和指导性,软件工程实践总结出的基本现象,稳定性,不会时时改变,不依赖于采用的技术、方法和工具,概括性,针对软件工程和软件产品特性的抽象描述,基础性,理解和采用它需有具体的方法和技术做补充,,,1.4 软件工程基本原则通用性和指导性,41,软件工程的原则,,,,,,原则,方法与技术,
21、方法学,工具,,Principle,Method & Technique,体现原则的途径和步骤,Methodology,方法和技术的组合,支持整个软件工程过程,Tools,支持方法、技术和方法学的软件,,,,软件工程的原则原则方法与技术方法学工具PrincipleMe,42,一般性原则,严格性与形式化,复杂性和分解,模块化,抽象性和细化,变更预见性,通用性与复用性,递增式,,,一般性原则严格性与形式化,43,软件质量管理原则,产品质量以满足用户需求为最高准则,质量第一,以人为本,质量与生产率,质量成本,密切与用户的联系,尽早排除缺陷,实施过程质量控制,,,软件质量管理原则产品质量以满足用户需求
22、为最高准则,44,文档编制原则,在文档标准基础上剪裁,注意读者对象,便于使用和查找,使用术语、概念不应有矛盾,描述的精确性,无多义性,专职人员与开发人员结合,独立性,,,文档编制原则在文档标准基础上剪裁,45,需求分析与定义原则,编制需求规格说明以前,必须十分明确要解决的问题,即应先明确需求,真正弄清需求,还应包括为什么这样定义,需求不清必将导致预算不准,总结产生错误的原因:,需求变更,遗漏重要需求,与用户交流不畅,需求分析不充分,需求规格说明质量低劣,发现需求规格说明中有问题,应立即着手解决,不可将其带入后续开发阶段,需求规格说明中不应含有待确定的部分,进行需求分析时不做设计,不应将需求分析
23、做什么与如何做混淆,,,需求分析与定义原则编制需求规格说明以前,必须十分明确要解决的,46,设计原则,重视需求向设计转化工作,必要时比较多个设计方案,设计应能和需求对应,保证每项需求均在设计中得到体现,设计文档是设计的成果,头脑中的设想不是设计,尽可能复用一切可复用的部分,设计应易于变更、易于维护、易于排错,优秀的设计出自优秀人才之手,,,设计原则重视需求向设计转化工作,必要时比较多个设计方案,47,编码原则,简明清晰,尽可能少用、甚至不用全局变量,程序执行速度不应优先于正确性的考虑,命名易记,充分注释,命名唯一,可追溯,注意常见的规律是:编码错误通常相对集中,,,编码原则简明清晰,48,管理
24、原则,大型复杂项目管理重于技术,人员不在多,而在精,计划指标应切合实际,不作不切实际的计划,注意收集、积累数据,不求一次估算能十分精确,但求不断调整,大型项目重视风险分析,项目进展快需分析原因,不可盲目乐观,项目完成以后,总结分析有益于积累经验,,,管理原则大型复杂项目管理重于技术,49,软件过程改进,质量依赖于过程,过程需要管理,软件过程,包括哪些过程,如何改进,能力成熟度水平:,CMM,五级,软件过程改进(,SPI,),,,软件过程改进质量依赖于过程,50,不成熟过程的特征,随意的,非强制性的,主要依赖于实践者,产品的功能、质量和进度常有冲突,引入新技术时的风险,质量难以预测,,,不成熟过
25、程的特征随意的,51,成熟过程的特征,工作按计划有序地进行,过程、规程、文档规范,有定义、文档化,易理解、易使用、可裁减,可持续改进,管理的可见性,产品和过程可度量、可预测,新技术可以及时得到有效应用,,,成熟过程的特征工作按计划有序地进行,52,CMU/SEI,,5,级,-,优化层,* 过程更改管理,* 技术更改管理,* 错误预防,,4,级,-,管理层,* 质量管理,* 过程量化管理,,3,级,-,定义层,*,同级评审,组间协作,* 软件产品工程,* 软件集成管理,培训计划,* 软件过程定义,* 软件过程要点,,2,级,-,可重复层,软件配置管理,软件质量保证,软件子合同管理,* 软件项目追
26、踪与监控,软件项目计划,需求管理,,1,级,-,初始层,软件过程成熟度模型的关键子过程域,能力成熟度模型,,,CMU/SEI5级-优化层4级-管理层3级-定义层2级-可重,53,第三部分 软件工程,软件工程的基本概念,软件开发方法与工作模型,结构化开发方法概述,习题,,,,,第三部分 软件工程软件工程的基本概念,54,2 软件开发方法与工作模型,2.1,结构化开发方法,2.2,原型化方法,2.3,面向对象的开发方法,,,,2 软件开发方法与工作模型2.1 结构化开发方法,55,2.1 结构化开发方法,结构化方法是现有软件开发方法中最成熟,应用最广泛的方法,结构化开发方法的主要特点是
27、快速,自然和方便,结构化程序设计的概念首先是从编写程序中使用转向(,GOTO,)语句引起的,GOTO,语句的过多使用使得程序结构混乱,容易出错,且出错后不易发现和更正,,,2.1 结构化开发方法结构化方法是现有软件开发方法中最成熟,56,结构化开发方法,结构化开发方法的出发点,为了保证程序设计的质量,使设计程序具有易读性、易理解性、通用性好,执行时具有较高的效率,结构化开发方法的基本要求,在详细设计阶段所有的模块只用三种基本控制结构,单入口、单出口和顺序,选择,循环,在设计过程中采用自顶向下逐步求精的设计方法,,,结构化开发方法结构化开发方法的出发点,57,结构化开发方法,结构化开发方法的组
28、成,70,年代初 结构化程序设计方法,SP,法,70,年代中 结构化设计方法,SD,法,70,年代末 结构化程序分析方法,SA,法,SA,,,SD,,,SP,法相互衔接,形成了一整套开发方法,若将,SA,,,SD,法结合起来,又称为结构化分析与设计技术(,SADT,技术),,,结构化开发方法结构化开发方法的组成,58,结构化方法的工作模型,瀑布模型(,Waterfall Model,)是结构化方法的工作模型,但从,80,年代开始,逐渐发现其不足:,软件开发过程是一个充满回朔过程,而瀑布模型将其分割为独立的几个阶段, 不能从本质上反映软件开发过程本身的规律,过分强调复审,并不能完全避免较为频繁的
29、变动,尽管如此,瀑布模型仍然是开发软件产品的一个行之有效的工程模型,,,结构化方法的工作模型瀑布模型(Waterfall Model,59,2 软件开发方法与工作模型,2.1,结构化开发方法,2.2,原型化方法,2.3,面向对象的开发方法,,,,2 软件开发方法与工作模型2.1 结构化开发方法,60,2.2 原型化方法,原型是软件开发过程中软件的一个早期可运行的版本,它反映了最终系统的部分重要特征,原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,原型化方法又称速成原型法(,Rapid Prototyping,),强调的是软件开发人员与用户的不断交互,通
30、过原型的演进不断适应用户任务改变的需求,将维护和修改阶段的工作尽早进行,使用户验收提前,从而使软件产品更加适用,,,2.2 原型化方法原型是软件开发过程中软件的一个早期可运行,61,原型化方法分类,原型化方法按运用原型的目的和方式的不同分为:,快速建立渐进原型(,RSP,法,,Rapid Sequential Prototyping,),该法建立的原型反映了系统的某些特征,让用户学习,有利于获得更加精确的需求说明书,后阶段的工作仍按照瀑布模型开发,快速建立需求规格原型(,RCP,法,,Rapid Cyclic Prototyping,),该法采用循环渐进的开发方式,对系统模型作连续精化,将系
31、统需要具备的性质逐步添加上去,直至所有性质全部满足,此时的原型模型也就是最终的产品,速成原型适合于开发“探索型”,“实验型”与“进化型”一类的软件系统,速成原型的工作模型是一个循环的模型,,,原型化方法分类原型化方法按运用原型的目的和方式的不同分为:,62,循环的速成原型工作模型,速成原型循环方式步骤:,快速分析,快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能),构造原型,在快速分析的基础上根据基本规定说明,忽略细节,只考虑主要特征,快速构造一个可运行的系统,它有三类原型:用户界面原型,功能原型,性能原型,运行和评价原型,用户试用原型并与开发者之间频繁交流,发现
32、问题,目的是验证原型的正确性,修正与改进,对原型进行修改,增删,,快速分析或修改,运行,构造,评价,原型,,,循环的速成原型工作模型速成原型循环方式步骤:快速分析或修改运,63,循环的速成原型工作模型,细化的速成原型工作模型,快速分析,确定初步规格说明,构造原型,运行,/,评价原型,原型完成否,要细部说明否,效果满意否,严格说明细部,整理原型提供文档,修正改进原型,N,N,Y,Y,Y,N,,,循环的速成原型工作模型细化的速成原型工作模型快速分析,确定初,64,2 软件开发方法与工作模型,2.1,结构化开发方法,2.2,原型化方法,2.3,面向对象的开发方法,,,,2 软件开发方法与工作模型
33、2.1 结构化开发方法,65,2.3 面向对象的开发方法,面向过程的开发方法,面向数据流设计,面向数据结构设计,面向对象的开发方法(,OOSD,),面向对象的分析(,OOA,),面向对象的设计(,OOD,),面向对象的程序设计(,OOP,),,,2.3 面向对象的开发方法面向过程的开发方法,66,面向过程的开发方法,早期的高级语言都是面向过程的,程序设计者必然要专注于:,程序对数据的处理过程,——,面向数据流设计,数据结构,——,面向数据结构设计,因此,由软件解决的问题通常用软件系统的,数据流图,或,数据结构,来表示,,,面向过程的开发方法早期的高级语言都是面向过程的,67,面向过程的开
34、发方法,数据流图,描述软件系统的数据从输入到输出的流程,适用于几乎所有顺序处理的软件,数据结构,描述软件系统的输入输出数据结构,适用于数据处理,尤其输入与输出数据结构相似的软件系统,,,面向过程的开发方法数据流图,68,面向对象的开发方法(OOSD),面向对象的开发方法(,OOSD,,,Object-Oriented Software Development,),根据稳定的对象建立系统模型,可很好地适应需要的变化,具有良好的可维护性、可扩充性和可重用性,是软件工程领域的一个研究重点,被誉为,90,年代软件的核心技术之一,,,面向对象的开发方法(OOSD)面向对象的开发方法(OOSD,,69,面
35、向对象的开发方法,——,基本思想,对问题领域进行自然的分割,以便接近人类通常思维的方式,建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程,以对象作为最基本的元素分析和解决问题的核心,,,面向对象的开发方法——基本思想对问题领域进行自然的分割,以便,70,面向对象的开发方法,——,组成,面向对象的开发方法的组成,面向对象的分析(,OOA,,,Object-Oriented Analysis,),面向对象的设计(,OOD,,,Object-Oriented,,Design,),面向对象的程序设计(,OOP,,,Object-Oriented,
36、,Programming,),OOP,是,OOSD,的基础,OOA,和,OOD,是应用,OOP,的基础,,,面向对象的开发方法——组成面向对象的开发方法的组成,71,面向对象的分析 (OOA),OOA,分析阶段将系统水平划分为五个层次,主体,类和对象,结构,属性,方法,OOA,的任务就是通过分析问题域,建立系统的概念模型,,,面向对象的分析 (OOA)OOA分析阶段将系统水平划分为五个,72,面向对象的分析 (OOA),OOA,提供了三种模型:,信息模型,——,定义构成系统的类和对象,它们的属性与操作,状态模型,——,描述系统的控制结构,即描述任何时刻对象的联系以及联系的变化,或称为时序,常用
37、状态图和事件追踪图来描述,处理模型,——,描述系统内部数据的传送和处理方法,面向对象的分析(,OOA,)和设计(,OOD,)就是把面向对象的方法应用到软件工程的分析和设计阶段,从而建立更加适应当今庞大、复杂且易变的系统的模型,,,面向对象的分析 (OOA)OOA提供了三种模型:,73,面向对象的设计 (OOD),在,OOA,建立的五个水平层次(主体、类和对象、结构、属性、方法)基础上,将系统结构在纵向上划分为:,问题部件,人机交互部件,任务管理部件,数据管理部件,,,面向对象的设计 (OOD)在OOA建立的五个水平层次(主体、,74,面向对象的设计 (OOD),OOD,法分为,概要设计,细化对
38、象行为,添加新对象,认定类,组类库,确定外部接口,主要数据结构,详细设计,加细对象描述,,,面向对象的设计 (OOD)OOD法分为,75,面向对象的程序设计 (OOP),使用面向对象的程序设计语言进行程序设计,如:,C++,,,Delphi,,,Ada,,,SmallTalk,,,Java,面向对象的定义:,面向对象,=,对象,+,类,+,继承,+,消息,如果一个软件系统是按照这样四个概念设计和实现的,则可以认为这个软件系统是面向对象的,,,面向对象的程序设计 (OOP)使用面向对象的程序设计语言进行,76,面向对象的程序设计 (OOP),,OOP,具有三个重要特征:,封装,封装是将数据和对这
39、些数据进行处理所需的各种操作连接在一个根下的技术,继承,继承是引用已经定义的各种类,并将它们扩充以满足新的功能的一种技术,多态性,多态性实质上就是同一个名字可以用于多种目的,,,面向对象的程序设计 (OOP) OOP具有三个重要特征:,77,面向过程与面向对象,传统的面向过程(函数)的编程方法,代码和数据是分开的,函数是最重要的,一个程序中的所有代码都应围绕这些函数来设计,面向对象编程方法,必须将代码与数据构造在一个程序块中,并且统一来管理,对象是最重要的,程序是围绕这些对象来设计的,函数是第二位的,用对象调用函数,而不是简单地将对象(数据)传递给函数,,,面向过程与面向对象传统的面向过程(函
40、数)的编程方法面向对象编,78,面向对象的基本概念,对象(Object),类(Class),继承(Inheritance),消息(Message),软件IC(Integrate Circuit),,,面向对象的基本概念对象(Object),79,面向对象的基本概念,对象(,Object,),是对客观存在的事物的描述,可以是事、物,或概念,对象是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体,用户不必知道对象行为的实现细节,只需根据对象提供的外部特征接口访问对象,对象的动作取决于发送给该对象的消息,消息通知对象要求完成某个功能。即,对象之间的通讯是以“做什么”的消息发送为契机的,并认
41、为接受消息的对象知道如何去做,消息激活对象的相应功能,“面向对象”的基本思想就是把要构造的系统表示为对象的集合,,,面向对象的基本概念对象(Object),80,面向对象的基本概念,类(,Class,),是一组具有相同数据结构和相同操作的对象的集合,在一个类中,每个对象都是类的实例,它们都可以使用类中提供的函数,类相当于,C,语言中的结构,或者说它是一种行为抽象数据类型,现实世界词汇中的每一个名词都表示一类对象,具有一组属性或行为特征,例如,一个好吃的苹果是苹果类中的一部分,同样也是水果类中的一部分,它也存在于食品这一大类中,若不使用类的概念,则每一个对象都需明确定义其所有的特征,若是使用类的
42、概念,则每一对象就只需定义它在大类中的特殊部分,对于类中共有的特性它可以继承,,,面向对象的基本概念类(Class),81,面向对象的基本概念,继承(,Inheritance,),是使用现存的定义作为基础,建立新定义的技术,继承性分为:,单重继承:一个子类只有一个父类,多重继承:一个子类可有多个父类,一个子类可以从它的基类那里继承所有的数据和操作,并扩充自己的数据和操作,基类抽象出共同特性,子类表达其差别,现存类定义,父类(基类),新类定义,子类(派生类),继承,,,,面向对象的基本概念继承(Inheritance)现存类定义父,82,面向对象的基本概念,消息(,Message,),对象之间的
43、联系可表示为对象间的消息传递,即对象间的通讯机制,当一个消息发送给某个对象时,包含要求接收信息的对象去执行某个功能的消息,从程序设计的角度来说消息类似于函数调用,消息是开发,Windows,应用程序用得最多的一个概念,我们程序所做的工作就是产生消息、传递消息、处理消息,Windows,正是通过消息来管理各种资源,并由此实现多任务功能,,,面向对象的基本概念消息(Message),83,面向对象的基本概念,软件,IC,(,Integrate Circuit,),由来:,程序常常涉及到频繁使用功能相同的模块,尽管这些模块对具体应用的实现细节可能有些不同,如何使用和组合这些模块,是构建可重用模块需要
44、解决的技术问题,类和继承的概念有助于程序员开发这种共同性,软件,IC,又称软件集成,它的思想是:,用一种集成机制将已经成熟的软件单元制成一个相对独立的实体,使它们不加改动或做很少改动就可用于新的软件系统中,从而减少重复劳动,提高生产率,“软件,IC”,是一种可重用模块,软件,IC,的特征:,模块性好,可靠性好,连接简单,封装性好,内部功能高效实现,具有清晰、简明的说明,类,——,充当了面向对象系统的构造单元,,,面向对象的基本概念软件IC(Integrate Circui,84,第三部分 软件工程,软件工程的基本概念,软件开发方法与工作模型,结构化开发方法概述,习题,,,,,,第三部分 软
45、件工程软件工程的基本概念,85,3 结构化开发方法概述,3.1 结构化分析方法,3.2 结构化设计方法,3.3 软件编码,3.4 软件测试,3.5 软件维护,,,,3 结构化开发方法概述3.1 结构化分析方法,86,3.1 结构化分析方法(SA),结构化分析方法是需求分析中最常用的方法之一,在进行需求分析(结构化分析)之前,需要先进行:,系统分析,实施计划报告,,,3.1 结构化分析方法(SA)结构化分析方法是需求分析中最常,87,系统分析,系统分析是制定软件项目计划的第一步,它决定了所开发软件的总目标,其任务包括:,确定所开发软件的总体要求和适用范围;,描述所开发软件与外界接口关系;,确
46、定所需的硬、软件支持;,对开发的进度和成本的估计;,分析系统的可行性;,确定所开发软件与原有软件的兼容性关系或其他关系;,确定所开发软件的性能,预计内部复杂性之间的折衷关系。,,,系统分析系统分析是制定软件项目计划的第一步,它决定了所开发软,88,系统分析,在确定以上各项时,常常要设想多种可能的方案,再根据需要从中进行比较选择,系统分析中对系统的可行性分析是十分重要的,这是此项目能否进行的关键,它包括以下方面:,技术可行性研究,必须明确现有的条件是否能满足开发软件所需的技术设备、用户的技术要求,开发时间是否合理等,经济可行性研究,对开发所需的经费和软件所带来的经济效益进行估计,社会可行性研究,
47、考虑所开发的软件项目是否涉及版权纠纷等法律问题,以及投入运行后对生产、管理或经营体制带来什么社会影响,,,系统分析在确定以上各项时,常常要设想多种可能的方案,再根据需,89,实施计划报告,在认真做好上述系统分析工作的基础上,要制定一个大致的实施计划,也就是编写一个实施计划报告,这个报告只是对实施方案进行粗略的描述,主要有四个方面的内容,开发进度,人员投入计划,人员组织,资源的利用,,,实施计划报告在认真做好上述系统分析工作的基础上,要制定一个大,90,实施计划报告,一个实施计划报告的提要实例:,软件开发项目名称,任务概述,负责单位(包括:管理机构和任务的分解),开发人员组织(包括:组织结构和任
48、务的分配),人员投入计划(包括:总估计和各阶段投入计划),其他资源利用(包括:设备和资料),开发进度(包括:阶段的划分,各阶段的评审时间和提供开发进展报告时间),项目完成检验(包括:检验机构,检验方式和交付产品的清单),编写的实施计划报告只是对开发项目的初步设想,但也要反映出实施方案的主要内容,,,实施计划报告一个实施计划报告的提要实例:,91,实施计划报告,在软件开发项目实施计划得到批准以后,便可开始工作,这时不要急于进行软件设计,而是要弄清楚用户的需要,需求分析做得不好,用户和软件开发人员未能全面地、精确地理解和表达这些需求,致使一些隐藏的问题随着开发工作的进行带给后面阶段,最终将给开发工
49、作造成不良的影响,,,,,,计划,需求分析,设计,编码,测试,需求分析中发生的问题对后期开发工作造成的影响示意图,,,实施计划报告在软件开发项目实施计划得到批准以后,便可开始工作,92,结构化分析方法,需求分析最常用的方法是结构化分析方法(Structured Analysis),它适用于分析大型数据处理系统,该方法简明,易于掌握,与设计阶段的结构化方法相衔接,将取得良好的设计效果,,,结构化分析方法需求分析最常用的方法是结构化分析方法(Stru,93,结构化分析方法的基本思想和步骤,结构化分析方法的基本思想是采用“分解”和“抽象”的基本手段,由顶向下逐层分解,具体步骤为:,理解当前的现状环境
50、,建立当前系统的“具体模型”,从当前系统的“具体模型”抽象出当前系统的“逻辑模型”,分析目标系统与当前系统在逻辑上的差别,建立目标系统的逻辑模型,为了对目标系统做完整的描述,还需要考虑人机界面和其他一些问题,,,结构化分析方法的基本思想和步骤结构化分析方法的基本思想是采用,94,结构化分析方法的描述方法,数据流图(DFD)和分层的数据流图,数据词典(DD, Data Dictionary),加工说明,,,结构化分析方法的描述方法数据流图(DFD)和分层的数据流图,95,(1),数据流图,(DFD, Data Flow Diagram),数据流图以图形的方式表示系统中的信息变换和传递的过程,数据
51、流图的基本符号只有下列四种:,数据流,加工,数据存储,数据源点及数据终点,画,DFD,图的方法:由外向里,自顶而下,逐层分解,,,,,(1)数据流图(DFD, Data Flow Diagram,96,数据流图的基本符号,数据流,数据流是具有名字且具有流向的数据,用标有名字的箭头表示。每条数据流表示在这条流水线上有一组由一定成分组成的数据流动。,加工,表示对数据进行的加工或变换。数据流图中以标有名字的圆圈代表加工,名字表示加工的含义,指向加工的数据流是该加工的输入数据,离开加工数据流是该加工的输出数据。,数据存储,文件是数据存储形式的统称,它表示了数据流在加工过程中需要存储或查找的信息。文件以
52、标有名字的粗线表示。,数据源点及数据终点,标明数据处理过程的数据来源和数据去向,数据流图中已有名的方框表示,它只起到注释作用,补充说明系统与其他外界环境的联系。,,,数据流图的基本符号数据流,97,银行取款过程的数据流图,,储户,,,核查,,登录,,付款,取款信息,付款信息,取款信息,存折,取款单,无余拒付,帐卡,存折,,,银行取款过程的数据流图核查登录付款取款信息付款信息取款信息存,98,分层的数据流图DFD,画分层,DFD,图的基本原则,(,注:,DFD,图不是流程图,),数据守恒与数据封闭原则,加工的输入输出数据流是否匹配,应成对出现,即每一个加工既有输入数据流又有输出数据流,加工分解的
53、原则,画分层,DFD,图时,各子系统的分解速度应大致均匀,保持同步扩展,一般情况下,每次每一加工可以分解为,2,~,4,个加工,至多不超过,7,~,8,个,以免阅读时增加理解的困难,在上层时分解的速度可略快,越到下层功能越具体,分解速度应放慢,,,分层的数据流图DFD画分层DFD图的基本原则 (注:DFD图,99,分层的数据流图DFD,画分层,DFD,图的基本原则,(cont.),子图与父图的“平衡”,在分层图中,每一层都是它下层的父图,同时又是它上层的子图,父子平衡是父图与子图在输入数据与输出数据上应保持信息的连续性,合理使用文件,为了优先考虑重要问题,允许将某些细节推迟到下层,DFD,图处
54、理,除出错处理外,对文件的处理也常常推迟,具体地说,上层,DFD,图往往只画出少量文件,借以保持画面整洁,越往下层,画出的文件越多,,,分层的数据流图DFD画分层DFD图的基本原则(cont.),100,(2),数据词典,(DD, Data Dictionary),数据词典是,SA,方法的主要工具之一,它与数据流图共同构成系统的逻辑模型,没有数据流图则数据词典难发挥作用,没有数据词典则数据流图就不严格,数据词典对数据流图中出现的所有数据元素给出逻辑定义,有了数据词典,使数据流程图上的数据流加工和文件得到确切的解释,,,(2)数据词典(DD, Data Dictionary)数据,101,数据词
55、典的条目,数据词典中有四种类型的条目,数据流(由多少个数据项组成),文件,数据项(单项数据),加工,,,数据词典的条目数据词典中有四种类型的条目,102,数据流条目,数据流条目给出某个数据流的定义,它通常是列出该数据流的定义,在进行数据流定义时,可采用如下符号:,“,=”——,表示定义为,“,+”——,表示“与”,“,[|]”——,表示“或”,即选择括号中的某一项,“,{}”——,表示“重复”,即括号中的项要重复若干次,重复次数的上下限也可以在括号中标出,“()”,——,表示“可选”,,,数据流条目数据流条目给出某个数据流的定义,它通常是列出该数据,103,文件条目,文件条目给出某个文件的定义
56、,同数据流一样,文件的定义通常是列出文件记录的组成数据项,文件条目还可以指出文件的组织方式,如按单号递增次序排列等,,,文件条目文件条目给出某个文件的定义,104,数据项条目,数据项条目给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围等,,,数据项条目数据项条目给出某个数据单项的定义,105,加工条目,加工条目又称小说明,对数据流图中的每一个不能再分解的基本加工都必须有一个小说明给出这个加工的精确描述,,,加工条目加工条目又称小说明,106,(3)加工说明,结构化语言(简单,易学,少二义性),判断树(描述一般组合条件,较清楚),判断表(用于较复杂的组合条件),,,(3)加工说明结构
57、化语言(简单,易学,少二义性),107,结构化语言 (结构化英语),结构化语言介于自然语言和形式语言之间的一种半形式语言,是描述基本加工条目中的加工说明的常用工具,是自然语言的一个受某些限制的子集,没有形式语言那么精确,严格,具有自然语言的简单,易懂的特点,结构化语言一般分为内,外两层,外层语法比较具体,外层语法描述操作的控制结构,如顺序,选择和循环等,内层语法比较灵活,内层语法根据系统的具体特点以及用户的接受能力来确定,通常采用有动词和宾语构成的祈使句,,,结构化语言 (结构化英语)结构化语言介于自然语言和形式语言之,108,结构化语言的例子,顺序结构,,MOVE,单科成绩,TO,学生单科成
58、绩表,选择结构,,IF,存货小于标准点,,DO,定货,,ELSE,(不小于标准点),,SET,标志,重复结构,,FOR,每一个学员号码,,PUT,学员成绩,,REPEAT,FROM,消息线,GET,下一个消息,,WRITE,消息正文,,WRITE,消息头和长度,,UNTIL,消息头和长度达到某种条件,,,结构化语言的例子顺序结构重复结构,109,判断树 (Decision Tree),判断树比判断表更直观,用它来描述具有多个条件的数据加工更容易被用户接受,树状的分支表示多种不同的条件,分支的端点表示该分支对应的条件要作的处理,新生录取系统,已达录取分数线,未达录取分数线,体检合格,——,录取,
59、体检不合格,——,转下一志愿学校,体检不合格,——,不录取,体检合格,——,转下一志愿学校,例:,,,判断树 (Decision Tree)判断树比判断表更直观新,110,判断表 (Decision Table),判断表由四部分组成,左上部分是决定这组条件的对象,右上部分列出各种可能的条件组合,左下部分列出所有的操作,右下部分说明在对应的条件组合下,某个操作是否要执行,,,1,2,3,4,条件,成绩在录取分数线上,是,是,否,否,体检结果合格,是,否,是,否,操作,录取,√,,,,转下一志愿学校,,√,√,,不录取,,,,√,,,判断表 (Decision Table)判断表由四部分组成1,1
60、11,3 结构化开发方法概述,3.1 结构化分析方法,3.2 结构化设计方法,3.3 软件编码,3.4 软件测试,3.5 软件维护,,,,3 结构化开发方法概述3.1 结构化分析方法,112,3.2 结构化设计方法,软件设计的任务是,将需求分析阶段获得的需求说明转换为计算机中可实现的系统,完成系统的结构设计,包括数据结构和程序结构,最后得到软件设计说明书,有代表性的设计方法有,结构设计方法,——,其设计是以数据流图为基础构成模块结构,数据结构(,JACKSON,)方法,——,其设计是以数据结构为基础建立模块结构,PARNAS,方法,——,以信息隐藏为原则建立模块结构,,,3.2 结构化设计
61、方法软件设计的任务是,113,结构化设计方法,结构化设计就是采用最佳的可能方法设计系统的各个组成部分,以及各成分之间的相互联系的技术,结构化设计是这样一个过程,它决定用哪些方法把哪些部分联系起来,才能解决好某个具有清楚定义的问题,,,结构化设计方法结构化设计就是采用最佳的可能方法设计系统的各个,114,软件设计,软件设计是软件开发的关键步骤,直接影响软件质量,分为两个阶段,总体设计,解决系统的模块结构,分解模块,确定系统的模块层次关系,详细设计,对系统中的每个模块的内部过程进行设计和描述,,,软件设计软件设计是软件开发的关键步骤,直接影响软件质量,115,(1) 总体设计,具体任务,划分模块,
62、确定模块功能,确定模块间的调用关系,确定模块间的界面,设计步骤,(,1,)分析系统,DFD,图的类型,将其转换为初始的模块结构图(,Structured Chart,,简称,SC,图),(,2,)按照“降低块间联系,提高块内联系”的设计总则修改、完善系统的模块图,写出模块的功能说明,,,(1) 总体设计具体任务,116,总体设计步骤,1——,分析系统,DFD,图,通常可把数据流图分为,转换处理型,——,采用转换分析,事务处理型,——,采用事务分析,SD,方法的任务是,按照,DFD,图的不同结构类型,分别采用转换分析和事务分析,从,DFD,图导出目标系统的模块结构,SC,图,,,总体设计步骤1—
63、—分析系统DFD图通常可把数据流图分为,117,数据流图——转换处理型,转换处理过程和所包含的数据流可分为,输入数据,——,输入流,信息由外部数据转换为内部形式进入系统,变换数据,——,转化流,在转换流中,对内部形式的信息进行一系列加工处理,得到内部形式的结果,输出数据,——,输出流,在输出流中,信息由内部形式的结果转换为外部形式数据流出系统,,输入,加工,,中心,加工,,输出,加工,输入信息,内部结果,内部数据,输出信息,,,数据流图——转换处理型转换处理过程和所包含的数据流可分为输入,118,数据流图——事务处理型,在事务处理中,输入数据流,——,事务流,加工,——,事务中心,若干平行数据
64、流,——,事务路径,当事务流中的事务送到事务中心后,事务中心分析每一事务,根据事务处理的特点和性质选择一个事务路径继续进行处理,,接收,,事务,分析,,动作,1,,动作,2,,动作,n,······,接收部分,事务中心,发送部分,,,数据流图——事务处理型在事务处理中接收事务动作1动作2动作n,119,转换处理型——转换分析,转换分析是系统结构设计的一种策略,使用转换分析技术可把转换型处理数据流图转换为初始的标准结构,根据软件结构的度量准则、模块化准则、模块独立性准则,修改完善软件结构图,从而得到结构良好的最终结构图,转换分析步骤为,确定数据流图的类型,确定输入流、转换流、输出流的流界(边界)
65、,进行一级分解,设计上层模块,进行二级分解,设计中下层模块,进一步细化,,,转换处理型——转换分析转换分析是系统结构设计的一种策略,120,转换处理与事务处理,通常一个大型软件系统是转换处理型结构和事务型结构的混合结构,所以,设计者常利用以转换分析为主,事务分析为辅的方式进行软件结构设计,当数据流图明显呈现出事务型特征时,就要用事务型分析技术,从相应的数据流程图导出标准构图,其步骤与转换分析相同,,,转换处理与事务处理通常一个大型软件系统是转换处理型结构和事务,121,总体设计步骤,2——,完善系统模块图,具体应从以下方面改进:,尽可能建立功能模块,消除重复功能,模块的作用范围应是控制范围的子
66、集,作用范围,——,包括模块本身及其所有下属模块,控制范围,——,是指判断所涉及到的模块,模块的大小恰当,总行数在,10,~,100,,最好在,30,~,60,模块的扇入扇出数不宜太多(除服务性模块外),一个模块直接控制下属模块的个数称为该模块的扇出数,一个模块的上级模块个数称为扇入数,扇入高可增加模块的利用率,扇出低可减少模块调用和控制的复杂度,,,总体设计步骤2——完善系统模块图具体应从以下方面改进:,122,(2) 详细设计,对系统中的每个模块的内部过程进行设计和描述,常用的描述方法有:,流程图(程序框图),N-S,图(方框图),PAD,图,PDL,语言,UML,,,(2) 详细设计对系统中的每个模块的内部过程进行设计和描述,123,流程图 (程序框图),表达算法简明直观,易于学习掌握,是一种常用的详细设计工具,符号名,使用图形,意 义,端点符,,表示流程图的开始或结束,输入,/,输出符,,表示数据的输入,/,输出,处理符,,表示对数据的处理,特定处理符,,表示调用子程序等,,,,,,,流程图 (程序框图)表达算法简明直观,易于学习掌握,是一种常,124,流程图 (程序框图
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题党课讲稿:以高质量党建保障国有企业高质量发展
- 廉政党课讲稿材料:坚决打好反腐败斗争攻坚战持久战总体战涵养风清气正的政治生态
- 在新录用选调生公务员座谈会上和基层单位调研座谈会上的发言材料
- 总工会关于2025年维护劳动领域政治安全的工作汇报材料
- 基层党建工作交流研讨会上的讲话发言材料
- 粮食和物资储备学习教育工作部署会上的讲话发言材料
- 市工业园区、市直机关单位、市纪委监委2025年工作计划
- 检察院政治部关于2025年工作计划
- 办公室主任2025年现实表现材料
- 2025年~村农村保洁员规范管理工作方案
- 在深入贯彻中央8项规定精神学习教育工作部署会议上的讲话发言材料4篇
- 开展深入贯彻规定精神学习教育动员部署会上的讲话发言材料3篇
- 在司法党组中心学习组学习会上的发言材料
- 国企党委关于推动基层党建与生产经营深度融合工作情况的报告材料
- 副书记在2025年工作务虚会上的发言材料2篇