系统分析第一次作业

软件工程的定义

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。 它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 在现代社会中,软件应用于多个方面。 典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。
GB/T11457-2006《信息技术 软件工程术语》中将其定义为“应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、和维护的工程或进行研究的学科”。

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

软件危机(software crisis)是指软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。
本质原因:软件开发的复杂、期望和改变。

  • 表现
  1. 项目运行超出预算
  2. 项目运行超出时间
  3. 软件质量低落
  4. 软件通常不匹配需求
  5. 项目无法管理,且代码难以维护
  • 克服软件危机的方法:
    构建软件工程知识体系(SWEBoK)、对企业的能力成熟度进行评估、制定软件工程管理标准、使用实践管理工具总结实践经验等等。
软件生命周期

软件生命周期(Life Cycle):在时间维度,对软件项目任务进行划分,又成为软件开发过程。常见有瀑布模型、螺旋模型、敏捷的模型等。
瀑布模型是经典的生命周期模型,简单的线性过程模型。一般会依次进行以下环节:

  1. 需求分析
  2. 设计
  3. 实现
  4. 测试
  5. 集成
  6. 部署(或安装)
  7. 维护

适用于需求良定义的软件开发工作,实际工作很难按照瀑布模型的预想进行。

螺旋模型最初由Barry Boehm提出,它是软件过程的一个演进模型,为版本递增软件的快速开发提供了可能。其两个主要特性是:

  1. 循环地增加系统定义和实现的复杂度而降低风险
  2. 用一组锚点里程碑(anchor point milestones)保证利益者获得灵活和满意的系统解决方案[4]
SWEBoK 的 15 个知识域(An Overview of the SWEBOK Guide 请中文翻译其名称与简短说明)
  • Knowledge Areas Characterizing the Practice of Software Engineering(实践知识域)
  1. Software Requirements(软件需求):为解决真实问题,软件产品所需的要求和约束。
  2. Software Design(软件设计):软件设计包含了需求分析、架构设计、成分设计、接口设计等设计过程以及设计的结果。
  3. Software Construction(软件构建):软件的具体开发工作。
  4. Software Testing(软件测试):测试的基础、技术、人机交互接口测试、测试手段和现状分析等。
  5. Software Maintenance(软件维护):提升性能、更新软件和错误修正。
  6. Software Configuration Management(软件配置管理)
  7. Software Engineering Management(软件工程管理)
  8. Software Engineering Process(软件工程过程)
  9. Software Engineering Models and Methods(软件工程模型和方法)
  10. Software Quality(软件质量)
  11. Software Engineering Professional Practice(软件工程专业训练)
  • Knowledge Areas Characterizing the Educational Requirements of Software Engineering(教育需求知识域)
  1. Software Engineering Economics(软件工程经济学):商业决策与技术决策的统一。
  2. Computing Foundations(计算基础):计算机科学的基础知识。
  3. Mathematical Foundations(数学基础):数学基础知识。
  4. Engineering Foundations(工程基础):工程化技术的知识。
简单解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

Level 1 Initial : Processes unpredictable,poorly controlled and reactive
Level 2 Managed: Processes characterized for projects and is often reactive
Level 3 Defined Processes characterized for the organzation an is proactive
Level 4 Quantitatively Managed : Processes measured and controlled
Level 5 Optiminzing: Focus on process improvement

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

CMMI(Capability Maturity Model Integration,即能力成熟度模型集成),是为了帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件而做出的一个设想。集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理和实践和过程的改进,就可以克服软件开发中的困难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值