系分第一次作业

2019-03-19  本文已影响0人  piubiupiu

如何定义软件工程

软件工程,是软件开发领域里对工程方法的系统应用。

1993年,电气电子工程师学会(IEEE)给出了一个更加综合的定义:"将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程,即将工程化应用于软件开发中"。此后,IEEE多次给出软件工程的定义。

解释导致software crisis本质原因、表现,述说克服软件危机的方法

软件危机其原因,衔接到硬件的整体复杂度,与软件开发流程。危机表现在几个方面:

原因:

克服危机的方法:

软件生命周期

软件生存周期(SDLC,软件生命周期)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。

可行性分析和计划阶段

需求分析阶段

在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。

设计阶段

此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。

实现阶段

此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

测试阶段

在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。

全面测试目标软件系统,并检查审阅已编制的文档,提交测试分析报告。逐项评价所实现的程序、文档以及开发工作本身,提交项目开发总结报告。

运行和维护阶段

软件提交给用户后,在运行使用中得到持续维护,根据用户新提出的需求进行必要而且可能的扩充、删改、更新和升级。

软件维护包括改正性维护 (发现错误)、适应性维护 (适应运行环境变化) 和完善性维护 (增强功能)。

SWEBoK 的 15 个知识域(An Overview of the SWEBOK Guide 请中文翻译其名称与简短说明)

Software Requirements 软件需求

软件需求关注软件需求的启发,协商,分析,规范和验证。 在软件行业中,人们普遍认为,当这些活动表现不佳时,软件工程项目非常容易受到攻击。 软件需求表达了对软件产品的需求和限制,这些需求和约束有助于解决一些现实问题。

Software Design 软件设计

软件设计涵盖了设计过程和最终产品。 软件设计过程是软件工程生命周期活动,其中分析软件需求以产生软件内部结构及其行为的描述,其将作为其构造的基础。 软件设计(结果)必须描述软件体系结构 - 即软件如何分解和组织成组件以及这些组件之间的接口。 它还必须描述能够构建它们的详细程度的组件。

Software Construction 软件构造

软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来详细创建工作软件。 软件构建包括与满足其要求和设计约束的软件程序开发相关的主题。

Software Testing 软件测试

测试是一项旨在评估产品质量并通过识别缺陷来改进产品质量的活动。 软件测试涉及在有限的测试用例集上针对预期行为动态验证程序的行为。

Software Maintenance 软件维护

软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行,以及纠正缺陷。 这些类别称为完善,自适应和纠正性软件维护。

Software Configuration Management 软件配置管理

系统的配置是硬件,固件,软件或这些的组合的功能和/或物理特征。 它还可以被视为根据特定构建过程组合的特定版本的硬件,固件或软件项的集合,以满足特定目的。

Software Engineering Management 软件工程管理

软件工程管理涉及规划,协调,测量,报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。

Software Engineering Process 软件工程过程

软件工程过程关注软件生命周期过程的定义,实施,评估,测量,管理和改进。 涵盖的主题包括流程实施和变更(流程基础架构,流程实施和变更模型以及软件流程管理); 流程定义(软件生命周期模型和流程,流程定义,流程适应和流程自动化的符号); 过程评估模型和方法; 测量(过程测量,产品测量,测量技术和测量结果的质量); 和软件处理工具。

Software Engineering Models and Methods 软件工程模型和方法

软件工程模型和方法解决了涵盖多个生命周期阶段的方法; 其他涵盖特定生命周期阶段的特定方法。 涵盖的主题包括建模(软件工程模型的原理和属性;语法与语义与不变量;前置条件,后置条件和不变量); 模型类型(信息,结构和行为模型); 分析(分析正确性,完整性,一致性,质量和相互作用;可追溯性;以及权衡分析); 和软件开发方法(启发式方法,形式方法,原型方法和敏捷方法)。

Software Quality 软件质量

软件质量是许多SWEBOK V3 KAs中普遍存在的软件生命周期问题。 此外,软件质量KA还包括软件质量的基础知识(软件工程文化,软件质量特性,软件质量的价值和成本以及软件质量改进); 软件质量管理流程(软件质量保证,验证和确认,审核和审核); 和实际考虑(缺陷表征,软件质量测量和软件质量工具)。

Software Engineering Professional Practice 软件工程专业实践

软件工程专业实践关注软件工程师必须具备的专业,负责和道德的软件工程知识,技能和态度。

Software Engineering Economics 软件工程经济学

软件工程经济学KA关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。

Computing Foundations 计算基础

计算基础涵盖了提供软件工程实践所需的计算背景的基础主题。 涵盖的主题包括问题解决技术,抽象,算法和复杂性,编程基础,并行和分布式计算的基础知识,计算机组织,操作系统和网络通信。

Mathematical Foundations 数学基础

数学基础涵盖了提供软件工程实践所必需的数学背景的基础主题。 涵盖的主题包括集合,关系和功能; 基本命题和谓词逻辑; 证明技术; 图形和树木; 离散概率; 语法和有限状态机; 和数论。

Engineering Foundations 工程基础

工程基础涵盖了提供软件工程实践所必需的工程背景的基础主题。 涵盖的主题包括经验方法和实验技术; 统计分析; 测量和指标; 工程设计; 仿真与建模; 和根本原因分析。

简单解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式

用自己语言简述 SWEBok 或 CMMI (约200字)

CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成。SWEBok全名软件工程知识体系,它IEEE计算机协会发布的一个国际标准,它描述普遍接受的知识体系部分,一共提出了15个知识域,对这15个知识域进行了描述与说明。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。

上一篇下一篇

猜你喜欢

热点阅读