高等软件工程课程思考题(一)

高等软件工程课程思考题(一)

一、软件规模或复杂性与软件质量之间具有什么样的关系?
规模越大的软件或者说越复杂的软件系统,出现的质量问题越多,成正比的关系。规模越大,其功能就越复杂;模块越多,所需要的接口就越多,测试也会变得困难。正因如此,存在的问题也就越多,例如接口定义不规范、模块之间过于复杂而没有清晰的体系结构导致模块之间的调用出现问题。

二、为什么会提出模型化开发方法?
模型化开发是指以图形化的模块为基础,通过可视化的模型自动(半自动)生成代码,直观、高效地来完成应用程序的设计和开发。模型化开发方式可以有效地降低硬件平台应用程序的开发难度,而且可以很好地屏蔽各种不同目标平台之间的差异性,并且让设计人员将注意力集中在和业务逻辑相关的信息上,而不用过早地考虑与平台相关的实现细节。尤其是在面对不同应用领域时,模型驱动方法强调使用方便灵活的领域相关建模语言(domain-specific modeling language,DSML)构造系统的模型,基于领域知识实现领域专家、设计人员、系统工程师以及架构师等不同人员之间的良好沟通。因此,模型化开发是针对硬件平台的一种高效、敏捷的开发方式。

三、为什么在软件工程领域中没有银弹(no silver bullet)
首先需要理解什么是软件工程领域中的银弹——在技术上或管理上,有任何单一的重大突破,能够保证在生产力、可靠度或简洁性上获得改善。

软件开发过程中所面临的主要困难有:

  • 复杂性:模块划分、交互等,以及系统的软件体系结构。
  • 可变性:例如需求变更。
  • 不可见性:在编码过程中无法预见代码效果等。

软件工程领域没有银弹这个观点最早由Fred Brooks在其著作《没有银弹》中提到的。在这这本书中,他认为由于软件的复杂性本质,而使真正的银弹并不存在;所谓的没有银弹是指没有任何一项技术或方法可使软件工程的生产力在十年内提高十倍。软件的复杂性不仅体现在软件本身在概念建构上存先天的困难,即如何从抽象性问题,发展出具体概念上的解决方案。还有将概念上的构思施行于电脑上,所遭遇到的困难。可能他的这些观点来源于他另外一本著作《人月神话》,其中他探索了达成一致性的困难和解决的方法,并探讨了软件工程管理的其他方面。
目前来说还针对一些软件工程领域中所出现的一些问题,还没有高效的解决方法。

;