SlideShare una empresa de Scribd logo
1 de 7
REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD FERMIN TORO
VICERRECTORADO ACADEMICO
FACULTAD DE INGENIERIA
ESCUELA DE INGENIERIA EN COMPUTACION
Ensayo de software
Autor: Gómez Nixon
Prof.: Ing. Edecio Freitez
Cabudare, Noviembre 2015
El término “software” fue usado por primera vez en este sentido por John W.
Tuque en 1957. En las ciencias de la computación y la ingeniería de software.
El software es toda la información procesada por los sistemas informáticos:
programas y datos. El concepto de leer diferentes secuencias de instrucciones de
la memoria de un dispositivo para controlar cálculos fue inventado por Charles
Babare como parte de su máquina diferencial.
La teoría que forma la base de la mayor parte del software moderno fue
propuesta por vez primera por Alan Turing en su ensayo de 1936, Los números
computables, con una aplicación al problema de decisión (Entscheidungs problem).
Actualmente se suele definir al software como “el conjunto de programas y
procedimientos que hacen posible las operaciones de un computador o
sistema en conjunto de hardware, siendo este último los componentes físicos
que ejecuta las tareas enviadas por medio del software”.
Para explicarlo de la manera más fácil y sencillamente entendible, podríamos
decir que el software es un intermediario entre un sistema que ejecuta operaciones
y un usuario, generalmente hombre – máquina, aunque también existen casos
maquina – maquina en los que un computador es usuario de un proceso (de sí
mismo o de otro ordenador)
Entendiendo que el software puede ser binario, código fuente o ejecutable
también abarca archivos y datos; para ser precisos es todo lo “intangible”,
contrario al hardware que es todo lo “físico”. Este, a su vez comprende dos tipos
según el área de especialización y al campo donde va dirigido los cuales son:
Software de sistema.
Software de programación.
Software de aplicación.
Siendo el primero aquel que se encarga de crear una interfaz entre el usuario y
la máquina, generando una comunicación fácil y sencilla evitando a su vez que el
primero vea los procesos internos que se ejecutan para lograr las tareas que realiza
dicha máquina.
El segundo tipo se caracteriza por ser un conjunto de herramientas que permite
“crear” procesos y desarrollar programas usando varios lenguajes de
programación proporcionando editores de texto, interpretes, depuradores, entre
otros.
Por último, el software de aplicación es aquel que permite realizar tareas que
son de un campo especifico tales como bases de datos, software empresarial, por
nombrar algunos y que pueden ser automatizados. En general se usan en sistemas
contables, software de diseño, entre otros.
Para realizar un software o crear uno, se debe generar por medio de
procesos y reglas preestablecidas que deben ser aplicadas para su éxito. Este
proceso puede ser sencillo o complejo, todo dependiendo de qué objetivos y
necesidades se dicte para dicho programa. Para ello debe realizarse un estudio y
cumplir con las siguientes etapas:
• Análisis de requerimientos
Los requerimientos se obtienen de los clientes y/o usuarios, en esta fase inicial
se reúnen y especifican las funciones necesarias que deberá cumplir el sistema a
desarrollar. Hay que tomar en cuenta que los usuarios y/o clientes no son expertos
en programación, ellos solo tienen una idea general de lo que debería hacer el
sistema, por otro lado los programadores son expertos en el desarrollo de
sistemas, pero tienen muy poco conocimiento del ambiente diario de los usuarios,
lo cual hace que lograr el equilibrio ideal en esta etapa sea la principal fuente de
éxito del desarrollo del sistema, ya que en este se trazaran los objetivos a cumplir.
Por lo que se necesita desarrollar buenos criterios para la toma de decisiones.
Para lograr criterios certeros se deben tener algunos principios tales como:
o Presentar y entender cabalmente el dominio de la
información del problema.
o Definir correctamente las funciones que debe realizar el
Software.
o Representar el comportamiento del software a
consecuencias de acontecimientos externos, particulares,
incluso inesperados.
o Reconocer requisitos incompletos, ambiguos o
contradictorios.
o Dividir claramente los modelos que representan la
información, las funciones y comportamiento y
características no funcionales
• Diseño
Esta etapa se basa en “como” los requisitos van a lograrse. En otras palabras,
como la estructura del software hará posibles dichas necesidades.
• Codificación
Esta etapa consiste en la “programación” de lo diseñado previamente y se
caracteriza por necesitar más horas/hombre para su desarrollo.
Mientras se traduce los requisitos en lenguaje de programación o codificación,
es natural que se realicen tareas de depuración y evaluación, evitando así errores
futuros.
Durante la fase de programación existen varias formas de código para el
desarrollo del mismo, y que pueden ser de tipo fuente, objeto y ejecutable. Todo
esto dependiendo de lo que se necesite lograr y la manera más fácil y eficaz de
trabajar.
• Pruebas (unitarias y de integración)
En esta fase se pueden destacar dos tipos de pruebas, las unitarias y de
integración. La primera consiste en probar pequeñas partes del conjunto, como
módulos, procedimientos, entre otros. Mientras que el segundo comprende el
sistema completo para así garantizar el funcionamiento del sistema. Claro que
para realizar este primero debe cumplir la prueba unitaria.
• Instalación y paso a producción
La instalación, no es más que transferir los datos al computador configurados
para su uso. Esto quiere decir su entrega, y por lo tanto esta etapa es susceptible a
futuros ajustes y configuraciones.
• Mantenimiento
Este se entiende como la mejora y optimización del producto desarrollado e
instalado previamente y que comprende la depuración y configuración de
funciones anexasen caso de existir alguna.
Tomando en cuenta y entendiendo cada una de las etapas antes descritas, se
encuentran sub-etapas, en el que el “modelo de proceso o ciclo de vida” empleado
para el desarrollo de este, norma el orden y tareas involucradas para dicho
proceso. Entre los ciclos más conocidos se destacan tres:
• Cascada
• Modelo en espiral
• Modelo iterativo incremental.
El primer tipo es el tradicional, el cual generalmente no se usa en su forma
pura sino que se flexibiliza debido a que en su manera original es muy rígida.
Cuando se usa en una de sus variantes se caracteriza por ser un software pequeño
y sencillo y de gran eficacia. Claro está que para ello se realizan ajustes en los
procesos para lograr una retroalimentación de etapas y así cumplir con los
objetivos, así se obtiene el “modelo cascada retroalimentado”.
Una de las desventajas de este modelo es que si se realizan cambias durante el
proceso de desarrollo puede ocasionar confusión y el fracaso para dicho
programa.
El segundo modelo es uno de tipo evolutivo e iterativo, esto quiere decir que
permite desarrollar versiones cada vez más complejas hasta llegar al objetivo
siendo específico detallando absolutamente todo lo que el sistema debe hacer.
Este modelo se construye en una serie de versiones incrementales. Dicho modelo
se divide en “regiones de tareas”. En general existen entre tres y seis regiones de
tareas. Este tiene como ventaja la capacidad de ir adaptándose y aplicarse a lo
largo de todo el software. Además se adapta muy bien para desarrollos a gran
escala, pero se debe tener gran experiencia para evaluar los riesgos.
Este modelo se inicia generando un centro con una tarea específica y en el
cual se basa el programa y luego se agregan capas de tareas, las cuales pueden ser
sencillas o complejas dependiendo del proyecto a abarcar. Por lo general este tipo
de modelo se usa en proyectos de gran escala y complejidad tales como
navegadores y controladores aeronáuticos. De este modelo existe una variante, a
la cual se refiere como espiral win & win. Este se basa en el ganar-ganar,
traduciendo su nombre en español.
Lo que se refiere a que su objetivo principal es satisfacer las necesidades del
cliente mientras que el desarrollador del programa gana un buen presupuesto y el
tiempo necesario para trabajar en el diseño del software. Para esto se debe tener
habilidades de negociación para llegar a un acuerdo.
En este modelo existen las siguientes premisas para abarcar el proyecto:
• Identificación del sistema o subsistemas clave de los directivos (*) (saber
qué quieren).
• Determinación de «condiciones de victoria» de los directivos (saber qué
necesitan y los satisface)
• Negociación de las condiciones «victoria» de los directivos para obtener
condiciones «Victoria & Victoria» (negociar para que ambos ganen).
Por último se tiene el modelo iterativo o incremental. Este es uno de tipo
“evolutivo” debido a que permite crear versiones de “estudio” o prototipos
basándose en el modelo cascada y que depura en su desarrollo los ciclos hasta
llegar a su producto final, en el cual ya han sido evaluados las operaciones y
tomados como necesarios para su funcionamiento.
En este tipo de software, el funcionamiento se basa en partes pequeñas que
permiten su “reciclaje” o refiriéndose de otro modo, pueden ser reutilizables y son
llamados incrementos. Estos se caracterizan por ser construidos sobre uno ya
elaborado anteriormente y entregado (reutilizado).
Dicho todo esto, se puede denotar que el modelo evolutivo permite una
retroalimentación entre el cliente y el programador, debido a que se entrega una
versión de prueba con funciones básicas y a medida que el cliente arroja
evaluaciones para reajustar o agregar funciones se logra un diseño del software
depurado y certero hasta cumplir totalmente con los objetivos trazados.
Claramente, son muy factibles estos modelos evolutivos, debido a que es casi nulo
que un cliente este consiente de todas las funciones que debería poseer dicho
programa, por lo que da la ventaja al programador de reciclar el prototipo sin
generar pérdidas en tiempo de ajuste y evaluación, aumentando así el éxito del
producto.

Más contenido relacionado

La actualidad más candente

Fases de desarrollo de un programa...
Fases de desarrollo de un programa... Fases de desarrollo de un programa...
Fases de desarrollo de un programa...
grachika
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
Jgperez
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositiva
Norma Rodriguez
 
Etapas del desarrollo de software
Etapas del desarrollo de softwareEtapas del desarrollo de software
Etapas del desarrollo de software
xinithazangels
 
Software de sistema
Software de sistemaSoftware de sistema
Software de sistema
cindy1230
 
Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008
Cesar Jimenez
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
'Jorge Martinez
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erick
erick
 

La actualidad más candente (19)

Fases de desarrollo de un programa...
Fases de desarrollo de un programa... Fases de desarrollo de un programa...
Fases de desarrollo de un programa...
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
 
Dpss u3_a2_paov.pptx
 Dpss u3_a2_paov.pptx Dpss u3_a2_paov.pptx
Dpss u3_a2_paov.pptx
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositiva
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Dpss u3 a2_paov
Dpss u3 a2_paovDpss u3 a2_paov
Dpss u3 a2_paov
 
Etapas del desarrollo de software
Etapas del desarrollo de softwareEtapas del desarrollo de software
Etapas del desarrollo de software
 
Software
SoftwareSoftware
Software
 
Ciclo de vida de una aplicacion informatica
Ciclo de vida de una aplicacion informaticaCiclo de vida de una aplicacion informatica
Ciclo de vida de una aplicacion informatica
 
Plantilla caso prueba
Plantilla caso pruebaPlantilla caso prueba
Plantilla caso prueba
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de software
 
Software de sistema
Software de sistemaSoftware de sistema
Software de sistema
 
Software de sistema
Software de sistemaSoftware de sistema
Software de sistema
 
Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
Ciclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezCiclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchez
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erick
 
El software
El softwareEl software
El software
 

Similar a Ensayo de software

EliDastaSoftware
EliDastaSoftwareEliDastaSoftware
EliDastaSoftware
ElidaDasta
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erick
erick
 
Unidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de software
Andhy H Palma
 
Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
Evelin Oña
 

Similar a Ensayo de software (20)

XXXS
XXXSXXXS
XXXS
 
EliDastaSoftware
EliDastaSoftwareEliDastaSoftware
EliDastaSoftware
 
ciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptxciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptx
 
AMSI
AMSIAMSI
AMSI
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erick
 
SDLC.pptx
SDLC.pptxSDLC.pptx
SDLC.pptx
 
Fasesdedesarrollodeunprograma
FasesdedesarrollodeunprogramaFasesdedesarrollodeunprograma
Fasesdedesarrollodeunprograma
 
Unidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de software
 
Unidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de software
 
Fasesdedesarrollodeunprograma 130929181547-phpapp02
Fasesdedesarrollodeunprograma 130929181547-phpapp02Fasesdedesarrollodeunprograma 130929181547-phpapp02
Fasesdedesarrollodeunprograma 130929181547-phpapp02
 
Software
SoftwareSoftware
Software
 
Fundamentos del computado2
Fundamentos del computado2Fundamentos del computado2
Fundamentos del computado2
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
 
Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)
 
Ciclo de Vida de un Software.pdf
Ciclo de Vida de un Software.pdfCiclo de Vida de un Software.pdf
Ciclo de Vida de un Software.pdf
 
Modelos del software
Modelos del softwareModelos del software
Modelos del software
 
Software
SoftwareSoftware
Software
 
Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
 
Tarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computadorTarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computador
 
Software
SoftwareSoftware
Software
 

Último

647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
MirkaCBauer
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
fernandolozano90
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdf
SalomeRunco
 

Último (20)

647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
 
INFORME de actividades para pago de servicio
INFORME de actividades para pago de servicioINFORME de actividades para pago de servicio
INFORME de actividades para pago de servicio
 
Diseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdfDiseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdf
 
8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx
8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx
8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx
 
ESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptx
ESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptxESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptx
ESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptx
 
Instalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendioInstalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendio
 
Presentacion Feria Cientifica Proyecto.pptx
Presentacion Feria Cientifica Proyecto.pptxPresentacion Feria Cientifica Proyecto.pptx
Presentacion Feria Cientifica Proyecto.pptx
 
IG01 Instalacion de gas, materiales, criterios, recomendaciones
IG01 Instalacion de gas, materiales, criterios, recomendacionesIG01 Instalacion de gas, materiales, criterios, recomendaciones
IG01 Instalacion de gas, materiales, criterios, recomendaciones
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo Limache
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
 
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfMyoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
 
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdfTECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
 
Matematica Basica Limites indeterminados
Matematica Basica Limites indeterminadosMatematica Basica Limites indeterminados
Matematica Basica Limites indeterminados
 
Instrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdfInstrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdf
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdf
 
Métodos numéricos y aplicaciones - Izar Landeta.pdf
Métodos numéricos y aplicaciones - Izar Landeta.pdfMétodos numéricos y aplicaciones - Izar Landeta.pdf
Métodos numéricos y aplicaciones - Izar Landeta.pdf
 
Trabajos Preliminares en Obras de Construcción..pdf
Trabajos Preliminares en Obras de Construcción..pdfTrabajos Preliminares en Obras de Construcción..pdf
Trabajos Preliminares en Obras de Construcción..pdf
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 

Ensayo de software

  • 1. REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD FERMIN TORO VICERRECTORADO ACADEMICO FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA EN COMPUTACION Ensayo de software Autor: Gómez Nixon Prof.: Ing. Edecio Freitez Cabudare, Noviembre 2015
  • 2. El término “software” fue usado por primera vez en este sentido por John W. Tuque en 1957. En las ciencias de la computación y la ingeniería de software. El software es toda la información procesada por los sistemas informáticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones de la memoria de un dispositivo para controlar cálculos fue inventado por Charles Babare como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por vez primera por Alan Turing en su ensayo de 1936, Los números computables, con una aplicación al problema de decisión (Entscheidungs problem). Actualmente se suele definir al software como “el conjunto de programas y procedimientos que hacen posible las operaciones de un computador o sistema en conjunto de hardware, siendo este último los componentes físicos que ejecuta las tareas enviadas por medio del software”. Para explicarlo de la manera más fácil y sencillamente entendible, podríamos decir que el software es un intermediario entre un sistema que ejecuta operaciones y un usuario, generalmente hombre – máquina, aunque también existen casos maquina – maquina en los que un computador es usuario de un proceso (de sí mismo o de otro ordenador) Entendiendo que el software puede ser binario, código fuente o ejecutable también abarca archivos y datos; para ser precisos es todo lo “intangible”, contrario al hardware que es todo lo “físico”. Este, a su vez comprende dos tipos según el área de especialización y al campo donde va dirigido los cuales son: Software de sistema. Software de programación. Software de aplicación.
  • 3. Siendo el primero aquel que se encarga de crear una interfaz entre el usuario y la máquina, generando una comunicación fácil y sencilla evitando a su vez que el primero vea los procesos internos que se ejecutan para lograr las tareas que realiza dicha máquina. El segundo tipo se caracteriza por ser un conjunto de herramientas que permite “crear” procesos y desarrollar programas usando varios lenguajes de programación proporcionando editores de texto, interpretes, depuradores, entre otros. Por último, el software de aplicación es aquel que permite realizar tareas que son de un campo especifico tales como bases de datos, software empresarial, por nombrar algunos y que pueden ser automatizados. En general se usan en sistemas contables, software de diseño, entre otros. Para realizar un software o crear uno, se debe generar por medio de procesos y reglas preestablecidas que deben ser aplicadas para su éxito. Este proceso puede ser sencillo o complejo, todo dependiendo de qué objetivos y necesidades se dicte para dicho programa. Para ello debe realizarse un estudio y cumplir con las siguientes etapas: • Análisis de requerimientos Los requerimientos se obtienen de los clientes y/o usuarios, en esta fase inicial se reúnen y especifican las funciones necesarias que deberá cumplir el sistema a desarrollar. Hay que tomar en cuenta que los usuarios y/o clientes no son expertos en programación, ellos solo tienen una idea general de lo que debería hacer el sistema, por otro lado los programadores son expertos en el desarrollo de sistemas, pero tienen muy poco conocimiento del ambiente diario de los usuarios, lo cual hace que lograr el equilibrio ideal en esta etapa sea la principal fuente de éxito del desarrollo del sistema, ya que en este se trazaran los objetivos a cumplir. Por lo que se necesita desarrollar buenos criterios para la toma de decisiones.
  • 4. Para lograr criterios certeros se deben tener algunos principios tales como: o Presentar y entender cabalmente el dominio de la información del problema. o Definir correctamente las funciones que debe realizar el Software. o Representar el comportamiento del software a consecuencias de acontecimientos externos, particulares, incluso inesperados. o Reconocer requisitos incompletos, ambiguos o contradictorios. o Dividir claramente los modelos que representan la información, las funciones y comportamiento y características no funcionales • Diseño Esta etapa se basa en “como” los requisitos van a lograrse. En otras palabras, como la estructura del software hará posibles dichas necesidades. • Codificación Esta etapa consiste en la “programación” de lo diseñado previamente y se caracteriza por necesitar más horas/hombre para su desarrollo. Mientras se traduce los requisitos en lenguaje de programación o codificación, es natural que se realicen tareas de depuración y evaluación, evitando así errores futuros. Durante la fase de programación existen varias formas de código para el desarrollo del mismo, y que pueden ser de tipo fuente, objeto y ejecutable. Todo
  • 5. esto dependiendo de lo que se necesite lograr y la manera más fácil y eficaz de trabajar. • Pruebas (unitarias y de integración) En esta fase se pueden destacar dos tipos de pruebas, las unitarias y de integración. La primera consiste en probar pequeñas partes del conjunto, como módulos, procedimientos, entre otros. Mientras que el segundo comprende el sistema completo para así garantizar el funcionamiento del sistema. Claro que para realizar este primero debe cumplir la prueba unitaria. • Instalación y paso a producción La instalación, no es más que transferir los datos al computador configurados para su uso. Esto quiere decir su entrega, y por lo tanto esta etapa es susceptible a futuros ajustes y configuraciones. • Mantenimiento Este se entiende como la mejora y optimización del producto desarrollado e instalado previamente y que comprende la depuración y configuración de funciones anexasen caso de existir alguna. Tomando en cuenta y entendiendo cada una de las etapas antes descritas, se encuentran sub-etapas, en el que el “modelo de proceso o ciclo de vida” empleado para el desarrollo de este, norma el orden y tareas involucradas para dicho proceso. Entre los ciclos más conocidos se destacan tres: • Cascada • Modelo en espiral • Modelo iterativo incremental.
  • 6. El primer tipo es el tradicional, el cual generalmente no se usa en su forma pura sino que se flexibiliza debido a que en su manera original es muy rígida. Cuando se usa en una de sus variantes se caracteriza por ser un software pequeño y sencillo y de gran eficacia. Claro está que para ello se realizan ajustes en los procesos para lograr una retroalimentación de etapas y así cumplir con los objetivos, así se obtiene el “modelo cascada retroalimentado”. Una de las desventajas de este modelo es que si se realizan cambias durante el proceso de desarrollo puede ocasionar confusión y el fracaso para dicho programa. El segundo modelo es uno de tipo evolutivo e iterativo, esto quiere decir que permite desarrollar versiones cada vez más complejas hasta llegar al objetivo siendo específico detallando absolutamente todo lo que el sistema debe hacer. Este modelo se construye en una serie de versiones incrementales. Dicho modelo se divide en “regiones de tareas”. En general existen entre tres y seis regiones de tareas. Este tiene como ventaja la capacidad de ir adaptándose y aplicarse a lo largo de todo el software. Además se adapta muy bien para desarrollos a gran escala, pero se debe tener gran experiencia para evaluar los riesgos. Este modelo se inicia generando un centro con una tarea específica y en el cual se basa el programa y luego se agregan capas de tareas, las cuales pueden ser sencillas o complejas dependiendo del proyecto a abarcar. Por lo general este tipo de modelo se usa en proyectos de gran escala y complejidad tales como navegadores y controladores aeronáuticos. De este modelo existe una variante, a la cual se refiere como espiral win & win. Este se basa en el ganar-ganar, traduciendo su nombre en español. Lo que se refiere a que su objetivo principal es satisfacer las necesidades del cliente mientras que el desarrollador del programa gana un buen presupuesto y el tiempo necesario para trabajar en el diseño del software. Para esto se debe tener habilidades de negociación para llegar a un acuerdo.
  • 7. En este modelo existen las siguientes premisas para abarcar el proyecto: • Identificación del sistema o subsistemas clave de los directivos (*) (saber qué quieren). • Determinación de «condiciones de victoria» de los directivos (saber qué necesitan y los satisface) • Negociación de las condiciones «victoria» de los directivos para obtener condiciones «Victoria & Victoria» (negociar para que ambos ganen). Por último se tiene el modelo iterativo o incremental. Este es uno de tipo “evolutivo” debido a que permite crear versiones de “estudio” o prototipos basándose en el modelo cascada y que depura en su desarrollo los ciclos hasta llegar a su producto final, en el cual ya han sido evaluados las operaciones y tomados como necesarios para su funcionamiento. En este tipo de software, el funcionamiento se basa en partes pequeñas que permiten su “reciclaje” o refiriéndose de otro modo, pueden ser reutilizables y son llamados incrementos. Estos se caracterizan por ser construidos sobre uno ya elaborado anteriormente y entregado (reutilizado). Dicho todo esto, se puede denotar que el modelo evolutivo permite una retroalimentación entre el cliente y el programador, debido a que se entrega una versión de prueba con funciones básicas y a medida que el cliente arroja evaluaciones para reajustar o agregar funciones se logra un diseño del software depurado y certero hasta cumplir totalmente con los objetivos trazados. Claramente, son muy factibles estos modelos evolutivos, debido a que es casi nulo que un cliente este consiente de todas las funciones que debería poseer dicho programa, por lo que da la ventaja al programador de reciclar el prototipo sin generar pérdidas en tiempo de ajuste y evaluación, aumentando así el éxito del producto.