云大软件工程实验四 软件开发.doc_第1页
云大软件工程实验四 软件开发.doc_第2页
云大软件工程实验四 软件开发.doc_第3页
云大软件工程实验四 软件开发.doc_第4页
云大软件工程实验四 软件开发.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

实验报告课程: 软件工程实验 任课教师: 指导教师: 序号: 专业: 学号: 姓名: 成绩: 实验四 软件开发1.阐述敏捷软件开发、极限编程、软件原型构造方法的基本原理,并举例说明实际使用案例。答: (1)敏捷软件开发:允许开发团队将主要精力集中在软件本身,而不是在设计和编制文档上,敏捷方法普遍的依赖于迭代方法来完成软件描述、开发和移交。在开发的过程中客户应该始终紧密参与其中,他们的作用是提供和排序新系统的需求并评估系统的反复。软件以增量的方式进行开发,客户指定在每个增量中将要包含的需求。使用举例:敏捷软件开发主要用于支持业务应用的开发,这里的系统需求总是在开发过程中快速地变化着。敏捷方法最适合于开发小型或中性等规模的业务系统和个人计算机产品,不适合于大型系统的开发,也不适合于开发要求极高的一类系统。(2) 极限编程:是一种轻量级的、灵巧的、简单的软件工程方法,与传统的开发过程不同,极限编程的核心活动体现在需求测试编码设计过程中;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气,即:任何一个软件项目都可以从四个方面入手进行改善:加强交流、从简单做起、寻求反馈、勇于实事求是。XP是一种近似螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期,通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。 使用举例:XP适用于规模小、进度紧、需求变化大、质量要求严的项目,它希望以最高的效率和质量来解决用户目前的问题,以最大的灵活性和最小的代价来满足用户未来的需求,XP在平衡短期和长期之间做了巧妙的安排。(3)软件原型构造方法:在软件开发过程中,原型是软件系统的初始版本,用来演示概念并尝试设计选择,通常用来发现更多的问题和可能的解决方案,它最终反映系统的部分重要特性。如果在获得一组基本需求说明后,通过快速分析构造出一个小型的软件系统,满足用户的基本要求,使得用户可在试用原型的过程中得到亲身感受和受到启发,做出反应和评价。然后开发者根据用户的意见对原型加以改进。 使用举例:例如某个数据库设计可以通过原型构造和对原型的测试来检查,看它是否能对绝大多数的普通用户查询提供最高效的数据访问。原型构造也是用户界面设计过程的一个重要部分,因为用户界面的动态特性,表述用户界面需求仅靠文本描述和图的形式是不够的。有最终用户参与的快速原型构造是开发软件系统图形用户界面的唯一明智的方法。2.结合第14章内容,回答怎样用快速软件开发方法实现气象台系统。答:快速软件开发不是快速的整合出一个产品使其尽快推向市场,而是一种从基础开始建立的战略能力,它需要通过周密的计划,有效的利用时间,并采取基于进度的实践来实现快速开发。实现快速开发的4中策略是:避免典型错误;打好开发基础;管理风险,以避免灾难的发生;采用面向进度管理的实践。开发速度的四维是:人、过程、产品和技术。 所以,在进行气象台系统的开发时,我们要按照快速开发的4种策略来进行,首先,要对可能经常出现的错误进行处理和避免,然后要对气象系统有一个深层次的了解,对开发技术了解全面,同时要对开发中可能存在的风险进行有效的控制,最后采用面向进度的实践技术来对项目开发实行控制和管理。同时我们还要充分考虑快速开发的四维,要协调好这四维之间的关系,让他们能够发挥最好的作用。3.结合第14章给出的气象台系统,为一个应用族抽象其体系结构,该应用族能够处理远程监控和数据收集。答:该体系结构通过观察者、卫星气球等把数据传到气象台,然后对数据进行收集,把数据进行处理以后显示给用户,用户通过用户界面查看信息以后,进行远程监控。 体系结构如下所示:4.讨论构件与web service之间的区别。答:(1) 构件是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口,构件代表系统中的一部分物理实施,包括软件代码或其等价物。构件是面向软件体系架构的可复用软件模块。构件是可复用的软件组成成份,可被用来构造其他软件,它可以是被封装的对象类、类树、一些功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。构件是作为一个逻辑紧密的程序代码包的形式出现的,有着良好的接口,开发者可以通过组装已有的构件来开发新的应用系统,从而达到软件复用的目的,软件构件技术是软件复用的关键因素,也是软件复用技术研究的重点。构件是一种软件元素,与某个构件模型要求相一致,按照组成标准无需修改即可独立进行部署和组合。软件构件应具有的属性:可用性、有用性、质量、适应性、可移植性。构件的特点:自描述、可定制、可集成、连接机制。(2) Web Service是一个平台独立的、 松耦合的、 自包含的、 基于可编程的Web的应用程序,可使用开放的XML标准描述、 发布、 发现、 协调和配置这些应用程序, 用于开发分布式的互操作的应用程序。Web Service的服务接口对具体的服务实现进行了封装,从而使客户端不知道服务是如何实现的,服务接口需要绑定具体实现服务的服务组建来实现服务。Web Service能够在一些常规的计算中提供一些服务,从而完成一个具体的任务,处理相关的业务或者解决一个复杂的问题。Web Service形成了创建分布式应用的构件, 可在因特网或企业的内部网中发布及访问这些构件,Web Service需要依赖一整套的开放的因特网标准。Web Service使用(基于XML的)标准化的因特网语言和标准化协议在因特网或内部网上展示它们的可编程功能部件, 并通过自描述接口实现Web Service。5.设计一个可复用构件,使其实现教材中给出的LIBSYS系统的搜索特征。答:该可复用构件提供的服务包括:系统登录、用户注册、查询书目、浏览书目、管理书目、生产报告,需求是所在的平台应该提供:图书馆藏数据库、资源描述、屏幕描述、报告描述。 设计的可复用构件如下所示: 需求接口 提供接口6.分别讨论Sun的Java平台、Microsoft的COM+、IBM的CORBA技术各自的优缺点。答:(1)Sun的Java平台:优点: Java平台是Java程序开发与运行的软件系统,调试、编译与运行Java程序有专门的工具软件,如;Jbuilder, Eclipse, NetBeans, Java Workshop, JDeveloper等。 JBuilder是目前进行Java程序开发中使用较为广泛的开发工具,作为J2ME应用开发,JBuilder是非常理想的开发环境。 Myeclipse是一个开发源代码的、基于java的可扩展开发平台,Eclipse本身只是一个框架和一组响应的服务,并不能够开发什么程序,在Eclipse中几乎每样东西都是插件,实际上正是运行在Eclipse平台上的种种插件提供我们开发程序的各种功能。NetBeans能自动生成界面NetBeans是一套完全以Java撰写而成、并且开放原始码的开发工具。Java Workshop结构易于创建,在创建平台中立的网格结构方面,Java Workshop比其他任何一种Java开发工具都要方便。可视化编程:Java Workshop的可视化编程特性是很基本的。Java Workshop允许程序员重新安排这些操作,甚至可以确定触发操作行为的过滤器。Java Workshop产生的模板带有许多注释,这对程序员是很有帮助的。JDeveloper具有UML建模功能,可以将业务对象及e-business应用模型化。配备有高速Java调试器(Debuger)、内置Profiling工具、提高代码质量的工具“CodeCoach”等。支持SOAP “简单对象访问协议”、UDDI “统一描述、发现和集成协议”、WSDL“WEB服务描述语言”等Web服务标准。缺点:Sun提供的许多Java平台比较复杂,对初学者来说,理解起来比较困难,而且在运用中经常遇到许多问题,不太容易掌握,Java开发的平台较多,选择时可能会很麻烦,不知道选用那一个更合适自己的开发。Java多线程编程会很容易地在不经意间把细微的 bug 带进多线程代码,而且更重要的是,这类问题分析和调试起来非常困难,多线程编程存在的缺陷:争用条件、死锁、活动锁、资源耗尽、验证的问题。(2)Microsoft的COM+:优点: COM+不仅继承了COM所有的优点,而且还增加了一些服务,比如队列服务、负载平衡、内存数据库、事件服务等。队列服务对于分布式应用非常有意义,COM+提供了负载平衡服务,它可以实现动态负载平衡,而且COM+应用程序的负载平衡特性并不需要编写代码来支持,客户程序和组件程序都可以按通常的方式实现。 COM+的新的优点:(1) 真正的异步通讯;(2) 事件服务;(3) 可伸缩性;(4) 可管理和可配置性;(5) 易于开发。COM+标志着Microsoft的组件技术达到了一个新的高度,它不再局限于一台机器上的桌面系统,它把目标指向了更为广阔的企业内部网,甚至Internet国际互连网络。COM+与多层结构模型以及Windows操作系统为企业应用或Web应用提供了一套完整的解决方案。缺点:COM+所创建的对象并不是持久的对象,也就是说,在COM+下当一个进程创建了一个对象,该进程消亡后,它所创建的对象也随之消亡。COM+向注册表注册,相对于访问名字服务器二言,读写注册表比较麻烦,而且还限定了该对象只能存在于WINDOWS平台。COM+的接口都统一由一个基本类IUNKNOW导出,而CORBA则定义了多个基类。COM+的支持者认为COM+的做法使程序应用开发方便一些,不用去了解太多的接口细节;而CORBA的支持者则认为CORBA的做法使开发更具灵活性。(3)IBM的CORBA:优点: 面向对象的软件,以数据为中心设计,对象类既具有模块的封装性和类属等特性,还具有继承特性,极大地提高了类的可扩充性和可再用能力。CORBA提供了持久化服务,当一个进程创建了一个对象,该进程消亡后,它所创建的对象和对象的状态仍然存在。 对象类较之于传统软件的功能模块而另具有的优点是:(1)易于理解,具有完整的语义特征;(2)易于扩充和修改,具有较高的通用性和适应性;(3)易于构造组装,具有规范的外部接口。对象标准CORBA定义了一个网连对象的接口,使得对象可以同时工作。缺点:尽管有多家供应商提供CORBA产品,但是仍找不到能够单独为异种网络中的所有环境提供实现的供应商,不同的CORBA实现之间会出现缺乏互操作性的现象,从而造成一些问题,而且由于供应商常常会自行定义扩展,而CORBA又缺乏针对多线程环境的规范,对于像C或C+这样的语言,源码兼容性并未完全实现。CORBA过于复杂,要熟悉CORBA,并进行相应的设计和编程,需要许多个月来掌握,而要达到专家水平,则需要好几年。7.讨论并回答软件演化与软件维护之间的关系。答: (1)软件进行渐变并达到所希望的形态就是软件演化,软件演化有一系列复杂的变化活动组成,对软件变化的控制是软件开发者历来追求的目标,引起软件变化的原因是多方面的,如基础设施的改变、功能需求的增加、技术环境因素的变化等,对软件演化进行理解和控制显得比较复杂和困难。软件演化包括静态演化和动态演化两个方面,作为软件蓝图的SA(软件体系结构),为人们宏观把握软件的整体结构和软件演化提供了一条有效的途径。(2) 软件维护主要是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改。软件维护的内容有:正确性维护:是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误;适应性维护:是指使用软件适应信息技术变化和管理需求变化而进行的修改;完善性维护:这是为扩充功能和改善性能而进行的修改;预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。(3)软件演化过程的不同在相当程度上依赖于不同类型软件的维护和参与开发过程的机构和人。软件演化依赖于软件维护的进行,有些时候也认为软件演化就是软件维护,正是因为有了对软件的维护,才能实现把软件演化到我们期望的形态。8.讨论并回答软件演化中最困难的工作是什么,当前学术界、产业界对这些困难取得了那些研究进展。答:(1)软件演化中最困难的工作就是对遗留系统的演化,有的机构拥有很多遗留系统,对这些遗留系统的维护和更新资金又非常有限,这就需要对投资做精心的安排,以期望获得最佳的回报。这就要求机构先对遗留系统做现实的评估,然后做出适当的决策。然而对遗留系统的评估将是很困难的工作,难以把握。通常有4个基本的选择:彻底抛弃这个系统、继续维护这个系统、对系统再工程以改善其可维护性、以一个新的系统代替整个或部分系统。 在评估一个遗留系统的时候,必须从两个不同的视点来看它。从业务视点看,必须对该系统的业务价值做出评估;从系统视点看,必须对应用软件、系统支持软件和硬件质量做出评估。根据这两方面得到的评估结果,就能决定应该对遗留系统采取何种策略。 然而在对遗留系统进行评估时,收集有用数据的费用是相当高的因而有些不切实际,此外,没有完美的数据可供使用。理论上说,应该根据客观的评估结果做出处理遗留系统的决定,然而在许多情况下,做出的决定并不是客观的,而是基于机构或政治上的考虑做出的。所以对遗留系统的演化是非常困难的工作。(2)研究进展:当前软件开发采用先进的软件工程过程,如:迭代开发和CBSE等,来开发新的软件系统的时候,就可能规划如何把系统开发和演化很好的结合在一起。越来越多的公司开始认识到,系统开发过程是一个全生命周期的过程,人为地分离软件开发和软件维护是没有好处的。只有把软件开发和软件演化结合在一起,才能避免在

温馨提示

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

最新文档

评论

0/150

提交评论