系统分析与设计HW1

简答题

1.软件工程的定义

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

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

  • 原因
    软件危机指落后的软件生产方式无法满足迅速增长的计算软件需求,从而导致软件开发与维护过程中出现一系列严重问题。软件危机的本质原因是计算机的迅速发展。
  • 表现
    ①软件开发费用和进度失控②软件的可靠性差③软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力等等。
  • 克服方法
    在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的写作。推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和做法。根据不同的应用领域,开发更好的软件工具。将软件开发各个阶段使用的软件工具合成一个整体,形成一个好的软件开发环境。

3.软件生命周期

软件生命周期(Life Cycle):在时间维度,对软件项目任务进行划分,又成为软件开发过程。

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

1)软件工程实践知识域

  • 软件需求 Software requirements
    真实世界问题而必须展示的特性。软件需求的知识域包括七个子域,即软件需求基础、需求过程、需求获取、需求分析、需求规格说明、需求确认和实践考虑。
  • 软件设计 Software design
    根据IEEE [ IEEE 610.12-90] ,设计既是"定义一个系统或组件的体系结构、组件、接口和其他特征的过程",又是"这个过程的结果"。软件设计的知识域包括六个子域,即软件设计基础、软件设计关键问题、软件结构与体系结构、软件设计质量的分析与评价、软件设计符号、软件设计的策略与方法。
  • 软件构造 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
    指软件工程师必须具备的知识、技能和态度,以一种专业、负责和道德的方式来实践软件工程。软件工程专业实践知识域涵盖专业(专业行为、专业协会、软件工程标准、雇佣合同、法律问题),伦理准则;团队动态(在团队中工作,认知问题的复杂性,与利益相关者的互动,处理不确定性和模糊性,处理多元文化环境)和沟通能力。

2)软件工程教育基础知识域

  • 软件工程经济学 Software engineering economics
    软件工程经济学知识域关注于在业务上下文中做出决策,以使技术决策与组织的业务目标保持一致。所涵盖的主题包括软件工程经济学的基本原理(建议、现金流量、金钱的时间价值、规划期限、通货膨胀、折旧、重置和退休决定);非营利性决策(成本效益分析、优化分析);评估、经济风险和不确定性(评估技术、风险和不确定性下的决策);以及多属性决策(值和度量尺度、补偿和非补偿技术)。
  • 计算基础 Computing foundations
    计算基础知识域涵盖了为软件工程实践提供必要的计算背景的基本主题。主题包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算的基础、计算机组织、操作系统和网络通信。
  • 数学基础 Mathematical foundations
    数学基础知识域涵盖了为软件工程实践提供必要数学背景的基本主题。主题包括集合、关系和函数;基本命题逻辑和谓词逻辑;证明技术;图表和树木;离散型概率;语法和有限状态机;和数论。
  • 工程基础 Engineering foundations
    工程基础知识域涵盖了为软件工程实践提供必要的工程背景的基本主题。所涵盖的主题包括实证方法和实验技术;统计分析;测量和度量;工程设计;仿真和建模;以及根本原因分析。

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

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

6.简述SWEBOK

SWEBOK是IEEE计算机学会职业实践委员会主持的一个项目,其目标为:促进世界范围内对软件工程的一致观点。阐明软件工程相对其它学科的位置,并确立它们的分界。刻画软件工程学科的内容。提供使用知识体系的主题。为开发课程和个人认证与许可材料,提供一个基础。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值