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

简答题


1. 软件工程的定义

Software engineering is “ the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software,” and “ the study of approaches as in .” –– IEEE Standard 610.12

应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、和维护的工程或进行研究的学科

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

  • 本质原因:
    • 软件的大量需求与软件生产力效率之间的矛盾
    • 软件系统的复杂性与软件开发方法之间的矛盾
  • 表现:
    • 项目成本超出预算
    • 项目进度无法得到保证
    • 软件产品质量低下
    • 软件产品无法满足用户需求
    • 软件产品难以维护
    • 软件产品难以达到交付
  • 克服软件危机的方法:
    • 正确认识计算机的内涵
    • 采用工程项目管理方法实施软件开发的组织管理
      • 软件开发应该是一种组织良好、管理严密、协同配合的活动
    • 采用成熟的软件开发技术和方法,开发和使用适当的软件工具

3.软件生命周期

  • 计算机软件有一个孕育、诞生、成长、成熟、衰亡的生存过程,这样的过程称为软件的生命周期 (也称软件开发生命周期 SDLC)。软件生命周期将软件开发过程划分为若干阶段,每个阶段有明确的任务目标和运行机制,从而使复杂的软件开发过程能够得到适当的控制和管理。
  • 软件生命周期一般包括可行性分析与计划、需求分析、设计 (概要设计和详细设计)、编码实现、测试、运行与维护等活动。这些活动应当以适当的方式分配到不同的阶段去完成。
  • 常见有瀑布模型、螺旋模型、敏捷的模型等。

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

15个知识域包括11个软件工程实践知识域以及4个软件工程教育基础知识域。

  • 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 软件质量:涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。
  • Software Engineering Professional Practice 软件工程专业实践:关注软件工程师必须具备的专业,负责和符合伦理的软件工程知识,技能和态度。
  • Software Engineering Economics 软件工程经济学:关注在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。
  • Computing Foundations 计算基础:提供软件工程实践所需的计算背景。
  • Mathematical Foundations 数学基础:提供软件工程实践所需的数学背景。
  • Engineering Foundations 工程基础:提供软件工程实践所需的工程背景。

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 即 能力成熟度模型集成,是在1994年由美国国防部与卡内基-梅隆大学下的软件工程研究中心以及美国国防工业协会共同开发和研制的,他们计划把现在所有现存实施的与即将被发展出来的各种能力成熟度模型,集成到一个框架中去,申请此认证的前提条件是该企业具有有效的软件企业认定证书。
其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值