软件工程:捕获实现需求与核心概念

需积分: 29 20 下载量 40 浏览量 更新于2024-08-20 收藏 3.53MB PPT 举报
"最后,还要捕获实现需求-2011王立福的软件工程课件" 在软件工程中,捕获实现需求是至关重要的一步,它涉及到将需求从概念层面转化为具体的设计和实现细节。这通常发生在软件开发生命周期的早期阶段,包括需求分析、系统设计和详细设计。王立福的课程中强调了这一环节,特别是关注use-case细化中的需求,并指出在设计中识别的非功能需求应在实现中得到妥善处理。 例如,一个活跃类如"Payment Request Processing"的对象应该能够同时处理10个不同的买家客户端,而不对任何单个买家造成明显的延迟。这表明了非功能需求——性能和响应时间,在实际开发中必须被充分考虑和优化。这样的需求不仅关系到软件的功能性,也影响用户体验和系统的可扩展性。 软件工程是一门学科,旨在系统性地进行软件开发和评估。北京大学软件工程国家工程研究中心的王立福教授指出,软件工程涵盖了软件过程、需求规格、开发方法学等多个方面。软件过程是指开发过程中涉及的一系列活动及其组织方式,而软件需求及系统/产品需求规约是项目启动的基础,也是后续测试和验证的依据。 软件开发方法学探讨了如何有效地执行开发任务,包括结构化方法、面向对象方法、面向数据结构方法以及维也纳开发方法等。这些方法提供了从问题域到解决方案的不同路径,通过数据抽象、过程抽象等手段将问题转化为计算逻辑。 CMM(Capability Maturity Model for software)是软件开发过程能力成熟度模型,用于确保能产出正确的产品或系统,通过改进过程管理和实践来提高软件质量。 在软件开发的本质部分,王立福教授解释了问题域到不同抽象层之间的映射,包括数据抽象和过程抽象。数据抽象是指将问题空间的概念转化为模型化概念,例如通过面向对象方法进行需求分析,形成计算的对象。而过程抽象则是将问题空间的处理逻辑转化为解空间的处理逻辑,如使用结构化方法构建计算逻辑。 交互图则在需求分析和设计阶段起着关键作用,它们帮助开发者理解用户与系统间的交互,以便更准确地实现用户的需求。 软件工程不仅仅是编写代码,而是涵盖了一整套系统性的方法和技术,确保软件产品的功能、性能和质量满足用户和业务的需求。理解和掌握这些基础知识对于自学软件工程至关重要,它提供了从需求捕获到最终实现的全面视角。