"关联类-软件工程自学考试(全程学习版)"
在软件工程中,关联类是一个重要的概念,它结合了关联和类两种特性。关联类可以被理解为一种特殊的关联,具有类的属性和行为,同时具备关联的连接两个或多个类的功能。在给定的示例中,`company` 和 `person` 通过 `Job` 类关联起来,`0..1` 和 `*` 表示关联的多重性,意味着一个人可以有零个或多个工作(`person` 对 `Job` 是多对一的关系),而一个工作可以由多个员工(`Job` 对 `person` 是一对多的关系)。此外,`salary`、`employer` 和 `employee` 是 `Job` 类中的属性,而 `boss`、`manages` 和 `worker` 可能表示类的方法,用于描述雇员和雇主之间的管理关系。
软件工程的基础在于理解软件开发的全过程,包括从需求分析到产品测试的各个环节。北京大学软件工程国家工程研究中心的王立福教授强调,软件开发的本质是将问题域(问题空间)的概念和计算逻辑映射到不同的抽象层。这个过程涉及到数据抽象和过程抽象。
数据抽象是指将问题空间中的对象转换为解空间的模型化概念,如将具体的人(张山)抽象为对象,通过面向对象的方法进行需求分析,建立数据模型。而过程抽象则关注问题空间的处理逻辑如何转化为解空间的计算逻辑,常通过结构化方法实现,旨在构建可执行的计算流程。
软件过程是软件开发的核心部分,涵盖了从软件定义到软件维护的所有活动,包括需求获取、软件设计、编码、测试和维护等阶段。软件开发方法学提供了不同的开发途径,如结构化方法、面向对象方法、面向数据结构方法等,帮助开发者选择适合特定项目的技术和策略。
CMM(Capability Maturity Model for software)是评估和改进软件开发过程成熟度的框架,确保软件产品的质量和过程的可控性。它提供了从初始级到优化级的五个成熟度级别,帮助组织提升其软件开发能力。
软件工程的学习涵盖了软件开发的本质、过程、需求分析、开发方法和过程改进等多个方面,这些知识点对于自学考试者或从业者来说都至关重要,能够帮助他们有效地进行软件开发和管理。