INGENIERIA EN
SOFTWARE
TORIBIO ALCARAZ VALENZUELA
INTRODUCCIÓN
• Tema principal es definiciones, orígenes, su
importancia. Definiciones de Software Engineering
Suit (SEI) y el World Wide Web Consortium (W3C)
que son organizaciones que se encargan de la
ingeniería de software como nos ayuda a la
creación de software de calidad que también se
incluyen los modelos de desarrollo y sus procesos
para el desarrollo del mismo.
DEFINICIÓN
• La ingeniería del software es el desarrollo,
operación y mantenimiento del software de forma
sistemática, disciplinada y cuantificable, y
el estudio de dichos métodos.

En otras palabras, es el estudio dedicado a
la creación de software de buena calidad, barato
y fácil de desarrollar y mantener. Es la aplicación
de la ingeniería al software.
HISTORIA
• El concepto de ingeniería del software surgió en
1968, tras una conferencia en Alemania que tuvo
como objetivo resolver los problemas de la crisis del
software.
• El término crisis del software se usó desde finales de
1960 hasta mediados de 1980 para describir los
frecuentes problemas que aparecían durante el
proceso de desarrollo de nuevo software.
IMPORTANCIA
• La importancia de la ingeniería en software es muy
importante ya que con ella se puede analizar,
diseñar, programar y aplicar un software de
manera correcta y organizada, cumpliendo con
todas las especificaciones del cliente y el usuario
final. Lo anterior es posible gracias a los objetivos
que esta propone.
UTILIDAD
• Facilitar el control en el proceso de desarrollo de
software
• Suministrar a los desarrolladores las bases para
construir software de alta calidad en una forma
eficiente.
• Definir una disciplina que garantice la producción y
el mantenimiento de los productos software
desarrollados en el plazo fijado y dentro del costo
estimado.
CLASIFICACIÓN DE APLICACIONES DE
COMPUTO
Los sistemas de computo se pueden dividir de
acuerdo a los siguientes puntos:
• De acuerdo a la forma de representación física de
la Información
• De acuerdo al Tipo de Uso
• De acuerdo a la Potencia
• De acuerdo al paralelismo
• IBM vs. APPlE
• Clones vs. de marca.
SEI (SOFTWARE ENGINEERING
INSTITUTE)
• Es un centro de investigación y desarrollo fundado
por el Departamento de Defensa de los Estados
Unidos y operado por la Carnegie Mellon University,
en Pittsburgh, Pennsylvania. La SEI ayuda en el
avance de los principios y prácticas de la ingeniería
de software, y sirve como un recurso nacional en la
ingeniería de software, seguridad en computación,
y mejora en procesos.
W3C (WORLD WIDE WEB CONSORTIUM)
• Es la principal organización internacional de
estándares para la World Wide Web. Fue fundada
por Tim Berners-Lee en Octubre de 1994, en la
MIT/LCS (Massachusetts Institute Of Tecnology
Laboratory for Computer Science), y actualmente
es quien lo encabeza. Dicho consorcio está
conformado por organizaciones que mantienen un
staff de tiempo completo con el propósito de
trabajar juntos en el desarrollo de estándares para
la World Wide Web.
MODELOS Y FILOSOFÍAS DE
DESARROLLO DE SOFTWARE.
Modelo en Cascada: Es el enfoque metodológico que ordena
rigurosamente las etapas del proceso para el desarrollo de
software, de tal forma que el inicio de cada etapa debe esperar
a la finalización de la etapa anterior. Un ejemplo de dicha
metodología es:
• Análisis de requisitos.
• Diseño del Sistema.
• Diseño del Programa.
• Codificación.
• Pruebas.
• Implantación.
• Mantenimiento.
De esta forma, cualquier error de diseño detectado en la etapa
de prueba conduce necesariamente al rediseño y nueva
programación del código afectado, aumentando los costos del
desarrollo.
• Modelo de Prototipos: Se trata de un modelo de
desarrollo de tipo evolutivo. La mecánica consiste
en construir un prototipo en poco tiempo, utilizando
los programas adecuados y tratando de no usar
mucho dinero pues, a partir de que el prototipo sea
aprobado, se podrá comenzar con el desarrollo del
producto final.
• El modelo de prototipos consta de varias etapas.
• Comunicación
• Plan Rápido
• Modelado, Diseño Rápido
• Construcción del Prototipo
• Desarrollo, Entrega y Retroalimentación
• Modelo en Espiral: Es un modelo de desarrollo
evolutivo. Las actividades a realizar se encuentran
dentro de una espiral, donde cada bucle
representa un conjunto de actividades, las cuales
no cuentan con ninguna prioridad, sino que las
siguientes se definen en función del análisis de
riesgos.
• Para cada ciclo, habrá cuatro actividades a
realizar.
CICLO DE VIDA DEL DESARROLLO DE
SOFTWARE
PROCESOS PARA EL DESARROLLO DE
SOFTWARE
• Definición de objetivos: definir el resultado del
proyecto y su papel en la estrategia global.
• Análisis de los requisitos y su viabilidad: recopilar,
examinar y formular los requisitos del cliente y
examinar cualquier restricción que se pueda
aplicar.
• Diseño general: requisitos generales de la
arquitectura de la aplicación.
• Diseño en detalle: definición precisa de cada
subconjunto de la aplicación.
• Programación (programación e implementación):
es la implementación de un lenguaje de
programación para crear las funciones definidas
durante la etapa de diseño.
• Prueba de unidad: prueba individual de cada
subconjunto de la aplicación para garantizar que
se implementaron de acuerdo con las
especificaciones.
• Integración: para garantizar que los diferentes
módulos se integren con la aplicación. Éste es el
propósito de la prueba de integración que está
cuidadosamente documentada.
• Prueba beta (o validación), para garantizar que el
software cumple con las especificaciones
originales.
• Documentación: sirve para documentar
información necesaria para los usuarios del
software y para desarrollos futuros.
• Implementación
• Mantenimiento: para todos los procedimientos
correctivos (mantenimiento correctivo) y las
actualizaciones secundarias del software
(mantenimiento continuo).
ARQUITECTURA DE SOFTWARE.
• conjunto de patrones que proporcionan un marco
de referencia necesario para guiar la construcción
de un software, permitiendo a los programadores,
analistas y todo el conjunto de desarrolladores del
software compartir una misma línea de trabajo y
cubrir todos los objetivos y restricciones de la
aplicación. Es considerada el nivel más alto en el
diseño de la arquitectura de un sistema puesto que
establecen la estructura, funcionamiento e
interacción entre las partes del software.
CONCLUSIÓN
En este documento se aprecia el desarrollo de un
software y los estándares que se tienen que seguir
para poder obtener un software de calidad.
Hay diferentes tipos de desarrollos de software, los
cuales si no se llevan a cabo podría fallar en un 70%
el sistema diseñado.
BIBLIOGRAFIA
• http://www.slideshare.net/almoralgon/clasificacion
-de-los-sistemas-de-computo
• http://ingenieriadesoftware3.blogspot.mx/p/import
ancia-de-la-ingenieria-del.html
• http://www.monografias.com/trabajos5/inso/inso.s
html#intro
• http://www.alegsa.com.ar/Dic/ingenieria%20del%2
0software.php

Ingenieria en software

  • 1.
  • 2.
    INTRODUCCIÓN • Tema principales definiciones, orígenes, su importancia. Definiciones de Software Engineering Suit (SEI) y el World Wide Web Consortium (W3C) que son organizaciones que se encargan de la ingeniería de software como nos ayuda a la creación de software de calidad que también se incluyen los modelos de desarrollo y sus procesos para el desarrollo del mismo.
  • 3.
    DEFINICIÓN • La ingenieríadel software es el desarrollo, operación y mantenimiento del software de forma sistemática, disciplinada y cuantificable, y el estudio de dichos métodos. En otras palabras, es el estudio dedicado a la creación de software de buena calidad, barato y fácil de desarrollar y mantener. Es la aplicación de la ingeniería al software.
  • 4.
    HISTORIA • El conceptode ingeniería del software surgió en 1968, tras una conferencia en Alemania que tuvo como objetivo resolver los problemas de la crisis del software. • El término crisis del software se usó desde finales de 1960 hasta mediados de 1980 para describir los frecuentes problemas que aparecían durante el proceso de desarrollo de nuevo software.
  • 5.
    IMPORTANCIA • La importanciade la ingeniería en software es muy importante ya que con ella se puede analizar, diseñar, programar y aplicar un software de manera correcta y organizada, cumpliendo con todas las especificaciones del cliente y el usuario final. Lo anterior es posible gracias a los objetivos que esta propone.
  • 6.
    UTILIDAD • Facilitar elcontrol en el proceso de desarrollo de software • Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente. • Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.
  • 7.
    CLASIFICACIÓN DE APLICACIONESDE COMPUTO Los sistemas de computo se pueden dividir de acuerdo a los siguientes puntos: • De acuerdo a la forma de representación física de la Información • De acuerdo al Tipo de Uso • De acuerdo a la Potencia • De acuerdo al paralelismo • IBM vs. APPlE • Clones vs. de marca.
  • 8.
    SEI (SOFTWARE ENGINEERING INSTITUTE) •Es un centro de investigación y desarrollo fundado por el Departamento de Defensa de los Estados Unidos y operado por la Carnegie Mellon University, en Pittsburgh, Pennsylvania. La SEI ayuda en el avance de los principios y prácticas de la ingeniería de software, y sirve como un recurso nacional en la ingeniería de software, seguridad en computación, y mejora en procesos.
  • 9.
    W3C (WORLD WIDEWEB CONSORTIUM) • Es la principal organización internacional de estándares para la World Wide Web. Fue fundada por Tim Berners-Lee en Octubre de 1994, en la MIT/LCS (Massachusetts Institute Of Tecnology Laboratory for Computer Science), y actualmente es quien lo encabeza. Dicho consorcio está conformado por organizaciones que mantienen un staff de tiempo completo con el propósito de trabajar juntos en el desarrollo de estándares para la World Wide Web.
  • 10.
    MODELOS Y FILOSOFÍASDE DESARROLLO DE SOFTWARE.
  • 11.
    Modelo en Cascada:Es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior. Un ejemplo de dicha metodología es: • Análisis de requisitos. • Diseño del Sistema. • Diseño del Programa. • Codificación. • Pruebas. • Implantación. • Mantenimiento. De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo.
  • 12.
    • Modelo dePrototipos: Se trata de un modelo de desarrollo de tipo evolutivo. La mecánica consiste en construir un prototipo en poco tiempo, utilizando los programas adecuados y tratando de no usar mucho dinero pues, a partir de que el prototipo sea aprobado, se podrá comenzar con el desarrollo del producto final. • El modelo de prototipos consta de varias etapas. • Comunicación • Plan Rápido • Modelado, Diseño Rápido • Construcción del Prototipo • Desarrollo, Entrega y Retroalimentación
  • 13.
    • Modelo enEspiral: Es un modelo de desarrollo evolutivo. Las actividades a realizar se encuentran dentro de una espiral, donde cada bucle representa un conjunto de actividades, las cuales no cuentan con ninguna prioridad, sino que las siguientes se definen en función del análisis de riesgos. • Para cada ciclo, habrá cuatro actividades a realizar.
  • 14.
    CICLO DE VIDADEL DESARROLLO DE SOFTWARE
  • 15.
    PROCESOS PARA ELDESARROLLO DE SOFTWARE • Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global. • Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
  • 16.
    • Diseño general:requisitos generales de la arquitectura de la aplicación. • Diseño en detalle: definición precisa de cada subconjunto de la aplicación. • Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
  • 17.
    • Prueba deunidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones. • Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.
  • 18.
    • Prueba beta(o validación), para garantizar que el software cumple con las especificaciones originales. • Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
  • 19.
    • Implementación • Mantenimiento:para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
  • 20.
    ARQUITECTURA DE SOFTWARE. •conjunto de patrones que proporcionan un marco de referencia necesario para guiar la construcción de un software, permitiendo a los programadores, analistas y todo el conjunto de desarrolladores del software compartir una misma línea de trabajo y cubrir todos los objetivos y restricciones de la aplicación. Es considerada el nivel más alto en el diseño de la arquitectura de un sistema puesto que establecen la estructura, funcionamiento e interacción entre las partes del software.
  • 21.
    CONCLUSIÓN En este documentose aprecia el desarrollo de un software y los estándares que se tienen que seguir para poder obtener un software de calidad. Hay diferentes tipos de desarrollos de software, los cuales si no se llevan a cabo podría fallar en un 70% el sistema diseñado.
  • 22.
    BIBLIOGRAFIA • http://www.slideshare.net/almoralgon/clasificacion -de-los-sistemas-de-computo • http://ingenieriadesoftware3.blogspot.mx/p/import ancia-de-la-ingenieria-del.html •http://www.monografias.com/trabajos5/inso/inso.s html#intro • http://www.alegsa.com.ar/Dic/ingenieria%20del%2 0software.php