软件工程华东理工大学计算机科学与工程系.ppt_第1页
软件工程华东理工大学计算机科学与工程系.ppt_第2页
软件工程华东理工大学计算机科学与工程系.ppt_第3页
软件工程华东理工大学计算机科学与工程系.ppt_第4页
软件工程华东理工大学计算机科学与工程系.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,2019年11月24日,第8章软件工程,李开复给学生的信,【1】从诚信谈起:,问题八:大学生如何提高阅读能力、写作能力、表达能力、演讲能力?看报、看杂志、看小说、看网站听广播、看电视、看电影写总结、写日记、参加演讲比赛,思考,浙江工商局长郑宇民斗智央视主持人董倩,在大学给自己制定一个个人使用表,送给学生的话,1.天天锻炼身体,不要说:“我没有时间。”2.多看一些好书,不要说:“我很忙。”3.培养自己多方面兴趣,不要说:“我不懂,我不喜欢。”4.生于忧患,死于安乐。5.要自信,不要说:“我不行。”应说:“让我试试。”6.要有实干精神(勤奋)。,我大学的个人使用表,7.珍惜生命的分分秒秒,想到:“我能再活一天,我将要。”8.要勇敢承认自己的错误(或不足),不要说:“那是因为。”不要为自己寻找理由,一切无借口。应坦诚承认别人行。9.建立终身学习目标,一切以学习为主。从一切人那儿学习,哪怕他是自己的敌人。从一切方面(特别是实践)学习。10.不要轻易许下诺言,要尽最大努力遵守诺言。11.要多与人真诚合作,想到:个人难挑千担柴。无性情中人,最好别干。12.不要在意闲言碎语,坚信:走自己的路,让别人说去吧!,13.不要成为金钱、名利、权力的奴隶,也不要成为任何人(哪怕自己最爱的人)的奴隶。应勇敢地作自己的主,活出自己的风格,想到:我永远是我!14.要谦虚。15.珍惜友情,但不刻意去追求。16.当天的事当天干。17.一切应从有益自己成功为出发点,但得顾及别人和社会利益。18.应迎难而上,奋力拼搏,做到问心无愧,但要考虑“煞车原理”。,19.多赞美,少批评。20.为人处事,要对得住自己良心。21.微笑面对任何人;礼貌对待任何人,哪怕他是个乞丐;尊重为自己服务的人;爱一切人,哪怕他是自己的敌人(当然是他好的一面),也应仇恨一切丑恶现象和坏人。22.应加强道德纪律观念。23.注意修养和综合素质的提高。24.睡前反省今日所作所为及明天的大致安排。,25.千万不要为了别人而毁灭自己(当然献爱心除外),不要为了报复而毁了自己,最好不要报复。26.坦然对待一切,不幸应看到希望,成功应看到困难。微笑面对人生,也就是乐观地对待人生。27.每日深思:我拿什么资本到社会上去竞争,怎样才能把自己培养成高素质的可塑性人才?,回锅肉制作方法,1.需求分析:口味、主料、辅料2.制作步骤:买菜、煮肉、切菜、切肉、炒肉3.制作方法:肉煮几成熟、什么时候放蒜苗4.品位佳肴:盐、麻、辣、油5.剩菜处理:保菜、热菜,做软件就像做菜一样,是一门技术,更是一门艺术,系统实现,系统分析,系统设计,系统测试,系统维护,通过五个实例详细讲解软件开发的五个过程,网上商城管理系统设计与实现,基于Web的在线系统,主要功能是为会员用户提供商品的浏览和购买功能,主要涉及:会员信息的管理:会员注册,信息修改、删除和检索等商品信息的管理:商品录入,信息修改、删除和检索等订单信息的管理:对会员及其所购买的商品的管理(确认订单、查看订单、修改订单和完成订单),8.1软件工程的形成与发展8.2什么是软件工程8.3系统分析8.4系统设计8.5系统实现8.6软件测试8.7软件维护8.8软件文档,软件工程,8.1软件工程的形成与发展,1963年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“。”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失1968年,北大西洋公约组织的计算机科学家们在联邦德国召开的国际会议上讨论了软件危机问题,同时也是在这个会议上提出了“软件工程”这个名词,导致了一门新的工程学科的正式诞生软件危机:软件开发和维护过程中遇到的一系列严重问题,软件危机表现形式:用户很不满意:界面风格不统一、操作不方便质量很不可靠:没有人测试,代码管理,团队沟通软件不可维护:每年维护成本20%对软件开发成本和进度的估算不准确:公司损失没有适当的文档:代码是给人看的,不是给机器;和客户沟通,还要客户签字;要做什么写下来软件成本比重上升:人力资本上升软件供不应求:保证软件质量,产生的原因:软件是逻辑的系统部件不是物理的系统部件,以程序和文档形式存在软件规模越来越大,功能越来越强,软件结构非常复杂结论:软件危机产生的根本原因与软件产品的特征和软件产品开发与维护的方法不正确有关解决软件危机的根本出路:认识问题的原因所在,汲取前人的经验要有相应的理论、技术、工具,8.2什么是软件工程,1.定义是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科它涉及到程序设计语言、数据库、软件开发工具,系统平台、标准、设计模式等方面,2.软件生存周期软件生存周期一般划分为:计划(定义)时期:问题定义和可行性研究两个阶段开发时期:需求分析、系统设计、编码和测试四个阶段运行时期:主要是系统维护阶段,问题定义,可行性研究,需求分析,软件设计,编码,测试,维护,(软件系统目标与范围说明书),(可行性论证报告),(需求说明书),(设计说明书),(程序),(测试报告),(软件维护报告),典型的软件生存周期:,3.开发模型(1)瀑布模型(waterfallmodel)瀑布模型由W.Royce于1970年首先提出根据软件工程生存周期各个阶段的任务,瀑布模型从可行性研究开始,逐步进行阶段性变换,直至通过确认测试并得到用户确认的软件产品为止瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密联系一个阶段的失误将蔓延到以后的各个阶段为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作,评审过程发现错误和疏漏后,应该及时反馈到前面的有关阶段修正错误或弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段瀑布模型如图所示:,瀑布模型的优点:可强迫开发人员采用规范的方法严格规定了每个阶段必须提交的文档要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证瀑布模型的缺点:在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的确定需求后,用户和软件项目负责人要等相当长的时间才能得到一份软件的最初版本。如果用户提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力和时间方面的损失,(2)原型模型(演化模型)主要是针对事先不能完整定义需求的软件项目开发而言的许多软件开发项目由于人们对软件需求的认识模糊,很难一次开发成功,返工再开发难以避免因此,人们对需开发的软件给出基本需求,作第一次试验开发,其目标仅在于探索可行性和弄清需求,取得有效的反馈信息,以支持软件的最终设计和实现通常我们把第一次实验性开发出的软件称为原型这种开发模型可以减少由于需求不明给开发工作带来的风险,有较好的效果,相对瀑布模型来说,原型模型更符合人类认识真理的过程和思维,是目前较流行的一种实用的软件开发方法原型模型如图所示:,原型化模型有:丢弃型:原型开发后,已获得了更为清晰的需求反馈信息,原型无需保留而丢弃,开发的原型仅以演示为目的,这往往用在软件的用户界面的开发上样品型:原型规模与最终产品相似,只是原型仅供研究用渐增式演化型:原型作为最终产品的一部分,它可以满足用户的部分需求,经用户试用后提出精华系统、增强系统能力的需求,开发人员根据反馈信息,实施开发的迭代过程。如果在一次迭代过程中,有些需求还不能满足用户的需求,可以在下一迭代过程中予以修正,整个实现后软件才可最终交付使用,(3)螺旋模型是瀑布模型与原型模型相结合,并增加两者所忽略的风险分析而产生的一种模型该模型通常用来指导大型软件项目的开发,它将开发划分为制定计划、风险计划、实施开发和客户评估四类活动沿着螺旋线每转一圈,表示开发出一个更完善的新的软件版本如果开发风险过大,开发机构和客户无法接受,项目有可能就此中止;多数情况下,会沿着螺旋线继续下去,自内向外逐步延伸,最终得到满意的软件产品,该模型是由TRW公司的B.Boehm于1988年提出的下图显示了螺旋模型的原理,沿着螺旋线旋转,在笛卡儿坐标的四个像限上分别表达了四类活动,制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件风险分析:分析所选方案,考虑如何识别和消除风险实施开发:实施软件开发客户评估:评价软件功能和性能,提出修正建议,螺旋模型的优点:对可选方案和约束的强调有利于已有软件的重用有助于把软件质量作为软件开发的一个重要目标,减少了过多测试或测试不足所带来的风险但是要求许多客户接受和相信并不容易,使用该模型需要具有相当丰富的风险评估经验和专门知识,如果项目风险较大,又未必能及时发现,势必造成重点损失目前国内许多软件公司还未能及时掌握和运用这种模型,有待进一步积累经验,(4)喷泉模型对软件复用和生存周期中多项开发活动的集成提供了支持,以面向对象的软件开发方法为基础,它适合面向对象的开发方法它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性喷泉模型使开发过程具有迭代性和无间隙性系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系统无间隙是指在分析、设计和实现等开发活动之间不存在明显的边界,喷泉模型参见下图:,8.3系统分析,1.需求分析调查用户需求(添加、删除、修改、查询、打印)分析新系统的主要目标,分析开发该系统的可行性(技术、经济、人力、物力、环境、政策、道德等)计划时期还应制定出人力、资源及进度计划,2.面向过程分析数据流图:从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式,状态图:描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的,反应,3.面向对象分析用例图:被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模,类图:显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等,状态图:描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的,反应,1.功能需求:会员信息管理:密码安全性、忘记密码怎么办商品信息管理:每页显示多少商品、商品查询订单信息的管理:完成订单可以两个小时修改用户登录:管理员和会员同一个登录页面?,网上商城管理系统系统分析,2.数据流图:顶层数据流图:P0网上商城第二层数据流图:P01会员管理、P02订单管理、P03商品管理第三层数据流图:会员注册、会员信息修改、删除会员、检索会员、会员登录;确认订单、查看订单、修改订单、完成订单;录入商品、修改商品信息、删除商品信息、检索商品信息,3.数据字典:数据元素定义:会员信息、商品信息、订单信息、订单详情数据流定义表:会员信息、管理员、商品信息、订单信息文件定义表:会员信息、商品信息、订单信息、订单详情,4.E-R图:会员信息表、商品信息表、订单信息表、订单详情表5.其他相关要求:系统最小寿命:三年以上设备要求:计算机稳定性好,整套设备经济实惠使用上:系统易理解,易学习,易操作安全性:安全可靠,容错,易恢复数据集中上:用统一的数据库可维护性:可修改,可测试,可扩充,可移植系统硬件环境:服务器和客户机的要求,8.4系统设计,从工程管理的角度来看,系统设计分两步完成。概要设计,将软件需求转化为数据结构和软件的系统结构;详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。OO软件开发:概要设计的部分内容(类&对象的设计)前移到OOA阶段,概要设计主要围绕对象之间的协作。,1.总体设计2.详细设计会员登录模块:模块输入、处理和输出会员管理模块:会员注册、会员信息修改、删除会员、检索会员商品管理模块:商品录入、信息修改、检索商品、删除商品订单管理:确认订单、查看订单、修改订单、完成订单,网上商城管理系统系统设计,8.5系统实现,1.语言的选择2.软件质量可操作性可维护性可迁移性,1.程序设计语言和数据库的选择技术开发语言:c#开发平台:MicrosoftVisualStudio2008数据库:SQLServer2005Express2.系统模块的编码实现会员登录模块、会员管理模块、商品管理模块、订单管理、MasterPage(用户登录前后),网上商城管理系统系统实现,8.6软件测试,1.白盒测试基本路径测试控制结构测试循环测试2.黑盒测试穷尽测试随机测试边界值测试,1.测试概述:测试内容、测试计划、测试人员安排2.测试方法:重要模块白盒测试,其他黑盒测试3.测试步骤:先单元测试,再集成测试,对每个测试都要考虑合法和非法的测试4.测试过程:系统的测试内容、系统的单元测试、系统的集成测试、系统测试与回归测试,网上商城管理系统系统测试,8.7软件维护,软件维护:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程维护的种类:完善性维护(perfectivemaintenance)适应性维护(adaptivemaintenance)纠错性维护(correctivemain

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论