系统分析与设计第一次作业

简答题

1.软件工程的定义

  • 以下是IEEE的定义。
    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)中的方法的研究。

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

根据维基百科Software_crisis词条
software crisis(软件危机)本质原因:

The main cause is that improvements in computing power had outpaced the ability of programmers to effectively utilize those capabilities. Various processes and methodologies have been developed over the last few decades to improve software quality management such as procedural programming and object-oriented programming. However software projects that are large, complicated, poorly specified, and involve unfamiliar aspects, are still vulnerable to large, unanticipated problems.
翻译如下:
主要原因是提高的计算力超过了程序员来有效地使用这些计算力的能力。在过去的几十年里,各种流程和方法已经发展以提高软件质量,例如管理过程式编程和面向对象编程等。然而大型软件项目,复杂,不指定,并涉及到不熟悉的方面,仍然容易受到大,未预料到的问题。

software crisis(软件危机)表现在

Projects running over-budget:项目完成超出预算。
Projects running over-time:项目完成超出时间。
Software was very inefficient:软件是低效的。
Software was of low quality:软件是低质量的。
Software often did not meet requirements:软件不满足需求。
Projects were unmanageable and code difficult to maintain:项目是难以管理以及代码是难以维护的。
Software was never delivered:软件从不交付。

根据百度百科软件危机词条

1.从硬件工程和其他人类工程中吸收了许多成功的经验,明确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用的技术和方法,并应用于软件工程实践,取得良好的效果。
2.研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境,以期从管理和技术两方面解决软件危机问题。
3.件标准化与可重用性得到了工业界的高度重视,在避免重用劳动,缓解软件危机方面起到了重要作用。

3. 软件生命周期

根据百度百科软件生命周期词条

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。通常,软件生存周期包括:

  • 一、问题定义。要求系统分析员与用户进行交流,弄清“用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认。
  • 二、可行性研究。一方面在于把待开发的系统的目标以明确的语言描述出来,另一方面从经济、技术、法律等多方面进行可行性分析。
  • 三、需求分析。弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。
  • 四、开发阶段。开发阶段由四个阶段组成:
    1、概要设计
    2、详细设计
    3、实现:根据选定的程序设计语言完成源程序的编码。
    4、测试
  • 五、维护:维护包括四个方面
    1、改正性维护:在软件交付使用后,由于开发测试时的不彻底、不完全、必然会有一部分隐藏的错误被带到运行阶段,这些隐藏的错误在某些特定的使用环境下就会暴露。
    2、适应性维护:是为适应环境的变化而修改软件的活动。
    3、完善性维护 [1] :是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。
    4、预防性维护:是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。

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

根据An Overview of the SWEBOK Guide
SWEBoK 的 15 个知识域

  • 软件需求
    软件需求知识领域关注软件需求的启发,协商,分析,规范和验证。在软件行业中,人们普遍认为,当这些活动表现不佳时,软件工程项目非常容易受到攻击。软件需求表达了对软件产品的需求和限制,这些需求和约束有助于解决一些现实问题。
  • 软件设计
    定义系统或者组件的体系结构、组件、接口和其他特征的过程,以及这个过程所得到的结果
  • 软件构建
    软件建设指的是详细的创建工作软件的详细设计、编码、单元测试、集成测试、调试和验证。
  • 软件测试
    测试是一项评估产品质量并通过识别缺陷来改进产品质量的活动。软件测试涉及根据有限的测试用例集上的预期行为对程序行为进行动态验证。这些测试用例是从(通常非常大)执行域中选择的。软件测试KA包括软件测试的基础知识、测试技术、人机界面测试和评估、测试相关措施和实际考虑。
  • 软件维护
    软件维护包括增强现有的能力,使软件适应新的和修改过的操作环境,以及纠正缺陷。这些类别被称为完善的、适应性的和纠正性的软件维护。软件维护知识域包括软件维护的基础知识(维护的性质和需要、维护的类别、维护成本);软件维护中的关键问题(技术问题、管理问题、维护成本估算、软件维护的测量);维护过程;软件维护技术。(程序理解、重新设计、逆向工程、重构、软件退役);灾难恢复技术和软件维护工具。
  • 软件配置管理
    系统的配置是硬件、固件、软件的功能和/或物理特性,或这些特性的组合。它还可以被视为硬件、固件或软件项的特定版本的集合,根据特定的构建过程进行组合以满足特定的目的。
  • 软件工程管理
    软件工程管理包括计划、协调、测量、报告和控制项目或程序,以确保软件的开发和维护是系统的、有纪律的和量化的。》
  • 软件工程过程
    该软件工程知识域涉及软件生命周期过程的定义、实现、评估、测量、管理和改进。
  • 软件工程模型与方法
    所涵盖的主题包括建模(软件工程模型的原理和属性;语法与语义与不变量;前提条件、后条件和不变量);模型类型(信息、结构和行为模型);分析(分析正确性、完整性、一致性、质量和交互;可追溯性;和权衡分析);和软件开发方法(启发式方法、形式方法、原型方法和敏捷方法)。
  • 软件质量
    软件质量知识域包括软件质量基础(软件工程文化、软件质量特征、软件质量的价值和成本以及软件质量改进);软件质量管理过程(软件质量保证、验证和确认、评审和审计);以及实用性。注意事项(缺陷描述、软件质量度量和软件质量工具)。
  • 软件工程专业实践
    软件工程专业实践知识域涵盖专业性(专业行为、专业协会、软件工程标准、雇佣合同和法律问题);道德规范;群体动力学(团队合作、认知问题复杂性、与利益相关者互动、处理不确定性和模糊性、处理具有多元文化环境);以及沟通技巧。

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

  • 软件工程经济学
    软件工程经济学知识域关注于在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。
  • 计算基础
    计算基础涵盖了为软件工程实践提供必要计算背景的基本主题。所涵盖的主题包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算基础、计算机组织、操作系统和网络通信。
  • 数学基础
    数学基础涵盖了为软件工程实践提供必要数学背景的基本主题。所涉及的主题包括集合、关系和函数;基本命题和谓词逻辑;证明技术;图和树;离散概率;语法和有限状态机;以及数论。
  • 工程基础
    工程基础涵盖了为软件工程实践提供必要工程背景的基本主题。涵盖的主题包括经验方法和实验技术;统计分析;测量和度量;工程设计;模拟和建模;以及根本原因分析。

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

  • Maturity Level 1 - Initial
    无序,自发产生模式
  • Maturity Level 2 - Managed
    建立基本管理过程,能借鉴已有项目的成功经验。缺点是只能借鉴已有的项目,不够系统,比较被动。
  • Maturity Level 3 - Defined
    管理过程组织化,项目根据组织的标准进行,主动性增强
  • Maturity Level 4 - Quantitatively Managed
    量化管理,过程可控,管理操作有理论依据,结果性能可预测
  • Maturity Level 5 - Optimizing
    过程的量化反馈和先进的新思想、新技术促使管理过程不断改进。
    每个过程域,都有一些特殊目标和通用目标,通过相应的特殊实践和通用实践来实现这些目标。当一个过程域的所有特殊实践和通用实践都按要求得到实施,就能实现该过程域的目标。

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

SWEBok全名软件工程知识体系,它IEEE计算机协会发布的一个国际标准,它描述普遍接受的知识体系部分,一共提出了15个知识域,对这15个知识域进行了描述与说明。这样可以统一人们对软件工程的看法。根据这些知识域,软件工程的培训课程也有了基础,软件工程师的认证和许可也有了相关的依据。除此之外,其中的部分知识域与其他专业的相关知识有关,因此这个体系也指明了软件工程相对于其他专业的位置和界限。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值