系统分析作业一

中山大学系统分析作业一

系统分析第一次作业

学号:16340074

姓名:何自强

选择1至5题进行作答

软件工程的定义

软件工程定义繁多,先截取两种软件工程定义进行分析说明。

  • 维基百科:engineering is the application of engineering to the development of software in a systematic method.
  • IEEE standard 620.12: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.

对比两种定义,发现两种定义的共同点如下:

  • 强调系统化方法
  • 强调传统工程学方法在软件开发上的实际应用,而不是独立于其他学科上使用的工程学方法。

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

现在讨论软件危机,

软件危机产生的本质原因

  • 软件的大量需求与软件生产力效率之间的矛盾
  • 软件系统的复杂性与软件开发方法之间的矛盾

表现

  • 软件需求增长得不到满足
  • 软件生产高成本,价格昂贵
  • 软件生产进度无法控制
  • 软件需求定义不准确
  • 软件质量不易保证
  • 软件可维护性较差

克服软件危机的方法

  • 正确认识计算机软件的内涵
  • 采用工程项目管理方法实施软件开发的组织管理
    • 软件开发应该是一种组织良好,管理严密,协同配合的工程活动
  • 采用成熟的软件开发技术和方法,开发和使用适合的软件工具

软件生命周期

计算机软件有一个孕育,诞生,成长,成熟,衰亡的生存过程,这样的过程称为软件的生命周期(也称软件生命周期SDLC)。软件生命周期将软件开发过程划分为若干阶段,每个阶段有明确的任务,目标和运行机制,从而使负载的软件开发过程能够得到适合的控制和管理。

软件生命周期一般包含可行性分析与计划,需求分析,设计(概要设计和详细设计),编码实现,测试,运行与维护等活动。这些活动应当以适合的方式分配到不同的阶段去完成。

SWEBok的15个知识域

  • software requirements:软件需求
  • software design:软件设计
  • software construction:软件构建
  • software testing:软件测试
  • software maintenance:软件维护
  • software configuration management:软件配置管理
  • software engineering management:软件工程管理
  • software engineering process:软件工程流程
  • software engineering models and methods:软件工程模型与方法
  • software quality:软件质量
  • software engineering professional practice:软件工程专业化实践
  • software engineering economics:软件工程经济学
  • computing foundations:计算机学术组织
  • mathematical foundations:数学组织
  • engineering foundations:系统学组织

CMMI的五个级别

  • initial:无序,有时甚至是混乱的,队过程几乎没有定义。
  • managed:建立基本项目管理过程来跟踪费用,进度和功能特性。
  • defined:将软件管理与工程两方面的过程文档化,标准化,并综合成组织的标准软件过程。
  • quantitatively managed:分析对软件过程和产品质量的详细度量数据,对软件过程和产品有定量的理解与控制。
  • optimizing:过程的量化反馈与先进的新思想,新技术促进过程不断优化

Comment