赞
踩
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
软件工程是(1)应用系统化的、学科化的和定量化的方法来开发、运行和维护软件,即将工程应用到软件,以及(2)对(1)中各种方法的研究。 –– IEEE 标准 610.12
软件危机的本质原因是由于落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。软件的大量需求与软件生产力效率之间的矛盾,软件系统的复杂性与软件开发方法之间的矛盾。
软件需求增长得不到满足
软件生产高成本、价格昂贵
软件生产进度无法控制
软件需求定义不准确
软件质量不易保证
软件可维护性差
要克服软件危机,就要认真分析软件危机的原因,探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新。
在时间维度,对软件项目任务进行划分,又称为软件开发过程。常见有瀑布模型、螺旋模型、敏捷的模型等。软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
SWEBoK——软件工程知识体系
软件工程实践部分:
软件需求KA涉及软件需求的引出、协商、分析、规范和验证。软件行业普遍认为,当这些活动执行得很差时,软件工程项目是非常脆弱的。软件需求表达了对软件产品的需求和约束,这些需求和约束有助于解决一些实际问题。
设计被定义为定义系统或组件的体系结构、组件、接口和其他特性的过程,以及过程的结果(IEEE 1991)。软件设计KA包括设计过程和最终产品。软件设计过程是软件工程生命周期的活动,在此过程中,软件需求被分析,以产生对软件内部结构及其行为的描述,并作为其构建的基础。软件设计(结果)必须描述软件体系结构——也就是说,软件如何分解和组织成组件以及这些组件之间的接口。它还必须在支持其构造的详细级别上描述组件。
软件建设是指通过详细设计、编码、单元测试、集成测试、调试和验证相结合,对工作软件进行详细的创建。
测试是一种通过识别缺陷来评估产品质量和改进产品质量的活动。软件测试包括在有限的测试用例集中,根据预期的行为对程序的行为进行动态验证。
软件维护包括增强现有的功能,使软件适应新的和修改过的操作环境,以及纠正缺陷。这些类别被称为完善的、自适应的和纠正的软件维护。
系统的配置是硬件、固件、软件或这些的组合的功能和/或物理特性。它还可以看作是根据特定的构建过程组合的特定版本的硬件、固件或软件项的集合,以满足特定的目的。
软件工程管理包括计划、协调、度量、报告和控制一个项目或程序,以确保软件的开发和维护是系统的、有纪律的和量化的。
软件工程过程涉及软件生命周期过程的定义、实现、评估、度量、管理和改进。
软件工程模型和方法解决了包含多个生命周期阶段的方法;特定于特定生命周期阶段的方法由其他ka覆盖。
软件质量是一个普遍存在的软件生命周期问题,许多SWEBOK V3都解决了这个问题。此外,软件质量包括软件质量的基础;软件质量管理过程;以及实际的考虑(缺陷描述、软件质量度量和软件质量工具)。
软件工程专业实践是指软件工程师必须具备的知识、技能和态度,以便以专业、负责任和合乎道德的方式实践软件工程。
软件工程基础教育部分:
软件工程经济学关注的是在业务上下文中做出决策,使技术决策与组织的业务目标保持一致。涵盖的主题包括软件工程经济学的基本原理;非营利性决策;评估、经济风险与不确定性;多属性决策。
计算基础涵盖了为软件工程实践提供必要的计算背景的基本主题。主题包括问题解决技术、抽象、算法和复杂性、编程基础、 并行和分布式计算基础、计算机组织、操作系统和网络通信。
数学基础涵盖了为软件工程实践提供必要的数学背景的基本主题。主题包括集合、关系和函数;基本命题与谓词逻辑;证明技术;图表和树木;离散型概率;语法和有限状态机和数论。
工程基础涵盖了为软件工程实践提供必要的工程背景的基本主题。主题包括经验方法和实验技术;统计分析;测量和度量;工程设计;仿真和建模;以及根本原因分析。
Software Engineering Body of Knowledge,即软件工程知识体系,是由多个行业团体及专业人士编写的,制定了一套关于软件工程的通用指南。SWEBok v3在软件工程领域发布了15个知识域,可以用于指导软件工程开发等工作。并对每个知识域中的重要概念和区别加以阐述说明。也就是说,SWEBok最大的贡献是将原本混杂的软件工程知识体系化,将原本存在的知识分类整理,最后形成一个具有共识性和方向性的指南。在第四题中提及了15个知识域并进行了简单定义。
Capability Maturity Model Integration,即能力成熟度模型集成,是能力成熟度模型(Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM)的最新版本。CMMI是一个过程级别的改进训练和评估程序,CMMI 为过程定义了如下几个成熟度级别: Initial, Managed, Defined, Quantitatively Managed, and Optimizing。CMMI模型为开发或改进流程提供指导,以满足组织的业务目标,也可以用作评估组织过程成熟度的框架。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。