系统分析与设计作业1

Homework1

系统分析与设计课程作业1

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
(2) the study of approaches as in (1)

翻译:软件工程是将系统化、规范化、可度量的方法应用于软件的开发、运营和维护上,也就是将工程方法应用于软件上,并对这些方法的研究。 ——–– IEEE Standard 610.12

其他说法:

  • “一门工程学科,涉及软件生产的各个方面"----Ian Sommerville
  • “建立和使用合理的工程原理,以便经济地获得可靠的、在真实机器上有效工作的软件”----Fritz Bauer

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

  • 本质原因:计算能力按摩尔定律发展,落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象
  • 软件危机的表现体现在以下几个方面:
    • 项目运行超过预算
    • 项目运行超过时间
    • 软件非常低效
    • 软件质量很差
    • 软件常常不能满足需求
    • 项目不可管理
    • 代码难以维护
    • 软件从未交付
  • 克服软件危机的方法:
    • 构建软件生产的最佳实践与知识体系,发展更好的软件开发和管理方法,比如面向过程编程(PP)、面向对象编程(OOP)、面向切面编程(AOP)等都是过去十年来提出的用来改善软件质量管理的方法。
    • 建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。
    • 同时在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,

3. 软件生命周期

Software Development Life Circle, 简称SDLC,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则。常见有瀑布模型、螺旋模型、敏捷开发模型等

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

SWEBoK:Software Engineering Body of Knowledge 软件工程知识体系

描述软件工程实践的知识领域:

  • 软件需求 Software Requirements
    软件需求知识领域涉及软件需求的引出、协商、分析、规范和验证。软件需求表达了对软件产品的需要和约束,这些需要和约束有助于解决一些实际问题。

  • 软件设计 Software Design
    指定义结构、组件、接口和其它系统或组件特征的过程以及该过程的结果。

  • 软件构造 Software Construction
    指通过将详细的设计、编码、单元测试、集成测试、调试和验证相结合,对能够工作的软件进行详细的创造。软件构造知识领域包括与能够满足需求和设计约束的软件程序开发相关的主题。软件构造知识领域包括软件构造的基础:管理软件构造,构造技术,实际考虑和软件构造工具。

  • 软件测试 Softw Testing
    测试是一项为了评估产品质量以及通过识别缺陷提高产品质量而进行的活动。软件设计包括在测试用例的一个有限集合上对程序行为和预期行为进行动态验证。软件测试知识领域包括软件测试的基础:用户接口测试和评估,与测试相关的措施和实际考虑。

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

  • 软件配置管理 Software configuration Management
    软件配置管理(SCM)是在不同时间点识别系统配置的规训(discipline),用于系统地控制配置的改变,以及在整个软件生命周期中维持配置的完整性和可追溯性。。软件配置管理知识领域包括软件配置管理过程的管理;软件配置识别、控制、状态核算、审计;软件发布管理和交付;以及软件配置管理工具。

  • 软件工程管理 Software Engineering Management
    软件工程管理包括计划、协调、度量、报告和控制一个项目或程序,以确保软件的开发和维护是系统的、有纪律的和量化的。软件工程管理知识领域包括初始化和范围定义(确定和协商需求,可行性分析,以及需求的评审和修订);软件项目计划(过程计划,工作量、成本和进度的估计,资源分配,风险分析,质量规划);软件项目制定(度量,报告,以及控制;采购和供应商合同管理);产品验收;项目性能的审核与分析;项目终止;以及软件管理工具。

  • 软件工程过程 Software Engineering Process
    软件工程知识领域涉及软件生命周期过程的定义、实现、评估、度量、管理和改进。所涵盖的主题包括过程实现和变更(过程基础设施,过程实现和变更模型,以及软件过程管理);过程定义(软件生命周期模型和过程,过程定义、过程适应和过程自动化的符号);过程评估模型和方法;度量(过程度量,产品度量,度量技术,以及度量结果质量);以及软件过程工具。

  • 软件工程模型和方法 Software Engineering Models and Methods
    软件工程模型和方法知识领域提出了包含多个生命周期阶段的方法;针对特定生命周期阶段的方法包含在其它知识领域。

  • 软件质量 Software Quality
    软件质量是一个普遍的软件生命周期问题,它在SWEBOK V3的很多知识领域中均被提及。另外,软件质量知识领域包括软件质量基础(软件工程文化,软件质量特征,软件质量价值和成本,以及软件质量改进);软件质量管理过程(软件质量保证,核实和批准,评价和审计);以及实际考虑(缺陷特征,软件质量度量,以及软件质量工具)。

  • 软件工程专业实践 Software Engineering Professional Practice
    关注软件工程师要专业、负责、道德地实践软件工程所必须具备的知识,技能和态度。

软件工程教育需求的知识领域

  • 软件工程经济学 Software Engineering Economics
    软件工程经济学知识领域涉及在商业背景下做出决策,以使技术决策和组织的商业目标保持一致。所涵盖的主题包括软件工程经济学基础(提议,现金流动,金钱的时间价值,计划期限,通货膨胀,贬值,替换和退休决定);非营利性决策(成本-利益分析,优化分析);评估经济风险和不确定性(技术估计,风险和不确定性下的决策);以及多属性决策(价值和度量制度,补偿和非补偿技术)。

  • 计算基础 Computing Foundations
    计算基础知识领域包括为软件工程实践提供必要的计算背景的基本主题。所涵盖的主题包括解决问题技术,抽象,算法和复杂度,编程基础,并行和分布式计算基础,计算机组织,操作系统,以及网络通信。

  • 数学基础 Mathematical Foundations
    数学基础知识领域包括为软件工程实践提供必要的数学背景的基本主题。所涵盖的主题包括集合,关系,以及函数;基本命题和谓词逻辑;证明技术;图和树;离散型概率;语法和有限状态机;以及数论。

  • 工程基础 Engineering Foundations
    工程基础知识知识领域包括为软件工程实践提供必要的工程背景的基本主题。所涵盖的主题包括经验方法和实验技术;统计分析;测量和度量;工程设计;仿真和建模;以及根本原因分析。

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

CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。

Level 1 - Initial 初始级:无序,自发生产模式,企业对项目的目标与要做的努力很清晰,但是由于任务的完成带有很大的偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务。企业在一级上的项目实施对实施人员有很大的依赖性。

Level 2 - Managed 管理级:企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对整个流程有监测与控制,并与上级单位对项目与流程进行审查

Level 3 - Defined 定义级:企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化

Level 4 - Quantitatively Managed 量化管理级:企业的项目管理不仅形成了一种制度,而且要实现数字化的管理。对管理流程要做到量化与数字化。通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。

Level 5 - Optimizing 进化管理级:企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。

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

CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。早期的CMMI(CMMI-SE/SW/IPPD)1.02版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。

CMMI的实施能够提高我国企业的管理水平。降低企业的工程成本。近年来,很多软件企业纷纷实施CMMI管理模式,这一方面反映了我国企业在进入WTO后的危机意识,以及与世界接轨的迫切愿望。另一方面则反映出我国软件企业在改进管理方法上所作的努力。对采购部门的人员来说,掌握了CMMI技术可以有目的地考察项目实施人员或公司的实施能力,从而保证所采购的项目能够顺利完成。对于项目经理来说,掌握CMMI技术能够提高自己的项目管理能力, 从而能够使项目高质量,低成本,按期限地完成。 对于企业老总来说,CMMI技术不仅能够提升企业的管理水平,还能够引入科学的管理理念,提升企业的整体管理水平。在美国,很多企业通过CMMI评估一方面为了满足承包国防工程或一些大企业的工程的要求, 另一方面也是为了提高企业自身的管理能力。美国政府的工程项目,绝大多数都要求承包商具有一定的CMMI级别作为参加投标的资格据SEI统计,用于软件项目上的CMMI的投资,其回报率在5:1到8:1之间。由此可见,为什么这么多的企业纷纷实施CMMI项目管理技术。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值