一、基于架构的开发方法有哪些阶段?
信息系统开发方法有很多种,开发人员可以根据项目的需要选择一种适合的开发方法。鉴于目前从业软件开发或者是考试的同事,整体来梳理一遍最常见的软件开发的几种方法。
结构法方法:结构化方法(Structured Approach)也称新生命周期法,是生命周期法的继承与发展,是生命周期法与结构化程序设计思想的结合。
结构化方法是应用最为广泛的一种开发方法。按照信息系统生命周期,应用结构化系统开发方法,把整个系统的开发过程分为若干阶段,然后一步一步地依次进行,前一阶段是后一阶段的工作依据;每个阶段又划分详细的工作步骤,顺序作业。
特点:自顶向下、有明确的阶段和步骤。 把整个系统的开发过程分为若干阶段,然后一步一步地依次进行。
前一阶段是后一阶段的工作依据。每个阶段又划分详细的工作步骤,顺序作业。
面向对象方法:面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。
对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。特点:对象:对象是要研究的任何事物。
类:类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同行为和属性。
类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。
消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。
继承:继承性(Inheritance)是指,在某种情况下,一个类会有“子类”。子类比原本的类(称为父类)要更加具体化。
子类会继承父类的属性和行为,并且也可包含它们自己的。
多态:多态(Polymorphism)是指由继承而产生的相关的不同的类,其对象对同一消息会做出不同的响应。
抽象性:抽象(Abstraction)是简化复杂的现实问题的途径,它可以为具体问题找到最恰当的类定义,并且可以在最恰当的继承级别解释问题。
封装性是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。
继承性是子类自动共享父类之间数据和方法的机制。
同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。
利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。
原型化模型方法: 第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。
充分了解后,再在原型基础上开发出用户满意的产品。
在实际中原型化经常在需求分析定义的过程进行。 客户与开发公司紧密联系,开发周期长。开发会受到需求变更的影响。特点:实现客户与系统的交互。进一步细化待开发的软件需求。开发人员可以确定客户的真正需求是什么。
瀑布模型方法: 是一个经典的软件生命周期模型,一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段。
计划 → 需求分析 → 设计 → 编码 → 测试 → 运行维护特点:软件开发的各项活动严格按照线性方式进行。
当前活动接收上一项活动的工作结果。当前活动的活动结果需要验证。
缺点:由于开发模型是线性的,增加了开发的风险。
早期的的错误可能要等到开发后期阶段才能发现。
螺旋模型方法:螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。 制定计划 → 风险分析 → 实施工程(需求确认、软件需求、软件产品设计、设计确认与认证、详细设计、开发、测试) → 客户评估特点:螺旋模型是将快速原型和瀑布模型结合起来。强调了其他模型忽略的风险分析。每次螺旋包括4个步骤:制定计划:风险分析、实施工程、客户评估。缺点:很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。螺旋模型的项目适用:对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。敏捷开发模型: 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。特点:短周期开发。增量开发。由程序员和测试人员编写的自动化测试来监控开发进度。通过口头沟通、测试和源代码来交流系统的结构和意图。编写代码之前先写测试代码,也叫测试先行。缺点:团队组件较难,人员素质要求较高。对测试人员要求完全掌握各种脚本语言编程,会单元测试。
二、大数据管理与应用考公有哪些岗位?
大数据管理与应用是当前热门的职业方向之一,考公有以下几个岗位与之相关:
1. 信息工程师:主要负责公司内部信息系统的设计、开发和运维,处理各种数据以及构建大数据平台。
2. 信息系统分析师:主要针对企业的业务需求,进行信息化解决方案的分析、设计等工作,包括数据挖掘、分析实现和统计分析。
3. 数据分析师:主要负责对企业的数据进行整理、分析和建模,提供相应的业务决策支持。
4. 大数据开发工程师:主要负责大数据的系统设计、开发以及数据处理,能够使用各种大数据技术框架(如Hadoop,Apache Storm等)处理海量数据。
5. 云计算工程师:负责设计和管理云计算平台,为企业提供安全、高效的云计算服务,同时也需要掌握大数据分析和机器学习等技能。
6. 人工智能工程师:主要负责人工智能产品的研发、设计和测试,需要掌握机器学习、深度学习、自然语言处理等技能。
以上是目前较为常见的几个岗位,当然随着技术的不断发展,随之而来的还有很多新型岗位。需要根据自身的兴趣和能力进行选择,并不断提升相关技能水平,以适应行业的发展需求。
- 相关评论
- 我要评论
-