第一章软件工程的基本概念
- 格式:doc
- 大小:64.00 KB
- 文档页数:9
《软件工程》教学教案一、第一章:软件工程概述1. 教学目标了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。
2. 教学内容软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。
3. 教学方法采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。
4. 教学资源教材、课件、案例分析。
5. 教学评价通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。
二、第二章:软件需求分析1. 教学目标掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。
2. 教学内容软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。
三、第三章:软件设计1. 教学目标掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。
2. 教学内容软件设计的基本概念;设计方法和过程;设计工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。
四、第四章:软件实现1. 教学目标掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。
2. 教学内容软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。
3. 教学方法采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。
4. 教学资源教材、课件、编程环境和测试工具。
5. 教学评价通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。
五、第五章:软件维护1. 教学目标掌握软件维护的基本概念、方法和过程,能够进行软件维护和优化。
2. 教学内容软件维护的基本概念;维护方法和过程;软件优化技巧。
软件工程开发第一章软件工程基本观念1.1 软件工程的目标与常用模型软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。
对开发人员而言,如果非得在质量与生产率之间分个主次不可,那么应该是质量第一,生产率第二.软件工程的主要环节如图1所示,软件开发过程一般包括可行性与需求分析、系统设计、程序设计、测试和维护。
图1 软件工程环节常见的软件工程模型有:线性模型,渐增式模型,螺旋模型,快速原型模型,形式化描述模型等等。
虽然线性模型比较简单,太理想化,但是每一个非线性的模型都能转化为一系列简单的线性模式,因此在其他模式中需要灵活运用线性模式。
1.2 软件开发的基本策略1.2。
1 复用在一个新系统中,大部分的内容是成熟的,只有小部分内容是创新的.应该把大部分的时间用在小比例的创新工作上,而把小部分的时间用在大比例的成熟工作中。
我们将具有一定集成度并可以重复使用的软件组成单元称为软构件。
软件复用可以表述为:直接使用已有的软构件,即可组装(或加以合理修改)成新的系统.这样可以提高生产率和质量。
图2应用软构件产生应用软件1.2。
2 分而治之我们可以把复杂的问题分解成N个简单的问题,再逐个寻求解决方法.但是最终的目的是要保证单个的简单问题可以通过程序实现,组装后能够使原本复杂的问题得到合理解决。
1.2.3 优化——折衷优化是用以优化软件的各个质量因素,但不能面面俱到,应折衷,其目标就是协调各个质量因素,实现整体质量最优.而不能盲目得拆东墙,补西墙。
第二章软件开发过程各个环节介绍2.1 可行性分析与需求分析2。
1。
1 可行性分析要求可行性分析是从经济、技术、市场与政策及人员方面分析这个项目做还是不做。
2。
1。
2 需求分析要求当确定做之后,我们就要与客户交流,进行需求分析,但由于客户表达不清、需求自身经常变动或分析人员理解有误,都会导致需求分析困难.因此,有必要通过请教行家或者分析同类型产品,来做进一步的分析.2.2 系统设计2.2。
软件工程课程目录第一章:导论
1.1 软件工程概述
1.2 软件工程的定义和特点
1.3 软件工程的发展历程
第二章:软件开发过程模型
2.1 瀑布模型
2.2 增量模型
2.3 螺旋模型
2.4 敏捷开发模型
2.5 DevOps模型
第三章:需求工程
3.1 需求获取与分析
3.2 需求规格说明
3.3 需求验证与确认
3.4 变更管理
第四章:软件设计与实现
4.1 结构化设计
4.2 面向对象设计
4.3 软件架构设计
4.4 系统建模
4.5 设计原则和模式
第五章:软件测试与维护5.1 测试基础知识
5.2 测试设计技术
5.3 测试用例编写
5.4 软件维护流程及策略5.5 缺陷管理
第六章:软件项目管理6.1 项目启动与规划
6.2 项目进度管理
6.3 资源管理
6.4 风险管理
6.5 团队协作与沟通
第七章:软件质量保证和评估
7.1 质量保证概述
7.2 质量标准与度量
7.3 代码审查
7.4 归纳测试
7.5 质量评估与改进
第八章:软件工程伦理与职业道德
8.1 软件工程伦理概述
8.2 软件专业人员责任
8.3 知识产权保护
8.4 软件工程师的职业道德
结语:
软件工程课程目录涵盖了软件工程学科的基本知识和方法,帮助学生全面了解软件开发的过程和要素。
通过学习本课程,学生可以系统学习软件工程的理论和实践知识,培养良好的软件开发习惯和职业道德意识,为将来的软件开发工作奠定坚实的基础。
软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。
程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。
它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。
开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。
五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。
瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。
“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。
在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。
实际的项⽬很少按照顺序模型进⾏。
⽤户必须有耐⼼,等到系统开发完成。
缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。
反馈信息慢,开发周期长。
虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。
快速原型模型增量模型增量模型是迭代和演进的过程。
增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。
每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。
教学目的:1. 了解软件、软件危机等概念2. 掌握软件工程的定义、原理、目标和原则教学重点:软件工程的定义、原理、目标和原则教学难点:软件工程的目标和原则第一章软件与软件工程1.1 软件(Software)1.1.1 软件与软件的组成程序设计语言三种类型:1.机器语言、汇编语言:依赖于机器,面向机器2.高级语言:独立于机器,面向过程或面向对象3.面向问题语言:独立于机器,非过程式语言(4GL)文档(document)—一种数据媒体和其上所记录的数据。
文档记录软件开发活动和阶段成果,具有永久性,可供人或机器阅读。
文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。
1. 软件的特点软件是逻辑产品,硬件是物理产品。
特点:(1)软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。
软件开发、设计几乎都是从头开始,成本和进度很难估计。
(2)软件存在潜伏错误,硬件错误一般能排除。
(3)软件开发成功后,只需对原版进行复制。
(4)软件在使用过程中维护复杂:1)纠错性维护—改正运行期间发现的潜伏错误;2)完善性维护—提高或完善软件的性能;3)适应性维护—修改软件,以适应软硬件环境的变化;4)预防性维护—改进软件未来的可维护性和可靠性。
(5)软件不会磨损和老化。
2. 软件的发展第一阶段——20世纪60年代中期以前,软件开发处于个体化生产状态。
在这一阶段中,软件还没有系统化的开发方法。
目标主要集中在如何提高时空效率上。
第二阶段——从20世纪60年代中期到70年代末期。
软件开发已进入了作坊式生产方式,即出现了“软件车间”。
软件开发开始形成产品。
到20世纪60年代末,“软件危机”变得十分严重。
第三阶段——从20世纪70年代中期到20世纪80年代末期。
软件开发进入了产业化生产,即出现了众多大型的“软件公司”。
在这一阶段,软件开发开始采用了“工程”的方法,软件产品急剧增加,质量也有了很大的提高。
软件工程概念第一章:软件定义1.软件( Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D ata)及其相关文档( Document)的完整集合。
2.软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。
3.按软件功能分类:系统软件,支撑软件,应用软件。
系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。
支撑软件:文本编辑程序,文件格式化程序,程序库系统等应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。
按软件规模分类:微型,小型,中型,大型,甚大型,极大型。
按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件4.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题5.软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2.如何维护数量不断膨胀的已有软件?5.软件危机的表现:1.成本高,开发成本估计不准确2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6. 由于软件质量问题导致失败的软件项目非常多。
6.产生软件危机的原因:1.与软件本身的特点有关 2.与软件开发与维护的方法不正确有关.软件工程学的目的:以较低的成本研制具有较高质量的软件软件工程技术的两个明显特点:1.强调规范化2. 强调文档化软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性8.软件工程方法学包含3个要素:方法、工具和过程9.软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,集成测试),运行维护(持久满足用户需求)10.软件过程模型:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型。
软件工程导论重点内容桃园文印室第一章软件工程概述重点掌握的内容:软件和软件工程的基本概念一.什么是软件?1.满足功能要求和性能的指令或计算机程序集合;2.处理信息的数据结构;3.描述程序功能以及程序如何操作和使用所要求的文档;软件的特点:软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发中被创造出来的在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性软件的开发至今尚未完全摆脱手工的开发方式软件的开发费用越来越高,成本相当昂贵。
二.软件危机以及产生软件危机的原因?1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。
软件产品“供不应求”。
2.软件成本在计算机系统总成本中所占的比例逐年上升。
3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系统不满足的现象经常发生。
4.软件产品的质量不容易保证。
5.软件产品常常是不可维护的。
6.软件产品的重用性差,同样的软件多次重复开发。
7.软件通常没有适当的文档资料。
产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件开发所使用的方法和技术。
三、软件危机1、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
3、软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
(2) 用户对“已完成的”软件系统不满意的现象经常发生。
(3) 软件产品的质量往往靠不住。
(4) 软件常常是不可维护的。
1计算机科学学院软件工程(二)班软件工程导论复习资料2 星光二班桃园文印室(5) 软件通常没有适当的文档资料。
(6) 软件成本在计算机系统总成本中所占的比例逐年上升。
第一章软件工程的基本概念 (1)1.1 计算机发展简史 (1)1.2 软件危机 (2)1.软件 (2)2. 什么是软件危机 (3)3. 产生软件危机的原因 (3)4. 解决软件危机的途径 (5)1.3 软件生存周期 (5)1.4 软件开发模型与方法 (6)1.瀑布开发模型 (6)2.原型模型(Prototyping Model) (7)3.喷泉模型(Fountain Model) (8)4.螺旋模型 (9)第一章软件工程的基本概念在计算机系统发展的早期阶段, 由于人们认识上的局限性, 对计算机软件产生了一些片面的、错误的认识, 使计算机软件发展几经挫折, 走了不少弯路, 遭受到了"软件危机"的困扰。
为了推进计算机软件开发技术的发展, 摆脱"软件危机"的困扰, 从60年代后期迅速发展起一门旨在研究软件开发与维护的普遍管理和技术的新兴学科---软件工程学, •简称软件工程。
1.1 计算机发展简史按照计算机硬件的演变来划分计算机系统发展的时期, 可分为电子管、晶体管、集成电路和大规模集成电路四个时期。
但为了了解计算机软件的发展演变的过程, 我们按照计算机应用领域的演变而不是仅仅根据硬件特点的演变来划分计算机系统的发展时期, 在工业发达的国家中计算机系统已经历了三个不同的发展时期。
1. •从世界上出现第一台计算机到六十年代中期是计算机系统发展的早期时代。
在这个时期中, 人们将主要精力集中在研究和发展计算机硬件上, 经历了从电子管到晶体管计算机的变革。
为了控制硬件的成本, 管理者建立了正式的控制和工艺标准,•以在开发产品之前进行细致的分析和设计。
但是人们对计算机软件的研究和发展却不够重视, 认为软件开发是事后考虑的问题。
那时的软件开发就是根据应用的需要写出能够运行的程序,因此, 基本上没有系统化的软件开发方法。
由于硬件价格昂贵, 运算速度低, 内存容量少, 当时的程序员非常强调"程序设计技巧", 把缩短每一微秒CPU时间和节省每一个二进制存储单元作为程序设计•(当时的软件开发)的重要目标。
在计算机系统发展的早期时期, 大多数系统采用批处理方式工作。
当时通用硬件相当普遍, 软件却是为了每个具体应用而专门设计的, 而且大多数软件的开发者和使用者是同一个(或一组)人。
编写程序的人要设法使程序在机器上运行起来, 并且负责使用这个程序解决预定的问题, 发生什么错误也是由这个人设法修改, 这样的软件设计通常是人们头脑中进行的一个隐含过程, 而且除了程序清单外, 一般没有其他文档资料保存下来。
2. 从六十年代中期到七十年代中期是计算机系统发展的第二代。
•在这个时期中, 硬件经历了从晶体管计算机到集成电路计算机的变革。
•CPU速度和内存容量都有了很大的提高, 从而为计算机在众多领域中的应用提供了潜在的可能性。
为了更有效地利用硬件的能力, 计算机系统普遍采用多道程序多用户的分时工作方式。
计算机与通信结合, 开辟了计算机应用的一个新领域。
当时最辉煌的成就之一就是美国航空公司SABRE•订票系统的实现和成功运行。
这是第一个大型事务处理系统, 分散在遥远地点的用户可通过键盘终端与中央计算机系统进行通信。
在这个时期, 计算机应用开始普及和深化, 软件与硬件分离, 作为一种商品出现, 用户广泛使用产品软件(包括操作系统)。
因为当时用户需要的软件往往是相当庞大的, 单个用户已无力开发, 另外, 许多不同部门和企业往往需要相同的或类似的软件, 各自开发就会浪费人力物力。
因此用户大多是购买或定做软件。
但是, 软件开发的方法基本没有什么变化。
随着计算机系统的不断增加, 计算机软件库开始膨胀。
但在程序运行中发现错误时必须设法改正, 当用户的要求有改变进也必须修改程序, 当买进新硬件或操作系统新版本时时通常必须改变程序以适应新的环境。
这些软件的维护工作, 以令人吃惊的比例耗费资源, 更严重的是, 许多程序的个体化特性使它们最终成为不可维护的(•如人员调动或时间长而记不清当时的设计思想等)。
这就出现了"软件危机"。
3. 计算机系统发展的第三代从七十年代初期开始, •这时的硬件已从集成电路计算机发展到超大规模集成电路计算机, 高性能低成本的微处理器大量涌现, 发展日新月异。
计算机应用的进一步普及和深化, 开辟了更多新的应用领域。
如分布式系统使用多台计算机共同解决一个问题, 各台计算机并行工作分别完成各自的子任务, 同时各台间进行必要的通信和同步。
•而人工智能系统利用计算机硬件简单的算术运算与逻辑运算能力模拟人类复杂的思维解题过程的。
这些都大大增加了计算机系统的复杂程度, 需要十分复杂的计算机软件才能实现。
由于软件越来越大, 越来越复杂, 开发过程中不可避免会有差错, 而且用户要求也会不断变化, 使软件的维护工作越来越困难(•往往一点小差错就可能导致重建整个系统), •软件维护费用占了数据处理总预算的50%以上。
同时, 软件开发生产率太低, •远远不能满足用户对新系统的需求。
"软件危机"进一步加剧。
1.2 软件危机1.软件在计算机系统中,程序是不可缺少的,相对硬件而言,程序群称为软件。
硬件和软件合成一体,完成系统的功能。
即计算机软件的实体是硬件,而程序是使实际存在的计算机动起来的指令序列。
软件的定义形式有多种,比较公认的一种定义认为软件是由以三部分组成:憗1) 在运行时能提供所希望的功能和性能的指令集,即程序;2) 使得程序能够正确运行的数据结构;3) 描述程序研制过程、方法及使用的文档。
随着计算机应用的日益普及,软件变得越来越复杂,规模也越来越大,超过100万条指令,由几百人经过几年时间才开发出来是常见的。
•如何使人与人之间、人与机器之间相互了解,保证开发与维护工作的顺利进行,文档(即各种报告、说明、手册等的总称)是不可缺少的。
相对硬件来说,软件有其自身的特点:1)它是一种逻辑实体,因而具有抽象性,虽然可记录在介质上,但无法看到软件本身的形态。
2)它是在研制、开发活动中被创造出来的,研制(开发)成本远大于生产(拷贝)成本。
3)软件在长期的运行和使用过程中没有磨损、老化等问题。
4)软件的开发和运行常常受硬件的限制5)软件的开发至今尚未完全摆脱手工工艺的开发方式6)软件开发费用越来越高。
据统计,目前软件开销要占计算机系统费用的90%以上。
由于软件所表现的独有特性,使得60年代末出现了软件危机,而且尽管经过了30年的努力,软件危机至今还没有得到彻底克服。
2. 什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题绝不仅仅是"不能正常运行"的软件才具有的, 实际上几乎所有软件都不同程度地存在这些问题。
概括地说, 软件危机包含以下两方面的问题:憗⑴如何开发软件, 以满足对软件的日益增长需求⑵如何维护数量不断膨胀的已有软件具体地说, 软件危机主要有下述的一些表现:(1) 对软件开发或进度的估计常常很不准确。
由于软件发展的历史短, 人们来不及积累大量的历史数据和模型作为系统开发的指南, •而计算机软件系统却越来越庞大和复杂, 传统的软件开发方法无法准确估计软件开发成本和进度。
实际的成本比估计成本高出一个数量级, 实际进度比预期进度拖延几个月甚至几年的现象并不罕见。
这种现象降低了软件开发组织的信誉, 而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
(2) 用户对"已完成的"软件系统不满意的现象经常发生。
软件开发人员常常在对用户要求只有模糊了解甚至对所要解决的问题还没有确切认识的情况下, 就仓促上阵, 匆忙着手编写程序。
开发人员与用户之间的信息交流往往不很充分, "闭门造车"必然导致最终的产品不符合用户的实际需要。
(3) 软件产品的质量往往靠不住(出错率高, 可靠性差, 质量低劣)。
(4) 软件缺少必要的文档资料, 常常使软件成为不可维护。
计算机软件不仅仅是程序, 还应该有一整套的文档资料。
这些资料应该是在软件开发过程中产生出来的, 而且应该是"最新式的"(•即资料和程序代码完全一致)。
软件开发组织的管理人员可以使用这些文档资料作为"里程碑"•来管理和评价软件开发的进展状况, 软件开发人员可以利用它们作为通信工具, 在开发过程中准确地交流信息。
•对维护人员更是修改维护的重要依据。
缺乏必要的文档资料或文档资料不合格, 必然给软件开发和维护带来许多严重的困难和问题, 甚至使软件非常难以改正而成为不可维护的。
(5) 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。
软件产品"供不应求"的现象使人类不能充分利用计算机硬件提供的巨大潜力。
3. 产生软件危机的原因在软件开发和维护的过程中存在这么多的严重问题, 一方面与软件本身的特点有关, 另一方面也和软件开发人员的弱点及错误认识、方法和观念有关。
(1) 软件不同于硬件, 这是计算机系统中的逻辑部件而不是物理部件。
在写出程序代码并在计算机上运行之前, 它只是开发人员的一种思路, 软件开发过程的进展较难衡量, 开发的质量也难以评价, 因此管理和控制软件开发过程相当困难。
另外, 软件在运行过程中不会因为使用时间过长而被"用坏", 如果运行中发现错误,•则很可能是遇上了一个在开发时引入而没能检测发现的故障。
因此, 软件维护通常意味着要改正或修改原来的设计, 这在客观上使软件较难维护。
(2) 虽然软件本身的特点确实在客观上给开发和维护带来了一些困难, 但是人们在开发和维护软件时的模糊甚至错误认识, •使用的错误开发方法和技术, 才是使软件问题出现危机的主要原因。
虽然人们在使用计算机系统的过程中, 也积累和总结出许多成功的经验, 如果能坚持不懈地使用经过实践考验证明是正确的方法, 许多困难是完全可以克服的。
在软件开发与维护的许多错误认识和做法, 可以归因于在计算机系统发展的早期时代软件开发的个体化特点。
今天这些错误认识仍然迷惑不少软件人员。
下面剖析几个典型的错误认识, 以树立正确的概念来指导软件开发和维护工作:①"有一个对目标的概括描述就足以着手编写程序了, 许多细节可以在以后再补充"事实上, 对用户要求没有完整而准确的认识就匆忙着手编写程序, 是许多软件开发失败的主要原因之一。
只有用户才真正了解他们自己的需要, 但许多用户在开始时并不能准确、具体地叙述他们的需要。
•软件开发人员必须要做大量的深入细致的调查研究工作,•反复多次与用户交流信息,才能真正全面/准确、具体地了解用户的需要。