一、资料一:据调查显示,由于需求分析做得不成功而导致软件项目开发失败的大约占45%,因此,软件需求分析工作是否科学、完整,将对软件项目能否成功产生至关重要的影响。
问题一:既然需求分析在软件工程中如此重要,那么我们评判软件需求分析工作是否科学、完整的依据有哪些?又应如何做到科学完整?
提出问题的原因:软件需求分析是软件工程中做系统之前的关键一步。万事开头难,如果我们连分析工作都没有做到位,那么将对后面的软件开发造成很大的影响,甚至导致最终的失败。
二、资料二:在开发管理信息系统中存在各种各样的系统分析方法,结构化分析方法多年来为系统开发人员所广泛使用。虽然它有好多优点,今后也将继续为开发人员所使用,但也应该看到它存在的一些弊端,值得系统开发人员注意。面向对象分析方法较好地克服了这些弊端,并逐步得到广泛应用。
问题二:结构化分析方法和面向对象分析方法有什么异同?各有什么优缺点?
提出问题的原因:为了更好地理解两种分析方法的本质区别和适用场景,从而在实际的软件开发过程中选择最合适的方法。
三、资料三:软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。
问题三:为什么“构架属于设计的一方面”,而不是“设计属于构架的一方面”呢?
提出问题的原因:有助于我们深入理解软件开发的本质,提高软件设计的质量,从而开发出更加健壮、可靠和易于维护的软件产品。
四、资料四:作为软件工程的一个阶段,软件编码是对设计的进一步具体化,程序的质量主要取决于软件设计的质量,而软件设计者可能对软件系统的开发、运行环境的不熟悉,所以,设计的方案在实施起来会困难重重,一些流程图等并不一定易于编写代码,但是编码却是实现软件最关键的步骤,同时也是程序员最重要的工作。高质量的编码会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。虽然随着计算机辅助设计工具的不断改进,编码的工作会越来越少,但是目前还没有一种技术手段,可以直接设计软件而无需编码。
问题四:面对设计中的流程图等难以直接编写代码的问题,程序员应如何调整或优化设计方案以便于编码?
提出问题的原因:尽管软件设计为编码提供了蓝图,但有时候这些设计并不直接适用于编码。程序员需要有能力调整或优化这些设计,以便它们能够更容易地转化为实际的代码。
五、资料五:目前,国外许多软件开发组织把60%以上的人力用于维护已有的软件,而且随着软件数量的增多和使用寿命的延长,这个比例还在上升。
问题五:如何通过技术创新和流程优化来降低软件维护的人力成本,并提高软件的可持续性和长期价值?
提出问题的原因:通过技术创新和流程优化,可以在一定程度上降低软件维护的人力成本,并提高软件的可持续性和长期价值。这对于软件开发组织来说,是一个值得深入探讨和实践的领域。