1软件工程概念及其基本要素-思考题

1:什么是软件?

软件是指计算机系统中的程序及其文档

程序是计算任务的处理对象和处理规则的描述

文档是便于了解程序所需要的阐明

第一步是计划,制定项目计划,不是需求分析

2什么是软件工程

是一类求解软件的工程,即应用计算机科学理论和技术,以及工程管理原则和方法,按预算和进度实现满足用户要求 的软件产品/系统的工程。

3软件工程框架-目标、原则、活动

目标-规定结果的性质

规定了结果应该具有的性质

可用性,

正确性,

合算性(开销适宜)

考题-可用性

考题-正确性-选B

软件的正确性是指( )。 A.软件能正常运行 B.软件达到预期功能的程度 C.软件符合用户的要求 D.软件运行中不出现任何错误

软件的正确性通常涉及软件是否能按照其设计规格和要求执行其功能。我们可以逐项分析选项内容来找出正确答案:

A.软件能正常运行:这个选项只涵盖了软件运行的一个基本方面,即软件能够启动和执行。但它没有涉及到软件是否按预期完成其功能。

B.软件达到预期功能的程度:这个选项直接关联到软件的正确性。它表示软件在多大程度上实现了其预定的功能或满足了设计规格。这是评价软件正确性时需要考虑的关键因素。

C.软件符合用户的要求:虽然这是一个重要的评价标准,但它更多地关联到软件的满意度或用户体验,而不完全是软件的正确性。用户的要求可能与设计规格不完全一致,或者用户可能并不完全了解他们真正需要的功能。

D.软件运行中不出现任何错误:这个选项太过绝对。在实际的软件开发中,很难保证软件完全不出现任何错误。更重要的是,软件是否能正确处理这些错误,并从错误中恢复,也是评价软件质量的重要因素。

综上所述,软件的正确性主要是指软件达到预期功能的程度。因此,正确答案是:

B.软件达到预期功能的程度。

验收测试是验证软件的有效性。

原则-指导每一项活动

选取良好的开发范型,

采用好的设计方法

提供高质量的支持

实施有效的管理

四项基本原则实际给出了软件工程学主要内容

|---------------|
| 软件开发范型 |
| 软件开发方法 |
| 软件工程支持技术 |
| 软件工程管理理论和技术 |
| 软件质量特征、保证和管理 |
| 计算机辅助软件工程CASE |

活动-基本工作

需求

设计

实现

确认

支持

4和5:如何理解ISO 12207 软件过程?含义和所包含的活动

定义:软件生存周期所涉及的一系列相关活动

分为

|------|------------------------------------------|--------------------------------------------------|
| | 基本含义 | 所包含的活动 |
| 基本过程 | 软件生产直接相关的活动集 | 获取过程 供应过程 开发过程 运行过程 维护过程 |
| 支持过程 | 有关各方按他们的支持目标所从事的一系列相关活动集,以便提高系统或软件产品的质量。 | 文档过程 配置管理过程 质量保证过程 验证过程 确认过程 联合评审过程 审核过程 问题解决过程 |
| 组织过程 | 与软件生产组织有关的活动集 | 管理过程 基础设施过程 改进过程 人力资源过程 资产管理过程 复用程序管理过程 领域软件工程过程 |

6如何理解"软件生存周期"和"软件生存周期模型"概念?

|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 软件生存周期 | 一个软件从定义、开发、运行维护直到最终被废弃所经历的生存过程,称为软件生存周期。 周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段 |
| 软件生存周期过程 | 又叫软件过程,软件生存周期中的一系列相关过程。 当开发产品或构建系统时,遵循一系列可预测的步骤(路线图)是非常重要的,它有助于及时交付高质量的产品。软件开发中所遵循的路线图就是软件生存周期过程。 为了表述软件开发需要做"什么活",引入三个概念:过程是活动的集合,活动是任务的集合,任务是把输入转换成输出的操作。 |
| 软件生存周期模型 | 是一个包含软件产品定义,开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的终止使用 |
| 软件项目生存周期过程 | 在一个项目的生存周期中,每一个任务都通过一个或者多个过程的方式来完成,所有这些相关过程的组合,称为软件项目生存周期过程。 三个阶段: 1:软件生存周期模型的选择 2:精化所选择的软件生存周期模型,裁剪过程 3:软件项目生存周期过程的实现,组织的过程资产应用到精化的项目软件生存周期中 |

7常用的软件生存周期模型,优缺点及适用情况

|------|-----------------------------------------------|--------------------------------------------------------------------|---------------------------------------------------------|
| 模型名称 | 优点 | 缺点 | 适用情况 |
| 瀑布模型 | 1:每一个阶段评审 2:前一步作为后一步的基线 | 1:要求客户需求清晰明确 2:无法适用需求变化 | 需求明确、开发周期不紧张 |
| 增量模型 | 1:第一个版本所需时间和成本少,可以减小开发的风险 2减小用户需求的变更 3:允许增量投资 | 1:如果没有对用户变更进行规划,那么初始增量可能造成后来增量的不稳定 2:一些增量可能需要重新开发 3:进度和配置复杂,增加管理成本 | 产品可分批次交付,系统可被模块化 软开人员难一次性开发系统 项目管理人员把握全局水平高,需求较明确,架构较稳定 |
| 演化模型 | 有一些小的开发步组成,减小软件开发活动的盲目性 | 如果需求模糊,测试困难,设计困难,影响性能; 如果缺乏过程管理,模型退化; | 事先不能完整定义需求的软件开发 |
| 螺旋模型 | 设计灵活 客户参与每个阶段的开发 客户和管理层有效交互 客户认可开发方式 风险分析 | 难让用户确信结构可控 开发和技术水平有差距,不满足用户需求 | 大型,复杂,需求不明确的项目 |
| 喷泉模型 | 可同步开发,提高开发效率,节省时间 | 需要大量开发人员,不利于管理 严格管理文档,加大审核难度 | 面向对象技术的软件开发 |

相关推荐
三品PLM系统21 小时前
PLM平台在制造业档案治理中的技术落地:OPPO设备后勤部架构、编码与权限解析 | 三品软件
架构·软件工程·plm·工程文档管理·制造业档案治理·三品软件
hans汉斯1 天前
《软件工程与应用》期刊推荐&10月版面征稿中
图像处理·人工智能·深度学习·算法·音视频·软件工程
梁辰兴2 天前
软件工程:结构化程序设计技术
软件工程·设计原则·设计方法·梁辰兴·设计定义·结构化程序设计技术·基本控制结构
Dr.kangder2 天前
嵌入式面试总结(七)——哈佛架构与冯·诺依曼架构
面试·职场和发展·架构·嵌入式·软件工程
7177772 天前
软件工程工业化实践:Gitee 智能化软件工厂全链路标准化交付体系解析
大数据·gitee·软件工程
吴free3 天前
现代软件工程新范式:Harness、LOOP与Graph工程深度解析
大数据·软件工程
zhaoshuzhaoshu3 天前
软件需求工程:需求管理详解
软件工程
江畔柳前堤3 天前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
qiyongwork4 天前
LLM做需求追溯:从PRD到测试用例的全链路实践
项目管理·软件工程·需求管理
梁辰兴4 天前
软件工程:概要设计阶段的评审
软件工程·梁辰兴·评审内容·评审方法·概要设计阶段的评审·评审意义·评审流程