SlideShare una empresa de Scribd logo

Ensayo de software

Ensayo de software

1 de 7
Descargar para leer sin conexión
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.

Recomendados

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 VidaJgperez
 
Dpss u3_a2_paov.pptx
 Dpss u3_a2_paov.pptx Dpss u3_a2_paov.pptx
Dpss u3_a2_paov.pptxPablo Olvera
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositivaNorma Rodriguez
 
Etapas del desarrollo de software
Etapas del desarrollo de softwareEtapas del desarrollo de software
Etapas del desarrollo de softwarexinithazangels
 
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 informaticaMari Abad
 
Plantilla caso prueba
Plantilla caso pruebaPlantilla caso prueba
Plantilla caso pruebaSTBG
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programazeta2015
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de softwareITSPR
 
Software de sistema
Software de sistemaSoftware de sistema
Software de sistemacindy1230
 
Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008Cesar Jimenez
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 
Ciclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezCiclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezNarzimar Sanchez
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erickerick
 

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

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
 
CICLO DE VIDA DEL SOFTWARE.pdf
CICLO DE VIDA DEL SOFTWARE.pdfCICLO DE VIDA DEL SOFTWARE.pdf
CICLO DE VIDA DEL SOFTWARE.pdf
 
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
 

Último

QUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdf
QUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdfQUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdf
QUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdfMatematicaFisicaEsta
 
Proceso de produccion de Nescafé - Nestlé
Proceso de produccion de Nescafé - NestléProceso de produccion de Nescafé - Nestlé
Proceso de produccion de Nescafé - NestléRomanchasquero
 
Revista de la SAI numero 2 julio de 2023.pdf
Revista de la SAI numero 2 julio de 2023.pdfRevista de la SAI numero 2 julio de 2023.pdf
Revista de la SAI numero 2 julio de 2023.pdfEnrique Posada
 
EXAMEN FINAL AE1_2024_VERANO_240225_150605.pdf
EXAMEN FINAL AE1_2024_VERANO_240225_150605.pdfEXAMEN FINAL AE1_2024_VERANO_240225_150605.pdf
EXAMEN FINAL AE1_2024_VERANO_240225_150605.pdfMatematicaFisicaEsta
 
Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...
Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...
Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...Enrique Posada
 
Control_Calidad_S7.pdfOKAY RESUELTO LISTO
Control_Calidad_S7.pdfOKAY RESUELTO LISTOControl_Calidad_S7.pdfOKAY RESUELTO LISTO
Control_Calidad_S7.pdfOKAY RESUELTO LISTOfredyflores58
 
Hidroelectricidad en el mundo y Colombia Enrique Posada.pdf
Hidroelectricidad en el mundo y Colombia  Enrique Posada.pdfHidroelectricidad en el mundo y Colombia  Enrique Posada.pdf
Hidroelectricidad en el mundo y Colombia Enrique Posada.pdfEnrique Posada
 
Toma Domiciliaria de Agua Potable_IPN.pptx
Toma Domiciliaria de Agua Potable_IPN.pptxToma Domiciliaria de Agua Potable_IPN.pptx
Toma Domiciliaria de Agua Potable_IPN.pptxregina529778
 
S5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTAS
S5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTASS5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTAS
S5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTASMatematicaFisicaEsta
 
Empleabilidad e Inserción Laboral Ingenieros.pptx
Empleabilidad e Inserción Laboral Ingenieros.pptxEmpleabilidad e Inserción Laboral Ingenieros.pptx
Empleabilidad e Inserción Laboral Ingenieros.pptxViviana Robelek
 
TEMA ILUSTRADO ccccccccccccccccc4.1.docx
TEMA ILUSTRADO ccccccccccccccccc4.1.docxTEMA ILUSTRADO ccccccccccccccccc4.1.docx
TEMA ILUSTRADO ccccccccccccccccc4.1.docxantoniolfdez2006
 
Examen 1.docx EXAMEN EN TIEMPO REAL RESUELTO
Examen 1.docx EXAMEN EN TIEMPO REAL RESUELTOExamen 1.docx EXAMEN EN TIEMPO REAL RESUELTO
Examen 1.docx EXAMEN EN TIEMPO REAL RESUELTOfredyflores58
 
Control_Calidad_S7.pdfpideloconfiable y seguro
Control_Calidad_S7.pdfpideloconfiable y seguroControl_Calidad_S7.pdfpideloconfiable y seguro
Control_Calidad_S7.pdfpideloconfiable y seguromatepura
 
TEMA ILUSTRADOooooooooooooooooo 4.3.docx
TEMA ILUSTRADOooooooooooooooooo 4.3.docxTEMA ILUSTRADOooooooooooooooooo 4.3.docx
TEMA ILUSTRADOooooooooooooooooo 4.3.docxantoniolfdez2006
 

Último (14)

QUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdf
QUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdfQUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdf
QUINTA PR-CTICA CALIFICADA- GRUPO A Y D.pdf
 
Proceso de produccion de Nescafé - Nestlé
Proceso de produccion de Nescafé - NestléProceso de produccion de Nescafé - Nestlé
Proceso de produccion de Nescafé - Nestlé
 
Revista de la SAI numero 2 julio de 2023.pdf
Revista de la SAI numero 2 julio de 2023.pdfRevista de la SAI numero 2 julio de 2023.pdf
Revista de la SAI numero 2 julio de 2023.pdf
 
EXAMEN FINAL AE1_2024_VERANO_240225_150605.pdf
EXAMEN FINAL AE1_2024_VERANO_240225_150605.pdfEXAMEN FINAL AE1_2024_VERANO_240225_150605.pdf
EXAMEN FINAL AE1_2024_VERANO_240225_150605.pdf
 
Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...
Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...
Revista SAI 2023 - Número3 de la Revista de la Sociedad Antioqueña de Ingenie...
 
Control_Calidad_S7.pdfOKAY RESUELTO LISTO
Control_Calidad_S7.pdfOKAY RESUELTO LISTOControl_Calidad_S7.pdfOKAY RESUELTO LISTO
Control_Calidad_S7.pdfOKAY RESUELTO LISTO
 
Hidroelectricidad en el mundo y Colombia Enrique Posada.pdf
Hidroelectricidad en el mundo y Colombia  Enrique Posada.pdfHidroelectricidad en el mundo y Colombia  Enrique Posada.pdf
Hidroelectricidad en el mundo y Colombia Enrique Posada.pdf
 
Toma Domiciliaria de Agua Potable_IPN.pptx
Toma Domiciliaria de Agua Potable_IPN.pptxToma Domiciliaria de Agua Potable_IPN.pptx
Toma Domiciliaria de Agua Potable_IPN.pptx
 
S5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTAS
S5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTASS5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTAS
S5_TAREA_SET_C_ESTGT1103.pdf RESUELTO CONSULTAS
 
Empleabilidad e Inserción Laboral Ingenieros.pptx
Empleabilidad e Inserción Laboral Ingenieros.pptxEmpleabilidad e Inserción Laboral Ingenieros.pptx
Empleabilidad e Inserción Laboral Ingenieros.pptx
 
TEMA ILUSTRADO ccccccccccccccccc4.1.docx
TEMA ILUSTRADO ccccccccccccccccc4.1.docxTEMA ILUSTRADO ccccccccccccccccc4.1.docx
TEMA ILUSTRADO ccccccccccccccccc4.1.docx
 
Examen 1.docx EXAMEN EN TIEMPO REAL RESUELTO
Examen 1.docx EXAMEN EN TIEMPO REAL RESUELTOExamen 1.docx EXAMEN EN TIEMPO REAL RESUELTO
Examen 1.docx EXAMEN EN TIEMPO REAL RESUELTO
 
Control_Calidad_S7.pdfpideloconfiable y seguro
Control_Calidad_S7.pdfpideloconfiable y seguroControl_Calidad_S7.pdfpideloconfiable y seguro
Control_Calidad_S7.pdfpideloconfiable y seguro
 
TEMA ILUSTRADOooooooooooooooooo 4.3.docx
TEMA ILUSTRADOooooooooooooooooo 4.3.docxTEMA ILUSTRADOooooooooooooooooo 4.3.docx
TEMA ILUSTRADOooooooooooooooooo 4.3.docx
 

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.