SWAD_hw1

简答题

软件工程的定义

软件工程是研究和应用如何以系统性的,规范性的,可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面

解释导致 software crisis 本质原因、表现,述说克服软件危机的方法
  • 本质原因:由于软件的大量需求与软件生产力效率之间的矛盾以及软件系统的复杂性与软件开发方法之间的矛盾
  • 表现:
    • 项目运行超出预算
    • 项目运行超过时间
    • 软件质量低落
    • 软件通常不匹配需求
    • 项目无法管理,且代码难以维护
  • 克服软件危机的方法
    • 借鉴其他工程项目行之有效的原理、概念、技术与方法,特别是吸取人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中做到良好的组织,严格的管理,相互友好的协作。
    • 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和做法。
    • 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具合成一个整体,形成一个良好的软件开发环境。
软件生命周期

在时间维度,对软件项目任务进行划分,又成为软件开发过程。常见有瀑布模型、螺旋模型、敏捷的模型等。

SWEBoK 的 15 个知识域
  • Software Requirements 软件需求

    软件需求表达了对软件产品的需求和约束,这些需求和约束有助于解决一些实际问题。

  • Software Design 软件设计

    设计是定义系统或组件的体系结构、组件、接口和其他特征的过程、以及该过程的结果。

  • Software Construction 软件构造

    通过详细设计、编码、单元测试、集成测试、调试和验证相结合,对工作软件进行详细的创建。

  • Software Testing 软件测试

    为了验证产品质量并且通过指出缺陷来增进软件质量的活动。

  • Software Maintenance 软件维护

    包括增强现有的功能,使得软件在新的环境中运行以及修正缺陷。

  • Software Configuration Management 软件配置管理

    软件配置管理(Software Configuration Management): 系统的配置是硬件、固件、软件或它们的组合的功能和/或物理特征。它还可以看作是硬件、固件或软件项目的特定版本的集合,为了服务于特定的目的,将这些硬件、固件和软件项目根据特定的构建过程组合在一起。因此,软件配置管理(SCM)是在不同的时间点识别系统配置的规程,以便系统地控制配置的更改,并在整个软件生命周期中维护配置的完整性和可追溯性

  • Software Engineering Management 软件工程管理

    包括计划、协调、测量、报告和控制一个项目或程序,确保软件的开发和维护是系统的、规范化的、可定量的。

  • Software Engineering Process 软件工程过程

    软件工程知识领域关注软件生命周期过程的定义,实现,评估,测量,管理和改进。主题包括过程实现和改变(过程基础设施,过程实现和改变模型,和软件过程管理),过程定义(软件生命周期模型和过程,过程定义,过程适应和自动化过程的符号),过程评估模型和方法,测量(过程测量,产品测量,技术测量和测量结果质量)和软件过程工具。

  • Software Engineering Models and Methods 软件工程模型和方法

    软件工程技术和管理的原理、原则、方法

  • Software Quality 软件质量

    软件质量是软件生命周期普遍关注的,存在于许多 SWEBOK V3 知识领域中。此外,软件质量知识领域包括软件质量基础(软件工程文化,软件质量特征,软件质量价值和成本和软件质量改进),软件质量管理过程(软件质量保证,认证和确认,审核和审计)和实际考量(缺陷特征,软件质量测量和软件质量工具)。

  • Software Engineering Professional Practice 软件工程专业实践

    软件工程专业实践关注软件工程师必须具备的知识,技巧和态度,以用一种专业,负责和正直的态度来时间软件工程。软件工程专业实践知识领域涵盖专业性(专业行为,专业协会,软件工程标准,雇佣合同和法律问题),道德准则,动态小组(团队合作,认知问题复杂性,与利益相关者交互,不确定性和模糊性的处理,多元环境处理)和交流技巧。

  • Software Engineering Economics 软件工程经济学

    软件工程经济学知识领域关注在商业环境中做出决策,以使技术决策和商业目标达成一致。

  • Computing Foundations 计算基础

    计算基础知识领域涵盖对于软件工程实践必须的计算背景的基础主题。涵盖主题包括问题解决技术,抽象,算法和复杂度,编程基础,并行和分布式计算基础,计算机组成,操作系统和网络通信。

  • Mathematical Foundations

    数学基础知识领域涵盖对于软件工程实践必须的数学背景的基础主题。涵盖的主题包括集合,关系和函数,基础命题和谓词逻辑,证明技术,图和树,离散概率,语法和有限状态机,数论。

  • Engineering Foundations

    工程基础知识领域涵盖对于软件工程实践必须的工程背景的基础主题。涵盖的主题包括经验方法和实验技术,统计分析,测量和指标,工程设计,模拟和建模,根本原因分析。

CMMI的五个级别
  • Level 1 - Initial: 没有可预知的生产过程,缺乏控制和应变能力
  • Level 2 - Managed: 生产过程为每个项目特制,一般有一定的应变能力。
  • Level 3 - Defined: 生产过程为组织所定制,并且积极主动。
  • Level 4 - Quantitatively Managed: 生产过程可测度(预知)且可控。
  • Level 5 - Optimizing: 生产专注于过程优化。
    在这里插入图片描述
用自己语言简述 SWEBok 或 CMMI

CMMI是一个模型,由工业界,政府,以及CMU大学的SEI共同提出。CMMI是为了给某些为了达到商业目标的组织和项目提出的发展和提升的指导。同时,它也可以作为评估某个组织或项目的成熟性的框架。

CMMI高度抽象,并不限于软件开发。CMMI源于软件业,但如今以发展到适用于许多其他领域,包括硬件产品发展,服务的提供等等。

CMMI是一个模型但并非一个标准。它并不提供达到某种成熟级别的具体方法,而是给出抽象的方向指导,具体的实现方法由执行者确定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值