就当前的嵌入式系统软件而言,软件的工程化开发主要与软件开发的方法学有关。
当前的软件开发方法学主要有:
·结构化方法。结构化方法包括结构化的分析、结构化的设计、结构化的编程和结构化的测试。结构化方法认为软件系统是以一定的结构形式存在的,由若干子系统构成。软件系统可以按照一定的准则,自顶向下进行层次分解,直至分解到低层次的模块。当前嵌入式软件大多仍采用结构化的开发方法。
·面向对象的方法。面向对象的方法是以对象为中心构造模型、组织软件系统。这种方法认为客观世界由对象组成,不同对象间的相互作用和联系构成了不同的系统。应用计算机解决问题的方法空间应当与客观世界的问题空间相一致。面向对象方法中的对象是由数据及其上的操作组成的封装体,对象是类的实例,而类则是具有相同属性和服务的对象的集合。
·净室(Clean Room)方法。净室方法是在结构化分析和设计方法的基础上,增加了需求分析和设计的形式化方法。这种方法认为软件程序设计开发人员应努力开发出在进入测试之前就几乎无错的系统。
·形式化方法。形式化方法是以严格的数学证明为基础的,要求软件需求规格说明用形式化的语言描述,以保证其正确无误,然后经过一系列变换直到产生出可执行程序。基于形式化方法的软件开发对后续基于模型的软件开发可起到积极的推动作用。
·基于模型的软件开发。随着软件工程技术的不断演化,基于模型的系统工程(MBSE)和软件工程(MBSwE)正在逐步替代传统的软件开发方式,日益受到软件开发界的重视。基于模型的开发将系统中的物理模型与嵌入式软件相结合,确保构成系统的各部件协调一致地工作,通过各专业模型的统一构建与一体化协同仿真,使得各专业、各环节的技术人员能够更加直观地理解和表达嵌入式系统,提高开发的一致性和自动化。
综上所述,在嵌入式软件开发中,选择何种开发方法学取决于软件项目的特点、能得到的支持环境和技术支持,以及开发人员的技术水平和经验等因素。鉴于上述软件开发方法学在诸多软件工程书籍中均有专业的技术讲解,故本书不再赘述。