软件工程–概述

软件的概念及特点

概念

软件是计算机中与硬件相互依存的部分,其是程序、数据、相关文档的集合。

  • 程序:按事先设计的功能和性能要求执行的指令序列
  • 数据:使程序能正确处理信息的数据结构
  • 文档:与程序开发、维护、使用有关的图文资料
  • 软件是一个逻辑实体,依赖于硬件和 OS,在运行维护期间,不会像硬件一样出现磨损与老化,只会出现退化问题。

软件的开发以人工开发为主,不仅成本高、风险高,还受到社会因素的影响,在生产过程中,软件开发与硬件流水线式开发不同。

特点

  • 是逻辑实体
  • 依赖硬件
  • 手工开发为主
  • 成本高、风险高
  • 涉及社会因素
  • 生产与硬件不同
  • 不会磨损和老化

分类

软件的分类有以下几种方式:

  • 按功能:系统软件、支撑软件、应用软件
  • 按服务对象:通用软件、定制软件
  • 按规模:小型软件、中型软件、大型软件
  • 按工作方式:实时软件、分时软件、交互式软件、批处理软件
    其中,系统软件是指控制计算机与外设并支撑应用软件开发和运行的系统,支撑软件是指支持其他软件开发和维护的一种工具性的软件,应用软件是指与系统软件相对应的用各种程序设计语言编制的应用程序。

软件危机

随着应用软件的规模越来越大,越来越复杂,动辄数百万行代码已是常见现象,不可避免地就出现了软件危机。

软件危机是指在开发和维护软件过程中遇到的一系列的问题,常见的表现有:开发过程中无法按时完成、产品质量无法保证、开发经费严重超支、开发完成后软件表现强差人意,软件无法维护等等。

原因:

(1)忽视软件开发前期的调研和需求分析工作。
(2)缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。
(3)开发过程缺乏统一的、规范化的方法论指导。
(4)忽视与用户、开发组成员间的及时有效的沟通。
(5)文档资料不规范或不准确。导致开发者失去工作的基础,管理者失去管理的依据。
(6)没有完善的质量保证体系。
(7)忽略测试的重要性和不重视维护。

软件工程

概述

IEEE 对软件工程定义为:将系统化、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。

软件工程研究的内容分为两部分:

  • 软件开发技术:主要研究软件开发方法、过程、工具以及环境
  • 软件开发过程管理:主要研究软件工程经济学和软件管理学
    具体来说,软件工程,是借鉴传统工程的原则、方法,以提高质量,降低成本为目的的指导计算机软件开发和维护的工程学科。

软件工程的发展经历了四个重要的阶段:

  • 传统软件工程:将软件开发纳入工程化轨道,基本形成了软件工程的概念、框架、技术与方法
  • 对象工程:随着面向对象技术的出现,衍化出了完整的软件开发方法和系统的技术体系
  • 过程工程:为提高软件生产率、保证软件质量,提出了软件开发和维护要有管理和支持的能力
  • 构件工程:基于构件的开发方法,利用可重用的构件来进行开发

层次

软件工程--概述

软件工程是层次化的技术,具体可分为以下四个层次:

工具层:在软件开发过程中,工具提供了自动或半自动化的支持,例如:建模工具 Rational Rose
方法层:方法提供了开发软件在技术上需要的一系列的任务,包括需求分析、编程、测试等
过程层:过程提供了开发的框架,使得软件能够合理、及时的被开发
质量保证层:

软件工程要达到的基本目标包括:

  • 达到要求的软件功能
  • 取得较好的软件性能
  • 开发出高质量的软件
  • 付出较低的开发成本
  • 需要较低的维护费用
  • 能按时完成开发工作,及时交付使用

软件工程的7条基本原则

  • 用分阶段的生命周期计划进行严格的管理
  • 坚持进行阶段评审
  • 实行严格的产品控制
  • 采用现代程序设计技术
  • 软件工程结果应能清楚地审查
  • 开发小组的人员应该少而精
  • 承认不断改进软件工程实践的必要性

软件开发方法

软件开发方法是一种使用定义好的技术集与符号来表示组织软件生产的过程,其目标是在规定时间与成本内,开发出符合用户需求的高质量软件。

常见的方法有:

– 结构化方法:
采用 “自顶向下,逐步求精” 的思维,将软件开发分为若干阶段,每个阶段相对独立且复杂性不高,可便于不同的开发人员进行开发
– 面向数据结构方法:
从输入输出的数据入手,导出程序框架结构,再补充程序细节,即可得到一个完整的程序结构图
– 面向对象方法:
以对象建模为基础,将数据和对数据的操作结合起来,是一种可以反复迭代的开发方法
– 形式化方法:
是基于形式化数学变换的软件开发方法,偏向于严密的理论

【软件工程工具】
软件工程工具为软件工程中的过程与方法提供自动或半自动的支持,可以帮助软件开发人员进行软件分析、设计、开发、测试、维护、管理等工作。

其具有以下三种分类标准:

按功能:可视化建模工具、程序开发工具、自动测试工具、文档编辑工具、配置管理工具、项目管理工具
按支持过程:设计工程、编程工具、维护工具
按支持范围:窄支持工具、宽支持工作台、一般支持环境**加粗

来源:风骨散人Chiam

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月9日
下一篇 2020年10月9日

相关推荐