1、软件工程刘永利河南理工大学Wednesday,August 17,2022第1页,共36页。参考资料n张海藩,软件工程导论,清华大学出版社,1998 第三版n郑人杰,殷仁昆,陶永雷,实用软件工程,清华大学出版社,1997 第二版第2页,共36页。考核要求n平时成绩30%q考勤q课堂笔记q少量习题n考试成绩70%第3页,共36页。第一篇软件工程与软件过程第4页,共36页。第1章 软件工程1.11.2小结小结1.3第5页,共36页。1.1 软件危机n1.1.1 计算机系统的发展历程 q所谓计算机系统就是指适当地组织在一起的一系列系统元素的集合。q这些系统元素互相配合、相互协作,通过对信息的处理而完
2、成预先定义的目标。q迄今为止,计算机系统已经经历了四个不同的发展阶段。第6页,共36页。n从60年代中期到70年代中期,是计算机系统发展的第二代。n计算机系统发展的第三代从20世纪70年代中期开始,并且跨越了整整10年。n在计算机系统发展的第四代已经不再看重单台计算机和程序,人们感受到的是硬件和软件的综合效果。第7页,共36页。n1.1.2 软件危机的含义n软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。第8页,共36页。软件危机典型表现n对软件开发成本和进度的估计常常很不准确。n用户
3、对“已完成的”软件系统不满意的现象经常发生。n软件产品的质量往往靠不住n软件常常是不可维护的。n软件通常没有适当的文档资料。n软件成本在计算机系统总成本中所占的比例逐年上升。n软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。第9页,共36页。n以上列举的仅仅是软件危机的一些明显的表现,与软件开发和维护有关的问题远远不止这些。第10页,共36页。1.1.3 产生软件危机的原因n在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。n与软件开发和维护有关的许多错误认识和作法的形成,可以归因于在
4、计算机系统发展的早期阶段软件开发的个体化特点。n错误的认识和作法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等。第11页,共36页。图图1.11.1引入同一变动付出的代价随时间变化的趋势引入同一变动付出的代价随时间变化的趋势第12页,共36页。n了解产生软件危机的原因,澄清错误认识,建立起关于软件开发和维护的正确概念,还仅仅是解决软件危机的开始,全面解决软件危机需要一系列综合措施。第13页,共36页。1.1.4 消除软件危机的途径n为了消除软件危机,首先应该对计算机软件有一个正确的认识。n应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研
5、究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。第14页,共36页。n应该开发和使用更好的软件工具。n总之,为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。1.1.4 消除软件危机的途径(cont.)第15页,共36页。第1章 软件工程1.11.2小结小结1.3第16页,共36页。1.2 软件工程n1.2.1 什么是软件工程 n概括地说,软件工程是指导计算机软件开发和维护的工程学科。n采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而
6、证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。第17页,共36页。1.2.2 软件工程的基本原理 n1.用分阶段的生命周期计划严格管理n2.坚持进行阶段评审n3.实行严格的产品控制n4.采用现代程序设计技术n5.结果应能清楚地审查n6.开发小组的人员应该少而精n7.承认不断改进软件工程实践的必要性第18页,共36页。1.2.3 软件工程方法学n通常把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称为范型(paradigm)。在软件工程范畴中,这两个词的含义基本相同。第19页,共36页。软
7、件工程方法学包括三个要素n方法q方法是完成软件开发的各项任务的技术方法,回答“如何做”的问题n工具q工具是为方法的运用提供自动的或半自动的软件支撑环境n过程q过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。第20页,共36页。n目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。第21页,共36页。传统方法学n传统方法学也称为生命周期方法学或结构化范型。n当软件规模较大,或者对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。第22页,共36页。面向对象方法学n
8、概括地说,面向对象方法具有四个要点:q把对象(Object)作为融合了数据及在数据上的操作行为的统一的软件构件。面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成。q把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据之上的操作用于实现对象的动态行为。第23页,共36页。面向对象方法学(cont.)n按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上
9、层基类中定义的数据和操作,这种现象称为继承。n对象彼此之间仅能通过发送消息互相联系。对象与传统数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须向它发消息请求它执行它的某个操作以处理它的数据,而不能从外界直接对它的数据进行处理。第24页,共36页。面向对象方法学n面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。n从而使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。第25页,共36页。n正确运用面向对象方法学开发软件,则最终的软件产品由许多较
10、小的基本上独立的对象组成,而且大多数对象都与现实世界中的实体相对应。n因此,降低了软件产品的复杂性,提高了软件产品的可理解性,简化了软件的开发和维护工作。第26页,共36页。n由于对象是相对独立的实体,容易在以后的软件产品中重复使用,因此,面向对象范型的另一个重要优点是促进了软件重用。n面用对象方法特有的继承性,进一步提高了面向对象软件的可重用性。第27页,共36页。1.3 小 结n本章对计算机软件工程学作了一个简短的概述。首先通过回顾计算机系统发展简史,说明开发软件的一些错误方法和观念是怎样形成的。第28页,共36页。n然后列举了这些错误方法带来的严重弊病(软件危机),澄清了一些糊涂观念。为
11、了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。第29页,共36页。n应总结计算机软件的历史经验教训,借鉴其他工程领域的管理技术,逐步使软件工程这门新学科发展和完善起来。第30页,共36页。n本章力求对软件工程的基本原理和方法学有概括的本质的认识。n生命周期方法学把软件生命周期划分为若干个相对独立的阶段。第31页,共36页。n每个阶段完成一些确定的任务,交出最终的软件配置的一个或几个成分;n基本上按顺序完成各阶段任务,在完成每个阶段的任务时采用行之有效的结构化技术和适当的辅助工具;n在每个阶段结束时都进行严格的技术审查和管理复审。第32页,共36页。n当软件规模较大或对软件的需
12、求模糊易变时,采用生命周期方法学开发往往不能成功,近年来在许多应用领域面向对象方法学已经迅速地取代了传统方法学。n面向对象方法有四个要点,可以用下列方程式概括:第33页,共36页。n面向对象方法学=对象+类+继承+用消息通信n也就是说,面向对象方法就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。第34页,共36页。n如果仅使用对象和消息,则这种方法可以称为基于对象的(Object-based)方法,而不能称为面向对象的方法;n如果进一步要求把所有对象都划分为类。则这种方法可称为基于类的(Class-based)方法,但仍然不是面向对象的方法。n只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。第35页,共36页。n面向对象方法简化了软件的开发和维护工作,提高了软件的可重用性。第36页,共36页。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。