螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致与瀑布模型一致。螺旋模型沿螺旋线旋转,即坐标的四个象限表示四个方面的活动
净室工程是直销系统开发的一种形式化方法,可以生成高质量的软件,主要强调模型的重要性。其目标和结果错误率很高,难以实现或不能实现。
高度严谨,可通过数据模型证明,倾向于理论研究方法、模型生成软件等。
结构化方法
结构化方法是一种面向数据流的开发方法,由结构化分析、结构化设计、结构化程序设计组成。
指导思想:自上而下,逐渐分解。
基本原理:功能分解与抽象。
不适合解决大、特别复杂的项目,难以适应需求的变化。
系统开发过程工程化,文档标准化。
常见的瀑布开发模型属于结构化方法。
面向对象的方法
面向对象的解决方案是从现实世界中的客观对象入手,尽可能利用人类的自然思维方式构建软件系统。它是一种利用对象、类别、继承、包装、聚合、消息传输、多态性等概念构建系统的直销系统开发方法。
在面向对象的方法中,一切都被视为对象。对象是功能抽象和数据抽象的统一。
服务方法
面向服务的方法主要是标准化,系统可以通过统一的标准进行集成。
面向服务的方法本身就是面向对象的,主要有三个抽象层次:操作、服务和业务流程。SOAD分为基础设计层(底层服务部件)、应用结构层(服务间接口和服务级协议)、业务组织层(业务流程建模和服务流程安排)
服务建模分为服务发现、服务规则和服务实现三个阶段。
原型法
在需求分析阶段,需求不明确,可以快速得到用户需求的反馈。
调查用户的基本需求,根据基本需求快速开发一个”系统原型“,将原型交给用户,鼓励用户提出新的要求,根据新的要求改进原型,并重复交给客户。
根据功能分为水平原型(界面)、垂直原型(复杂算法)。
这里需要注意的是,由于我们的模型在预测时使用张量作为输入,因此需要使用tf.tensor()方法返回包装张量作为模型输入。运行程序后,我们可以从浏览器开发人员工具的控制台上看到打印的调试信息:
根据最终结果:抛弃式原型、演化式原型。
逆向工程
核心思想是利用解密、反编译、系统分析、程序理解等反源代码、设计、结构、算法、处理过程,充分考虑新需求,通过积极的项目开发形成新的系统。
逆向工程导出的信息可分为实现、结构、功能和领域四个抽象层次。
实现级:包括抽象语法树、符号表、过程设计表示。
结构级:包括反应程序重量之间相互依赖的信息,如调用图、结构图、程序和数据结构。
功能级:包括反应程序段功能与程序段关系的信息,如数据和控制流模型。
领域级:包括反映程序重量或程序实体与应用领域概念的对应关系,如实体关系模型
直销系统开发模型
瀑布模型:瀑布模型又称生命周期法,是结构化方法中最常用的开发模型,从需求获取到开发,再到瀑布测试。缺点是不灵活、僵化,适用于需求明确或二次开发场景。
瀑布模型对文档要求较高,每个阶段必须交付合格的文档。害怕用户测试中的反馈和需求变化。
增量模型:设计、编码和集成软件产品作为一系列增量组件(模块)。每个组件由多个相互作用的模块组成,可以完成特定的功能。每个增量都发布了一个可操作和可测试的产品。瀑布模型的顺序特征可以有效地与快速原型法的迭代特征相结合。
优点:1)可以在短时间内向用户提交一些独立运行的产品。2)模块化和分批交付可以让用户更好地了解进展。3)以组件为单位开发,降低了开发风险。4)开发顺序灵活。
缺点:需求的变化是不可避免的。增量模型的灵活性可以使其比瀑布模型和快速原型模型更适应这种变化,但也很容易退化为模型,使软件过程控制失去完整性。
螺旋模型:瀑布+增量结合产品,强调风险分析,不需要一开始就明确定义一切,只定义最重要的功能,然后实现,评估后,进入下一阶段,重复。每个循环通常包括六个步骤:
确定目标、选项和强制性条件。
识别和化解风险。
评估可选项。
目前开发和测试阶段。
规划下一阶段。
确定进入下一阶段的方法步骤。
优点:相对灵活,风险前沿,大型系统可以在任何阶段改变,客户参与度高,确保不偏离正确的方向和有效的互动。
缺点:用户很难确信这种进化方法的结果是可控的.施工周期长,软件技术发展迅速。直销系统开发后,往往与当前技术水平差距较大,无法满足当前用户的需求。
喷泉模型:与瀑布模型不同,各阶段之间没有明显的界限,可以提高直销系统的开发效率,节省开发时间。但缺点是开发阶段重叠,文档要求高,审计困难,项目管理容易失控
V模型/快速应用开发模型:是以测试驱动的模型,强调整个测试,是瀑布模型的演化版。
构件组装模型:利用模块化概念模块化整个系统,在一定构建模型的支持下,重用组件库中的一个或多个软件组件,通过组装高效、高质量的组件软线系统。该模型本质上也在进化,开发过程是迭代的。缺点是一般组件标准化程度高,风险大,组件质量影响最终产品质量。
敏捷方法模型:敏捷开发以用户需求演变为核心,采用迭代、渐进的方法开发直销系统。敏捷方法的基本特点:短期快速会议、小版本发布、文档少、合作优先、客户直接参与、自动测试、适应性计划调整、持续集成、允许重建。强调四个价值观和五个原则。
四种价值观:沟通、简单、反馈和勇气,敏捷方法不同于瀑布模型,文档要求低,文档的核心价值是保存信息,促进阶段沟通,敏捷提倡简单、沟通,鼓励人们说话,减少问题,确保信息能够正确传达。
五大原则:快速反馈,简单假设,逐步修改,提倡更改、优质工作。
敏捷开发方法是由于敏捷开发方法XP(极限编程)、水晶法、Scrum,FDD(特征驱动开发),ASD,开放式源码
统一过程模型:是一种基于网络的程序开发方法,检查I驱动,以架构为中心,迭代和增量。它主要分为四个阶段:初始、详细、构建和交付。
初始阶段:确定项目范围和边界,识别系统的关键用例,显示系统的候选结构,估计项目成本和时间,评估项目风险。
在细化阶段,需要分析系统问题,建立软件架构基础,完成软件架构设计,消除最高风险(避免、转移)
在施工阶段,主要是系统详细设计和编码开发、构件开发、组装和单元测试。
在交付阶段,进行集成测试、发布版本、文档归档等。交付阶段的重点是确保该软件可用于最终用户。交付阶段可以跨越几个迭代,包括基于用户反馈的少量调整,为发布做准备。用户反馈主要集中在产品调整、设置、安装和可用性问题上,所有主要结构问题都应尽快解决。