Skip to content

komorebiq/homework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

系统分析与设计作业一

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

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护有效的、实用的和高质量软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,它主要涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

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

  • 本质原因

软件危机与硬件和软件开发过程的整体复杂性有关。本质原因是软件需求猛增且缺乏科学开发方法的指导,具体体现为缺乏正确的理论指导,软件开发规模越来越大,软件开发复杂度越来越高。

  • 表现

项目超预算 项目超时 软件低效 软件低质量 软件经常不满足需求 程序不能管理、代码难以维护 软件永远不发布

  • 克服软件危机的方法

(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。 (2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施

软件生命周期

软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。

软件生命期的七个阶段:

问题的定义与规划

需求分析

软件设计

程序编 软件测试

系统转换

运行维护

常见的模型包括瀑布模型、迭代式模型、快速原型模型、螺旋模型

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

  • 软件要求(Software Requirements)

软件要求KA关注软件需求的启发,协商,分析,规范和验证。

  • 软件设计(Software Design)

设计被定义为两个限定的体系结构,组件,接口,以及其它的系统或部件的特性的过程,和过程的结果(IEEE 1991)。软件设计KA涵盖了设计过程和最终产品。软件设计过程是软件工程生命周期活动。

  • 软件构建(Software Construction)

软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来详细创建工作软件。软件构建KA包括与满足其要求和设计约束的软件程序开发相关的主题。

  • 软件测试(Software Testing)

测试是一项旨在评估产品质量并通过识别缺陷来改进产品质量的活动。软件测试涉及在有限的测试用例集上针对预期行为动态验证程序的行为。

  • 软件维护(Software Maintenance)

软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行,以及纠正缺陷。这些类别称为完善,自适应和纠正性软件维护。

  • 软件配置管理(Software Configuration Management)

系统的配置是硬件,固件,软件或这些的组合的功能和物理特征。它还可以被视为根据特定构建过程组合的特定版本的硬件,固件或软件项的集合,以满足特定目的。因此,软件配置管理(SCM)是在不同时间点识别系统配置的规则,用于系统地控制配置的改变,以及在整个软件生命周期中维持配置的完整性和可追溯性。

  • 软件工程管理(Software Engineering Management)

软件工程管理涉及规划,协调,测量,报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。

  • 软件工程过程(Software Engineering Process)

软件工程关注软件生命周期过程的定义,实施,评估,测量,管理和改进。

  • 软件工程模型和方法(Software Engineering Models and Methods)

软件工程模型和方法解决了涵盖多个生命周期阶段的方法; 其他KAs涵盖特定生命周期阶段的特定方法。

  • 软件质量(Software Quality)

软件质量是许多SWEBOK V3 KAs中普遍存在的软件生命周期问题。

  • 软件工程专业实践(Software Engineering Professional Practice)

软件工程专业实践关注软件工程师必须具备的专业,负责和道德的软件工程知识,技能和态度。

  • 软件工程经济学(Software Engineering Economics)

软件工程经济学关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。

  • 计算基础(Computing Foundations)

计算基础涵盖了提供软件工程实践所需的计算背景的基础主题。

  • 数学基础(Mathematical Foundations)

数学基础涵盖了提供软件工程实践所必需的数学背景的基础主题。

  • 工程基础(Engineering Foundations)

工程基础涵盖了提供软件工程实践所必需的工程背景的基础主题。

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

Level 1 - 初始级(Initial):软件开发过程是无序的,有时候甚至是混乱的,对过程几乎没有定义,管理是反应式的。是一种自发的生产模式。

Level 2 - 可管理级(Managed):建立了基本的项目管理过程来跟踪费用、进度和功能特性,制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。

Level 3 - 已定义级(Defined):已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。

Level 4 - 量化管理级(Quantitatively Managed):分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。

Level 5 - 优化管理级别(Optimizing):过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

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

SWEBok,即软件工程知识体系,为软件工程学科提供了一个国际标准,描述了关于软件工程的普遍接受的知识。其为软件工程的系统性规范性以及可量化性在15个方面的知识域提供了理论基础。建立软件工程本体知识的结构是确立软件工程专业至关重要的一步,如果没有一个得到共识的软件工程本体知识结构,将无法验证软件工程工程师的资格,无法设置相应的课程,或者无法建立对相应课程进行认可的判断准则。其为软件工程的发展奠定坚实的基础。

CMMI: CMMI 的主要目标就是为了解决软件危机中软件开发过程中遇到的问题。通过过程域的方式组合软件工程中的各个部分,消除不同模型期间的不一致和重复,降低基于模型改善的成本。主要用于工程设计的生命周期。是各个进程的一个关键的元素,在很多领域里面一个集成的点。它是这样的一个基本架构,能够用来度量你的有效性和实用性;能够找出这样的一些机会,继续改进的机会,包括在商业目标、策略还有降低项目的风险等方面。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published