《软件工程教案理论课程》由会员分享,可在线阅读,更多相关《软件工程教案理论课程(103页珍藏版)》请在金锄头文库上搜索。
1、教师备课教案本(理论课程)系 别:计算机工程系课程名称:软件工程教师姓名:段琢华授课时间:20132014学年第 2 学期电子科技大学中山学院教师授课计划*课程名称软件工程学分3课程类型1、普通教育必修课( ); 2、学科基础必修课( ); 3、专业方向课( );4、学科基础选修课( ); 5、素质教育选修课( ); 6、专业选修课( )。学时分配总学时:48 ;课堂讲授: 32学时; 实践(验)课 16学时授课起止周1-16授课班级游戏11,嵌入式11,网络11班级人数56,69,50授课总次数*16教材名称软件工程案例教程:软件项目开发实践 第2版作者韩万江 姜立新出版时间2011年10月
2、13日章节基 本 内 容计划学时1软件工程总揽(软件工程知识体系,软件工程的三段论,方法、过程和工具的概述)62软件开发模型及可行性研究2软件需求(需求定义,需求层次,需求建模,需求规格说明,需求验证和变更控制)43分析建模(领域建模,架构设计)44软件设计(设计模式的应用, 子系统设计)86软件编码(编码方法,编码过程)47软件测试、发布与维护(测试方法,测试级别)4考核要求(根据课程实际情况,不做要求的项目可不写):1、平时成绩的构成比例和考核方式;20% 考勤和读书笔记2、期中成绩的构成比例和考核方式;3、期末成绩的构成比例和考核方式;50% 综合课程设计4、实验成绩的构成比例和考核方式
3、。30% 上机实验。 填表日期: 2014年 02月 25日 教案时间安排第 周 ,总第 次课 章节名称第一章 总揽(4次课)教学目的讲解软件工程三个基本要素,通过比较各种软件工程方法的优缺点来给出面向对象软件工程方法论。同时讲解各种软件过程模型,以及uml建模语言的相关知识。教学重点与难点软件工程的三个基本要素面向对象软件工程思想,学会以对象的方式来思考问题UML表示法教学内容与过程设计教学内容与过程设计软件工程的成果是为软件设计和开发人员提供思想方法和工具,而软件开发是一项需要良好组织、严密管理且各方面人员配合协作的复杂工作。软件工程正是指导这项工程的一门科学。一、软件工程知识体系(1)需
4、求定义为解决真实世界问题而必须展示的特性。(2)设计既是“定义一个系统或组件的体系结构、组件、接口和其它特征的过程”,又是“这个过程的结果”。(3)软件构造指通过编码、验证、单元测试、集成测试和排错的组合,详细创建一个可以工作的、有意义的软件。(4)软件测试由在有限测试用例集合上,根据期望的行为,对程序的行为进行的动态验证组成,测试用例是从实际上是无限的执行域中适当的选择出来的。(5)软件一旦投入运行,就可能出现异常,运行环境可能发生改变,用户会提出新的需求。生命周期的维护阶段从软件交付时开始,但维护活动出现得还要早。(6)软件配置管理(Software Configuration Manag
5、ement,SCM)是为了系统地控制配置的变更和维护配置在整个系统的生命周期中的完整性和可追踪性,而标识软件在时间上不同点的配置的学科。(7)软件工程管理知识域处理软件工程的管理与度量,虽然度量是所有知识域的一个重要方面,但在这里涉及的是度量程序的主题。(8)软件工程过程的知识域涉及软件工程过程本身的定义、实现、评定、度量、管理、变更和改进。(9)软件工程工具和方法知识域包括软件工程工具、软件工程方法。(10)软件质量知识域处理跨越软件生命周期过程的软件质量的考虑,由于软件质量在软件工程中无处不在,其它知识域也涉及质量问题,读者可以注意到本知识域到其它知识域的指示器。考核方式:组队,通过在整个
6、项目的实施过程中不断贯彻软件工程的思想,达到培养团队开发的目的。讨论:小组人数最好多于3人,这是基于以下事实:给延期的项目增加人手会使项目进一步延期。因为向项目中增加人手,就必须花时间来进行培训。因此最终结果变成了:新增人员贡献非常慢,即使他们的效率确实很高时,那也只是耗尽了原有程序员的时间和精力。而且,项目中的程序员越多,程序员之间的相互交流就越复杂。该事实诠释了一部软件工程经典著作的书名,The Mythical Man-Month即人月神话。该书指出:虽然我们采用人月(people per month)为单位来安排人手,但是每个人对软件的贡献各不相同,所以这些人月也不尽相同。在项目后期加
7、入的人员更是如此,这些人的贡献几乎可以忽略不计。二、软件工程概述人物简介:Watts S.Humphrey瓦茨S汉弗莱在软件工程领域享有盛誉,被美国国防软件工程杂志CrossTalk评为近几百年来影响软件发展的十位大师之一。瓦茨S汉弗莱在IBM工作了27年,负责管理IBM全球产品研发。离任后,受美国国防部委托,加入卡内基梅隆大学软件工程研究所(SEI),领导SEI过程研究计划,并提出了能力成熟模型(CMM)思想。在CMM浪潮席卷软件工业界之时,他又力推个人软件过程(Personal Software Process,PSP)和团队软件过程(Team Software Process,TSP),
8、成为软件开发人员和开发团队的自修宝典。强调:这里需要注意“复杂”两个字,过于简单的应用没有必要是结构复杂化,高级的体系结构、框架、设计模式都是为复杂系统准备的。软件的复杂性:软件是一个庞大的逻辑系统,此外,软件主要依靠人脑的“智力”构造出来,多种人为因素使得软件难以统一化,更增加了其复杂性。软件的复杂性使得软件产品难以理解,难以生产,难以维护,更难以对生产过程进行管理。许多软件项目在某些方面非常复杂。例如,软件所涉足的应用领域往往包含复杂的专业知识,而懂得应用领域专业知识的人很可能不是实际编写软件的人。所以,这些领域的专家必须和负责软件开发的技术人员交流自己的需求。交流的过程是复杂的,软件开发
9、人员只有在理解了用户面临的问题和需求后,才能动手开发软件。最后,许多进行中的软件项目规模非常大,不可能由一个人独立完成,因而开发技术小组必须将开发任务分成易于管理的模块,当各个部分全部完成后,将它们组装成可以协同工作的整体。将一个大项目分割成几个小部分,每个小部分由不同的人来开发,并且保证这些部分可以在一起工作,这个工程成为软件开发过程另一个复杂的来源。软件发展过程强调软件工程学科的发展没有停止,而且这里面没有教条,只有实践。举例:1、伦敦股票交易系统当初预算4.5亿英镑,后来追加到7.5亿英镑,历时五年,但最终还是失败,导致伦敦股票市场声誉下跌。2、2007年北京机场信息系统瘫痪。2007年
10、10月10日13时28分,设在北京首都国际机场的中国民航信息网络股份公司离港系统突然发生故障,短短50分钟内,北京、广州、深圳、长沙机场至少84个离港航班发生延误。该系统是由美国某家公司研发,此事件引发信息系统安全的担忧。3、2008年北京奥运会售票系统于2007年10月30日上午11时瘫痪:北京奥运会的指定独家票务供应商北京歌华特玛捷票务公司成立于2006年9月,由美国特玛捷公司、中体产业股份有限公司及北京歌华文化发展集团三家出资构建而成。售票系统瘫痪事件发生后,公众普遍质疑该公司是否具备承担08年北京奥运会的票务销售能力。三、软件工程三个要素方法、工具、过程。软件工程是一门建立在以质量焦点
11、为基础,分过程、方法和工具三个研究层次的综合技术。软件工程的基层是过程层,软件过程层是将方法和技术结合在一起的凝聚层,使得软件能够合理地、及时地开发出来。软件方法:在软件开发过程中所采用的技术,例如结构化的方法、面向对象的方法。软件过程:在软件产品生产过程中,软件人员所进行的一系列的软件工程活动。软件工具:在软件开发过程中为了实现某些方法而采用的手段,例如CASE工具,UML以及Rose等。讨论:一个有争议的观点:在软件开发中,最重要的因素不是程序员采用的工具、技术和语言,也不是过程,而是程序员自身的质量。这一观点来源于peopleware人件。其中说道“我们工作中最重要的问题与其说是技术问题
12、,还不如说它本质上是社会问题。”并提出了“人员的作用远远大于其他任何因素”。这本书还有一些独到的见解,比如“工作环境对工作效率和产品质量也有影响”。例如,“最好团队的工作空间是最差团队的1.7倍(测量可用地板空间),而最好团队的表现是最差团队的2.6倍。软件工程的基本原理1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性四、软件方法论软件描述的就是现实业务在计算机中的映射,说起来简单,做起来很难。因为现实业务越来越复杂,而用户希望对软件的操作是越
13、直接越好。软件分析设计方法的演变:1、没有方法。即意大利面条:Spaghetti Code,意指包含复杂庞大控制结构,杂乱无章的代码,特别是大量使用goto语句的代码等等。2、功能分解法功能分解功能子功能功能接口以系统需要提供的功能为中心来组织系统。适用于功能稳定的应用领域,如科学计算等。缺点:开头容易,结束难。对众多领域而言,功能易变。如企业管理和商业管理。对需求变化的适应能力很差。局部错误和局部修改很容易产生全局性的影响。重视功能,忽略数据。【举例】工资支付系统:更新工资信息;发放工资。更新工资信息:检查员工信息;提交工作记录;计算应发工资。发放工资:检查员工信息;计算应发工资;打印工资单
14、;登记领取。3、数据流法:又称作结构化分析。基本策略是跟踪数据流,即研究问题域中数据如何流动以及在各个环节上进行何种处理,从而发现数据流和加工。4、信息建模法:信息建模实体(对象)属性关系父类型/子类型关联对象由实体关系法发展而来。与数据库设计有很深的渊源。核心概念是实体和关系,实体描述问题域的事物,包含属性。关系描述事物之间在数据方面的联系,也可以带有属性。重视实体,而忽略功能。5、面向对象方法:面向对象方法的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。五、面向对象的基本概念(1)对象在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息,并具有与它进行交互的能力。对象的定义