软件工程中的建模策略与方法学

需积分: 31 73 下载量 75 浏览量 更新于2024-08-20 收藏 3.53MB PPT 举报
"王立福教授的《软件工程》自考课件,涵盖了软件开发的基础、过程、需求、开发方法学以及CMM等关键概念,强调了软件开发的本质和基本手段,介绍了不同的软件开发方法,如结构化、面向对象等,并讲解了在用UML进行建模时的基本策略。" 在软件工程中,正确理解和应用基本策略对于有效建模至关重要。首先,UML中的依赖关系应该只在非结构关系需要建模时使用,这意味着依赖通常用于表示一个元素对另一个元素的非持久性依赖,而非结构或组织上的联系。其次,泛化关系应当用于表达"is-a-kind-of"的关系,比如类的继承,而聚合则通常用于表示整体与部分的关系,它不能直接替代多继承,因为多继承涉及到一个类继承多个父类的属性和行为,而聚合则更关注实体间的弱关联。再者,避免引入循环的泛化关系,因为这可能导致设计的复杂性和理解难度增加。最后,泛化关系应保持平衡,避免过度深入或过宽的继承层次,适时寻找合适的中间抽象类来简化结构。 软件开发的本质在于将问题域映射到不同抽象层的概念和计算逻辑。例如,数据抽象是将问题空间的概念转化为模型化概念,这在需求分析阶段使用面向对象方法实现。过程抽象则是将问题空间的处理逻辑转换为解空间的处理逻辑,结构化方法在这种情况下常常被采用。此外,交互图则帮助我们理解并设计系统中对象间的交互,同样在需求分析和设计阶段发挥作用。 软件过程涵盖了从软件开发的启动到交付的各个阶段,包括需求获取、系统/产品规约、设计、编码、测试和维护等。软件需求及系统/产品规约是软件开发的起点,它们不仅是开发的指南,也是后期验证和测试的标准。软件开发方法学,如结构化方法、面向对象方法等,提供了实现这些过程的路径,每种方法都有其适用场景和理论基础。 CMM(Capability Maturity Model for software)则关注软件开发过程的能力成熟度,旨在通过改进过程管理和实践,确保产出高质量的软件产品。软件生存周期过程的建立和支撑过程方向的确定,是软件工程的核心内容,它们指导着整个项目的推进。 总结来说,王立福教授的课程深入浅出地阐述了软件工程的各个方面,从本质到手段,从过程到方法,为学习者构建了一个全面的软件开发知识框架。