15. 1.6 Paradigmas de la Ingeniería de
1.6 Paradigmas de la Ingeniería de
Software
Software
16. INTRODUCCIÓN A LA INGENIERÍA
INTRODUCCIÓN A LA INGENIERÍA
DE SOFTWARE
DE SOFTWARE
1.1 Importancia de la Ingeniería de Software
1.1 Importancia de la Ingeniería de Software
La economía de todos los países depende del software, representando cada vez un mayor
La economía de todos los países depende del software, representando cada vez un mayor
porcentaje en su PIB. Cada vez son más los sistemas controlados por software.
porcentaje en su PIB. Cada vez son más los sistemas controlados por software.
1.1.1 Importancia del Software
•Durante las tres primeras décadas de la informática, el principal desafió era el desarrollo del
•Durante las tres primeras décadas de la informática, el principal desafió era el desarrollo del
hardware de las computadoras, de forma que se redujera el coste de procesamiento yy
hardware de las computadoras, de forma que se redujera el coste de procesamiento
almacenamiento de datos.
almacenamiento de datos.
•A lo largo de la década de los 80’s, los avances en micro técnica han dado como resultado una
•A lo largo de la década de los 80’s, los avances en micro técnica han dado como resultado una
mayor potencia de cálculo aala vez que una reducción del coste.
mayor potencia de cálculo la vez que una reducción del coste.
•La potencia de las grandes computadoras de la era de los 80’2 está hoy disponible en una en una
•La potencia de las grandes computadoras de la era de los 80’2 está hoy disponible en una en una
computadora personal. Las enormes capacidades de procesamiento yyalmacenamiento del
computadora personal. Las enormes capacidades de procesamiento almacenamiento del
hardware moderno representan un gran potencial de cálculo.
hardware moderno representan un gran potencial de cálculo.
•En los inicios del software, cuando los hackers originales empezaron aacrear programas, todo era
•En los inicios del software, cuando los hackers originales empezaron crear programas, todo era
libre yycompartido. Cada programador presentaba sus códigos al resto de la gente, yytodos podían
libre compartido. Cada programador presentaba sus códigos al resto de la gente, todos podían
mirarlo, modificarlo yypresentar mejoras.
mirarlo, modificarlo presentar mejoras.
17. 1.2 Historia de La Ingeniería de Software
•El software es uno de los productos de la ingeniería que más ha evolucionado en muy poco tiempo,
•El software es uno de los productos de la ingeniería que más ha evolucionado en muy poco tiempo,
pasando del software empírico ooartesanal hasta llegar al software desarrollado bajo los principios yy
pasando del software empírico artesanal hasta llegar al software desarrollado bajo los principios
herramientas de la ingeniería de software. Las personas encargadas de la elaboración de software se
herramientas de la ingeniería de software. Las personas encargadas de la elaboración de software se
han enfrentado aalos siguientes problemas:
han enfrentado los siguientes problemas:
A la exigencia cada vez mayor en la capacidad de resultados del software.
A la exigencia cada vez mayor en la capacidad de resultados del software.
A la carencia de herramientas adecuadas yyestándares de tipo organizacional encaminados al
A la carencia de herramientas adecuadas estándares de tipo organizacional encaminados al
mejoramiento de los procesos en el desarrollo de software.
mejoramiento de los procesos en el desarrollo de software.
•Una necesidad es el hecho de que los productos de software deben ser desarrollados con base en la
•Una necesidad es el hecho de que los productos de software deben ser desarrollados con base en la
implantación de estándares mundiales, modelos, sistemas métricos, capacitación del recurso humano
implantación de estándares mundiales, modelos, sistemas métricos, capacitación del recurso humano
yyotros principios que garanticen la producción de software de calidad yycompetitividad aanivel local ee
otros principios que garanticen la producción de software de calidad competitividad nivel local
internacional.
internacional.
1.2.1 Antecedentes: Génesis y Evolución
•La cantidad yycomplejidad de los productos de software incrementan considerablemente.
•La cantidad complejidad de los productos de software incrementan considerablemente.
•La exigencia en su funcionabilidad yyconfiabilidad también aumentan.
•La exigencia en su funcionabilidad confiabilidad también aumentan.
•Conforme se incrementa la tecnología de las computadoras, crece la demanda de los productos del
•Conforme se incrementa la tecnología de las computadoras, crece la demanda de los productos del
software, pero más lentamente, en 1990 se decía que las posibilidades de software estaban
software, pero más lentamente, en 1990 se decía que las posibilidades de software estaban
retrasadas respecto aalas del hardware en un mínimo de dos generaciones de procesadores.
retrasadas respecto las del hardware en un mínimo de dos generaciones de procesadores.
18. 1.2.2 Sistemas Operativos y Programas
Un programa es un grupo de instrucciones destinadas a cumplir una tarea en particular. El
Un programa es un grupo de instrucciones destinadas a cumplir una tarea en particular. El
software se clasifica en tres grupos:
software se clasifica en tres grupos:
a)Sistemas operativos
a)Sistemas operativos
b)Lenguajes de programación
b)Lenguajes de programación
c)Aplicaciones
c)Aplicaciones
Lenguajes de bajo nivel: tienen poco poder de expresión, pero gran facilidad de
Lenguajes de bajo nivel: tienen poco poder de expresión, pero gran facilidad de
traducción. Lenguajes de nivel medio: tiene más poder de expresión que los de bajo nivel.
traducción. Lenguajes de nivel medio: tiene más poder de expresión que los de bajo nivel.
Lenguajes de alto nivel: son lenguajes de alto poder de expresión, pero de difícil
Lenguajes de alto nivel: son lenguajes de alto poder de expresión, pero de difícil
traducción.
traducción.
1.3 Problemas de Software
Crisis: estado pasajero de inestabilidad, que tiene como resultado un cambio de estado
Crisis: estado pasajero de inestabilidad, que tiene como resultado un cambio de estado
del sistema o una vuelta al estado inicial, en caso de que se tomen las medidas para
del sistema o una vuelta al estado inicial, en caso de que se tomen las medidas para
superarla. Los problemas son causados por las características del software yylos errores
superarla. Los problemas son causados por las características del software los errores
cometidos por quienes intervienen en su producción. Los principales problemas son:
cometidos por quienes intervienen en su producción. Los principales problemas son:
•La planificación yyla estimación de costes son muy imprecisas
•La planificación la estimación de costes son muy imprecisas
•La productividad es baja
•La productividad es baja
•La calidad es mala
•La calidad es mala
•El cliente queda insatisfecho
•El cliente queda insatisfecho
19. 1.3.1 La planificación y la estimación de costes son muy imprecisas
A la hora de abordar un proyecto de una cierta complejidad, es frecuente que surjan
A la hora de abordar un proyecto de una cierta complejidad, es frecuente que surjan
imprevistos que no estaban recogidos en la planificación inicial, yycomo consecuencia de
imprevistos que no estaban recogidos en la planificación inicial, como consecuencia de
estos imprevistos se producirá una desviación en los costes del proyecto. Entre las
estos imprevistos se producirá una desviación en los costes del proyecto. Entre las
causas de este problema están:
causas de este problema están:
No se recogen datos sobre el desarrollo de proyectos anteriores.
No se recogen datos sobre el desarrollo de proyectos anteriores.
Los gestores de los proyectos no están especializados en la producción de software.
Los gestores de los proyectos no están especializados en la producción de software.
1.3.2 La productividad es baja
•Los proyectos software tiene, una duración mucho mayor a la esperada. Como
•Los proyectos software tiene, una duración mucho mayor a la esperada. Como
consecuencia los costes se disparan yyla productividad yylos beneficios disminuyen. Un
consecuencia los costes se disparan la productividad los beneficios disminuyen. Un
factor que influye en esto es la falta de unos propósitos claros o realistas a la hora de
factor que influye en esto es la falta de unos propósitos claros o realistas a la hora de
comenzar el proyecto.
comenzar el proyecto.
•La mayoría del software se desarrolla a partir de especificaciones ambiguas o
•La mayoría del software se desarrolla a partir de especificaciones ambiguas o
incorrectas, yyno existe comunicación con el cliente hasta la entrega del producto. Por lo
incorrectas, no existe comunicación con el cliente hasta la entrega del producto. Por lo
consiguiente son muy frecuentes las modificaciones de las especificaciones sobre la
consiguiente son muy frecuentes las modificaciones de las especificaciones sobre la
marcha o a última hora, después de la entrega al cliente.
marcha o a última hora, después de la entrega al cliente.
•No se realiza un estudio detallado del impacto de estos cambios yyla complejidad interna
•No se realiza un estudio detallado del impacto de estos cambios la complejidad interna
de las aplicaciones crece hasta que se hacen virtualmente imposibles de mantener yy
de las aplicaciones crece hasta que se hacen virtualmente imposibles de mantener
cada nueva modificación, es más costosa yypuede provocar el fallo de todo sistema.
cada nueva modificación, es más costosa puede provocar el fallo de todo sistema.
20. 1.3.3 La Calidad es Mala
Como consecuencia de que las especificaciones son ambiguas o incluso incorrectas, yy
Como consecuencia de que las especificaciones son ambiguas o incluso incorrectas,
de que no se realizan pruebas exhaustivas, el software contiene numerosos errores
de que no se realizan pruebas exhaustivas, el software contiene numerosos errores
cuando se entrega al cliente.
cuando se entrega al cliente.
1.3.4 El cliente queda Insatisfecho
Debido al poco tiempo e interés que se dedican al análisis de requisitos yya la
Debido al poco tiempo e interés que se dedican al análisis de requisitos a la
especificación del proyecto, a la falta de comunicación durante el desarrollo a la
especificación del proyecto, a la falta de comunicación durante el desarrollo a la
existencia de numerosos errores en el producto que se entrega, los clientes suelen
existencia de numerosos errores en el producto que se entrega, los clientes suelen
quedar muy poco satisfechos de los resultados.
quedar muy poco satisfechos de los resultados.
1.4 Metas de la Ingeniería de Software
•Mejorar la calidad de los productos de programación que son desarrollados yy
•Mejorar la calidad de los productos de programación que son desarrollados
modificados a tiempo yydentro de un presupuesto definido.
modificados a tiempo dentro de un presupuesto definido.
•Aumentar la productividad
•Aumentar la productividad
•Aumentar la satisfacción profesional de los ingenieros de esta disciplina
•Aumentar la satisfacción profesional de los ingenieros de esta disciplina
21. 1.5 Mitos del Software
1.5 Mitos del Software
Muchas de las causas de la crisis del software se pueden encontrar en una mitología que
Muchas de las causas de la crisis del software se pueden encontrar en una mitología que
surge durante los primeros años del desarrollo del software. Los mitos del software
surge durante los primeros años del desarrollo del software. Los mitos del software
propagaron información errónea yyconfusión.
propagaron información errónea confusión.
1.6 Paradigmas de la Ingeniería de Software
1.6 Paradigmas de la Ingeniería de Software
Un paradigma es un ejemplo o un modelo que utiliza la ingeniería para el desarrollo de un
Un paradigma es un ejemplo o un modelo que utiliza la ingeniería para el desarrollo de un
software o proyecto. Reconocer los problemas, causas yydemoler los mitos del software
software o proyecto. Reconocer los problemas, causas demoler los mitos del software
son los primeros pasos a solucionar. Pero las propias soluciones tienen que proporcionar
son los primeros pasos a solucionar. Pero las propias soluciones tienen que proporcionar
asistencia practica a la persona que desarrolla un software, mejorar la calidad del
asistencia practica a la persona que desarrolla un software, mejorar la calidad del
software, por ultimo permitir al mundo del software mantenerse en paz con el mundo del
software, por ultimo permitir al mundo del software mantenerse en paz con el mundo del
hardware. Tipos de paradigmas:
hardware. Tipos de paradigmas:
a)Modelo cascada
a)Modelo cascada
b)Modelo prototipo
b)Modelo prototipo
c)Modelo espiral
c)Modelo espiral
d)Técnicas de 4ta generación
d)Técnicas de 4ta generación