本章目标
1、了解软件的概念、特点及主要分类
2、了解软件危机的产生原因及其表现
3、掌握软件工程的概念,以及软件工程的基本原则
4、了解软件开发的方法
5、了解与软件开发项目相关的常用工具
1.1软件
1.1.1软件的概念及特点
概念:计算机软件是由专业人员开发并长期维护的软件产品。完整的软件产品包括可以在不同容量和体系结构的计算机上执行的程序,运行过程中产生的各种结果,以及硬复制和电子表格等多种方式存在的软件文档。
特点:
a.具有抽象性。b.没有明显的制造过程。c.存在退化问题。d.对计算机系统有不同程度的依赖性。e.至今尚未完全摆脱人工的开发方式。f.软件本身是复杂的。g.成本相当昂贵。h.相当多的软件工作涉及社会因素。
1.1.2软件的分类
基于功能的不同:系统软件、支撑软件、应用软件
软件服务对象的不同:通用软件、定制软件
软件产品规模的不同:小型软件、中型软件、大型软件、超大型软件
工作方式的不同:实时软件、分时软件、交互型软件、批处理软件
1.2软件危机
1.2.1软件危机的表现及原因
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
表现
a、软件需求增长得不到满足;
b、软件生产高成本、价格昂贵;
c、软件生产进度无法控制;
d、软件需求定义不准确;
e、软件质量不易保证;
f、软件可维护性差
原因
a.忽视软件开发前期的需求分析
b.开发过程缺乏统一的、规范化的方法论的指导
c.文档资料不齐全或者不准确
d.忽视与用户之间、开发组成员之间的交流
e.忽视测试的重要性
1.3软件工程
1.3.1概念
软件工程是以借鉴传统工程的原则和方法,以提高质量、降低成本为目的指导计算机软件开发的维护的工程学科。它是一种层次化的技术。
软件工程三要素:过程、方法、工具。
1.3.2研究的内容
软件开发技术。
软件开发过程管理。
1.3.3软件工程的目标与原则
目标:(1) 达到要求的软件功能。
(2)取得较好的软件性能。 (3)开发出高质量的软件。 (4)付出较低的开发成本。 (5)需要较低的维护费用。 (6) 能按时完成开发工作,及时交付使用。
七条基本原则:
(1)用分阶段的生存周期计划进行严格的管理。(2)坚持进行阶段评审。(3)实行严格的产品控制。(4)采用现代程序设计技术。(5)软件工程结果应能清楚地审查。(6)开发小组的人员应该少而精。(7)承认不断改进软件工程实践的必要性。
1.3.4软件工程知识体系
1.4软件开发方法
软件开发方法是一种使用定义好的技术集及符号表示组织软件开发的过程,它的目标是在规定的时间和成本内,开发出符合用户需求的高质量的软件。常见的软件开发方法包括以下几种:
结构化方法
面向数据结构方法
面向对象方法
形式化方法。此外还有问题分析法、可视化开发方法等。
1.5软件工程工具
软件工程的工具对软件工程中的过程和方法提供自动的或半自动的支持。可以帮助软件开发人员方便、简捷、高效地进行软件的分析、设计、开发、测试、维护和管理等工作。有效地利用工具软件可以提高软件开发的质量,减少成本,缩短工期,方便软件项目的管理。
软件工程工具通常有以下3种分类标准。
**按照功能划分:**功能是对软件进行分类的最常用的标准,按照功能划分,软件工程工具可分为可视化建模工具、程序开发工具、自动化测试工具、文档编辑工具、配置管理工具和项目管理工具等。
按照支持的过程划分:根据支持的过程,软件工程工具可分为设计工具、编程工具和维护工具等。
**按照支持的范围划分:**根据支持的范围,软件工程工具可以分为窄支持、较宽支持和一般支持工具。窄支持工具支持软件工程过程中的特定任务,一般将其称为工具;持工具支持特定的过程阶段,一般由多个工具集合而成,称为工作台;一般支持工具支持覆盖软件过程的全部或大部分阶段,包含多个不同的工作台,称为环境。