简答题汇总:
能力成熟度
1、能力成熟度的5个等级从低到高依次是:初始级(又称为1级),可重复级(又称为2级),已定义级(又称为3级),已管理级(又称为4级)和优化级(又称为5级)。
2、下面介绍各自特点
- 初始级
软件过程的特征是无序的,有时甚至是混乱的。几乎没有什么过程是经过定义的(即没有一个定型的过程模型),项目能否成功完全取决于开发人员的个人能力。处于这个最低成熟度等级的软件机构,基本上没有健全的软件工程管理制度,其软件过程完全取决于项目组的人员配备,所以具有不可预测性,人员变了过程也随之改变。如果一个项目碰巧由一个杰出的管理者和一支有经验、有能力的开发队伍承担,则这个项目可能是成功的。但是,更常见的情况是,由于缺乏健全的管理和周密的计划,延期交付和费用超支的情况经常发生,结果,大多数行动只是应付危机,而不是完成事先计划好的任务。
- 可重复级
软件机构建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能和质量。已经建立起必要的过程规范,对新项目的策划和管理过程是基于以前类似项目的实践经验,使得有类似应用经验的软件项目能够再次取得成功。达到2级的一个目标是使项目管理过程稳定,从而使得软件机构能重复以前在成功项目中所进行过的软件项目工程实践。
- 已定义级
软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。所有项目组都使用文档化的、经过批准的过程来开发和维护软件。这一级包含了第2级的全部特征。
- 已管理级
软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的。该软件机构收集了过程度量和产品度量的方法并加以运用,可以定量地了解和控制软件过程和软件产品,并为评定项目的过程质量和产品质量奠定了基础。这一级包含了第3级的全部特征。
- 优化级
软件机构集中精力持续不断地改进软件过程。这一级的软件机构是一个以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们。在这样的机构中,可以获得关于软件过程有效性的统计数据,利用这些数据可以对新技术进行成本/效益分析,并可以优化出在软件工程实践中能够采用的最佳新技术。这一级包含了第4级的全部特征。
软件工程定义
软件工程的定义:
①早期定义:软件工程就是为了经济地获得可靠的且能在实际机器上有效运行的软件,而建立和使用完善的工程原理。
②把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件,以及研究以上提到的途径。
分析建模与规格说明
1、验证软件需求,一般从四个方面进行验证。
- 验证需求的一致性。当需求分析的结果是用自然语言书写的时候,除了靠人工技术审查验证软件系统规格说明书的正确性之外,目前还没有其他更好的“测试”方法。但是,这种非形式化的规格说明书是难于验证的,特别在目标系统规模庞大、规格说明书篇幅很长的时候,人工审查的效果是没有保证的,冗余、遗漏和不一致等问题可能没被发现而继续保留下来,以致软件开发工作不能在正确的基础上顺利进行。为了克服上述困难,人们提出了形式化的描述软件需求的方法。
- 验证需求的现实性。为了验证需求的现实性,分析员应该参照以往开发类似系统的经验,分析用现有的软、硬件技术实现目标系统的可能性。必要的时候应该采用仿真或性能模拟技术,辅助分析软件需求规格说明书的现实性。
- 验证需求的完整性和有效性。只有目标系统的用户才真正知道软件需求规格说明书是否完整、准确地描述了他们的需求。因此,检验需求的完整性,特别是证明系统确实满足用户的实际需要,只有在用户的密切合作下才能完成。然而许多用户并不能清楚地认识到他们的需要(特别在要开发的系统是全新的,以前没有使用类似系统的经验时,情况更是如此),不能有效地比较陈述需求的语句和实际需要的功能。只有当他们有某种工作着的软件系统可以实际使用和评价时,才能完整确切地提出他们的需要。
测试的目标或定义
瀑布模型
1、软件开发设计模型:瀑布模型
- 特点:①阶段间具有顺序性和依赖性 ②推迟实现的特点 ③质量保证的特点
- 优点:可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细检查。
- 缺点:不能应对需求的变化,由文档驱动
分析方法都遵守下述准则
尽管目前有许多不同的用于需求分析的结构化分析方法,但是,所有这些分析方法都遵守下述准则:
- 必须理解并描述问题的信息域,根据这条准则应该建立数据模型。
- 必须定义软件应完成的功能,这条准则要求建立功能模型。
- 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型
- 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
面向对象方法学的优点
- 与人类习惯的思维方法一致
- 稳定性好
- 可重用性好
- 较易开发大型软件产品
- 可维护性好
对象的特点
- 以数据为中心
- 对象是主动的
- 实现了数据封装
- 本质上具有并行性
- 模块独立性好。
建立对象模型
1、大多数客观事物可分为下述5类