SlideShare une entreprise Scribd logo
1  sur  23
Equipo 4
Ing. De Software Aplicada
110602
Hernández Rosales Alejandra
Hurtado Escobedo Alejandro
Islas Castro Amainary Jazmín
Martinez Alejandro Josue
En esta presentación se describen los principales
topicos utilizados en la ingeniería de software con el
objetivo de enriquecer el conocimiento del lector y de
esta manera lograr que la ingeniería de software sea
mas fácil de comprender .
La Ingeniería de Sistemas representa la principal herramienta de trabajo de los
desarrolladores de sistemas de información. Está representa por una metodología
compuesta por un conjunto de etapas que se realizan secuencialmente para dar
vida a una aplicación en forma evolutiva. Cada
etapa se integra por un conjunto de acciones encaminadas para obtener productos
específicos, como: especificaciones, diagramas, formatos, código, pruebas y
documentos diversos. A continuación se describen algunos enfoques para el
desarrollo de los sistemas de información:
Cleanroom
Reingeniería
Ingeniería web
Desarrollo basado en componentes
Sistemas críticos
Es una ingeniería y un proceso directivo para el desarrollo del
software de alta calidad con confiabilidad certificada. Cleanroom fue
desarrollado originalmente por el Dr. Harlan Mills y varios colegas de
IBM. El nombre “Cleanroom” fue tomado de la industria de
electrónica, donde un cuarto limpio físico existe para prevenir la
introducción de defectos durante la fabricación del hardware. El foco
del proceso de Cleanroom está en la prevención del defecto, más
bien que el retiro del defecto.
1. Desarrollo del Software basado en métodos formales: hace uso el
método de la estructura de caja para especificar y para diseñar un producto
de software. La verificación que el diseño pone correctamente la
especificación en ejecución se realiza con la revisión del equipo.
2.Puesta en práctica incremental bajo control de calidad estadístico:
utiliza un acercamiento iterativo , en el cual el producto se desarrolla en los
incrementos que aumentan gradualmente la funcionalidad puesta en
ejecución. La calidad de cada incremento se mide contra estándares
preestablecidos para verificar que está procediendo el proceso del
desarrollo aceptable. Una falta de resolver estándares de calidad da lugar a
la cesación de la prueba para el incremento actual, y a una vuelta a la fase
de diseño.
3. Prueba estadístico Sana: se realiza como experimento estadístico. De
acuerdo con la especificación formal, un subconjunto representativo de la
trayectoria de la entrada-salida del software se selecciona y se prueba. Esta
muestra entonces se analiza estadística para producir una estimación de la
confiabilidad del software, y un nivel de la confianza en esa estimación.
Ventajas
Mejoras significativas en la corrección,
La confiabilidad
Estas ventajas traducen generalmente a una reducción en las faltas de
producto campo-experimentadas, reducida duración de ciclo, facilidad del
mantenimiento, y vida de un producto más largo.
Pasos del método de Cleanroom:
Algunos de los procesos que constituyen el acercamiento de Cleanroom son:
1. Análisis de requisitos: produciendo y repasando “especificaciones
informales”.
2. Diseño de alto nivel: convertir los requisitos en las máquinas y las
funciones del estado
3. Diseño detallado: refinamiento adicional de funciones
4. Codificación por el incremento: código que se convierte y verificarlo que
usa métodos informales. Se prohíbe la prueba de compilación del código o
de la unidad.
5. Preaprueba por el incremento: generación de los casos de la prueba.
6. Prueba estadística por el incremento: se compila, se liga y se prueba el
código. Se validan los resultados.
Es la “modificación de un producto software, o de ciertos
componentes, usando para el análisis del sistema existente técnicas
de Ingeniería Inversa y, para la etapa de reconstrucción,
herramientas de Ingeniería Directa, de tal manera que se oriente
este cambio hacia mayores niveles de facilidad en cuanto a
mantenimiento, reutilización, comprensión o evaluación.”
La reingeniería del software involucra diferentes actividades como son:
Análisis de inventarios
Reestructuración de documentos
Ingeniería inversa
Reestructuración de programas y datos
Ingeniería directa
con la finalidad de crear versiones de programas ya existentes que sean de
mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.
Análisis de Inventarios: El inventario tal vez no sea más que un modelo en
una hoja de cálculo que contenga información que proporcione una
descripción detallada (tamaño, edad, importancia para el negocio) de las
aplicaciones activas. Los candidatos a la reingeniería aparecen cuando se
ordena esta información en función de su importancia para el negocio,
longevidad, mantenibilidad actual y otros criterios localmente importantes. Es
entonces cuando es posible asignar recursos a las aplicaciones candidatas
para el trabajo de reingeniería.
Reestructuración de documentos: La documentación debe actualizarse
pero se tiene recursos limitados. Se utiliza un enfoque de “documentar
cuando se toque”. El sistema es crucial para el negocio y debe volver a
documentarse por completo incluso en este caso un enfoque inteligente es
recortar la documentación a un mínimo esencial. Cada una de estas opciones
es viable. Una organización de software debe elegir la más apropiada para
cada caso.
Ingeniería Inversa: es el proceso de análisis de un programa con el fin de
crear una representación de programa con un nivel de abstracción más
elevado que el código fuente. La Ingeniería inversa es un proceso de
recuperación de diseño. Con las herramientas de la ingeniería inversa se
extraerá del programa existente información del diseño arquitectónico y de
proceso, e información de los datos.
Reestructuración de datos: comienza con una actividad de ingeniería
inversa. La arquitectura de datos actual se analiza con minuciosidad y se
define los modelos de datos necesarios, se identifican los objetivos de datos
y los atributos, y después se revisa la calidad de las estructuras de datos
existentes.
Ingeniería directa: no solo recupera la información de diseño a partir del
software existente, también utiliza esta información para alterar o reconstruir
el sistema existente con la finalidad de mejorar su calidad global. En la
mayoría de los casos el software sometido a reingeniería vuelve a
implementar la función del sistema existente y también añade nuevas
funciones o mejoras.
La Ingeniería de la Web es la aplicación de metodologías sistemáticas,
disciplinadas y cuantificables al desarrollo eficiente, operación y
evolución de aplicaciones de alta calidad en la World Wide Web
En este sentido, la Ingeniería de la Web hace referencia a las
metodologías, técnicas y herramientas que se utilizan en el desarrollo de
Aplicaciones Web complejas y de gran dimensión en las que se apoya la
evaluación, diseño, desarrollo, implementación y evolución de dichas
aplicaciones.
El desarrollo de Aplicaciones Web posee determinadas características que lo
hacen diferente del desarrollo de aplicaciones o software tradicional y sistemas
de información.
La Ingeniería de la Web es multidisciplinar y aglutina contribuciones de
diferentes áreas:
Arquitectura de la información ingeniería de hipermedia/hipertexto
Ingeniería de requisitos
Diseño de interfaz de usuario
Usabilidad
Diseño gráfico y de presentación
Diseño y análisis de sistemas
Ingeniería de software
Ingeniería de datos
Indexado y recuperación de información
Testeo
Modelado y simulación,
Despliegue de aplicaciones
Operación de sistemas y gestión de proyectos
La Ingeniería de la Web no es un clon o subconjunto de la ingeniería de
software aunque ambas incluyen desarrollo de software y programación, pues
a pesar de que la Ingeniería de la Web utiliza principios de ingeniería de
software, incluye nuevos enfoques, metodologías, herramientas, técnicas,
guías y patrones para cubrir los requisitos únicos de las aplicaciones web.
Los principales aspectos de la Ingeniería de la Web incluyen, entre otros, los
siguientes temas:
Diseño de procesos de negocio para aplicaciones web
Herramientas CASE para aplicaciones web
Generación de código para aplicaciones web
Desarrollo web colaborativo
Modelado conceptual de aplicaciones web
Diseñó de Modelos de datos para sistemas de información web
Ingeniería web empírica
Entornos de desarrollo de aplicaciones web integrados
Herramientas de autor para contenido multimedia
Pruebas de rendimiento de aplicaciones basadas en web
Personalización y adaptación de aplicaciones web
Modelado de procesos para aplicaciones web
Herramientas y métodos de prototipado
La ingeniería de software basada en componentes (CBSE) (también
conocida como desarrollo basado en componentes(CBD)) es una rama
de la ingeniería de software que enfatiza la separación de
asuntos (separation of concerns (SoC)) por lo que se refiere a la
funcionalidad de amplio rango disponible a través de un sistema de
software dado. Es un acercamiento basado en la reutilización para
definir, implementar, y componer componentes débilmente
acoplados en sistemas. Esta práctica persigue un amplio grado de
beneficios tanto en el corto como el largo plazo, para el software en sí
mismo y para las organizaciones que patrocinan tal software.
Los ingenieros de software consideran los componentes como parte de la
plataforma inicial para la orientación a servicios. Los componentes pueden
producir o consumir eventos y pueden ser usados para las arquitecturas
dirigida por eventos (EDA).
Beneficios del Desarrollo de Software Basado en Componentes
1. Reutilización del software. Nos lleva a alcanzar un mayor nivel de
reutilización de software.
2. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando
cada uno de los componentes antes de probar el conjunto completo de
componentes ensamblados.
3. Simplifica el mantenimiento del sistema. Cuando existe un débil
acoplamiento entre componentes, el desabollador es libre de actualizar y/o
agregar componentes según sea necesario, sin afectar otras partes del
sistema.
4. Mayor calidad. Dado que un componente puede ser construido y luego
mejorado continuamente por un experto u organización, la calidad de una
aplicación basada en componentes mejorará con el paso del tiempo
Ventajas:
El análisis del riesgo se hace de forma explícita y clara; Une los mejores
elementos de los restantes modelos.
Reduce riesgos del proyecto
Incorpora objetivos de calidad
Integra el desarrollo con el mantenimiento
Desventajas:
•Genera mucho tiempo en el desarrollo del sistema
Modelo costoso
Requiere experiencia en la identificación de riesgos
Inconvenientes:
Genera mucho trabajo adicional. Cuando un sistema falla se pierde tiempo y
coste dentro de la empresa. Exige una cierta habilidad en los analistas (es
bastante difícil).
Los sistemas críticos son sistemas técnicos o socio-técnicos
de los cuales dependen las personas o los negocios. Si estos
sistemas no ofrecen sus servicios de la forma esperada,
pueden provocar graves problemas y pérdidas
importantes.
Hay tres tipos principales de sistemas críticos:
1. Sistemas de seguridad críticos. Son sistemas cuyo fallo de funcionamiento
puede provocar perjuicio, pérdida de vidas o daños graves al medio ambiente.
ambiente. Un ejemplo de un sistema de seguridad crítico es un sistema de
control para una planta de fabricación de productos químicos.
2. Sistemas de misión críticos. Son sistemas cuyo fallo de funcionamiento puede
provocar errores en algunas actividades dirigidas por objetivos. Un ejemplo de
de un sistema de misión crítico es un sistema de navegación para una nave
espacial.
3. Sistemas de negocio críticos. Son sistemas cuyo fallo de funcionamiento puede
provocar costes muy elevados para el negocio que utiliza un sistema de este
tipo. Un ejemplo de un sistema de negocio crítico es un sistema de cuentas
bancarias.
La propiedad más importante de un sistema crítico es su confiabilidad. El
término confiabilidad fue propuesto por Laprie 1995 para hacer referencia a
las siguientes propiedades relacionadas de los sistemas: disponibilidad,
fiabilidad, seguridad y protección.
Existen varias razones por las que la confiabilidad es la propiedad más
importante de los sistemas críticos:
1.- Los sistemas que son no fiables, inseguros o desprotegidos son rechazados
a me- nudo por sus usuarios. Si los usuarios no confían en un sistema, se
negarán a utilizarlo. Es más, también rehusarán comprar o utilizar productos
de la misma compañía que produjo el sistema no confiable, puesto que creen
que éstos tampoco son confiables.
2.- Los sistemas no confiables pueden provocar pérdida de información. Es
muy cara la captura y mantenimiento de los datos; algunas veces cuesta más
que el sistema informático que los procesa. Se tiene que hacer un gran esfuerzo
e invertir mucho dinero para duplicar los datos importantes a fin de
protegerlos de cualquier corrupción.
3.- Los costes de los fallos de funcionamiento del sistema pueden ser enormes.
En algunas aplicaciones, como un sistema de control de reactores o un sistema
de navegación aérea, el coste de un fallo en el sistema es mayor en varios
órdenes de magnitud que el coste de dicho sistema de control.
Conclusión
A medida que se van creando más aplicaciones en la computadora, se
despiertan otras inquietudes, por lo que la capacidad de los recursos
disponibles se ve saturada. Por esto es importante hacer un buen de
estos recursos, procurando aprovecharlos al máximo mediante la
tecnología más adecuada que garantice el éxito en las tareas
emprendidas.
Los diferentes topicos mencionados anteriormente tienen como
objetivo brindar una línea de acción en la definición y construcción de
un sistema de información, por lo que a través de su conocimiento y
aplicación se podrán obtener diversas experiencias, que permitirán al
usuario desarrollar cada vez más y mejores sistemas.
Bibliografia.
http://ingdesoftware-karina.blogspot.mx/2007/07/qu-es-el-cleanroom.html
http://www.mondragon.edu/es/eps/investigacion/grupos-de-
investigacion/ingenieria-del-software
http://ingenieriadelsofware.bligoo.com/ingenieria-web#.U9has7H5fIV
http://es.slideshare.net/jasc_584/ingenieriadesoftware-
iansommerville7maedicion-9417118
http://cnx.org/content/m17438/latest/

Contenu connexe

Tendances

Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de softwaresairarcf
 
Prototipos de interfaces
Prototipos de interfacesPrototipos de interfaces
Prototipos de interfacesMariana Salgado
 
Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)Gustavo Gualsema
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareJennifer Andrea Cano Guevara
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicaciónuniv of pamplona
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenariosUCATEBA
 
Ejemplo de cuestionario para auditoría de sistemas informáticos
Ejemplo de cuestionario para auditoría de sistemas informáticosEjemplo de cuestionario para auditoría de sistemas informáticos
Ejemplo de cuestionario para auditoría de sistemas informáticosDiana Alfaro
 
Planificacion de software - Sistemas II
Planificacion de software - Sistemas IIPlanificacion de software - Sistemas II
Planificacion de software - Sistemas IIJohn Anthony Peraza
 
Estrategias prueba de software
Estrategias prueba de softwareEstrategias prueba de software
Estrategias prueba de softwareCentro Líbano
 
Tipos de proyectos informáticos, actuales y emergentes
Tipos de proyectos informáticos, actuales y emergentesTipos de proyectos informáticos, actuales y emergentes
Tipos de proyectos informáticos, actuales y emergentesJuan Anaya
 
Auditoría de la explotación, del desarrollo y del mantenimiento
Auditoría de la explotación, del desarrollo y del mantenimientoAuditoría de la explotación, del desarrollo y del mantenimiento
Auditoría de la explotación, del desarrollo y del mantenimientoEfrain Reyes
 
La Gestión de Riesgos en las Tecnologías de la Información
La Gestión de Riesgos en las Tecnologías de la InformaciónLa Gestión de Riesgos en las Tecnologías de la Información
La Gestión de Riesgos en las Tecnologías de la InformaciónPECB
 
Definiciones de conceptos basicos de analisis de sistemas
Definiciones de conceptos basicos de analisis de sistemasDefiniciones de conceptos basicos de analisis de sistemas
Definiciones de conceptos basicos de analisis de sistemasPollo XD
 
Recopilacion De Informacion De Ing.Sofware
Recopilacion De Informacion De Ing.SofwareRecopilacion De Informacion De Ing.Sofware
Recopilacion De Informacion De Ing.Sofwarecarolina
 
Herramientas para la seguridad informática, un problema de dirección
Herramientas para la seguridad informática, un problema de direcciónHerramientas para la seguridad informática, un problema de dirección
Herramientas para la seguridad informática, un problema de direcciónAdonys Maceo
 

Tendances (20)

Gestión de la Calidad en Proyectos de Software
Gestión de la Calidad en Proyectos de SoftwareGestión de la Calidad en Proyectos de Software
Gestión de la Calidad en Proyectos de Software
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de software
 
Controles de desarrollo de Software
Controles de desarrollo de SoftwareControles de desarrollo de Software
Controles de desarrollo de Software
 
Arquitectura de aplicaciones
Arquitectura de aplicacionesArquitectura de aplicaciones
Arquitectura de aplicaciones
 
Prototipos de interfaces
Prototipos de interfacesPrototipos de interfaces
Prototipos de interfaces
 
Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicación
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenarios
 
Ejemplo de cuestionario para auditoría de sistemas informáticos
Ejemplo de cuestionario para auditoría de sistemas informáticosEjemplo de cuestionario para auditoría de sistemas informáticos
Ejemplo de cuestionario para auditoría de sistemas informáticos
 
Planificacion de software - Sistemas II
Planificacion de software - Sistemas IIPlanificacion de software - Sistemas II
Planificacion de software - Sistemas II
 
Ejercicio scrum
Ejercicio scrumEjercicio scrum
Ejercicio scrum
 
Estrategias prueba de software
Estrategias prueba de softwareEstrategias prueba de software
Estrategias prueba de software
 
Tipos de proyectos informáticos, actuales y emergentes
Tipos de proyectos informáticos, actuales y emergentesTipos de proyectos informáticos, actuales y emergentes
Tipos de proyectos informáticos, actuales y emergentes
 
Auditoría de la explotación, del desarrollo y del mantenimiento
Auditoría de la explotación, del desarrollo y del mantenimientoAuditoría de la explotación, del desarrollo y del mantenimiento
Auditoría de la explotación, del desarrollo y del mantenimiento
 
La Gestión de Riesgos en las Tecnologías de la Información
La Gestión de Riesgos en las Tecnologías de la InformaciónLa Gestión de Riesgos en las Tecnologías de la Información
La Gestión de Riesgos en las Tecnologías de la Información
 
Definiciones de conceptos basicos de analisis de sistemas
Definiciones de conceptos basicos de analisis de sistemasDefiniciones de conceptos basicos de analisis de sistemas
Definiciones de conceptos basicos de analisis de sistemas
 
Recopilacion De Informacion De Ing.Sofware
Recopilacion De Informacion De Ing.SofwareRecopilacion De Informacion De Ing.Sofware
Recopilacion De Informacion De Ing.Sofware
 
Herramientas para la seguridad informática, un problema de dirección
Herramientas para la seguridad informática, un problema de direcciónHerramientas para la seguridad informática, un problema de dirección
Herramientas para la seguridad informática, un problema de dirección
 

En vedette

Curso Semana 5: PE Propuesta de Valor
Curso Semana 5: PE Propuesta de ValorCurso Semana 5: PE Propuesta de Valor
Curso Semana 5: PE Propuesta de ValorPedro Chavez
 
Sistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasSistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasUniminuto - San Francisco
 
Product Market Fit - Segmento de cliente & Propuesta de valor
Product Market Fit - Segmento de cliente & Propuesta de valor Product Market Fit - Segmento de cliente & Propuesta de valor
Product Market Fit - Segmento de cliente & Propuesta de valor Gisella Buzzi
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Topingmec 0115
Topingmec 0115Topingmec 0115
Topingmec 0115topingmec
 
La respuesta de la Experiencia del GCBA
La respuesta de la Experiencia del GCBALa respuesta de la Experiencia del GCBA
La respuesta de la Experiencia del GCBAGisella Buzzi
 
Experiencia de marca: Gobierno de la Ciudad de Buenos Aires
Experiencia de marca: Gobierno de la Ciudad de Buenos AiresExperiencia de marca: Gobierno de la Ciudad de Buenos Aires
Experiencia de marca: Gobierno de la Ciudad de Buenos AiresGisella Buzzi
 
7 secretor que no se enseñan en las escruelas de negocios
7 secretor que no se enseñan en las escruelas de negocios7 secretor que no se enseñan en las escruelas de negocios
7 secretor que no se enseñan en las escruelas de negociosveronicasotog
 
Lean Startup en Español - Validation Board
Lean Startup en Español - Validation BoardLean Startup en Español - Validation Board
Lean Startup en Español - Validation BoardGabriel Amorocho
 
WebCenter, Propuesta de Valor, 4 de Marzo de 2010
WebCenter, Propuesta de Valor, 4 de Marzo de 2010WebCenter, Propuesta de Valor, 4 de Marzo de 2010
WebCenter, Propuesta de Valor, 4 de Marzo de 2010Jaime Cid
 
6 diseño e innovación de la própuesta de valor
6 diseño e innovación de la própuesta de valor6 diseño e innovación de la própuesta de valor
6 diseño e innovación de la própuesta de valorStartcoaching
 
Introducción al producto mínimo viable (PMV) AllStartup gandia
Introducción al producto mínimo viable (PMV) AllStartup gandiaIntroducción al producto mínimo viable (PMV) AllStartup gandia
Introducción al producto mínimo viable (PMV) AllStartup gandiamomentum_do
 

En vedette (20)

Curso Semana 5: PE Propuesta de Valor
Curso Semana 5: PE Propuesta de ValorCurso Semana 5: PE Propuesta de Valor
Curso Semana 5: PE Propuesta de Valor
 
Sistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasSistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de Sistemas
 
Product Market Fit - Segmento de cliente & Propuesta de valor
Product Market Fit - Segmento de cliente & Propuesta de valor Product Market Fit - Segmento de cliente & Propuesta de valor
Product Market Fit - Segmento de cliente & Propuesta de valor
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Topingmec 0115
Topingmec 0115Topingmec 0115
Topingmec 0115
 
Problemas a
Problemas aProblemas a
Problemas a
 
Calidad del software cap1
Calidad del software  cap1Calidad del software  cap1
Calidad del software cap1
 
Clase3 rs
Clase3 rsClase3 rs
Clase3 rs
 
La respuesta de la Experiencia del GCBA
La respuesta de la Experiencia del GCBALa respuesta de la Experiencia del GCBA
La respuesta de la Experiencia del GCBA
 
Comunicacion 2.0
Comunicacion 2.0Comunicacion 2.0
Comunicacion 2.0
 
Experiencia de marca: Gobierno de la Ciudad de Buenos Aires
Experiencia de marca: Gobierno de la Ciudad de Buenos AiresExperiencia de marca: Gobierno de la Ciudad de Buenos Aires
Experiencia de marca: Gobierno de la Ciudad de Buenos Aires
 
7 secretor que no se enseñan en las escruelas de negocios
7 secretor que no se enseñan en las escruelas de negocios7 secretor que no se enseñan en las escruelas de negocios
7 secretor que no se enseñan en las escruelas de negocios
 
Lean startup
Lean startupLean startup
Lean startup
 
Creatividad
CreatividadCreatividad
Creatividad
 
Lean Startup en Español - Validation Board
Lean Startup en Español - Validation BoardLean Startup en Español - Validation Board
Lean Startup en Español - Validation Board
 
WebCenter, Propuesta de Valor, 4 de Marzo de 2010
WebCenter, Propuesta de Valor, 4 de Marzo de 2010WebCenter, Propuesta de Valor, 4 de Marzo de 2010
WebCenter, Propuesta de Valor, 4 de Marzo de 2010
 
6 diseño e innovación de la própuesta de valor
6 diseño e innovación de la própuesta de valor6 diseño e innovación de la própuesta de valor
6 diseño e innovación de la própuesta de valor
 
Como hacer un MVP en tu Startup
Como hacer un MVP en tu StartupComo hacer un MVP en tu Startup
Como hacer un MVP en tu Startup
 
Induccion sogcs
Induccion sogcsInduccion sogcs
Induccion sogcs
 
Introducción al producto mínimo viable (PMV) AllStartup gandia
Introducción al producto mínimo viable (PMV) AllStartup gandiaIntroducción al producto mínimo viable (PMV) AllStartup gandia
Introducción al producto mínimo viable (PMV) AllStartup gandia
 

Similaire à Topicos de ingeniería de software

Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Vanessa Toral Yépez
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9naviwz
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de SoftwareCARMEN
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1Jose Garcia
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilvaeddysilva18
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareRichard J. Nuñez
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno softwareclaudiocaizales
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 
Lineas de productos de software y método watch
Lineas de productos de software y método watchLineas de productos de software y método watch
Lineas de productos de software y método watchYonathan Rodriguez
 

Similaire à Topicos de ingeniería de software (20)

Georgy jose sanchez
Georgy jose sanchezGeorgy jose sanchez
Georgy jose sanchez
 
Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de Software
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Sqm
SqmSqm
Sqm
 
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
 
Reingenieria inversa
Reingenieria inversaReingenieria inversa
Reingenieria inversa
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilva
 
Ingenieria del software pfd
Ingenieria del software pfdIngenieria del software pfd
Ingenieria del software pfd
 
Jose r ojas ii
Jose r ojas iiJose r ojas ii
Jose r ojas ii
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del Software
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno software
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
Reingeniería
ReingenieríaReingeniería
Reingeniería
 
Lineas de productos de software y método watch
Lineas de productos de software y método watchLineas de productos de software y método watch
Lineas de productos de software y método watch
 
ing del software
 ing del software  ing del software
ing del software
 
Inf 162
Inf 162Inf 162
Inf 162
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 

Topicos de ingeniería de software

  • 1. Equipo 4 Ing. De Software Aplicada 110602 Hernández Rosales Alejandra Hurtado Escobedo Alejandro Islas Castro Amainary Jazmín Martinez Alejandro Josue
  • 2. En esta presentación se describen los principales topicos utilizados en la ingeniería de software con el objetivo de enriquecer el conocimiento del lector y de esta manera lograr que la ingeniería de software sea mas fácil de comprender .
  • 3. La Ingeniería de Sistemas representa la principal herramienta de trabajo de los desarrolladores de sistemas de información. Está representa por una metodología compuesta por un conjunto de etapas que se realizan secuencialmente para dar vida a una aplicación en forma evolutiva. Cada etapa se integra por un conjunto de acciones encaminadas para obtener productos específicos, como: especificaciones, diagramas, formatos, código, pruebas y documentos diversos. A continuación se describen algunos enfoques para el desarrollo de los sistemas de información: Cleanroom Reingeniería Ingeniería web Desarrollo basado en componentes Sistemas críticos
  • 4. Es una ingeniería y un proceso directivo para el desarrollo del software de alta calidad con confiabilidad certificada. Cleanroom fue desarrollado originalmente por el Dr. Harlan Mills y varios colegas de IBM. El nombre “Cleanroom” fue tomado de la industria de electrónica, donde un cuarto limpio físico existe para prevenir la introducción de defectos durante la fabricación del hardware. El foco del proceso de Cleanroom está en la prevención del defecto, más bien que el retiro del defecto.
  • 5. 1. Desarrollo del Software basado en métodos formales: hace uso el método de la estructura de caja para especificar y para diseñar un producto de software. La verificación que el diseño pone correctamente la especificación en ejecución se realiza con la revisión del equipo. 2.Puesta en práctica incremental bajo control de calidad estadístico: utiliza un acercamiento iterativo , en el cual el producto se desarrolla en los incrementos que aumentan gradualmente la funcionalidad puesta en ejecución. La calidad de cada incremento se mide contra estándares preestablecidos para verificar que está procediendo el proceso del desarrollo aceptable. Una falta de resolver estándares de calidad da lugar a la cesación de la prueba para el incremento actual, y a una vuelta a la fase de diseño.
  • 6. 3. Prueba estadístico Sana: se realiza como experimento estadístico. De acuerdo con la especificación formal, un subconjunto representativo de la trayectoria de la entrada-salida del software se selecciona y se prueba. Esta muestra entonces se analiza estadística para producir una estimación de la confiabilidad del software, y un nivel de la confianza en esa estimación. Ventajas Mejoras significativas en la corrección, La confiabilidad Estas ventajas traducen generalmente a una reducción en las faltas de producto campo-experimentadas, reducida duración de ciclo, facilidad del mantenimiento, y vida de un producto más largo.
  • 7. Pasos del método de Cleanroom: Algunos de los procesos que constituyen el acercamiento de Cleanroom son: 1. Análisis de requisitos: produciendo y repasando “especificaciones informales”. 2. Diseño de alto nivel: convertir los requisitos en las máquinas y las funciones del estado 3. Diseño detallado: refinamiento adicional de funciones 4. Codificación por el incremento: código que se convierte y verificarlo que usa métodos informales. Se prohíbe la prueba de compilación del código o de la unidad. 5. Preaprueba por el incremento: generación de los casos de la prueba. 6. Prueba estadística por el incremento: se compila, se liga y se prueba el código. Se validan los resultados.
  • 8. Es la “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”
  • 9. La reingeniería del software involucra diferentes actividades como son: Análisis de inventarios Reestructuración de documentos Ingeniería inversa Reestructuración de programas y datos Ingeniería directa con la finalidad de crear versiones de programas ya existentes que sean de mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.
  • 10. Análisis de Inventarios: El inventario tal vez no sea más que un modelo en una hoja de cálculo que contenga información que proporcione una descripción detallada (tamaño, edad, importancia para el negocio) de las aplicaciones activas. Los candidatos a la reingeniería aparecen cuando se ordena esta información en función de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para el trabajo de reingeniería. Reestructuración de documentos: La documentación debe actualizarse pero se tiene recursos limitados. Se utiliza un enfoque de “documentar cuando se toque”. El sistema es crucial para el negocio y debe volver a documentarse por completo incluso en este caso un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de estas opciones es viable. Una organización de software debe elegir la más apropiada para cada caso.
  • 11. Ingeniería Inversa: es el proceso de análisis de un programa con el fin de crear una representación de programa con un nivel de abstracción más elevado que el código fuente. La Ingeniería inversa es un proceso de recuperación de diseño. Con las herramientas de la ingeniería inversa se extraerá del programa existente información del diseño arquitectónico y de proceso, e información de los datos. Reestructuración de datos: comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se analiza con minuciosidad y se define los modelos de datos necesarios, se identifican los objetivos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes. Ingeniería directa: no solo recupera la información de diseño a partir del software existente, también utiliza esta información para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayoría de los casos el software sometido a reingeniería vuelve a implementar la función del sistema existente y también añade nuevas funciones o mejoras.
  • 12. La Ingeniería de la Web es la aplicación de metodologías sistemáticas, disciplinadas y cuantificables al desarrollo eficiente, operación y evolución de aplicaciones de alta calidad en la World Wide Web En este sentido, la Ingeniería de la Web hace referencia a las metodologías, técnicas y herramientas que se utilizan en el desarrollo de Aplicaciones Web complejas y de gran dimensión en las que se apoya la evaluación, diseño, desarrollo, implementación y evolución de dichas aplicaciones.
  • 13. El desarrollo de Aplicaciones Web posee determinadas características que lo hacen diferente del desarrollo de aplicaciones o software tradicional y sistemas de información. La Ingeniería de la Web es multidisciplinar y aglutina contribuciones de diferentes áreas: Arquitectura de la información ingeniería de hipermedia/hipertexto Ingeniería de requisitos Diseño de interfaz de usuario Usabilidad Diseño gráfico y de presentación Diseño y análisis de sistemas Ingeniería de software Ingeniería de datos Indexado y recuperación de información Testeo Modelado y simulación, Despliegue de aplicaciones Operación de sistemas y gestión de proyectos
  • 14. La Ingeniería de la Web no es un clon o subconjunto de la ingeniería de software aunque ambas incluyen desarrollo de software y programación, pues a pesar de que la Ingeniería de la Web utiliza principios de ingeniería de software, incluye nuevos enfoques, metodologías, herramientas, técnicas, guías y patrones para cubrir los requisitos únicos de las aplicaciones web. Los principales aspectos de la Ingeniería de la Web incluyen, entre otros, los siguientes temas: Diseño de procesos de negocio para aplicaciones web Herramientas CASE para aplicaciones web Generación de código para aplicaciones web Desarrollo web colaborativo Modelado conceptual de aplicaciones web Diseñó de Modelos de datos para sistemas de información web Ingeniería web empírica Entornos de desarrollo de aplicaciones web integrados Herramientas de autor para contenido multimedia Pruebas de rendimiento de aplicaciones basadas en web Personalización y adaptación de aplicaciones web Modelado de procesos para aplicaciones web Herramientas y métodos de prototipado
  • 15. La ingeniería de software basada en componentes (CBSE) (también conocida como desarrollo basado en componentes(CBD)) es una rama de la ingeniería de software que enfatiza la separación de asuntos (separation of concerns (SoC)) por lo que se refiere a la funcionalidad de amplio rango disponible a través de un sistema de software dado. Es un acercamiento basado en la reutilización para definir, implementar, y componer componentes débilmente acoplados en sistemas. Esta práctica persigue un amplio grado de beneficios tanto en el corto como el largo plazo, para el software en sí mismo y para las organizaciones que patrocinan tal software.
  • 16. Los ingenieros de software consideran los componentes como parte de la plataforma inicial para la orientación a servicios. Los componentes pueden producir o consumir eventos y pueden ser usados para las arquitecturas dirigida por eventos (EDA). Beneficios del Desarrollo de Software Basado en Componentes 1. Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de software. 2. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados. 3. Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre componentes, el desabollador es libre de actualizar y/o agregar componentes según sea necesario, sin afectar otras partes del sistema. 4. Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización, la calidad de una aplicación basada en componentes mejorará con el paso del tiempo
  • 17. Ventajas: El análisis del riesgo se hace de forma explícita y clara; Une los mejores elementos de los restantes modelos. Reduce riesgos del proyecto Incorpora objetivos de calidad Integra el desarrollo con el mantenimiento Desventajas: •Genera mucho tiempo en el desarrollo del sistema Modelo costoso Requiere experiencia en la identificación de riesgos Inconvenientes: Genera mucho trabajo adicional. Cuando un sistema falla se pierde tiempo y coste dentro de la empresa. Exige una cierta habilidad en los analistas (es bastante difícil).
  • 18. Los sistemas críticos son sistemas técnicos o socio-técnicos de los cuales dependen las personas o los negocios. Si estos sistemas no ofrecen sus servicios de la forma esperada, pueden provocar graves problemas y pérdidas importantes.
  • 19. Hay tres tipos principales de sistemas críticos: 1. Sistemas de seguridad críticos. Son sistemas cuyo fallo de funcionamiento puede provocar perjuicio, pérdida de vidas o daños graves al medio ambiente. ambiente. Un ejemplo de un sistema de seguridad crítico es un sistema de control para una planta de fabricación de productos químicos. 2. Sistemas de misión críticos. Son sistemas cuyo fallo de funcionamiento puede provocar errores en algunas actividades dirigidas por objetivos. Un ejemplo de de un sistema de misión crítico es un sistema de navegación para una nave espacial. 3. Sistemas de negocio críticos. Son sistemas cuyo fallo de funcionamiento puede provocar costes muy elevados para el negocio que utiliza un sistema de este tipo. Un ejemplo de un sistema de negocio crítico es un sistema de cuentas bancarias.
  • 20. La propiedad más importante de un sistema crítico es su confiabilidad. El término confiabilidad fue propuesto por Laprie 1995 para hacer referencia a las siguientes propiedades relacionadas de los sistemas: disponibilidad, fiabilidad, seguridad y protección. Existen varias razones por las que la confiabilidad es la propiedad más importante de los sistemas críticos: 1.- Los sistemas que son no fiables, inseguros o desprotegidos son rechazados a me- nudo por sus usuarios. Si los usuarios no confían en un sistema, se negarán a utilizarlo. Es más, también rehusarán comprar o utilizar productos de la misma compañía que produjo el sistema no confiable, puesto que creen que éstos tampoco son confiables.
  • 21. 2.- Los sistemas no confiables pueden provocar pérdida de información. Es muy cara la captura y mantenimiento de los datos; algunas veces cuesta más que el sistema informático que los procesa. Se tiene que hacer un gran esfuerzo e invertir mucho dinero para duplicar los datos importantes a fin de protegerlos de cualquier corrupción. 3.- Los costes de los fallos de funcionamiento del sistema pueden ser enormes. En algunas aplicaciones, como un sistema de control de reactores o un sistema de navegación aérea, el coste de un fallo en el sistema es mayor en varios órdenes de magnitud que el coste de dicho sistema de control.
  • 22. Conclusión A medida que se van creando más aplicaciones en la computadora, se despiertan otras inquietudes, por lo que la capacidad de los recursos disponibles se ve saturada. Por esto es importante hacer un buen de estos recursos, procurando aprovecharlos al máximo mediante la tecnología más adecuada que garantice el éxito en las tareas emprendidas. Los diferentes topicos mencionados anteriormente tienen como objetivo brindar una línea de acción en la definición y construcción de un sistema de información, por lo que a través de su conocimiento y aplicación se podrán obtener diversas experiencias, que permitirán al usuario desarrollar cada vez más y mejores sistemas.