《现代软件工程教学学习教案.pptx》由会员分享,可在线阅读,更多相关《现代软件工程教学学习教案.pptx(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、现代软件工程现代软件工程(run jin n chn)教学教学第一页,共45页。从软件(runjin)到软件(runjin)工程:进入一个新的境界-1生命周期:软件(runjin)工程的基本思路-2技术与方法:软件(runjin)工程的基本过程-3软件(runjin)企业的现代软件(runjin)工程实践-4第一章第一章 现代现代(xindi)软件工程概述软件工程概述第1页/共45页第二页,共45页。第一第一(dy)部分部分 现代软件工程的基本概念现代软件工程的基本概念第三章软件工程的技术与方法面向(minxin)过程的分析和设计方法-3.1面向(minxin)数据的分析和设计方法-3.2面向
2、(minxin)对象的分析和设计方法-3.3软件工程的工具和环境-3.4第2页/共45页第三页,共45页。l l软件开发方法是软件工程的一个组成部分,在软件工软件开发方法是软件工程的一个组成部分,在软件工程早期,是软件工程的核心内容程早期,是软件工程的核心内容l l软件开发方法主要指:软件开发方法主要指:l l开发步骤(每一步相应的目标、要求和结果)开发步骤(每一步相应的目标、要求和结果)l l开发工具和技术(采用的分析和设计工具和技术)开发工具和技术(采用的分析和设计工具和技术)l l开发的结果与形式(使用的文档和符号)开发的结果与形式(使用的文档和符号)l l开发过程和方案的评价标准开发过
3、程和方案的评价标准l l软件开发方法的提出软件开发方法的提出(tch)(tch)和逐步完善,是软件从和逐步完善,是软件从作坊到作坊到“工程化工程化”生产的重要转变生产的重要转变l l传统软件工程经历了以下一些开发方法的演变:传统软件工程经历了以下一些开发方法的演变:l l面向过程的分析和设计方法面向过程的分析和设计方法l l面向数据的分析和设计方法面向数据的分析和设计方法l l面向对象的分析和设计方法面向对象的分析和设计方法第3页/共45页第四页,共45页。3.1面向过程的分析(fnx)和设计方法结构化程序的特征:控制结构仅由顺序、选择和重复(或称为迭代)等结构复合而成;可以自底向上地逐步抽象
4、,最终抽象成一个函数型结点;每个结点(控制流程图中的一个结点)都有单一入口与单一的出口,从出口到入口,都存在一条经过该结点的路径。所以(suy),结构化程序的编写,是抽象问题的逐步展开过程,结构化程序的阅读,是问题的逐步抽象的过程 l结构化程序设计倡导的原则:l遵行结构化程序设计的约定;l保持良好的程序书写风格;l按照一定的书写格式(g shi)(如:缩进、排列、注解等)。第4页/共45页第五页,共45页。结构化分析与设计的来源:结构化程序设计结构化程序设计的一个直接的研究结果,是要开发“模块化(函数过程)”的系统,从而导致面向过程的系统分析、设计方法的产生。模块化系统设计:模块化的主要思想,
5、是对整个系统进行分解,分解成若干功能独立、能分别设计、编程和测试的模块,程序员可分工完成;开发一个模块,并不需要知道其他模块的内部结构和编程细节;模块之间的接口应尽量简洁、明确,模块应尽可能彼此隔离。对模块的要求:具有相对独立性,对系统的修改可限制在对个别(gbi)模块的修改上,而不会影响系统的其他模块、也不会影响系统的质量;具有可读性,每个模块的含义、职责是明确的、接口关系是清晰的、从而降低了系统的复杂性,阅读和理解都比较方便;具有易验证性,每个模块的正确实现,可以保证系统的正确。模块化程序设计研究“内聚与偶合度”问题,有7种内聚和7种偶合。3.1面向过程的分析和设计(shj)方法第5页/共
6、45页第六页,共45页。程序的模块化,很自然的导致对系统结构的结构化要求:系统结构是指:系统内各组成要素之间的相互(xingh)联系、相互(xingh)作用的框架。结构化方法就是:强调系统结构的合理性。结构化设计方法的原则是:分解和抽样;模块的独立性;信息屏蔽等。针对系统不同阶段,结构化方法有:结构化设计结构化编程结构化测试等3.1面向过程的分析(fnx)和设计方法第6页/共45页第七页,共45页。Parnas方法方法 最早的软件开发方法是由最早的软件开发方法是由D.Parnas在在1972年提出的。由于当时年提出的。由于当时软件在可维护性和可靠性方面存在着严重问题,因此软件在可维护性和可靠性
7、方面存在着严重问题,因此Parnas提出的提出的方法是针对这两个问题的。方法是针对这两个问题的。首先,首先,Parnas提出了信息隐蔽原则提出了信息隐蔽原则:在概要设计时列出将来可在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可
8、靠性。的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。Yourdon方法方法 1978年,年,E.Yourdon和和L.L.Constan-tine提出了结构化方法,提出了结构化方法,即即SASD方法,也可称为面向功能的软件开发方法或面向数据流的方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。软件开发方法。1979年年Tom DeMarco对此方法作了进一步的完善。对此方法作了进一步的完善。Yourdon方法是方法是80年代使用最广泛的软件开发方法。它首先用年代使用最广泛的软件开发方法。它首先用结构化分析(结构化分析(SA)对软件进行需求分析,然后用结构化设计)对软件进
9、行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程()方法进行总体设计,最后是结构化编程(SP)。这一方法)。这一方法不仅开发步骤明确,不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出相辅相成,一气呵成,而且给出了两类典型的软件结构(变换型和事务型),便于了两类典型的软件结构(变换型和事务型),便于(biny)参照,参照,使软件开发的成功率大大提高,从而深受软件开发人员的青睐。使软件开发的成功率大大提高,从而深受软件开发人员的青睐。3.1面向过程的分析(fnx)和设计方法第7页/共45页第八页,共45页。传统软件工程把软件的生命周期定义为6个阶段:问题定义与可
10、行性研究、需求分析、软件设计、编码、测试、运行与维护问题定义与可行性研究是指系统分析员通过对系统实际(shj)用户、使用管理部门、相关部门及人员进行的实际(shj)调查,搞清楚“问题”的背景、目的是什么?然后,据此提出关于“问题”的性质、工程目标、规模、相关联系等项目的基本情况,进行可行性分析,编制开发计划。在问题定义和分析阶段,结构化分析方法为系统分析人员,给出了一组帮助分析以产生功能规约的原理和技术。这组技术最早是从IBM的输入-加工-输出(IPO)开始、以后发展为层次IPO(HIPO),是80年代最流行的方法。3.1面向过程(guchng)的分析和设计方法第8页/共45页第九页,共45页
11、。结构化分析的主要技术有:数据流图和控制流图技术:层次方框图、Warnier图、IPO图数据字典结构化语言PDL(过程设计语言)判定表和判定树等结构化分析的步骤是:分析当前情况,做出反映当前物理模型的数据流图;推导出等价的逻辑模型的数据流图;设计新的逻辑系统,生成数据字典和基元描述;建立人机接口界面,提出可供选择的目标系统的物理模型数据流图;确定各种方案的成本和风险,据此对各种方案进行分析;选择一种方案;建立完整(wnzhng)的需求规约。3.1面向(minxin)过程的分析和设计方法第9页/共45页第十页,共45页。层次化模型(mxng)结构图3.1面向过程的分析和设计(shj)方法第10页
12、/共45页第十一页,共45页。描述工具:结构化英语描述工具:结构化英语由简单的陈述句,判断语句由简单的陈述句,判断语句(yj)(yj),循环语句,循环语句(yj)(yj)复合而成。复合而成。可使用可使用IFENDIFIFENDIF、DOCASEENDCASEDOCASEENDCASE、DOWHILEENDDODOWHILEENDDO等等关键字。关键字。IF customer does more than$50,000 buesiness THEN IF the customer wasnt in debt to us the last 3 months THEN discount is 15%
13、ELSE(was in debt to us)IF customer has been with us for more than 20 years THEN discount is 10%ELSE(20 year OR less)SO discount is 5%ELSE(customer dose$50,000 OR less)SO discount is nil3.1面向过程(guchng)的分析和设计方法第11页/共45页第十二页,共45页。描述工具:决策树描述工具:决策树用图形方式(树型)描述加工用图形方式(树型)描述加工(jigng)(jigng)逻辑。通常用来描述逻辑。通常用来描
14、述根据不同条件及其取值来选择的处理过程。根据不同条件及其取值来选择的处理过程。3.1面向过程的分析(fnx)和设计方法第12页/共45页第十三页,共45页。判断(pndun)表变量表判断(pndun)表3.1面向过程的分析和设计(shj)方法第13页/共45页第十四页,共45页。算法算法(sunf)(sunf)描述语言方法描述语言方法流程图流程图伪码伪码3.1面向(minxin)过程的分析和设计方法第14页/共45页第十五页,共45页。软件设计包括概要设计和详细设计二个阶段:在概要设计(总体设计)阶段,开发人员要回答需求分析中获得的系统目标,如何去实现,这个问题。(1)概要设计要体现对需求的完
15、整实现;(2)概要设计要保证与需求的一致性;(3)概要设计能够达到向需求的反向可追踪;(4)概要设计关注对系统结构设计的逻辑性、合理性和可扩展性;传统软件工程提出了很多设计方法,最主要的的面向(minxin)结构的设计方法结构设计(SD)等。在详细设计阶段,是对概要设计进行细化,回答如何具体实现系统目标的问题。详细设计是面向(minxin)具体程序编码,重点是编码规范。传统软件工程开发了HIPO(层次图加输入/输出处理)、结构图、PDL(过程设计语言)等工具。3.1面向过程的分析和设计(shj)方法第15页/共45页第十六页,共45页。结构化设计给出一组帮助设计人员在模块层次上区分设计质量的原
16、理与技术,它通常与结构化分析衔接起来使用。结构化设计以数据流图为基础,得到软件模块结构结构化设计方法(fngf)适用于变换型和事务型结构的目标系统在整个设计过程中,从程序的结构出发,利用模块结构图表达程序模块之间的关系构成模块结构图的主要成分有:模块调用和数据(参数)结构化设计的主要步骤是:评审和细化数据流图确定数据流图的类型把数据流图映射到软件模块结构,设计出模块结构的上层基于数据流图逐步分解高层模块,设计中下层模块对软件模块结构进行优化,得到更为合理的软件结构描述模块接口3.1面向过程的分析和设计(shj)方法第16页/共45页第十七页,共45页。1.Jackson方法1975年,M.A.
17、Jackson提出了一类至今仍广泛使用的软件开发方法。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用(yngyng)中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。Jackson方法有时也称为面向数据结构的软件设计方法。2.Warnier方法1974年,J.D.Warnier提出的软件开发方法与Jackson方法类似。差别有三点:一是它们使用的图形工具不同,分别使用Warnier图和Jackson图;另一个差别是使用的伪码不同;最主要的差别是在构造程序框架时
18、,Warnier方法仅考虑输入数据结构,而Jackson方法不仅考虑输入数据结构,而且还考虑输出数据结构。3.1面向过程的分析(fnx)和设计方法第17页/共45页第十八页,共45页。面向过程的系统分析和设计面向过程的系统分析和设计(shj)(shj)的例子的例子业务需求描述:业务需求描述:开发一个银行开发一个银行(ynhng)(ynhng)的活期存取款业务的处理的活期存取款业务的处理系统:系统:储户将填好的存储户将填好的存/取款单和存折交给银行取款单和存折交给银行(ynhng)(ynhng)工作人员,然后由系统作以下处理;工作人员,然后由系统作以下处理;(1)(1)业务分类处理:系统首先根据
19、储户所填的存业务分类处理:系统首先根据储户所填的存/取取款单,确定本次业务的性质,并将存款单,确定本次业务的性质,并将存/取款单和存取款单和存折交下一步处理;折交下一步处理;(2)(2)存款处理:系统将存款单上的存款金额分别记存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;后将存折还给储户;(3)(3)取款处理:系统将取款单上的取款金额分别记取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。后将现
20、金和存折还给储户。要求:绘制该系统的数据流图和软件结构图。要求:绘制该系统的数据流图和软件结构图。第18页/共45页第十九页,共45页。顶层(dncn)图面向面向(minxin)(minxin)过程的系统分析和设计的例子过程的系统分析和设计的例子第19页/共45页第二十页,共45页。一层图面向过程面向过程(guchng)(guchng)的系统分析和设计的例子的系统分析和设计的例子第20页/共45页第二十一页,共45页。二层图面向面向(minxin)(minxin)过程的系统分析和设计的例子过程的系统分析和设计的例子第21页/共45页第二十二页,共45页。软件(runjin)结构图面向面向(mi
21、nxin)(minxin)过程的系统分析和设计的例子过程的系统分析和设计的例子第22页/共45页第二十三页,共45页。小结:小结:结构化方法的指导思想:结构化方法的指导思想:围绕围绕(wiro)(wiro)业务抽象和功能分解、以处理功能的实现,来业务抽象和功能分解、以处理功能的实现,来构造软件系统构造软件系统系统是一些功能的相互联系、相互作用而构成的系统是一些功能的相互联系、相互作用而构成的结构化方法的主要内容:结构化方法的主要内容:结构化分析(结构化分析(SASA)结构化设计(结构化设计(SDSD)结构化程序设计(结构化程序设计(SPSP)结构化方法的核心要点:结构化方法的核心要点:自定向下
22、自定向下逐步求精逐步求精单入单入/出口出口评价:评价:优点:简单实用、技术成熟、应用广泛优点:简单实用、技术成熟、应用广泛缺点:对大型复杂的项目、不适用,难于解决需求变化、维缺点:对大型复杂的项目、不适用,难于解决需求变化、维护复杂的项目、不利于软件复用护复杂的项目、不利于软件复用3.1面向过程的分析和设计(shj)方法第23页/共45页第二十四页,共45页。从面向过程,转换为面向数据面向数据的分析和设计方法,是面向结构方法的变形面向数据的重点,是面向数据结构,而不是数据流侧重点以分析信息流(信息流指信息内容和信息结构)为主。因此,面向数据的分析是从信息结构进行(jnxng)分析,产生数据结构
23、图,再在此基础上,进行(jnxng)需求分析,导出软件的结构面向数据流的设计方法的基本思路1、变换流2、事务流3、设计过程3.2面向数据(shj)的分析和设计方法第24页/共45页第二十五页,共45页。数据库系统设计数据库系统设计(shj)(shj)过程过程需求分析需求分析概念数据库设计概念数据库设计逻辑数据库设计逻辑数据库设计确定存储哪些数据,建立哪些应用,常用的操作及对象有哪些等确定存储哪些数据,建立哪些应用,常用的操作及对象有哪些等对需求分析所得到数据的更高层的抽象描述对需求分析所得到数据的更高层的抽象描述将概念模型所描述的数据映射为某个特定的将概念模型所描述的数据映射为某个特定的DBM
24、S模式数据模式数据物理数据库设计物理数据库设计第25页/共45页第二十六页,共45页。概念数据库设计概念数据库设计(shj)(shj)过程过程局部E-R模式确定公共实体类型合并两个局部 E-R模式检查并消除冲突全全全全局局局局E E E E|R R R R模模模模式式式式设设设设计计计计还有未合并的局部模式?全局E-R模式优化无有第26页/共45页第二十七页,共45页。概念数据库设计概念数据库设计(shj)(shj)过程过程合并实体类型消除冗余属性消除冗余联系全全全全局局局局E E E E|R R R R模模模模式式式式优优优优化化化化全局E-R模式逻辑数据库设计第27页/共45页第二十八页,
25、共45页。概念数据库设计概念数据库设计(shj)(shj)过程过程实例:为医院建实例:为医院建E-RE-R图,包括病人和医生,病人有病历图,包括病人和医生,病人有病历(bngl)(bngl)记录记录病人病人医生医生门诊记录门诊记录姓名姓名 保险号保险号 身份证号身份证号治疗治疗姓名姓名专长专长病历病历名称名称日期日期结果结果第28页/共45页第二十九页,共45页。E-RE-R模型向关系模型向关系(gunx)(gunx)模式的转换模式的转换第29页/共45页第三十页,共45页。E-RE-R模型模型(mxng)(mxng)向关系模式的转换向关系模式的转换实体实体(sht)(sht)关系关系属性属性
26、 关系的属性关系的属性第30页/共45页第三十一页,共45页。3.3面向对象的分析(fnx)和设计方法一、发展概述一、发展概述面向对象并非是一个新的概念,实际上它已有面向对象并非是一个新的概念,实际上它已有3030多多年的历史。寻其根源可追溯到年的历史。寻其根源可追溯到6060年代的挪威,当时年代的挪威,当时挪威计算中心的挪威计算中心的KristenNygaardKristenNygaard和和Ole-JohanDahlOle-JohanDahl开发了一种称作开发了一种称作Simula67Simula67的语言。的语言。Simula67Simula67首次引首次引入了类、协同程序和子类的概念,
27、这很象今天的面入了类、协同程序和子类的概念,这很象今天的面向对象语言。向对象语言。7070年代中期年代中期(zhngq)(zhngq),XeroxPaloAltoXeroxPaloAlto研究中心的研究中心的研究人员设计了研究人员设计了SmalltalkSmalltalk语言,该语言的每个元素语言,该语言的每个元素都被当作一个对象来实现,其程序设计环境及相关都被当作一个对象来实现,其程序设计环境及相关的各个方面都是面向对象的。的各个方面都是面向对象的。第31页/共45页第三十二页,共45页。l l但是,面向对象的推广很慢。例如:但是,面向对象的推广很慢。例如:SamlltalkSamlltal
28、k的成果直到的成果直到19811981年年8 8月因月因ByteByte杂志的介绍才为外界所知,许多软件开发杂志的介绍才为外界所知,许多软件开发人员了解人员了解SamlltalkSamlltalk时,都把它看作是一个窗口系统,而不是时,都把它看作是一个窗口系统,而不是程序设计技术的一次革命。程序设计技术的一次革命。l l8080年代,年代,C C成为很受欢迎的程序设计语言,它不仅可用在微成为很受欢迎的程序设计语言,它不仅可用在微机上,还可用在多种结构的系统和环境中。机上,还可用在多种结构的系统和环境中。8080年代早期,年代早期,AT&TAT&T贝尔实验室的贝尔实验室的BjarneStrous
29、trupBjarneStroustrup把把C C语言扩展为支持语言扩展为支持(zhch)(zhch)面向对象程序设计的面向对象程序设计的C+C+。在。在C+C+中,程序员可以中,程序员可以在其熟悉的语言环境下学习掌握面向对象的程序设计技术,在其熟悉的语言环境下学习掌握面向对象的程序设计技术,而不必去探究一种新的语言和环境。而不必去探究一种新的语言和环境。3.3面向对象的分析和设计(shj)方法第32页/共45页第三十三页,共45页。二、研究领域二、研究领域目前国内外关于面向对象的研究领域主要在以目前国内外关于面向对象的研究领域主要在以下几个方面:下几个方面:1.1.理论:包括方法、面向对象设
30、计的本质理论:包括方法、面向对象设计的本质(bnzh)(bnzh)以及语义模型的研究。以及语义模型的研究。2.2.语言:包括现有面向对象的程序设计语言的语言:包括现有面向对象的程序设计语言的研究、设计新的面向对象的程序语言,将面研究、设计新的面向对象的程序语言,将面向对象的设计思想引入其它语言(如向对象的设计思想引入其它语言(如AdaAda,PrologProlog,LispLisp,C C,PascalPascal,FoxproFoxpro等)等)3.3.实现:包括体系结构的支撑、编译与解释、实现:包括体系结构的支撑、编译与解释、其它特殊技术等。其它特殊技术等。4.4.环境:包括面向对象的软
31、件开发环境的设计环境:包括面向对象的软件开发环境的设计与实现。与实现。3.3面向对象的分析和设计(shj)方法第33页/共45页第三十四页,共45页。5.重用:为了实现重用,需要研究对象的规格说明等。6.原型:面向对象的设计方法如何用于实现快速原型。7.应用:将面向对象的设计方法用于商业、教育及科学等实际问题的处理(chl)中。8.其它方面:将面向对象的设计方法用到数据库、操作系统、知识工程、人工智能、自然语言处理(chl)等其它领域。3.3面向对象的分析和设计(shj)方法第34页/共45页第三十五页,共45页。三、方法要点:三、方法要点:出发点和基本原则是尽可能地模拟人类出发点和基本原则是
32、尽可能地模拟人类(rnli)(rnli)的思维的思维习惯习惯使问题描述空间与计算机的解空间尽可能保持一致。使问题描述空间与计算机的解空间尽可能保持一致。面向对象方法的要点是:面向对象方法的要点是:(1 1)客观世界是由对象组成的、简单对象可以组合成)客观世界是由对象组成的、简单对象可以组合成更复杂的对象。更复杂的对象。(2 2)所有的对象都可以归为类,每个类都定义了一组)所有的对象都可以归为类,每个类都定义了一组数据和方法。数据是对象的静态属性、方法是对象数据和方法。数据是对象的静态属性、方法是对象可执行的操作,既类能提供的服务。可执行的操作,既类能提供的服务。(3 3)按照子类、父类的关系,
33、可以把若干个类组成一)按照子类、父类的关系,可以把若干个类组成一个层次结构的系统,下层的类具有继承上层类的特个层次结构的系统,下层的类具有继承上层类的特性。性。(4 4)对象之间只能通过传递信息进行通信。)对象之间只能通过传递信息进行通信。3.3面向对象的分析和设计(shj)方法第35页/共45页第三十六页,共45页。四、特点:四、特点:已经形成了面向对象的开发方法:已经形成了面向对象的开发方法:面向对象分析(面向对象分析(OOAOOA)面向对象设计(面向对象设计(OODOOD)面向对象程序设计(面向对象程序设计(OOPOOP)软件开发阶段比较模糊。通常在分析、设计与软件开发阶段比较模糊。通常
34、在分析、设计与实现阶段进行多次迭代实现阶段进行多次迭代对象与功能对象与功能(gngnng)(gngnng)相比,更易于被人们理相比,更易于被人们理解、接受和掌握解、接受和掌握定义更稳定、修改更容易定义更稳定、修改更容易主要方法有:主要方法有:Coad/YourdonCoad/YourdonBoochBoochOMTOMTOOSEOOSE9090年代提出了年代提出了UMLUML3.3面向对象的分析和设计(shj)方法第36页/共45页第三十七页,共45页。面向对象面向对象传统技术传统技术方法过程、函数或子例程实例变量数据消息过程或参数调用类抽象数据类型继承无类似技术调用处于系统控制之下调用处于程
35、序员控制之下面向对象与传统(chuntng)方法的比较第37页/共45页第三十八页,共45页。3.4软件工程(runjinnchn)的工具和环境工具(按功能分):工具(按功能分):1 1、软件开发工具、软件开发工具需求分析工具需求分析工具设计工具设计工具测试工具测试工具2 2、软件维护工具、软件维护工具版本控制版本控制文档分析文档分析逆向工程逆向工程再工程再工程3 3、软件管理与支持、软件管理与支持(zhch)(zhch)项目管理项目管理开发信息库开发信息库配置管理配置管理软件评价软件评价第38页/共45页第三十九页,共45页。3.4软件工程(runjinnchn)的工具和环境按解决的问题分类
36、按解决的问题分类程序设计程序设计(chnxshj)(chnxshj)环境环境系统合成环境系统合成环境项目管理环境项目管理环境按现有的软件开发环境的演变趋向分类按现有的软件开发环境的演变趋向分类以语言为中心的环境以语言为中心的环境面向结构的环境面向结构的环境工具箱环境工具箱环境基于方法的环境基于方法的环境按集成化程度划分按集成化程度划分第一代第一代第二代第二代第三代第三代第39页/共45页第四十页,共45页。3.4软件工程的工具(gngj)和环境环境:环境:计算机辅助软件工程(计算机辅助软件工程(ComputerAidedComputerAidedSoftwareEngineeringSoftw
37、areEngineering,CASECASE)CASECASE的集成机制包括:的集成机制包括:数据集成数据集成工具间可交换数据工具间可交换数据界面集成界面集成工具具有相同的界面风格和交互工具具有相同的界面风格和交互方式方式控制集成控制集成工具激活后能控制其他工具的操工具激活后能控制其他工具的操作作过程集成过程集成系统嵌入了有关软件过程的知识系统嵌入了有关软件过程的知识(zhshi)(zhshi),根据软件过程模型,根据软件过程模型辅助用户启动各种软件开发辅助用户启动各种软件开发活动活动平台集成平台集成工具运行在相同的硬件工具运行在相同的硬件/软件操作软件操作系统下系统下第40页/共45页第四
38、十一页,共45页。3.4软件工程(runjinnchn)的工具和环境CASECASE工具的四个发展阶段:工具的四个发展阶段:8080年代年代软件自动化工具软件自动化工具“孤立孤立”发展,重点是自动生成,发展,重点是自动生成,如:文档自动生成、报表自动生成等;如:文档自动生成、报表自动生成等;8080中期中期引入系统信息中心库(引入系统信息中心库(RepositoryRepository),孤立的信),孤立的信息有了交互环境,推动了分析、设计等上息有了交互环境,推动了分析、设计等上游阶段游阶段 开发工具的一体化,既:上游工具的集成;开发工具的一体化,既:上游工具的集成;8080后期后期应用程序开
39、发和维护自动化工具与项目管理工具应用程序开发和维护自动化工具与项目管理工具的结合;的结合;9090年代年代确定了确定了“统一使用开发支持工具、实现统一使用开发支持工具、实现(shxin)(shxin)软件软件开发开发全过程的自动化全过程的自动化”的目标,展开了全面的的目标,展开了全面的攻关:攻关:信息一致性:引入信息一致性:引入“百科全书(百科全书(EncyclopediaEncyclopedia)的概念;)的概念;结构可视性:图形开发工具结构可视性:图形开发工具软件工程化:引入人工智能(软件工程化:引入人工智能(AIAI)工具)工具第41页/共45页第四十二页,共45页。3.4软件工程(ru
40、njinnchn)的工具和环境软件开发环境的参考模型(软件开发环境的参考模型(ECMAECMA,9090年初提出):年初提出):数据存储服务数据存储服务用于命名和管理实体,建立它们之间的联用于命名和管理实体,建立它们之间的联系,通常由对象管理系统实现;系,通常由对象管理系统实现;数据集成服务数据集成服务扩展扩展(kuzhn)(kuzhn)了数据存储服务,包括:版本管了数据存储服务,包括:版本管理、理、配置管理、查询服务、状态控制、配置管理、查询服务、状态控制、数据交数据交换等服务,以适应于软换等服务,以适应于软件开发;件开发;任务管理服务任务管理服务完成任务定义、任务执行、事务恢复、事完成任务
41、定义、任务执行、事务恢复、事件监视、角色管理以及任务历史信件监视、角色管理以及任务历史信息管理息管理等工作;等工作;信息服务信息服务提供软件工具与软件环境间的通信服务,提供软件工具与软件环境间的通信服务,包括:消息传递、工具注册;包括:消息传递、工具注册;用户界面服务用户界面服务支持用户界面的集成支持用户界面的集成国内国内CASECASE的例子的例子北大青鸟:数据集成北大青鸟:数据集成/界面集成界面集成/控制集成控制集成今后软件工程的发现:方法学今后软件工程的发现:方法学+CASE+CASE工具工具第42页/共45页第四十三页,共45页。3.4软件工程的工具(gngj)和环境计算机辅助开发方法(计算机辅助开发方法(CISCIS)第43页/共45页第四十四页,共45页。休息本章结束,谢谢大家!下章介绍:软件企业的现代软件工程(runjinnchn)实践第44页/共45页第四十五页,共45页。