系统分析与设计-hw1

简答题

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

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

  • 本质原因:

    • 软件的大量需求与软件生产力效率之间的矛盾
    • 软件系统的复杂性与软件开发方法之间的矛盾
  • 表现:

    • 软件开发成本高,超出预算
    • 软件开发时间超出预期
    • 软件效率很低
    • 软件质量低劣
    • 软件不满足需求
    • 项目无法管理,代码难以维护
    • 软件不能被交付
  • 克服方法:

    • 正确认识计算机软件的内涵。
    • 采用工程项目管理方法实施软件开发的组织管理。软件开发应该是一种组织良好、管理严密、协同配合的工程活动。
    • 采用成熟的软件开发技术和方法,开发和使用适当的软件工具。
  1. 软件生命周期
    软件生命周期是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务,然后按规定顺序依次完成各阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。软件生命周期一般包括可行性分析与计划、需求分析、设计 (概要设计和详细设计)、编码实现、测试、运行与维护等活动。这些活动应当以适当的方式分配到不同的阶段去完成,常见软件生命周期模型有瀑布模型、螺旋模型、敏捷的模型等。

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

    1. Software Requirements(软件需求)
      软件需求关注软件需求的启发,协商,分析,规范和验证。在软件行业中,人们普遍认为,当这些活动表现不佳时,软件工程项目非常容易受到攻击。软件需求表达了对软件产品的需求和限制,这些需求和约束有助于解决一些现实问题。

    2. Software Design(软件设计)
      设计指定义系统或组件的体系结构、组件、接口和其他特征的过程以及这些过程的结果。软件设计涵盖了设计过程和最终产品。软件设计过程是软件工程生命周期活动,其中分析软件需求以产生软件内部结构及其行为的描述,其将作为其构造的基础。软件设计(结果)必须描述软件体系结构 - 即软件如何分解和组织成组件以及这些组件之间的接口。它还必须能够描述那些构建它们的组件。

    3. Software Construction(软件构建)
      软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来进行工作软件详细的构建。软件构建包括关于满足其要求和设计约束的软件程序开发的主题。这个知识领域涵盖了软件构建基础、管理软件建设、建筑技术、实际考虑和软件构建工具。

    4. Software Testing(软件测试)
      测试是一项旨在评估产品质量并通过识别缺陷来改进产品质量的活动。软件测试涉及在有限的测试用例集上针对预期行为动态验证程序的行为。这些测试用例是从(通常非常大的)执行域中选择的。软件测试知识领域包括软件测试的基础知识、测试技术、人机用户接口测试与评估、与测试有关的措施和实际考虑。

    5. Software Maintenance(软件维护)
      软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行,以及纠正缺陷。这些类别称为完善,自适应和纠正性软件维护。软件维护知识领域包括软件维护的基础知识(维护的性质和需求,维护类别,维护成本)、软件维护中的关键问题(技术问题,管理问题,维护成本估算,软件维护测量)、维护过程、软件维护技术(程序理解,重新设计,逆向工程,重构,软件退役)、灾难恢复技术和软件维护工具。

    6. Software Configuration Management(软件配置管理)
      系统的配置是硬件,固件,软件的功能和/或物理特征,或者它们的组合。它还可以被视为根据特定构建过程组合的特定版本的硬件,固件或软件项的集合,以满足特定目的。因此,软件配置管理(SCM)是在不同时间点识别系统配置的规则,用于系统地控制配置的改变,以及维持配置在整个软件生命周期中的完整性和可追溯性。软件配置管理知识领域涵盖SCM过程的管理、软件配置识别、控制、状态核算、审计、软件发布管理和交付和软件配置管理工具。

    7. Software Engineering Management(软件工程管理)
      软件工程管理涉及规划、协调、测量、报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。
      软件工程管理知识领域涵盖了启动和范围定义(确定和协商要求,可行性分析以及要求的审查和修订)、 软件项目计划(过程计划,工作量估算,成本和进度,资源分配,风险分析,质量计划)、软件项目制定(计量,报告和控制;收购和供应商合同管理)、产品验收、审查及分析项目绩效、项目结束和软件管理工具。

    8. Software Engineering Process(软件工程过程)
      软件工程关注软件生命周期过程的定义,实施,评估,测量,管理和改进。涵盖的主题包括流程实施和变更(流程基础架构,流程实施和变更模型以及软件流程管理)、流程定义(软件生命周期模型和流程,流程定义,流程适应和流程自动化的符号)、过程评估模型和方法;测量(过程测量,产品测量,测量技术和测量结果的质量)和软件处理工具。

    9. Software Engineering Models and Methods(软件模型和方法)
      软件工程模型和方法解决了涵盖多个生命周期阶段的方法,而其他知识领域涵盖特定生命周期阶段的特定方法。其涵盖的主题包括建模(软件工程模型的原理和属性,语法与语义与不变量,前置条件,后置条件和不变量)、模型类型(信息,结构和行为模型)、分析(分析正确性,完整性,一致性,质量和相互作用;可追溯性;以及权衡分析)和软件开发方法(启发式方法,形式方法,原型方法和敏捷方法)。

    10. Software Quality(软件质量)
      软件质量是许多SWEBOK V3 知识领域中普遍存在的软件生命周期问题。此外,软件质量知识领域还包括软件质量的基础知识(软件工程文化,软件质量特性,软件质量的价值和成本以及软件质量改进)、软件质量管理流程(软件质量保证,验证和确认,审核和审核)和实际考虑(缺陷表征,软件质量测量和软件质量工具)。

    11. Software Engineering Professional Practice(软件工程专业实践)
      软件工程专业实践关注软件工程师必须具备的软件工程知识,技能和态度,要求工程师专业,有责任心以及道德感。
      软件工程专业实践知识范围涵盖专业性(专业行为,专业协会,软件工程标准,雇佣合同和法律问题) 道德准则、小组动态(团队合作,认知问题复杂性,与利益相关者互动,处理不确定性和模糊性,处理多元文化环境)和沟通技巧。

    12. Software Engineering Economics(软件工程经济学)
      软件工程经济学关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。涵盖的主题包括软件工程经济学的基本原理(提案,现金流量,货币时间价值,计划视野,通货膨胀,折旧,替代和退休决策)、非营利性决策(成本效益分析,优化分析)、估计、经济风险和不确定性(估算技术,风险决策和不确定性)、和多属性决策(价值和衡量尺度,补偿和非补偿技术)。

    13. Computing Foundations(计算基础)
      计算基础涵盖了提供软件工程实践所需的计算背景的基础主题。涵盖的主题包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算的基础知识、计算机组织、操作系统和网络通信。

    14. Mathematical Foundations(数学基础)
      数学基础涵盖了软件工程实践所必需的数学背景的基础主题。涵盖的主题包括集合、关系和功能、基本命题和谓词逻辑、证明方法、图论、离散概率、语法和有穷状态机和数论。

    15. Engineering Foundations(工程基础)
      工程基础涵盖了提供软件工程实践所必需的工程背景的基础主题。涵盖的主题包括经验方法和实验技术、统计分析、测量和指标、工程设计、仿真与建模和根本原因分析。

  3. 简单解释 CMMI 的五个级别。
    Level 1 - Initial:无序,自发生产模式。
    Level 2 - Managed:制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
    Level 3 - Defined:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。
    Level 4 - Quantitatively Managed:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。
    Level 5 - Optimizing:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

  4. 用自己语言简述 SWEBok 或 CMMI (约200字)
    CMMI,即能力成熟度模型集成,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值