# data[].attributes.body
Se le llama así al conjunto de formal de procesos que, operando sobre una colección de datos estructurada de acuerdo con las necesidades de una organización, recopila, elabora y distribuye la información necesaria para la operación de dicha organización y para las actividades de dirección y control correspondientes, apoyando, al menos en parte, los procesos de toma de decisiones necesarios para desempeñar las funciones de la organización.

# data[].attributes.body
El método del ciclo de vida para desarrollo de sistemas (SDLC) es el conjunto de actividades que los analistas, diseñadores y usuarios realizan para desarrollar e implantar un sistema de información.

# data[].attributes.body
La fase de definición de necesidades responde la pregunta, “¿vale la pena atender este problema?”, en esta fase intervienen los propietarios del sistema, administradores del proyecto, usuarios y analistas del sistema.

1.- Identificar problemas.
Se establece una base inicial de los problemas, en este
caso una solicitud de proyecto dispara la tarea, este puede ser un memorando donde se solicita el un desarrollo de sistema.

En este proceso el analista se reúne con el cliente e identifican las metas globales, se analiza las perspectivas del cliente, sus necesidades y requerimientos, así como otros puntos que puedan ayudar a la identificación y desarrollo del proyecto.

2.- Solicitud de servicios de sistemas.
Documento que sirve a los analistas para recopilar información que permita identificar:

A qué empresa o institución va dirigido el sistema de información

El tipo de servicios que solicita el cliente

Los problemas y soluciones que se pueden proponer para su desarrollo.

3.- Definición de problemas y objetivos de mejoras del sistema.
Este documento permite realizar una comprensión del dominio del problema, a la vez identificar las posibles mejoras del sistema que se expresan a través de definiciones precisas que definen las expectativas del nuevo sistema.

# data[].attributes.body
Consiste en comprender todos los procesos de la empresa, los analistas al trabajar con los empleados y administradores, deben estudiar los procesos de una empresa y definir los requerimientos de negocio para un sistema nuevo, a la vez deben contestar la siguiente pregunta: “¿Qué necesitan y desean los usuarios de un sistema nuevo?

1.- Identificación de necesidades.
involucra la forma de identificar las necesidades de la empresa, aplicando entrevistas, diseño de aplicaciones conjuntas(JAD) y encuestas aplicadas a personas mediante cuestionarios.

2.- Análisis de Requerimientos.
Dentro del análisis del requerimiento, se debe aplicar una metodología para obtener información sobre los procesos identificados.  Para comprender mejor el movimiento lógico de los datos a través de una empresa, el analista de sistemas dibuja diagramas de flujo de datos (DFD).

Diagrama de contexto

Diagramas de casos de uso

3.- Modelo Entidad-Relación.
Herramienta que permite representar de manera simplificada los componentes que participan en un proceso de negocio y el modo en el que estos se relacionan entre sí.

Entidades: El modelo contará con una entidad por cada uno de los componentes del proceso de negocio.

Atributos: Nos permiten describir
las propiedades que tiene cada entidad.

Relaciones: Establecen vínculos entre parejas de entidades.

Identificación: Una entidad tiene muchas instancias, allí existe una necesidad de identificar en forma única cada instancia basada en el valor de datos de uno o más atributos.

# data[].attributes.body
El diseño de un sistema de información produce los detalles que establecen la forma en la que el sistema cumplirá con los requerimientos identificados durante la fase de análisis. El diseño también indica los datos de entrada, aquellos que serán calculados y los que deben ser almacenados, los diseñadores son los responsables de dar a los programadores las especificaciones de software completa.

1.- El Diseño de la arquitectura de la aplicación
Define la relación entre cada uno de los elementos estructurales de las tecnologías que se usarán en uno, más o todos los sistemas de información (y que se aplicarán en su construcción) con base en sus datos, procesos, interfaces y componentes de redes.

2.- El diseño de la base de datos del sistema.
Todos los sistemas de información crean, leen, actualizan y
eliminan datos. Esta información se guarda en archivos y
bases de datos.
Para realizar el diseño de la base de datos de un sistema de información, se requiere contar con el análisis de un diccionario de datos el cual defina cada uno de los elementos de los datos.

¿Qué es un diccionario de datos?
Es un listado organizado de todos los datos pertinentes al sistema, con definiciones precisas y
rigurosas, estos elementos se centran alrededor de los datos y la forma en que están estructurados
para satisfacer los requisitos y las necesidades de una organización.

3.-El diseño de la Interfaz del sistema.
El diseño de interfaz de usuario es la construcción del contenido con el cual el usuario final va interactuar con el sistema. Esto incluye el software, el hardware y todo lo necesario para ser lo más amigable el entorno con el que el usuario se va a encontrar.

Esquemas de menú
Los menús proporcionan a los usuarios una forma sencilla y familiar de recuperar información e interactuar con el sistema. A los usuarios se les presenta el diseño completo del sistema a través de un esquema en forma descendente, donde se muestran las distintas opciones que el sistema tendrá.  Una característica principal de los menús consiste típicamente en llevar al usuario a través de una serie de submenús que le proporcionan una diversidad de opciones.

Diseño de pantallas
Al hacer un análisis de formas, se debe determinar qué datos se trata de capturar, cómo se clasificarán e introducirán en la forma, quién capturará los datos y con qué fin, quién obtendrá una copia, qué debe aparecer en las copias, en qué condiciones se llenará la forma, cómo se manejara, y durante cuánto tiempo se archivará.

# data[].attributes.body
La codificación es el proceso de
escribir líneas de código en un lenguaje
de programación. Consiste en elegir un
determinado lenguaje de programación, codificar
toda la información generada en las fases
anteriores y llevarla a un código.

El código debe ser:

Modular.

Correcto.

Fácil de leer.

Eficaz.

Portable.

El código pasara por las siguientes fases:

Código Fuente: es el escrito por los programadores en algún editor de texto. Se escribe usando algún lenguaje de programación de alto nivel y contiene el conjunto de instrucciones necesarias.

Código Objeto: es el código binario resultado de compilar el código fuente. Es un código intermedio entre el código fuente y el ejecutable y sólo existe si
el programa se compila, ya que si se interpreta (traducción línea a línea del código) se
traduce y se ejecuta en un solo paso.

Compilación e interpretación: la compilación es la traducción de una sola vez del programa, y se realiza utilizando un compilador. La interpretación es la traducción y ejecución simultánea del programa línea a
línea.

Código Ejecutable: es el código binario resultante de enlazar los archivos de código objeto con ciertas rutinas y bibliotecas necesarias. El sistema operativo será el encargado de cargar el código ejecutable en memoria RAM y proceder a ejecutarlo. También es conocido como código máquina y ya sí es directamente inteligible por la computadora.

# data[].attributes.body
Tienen como objetivo detectar los errores que se hayan podido cometer en las etapas anteriores del proyecto.

La búsqueda de errores que se realiza en la etapa de pruebas puede adaptar distintas formas, en función del contexto y de la fase del proyecto en la que nos encontremos:

Las pruebas de unidad sirven para comprobar el correcto funcionamiento de un componente concreto de nuestro sistema. Es este tipo de pruebas, el "probador" debe buscar situaciones límite que expongan las limitaciones de la implementación del componente, ya sea tratando éste como una caja negra ("pruebas de caja negra") o fijándonos en su estructura interna ("pruebas de caja blanca").

Las pruebas alfa son realizadas desde el punto de vista de un usuario final, pueden ayudar a pulir aspectos de la interfaz de usuario del sistema.

Las pruebas de integración son las que se realizan cuando vamos juntando los componentes que conforman nuestro sistema y sirven para detectar errores en sus interfaces.

Cuando el sistema no es un producto a medida, sino que se venderá como un producto en el mercado, también se suelen realizar pruebas beta. Estas pruebas las hacen usuarios finales del sistema ajenos al equipo de desarrollo y pueden resultar vitales para que un producto tenga éxito en el mercado.

En sistemas a medida, se suele realizar un test de aceptación que, si se supera con éxito, marcará oficialmente el final del proceso de desarrollo y el comienzo de la etapa de mantenimiento.

# data[].attributes.body
La etapa de mantenimiento consume típicamente del 40 al 80 por ciento de los recursos de una empresa de desarrollo de software. De hecho, con un 60% de media, es probablemente la etapa más importante del ciclo de vida del software. Dada la naturaleza del software, que ni se rompe ni se desgasta con el uso, su mantenimiento incluye tres facetas diferentes:

Mantenimiento correctivo: eliminar los defectos que se detecten durante su vida útil.

Mantenimiento adaptativo: adaptarlo a nuevas necesidades, cuando el sistema ha de funcionar sobre una nueva versión del sistema operativo o en un entorno hardware diferente, por ejemplo.

Mantenimiento perfectivo: añadir nueva funcionalidad, cuando se proponen características.

# data[].attributes.body
Las Pruebas de Caja Negra, es una técnica de pruebas de software en la cual la funcionalidad se verifica sin tomar en cuenta la estructura interna de código, detalles de implementación o escenarios de ejecución internos en el software.

En otras palabras, nos enfocamos solamente en las entradas y salidas del sistema, sin preocuparnos en tener conocimiento de la estructura interna del programa de software. Para obtener el detalle de cuáles deben ser esas entradas y salidas, nos basamos en los requerimientos de software y especificaciones funcionales.

# data[].attributes.body
En las pruebas de caja blanca, describen métodos en los que se conocen los detalles y el funcionamiento interno del software que se está probando. Este tipo de pruebas se suelen utilizar para simular el comportamiento de algún intruso malicioso con acceso e información precisa de la estructura interna del programa.