系统分析与设计 Homework 1

简答题

  • 软件工程的定义

        Software engineering is “(1) 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 “(2) the study of approaches as in (1).” –– IEEE Standard 610.12

    软件工程是将系统化的、规范化的、可度量的方法应用到软件的开发、运行和维护当中,即工程化的应用。以及对上述方法的研究。

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

    原因:落后的软件生产方式无法满足迅速增长的计算机软件需求。

    表现:

  1.   软件开发进度难以预测
  2.   软件开发成本难以控制
  3.   产品质量无法保证
  4.   难以满足用户需求
  5.   软件难以维护
  6.   软件缺少适当的文档资料

    克服的方法:

  1. 建立软件生产的规范体系用于指导软件系统的生产活动。
  2. 限制和使用软件工具,辅助进行项目管理与技术生产。
  3. 应用软件生命周期模型,发展软件开发和维护适用的技术和方法。
  • 软件生命周期

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

  • SWEBoK的15个知识域
    •   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(工程基础)
      工程基础包括提供软件工程实践所必需的工程背景基础。包括经验方法和实验技术、统计分析、测量和指标、工程设计、仿真与建模以及根本原因分析。
  • 简单解释CMMI的五个级别
    Lv 1 — Initial(初始级)
      软件过程是无序的,对过程几乎没有定义,进度、预算、功能和质量等方面不可预测,自发生产模式,管理是反应式的。
    Lv 2 — Repeatable(可重复级)
      过程实现:
        制度化:建立了基本的项目管理过程来跟踪费用、进度和功能特性。
        纪律化:制定了必要的过程纪律。
        可重复:能重复早先类似应用项目取得的成功经验。
    Lv 3 — Defined (已定义级)
      过程实现标准化,并综合成该组织的标准软件:所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
    Lv 4 — Managed (量化管理级)
      过程实现定量化:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
    Lv 5 — Optimizing (优先管理级)
      过程的量化反馈和先进的新思想、新技术促使过程持续不断自发改进。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值