系统分析与设计 - HW1

软件工程的定义

软件工程即用系统、规范、可量化的工程学方法开发构建软件的一门学科,它包括了与软件的设计,实施,测试和记录相关的科学技术知识,方法和经验。

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

软件危机的本质原因是计算机日益增长的计算能力和落后的软件开发能力之间的矛盾(politically)。其表现可分为以下几点:

  • 开发过程超预算
  • 开发时间过长
  • 软件的运行效率很低
  • 软件的质量很差
  • 软件的开发不符合要求
  • 项目难以管理,代码难以维护
  • 软件开发最终无法实现交付

在过去的几十年中,已经开发了各种过程和方法来改进软件质量管理例如 面向过程编程和面向对象的编程。然而,大型,复杂,指定不当以及涉及不熟悉方面的软件项目仍然容易受到大的,未预料到的问题的影响。

良好的解决方法就是,发展软件工程,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,应用于软件开发过程。

软件生命周期

软件生命周期是指软件从产生直到报废或停止使用的生命周期。软件生命周期的6个阶段:

  • 可行性分析与计划阶段
  • 需求分析阶段
  • 设计阶段
  • 实现阶段
  • 测试阶段
  • 运行与维护阶段

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

  • Software Requirements:软件需求
    关注软件需求的启发,协商,分析,规范和验证。软件需求表达了对软件产品的需求(needs)和限制,有助于解决一些现实问题。

  • 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 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

​ CMMI包含五个级别:

  • 初始级:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。

  • 可管理级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。

  • 已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。

  • 量化管理级:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。

  • 优化管理级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

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

CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。CMMI能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范,且有利于成本控制,有助于提高软件开发者的职业素养,有利于提升公司和员工绩效管理水平,能够解决人员流动所带来的问题等。

你可能感兴趣的:(系统分析与设计 - HW1)