[系统分析] 作业1

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

软件工程是(1)系统性,规范性,定量化方法开发,运行,维护软件的应用。这是工程方法在软件上的应用。(2)对(1)中描述方法的研究

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

本质原因:

因为软件具有以下本质特性。

  • complexity 复杂性
  • conformity 一致性
  • changeability 可变性
  • invisibility 不可视性

表现:

  • 项目运行超出预算。
  • 项目运行超过时间。
  • 软件质量低落。
  • 软件通常不匹配需求。
  • 项目无法管理,且代码难以维护。

克服方法:

要克服软件危机,就要认真分析软件危机的原因,探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新

软件生命周期

软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。旧的解释是周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。

  • 软件分析时期:问题定义、可行性研究、需求分析、风险分析
  • 软件设计时期:总体设计、详细设计
  • 编码与测试时期:编码、测试
  • 运行与维护时期

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。软件配置管理。配置和安排硬件,固件,软件的过程。
  7. Software Engineering Management。软件工程管理。计划,协助,测量,报告,控制项目,保证软件的开发和维护是系统,有序,可量化的。
  8. Software Engineering Process:软件工程过程。在软件生命周期中考虑软件定义,实现,评估,测量,管理,提高的过程。
  9. Software Engineering Models and Methods。软件工程模型和方法。围绕软件生命周期的多个阶段展开,包括建模,模型类型,分析,软件开发方法等。
  10. Software Quality:软件质量。包括软件量化基础,软件量化管理,应用考虑等方面。
    【软件工程基础教育】
  11. software engineering economics。软件工程经济学,指在业务环境中作出决策,以使技术决策与组织的业务目标保持一致,包括软件工程经济学基础、非盈利决策、估算经济风险和不确定性、多属性决策
  12. computing foundations。计算机基础,指软件工程实践必需的计算机能力,包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算基础、计算机组织、操作系统以及网络通信
  13. mathematical foundations。数学基础,指软件工程实践必需的数学能力背景,包括集合、关系和函数、基本命题和谓词逻辑、证明技术、图和树、离散概率、语法和有限状态机、数论
  14. engineering foundations。工程基础,指软件工程实践必需的工程背景,包括经验方法和实验技术、统计分析、测量和度量、工程设计、模拟和建模、根本原因分析

简单解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

  1. 初始级(Initial)
    软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
  2. 可管理级(Managed)
    建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
  3. 已定义级(Defined)
    已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
  4. 量化管理级(Quantitatively Managed)
    分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
  5. 优化管理级(Optimizing)
    过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

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

SWEBok(software engineering body of knowledge),软件工程知识体系,是IEEE Computer Society 建立的软件生产的最佳实践与相关知识的框架,指导了软件工程人才的培养与学科建设。SWEBok分为两个部分,分别是软件工程实践和软件工程基础教育,分别下设了11个和4个知识领域。
软件工程实践部分对于软件开发的流程规范进行了研究,对开发过程管理行为做出了方向性的指引,对软件开发过程中的专业性和完整性进行了分析,同时也对软件制品质量做出了保证。
软件工程基础教育部分对软件开发从业者的能力背景提出了要求,分别从经济学逻辑、计算机基础、数学基础以及工程基础对从业者做出了规范,对于学科建设和人才培养提出了具有建设性的意见。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值