# data[].attributes.body
Sistema: es un conjunto de elementos que guardan estrechas relaciones entre sí,

que mantienen al sistema directo o indirectamente unido de modo más o menos estable y cuyo comportamiento global persigue, normalmente, algún tipo de objetivo

Sistemas Informáticos(SI): consisten en la interconexión de hardware y software. Ayudan a recopilar, distribuir, procesar, datos de una organización para la mejora de procesos y toma de decisiones.

# data[].attributes.headline
Ciclo de vida clásico del desarrollo de sistemas

# data[].attributes.subject
Ciclo de vida clásico del desarrollo de sistemas

# 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.

Los pasos de este método son:
1.-Investigacion preliminar (Definición de necesidades)
2.- Determinación de los requerimientos del sistema (Análisis)
3.-Diseño del sistema
4.-Desarrollo del software (codificación)
5.-Prueba de los sistemas
6.-Implantación (validación)
7.-Evaluación

# data[].attributes.body
Es la primera etapa del proceso de desarrollo de sistemas
clásico, en otras metodologías podría llamarse fase de
investigación preliminar, fase de estudio inicial o fase de
planeación.

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 y analistas del sistema.

# data[].attributes.body
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 desarrollo de un sistema.

2. Solicitud de servicios de sistemas
Es un 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
Se definen 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.headline
2.- Determinación de los requerimientos del sistema (Análisis)

# data[].attributes.subject
2.- Determinación de los requerimientos del sistema (Análisis)

# data[].attributes.body
Son las fases de desarrollo de un proyecto de desarrollo de sistemas de información que se centran en los problemas y requerimientos de negocios, con independencia de la tecnología que pueda usarse o se use para implantar una solución al problema.

En distintas metodologías la fase de análisis de requerimientos podría ser llamada fase de definición o fase de diseño lógico. La base para esta tarea se estableció en el primer paso de la metodología de desarrollo de software con la identificación de necesidades cuando realizamos la definición de problemas y los objetivos de mejoras del sistema.

# data[].attributes.body
Se define la arquitectura del sistema y del entorno tecnológico que le va a dar soporte, junto con la especificación detallada de los componentes del sistema de información.

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.

# data[].attributes.body
1.-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.

La arquitectura de software tiene distintos patrones de diseño arquitectónicos los cuales proveen un esquema para refinar los elementos de un sistema de software o las relaciones entre ellos. Uno de  los tipos de patrones es la “arquitectura cliente-servidor”.

*La arquitectura cliente-servidor es una aplicación que ofrece un servicio a usuarios de una red. El  cliente puede ser al mismo tiempo un servidor si el programa está instalado en la misma máquina.

2.-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. Una Base de Datos es una herramienta que funciona como “almacén”, es decir, guarda grandes cantidades de información de forma organizada para poder encontrarla y utilizarla de manera fácil y ordenada.

3.-Diseño de la Interfaz del sistema
Es la construcción del contenido con el cual el usuario final va a 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.

# data[].attributes.body
1. Identificación de necesidades
Se identifican las necesidades de la empresa/cliente, aplicando los siguientes métodos: Entrevistas, Diseño de aplicaciones conjuntas (JAD) y Encuestas aplicadas a las personas mediante cuestionarios.

2. Análisis de Requerimientos
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).

Estos diagramas son herramientas estructuradas de análisis y diseño, las cuales permiten al analista comprender el sistema y los subsistemas en forma visual, como un conjunto de flujos de datos interrelacionados.
Algunos tipos de DFD son:
a) Diagrama de contexto
b) Diagrama de casos de uso
c) Modelo Entidad-Relación

# data[].attributes.body
Tiene como objetivo detectar los errores que se hayan podido cometer en las etapas anteriores del proyecto y, eventualmente, corregirlos.

Durante la fase de prueba de sistemas, el sistema se emplea
de manera experimental, en algunas organizaciones, las pruebas son conducidas por personas ajenas al grupo que escribió los programas originales, con esto se busca asegurar que el software sea confiable.

# data[].attributes.body
Durante la fase de codificación se realiza el proceso de programación. La codificación es el proceso de escribir cientos de 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 fuente.

Los encargados de desarrollar software pueden instalar, (o
modificar y después instalar) software comprado a terceros o escribir programas diseñados a la medida del solicitante. La elección depende del costo de cada alternativa, del tiempo disponible para el software y la disponibilidad de los programadores.

# data[].attributes.body
• Pruebas de unidad

Sirven para comprobar el correcto funcionamiento de un componente concreto de nuestro sistema. En este tipo de pruebas, el "probador" debe buscar situaciones límite que expongan las limitaciones de la implementación del componente.

• Pruebas de integración

Se realizan cuando vamos juntando los componentes que conforman nuestro sistema y sirven para detectar errores en sus interfaces.

• Pruebas alfa

Se realizan, una vez “finalizado” el sistema, en el seno de la organización encargada del desarrollo del sistema. Estas pruebas, hechas desde el punto de vista de un usuario final, pueden ayudar a pulir aspectos de la interfaz de usuario del sistema.

• Pruebas beta

Se realizan cuando el sistema se piensa vender como un producto en el mercado. 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.

• Test de aceptación

Se hacen para sistemas a medida (clientes particulares) y, si se supera con éxito, marcará oficialmente el final del proceso de desarrollo y el comienzo de la etapa de mantenimiento.

# data[].attributes.body
1. 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.

2. Código Objeto

Es el código binario resultado de compilar el código fuente.

*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.

** El código objeto no es directamente inteligible por el ser humano, pero tampoco por la computadora. 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.

3. 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 ya que es directamente inteligible por la computadora.

# data[].attributes.body
Consume típicamente del 40 al 80 por ciento de los recursos de una empresa de desarrollo de software. De hecho, 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:

• Eliminar los defectos que se detecten durante su vida útil (mantenimiento correctivo).

• Adaptarlo a nuevas necesidades(mantenimiento adaptativo). Por ejemplo, cuando se busca que el sistema funcione en una nueva versión del sistema operativo

• Añadir una  nueva funcionalidad (mantenimiento perfectivo): cuando se proponen características deseables que supondría una mejora del sistema ya existente.

*Más de un tercio del coste total del software se emplea en añadirle características a un software ya existente, mientras que la corrección de errores supone, en contraste,  en torno al 10% del coste total del software.
**El mantenimiento repite "en miniatura" el ciclo de vida completo de un sistema de información.

# data[].attributes.body
La implantación es el proceso de verificar e instalar nuevo equipo, entrenar a los usuarios, instalar la aplicación y construir todos los archivos de datos necesarios para utilizarla.

A lo largo de todo el ciclo de vida del software, se suelen hacer revisiones de todos los productos generados a lo largo del proyecto, desde el documento de especificación de requerimientos hasta el código de los distintos módulos de una aplicación. Estas revisiones, de carácter más o menos formal, ayuden a verificar la corrección del producto revisado y también a validarlo (comprobar que se ajusta a los requerimientos reales del sistema).