系统分析与设计-个人第一次作业

一.简答题

1.软件工程的定义

  • BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
  • IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究
  • FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

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

  • 本质原因:
    软件危机是由计算机能力的迅速增加以及无法解决的问题的复杂性造成的。随着软件复杂性的增加,计算能力的提高超过了程序员有效利用这些能力的能力,因为现有方法不足,出现了许多软件问题。

  • 表现:

    • 软件开发进度难以预测
    • 软件开发成本难以控制
    • 用户对产品功能难以满足
    • 软件产品质量无法保证
    • 软件产品难以维护
    • 软件缺少适当的文档资料
  • 克服危机的方法:
    软件工程诞生于60年代末期,它作为一个新兴的工程学科,主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。软件工程学从硬件工程和其他人类工程中吸收了许多成功的经验,明确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用的技术和方法,并应用于软件工程实践,取得良好的效果。
    在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境,以期从管理和技术两方面解决软件危机问题。

3.软件生命周期

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。通常,软件生存周期包括:

  • 一、问题定义:要求系统分析员与用户进行交流,弄清“用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认。
  • 二、可行性研究:一方面在于把待开发的系统的目标以明确的语言描述出来,另一方面从经济、技术、法律等多方面进行可行性分析。
  • 三、需求分析:弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。
  • 四、开发阶段:开发阶段由四个阶段组成:
    • 1、概要设计
    • 2、详细设计
    • 3、实现:根据选定的程序设计语言完成源程序的编码。
    • 4、测试
  • 五、维护:维护包括四个方面
    • 1、改正性维护:在软件交付使用后,由于开发测试时的不彻底、不完全、必然会有一部分隐藏的错误被带到运行阶段,这些隐藏的错误在某些特定的使用环境下就会暴露。
    • 2、适应性维护:是为适应环境的变化而修改软件的活动。
    • 3、完善性维护:是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。
    • 4、预防性维护:是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。

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

  • 软件需求:软件需求KA关注软件需求的启发,协商,分析,规范和验证。软件需求表达了对软件产品的需求和限制,这些需求和约束有助于解决一些现实问题。
  • 软件设计:软件设计被定义为两个限定的体系结构,组件,接口,以及其它的系统或部件的特性的过程中,并[即]过程的结果(IEEE 1991)。软件设计KA涵盖了设计过程和最终产品。
  • 软件构建:软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来详细创建工作软件。
  • 软件测试:软件测试是一项旨在评估产品质量并通过识别缺陷来改进产品质量的活动。
  • 软件维护: 软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行,以及纠正缺陷。这些类别称为完善,自适应和纠正性软件维护。
  • 软件配置管理:系统的配置是硬件,固件,软件或这些的组合的功能和/或物理特征。
  • 软件工程管理:软件工程管理涉及规划,协调,测量,报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。
  • 软件工程过程: 软件工程KA关注软件生命周期过程的定义,实施,评估,测量,管理和改进
  • 软件工程模型和方法:软件工程模型和方法KA解决了涵盖多个生命周期阶段的方法; 其他KAs涵盖特定生命周期阶段的特定方法。
  • 软件质量:软件质量KA包括软件质量的基础、软件质量管理过程以及实际的考虑,是一个普遍存在的软件生命周期问题。
  • 软件工程专业实践:软件工程专业实践是指软件工程师必须具备的知识、技能和态度,以一种专业、负责和道德的方式来实践软件工程。软件工程专业实践KA涵盖专业、伦理准则、团队动态和沟通能力。
  • 软件工程经济学:软件工程经济学KA关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。
  • 计算基础:计算基础KA涵盖了提供软件工程实践所需的计算背景的基础主题。
  • 数学基础:数学基础KA涵盖了提供软件工程实践所必需的数学背景的基础主题。
  • 工程基础:工程基础KA涵盖了提供软件工程实践所必需的工程背景的基础主题。

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

  • Level 1 - initial:无序,自发生产模式。其过程不可预测,并且缺乏控制。
  • Level 2 - Managed:具有需求管理,具有项目策划与监控。
  • Level 3 - Defined:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
  • Level 4 - Quantitatively Managed:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
  • Level 5 - Optimizing:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

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

CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成。CMMI与SWEBoK 不同。SWEBoK 不合适度量一个企业的软件工程能力,而CMMI则正好在这方面迎合了企业的需求,这是一套对企业或组织的软件建造能力的评价体系。CMMI有三点基本思想:1.解决软件项目过程改进难度增大问题。2.实现软件工程的并行与多学科组合。3.实现过程改进的最佳效益。CMMI项目初步的目标(在2000年已达到,其发布的版本是CMMI-SE/SW和CMMI-SE/SW/IPPD模型)是集成三个特殊的过程改进模型:软件CMM、系统工程能力评估标准以及集成化产品和过程开发模型。CMMI项目长期的目标是为今后把其他学科(如获取过程和安全性)添加到CMMI中奠定基础。为了促进模型集成,CMMI产品开发组建立了一个自动的、可扩展的框架,其中可放入构件、培训资料构件以及评估资料。在已定义的规则控制下,更多的新学科能被加入到该框架中。

猜你喜欢

转载自blog.csdn.net/kid_hw/article/details/88428718