软件工程与软件测试_第1页
软件工程与软件测试_第2页
软件工程与软件测试_第3页
软件工程与软件测试_第4页
软件工程与软件测试_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

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

文档简介

1、It软件工程和软件测试,Lin Lin软件技术,学习方案4-主要内容,软件工程开发流程模型面向对象技术UML概述Rational Rose安装和使用UML建模,软件工程开发流程,软件工程开发历史,软件工程开发历史,1960此时出现了所谓的软件公司。1968年,“软件工程”(SoftwareEngineering)一词出现了。过去30多年来,软件的一些问题仍然无法从根本上治愈,但是软件的发展速度超过了任何传统产业,真正的软件危机从未出现,这确实是以前的远见。现在软件工程成了学问。软件开发过程,软件工程,“软件研讨会”,个别软件环境,20世纪60年代中期,70年代,80年代,面向对象的软件开发,小

2、型软件大小,编辑和用户往往是同一个人,除了程序列表以外,没有其他文档信息。面向对象技术的应用改变了软件社区的开发方式。计算机应用程序越来越广泛,系统大小越来越大,逻辑越来越复杂,功能上需要不断更改和扩展。软件开发需要多个开发人员一起开发,开发人员可以按照各自的爱好和习惯工作,没有一定的标准,通过手工方式创建“软件研讨会”进行。1968年北大西洋公约组织计算机科学家在联邦德国举行了讨论软件危机问题的国际会议。正式提出“软件工程”一词,新兴工程诞生了。以“工程”理念为指导,可以大大降低软件开发成本,提高软件开发质量,“工程”为人们开辟了新的道路,“软件工程”正在迅速发展。随着软件危机,硬件成本的降

3、低,计算机开始普及,对软件的需求越来越大,此时软件产业还处于“手工作坊”阶段,软件生产和质量远远不能满足人们的需要,因此,“软件危机”,拉布雷亚的焦油坑(Mural of La Brea Tar Pits)随着软件工程的出现,“软件工程”领域的出现,解决软件危机,很多专家学者致力于软件工程方法的研究,将研究结果应用于实践,解决软件开发中的各种问题,大大提高软件制造的质量。软件工程的生命周期,经典软件工程思想将软件开发分为需求捕获阶段系统分析和设计阶段的五个阶段。系统实施阶段。的步骤。测试阶段裴珉姬管理阶段是从项目角度定义问题阶段可行性分析阶段,软件工程:技术层、公用流程模型、公用流程模型、瀑布

4、模型快速原型模型增量模型螺旋模型分数模型、流程模型选择,首先了解每个流程模型的特性和适用性。其次,根据软件项目的特点,选择相应的流程模型。值得注意的是,实际上,由于项目的复杂性,在一个项目中往往选择使用多个流程模型嵌套。瀑布模型,优点:1)可以强制开发人员采用标准化的开发方式。2)严格规定每个阶段必须提交的文件。3)每个阶段的提交工作产品必须通过QA的验证。缺点:缺乏灵活性,更改成本高。适用于要求非常明确的情况。快速原型的本质是“快”。开发人员应尽快构建原型系统,加快软件开发过程,降低软件开发成本。原型的目的是了解用户的真正需求。圆形可以分为废弃的圆形和进化型圆形。适用:主要适用于项目要求不明

5、确或需要减少项目的不确定性的情况。、快速原型模型、增量模型、特征:每次提交是满足用户需求子集的可执行产品,优点:用户每次都能获得完成部分功能的可用产品,有足够的时间学习和适应新产品;困难:软件体系结构的设计要求高,体系结构必须开放。螺旋模型、图2.6简化螺旋模型、基本思路:使用原型和其他方法将风险降至最低。可以将其视为在每个阶段之前添加了风险分析过程的快速原型模型。分数模型,迭代是软件开发过程中常见的一种内在特性。经验表明,软件过程的阶段间迭代或阶段内工作阶段间迭代在面向对象的模型中比在结构化模型中更为常见。术语“分数”反映了面向对象软件开发过程的迭代和无缝特性。图2.8分数模型,案例研究1,

6、辅导员部长老师为了方便学生管理,他委托学生小明帮助开发管理他所拥有的班级的学生信息的学生管理系统。这个系统只能供张老师一个人使用,系统功能并不那么复杂。张老师对自己需要的系统功能有明确的理解,本身也对软件开发有一定的了解,与小明的沟通过程进行得很顺利。在这种情况下,小明会选择什么流程模式?案例研究2,公关是大学软件技术专业的学生,在寒假期间为自己的邻居开发了小型超市管理系统。他的邻居从来不知道软件开发或超市管理系统应该是什么样的。那么,你建议推广什么样的流程模式?面向对象的技术,面向对象的技术(面向对象的方法OOSD),软件工程方法传统方法SA SD SP面向对象的方法OOA OOD OOP,

7、软件开发方法,类角色:分类:用于徐璐区分其他对象。是用于创建对象的模板:创建对象。连接、单向连接,在真实世界中,对象之间的连接通常使用“连接”来表示程序世界中对象之间的连接。关联、对象之间的关联、关联以及类之间的关联。也就是说,一个类可以与多个类相关联,也可以有多个相关联的类,并且关联中一个类的对象可以对应于另一个类的对象数。一位教师多名学生一门课程多名教师一辆汽车4个轮子书P23图2-2显示了关联的显示方法,关联的多重性,国家/地区,首都,1个,工作站,窗口,0个或1个,公司,员工,0个或更多,1个或更多,用户,目录,1个,聚合是对象之间的另一种关联。当面向对象的其他概念配置(强聚集)、聚集

8、对象与其配置对象之间存在强关联时,这种聚集称为配置。例如,如果树没有叶子,就不能成为树,所以树叶和树之间就形成了关系。面向对象的其他概念,抽象封装消息继承多态性,以及如何获取类和对象?抽象,提取事物的共同点,以统一的方式概括的过程;从很多事物中抛弃个别的、非本质的特征,提取共同的、本质的特征。过滤对象的某些要素和操作,直到仅剩下所需的属性和行为。WashingMachine类的抽象示例,该类是用于创建新洗衣机实例的模板。属性brand name model name serial name capacity,操作accept clothes()accept deergent()turn()tu

9、rn()turn off(),属性brand name model name serial name capacity trap motor speed,操作accept clothes()accept detter()turning()turn(),当然不是!作为分析师,根据用户的实际业务情况进行选择。例如,在教室出席系统中,教师类只需要名字、职位、性别等属性。这是因为用户需要。在教职员人事管理系统中,教职员需要姓名、出生日期、入职时间、所属单位、职称、性别、婚姻状况等属性。1 .从很多事物中抛弃个别的、非本质的特征,提取共同的、本质的特征;2.过滤对象的某些特性和操作,直到仅剩下所需的属性

10、和操作。封装对象细节以保护,引入问题:现在,让我们编写一个Java小程序,在命令行模式下输出以下格式的著名诗春效:你想怎么办?* *春晓* *春眠不觉晓,* *处处鸟鸣。风雨声,花知道多少。public class chun Xiao 1 public static void main(string args)system . out . print ln(* * chun Xiao);System.out.println(*春眠无意识地)System.out.println(*)到处都是鸟儿在鸣叫。);System.out.println(*风雨声)System.out.println(*花

11、掉了多少。);简单,但有时越简单越不好!现在如何将* *更改为*?换了五次了吗?代码 Chunxiao1.java、public class chunxiao 2 public string building star()return * *。Public static void main(字符串args)chunxiao 2 c=new chunxia 2();system . out . print ln(c . build star()chun Xiao);System.out.println(c.buildStar()春眠不觉中;在System.out.println(c.buildS

12、tar()里鸟儿在不停地鸣叫。);您可以看到System.out.println(c.buildStar()中的风雨声)System.out.println(c.buildStar()花的大小。);使用方法buildStar()创建。一次修改一个位置可以打包生成的功能,因此,对于外部用户,只需知道可以调用此方法生成,而无需知道方法内部的详细信息。代码 Chunxiao2.java,使对象详细信息在一个对象执行其自己的操作时封装。隐藏对外部世界的操作细节。软件包可提高可重用性,并使程序易于裴珉姬管理。包装程度问题或春晓。我刚才在类ChunXiao2中写了生成* *的方法,如上所述,类中的方法表示

13、类的操作,生成* *和ChunXiao看起来没有直接关系。这种软件包好像不合理,怎么改进?ChunXiao 3,codestar factory . Java chunxiao Java,其他软件包,重用,现在我们可以在chunxiao内使用* *,也可以在冥想中使用* * ChunXiao3有些同学讨厌刚才的排版,都是* *,没有创意。StarFactory类是制造*工厂,因此必须有更多产品,并且不能总是* *。怎么办?StarFactory2、ChunXiao4、Java chunxion2.java、面向对象的重要概念继承,在客观世界中,类具有层次关系,因此,您必须在程序世界中表示这些级

14、别。所以有了继承。自明星工厂,稍变更春晓为继承,春郑孝胥天下富足。既然能做* *,那也可以。那,呢?都没事。然后,创建GraphicFactory类。表示创建上述图形的主工厂,子类用于创建每个图形。、所有子类包括创建其它图形、创建* *、创建、创建、创建、创建、代码graphic factory . Java diamond factory . Java pentacle factory、门、窗、框、打开、多态的表示法、审阅:类和对象关联、聚合、配置抽象包消息传递继承多态,使用的代码目录:按顺序,Chunxiao1.java chunxia2.java了解客户的域知识用客户能够理解的术语说明对

15、问题的准确理解。OOA、OOD、OOP、任务1,利用今天所学的内容配置自己的工厂类,并利用包抽象继承的知识,UML概述,什么是UML?统一建模语言这是一种定义好、易于表达、功能强大且常用的可视化建模语言。为什么要创建软件?我们回顾一下刚才谈到的盖房子的过程,就是建设队把王爷爷的需求变成了家。软件开发也类似,创建软件实际上是将客户需求转化为实际软件产品的过程。出租车公司的要求,出租车收费系统经常发生在从顾客要求到产品的过程中。这意味着,为了确保您创建的软件满足客户的要求,您必须至少保证以下两个方面:1.客户要求已正确获得。客户的要求将正确传达。出现新问题:如何保证上述两点?1.如何确保客户的要求正确?解决方法:用科学的方法进行需求分析。2.如何确保准确地传达客户的要求?迷你游戏,游戏规则:两

温馨提示

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

最新文档

评论

0/150

提交评论