实时软件设计基础.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实时软件设计基础.ppt

第2讲 实时软件设计基础 目录 2.1 生命周期问题 2.2 软件设计概念 2.3 信息隐藏 2.4 面向对象 2.5 有限状态机 2.1 生命周期问题 与任何软件系统一样,在开发并发与实时系统时,也应该使用软件生命周期模型,这是分阶段开发软件的方法瀑布模型是使用最为广泛的软件生命周期模型。这部分将对瀑布模型进行概述。另外还会介绍其他一些软件生命周期模型。 1.需求分析和规范 使用瀑布模型的阶段,必须确认并分析用户的需求。用户的需求包括软件需求和系统需求。实时系统通常是较大的嵌入式系统的组成部分,所以确定系统需求分析和规范阶段的工作就很有可能要在确定软件需求分析和规划工作之前进行。 2.构架设计 在模型阶段中,系统从结构上分解为各个组成部分。并发实时系统与其他系统区分开的重要因素一个是这种系统将自身分解为多个并发任务,另一个是对系统在行为方面的考虑。 3.详细设计 在详细设计阶段,要使用程序设计语言表示法定义系统各个组成部分。在并发与实时系统中要注意资源共享的算法,要避免出现死锁情况,还要注意与硬件I/O设备的接口。 4.编码 遵照编写代码和文档的标准,使用项目中所选择的编程语言来编写各个组成部分的代码。对于并发系统来说,要选择使用并发语言(Ada,Modula2),或者选择多任务操作系统或内核所支持的序列化语言。 5.软件测试 并发与实时系统包含了多个并发任务,或者与多个外部设备之间存接口。系统的执行具有不确定性,而且实时系统通常是嵌入式系统,所以测试更为复杂。有时需要开发环境模拟器。需要分几个阶段对软件系统测试。单元测试和集成测试都是“白盒”测试方法,需要了解软件内部结构,系统测试是一种“黑盒”测试方法,要依照软件需求规范。 6.单元测试 单元测试由在与其他组成部分结合之前,对单个组成部分进行的测试组成。最低覆盖原则每条语句只要执行一次,每个输出分支至少测试一次。 7.集成测试 集成测试是将经过测试的组成部分逐渐结合为一些更加复杂的组成部分,并且在将整个软件系统组合在一起并对接口进行测试之后,对这些分组进行测试。并发系统集成测试的特点是需要对并发任务接口进行测试。 8.系统测试 系统测试是对集成后的硬件和软件系统进行测试的过程,以确保系统符合需求规范。需要对并发和/或实时系统的某些方面进行测试。包括:功能测试、负载(压力)测试、性能测试 9.验收测试 验收测试通常由用户组织或其代表来实施。 2.1.2 其他软件生命周期模型 1.抛弃式原型法 抛弃式原型是一种开发快速,成本低廉的工作系统,用于帮助澄清用户的需求。在初步需求规范之后就可以开发抛弃式原型。通过让用户在原型上练习操作,可以得到很多有价值的反馈信息。根据这些反馈信息,可以完成一份经过修订的需求规范。随后的开发过程遵照常规的软件生命周期模型继续进行。 2.增量式开发的演化原型法 演化原型法是一种增量式开发的形式,其中的原型要经过几个过渡的运行系统演化为可交付系统。通过在较长时间段内展开实施过程,对于测试设计的关键组成部分和降低开发风险来说,这种方法有助于确定系统是否满足了性能上的需求。 3.螺旋模型 螺旋模型是一种迭代生命周期模型,其中的每一次螺旋循环都代表一次迭代.径向坐标代表累积开销.每次迭代的一个重要方面就是项目的风险评估.要识别出具有最大不确定性的区域和潜在的重要问题.只有在风险减少到管理层可以接受的水平时,才可以开始进行具体的实施工作。 2.2 软件设计概念 本节介绍的是并发与实时系统软件设计的关键概念。我们会对前面介绍的并发处理概念进行深入探讨,尤其是并发任务之间的通信与同步问题。随后会介绍系统环境以及支持并发处理的操作系统。信息隐藏的概念要从系统分解为多个模块的角度来介绍。面向对象的概念要与面向对象设计中信息隐藏的作用一同讨论,此外还引入了类和继承的概念,最后要介绍的是并发与实时系统设计中有限状态机的作用。 2.2.1 并发处理 并发任务的通信与同步: 在大多数实时和并发应用程序中,并发任务必须相互协作,以执行供应用程序所要求的服务。当各个任务之间相互协作时会出现以下3个常见的问题: 1).互斥问题 当任务需要对某种资源(如共享数据或物理设备)具有独占的访问权时,就会发生这种错误。 为了解决这种问题,必须提供一种同步机制,以保证多个任务对关键资源的访问是互斥的。其经典解决方案最早是由Dijkstra使用二元信号量提出的。二元信号量s是一个布尔变量,仅能使用两个原子操作P操作(Wait(s))和V操作(S

文档评论(0)

danli208 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档