"2011年王立福教授的软件工程课程主要涵盖了软件开发的基础、过程、需求、方法学以及CMM模型等核心概念,旨在帮助自学者深入理解软件工程的各个环节。"
在软件工程中,启动是项目开始的关键步骤,这通常包括识别项目目标、确定范围和组建团队。准备投标涉及到对项目需求的理解和制定有竞争力的提案。签订合同时,双方就项目条款达成一致,明确权责和交付期限。规划阶段则需要详细规划每个任务、里程碑和资源分配。执行和控制阶段是实际开发工作进行的地方,同时监控进度和质量以确保符合预定标准。复审和评估是对已完成工作的检查,以确保满足要求。最后,交付和完成阶段意味着产品交付给客户,并进行最终验收。
软件工程的基础在于理解软件开发的生命周期,这包括需求获取、分析、设计、实现、测试、部署和维护等步骤。王立福教授强调了软件生存周期过程的建立和组织,这是确保软件开发顺利进行的关键。他还提到了软件需求和系统/产品需求规约的重要性,它们作为软件开发的起点,同时也是测试和确认的依据。
在软件开发方法学方面,结构化方法、面向对象方法、面向数据结构方法和维也纳开发方法(VDM)都是常见的开发途径。每种方法都有其特定的适用场景,如结构化方法适合于逻辑清晰、功能明确的系统,而面向对象方法则强调对象的封装、继承和多态性,适用于复杂系统的建模。
CMM(Capability Maturity Model for software)是评估和改进软件开发过程成熟度的框架,它提供了逐步提升软件开发过程质量和效率的路径。通过实施CMM,可以确保开发出正确的产品或系统,提高软件质量并降低风险。
软件开发的本质是将问题域的概念和逻辑映射到解空间的模型和处理逻辑上。这涉及到了数据抽象、过程抽象等多个抽象层次,通过需求分析、设计和实现来构建计算的客体和逻辑。面向对象方法、结构化方法等工具和技术在这一过程中起着关键作用,帮助开发者将现实世界的问题转化为可执行的计算机程序。
软件工程不仅关注技术实现,还注重过程管理和质量保证,是一门综合性的学科,需要开发者具备全面的知识结构和实践技能。王立福教授的课程为自学者提供了深入学习和掌握这些知识的宝贵资源。