您好,欢迎访问三七文档
1软件工程SoftwareEngineering主讲:刘利民教授课件:-文件服务-upload-llm-软件工程E-mail:liulimin789@126.com电话:65755472学习《软件工程》意义计算机学科面临着难得的发展机遇:在《国家中长期科学和技术发展规划纲要》(2006-2020),强调发展信息产业及现代服务业,加快信息化进程。在重大专项、重点领域、优先主题、前沿技术、基础科学问题等五大类344个项目中,计算机在其中都起到了关键和核心作用——数字化、信息化、网络化。3学习《软件工程》意义软件业是决定21世纪国际竞争地位的战略性产业,是信息时代的朝阳产业。1.软件产业是信息产业的核心,是国际竞争的焦点和战略制高点。目前,我国信息产业已经成为国民经济的第一支柱产业。软件产业作为信息产业的核心和国民经济信息化的基础,对我国经济的持续高速发展起到了重要的支撑作用。4学习《软件工程》意义2.软件关系到国家政治、经济和社会的安全及民族文化的发扬光大。核心软件是否掌握在自己手中,是关系到国家经济安全的重大问题;网上的文化是有民族性的。软件工程5学习《软件工程》意义3.发展软件产业对优化我国产业结构、提高经济运行质量具有极其重要的作用。4.软件是国民经济建设中诸多关键技术的基础。学习研究工程化的软件开发方法,使开发过程更加规范,是学习的目标和动力。软件工程6软件工程软件工程导论(第5版),张海藩,清华大学出版社,2008教材参考书目软件工程(英译版,第6版),萨默维尔Sommerville,机械工业出版社,20067软件工程实用软件工程(第2版),郑人杰殷人昆陶永雷,清华大学出版社(2003)软件工程-实践者的研究方法(英译版,第5版)RogerS.Pressman机械工业出版社(2006)参考书目8软件工程人月神话,(美)FrederickP.Brooks,Jr.UMLChina译,清华大学出版社,2002关注“软件开发”本身。软件工程领域的圣经,软件项目管理领域的经典著作。布鲁克斯在IBM公司System/360家族和OS/360中的项目管理经验。既有很多发人深省的观点,也有大量的软件工程现实。参考书目9软件工程职业的乐趣1.一种创建事物的纯粹快乐。2.快乐来自于开发对其他人有用的东西。3.整个过程体现出魔术般的力量。4.学习的乐趣—来自于这项工作的非重复特性。5.乐趣还来自于工作在如此易于驾驭的介质上。程序员,就像诗人一样,几乎仅仅工作在单纯的思考中。参考书目10软件工程职业的苦恼1.必须追求完美。2.对其他人的依赖是一件非常痛苦的事情。3.概念性设计是有趣的,但寻找琐碎的bug却是一项重复性的活动。4.调试和查错往往是线性收敛的,寻找最后一个错误比第一个错误将花费更多的时间。5.当投入了大量辛苦的劳动,产品在即将完成或者终于完成的时候,却已显得陈旧过时。参考书目11软件工程人件,TomDeMarco,TimothyLister,UMLChina译,清华大学出版社,2003关注软件开发中的“人”。“我们工作的主要问题,与其说是技术性的,不如说更多的是社会性的”,参考书目12软件工程第1版1987年,专门讨论软件开发和维护的团队管理问题。推崇人本管理思想,指出知识型企业的核心是人,而不是技术。本书被誉为“几十年来对美国软件业影响最大的理念”。第2版1999年,增补了8章新内容。拥有更宽广的视角,对大中型组织中的团队如何运作进行了深入探讨。参考书目13软件工程软件工程项目规范计算机软件工程规范国家标准汇编(2000)-文件服务-upload-llm-软件工程其它参考资料14软件工程系统/软件工程研究与实践论坛专注于系统工程和软件工程,专注于复杂产品/软件开发,资料下载、交流UML软件工程组织基础、案例、培训、应用IT之源全国“星火杯”创造发明竞赛优秀项目金奖,UML之源基础、培训、应用其它参考资料15软件工程中国程序员中国最大的开发者网络,信息和技术服务程序员之家技术资料站小辉程序员之路软件工程课程评分方法平时成绩10%+大作业20%+期末考试70%=总评100%大作业电子版可通过e-mail递交考勤:若抽查3次缺勤,不得参加考试17《学生管理系统》StudentMis《学生管理系统》针对的用户是学校学生管理部门。相应的需求有:能够存储一定数量的学生信息,并方便有效的进行相应的学生数据操作和管理,主要包括:大作业18学籍管理学生基本信息的导入/录入、删除及修改学生辅助信息(综合测评、奖励、处分等)的录入、删除、修改学生贷款管理(录入、删除、修改)学生就业管理(录入、删除、修改)学生勤工助学管理(录入、删除、修改)学生各种信息的多关键字检索查询。大作业19能够对需要的统计结果提供打印输出。能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。可选题目:-图书管理系统的分析与设计-人事管理系统的分析与设计-商业管理系统的分析与设计-商业网站的分析与设计可以自选题目,但需要教师认可大作业20应提交的文档软件需求规格说明书(必须)软件设计规格说明书(必须)用户安装及使用手册系统测试计划演示程序其它大作业21分组班长组织,每组4人,选一个组长。组长负责:组织、分工、控制进度、作业提交等。对每位组员成绩有分数浮动建议权。带领全组顺利完成任务,总评适当加分。作业提交:每组一份,但必须注明分工,根据完成的质量来决定最后的成绩。大作业22软件工程目的体验软件工程各阶段的主要工作,特别注意吸取教训;学会与他人合作,培养团队精神,单干户将得不到成绩。从现在开始,谁也不知道我们的项目会不会成功。牢记:目标、交流与合作、内省23§1.0软件概论什么是软件软件的分类§1.1软件危机软件危机的表现软件危机的原因§1.2软件工程软件工程软件工程的目的和要求§1.3软件生命周期§1.4软件过程第一章软件工程学概论24关于软件争论不休的问题:•为什么需要那么长时间才能结束开发?•为什么成本如此之高?•为什么我们不能在把软件交给客户之前就发现所有的错误?•为什么在软件开发过程中我们难以度量其进展?§1.0软件概论25软件的定义软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合IEEE定义(1983年):计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。软件=程序+数据+文档§0.软件概论26•程序是按事先设计的功能和性能要求执行的指令序列•数据是使程序能正常操纵信息的数据结构•文档是与程序开发,维护和使用有关的图文材料§0.软件概论27软件的特点•软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性、不可见性•软件的生产与硬件不同,在它的开发过程中没有明显的制造过程–软件是由开发或工程化而形成的,而不是传统意义上的制造产生的;产品拷贝。–软件成本集中于开发上,这意味着软件项目不能象硬件制造项目那样来管理。§0.软件概论28软件的特点•在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题–当一个硬件构件磨损时,可以用另外一个备用零件替换它,但对于软件则不然。每一个软件故障都表明了设计/编程中存在错误。因此,软件维护更复杂。§0.软件概论29§0.软件概论30•软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性•软件的开发至今尚未完全摆脱手工艺的开发方式。大多数软件是定制的,而不是通过已有的构件组装而来的。§0.软件概论软件的特点31•软件本身是复杂的•实际问题的复杂性•程序逻辑结构的复杂性例:1.Windows95超过1000万行,花费上千人。2.Lotus1-2-3V3.0近40万行,花费263人年,成本22百万美元。3.WWMCCS(全球军事指挥与控制系统)花费3500多人拖了几年,交付后发现100个错误。最后失败。§0.软件概论软件的特点32•程序、软件与软件产品独唱--小合唱--合唱--万人大合唱|||简单程序较复杂程序软件§0.软件概论33•相当多的软件工作涉及到社会因素§0.软件概论•软件成本相当昂贵软件的特点34软件的分类•按软件的功能进行划分:–系统软件使计算机系统各个部件、相关软件和数据协调、高效地工作的软件§0.软件概论•操作系统•数据库管理系统•设备驱动程序•通信处理程序等35–支撑软件协助用户开发软件的工具软件§0.软件概论•文本编辑程序•程序库系统•……•支持需求分析、设计、实现、测试和支持管理的软件36–应用软件§0.软件概论•商业数据处理软件•工程与科学计算软件•计算机辅助设计/制造软件•系统仿真软件•智能产品嵌入软件•医疗、制药软件•事务管理、办公自动化软件•计算机辅助教学软件37•按软件规模进行划分:§0.软件概论类别参加人数研制期限产品规模(源代码行数)微型11–4周500小型11–6月1000–2000中型2-51–2年5–50000大型5-202–3年50–500000甚大型100-10004–5年1000000极大型2000-50005–10年1000000–1000000038•按软件规模进行划分:类别参加人员数研制期限源程序行数微型11~4周0.5k§0.软件概论小型11~6月1k~2k数值计算或数据处理.通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。39大型5~202~3年50k~100k编译程序、小型分时系统、实时控制系统等。二级管理,若干小组,每组5人以下。人员调整往往不可避免,新手的培训。采用统一的标准,实行严格的审查是绝对必要的。§0.软件概论中型2~51~2年5k~50k应用程序和系统程序。软件人员之间、与用户之间的联系、协调的配合关系。因而计划、资料书写以及技术审查需要比较严格地进行。系统的软件工程方法是完全必要的。40§0.软件概论甚大型100~10004~5年1M若干个子项目,每一个子项目都是一个大型软件。子项目之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常具有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。极大型2000~50005~10年1M~10M军事指挥、弹道导弹防御系统。只是对软件工程技术依赖的程度不同而已。41•按软件工作方式划分:•实时处理软件•分时软件•交互式软件•批处理软件§0.软件概论42§1.1软件危机(SoftwareCrisis)在60年代中期以前:个体化软件开发方法.用户程序员(编写者=使用者),无文档资料在60年代中期-70年代中期:软件作坊,产品软件.个体化软件开发方法.43§1.软件危机•在程序运行时发现的错误,必须设法改正•用户有新的需求,必须相应地修改程序•硬件或OS的更新,通常需要相应地修改程序上述的软件维护工作,以令人吃惊的比例消耗资源;有些软件是不可维护的。软件危机开始出现!软件危机:在计算机软件开发、维护过程中所遇到的一系列严重问题。44例:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。......据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。§1.软件危机45§1.软件危机项目负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣
本文标题:软件工程1
链接地址:https://www.777doc.com/doc-213001 .html