You are on page 1of 26

INGENIERÍA DE SOFTWARE

¿Qué es la Ingeniería de Software?


CONTENIDO
 Qué es la Ingeniería de Software ?
 Cuales son los problemas en la Ingeniería de Software?
 Cuál es la diferencia entre un programador y un
Ingeniero de Software?
 Cual es la diferencia entre la Ingenieria de Software y la
Computacion ?
 Cual es la diferencia entre la Ingenieria de Software y la
Ingeniería de Sistemas?
 Que es el software ?
 Cuales son los retos de la Ingeniería de Software?
¿QUÉ ES LA INGENIERÍA DE SOFTWARE?
 Es la disciplina profesional que distingue entre
“programar un computador” y desarrollar un “producto
software”
 El uso de metodologías, herramientas y técnicas para
resolver problemas prácticos que se presentan en la
construcción, desarrollo, soporte y evolución del software

 La aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación (funcionamiento) y
mantenimiento del software; es decir, la aplicación de
ingeniería al software (IEEE,1993)
 La Ingeniería de Software es una diciplina de la
Ingeniería que concierne a todos los aspectos de la
producción de software
PROBLEMAS

 A pesar de que los sistemas de software nos han permitido se más


eficientes y productivos existen serios problemas relacionados con el
desarrollo de software.
 Estos problemas tienen que ver con el tiempo, costo y calidad de los
sistemas que se crean.
 Los productos de software se ubican entre los sistemas más complejos
realizados por el hombre y su naturaleza intangible complica más el
problema
 Las técnicas de desarrollo que funcionan de forma individual o para
equipos pequeños no escalan adecuadamente para el desarrollo de
sistemas complejos
 La velocidad de cambio tecnológico es muy elevada. Los clientes tienen
nuevas expectativas y todo ello pone presión que limita la habilidad de
crear software de calidad en tiempos aceptables
PROBLEMAS
 Los usuarios no saben lo que quieren.
 Un sistema tiene muchos usuarios y
ninguno tiene una visión de conjunto.
 No saben cómo hacer más eficiente la
operación en su conjunto
 No saben qué partes de su trabajo
pueden transformarse en software.
 No saben detallar lo que saben de forma
precisa.

 La ingeniería de software busca dar


soluciones
PROBLEMAS
ING. DE SOFTWARE VS PROGRAMADOR

VS
¿CUÁL ES LA DIFERENCIA ENTRE UN INGENIERO
DE SOFTWARE Y UN PROGRAMADOR?
 Un programador no es equivalente a un ingeniero de
Software
 “Todo mundo” puede sentarse a programar

 Esto no garantiza que se pueda crear una solución


compleja en tiempo, costo y calidad
 El desarrollar software sin conocer técnicas de ingeniería
representa un enfoque “artesanal” de desarrollo que hoy
en día sigue siendo común. Los esfuerzos de
profesionalización mencionados atrás (certificaciones de
individuos y de empresas) buscan reducir este enfoque
“artesanal” en el desarrollo
¿CUÁL ES LA DIFERENCIA ENTRE LA INGENIERÍA
DE SOFTWARE Y LA COMPUTACIÓN?
 La computación concierne a la teoría y fundamentos
de cualquier sistema de computo, sea de hardware o
de software.
 La Ingeniería de software concierne solo al desarrollo
de sistemas o productos de software
 La Ingeniería de Software todavía esta lejos de ser
una ciencia como los son la Química, la Ingeniería
Civil o la Electrónica.
 El desarrollo de software necesita entonces tanto los
fundamentos desarrollados dentro de las ciencias de
la computación como el rigor que las disciplinas de
ingeniería aportan a la confiabilidad de los artefactos
que se producen.
¿CUÁL ES LA DIFERENCIA ENTRE LA INGENIERÍA
DE SOFTWARE Y LA INGENIERÍA DE SISTEMAS?

 La Ingeniería de Sistemas concierne a todos los aspectos


del desarrollo de sistemas basados en cómputo, que
incluyen hardware, software y el proceso de Ingeniería.
La Ingeniería de Software es solo parte de este proceso.
¿QUÉ ES EL SOFTWARE?

 Es la parte lógica del ordenador, esto es, el conjunto de


programas que puede ejecutar el hardware para la
realización de las tareas de computación a las que se
destina.
 Sistemas o Productos de software grandes y complejos.

 Que contiene el software.

 Que tipos de software hay ?

 Cual es el costo del software.


PRODUCTOS DE SOFTWARE
 Productos genéricos.
 Productos que son producidos por una organización para ser
vendidos al mercado.
 Productos hechos a medida.
 Sistemas que son desarrollados bajo pedido a un
desarrollador específico.
 La mayor parte del gasto del software es en productos
genéricos, pero hay más esfuerzo en el desarrollo de los
sistemas hechos a medida.
CARACTERÍSTICAS DE LOS PRODUCTOS
DE SOFTWARE
 Mantenibles.
 Debe ser posible que el software evolucione y que siga cumpliendo con sus
especificaciones.
 Confiabilidad.
 El software no debe causar danos físicos o económicos en el caso de fallos.
 Eficiencia.
 El software no debe desperdiciar los recursos del sistema.
 Utilización adecuada.
 El software debe contar con una interfaz de usuario adecuada y su
documentación.
 Económico
 Flexible

 Portable

 Mantenible
¿QUÉ CONTIENE EL SOFTWARE?
 El software contiene:
 Líneas de código de algún lenguaje
 Instrucciones de computadora.
 Descripción de las estructuras de datos.
 Algoritmos.
 Procedimientos y funciones.
 Componentes de software.
¿QUÉ TIPOS DE SOFTWARE HAY?
Software
Windows, Linux, Mac os, Unix,
Sistemas Operativos

JAVA, C++, PHP, JSP, Visual Basic


Lenguajes De Programación

Office, Autocat, Winamp, Fotoshop


Aplicativos (escritorio)

Google, Web de bancos, Traductores


Aplicativos (Web) en Línea

MySql, Oracle, Postgrest


Motores y gestores de Bases de datos

Programas de bajo nivel (ensambladores)

Maplab, Assembler, Plc


COSTOS DEL SOFTWARE
 Los costos del software a menudo dominan al costo del sistema.
El costo del software en un PC es a menudo mas caro que la
PC.
 Cuesta mas mantener el software que desarrollarlo. Para
sistemas con una larga vida, este costo se multiplica.
 La Ingeniería de Software concierne a un desarrollo efectivo en
cuanto a costes del software.
RETOS DE LA INGENIERÍA DE
SOFTWARE
 ¿Qué Desarrollar?, ¿Por qué? y ¿Cómo Desarrollarlo?, ¿Bajo que
Criterios de Aceptación?
- Satisfacción Balanceada de las necesidades de los Stakeholder del
Negocio
 ¿Quienes Desarrollan, Donde ?

- Staff; organización; outsourcing


 Como Desarrollar, Cuando, en que Orden?

- Metodologías, Procesos, herramientas, componentes,


incrementos
 Como se va a ir adaptando a los cambios?

- Necesidades de los usuarios, condiciones del mercado,


avances tecnológicos
 Balance Integrado?

- Funcionalidad, Calidad, Arquitectura, Modelamiento, Pruebas


RETOS DE LA INGENIERÍA DE
SOFTWARE
 Mantener y tratar con sistemas legados. Tratar con una
mayor diversidad de sistemas con mayores demandas de
computo, y menores tiempos de entrega
 Sistemas Legados
 Sistemas antiguos que deben ser mantenidos y mejorados.
 Heterogeneidad
 Sistemas que incluyen una mezcla de software y hardware.
 Entrega
 Existeuna presión incremental por una entrega a tiempo de los
productos de software.
 Formalidad.
 Existeuna gran demanda de que exista formalidad en el proceso
de desarrollo de software
RESPONSABILIDAD PROFESIONAL
 Los Ingenieros de software no solo deben considerar
aspectos técnicos. Deben tener una visión mas amplia, en
lo ético, social y profesional.
 No existe estatutos o son muy escasos para estos
aspectos.
 Desarrollo de sistemas militares.
 Piratería.
 Que es mejor para la profesión de Ingeniero de Software.
INGENIERÍA DE SOFTWARE

Pretende

Analizar, Diseñar, construir y dar mantenimiento a grandes


y complejos sistemas de software
CAPAS DE LA INGENIERÍA DE
SOFTWARE
 La Ing. Software es una tecnología multicapa
 Enfoque de Calidad
 Proceso
 Métodos
 Herramientas
CAPAS DE LA INGENIERÍA DE
SOFTWARE
 MARCO DE CALIDAD
 Contexto de Negocios
 Satisfacción de Necesidades de los Stakeholders
 Organización, Orden, Transparencia, Controles
 Estándares Internacionales de mejores prácticas

 PROCESOS
 Fasesdel Ciclo de Vida del Software
 Asegurando un Producto Excelente
CAPAS DE LA INGENIERÍA DE
SOFTWARE
 METODOLOGÍAS
 Orientaciones sobre como manejar el desarrollo a través del
ciclo de vida del software
 HERRAMIENTAS
 Usode tecnologías para asistir el desarrollo del software y
asegurar el cumplimiento de los objetivos del software
 Enfoque automático / semiautomático
PROCESOS DE LA INGENIERÍA DE
SOFTWARE
 El Proceso general para la solución de problemas
contempla estas etapas:
 Decidir que hacer
 Decidir como hacerlo
 Hacerlo
 Probar el resultado
 Usar el resultado

 Objetivos
 Satisfaceruna necesidad mediante una solución tratable por
ordenador.
 Producir el mantenimiento del software hasta el fin de su vida
útil.
FASES DEL PROCESO DE SOFTWARE

You might also like