第一章 软件工程概述
1.软件(software)定义:IEEE(Institute of Electrical and Electronics Engineers):程序(program)、数据和文档资料(document)。
是指与计算机操作有关的程序、规程、规则及任何与之有关的数据和文档资料。
2. ISO 9001:2000:一个好软件的基本属性表现为,软件实现了客户需要的功能和性能,能够维护,可以让用户在指定环境和条件下依赖和使用。
3.在开发软件所需的高成本同产品的低质量之间有着尖锐的矛盾,这即所谓的“软件危机”。
4.软件的分类:按功能分:系统软件、支撑软件、应用软件;按工作方式分:
①实时处理软件:如交通管理等。
②分时系统:如网络中终端的工作(由于速度快而看的不明显)。
③交互系统
④批处理系统
5.软件危机的表现有以下几个方面:
(1).对于软件开发的成本和进度的估计很不准确。
(2).开发的软件产品不能完全满足用户要求。
(3).开发的软件可靠性差。
(4).软件的可维护性差。
(5).软件通常没有适当的文档。
(6).软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
6.软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题,长期找不到解决这些问题的办法,使问题逐渐积累起来,形成了尖锐的矛盾,从而导致了软件危机。
矛盾:软件技术跟不上硬件技术发展而造成的诸多问题;软件的开发跟不上社会的发展。
7.软件工程的概念:通过系统化、规范化、数量化等工程原则和方法来实现复杂软件系统的开发和维护
⑴软件工程是一个包括一系列概念、理论、模式、语言、方法以及工具的综合性学科。
8.软件工程的主要研究内容
软件开发技术:软件开发方法学、软件开发过程 、软件工具和软件工程环境
软件工程管理:软件管理学、软件经济学、软件心理学
9.软件过程是设计、开发、应用和维护软件产品的一组相互关联的活动、方针、组织结构、技术方法、规程以及工作产品。它定义了对软件开发进行组织、管理、度量、支持和改进的途径。
10. 软件工程的研究目的和内容
⑴.软件工程的目的是成功地建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易于移植、需要较低的维护费用、能够按时完成开发任务、及时交付使用、开发的软件可靠性高。
⑵.软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
11. 软件开发方法
研究软件方法的目的是使开发过程“纪律化”,使开发工作能够有计划、有步骤地进行。研究软件工具的目的是使开发过程“自动化”,就是使开发过程中的某些工作用计算机来完成。
12. 软件开发方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。
结构化方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法等。
开发方法
①明确工作目标与步骤。
②具体的描述方式。对每项任务要有具体描述,即计划任务书
③确定评价标准。有一个系统的评估标准来对几种预选的方案进行筛选。
④软件开发标准规程。
结构化分析——结构化设计——结构化编程
面向对象分析——面向对象设计——面向对象编程
⑤纪律化:指技术上的纪律性。
⑥尽量采用自动化工具:都是用一定标准编出的支持软件。
13. 软件工具是指可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理而编制的计算机程序或软件。软件工具是一个程序系统。
14. 软件开发环境是指在计算机的基本软件的基础上,为支持软件的开发而提供的一组工具软件系统。
15.三类过程实际上对应了过程、技术和人的关系,覆盖了企业生产和管理的核心内容。
软件工程技术(软件过程)——实现层技术——工程过程-CMMI
——开发管理层技术——管理过程-CMMI——过程管理
——项目管理
——支持过程-CMMI