第六章基于构件的软件工程
- 格式:ppt
- 大小:451.00 KB
- 文档页数:31


第一章绪论
什么是软件工程?
软件=程序+数据+文档
什么是软件危机?
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维
护过程中出现一系列严重问题的现象。
什么是软件工程?
采用工程化的原理和方法对软件进行计划开发和维护。
软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型
软件工程的发展时期:
(1) 传统软件工程或者经典软件工程:
开发过程:结构化分析一> 结构化设计一> 面向过程的编码一> 软件测试
(2) 面向对象软件工程
开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试
(3) 基于构件的软件工程:
以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:
领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构 件集成模型,,查找与集成构件
第二章生存周期
什么是软件生存周期?
计划阶段:需求分析,软件分析
开发阶段:软件设计,编码(测试)软件测试 维护阶段:运行维护
模型特点和使用场合
开发模型 特点 适用场合
瀑布模型 线性模型,每一阶段必须完成规定的文档 需求明确的的中、小型软件开 发
快速原型模
型 用户介入早,通过需求迭代完善用户的需求, 应用快速开发工具 需求模糊的小型软件开发
增量模型 每次迭代完成一个增量,可用于OO开发 容易开发的大型软件开发
螺旋模型 典型迭代模型,重视风险分析,可用于OO开 发 具有不确定性的大型软件开
发
构件集成模
型 软件开发与构件开发平行进行,主要用于OO
开发 领域工程、行业中的中型软件
开发 转换模型 形式化的需求规格说明书,自动的程序变换
系统 理想化模型,尚无成熟工具支 持
净室模型 形式化的增量开发模型,在洁净状态下实现
软件制作 开发团队熟悉形式化方法、中 小型软件开发
可行性研究
1. 经济可行性
2. 技术可行性
3. 运行可行性
实用软件工程第6章
在实用软件工程中,第 6 章往往涵盖了一些关键且重要的概念和方法。这一章可能会涉及到软件开发过程中的特定阶段、技术或者管理策略。
假设这一章的主题是“软件测试与质量保证”。
软件测试是软件开发中至关重要的环节,它的目的是发现软件中的缺陷和错误,以确保软件产品能够满足用户的需求和期望,并且能够在各种预期的环境中正常运行。软件测试并不仅仅是在软件开发完成后进行的一项活动,而是应该贯穿于整个软件开发的生命周期。
在软件测试中,有多种不同的测试类型。其中,单元测试是针对软件中的最小可测试单元,通常是函数或方法进行的测试。开发人员在编写代码的同时,就应该编写相应的单元测试用例,以确保每个单元的功能正确性。集成测试则是将多个模块组合在一起进行测试,检查它们之间的接口和交互是否正常。系统测试是在整个系统完成集成后进行的,包括对功能、性能、安全性等方面的测试。而验收测试则是由用户或客户参与,以确认软件是否满足他们的业务需求。
测试用例的设计是软件测试中的一个关键环节。好的测试用例应该具有较高的覆盖率,能够覆盖到各种可能的情况,包括正常情况和异常情况。等价类划分、边界值分析、因果图等都是常用的测试用例设计方法。等价类划分是将输入数据划分为若干个等价类,从每个等价类中选取一个代表性的数据进行测试。边界值分析则着重于输入和输出的边界值,因为在这些地方往往容易出现错误。因果图则用于分析输入条件之间的组合关系,从而设计出更全面的测试用例。
除了测试用例的设计,测试的执行和管理也非常重要。测试执行需要严格按照测试计划和测试用例进行,并且要对测试结果进行详细的记录和分析。如果发现了缺陷,需要及时进行报告和跟踪,确保缺陷得到修复。在测试过程中,还需要对测试环境进行有效的管理,确保测试环境与实际的生产环境尽可能相似,以提高测试结果的准确性和可靠性。
质量保证则是一个更广泛的概念,它不仅仅关注软件产品的质量,还包括软件开发过程的质量。质量保证的目标是通过建立和执行一系列的质量标准、流程和规范,确保软件开发过程的可控性和可重复性,从而提高软件产品的质量。质量保证活动包括过程审计、质量评估、质量培训等。通过过程审计,可以检查软件开发过程是否符合既定的流程和规范,及时发现和纠正过程中的问题。质量评估则是对软件产品的质量进行定期的评估和度量,以便及时发现质量问题并采取相应的改进措施。质量培训则是提高团队成员的质量意识和技能水平,从而更好地保证软件质量。
1 基于构件的软件开发研究
现今的软件开发已脱离了传统的手工作坊模式,更注重软件开发效率及软件产品质量的提高。要在软件开发中解决重复劳动的问题,可采取软件复用技术,以不断提高软件开发的质量及效率。而软件构件是当前支持软件产品复用的有效形式,是支持软件复用的核心技术。不断进展及成熟的软件构件技术为现今的软件开发提供了新的方法,也能有效地推进软件生产方式的变革,提高软件产品的质量及软件生产的效率。
1 基于构件的软件开发
基于构件的软件开发将现成的软件构件集成并构造成一个大型得软件系统,此方法可以快速组装系统,有效降低软件开发成本,提高软件系统的可维护性及灵活性,降低系统的维护费用。与传统的软件系统开发注重开发,而忽略可复用构件的存在这一做法不同,基于构件的软件系统开发更注重如何获得己经存在的构件,而不是开发,组装和集成现有的构件是基于构件的软件系统开发的主要着眼点。基于构件的软件系统开发的过程如下:(1)检索构件:检索构件的过程包括如何根据描述构件、创建构件库。领域工程师开发出新的应用构件,并用文档加以描述。通过领域分析、自行开发、逆向工程或者商业购买等途径来获得所需要的构件。(2)选择构件:从构件库中选择合适的构件,并验证构件的功能、接口等。(3)适配构件:修改或者定制所选择的构件来满足新的应用环境的系统需求,以便能与其他构件进行集成。(4)1 组合构件:将不同的构件集成和组装在一起。
2 检索构件
检索构件指的是从大量的构件所构成的构件库中找出合适的构件。目前互联XX上有许多专门的构件库,各个Web站点上也提供了构件的链接,但是不同的构件库有不同的组织和访问方式,从而造成了对各构件库中的构件访问困难,并且Web站点上链接的构件也无法用传统的检索引擎检索到。只有将XX络上的构件资源加以利用到构件系统的开发中,才能实现缩短软件开发周期,提高软件质量的目的。现今人们对软件需求愈加体现了个性化、多样性的特点,以往的多种功能单一软件包方式无法满足用户的需求,因此在基于构件的软件开发研究中,应在同意用户选择服务组合的基础上,同意在构件级别上对单一的服务进行功能集和界面等的定制,在服务定制的粒度上应该更细,也应该更具灵活性。基于构件的软件开发成功依赖于构件分类和检索技术。由于构件的信息量比较丰富,相互之间也缺乏很多相似性,构件之间缺乏有意义的联系,这给构件的分类带来了很多困难。目前有很多构件分类检索方法,从构件表示出发可分为人工智能方法、超文本方法和信息科学方法三类。而根据复杂度和检索效果的不同可以分为基于文本的、基于词法描述字的和基于规约的编码和检索。
软件工程第六章
在软件工程的广袤领域中,第六章往往聚焦于一些关键且核心的概念与实践。这一章,或许是关于软件设计原则与模式的深入探讨,或许是对软件测试策略与方法的详细阐述,又或许是围绕软件项目管理中的关键环节展开论述。
当我们谈论软件设计原则时,就不得不提及“单一职责原则”。这个原则主张一个类或模块应该仅有一个引起它变化的原因。想象一下,假如一个类承担了过多不同类型的职责,那么当其中一项职责发生改变时,就可能会对整个类的稳定性产生影响,从而引发一系列不必要的修改和潜在的错误。这就好比一个人同时要兼顾多个完全不同的工作,很容易顾此失彼,导致工作质量下降。
“开闭原则”也是重要的设计原则之一。它表明软件实体(如类、模块、函数等)应该对扩展开放,对修改关闭。简单来说,就是在不修改现有代码的基础上,能够通过添加新的代码来实现新的功能或扩展系统的行为。这使得软件具有更好的可维护性和可扩展性,避免了因为频繁修改现有代码而引入新的错误。
设计模式在软件工程中起着举足轻重的作用。例如,“工厂模式”常用于创建对象,将对象的创建和使用分离,提高了代码的灵活性和可维护性。当我们需要根据不同的条件创建不同类型的对象时,工厂模式可以帮助我们轻松地实现这一需求,而无需在每次创建对象时都编写复杂的条件判断代码。 再来说说软件测试。在第六章中,可能会详细介绍各种测试类型,如单元测试、集成测试、系统测试和验收测试。单元测试是针对软件中的最小可测试单元(通常是函数或方法)进行的测试,确保每个单元的功能正确无误。集成测试则着重于检验各个模块之间的接口是否正常工作,是否能够协同完成特定的功能。
系统测试则是从整个系统的角度出发,对软件的功能、性能、兼容性等方面进行全面的测试。而验收测试则是由用户或客户参与,以确定软件是否满足他们的需求和期望。
在软件测试中,测试用例的设计至关重要。好的测试用例应该具有较高的覆盖率,能够有效地发现潜在的问题。同时,测试用例还应该易于维护和更新,以适应软件的不断变化。