系统分析与设计Homework1

目录

1.软件工程的定义

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

3.软件生命周期

4.SWEBoK的15个知识域

5.简单解释CMMI的五个级别

6.用自己语言简述SWEBok或CMMI


1.软件工程的定义

       Software engineering is “ 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 “ the study of approaches as in .”

       软件工程是将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程,即将工程化应用于软件开发中。软件工程是强调使用生存周期方法和各种结构分析及设计方法的技术。

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

  • 本质原因:随着计算机的发展,计算机的计算能力超过了程序员有效利用这些计算能力的能力。
  • 表现:
  1. 软件危机主要体现在软件的大量需求与软件生产效率之间的矛盾,以及软件系统的复杂性与软件开发方法之间的矛盾;
  2. 具体表现为软件需求增长得不到满足;软件生产高成本、价格昂贵;软件生产进度无法控制;软件需求定义不准确;软件质量不易保证;软件可维护性差等。
  • 克服的方法:探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新。

3.软件生命周期

  • 定义:软件生命周期是软件的产生直到报废或停止使用的生命周期,是将软件开发过程划分为若干阶段,每个阶段有明确的任务目标和运行机制,从而使复杂的软件开发过程能够得到适当的控制和管理。
  • 软件的生命周期一般可分以下几个阶段:
  1. 软件分析时期:问题定义、可行性研究、需求分析
  2. 软件设计时期:总体设计、详细设计
  3. 编码与测试时期:编码、测试
  4. 运行与维护时期
  • 常见模型:瀑布模型、螺旋模型、敏捷的模型等。

4.SWEBoK的15个知识域

  • Software requirements 软件需求:表示在实际问题中,对软件产品很重要的一些要求和约束。软件需求KA重点关注软件需求的启发,协商,分析,规范和验证。
  • Software design 软件设计:软件工程最核心的内容。软件设计由软件体系结构设计、软件详细设计两种活动组成。它涉及软件体系结构、构件、接口,还设计软件设计质量分析和评估、软件设计的表示、软件设计策略和方法等。
  • Software construction 软件构造:软件构建是指通过详细设计、编码、单元测试、集成测试、调试和验证的组合来详细创建工作。本KA涵盖软件构建基础知识、管理软件构建、构建技术、实践考虑和软件构建工具。
  • Software testing 软件测试:软件生存周期的重要部分,涉及测试标准、技术、度量和测试过程。测试的目的是标识缺陷和问题,改善产品质量。软件测试覆盖整个软件开发过程。正确的软件工程质量观是预防、避免缺陷和问题。测试的终点是建立一个有限的测试用例集,动态地验证程序是否达到预期行为。
  • Software maintenance 软件维护:软件维护KA包括软件维护的基础知识;软件维护中的关键问题;维护过程;软件维护技术;灾难恢复技术和软件维护工具。
  • Software configuration management 软件配置管理:是一种标识、组织和控制修改的技术,维护整个系统生命周期中软件配置的一致性和可追踪性。内容包括配置管理过程的管理、软件配置鉴别、配置管理控制管理、配置管理状态记录、配置管理审计、软件发布和交付管理。
  • Software engineering management 软件工程管理:软件工程管理KA包括初步和范围的定义;软件项目规划;软件项目制定;产品验收;项目绩效的审查和分析;项目结束;以及软件管理工具。
  • Software engineering process 软件工程进程:软件工程进程KA主要涵盖过程实施和变更;过程定义;过程评估模型和方法;测量;软件过程工具。
  • Software engineering models and methods 软件工程模型和方法:软件工程模型和方法KA描述了包含多个生命周期阶段的方法,其涵盖的主题包括建模;模型类型;分析;软件开发方法。
  • Software quality 软件质量:软件质量是一个普遍存在的软件生命周期问题。软件质量KA包括软件质量的基础知识; 软件质量管理流程; 以及实用性考虑。
  • Software engineering professional practice 软件工程专业训练:软件工程专业训练关注软件工程师必须具备的专业,负责和道德的软件工程知识,技能和态度。该KA涵盖专业性;道德规范;群体动力学;以及沟通技巧。
  • Software engineering economics 软件工程经济学:软件工程经济学KA关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。其涵盖了软件工程经济学基础;非营利决策;评估经济风险和不确定性;以及多属性决策。
  • Computing foundations 计算基础:计算基础KA涵盖了提供软件工程实践所需的计算背景的基础主题。包括问题解决技术、抽象、算法和复杂性、编程基础、并行和分布式计算基础、计算机组织、操作系统和网络通信。
  • Mathematical foundations 数学基础:数学基础KA涵盖了提供软件工程实践所必需的数学背景的基础主题。包括集合、关系和函数;基本命题和谓词逻辑;证明技术;图和树;离散概率;语法和有限状态机;以及数论。
  • Engineering foundations 工程基础:工程基础KA涵盖了提供软件工程实践所必需的工程背景的基础主题。包括经验方法和实验技术;统计分析;测量和度量;工程设计;模拟和建模;以及根本原因分析。

5.简单解释CMMI的五个级别

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

6.用自己语言简述SWEBok或CMMI

        出于成本的因素,企业在不同阶段难以完全遵循软件工程规范去做事。CMMI,正好迎合和企业发展的需求。它通过使用知识(能力)的不同,用不同级别表示开发企业的成熟性,不仅给出了企业能力提升的路径,也给出了企业能力评估的事实标准。其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值