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

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


1 软件工程的定义

软件工程是
(1)对软件开发、操作和维护的系统化、规范化、可量化方法的应用,即工程对软件的应用
(2)对方法的研究,如(1)所述。

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

software crisis/软件危机术语在1968年第一届软件工程大会提出。计算机的发展导致软件危机,软件工程的目标就是克服软件危机,构建生产软件的方法与知识体系。
原因:

  • 用户需求不明确
  • 软件开发的规模逐渐增大
  • 软件开发的复杂度越来越高

具体表现:

  • 软件运行的效率低
  • 软件开发的成本高
  • 软件常常不能满足用户的需求
  • 软件的维护成本高
  • 等等

软件危机的解决办法:

  • 建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。
  • 研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境,以期从管理和技术两方面解决软件危机问题。
  • 基于程序变换、自动生成和可重用软件等软件新技术研究也已取得一定的进展,把程序设计自动化的进程向前推进一步。在软件工程理论的指导下,发达国家已经建立起较为完备的软件工业化生产体系,形成了强大的软件生产能力。

3 软件生命周期

软件生命周期(LifeCycle):在时间维度,对软件项目任务进行划分,又称为软件开发过程。常见有瀑布模型、螺旋模型、敏捷的模型等。

软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。生命周期的每一个周期都有确定的任务,并产生一定规格的文档(资料),提交给下一个周期作为继续工作的依据。按照软件的生命周期,软件的开发不再只单单强调“编码”,而是概括了软件开发的全过程。软件工程要求每一周期工作的开始只能必须是建立在前一个周期结果“正确”前提上的延续;因此,每一周期都是按“活动 ── 结果 ── 审核 ── 再活动 ── 直至结果正确”循环往复进展的。

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

  • 软件需求:用来描述解决现实世界某个问题的软件产品及对软件产品的约束,设计需求获取、需求分析、建立需求规格说明和确认,领域问题建模,软件开发技术、经济和时间可行性分析。软件需求的好坏直接影响软件开发全过程。
  • 软件设计:软件工程最核心的内容。软件设计由软件体系结构设计、软件详细设计两种活动组成。它涉及软件体系结构、构件、接口,还设计软件设计质量分析和评估、软件设计的表示、软件设计策略和方法等。
  • 软件构造:通过编码、单元测试、集成测试、调试、确认等活动,生成可用的、有意义的软件。软件构造除要求粉盒设计功能外,还要求控制和降低程序复杂性、预计变更、进行程序验证和制定软件构造标准。软件构造与软件配置管理、工具和方法。
  • 软件测试:软件生存周期的重要部分,涉及测试标准、技术、度量和测试过程。测试的目的是标识缺陷和问题,改善产品质量。软件测试覆盖整个软件开发过程。正确的软件工程质量观是预防、避免缺陷和问题。测试的终点是建立一个有限的测试用例集,动态地验证程序是否达到预期行为。
  • 软件维护:软件生存周期的组成部分。软件维护要支持系统快速地、便捷地满足新的需求。基于服务的软件维护越来越受到重视。软件组织力图是软件运营时间更长,软件维护成为令人关注的焦点。
  • 软件配置管理:是一种标识、组织和控制修改的技术,维护整个系统生命周期中软件配置的一致性和可追踪性。内容包括配置管理过程的管理、软件配置鉴别、配置管理控制管理、配置管理状态记录、配置管理审计、软件发布和交付管理。
  • 软件工程管理:运用管理活动,确保软件开发和维护是系统的、规范的、可度量的。它设计基础设施管理、项目管理、度量和控制计划三个层次。度量是软件管理决策的基础。
  • 软件工程过程:生产一个最终能满足用户需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。
  • 软件工程模型与方法:建模、 模型类型、分析、和软件开发方法。
  • 软件质量:涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。
  • 软件工程专业实践:关注软件工程师必须具备的专业,负责和符合伦理的软件工程知识,技能和态度。
  • 软件工程经济学:关注在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。
  • 计算基础:提供软件工程实践所需的计算背景。
  • 数学基础:提供软件工程实践所需的数学背景。
  • 工程基础:提供软件工程实践所需的工程背景。

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

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

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

软件能力成熟度模型(Capability Maturity Model for Software / CMM)或 CMMI:CMM是目前国际上使用流行的一种软件生产过程行业标准模型,可定义、评价软件开发过程的成熟度,并提供提高软件质量的指导。
它能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范。有利于成本控制,因为质量有所保证,浪费在修改、解决客户的抱怨方面的成本会降低很多。绝大多数情况是缺少规范制度,只是求快,项目完成后,要花很多时间修修补补,费用很容易失控。有助于提高软件开发者的职业素养。每一个具体参与其中的员工,无论是项目经理,还是工程师,甚至一些高层管理人的做事方法逐渐变得标准化、规范化。能够解决人员流动所带来的问题。公司通过过程改进,建立了财富库以共享经验, 而不是单纯依靠某些人员。有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开发过程和产品,建立公司的效率指标。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值