系统分析与设计第一周作业
16340067 电子政务 韩承希
-
软件工程的定义
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 -
软件危机产生的原因、表现及解决方法
1)产生软件危机的本质原因:软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率 。
2)主要表现:- 软件开发进度难以预测
- 软件开发成本难以控制
- 用户对产品功能难以满足
- 软件产品质量无法保证
- 软件产品难以维护
- 软件缺少适当的文档资料
3)解决方法: 用现代工程的概念,原理,技术和方法进行计算机软件的开发,管理和维护。除此之外,在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境。
-
软件生命周期
软件生命周期是软件从产生直到报废或停止使用的生命周期。周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级、废弃等阶段 -
SWEBoK 的 15 个知识域
- 软件需求:表示对软件产品的需求和约束,包括软件需求的引出、协商、分析、规范和确认。
- 软件设计:定义系统或组件的架构、组件、接口和其他特性的过程,以及该过程的最终结果。
- 软件构造:是指通过详细设计、编码、单元测试、集成测试、调试和验证的组合来详细创建工作软件。
- 软件测试:是一项评估产品质量并通过识别缺陷来改进产品质量的活动。软件测试根据有限的测试用例集上的预期行为对程序进行动态验证。
- 软件维护:增强软件现有的能力,使软件适应新的和修改过的操作环境,以及纠正缺陷。这些类别被称为完善的、适应性的和纠正性的软件维护。
- 软件配置管理:是一门在不同的时间点识别系统配置的学科,目的是系统地控制配置的更改,并在整个软件生命周期中保持配置的完整性和可追溯性。
- 软件工程管理:包括计划、协调、测量、报告和控制项目或程序,以确保软件的开发和维护是系统的、有纪律的和量化的。
- 软件工程进程:涉及软件生命周期过程的定义、实现、评估、测量、管理和改进。
- 软件工程模型和方法:所涵盖的主题包括建模(软件工程模型的原理和属性;语法与语义与不变量;前提条件、后条件和不变量);模型类型(信息、结构和行为模型);分析(分析正确性、完整性、一致性、质量和交互;可追溯性;权衡分析);和软件开发方法(启发式方法、形式方法、原型方法和敏捷方法)。
- 软件质量:包括软件质量基础(软件工程文化、软件质量特征、软件质量的价值和成本以及软件质量改进);软件质量管理过程(软件质量保证、验证和确认、评审和审计);以及实际问题(缺陷描述、软件质量度量和软件质量工具)。
- 软件工程专业实践:涉及软件工程师以专业、负责和道德的方式实践软件工程所必须具备的知识、技能和态度。
- 软件工程经济学:关注在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。
- 计算基础:涵盖了为软件工程实践提供必要计算背景的基本主题。包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算基础、计算机组织、操作系统和网络通信。
- 数学基础:涵盖了为软件工程实践提供必要数学背景的基本主题。包括集合、关系和函数;基本命题和谓词逻辑;证明技术;图和树;离散概率;语法和有限状态机;以及数论。
- 工程基础:涵盖了为软件工程实践提供必要工程背景的基本主题。包括经验方法和实验技术;统计分析;测量和度量;工程设计;模拟和建模,以及根本原因分析。
-
CMMI的五个级别
1)初始级
软件过程是无序的,自发生产模式。
2)可管理级
建立了基本的项目管理过程,制定了必要的过程纪律。
3)已定义级
将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。软件产品的生产在整个软件过程是可见的。
4)量化管理级
分析对软件过程和产品质量的详细度量数据,对软件过程和产品有定量的理解与控制。管理有客观依据,能够在定量的范围内预测性能。
5)优化管理级
过程的量化反馈和新思想、新技术促使过程不断改进。 -
什么是CMMI
CMMI即能力成熟度模型集成。把现在所有实施的与即将被发展出来的各种能力成熟度模型集成到一个框架中去。 其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。CMMI所依据的想法是:集中精力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。其主要关注点是成本效益、明确重点、过程集中和灵活性四个方面。