软件方法学是以软件开发方法为研究对象的学科。其中, (问题1) 是先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。 (问题2) 是根据系统功能要求,从具体的器件、逻辑部件或者相似系统开始,通过对其进行相互连接、修改和扩大,构成所要求的系统。 (问题3) 是建立在严格数学基础上的软件开发方法。
软件开发方法学涵盖多种典型开发方法,各有核心逻辑与适用场景。自顶向下开发方法遵循从上到下、逐层分解的思路,先聚焦最高层级的问题完成定义、设计、开发与测试,将未解决的内容拆解为子任务下放至下一层级处理,适合需求明确、结构化程度高的大型系统开发,能有效把控整体架构的一致性。自底向上开发方法则从具体的器件、逻辑模块或相似已有系统切入,通过组件间的连接、修改与扩展来搭建目标系统,多用于底层组件清晰、需逐步集成的场景,便于利用现有资源完成系统构建。形式化开发方法以严格的数学理论为基础,借助数学模型、形式化描述语言来精准定义软件需求与设计,可通过数学推导验证软件的正确性与可靠性,这类方法对安全性、稳定性要求极高的领域如航空航天、医疗嵌入式软件等尤为适用。此外,软件开发领域还有面向对象、原型开发等其他方法,共同构成覆盖不同开发需求的方法体系。
本题考察的是软件开发方法学的分类与特点。
问题1
题干描述的是“先对最高层次中的问题进行定义、设计、编程和测试,把未解决的问题留给下一层次处理”。这正是自顶向下开发方法的基本思想。
A选项面向对象开发方法:是一种基于对象、类和继承机制的方法,不符合题干描述。
B选项形式化开发方法:强调严格的数学模型,不符合分层逐步求精的过程。
C选项非形式化开发方法:强调经验和直觉,并没有“逐层分解”的特征。
D选项自顶向下开发方法:符合题干描述,正确。
问题2
题干描述的是“根据系统功能要求,从器件、逻辑部件或相似系统开始,逐步扩展形成所需系统”,这正是自底向上开发方法的思想。
A选项自底向上开发方法:符合题干描述,正确。
B选项形式化开发方法:强调数学建模,与题干不符。
C选项非形式化开发方法:是经验型方法,不是从部件组合出发。
D选项原型开发方法:通过快速构建原型验证需求,不符合题干描述。
所以选 A。
问题3
题干描述的是“建立在严格数学基础上的软件开发方法”,即形式化开发方法。
A选项自底向上开发方法:不是数学模型方法,错误。
B选项形式化开发方法:利用数学方法和形式化描述语言建立严格的软件模型,正确。
C选项非形式化开发方法:不依赖数学方法,错误。
D选项自顶向下开发方法:分层逐步分解,不涉及数学严格性,错误。
所以选 B。
