1.复杂问题简单化,这个就是进行模块的划分,将复杂的文件进一步的划分,使得问题变得简单,然后进行数据的加工 2.预测所有项目的技术难点,将所有的难点攻克之后,这个项目就可以执行了 3.符合语法规范,在实践当中锻炼,软件要和谐,软件管理学,做软件没有最好只有更好 4.项目的分解,可以一个一个单独去做,然后连接 5.控件的属性相当一部分进行继承而来的,大部分少用软件开发流程和案例讲解掌握软件开发流程 需求,设计,编码,测试,运行和维护 这个几个项目不是一成不变的,这是一个理想的状态软件规模 5000:小规模软件 10000-50000:中规模的软件 10万以上,大规模软件设计 500万以上,超大规模软件设计 |--- 继承规划 --| 需求 概要设计文档 详细设计文档 编码 单元测试 集成测试 系统测试 | --系统测试规划--- | 系统整体测试验收测试,文档话 安装 维护支持一边开发,一边书写文档需求文档:需求的信息概要设计:任务和薪水的文档,代码文档,文档,使用手册开发过程一定的保存相关的文档,重要的依据文档产品小规模软件中规模软件:项目开发计划,软件需求说明,测试计划,软件设计说明,使用说明,模块开发卷宗,测试分析报告,开发进度表,开发进度报告 需求分析:业务模型规划出来,购物车系统:用户:管理员,普通用户,用户信息,产品信息,订单,管理员信息。购物,下订单的时候,进行验证,形成业务流程图需求定义:在线购物用例,订单管理用例,信用卡用例,产品 Uml语言的图示用户:浏览产品,管理用户信息,下订单,接受订单状态名称:用例描述:模块功能作者:状态优先级前提主方式总体设计系统的逻辑架构图三层架构,MVC 逻辑表示层,业务逻辑层购物车的架构物理视图:数据流图。 *软件开发的方法 瀑布性, 特点阶段的顺序性和依赖性 rup 统一软件开发过程,统一软件过程,是一个面向对象且基于网络的程序开发方法论 启动,精化,建模和需求,分析设计,需求不确定,开发过程当中,产生一些细微的需求 按照传统的瀑布(Waterfall)开发模式,软件开发大致经历如下几个步骤:商务需求分析(Business Requirement Analysis),系统分析(System Analysis),系统设计(System Design),开发实现(Implementation),测试(Test),发布(Deployment),系统支持(Supporting)和系统变更管理(Change Management)。 传统的瀑布开发模式假定在进行新的开发过程时,上一个过程已经完成,而且不会回到上一个过程。初看起来,这似乎是一个非常合理,高效率的解决方案,但20多年的实践证明,这个开发模式存在着很大的弊病,原因是软件开发是一个非常复杂的工程,有诸多的因素影响工程的效率和成败。软件开发需要许多不同背景的个人和团队参与。由于这些复杂性,在软件开发的整个生命周期中每一个阶段都有可能留下隐患和错误。如果等到系统已经开发实现完毕,在测试阶段发现了重大问题,这时的返工将会造成人力、物力、财力及时间上的巨大浪费。鉴于以上的考虑,RUP强调软件开发是一个叠代模型(Iterative Model),RUP定义了四个阶段(Phase):开端(Inception),阐述(Elaboration),建造(Construction),过渡(Transition)。其中每个阶段都有可能经历以上所提到的从商务需求分析开始的各个步骤,只是每个步骤的高峰期会发生在相应的阶段。例如开发实现的高峰期是发生在建造阶段。实际上这样的一个开发方法论是一个二维模型。这种叠代模型的实现在很大程度上提供了及早发现隐患和错误的机会,因此被现代大型信息技术项目所采用。 RUP 的另一大特征是Use Case 驱动。Use Case是RUP方法论中一个非常重要的概念。简单地说,一个Use Case就是系统的一个功能。例如在一个基于电子商务的医疗系统中,病人可以坐在家里通过网上浏览器与医生约定看病的时间(Makeappointment),这样,“Makeappointment”就是系统的一个Use Case。在系统分析和系统设计中,Use Case被用来将一个复杂的庞大系统分割、定义成一个个小的单元,这个小的单元就是Use Case,然后以每个小的单元为对象进行开发。按照RUP, Use Case贯穿整个软件开发的生命周期。在商务需求分析中,客户或用户对Use Case进行描述,在系统分布和系统设计过程中,设计师对Use Case进行分析,在开发实现过程中,开发编程人员对Use Case进行实现,在测试过程中,测试人员对Use Case进行检验。 RUP的第三大特征是它强调软件开发是以构架为中心的。构架设计(Architectural Design)是系统设计的一个重要组成部分。在构架设计过程中,设计师(Architect)必须完成对技术和运行平台的选取,整个项目的基础框架(Framework)的设计,完成对公共组件的设计,如审计(Auditing)系统,日志(Log)系统,错误处理(Exception Handling)系统,安全(Security)系统等。设计师必须对系统的可扩展性(Extensibility),安全性(Security),可维护性(Maintainability),可延拓性(Scalability),可重用性(Reusability)和运行速度(Performance)提出可行的解决方案。 在RUP方法论中,不同的角色可以从不同的侧面来认识同一个项目。RUP定义了“4+1”个场景(View):Use Case场景(Use Case View),逻辑场景(Logic View),进程场景(process View),实现场景(Implementation View)和发布场景(Deployment View)。在Use Case场景中,客户和商务分析员对Use Case进行描述,在逻辑场景中,设计师对系统进行分析和设计,在进程场景中,设计师对系统可能出现的并发性,运行速度和分布特性进行描述。实现场景则反映了程序开发员开发实现的过程。发布场景是描述系统管理员和组装人员实施系统发布和管理的过程。值得强调的是,系统构架的设计是在逻辑场景中描述的。 RUP还定义了4个模型,即Use Case模型(Use Case Model),分析模型(Analysis Model),设计模型(Design Model)和实现模型(Implementation Model)。Use Case模型包含Use Case Diagram和Use Case文档。Use Case模型是其他三个模型的基础,分析模型即是概念模型(Conceptual Model),是系统分析所得到的结果,分析模型包含了类图(Class Diagram),次序图(Sequence Diagram)以及活动图(Activity Diagram)。设计模型则是构架设计和系统设计的结果。当设计模型完成后,开发编程人员便可以进行编程了。设计模型主要包含了类图,次序图和状态图(State Chart Diagrams)。分析模型和设计模型看起来有许多相似之处,但两者的含义有本质的区别。分析模型强调的是问题的范围,但并不给出解决问题的方案,分析模型并不涉及具体的技术和平台。例如它并不关心是否应用EJB或一般的JAVA BEANS,系统是安装在WebSphere或是在WebLogic。但是与之相反,设计模型要考虑这些细节,而且要提供解决这些问题的全部方案。当然设计模型是建立在分析模型之上的,分析模型中的一个类可直接映射成为设计模型中的类,但这种映射关系一般并不是一一对应的,最后一个模型是实现模型。实现模型包含构件图(Component Diagram),从这个模型出发,开发编程人员可以产生骨架源程序(Skeleton Source Code),也可以从源程序出发更新设计模型。 目前应用于系统分析和设计的工具主要有Rational Rose和Together Software Center(TogetherJ)。JAVA和J2EE的开发工具有IBM Websphere Application Developer(WSAD), Borland Jbuilde和WebGain VisualCafe. WSAD和WebSphere Application Server应用在一起,使得服务器端的排错和系统的发布变得非常的容易。Jbuilder和VisualCafe一般与WebLogic erver紧密结合在一起。目前WebSphereServer和WebLogic Server占据了Application Server市场的66%,其中WebSphere Server占据了37%,成为同类产品的No.1。在单位测试和集成测试中,广泛应用的工具和框架有Junit, JunitPerf和Cactus.。 综上所述,软件开发的方法论已经成为现代软件工程过程中不可缺少的一个重要部分。是目前在Java/J2EE和面向对象的大型项目中广泛被采用的一种方法论。他对整个软件开发的生命周期提供了基础框架和指导。RUP, UML/Rational Rose, Java/J2EE, WSAD, Websphere Application Server和Oracle这样的技术、工具和平台的组合是目前许多公司、政府信息技术项目中采用的方案。因此,RUP的知识和经验也是现在求知是场所需求的热门技能。 XP 属于轻量级的方法,认为文档,架构不如直接编程来实现。非常适合有经验的软件开发 个体和交互 可以工作的软件 客户合作 相应变化 ===================================== 特征驱动软禁开发 自适应软件开发 极限编程完成软件开发项目积累软件开发经验巧用软件开发技术熟悉电子商务业务发扬团队合作精神提高语言表达能力锻炼文档书写能力分析解决问题能力
威海学习笔记(4)
最新推荐文章于 2025-08-23 20:56:03 发布