系统分析与设计作业1

简答题

1.软件工程的定义

  • (1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件
  • (2)在(1)中所述方法的研究

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

  • 本质原因:计算能力和问题复杂性的快速增长使得现有的方法无法应对这样的快速提升的复杂性
  • 表现:
    • 项目运行超过预算
    • 项目运行的加班时间
    • 软件非常低效
    • 软件的低质量
    • 软件通常不符合要求
    • 项目难以管理和代码难以维护
    • 软件没有交付
  • 克服方法:
    • IEEE Computer Society 构建软件生产的最佳实践与相关知识的框架,称为 Software Engineering Body of Knowledge来指导软件工程人才的培养与学科建设。
    • 2014 V3 版的 SWEBoK 将知识分为软件工程实践和基础教育两个部分,共 15 个知识域(knowledge areas / KAs)。Software Requirements,Software Design 是其中最重要的两个领域。
    • 从实践的角度,Software Engineering Process 从时间维度给出了项目的过程模型(Process Models),其它则从内容角度给出了原则与方法。这样,就得到沿时间轴的二维表,这样软件工程就变成了在什么时刻、工作目标、应该做什么、怎么做的 最佳实践指南。

3.软件生命周期

  • 在时间维度,对软件项目任务进行划分,又成为软件开发过程。常见有瀑布模型、螺旋模型、敏捷的模型等。
  • 是一个包括了一款软件从发展到成熟的全过程。从一开始的初始发展到最后的发布,其中包括了几次用于改善体验和修复漏洞的版本迭代。

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

  • Software Requirements:软件需求涉及到对软件需求的引导、谈判、分析、规范和验证。如果这些步骤没做好,很容易导致项目崩溃。
  • Software Design:软件设计包括了设计过程和最终产品。软件设计需要在满足需求的基础上描述软件的内在结构、行为、各部件拆分和组织的方式以及能够实现这些结构的具体细节。
  • Software Construction:软件构建指设计、写代码、单元测试、综合测试、调试和核实的具体过程。软件构建包括能够满足设计和需求约束的发展主题,包括基本架构、管理、架构技术、多层次考量和构建工具。
  • Software Testing:软件测试通过有限的测试案例来核实有无与期待结果不符的行为,这包括相关的测试技术、使用者接口评估、测试相关联的方法和其他实用的考量。
  • Software Maintenance:软件维护包括优化现有的功能、适配软件到新的修改过的操作环境以及更改已知的错误。
  • Software Configuration Management:软件配置管理指为了能系统化地控制配置(硬件固件软件)带来的变化、维护配置的完整性和可扩展性而确定的配置准则。
  • Software Engineering Management:软件工程管理包括计划、合作、测量、报告和管理以期来达到软件开发维护的系统化、准则化和可量化。包括起始和范围定义、项目管理、项目实施、产品验收、回馈分析等。
  • Software Engineering Process:软件工程流程包括软件生命周期的定义、实施、评估、度量、管理和提升改进。
  • Software Engineering Models and Methods:软件工程模型和方法侧重强调构成多个生命周期阶段的方法和针对被其他KA覆盖的特定阶段的方法。包括了建模、模型类型、分析和软件发展方法。
  • Software Quality:软件质量包括了软件质量基本面、质量管理流程及其他考量。这个贯穿整个软件生命周期。
  • Software Engineering Professional Practice:软件工程专业实践涉及到工程师需具备的知识、技能和态度。软件工程专业实践KA涵盖专业(职业行为、职业社会,软件工程标准、劳动合同、和法律问题);伦理准则;组动力学(认知问题的复杂性,在团队工作,与利益相关者,交互处理不确定性和模糊性,应对多元文化环境);和沟通能力。
  • Software Engineering Economics:软件工程经济学指在商业环境下根据组织的商业目标来制定对应的技术决定。包括计划书商业成本预估风险等。
  • Computing Foundations:计算机基础包括能满足软件工程实践的必要的计算机知识背景。包括抽象、算法、并行化分布式,计组,操作系统等。
  • Mathematical Foundations:必要的数学基础,包括组、关系、函数、图、树、离散、有限状态机等。
  • Engineering Foundations:工程基础包括实验方法、实验技术、统计分析、测量度量、工程设计、仿真建模和基本原因分析。

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

  • level 1:初始,无序的,成功取决于个人,反应式管理。
  • level 2:可管理级,建立起必要的过程管理,可以重复成功经验。
  • level 3:已定义的,将过程文档化、标准化,使得软件生产过程可视化。
  • level 4:量化管理级,通过分析软件过程和质量能够对软件有定量的理解和管理,并能够对其性能有定量预测。
  • level 5:优先管理级,过程量化反馈,并根据新的先进技术思路促使过程不断改进。

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

  • CMMI是一个模型,而非一个标准,起源于软件工程,用于对过程级别改进和评估。CMMI侧重解决三个感兴趣的领域,包括产品和服务开发、服务建立和管理以及产品和服务收购。它的主要目标就是质量、时间表和成本控制。
  • 根据评估的模型,一个组织会被授予等级1~5。评估等级越高说明企业的管理水平和质量监管水平越高。一般企业这样做主要是为了通过评估发现自己组织内部的可改善空间,其次也是为了满足客户需求。一般企业在实施CMMI的时候,都会得到丰厚的回报,这些回报一方面来自于自身管理水平提高带来的收益,另一方面来自于更大客户的青睐带来的收益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值