软件开发模式详解:从编码与修正到RUP,系统化、逻辑化步骤的演进及应用。

需积分: 5 0 下载量 151 浏览量 更新于2024-03-25 收藏 1MB PPT 举报
软件开发模式是描述软件开发过程的一系列步骤及其执行程序,旨在提高开发过程的标准化和效率,确保产品质量,以及更易于管理。不同的开发模式适用于不同情况的系统开发,如编码与修正模式、阶段模式、瀑布模式、渐增模式、原型模式、螺旋模式、同步模式、以及RUP模式等。 编码与修正模式是最简单的模式之一,没有明确的方法论,主要包括两个步骤:先写部分程序,再修正程序中的bug。然而,这种模式存在着问题,如缺乏规划、分析和设计,导致程序代码逻辑难以理解,以及缺乏用户需求分析和确认,可能导致开发的软件不符合用户需求。 阶段模式是一种具有方法论雏型的模式,改进了编码与修正模式的问题,强调在系统开发前进行规划与设计,以及在编码前进行合理的分析。这种模式更加系统化和逻辑化,有助于提高开发效率和产品质量。 瀑布模式是一种线性的开发模式,将软件开发过程划分为需求分析、设计、编码、测试和维护等阶段,每个阶段都有明确的交付物和验收标准。这种模式适用于需求明确且稳定的项目,但可能存在着刚性和不灵活的问题。 渐增模式是一种循序渐进的开发模式,将整个开发过程分为多个阶段,每个阶段都可交付可工作的软件版本。这种模式有助于快速响应变化需求,但也可能增加沟通和管理的复杂性。 原型模式是一种以快速开发原型为主要目标的模式,适用于需求不明确或需要快速验证概念的项目。通过快速构建原型,可以更好地理解用户需求和验证设计方案。 螺旋模式是一种结合了瀑布模式和原型模式的迭代开发模式,通过不断的循环迭代,逐步完善软件系统。这种模式适用于大型、复杂且风险较高的项目,但也需要较高的管理及技术能力。 同步模式是一种并行开发的模式,各个开发阶段同时进行,以缩短整个开发周期。这种模式适用于需要快速交付的项目,但也可能增加沟通和协调的难度。 RUP模式是一种基于统一软件开发过程的开发模式,强调迭代和周期性的开发,以确保软件系统的质量和稳定性。该模式包括需求管理、设计、构建、测试和部署等阶段,有助于提高团队协作和产品质量。 总的来说,不同的软件开发模式适用于不同的项目需求和情境,开发团队应根据项目特点和需求选择合适的模式,以提高开发效率和产品质量。选择合适的开发模式,将有助于项目的成功交付和产品的满足用户需求。

SELECT PIS.SHOW_FLT_DETAIL AS SHOW_FLT_DETAIL -- new , PIS.SHOW_AWB_DETAIL AS SHOW_AWB_DETAIL -- new , PIS.DISPLAY_AIRLINE_CODE AS CARRIER_CODE , DECODE(PIS.REVERT_FLOW,'N',PIS.FLOW_TYPE,DECODE(PIS.FLOW_TYPE,'I','E','I')) AS FLOW_TYPE , PIS.SHIP_TO_LOCATION AS SHIP_TO_LOCATION , PIS.INVOICE_SEQUENCE AS INVOICE_SEQUENCE , PFT.FLIGHT_DATE AS FLIGHT_DATE , PFT.FLIGHT_CARRIER_CODE AS FLIGHT_CARRIER_CODE , PFT.FLIGHT_SERIAL_NUMBER AS FLIGHT_SERIAL_NUMBER , PFT.FLOW_TYPE AS AIRCRAFT_FLOW , FAST.AIRCRAFT_SERVICE_TYPE AS AIRCRAFT_SERVICE_TYPE , PPT.AWB_NUMBER AS AWB_NUMBER , PPT.WEIGHT AS WEIGHT , PPT.CARGO_HANDLING_OPERATOR AS CARGO_HANDLING_OPERATOR , PPT.SHIPMENT_PACKING_TYPE AS SHIPMENT_PACKING_TYPE , PPT.SHIPMENT_FLOW_TYPE AS SHIPMENT_FLOW_TYPE , PPT.SHIPMENT_BUILD_TYPE AS SHIPMENT_BUILD_TYPE , PPT.SHIPMENT_CARGO_TYPE AS SHIPMENT_CARGO_TYPE , PPT.REVENUE_TYPE AS REVENUE_TYPE , PFT.JV_FLIGHT_CARRIER_CODE AS JV_FLIGHT_CARRIER_CODE , PPT.PORT_TONNAGE_UID AS PORT_TONNAGE_UID , PPT.AWB_UID AS AWB_UID , PIS.INVOICE_SEPARATION_UID AS INVOICE_SEPARATION_UID , PFT.FLIGHT_TONNAGE_UID AS FLIGHT_TONNAGE_UID FROM PN_FLT_TONNAGES PFT , FZ_AIRLINES FA , PN_TONNAGE_FLT_PORTS PTFP , PN_PORT_TONNAGES PPT , FF_AIRCRAFT_SERVICE_TYPES FAST , SR_PN_INVOICE_SEPARATIONS PIS --new , SR_PN_INVOICE_SEP_DETAILS PISD--new , SR_PN_INV_SEP_PORT_TONNAGES PISPT --new WHERE PFT.FLIGHT_OPERATION_DATE >= trunc( CASE :rundate WHEN TO_DATE('01/01/1900', 'DD/MM/YYYY') THEN ADD_MONTHS(SYSDATE,-1) ELSE ADD_MONTHS(:rundate,-1) END, 'MON') AND PFT.FLIGHT_OPERATION_DATE < trunc( CASE :rundate WHEN TO_DATE('01/01/1900', 'DD/MM/YYYY') THEN TRUNC(SYSDATE) ELSE TRUNC(:rundate) END, 'MON') AND PFT.TYPE IN ('C', 'F') AND PFT.RECORD_TYPE = 'M' AND (PFT.TERMINAL_OPERATOR NOT IN ('X', 'A') OR (PFT.TERMINAL_OPERATOR <> 'X' AND FA.CARRIER_CODE IN (SELECT * FROM SPECIAL_HANDLING_AIRLINE) AND PPT.REVENUE_TYPE IN (SELECT * FROM SPECIAL_REVENUE_TYPE) AND PPT.SHIPMENT_FLOW_TYPE IN (SELECT * FROM SPECIAL_SHIPMENT_FLOW_TYPE) AND PFT.FLIGHT_OPERATION_DATE >= (select EFF_DATE from SPECIAL_HANDLING_EFF_DATE) )) AND PFT.DELETING_DATETIME IS NULL AND FA.AIRLINE_UID = PFT.AIRLINE_UID AND FA.DELETING_DATETIME IS NULL AND PTFP.FLIGHT_TONNAGE_UID = PFT.FLIGHT_TONNAGE_UID AND PTFP.RECORD_TYPE = 'M' AND PTFP.DELETING_DATETIME IS NULL AND PPT.TONNAGE_FLIGHT_PORT_UID (+)= PTFP.TONNAGE_FLIGHT_PORT_UID AND PPT.RECORD_TYPE (+)= 'M' AND PPT.DISCREPANCY_TYPE (+)= 'NONE' AND PPT.ADJUSTMENT_INC_FLAG (+)= 'Y' AND PPT.DELETING_DATETIME (+) IS NULL AND FAST.AIRCRAFT_SERVICE_TYPE_UID = PFT.AIRCRAFT_SERVICE_TYPE_UID AND FAST.DELETING_DATETIME IS NULL AND PIS.TEMPORAL_NAME = TO_CHAR((CASE :rundate --new WHEN TO_DATE('01/01/1900', 'DD/MM/YYYY') THEN TRUNC(SYSDATE) ELSE TRUNC(:rundate) END ), 'YYYYMM') || '00' AND PIS.INVOICE_SEPARATION_UID = PISD.INVOICE_SEPARATION_UID --new AND PISD.INVOICE_SEP_DETAIL_UID = PISPT.INVOICE_SEP_DETAIL_UID --new AND PISPT.PORT_TONNAGE_UID = PPT.PORT_TONNAGE_UID --new AND PIS.PRINT_SUPPORTING_DOC = 'Y';上面是oracle的写法,请转成spark SQL的写法。

2023-06-02 上传