您好,欢迎访问三七文档
软件工程中的高级课题李宣东南京大学计算机科学与技术系AdvancedTopicsinSE•Computer-AidedSoftwareEngineering•FormalMethods•SoftwareReuse•Reengineering•Component-BasedSoftwareEngineering•CleanroomSoftwareEngineering•Client/ServerSoftwareEngineering•WebEngineeringComputer-AidedSoftwareEngineering(CASE)•支持软件开发生存期的集成化工具、技术和方法CASEConcepts•CASE技术(technology):为软件开发、维护和项目管理提供自动化、工程化准则的软件技术;包括自动化结构化方法和自动化工具。•CASE工具(tool):支持特定的软件生存期活动自动化(至少部分自动化)的软件工具。•CASE系统(system):能共享一个公用的用户界面、并且在公用的计算机环境中运行的一组集成化的CASE工具。•CASE工具箱(toolkit):一组集成化的CASE工具,能够使得软件生存期的一个阶段或一个特殊的软件工作的活动自动化(或部分自动化)。CASEConcepts•CASE工作台(workbench):一组集成化的CASE工具,能够使得整个软件生存自动化(或提供自动化辅助),包括分析、设计、编码和测试。•CASE方法学(methodology):一种“可自动化”的方法学,它对软件开发和维护的所有方面或者某些方面定义了严格的、类似工程的研究途径。•CASE方法学伙伴(methodologycompanior):一组CASE工具,这些工具按某一种特殊的CASE方法学自动完成一些任务,并且自动产生由该方法学所要求的文档和其他交付的任务。•CASE工作站(workstation):为CASE工具提供操作平台的一个一层、二层或三层的硬件系统体系结构。CASEMethodology由于CASE工具对整个信息系统或软件工程开发过程的全面支持,引起了系统开发方法学领域从技术、方法到观念、认知体系的变化,方法学领域也受到了冲击和挑战,从而使CASE演变成了一种独特的、以自动化支持环境为基础的系统开发方法学。•结构化方法•面向对象方法•快速原型方法CASEIntegration集成化CASE环境的总体结构•界面集成层:用户界面开发工具包,界面协议。•工具集成层:触发执行机制,通信机制。•信息集成层:信息与CASE工具的集成,信息与信息的集成。•软件工程信息库:元模型,软件开发信息InterfaceIntegrationCASE界面集成层•界面集成层主要由一个标准化的用户界面开发工具包以及各CASE工具共同遵守的界面协议组成。•界面集成有两方面的目标:(1)开发人员可在统一而不是分离的界面框架下操作所有的CASE工具,完成软件开发过程。(2)所有CASE工具的用户界面和操作风格必须协调一致。ToolIntegrationCASE工具集成层工具集成层负责管理所有的CASE工具并协调它们的行为。在多任务操作系统中,开发人员可以同时启动多个CASE工具,此时工具集成层必须在CASE工具之间进行信息传递和同步。协调CASE工具与软件工程信息库之间的信息流,实施安全检查和审计功能。此外,工具集成层往往还能够收集各CASE工具使用情况的统计信息以便改进软件开发方法,提高环境运行效率。ToolIntegration为了完成上述任务,工具集成层至少要具备执行机制和通信机制:•执行机制是指环境能够根据某些软件开发触发CASE工具的启动。此外,执行机制还包含对CASE工具执行过程的其他控制手段,例如挂起、恢复和终止。•通信机制是指环境能够在CASE工具之间传递信息。•大型软件开发项目的众多开发人员往往是在网络环境下协同完成开发任务的。这就对集成化环境提出了新的要求。为此,工具集成层还应提供分布机制,以便上述基本的执行和通信机制以用户透明的方式在网络分布环境下运行。InformationIntegrationCASE信息集成层信息集成包含两方面的内容:•信息与CASE工具的集成:主要表现为CASE工具实现了对软件工程信息库中信息对象的某些操作功能。•信息与信息之间的集成:指集成环境必须具有表示、维护信息项并利用信息项之间的关系完成相应动作的能力,如一致性和完整性检查,确定信息项修改的影响传播范围等。CASERepository软件工程信息库•软件工程信息库是集成化环境的核心,它为整个CASE环境提供支持。•软件工程信息库要完成对软件信息项的存储、查询、修改与删除等操作,所以它必须具备普通数据库管理系统的大部分基础功能。CASERepository除此之外,为了给集成化环境提供良好的信息服务,软件工程信息库还要支持:•信息完整性:当信息项目修改或删除时,自动检查信息项之间的一致性,自动完成对相关信息项的必要调整。•信息与工具的集成:控制CASE工具和开发人员对信息项的访问,提供友好的信息服务。•信息与信息的集成:建立并维护信息项之间的关系。•开发方法学的引导与强制:利用元模型引导并强制开发人员按照既定的开发方法学实施软件开发。•文档规范化:根据元模型对各类文档的定义,统一生成软件文档。•版本控制与配置管理:存储软件信息项的各种版本,为开发人员生成阶段性成果或最终产品自动组合最新版本,并允许在测试过程中随时恢复旧版本。ImplementationofCASERepository软件工程信息库的实现考虑到软件开发过程中各类数据的纷繁复杂,仅按常规方法组织软件工程信息库是无法满足要求的。应该将软件信息项不论粒度大小均视为对象,信息库的结构组织为元模型,系统通过元模型管理机制实现各种功能。MetamodelinCASERepository软件工程信息库的元模型元模型是对各CASE工具生成的软件开发信息项的元级描述,主要内容为:•信息项的定义性描述,包括类型、属性、表示方法、生产者与消费者,等等。•在各种粒度级别上的信息项之间的关系和依赖性描述。可能的粒度级别有:数据流程图级、数据项级、代码段级。•软件设计规则。例如数据流程图的平衡规则,数据流程图中转换的输入、输出流与其相应过程的输入、输出参数的一致性规则。•软件开发过程的工作流程和事件的描述,包括开发阶段界定、里程碑定义、错误发生、需求变更,等等。MetamodelinCASERepository除上述内容之外,元模型还定义了软件信息的组织形式、CASE工具和软件开发人员访问信息项的途径、数据安全性和完整性控制方法以及为适应新的软件开发项目而对现有元模型进行扩充的方法。CASERepository除元模型外,软件工程信息库还应包含以下各方面的软件开发信息:•有关应用问题及问题领域的描述。•各类文档(需求说明,设计文档,源代码,测试方案与用例等)。•由软件开发方法学限定的规则与指导性原则。•项目规划、可用资源描述和开发历史信息。相对于元模型而言,以上各类信息为目标级信息对象。ImplementationofCASERepository软件工程信息库的建造过程可以借用传统的数据库管理系统提供的下述技术手段:•无冗余的信息储存•事物控制机制•安全机制•用户界面•开放性ImplementationofCASERepository软件工程信息库的许多高级功能是大多数商用数据库管理系统不能直接支持的:•复杂数据结构的存储•信息完整性检查•项目管理•版本控制与配置管理•需求追踪IndustryStandardforCASEIntegrationCSAE工具集成的工业标准•信息资源字典标准(InformationResourceDictionaryStandard,IRDS,ANSI338-1988)。IRDS最初是作为需求分析的数据字典标准而开发的。其主要特征是使用多级元模型并强调信息资源的协调管理,有助于在相关联的CASE工具之间建立信息通道。它支持CASE工具在不同的操作系统平台之间移植。•AthertonIDEC工具集成标准(ATIS)。ATIS已被CASEIntegrationStandardsCommitteeofSoftwareProductivityConsortium采纳。ATIS主要强调软件工程信息库的总体结构定义,支持配置管理、工具集成、数据安全性与跨平台移植。•公共ADA接口标准(CAIS)。CAIS侧重于ADA软件开发工具的集成,它为这些工具构成集成化环境定义了接口标准。•可移植的通用环境(PCTE)。PCTE是欧共体ESPRIT计划的一部分。它已被EuropenComputerManufacturerAssociation(ECMA)所接纳。TaxonomyofCASETools•Businessprocessengineeringtools•Processmodelingandmanagementtools•Projectplanningtools•Riskanalysistools•Projectmanagementtools•Requirementstracingtools•MetricsandmanagementtoolsTaxonomyofCASETools•Documentationtools•Systemsoftwaretools•Qualityassurancetools•Databasemanagementtools•Softwareconfigurationmanagementtools•Analysisanddesigntools•PRO/SIMtoolsTaxonomyofCASETools•Interfacedesignanddevelopmenttools•Prototypingtools•Programmingtools•Webdevelopmenttools•Integrationandtestingtools•Staticanalysistools•DynamicanalysistoolsTaxonomyofCASETools•Testmanagementtools•Client/servertestingtools•ReengineeringtoolsFormalMethods(形式化方法)•研究背景•定义•形式验证•模型检验提高系统可靠性•随着计算机应用的日益普及,今天我们已经很难承受计算机系统发生故障所带来的损失;•连续运行已成为现在许多计算机系统的关键需求,一旦发生故障,终止系统运行进行维护是不现实的;提高系统可靠性•测试(testing)或仿真(simulation)以运行系统(模型)为主要手段发现系统错误。•验证(Verification)建立系统模型,确认系统模型是否存在错误。•质量管理在系统开发过程中加强管理,防止可能出现的错误。提高可信度的途径•测试(testing)或仿真(simulation)无法回答系统一定没有错误这样一类问题•验证(Verification)可以从某一个角度回答系统一定没有错误这样一类问题,从而进一步提高我们对系统可靠性的可信度形式化方法•形式化方法是指为说明和验证复杂计算机系统所采用的基于数学的语言、技术和工具。•形式化方法不能确保系统的可靠性,但其可以通过揭示系统的不一致性、歧义性和不完备性来增加我们对系统的理解程度,从而提高我们对系统可靠性的可信度。形式验证•形式化方法包括:说明(specification)验证(verification)•形式验证包括:模型检验(modelchecking)推理验证(theoremproving)模型检验•模型检验是一种自动验证有穷状态系统的技术。•模型检验的基本思想是通过遍历系统模型的状态空间来检验系统模型是否满足给定的性质。模型检验•在模型检验中涉及两种形式说明语言:性质说明语言用于描述系统的性质;模型描述语言用于描述系统的模型。•模型检验技术用于检
本文标题:软件过程与质量
链接地址:https://www.777doc.com/doc-446606 .html