软件工程内容摘要本书为配合国家技能型紧缺人才培养培训工程并根据《计算机应用和软件专业领域技能型紧缺人才培养培训指导方案》的要求而编写。本书针对职业院校学生的特点,充分体现《指导方案》中素质为基础、能力为本位、需求为依据、就业为导向的基本原则,教学内容注重选择当前软件工程中的一些新理论、新方法与新技术,通过一个小型软件项目为案例贯穿全书,使学生在学完后能基本掌握软件工程的基本理论与方法在软件项目开发中的实际应用。其主要内容涉及软件工程中的软件策划、需求分析、软件设计、编码实现、软件测试及实施与维护等方面的内容,考虑职业院校学生的就业定位,重点侧重于详细设计、软件编码、软件测试、软件维护这几个方面的基本知识与技能。为保持教学内容的先进性同时便于对教学进行科学灵活的组织,对诸如UML方法、面向对象的分析、设计与编程、面向对象软件测试、CMM等也作了介绍。本书可以作为职业院校计算机类专业的软件工程课程的教材或教学参考书,也可作为IT行业程序员、测试员、维护员等的培训教材或参考书。主要内容第1章软件工程概述第2章系统策划第3章需求分析第4章软件设计第5章编码第6章软件测试第7章软件实施与维护第8章软件项目管理第9章软件过程管理第一章软件工程概述本章主要内容1.1软件与软件工程1.2软件生存周期与开发模型1.3软件工程过程1.4软件开发工具简介1.5学习指南11软件及软件工程—软件软件的定义在运行中能提供所希望的功能与性能的程序使程序能够正确运行的数据及其结构描述软件研制过程和方法所用的文档软件的特点软件角色的双重性软件不是传统意义上的被制造软件不会“磨损”,但会退化软件都是手工定制的开发过程的复杂与费用的昂贵11软件及软件工程—软件软件的分类分类方法软件类型按功能(1)系统软件(2)支撑软件(3)应用软件按版权(1)商业软件(2)共享软件(3)自由(免费)软件(4)公有领域软件按工作方式(1)实时软件(2)分时软件(3)交互式软件(4)批处理软件按销售方式(1)订制软件(2)产品软件11软件及软件工程—软件工程软件危机软件开发的生产率远远不能满足客观需要开发的软件产品往往不能满足用户的实际需要软件产品的质量低下且可维护性差很难估计软件开发的进度计划与成本软件神话有了软件开发书籍,就可以解决软件开发中的一切问题进度滞后了?好,增加程序员只要程序正确,项目就成功,文档可有可无软件质量只能在正式投入运行后才知道11软件及软件工程—软件工程软件工程的定义IEEE定义:软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。通俗地说,软件工程是指导软件开发和维护的一门工程学科。它采用工程的概念、原理、技术和方法,把经过时间检验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,用于开发和维护软件。质量焦点11软件及软件工程—软件工程软件工程—层次化技术过程方法软件工程三个要素:方法、工具、过程工具11软件及软件工程—软件工程软件工程的作用【成功案例】美国联邦速递公司(FedEX)的管理信息系统【失败案例】英国伦敦的急救服务管理信息系统软件工程的基本原理用分阶段的生存周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性80:20原则12软件生存周期与开发模型—生存周期软件生存周期人的生存周期婴儿——幼儿——儿童——少年——青年——中年——老年——死亡软件的生存周期软件定义软件开发软件支持问题定义可行性分析需求分析概要设计详细设计编码测试软件发布软件运行维护或退役12软件生存周期与开发模型—生存周期软件定义阶段问题定义可行性分析立项或签订合同软件开发阶段需求分析软件设计编码与测试发布或安装验收软件开发阶段软件的使用、运行软件维护12软件生存周期与开发模型—开发模型问题的提出—软件工程需要解决什么问题?软件开发模型做什么软件?怎么做软件?软件如何适应变化?软件开发过程概括,是软件工程思想的具体化它是跨越整个软件生存周期的各个阶段所需要的全部工作与任务的结构框架12软件生存周期与开发模型—开发模型瀑布模型—线性顺序模型可行性分析需求分析设计编码测试支持定义阶段开发阶段支持阶段12软件生存周期与开发模型—开发模型瀑布模型的特点:瀑布模型的应用范围阶段间具有顺序性和依赖性每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误,但:开发过程一般不能逆转,否则代价太大。实际的项目开发很难严格按该模型进行。客户往往很难清楚地给出所有的需求,而该模型却要求如此。软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。用户的需求非常清楚全面,且在开发过程中没有或很少变化开发人员对软件的应用领域很熟悉。用户的使用环境非常稳定。开发工作对用户参与的要求很低12软件生存周期与开发模型—开发模型原型模型用户测试运行原型建造/修改原型听取用户意见12软件生存周期与开发模型—开发模型原型模型的特点:原型模型的应用范围可以得到比较良好的需求定义,容易适应需求的变化。有利于开发与培训的同步。开发费用低、开发周期短、维护容易且对用户更友好。客户与开发者对原型理解不同准确的原型设计比较困难不利于开发人员的创新对所开发的领域比较熟悉而且有快速的原型开发工具项目招投标时,可以以原型模型作为软件的开发模型进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。12软件生存周期与开发模型—开发模型基于构件的开发模型特点:属于演化式开发或迭代式开发,其开发过程:客户的交流,获得问题的定义标识基本类计划与风险分析类的复用或重新开发构造系统用户评估采用了先进的面向对象技术。基于构件库的开发,这是软件复用的基础,开发速度快。融合了螺旋模型特征支持软件开发的迭代方法,是一种演化型的开发技术。13软件工程过程软件工程过程的概念ISO9000过程:软件工程的三要素之一从开发到维护软件相关产品所采取一系列管理活动。主要包括项目管理、配置管理、质量管理、文档管理等。IS09001:设计、开发、生产、安装和服务的质量保证模式IS09002:生产、安装和服务的质量保证模式IS09003:最终检验和试验的质量保证模式。13软件工程过程CMM软件能力成熟度模型CMM(CapabilityMaturityModel)CMM的级别初始级Initial可重复级Repeatable已定义级Defined已管理级Managed优化级Optimizing开发工具的作用与功能14软件开发工具简介—CASE工具计算机辅助软件工程CASE作用认识与描述系统需求保存与管理开发过程中的信息代码的生成文档的编制与生成软件项目的管理开发工具的分类14软件开发工具简介—CASE工具分类方法按应用阶段划分按功能划分设计工具分析工具项目管理软件配置质量保证分析设计计划工具界面开发客户服务器Web开发IBMRational工具14软件开发工具简介—常用CASE工具Rational公司是专门从事CASE工具研制与开发的软件公司,2003年被IBM公司收购。该公司所研发的Rational系列软件是完整的CASE集成工具,贯穿从需求分析到软件维护的整个软件生存周期。需求分析与设计工具产品主要构成测试工具软件配置管理工具RosePurifyPlusRobotClearCase北大青鸟工具14软件开发工具简介—常用CASE工具北大青鸟系列CASE工具北京北大青鸟软件有限公司开发研制的,在国内有较高的知名度,北京大学软件工程国家工程研究中心就设在该公司。产品主要构成面向对象软件开发工具集JBOO构件库管理系统JBCLMS项目管理与质量保证JBCMJBPMJBCCM软件测试系统Safepro微软版本管理器—VSS14软件开发工具简介—常用CASE工具版本管理是软件配置管理中的核心工作,由Microsoft公司开发的VisualSourceSafe6.0使用非常广泛而且很容易获得。文件检入与检出产品主要功能版本控制文件的拆分与共享权限管理本书案例介绍—教师教学网络测评系统15学习指南—学习案例为实现教学质量的量化考核,借此评价教师的教学水平并有针对性的提高教学质量,某高校开发了基于校园网的教学质量网上测评系统四大功能模块数据采集模块,学生对一个学期中所学课程的各任课教师的教学水平及师德两个方面给予的百分制评价分值数据统计模块,根据教务处规定的统计方法统计出每位任课教师在一个学期中的教学水平及师德的最终测评得分。数据查询模块,查询全校任课教师的最终得分及名次,还能够查询各个班级的学生对任课教师的教学水平及师德的评分情况。辅助功能模块,包括基础数据的管理、测评类型的管理等。本书案例介绍—教师教学网络测评系统15学习指南—学习案例系统运行界面—浏览器端:本书案例介绍—教师教学网络测评系统15学习指南—学习案例系统运行界面—服务器端:第二章系统策划这个项目是做还是不做呢?还是先去做一下市场调研或与客户谈谈签约的事吧!2.1可行性研究2.2软件项目计划本章主要内容21可行性研究----问题的定义问题定义确定软件开发项目必须完成的目标。其关键问题是:“要解决什么问题?”含义主要内容问题的背景、总体要求与目标、类型范围、功能规模、实现目标的方案、开发的条件、环境要求等问题定义报告应包括内容项目名称使用方对问题的概括定义项目的目标项目的规模21可行性研究----问题的定义案例分析某校在校生近5000人,每学期在期中都要进行一次对教师的教学质量测评,要求所有学生都要参加。以前测评的方式都是手工操作,由教务处发出书面问卷调查表,每个同学填写完成后交回到教务处。然后教务处再使用手工的方法对问卷进行统计汇总,最后得出学生对每一位教师的总体评价。这种方法一方面浪费了大量的财力、人力,另一方面统计繁琐且容易出错。考虑到现在学校校园网已经建成,为节省开支,提高效率,学校决定委托计算机系开发一套基于校园网的《教师教学网络测评系统》1、问题的提出21可行性研究----问题的定义案例分析2、问题分析系统分析人员经过与学校教务部门及各相关单位进行充分的调查后,了解了该项目的一些背景资料与基本要求。教师测评分两大部分,一是师德测评;二是教学质量测评。师德测评有4项指标,教学质量测评有14项指标。系统要实现的目标是:•所有学生在指定时间内在指定机房的计算机上完成对任课教师的测评打分,测评过程全部采用选择的方法,不需要输入任何信息•所有的测评数据保存在学校中心服务器上,有较为严格的安全措施•系统能对所有的数据进行统计汇总,得出每一位教师的测评结果,并能进行排序、输出。……系统开发的大体费用在1.2万元左右,开发周期大约6个人月。21可行性研究----问题的定义案例分析3、系统定义报告根据以上分析,形成如下的系统定义报告。案例文档之一——系统定义报告用户单位:XX学校教务处负责人:XXX开发单位:XX学校计算机系分析员:XXX项目名称:基于校园网的教学质量测评系统问题概述:教师教学质量测评每学期必须进行一次,原有的手工方法存在资源浪费、效率极低、结果不准确等问题。……(其它的相关说明)项目目标:开发一个效率高且相对通用的教师教学网络测评系统。项目规模:开发成本大约1.2万元,开发周期约6个人月。可行性研究:建议进行一周,费用不超过500元。21可行性研究----可行性研究的任务与步骤一、可行性研究的任务2、经济可行性3、社会因素的考虑分析成本——收益与短期效益——长远利益这两个方面。要作出投资的估算和系统投入运行后可能获得的经济效益或可节约的费用估算。分析利用现有的技术能否实现,能否解决系统中的技术难题,所开发的系统能否达到所要求的功能和性能,系统对技术人员的要求,现有的技术人员能否胜任,开发所需要的软件与硬件能否如期得到等1、技术可行性主要考虑的是