系统分析与设计【作业一】

简答题

  • 软件工程的定义

    • 软件工程是指应用系统的,规范的,可量化的方法来开发,操作和维护软件,也即将工程方法应用于软件。
    • 对(1)所提到的方法的研究。对(1)所提到的方法的研究。
  • 解释导致 software crisis 本质原因、表现,述说克服软件危机的方法

    • 导致软件危机的本质原因
      软件危机是由于计算机能力的迅速增加以及无法解决的问题的复杂性导致的。计算能力的提高超过了程序员有效利用这些能力的能力。简单说就是计算机的发展导致越来越多难题的出现,编程变得越来越难。

    • 软件危机的表现

      • 项目运行超预算
      • 项目运行时间过长
      • 软件效率很低
      • 软件质量很差
      • 软件通常不符合要求
      • 项目难以管理,代码难以维护
      • 软件从未交付过
    • 克服软件危机的方法
      为了克服软件危机,需要构建软件生产的最佳实践与相关知识的框架,指导软件工程人才的培养与学科建设。要充分吸收和借鉴人类长期以来从工程中积累的有效的原理,概念和方法,发展出更好的软件开发和管理方法。但我们必须清楚这是一个优化问题,基于软件的复杂性,很难做到完全克服软件危机,只能不断减少危机。

  • 软件生命周期

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

    • 瀑布模型
      在这里插入图片描述

    • 螺旋模型
      在这里插入图片描述

    • 敏捷的模型
      敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,相对于传统软件开发方法的“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。

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

    软件工程实践的知识领域

    • 软件需求(Software Requirements)
      软件需求关注软件需求的启发,协商,分析,规范和验证,当上述特点表现不好的时候,软件项目容易受到攻击。软件需求表达了对软件产品的需求和限制,这些需求和限制有助于解决一些现实问题。
    • 软件设计(Software Design)
      软件设计是系统或组件的体系结构,组件,接口和其他特征的过程以及过程的结果。软件设计涵盖了设计过程和最终产品,其必须描述软件体系结构,还必须描述能够构建它们的详细程度的组件。
    • 软件构建(Software Construction)
      软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来详细创建工作软件。
    • 软件测试(Software Testing)
      测试是指旨在评估产品质量并通过识别缺陷来改进产品质量的活动。
    • 软件维护(Software Maintenance)
      软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行以及纠正缺陷。
    • 软件配置管理(Software Configuration Management)
      软件配置管理(SCM)是在不同时间点识别系统配置的规则,用于系统地控制配置的改变,以及在整个软件生命周期中维持配置的完整性和可追溯性。
    • 软件工程管理(Software Engineering Management)
      软件工程管理涉及规划,协调,测量,报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。
    • 软件工程过程(Software Engineering Process)
      软件工程关注软件生命周期过程的定义,实施,评估,测量,管理和改进。
    • 软件工程模型和方法(Software Engineering Models and Methods)
      软件工程模型和方法解决了涵盖多个生命周期阶段的方法。
    • 软件质量(Software Quality)
      软件质量是许多SWEBOK V3 KAs中普遍存在的软件生命周期问题。还包括软件质量的基础知识,软件质量管理流程和实际考虑。
    • 软件工程专业实践(Software Engineering Professional Practice)
      软件工程专业实践关注软件工程师必须具备的专业,负责和道德的软件工程知识,技能和态度。

    软件工程教育要求的知识领域

    • 软件工程经济学(Software Engineering Economics)
      软件工程经济学关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。
    • 计算基础(Computing Foundations)
      计算基础涵盖了提供软件工程实践所需的计算背景的基础主题。
    • 数学基础(Mathematical Foundations)
      数学基础涵盖了提供软件工程实践所必需的数学背景的基础主题。
    • 工程基础(Engineering Foundations)
      工程基础涵盖了提供软件工程实践所必需的工程背景的基础主题。
  • 简单解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

    • Level 1 - Initial
      无序,自发生产模式。
    • Level 2 - Managed
      基本的项目管理管理
    • Level 3 - Defined
      标准化,文档化。
    • Level 4 - Quantitatively Managed
      可预测,高可控,过程管理和控制。
    • Level 5 - Optimizing
      优化管理,过程改善。
      在这里插入图片描述
  • 用自己语言简述 SWEBok 或 CMMI (约200字)

SWEBoK全称Software Engineering Body of Knowledge,即构建软件生产的最佳实践与相关知识的框架,指导软件工程人才的培养与学科建设。它是一个国际标准ISO/IEC TR,指定了普遍接受的软件工程知识体系的指南。SWEBoK是几个专业机构和行业成员之间合作创建的。在第三版中SWEBoK将软件工程本体知识分为15个知识域,这些知识域又分为两类,分别是软件工程实践知识域和软件工程教育基础知识域。SWEBoK致力于促进世界范围内对软件工程的一致观点,阐明软件工程相对于其他学科的位置,刻画了软件工程学科的内容,促进软件工程学科的发展。

更多技术博客https://vilin.club/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值