软件工程全文共7页,当前为第1页。软件工程全文共7页,当前为第1页。软件工程课后练习题软件工程课后练习题第一章 软件工程全文共7页,当前为第1页。 软件工程全文共7页,当前为第1页。 软件工程课后练习题 软件工程课后练习题 简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 第二章 简述需求与需求规约的基本性质。 答:需求的基本性质: 必
### 软件工程知识点详解
#### 一、软件开发的本质与途径
**软件开发的本质:**
软件开发的本质在于将问题空间(Problem Space)的概念和处理逻辑映射到解空间(Solution Space)的概念和处理逻辑之中。问题空间指的是实际业务场景中存在的问题及其实现背景,而解空间则是通过软件开发过程构建出来的解决这些问题的具体方案和技术实现。
**实施软件开发的基本途径:**
系统建模是实施软件开发的基本途径之一。系统建模指的是利用现有的知识和技术手段,通过对目标系统的抽象,构建出该系统的结构模型。这个过程涉及到对系统功能、行为等方面的抽象,从而帮助开发者更好地理解和定义系统的架构和设计。
#### 二、软件开发中的模型概念
**模型定义:**
模型是一种抽象表示,用于描述物理系统中的各个组成部分及其相互之间的关系,并且包含了对系统边界的界定。它不仅限于软件领域,在许多科学领域都有广泛应用。
**软件开发中的模型分类:**
- **概念模型:** 描述了系统的概念层面,即系统应该具备哪些功能和特性。
- **软件模型:** 是实现概念模型的技术解决方案,具体到软件实现层面。
#### 三、软件开发技术
**软件开发涉及的技术类别:**
软件开发主要涉及两大技术领域:
- **开发逻辑:** 关注如何构建软件的核心算法和逻辑流程。
- **开发手段:** 包括开发工具的选择、编程语言的应用、开发方法论等。
#### 四、需求与需求规约
**需求的基本性质:**
- **必要性:** 需求必须是用户真正需要的。
- **明确性:** 需求描述必须清晰明确,避免多义性。
- **可测试性:** 需求应当能够通过测试验证是否满足。
- **可跟踪性:** 需求在整个开发周期中应保持连续性,便于追溯。
- **可测量性:** 需求的满足程度应当可以通过某种量化指标来衡量。
**需求规约的基本性质:**
- **重要性和稳定性:** 根据需求的重要性和稳定性进行分级。
- **可修改性:** 需求变更应尽可能不影响其他部分。
- **完整性:** 所有需求均应被明确描述,无遗漏。
- **一致性:** 各个需求之间不应存在冲突。
**需求分类:**
- **功能需求:** 描述软件应当提供的具体功能和服务。
- **非功能需求:** 包括性能需求、外部接口需求、设计约束和质量属性等。
**需求发现技术:**
- **自悟:** 开发者自己思考并提出需求。
- **交谈:** 与用户、利益相关者进行面对面交流。
- **观察:** 直接观察用户的实际操作场景。
- **小组会:** 通过会议形式收集多方意见。
- **提炼:** 从已有文档中提取关键信息。
**需求规约的形式:**
- **非形式化需求规约:** 使用自然语言进行描述。
- **半形式化需求规约:** 结合标准化符号体系进行描述。
- **形式化需求规约:** 使用数学语言进行精确描述。
**需求规约的作用:**
- **技术合同:** 定义了软件开发组织和用户之间的技术协议。
- **管理控制点:** 对项目的后续阶段起到监控作用。
- **设计起点:** 设计阶段的正式起点。
- **测试基础:** 创建产品验收测试计划的基础。
#### 五、模块耦合与内聚
**模块耦合类型:**
- **内容耦合:** 模块间直接修改或访问彼此的数据。
- **公共耦合:** 多个模块共享相同的全局数据。
- **控制耦合:** 一个模块通过传递控制信息给另一个模块。
- **标记耦合:** 一个模块通过接口向多个模块传递公共参数。
- **数据耦合:** 模块间仅通过参数传递数据。
**模块内聚类型:**
- **偶然内聚:** 模块内的组件之间几乎没有任何联系。
- **逻辑内聚:** 将逻辑相关的功能集中在一个模块中。
- **时间耦合:** 功能必须在同一时间执行。
- **过程耦合:** 组件之间的操作顺序固定。
- **通信耦合:** 所有组件操作或生成相同的数据集。
- **顺序内聚:** 组件的操作按照预定的顺序进行。
以上知识点涵盖了软件工程中的一些核心概念和技术,包括软件开发的本质、模型概念、需求分析等方面。这些内容对于深入理解软件工程的理论基础和技术实践具有重要意义。