SlideShare ist ein Scribd-Unternehmen logo
1 von 55
UNIDAD I.
FUNDAMENTOS DE
INGENIERÍA DE
SOFTWARE
CONCEPTOS BÁSICOS
¿Qué es el software?
• Es el producto que diseñan y construyen los ingenieros del software. Esto
abarca programas que se ejecutan dentro de una computadora de
cualquier tamaño y arquitectura, documentos virtuales e impresos y datos
que combinan números, texto, audio, video e imágenes.
¿Quién lo hace?
• Los ingenieros de software lo construyen, y virtualmente cualquier
persona en el mundo industrializado lo utiliza bien directa o
indirectamente.
¿Porqué es importante?
¿Cuáles son los pasos?
APLICACIONES DEL
SOFTWARE
Puede aplicarse en cualquier situación donde se haya
definido previamente un conjunto específico de pasos
procedimentales.
•Software de sistemas
•Software de tiempo real
•Software de gestión
•Software de ingeniería y científico
PRODUCTO DE
SOFTWARE
Son sistemas de software junto a la
documentación que describe cómo instalarlo y
usarlo.
• Documentación de requerimientos
• Documentación de diseño
• Código fuente
• Planes de prueba del sistema
• Principios de operación
• Instrucciones de instalación
• Procedimientos de mantenimiento
• Manuales de usuario
CATEGORÍAS DE
SOFTWARELos productos de software se pueden dividir en dos
grupos:
•Productos genéricos: desarrollados para un mercado.
•Productos a la medida: encargados por un cliente.
La diferencia entre uno y otro:
•En los genéricos, la organización que desarrolla el software controla
su especificación.
•En los otros, por lo general es desarrollada y controlada por la
organización que está comprando el software.
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 daños 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.
INGENIERÍA DE
SOFTWARE
El término “Ingeniería del software” surge a final de los años 60
dentro de una conferencia dedicada a “la crisis del software”.
Se define como:
•“La disciplina tecnológica relacionada con la producción sistemática y el
mantenimiento de productos de software que son desarrollados y
modificados en el tiempo previsto y dentro de los costos estimados”.
Su objetivo es producir productos de software.
OTROS CONCEPTOS
Ingeniería del software:
• Conjunto de métodos, herramientas y procedimientos para
producir software de gran calidad. [R. Pressman]
Los métodos describen cómo construir técnicamente el
software. Comprende las actividades de:
•Planificación y estimación de proyectos
•Análisis de requisitos
•Diseño
•Codificación
•Prueba
•Mantenimiento
Las herramientas dan soporte semiautomático a los métodos.
Los procedimientos relacionan formalmente los métodos y las
herramientas.
CALIDAD DE SOFTWARE
La calidad del software es una noción que puede ser
descrita mediante una serie de factores, que pueden
ser:
• Externos: observables por los usuarios del producto.
• Internos: observables por profesionales de la computación.
FACTORES EXTERNOS
Corrección: capacidad de los productos de software de ejecutar
sus tareas tal como están definidas en su especificación de
requerimientos.
Robustez: capacidad de un sistema de software para funcionar en
situaciones anormales.
Modificabilidad: facilidad de un producto para adaptarse al
cambio de especificaciones.
Reusabilidad: facilidad para ser reutilizado en todo o en parte
para nuevas aplicaciones.
Compatibilidad: facilidad de los productos de software para
combinarse unos con otros.
Eficiencia: buen uso de los recursos de software y hardware
disponibles.
FACTORES EXTERNOS
Portabilidad: facilidad para adaptarse a otros entornos de software o hardware.
Verificabilidad: facilidad para preparar procedimientos de aceptación, en particular
datos de prueba, para detectar fallos durante las fases de validación y operación.
Integridad: capacidad de un sistema para proteger sus documentos (programas,
datos) contra accesos y modificaciones no autorizados.
Facilidad de uso: capacidad de aprender a manejar un sistema de software, operar
con el, preparar datos de entrada, interpretar resultados, etc.
FACTORES INTERNOS
Modularidad: independencia funcional de los
componentes del programa.
Legibilidad: facilidad de lectura e
interpretación del código del programa.
EL PROCESO DEL
SOFTWARE
¿Qué es un proceso de software?
Es un conjunto de actividades, acciones y tareas que se
ejecutan cuando va a crearse algún producto del trabajo.
• Una actividad busca lograr un objetivo amplio y se desarrolla sin
importar el dominio de la aplicación.
• Una acción es un conjunto de tareas que producen un producto
importante del trabajo.
• Una tarea se centra en un objetivo pequeño pero bien definido que
produce un resultado tangible.
ACTIVIDADES DEL
PROCESO DE
SOFTWAREUna estructura de proceso general para la ingeniería de software consta
de las siguientes actividades:
• Planificación
• Análisis
• Diseño
• Implementación
• Pruebas
• Instalación o Despliegue
• Uso y mantenimiento
Comunicación: comunicarse con los clientes para entender los objetivos.
Planeación: Cualquier viaje se simplifica si existe un mapa. Para el desarrollo de
software el mapa es el plan del proyecto de software.
Modelado: crear un bosquejo del objeto por hacer con el fin de entender el
panorama.
Construcción: generación de código y pruebas para descubrir errores.
Despliegue: entrega al consumidor para su evaluación.
PLANIFICACIÓN
Delimitación del ámbito del proyecto
Realización de un estudio de viabilidad
Análisis de los riesgos asociados al proyecto
Estimación del costo del proyecto
Planificación temporal y la asignación de
recursos a las distintas etapas del proyecto.
ANÁLISIS
Técnicas de elicitación de requerimientos
• Incluye desde el cliente que paga el proyecto hasta los usuarios finales de la
aplicación.
• Sin olvidarse de terceras personas, empresas competidoras y organismos
reguladores.
Herramientas de modelado de sistemas.
• Ayudan a comunicar la estructura de un sistema complejo
• Sirven para especificar el comportamiento deseado del sistema
• Ayudan a comprender mejor lo que estamos diseñando
• Permiten descubrir oportunidades de simplificación y de reutilización
Metodologías de análisis de requerimientos.
DISEÑO
Un software bien diseñado debe exhibir determinadas características.
Su diseño debería ser modular
Sus módulos deberían ser cohesivos (encargarse de una tarea concreta y sólo de una) y estar
débilmente acoplados entre sí (para facilitar el mantenimiento del sistema).
Cada módulo debería ofrecer a los demás unas interfaces bien definidos y ocultar sus detalles
de implementación.
Debe ser posible relacionar las decisiones de diseño tomadas con los requerimientos del
sistema que las ocasionaron.
Diseños mas comunes
•Arquitecturas multicapa
•Arquitecturas cliente/servidor
IMPLEMENTACIÓN
Antes de escribir una sola línea de código (o
de crear una tabla en nuestra base de datos)
es fundamental haber comprendido bien el
problema que se pretende resolver y haber
aplicado principios básicos de diseño que nos
permitan construir un sistema de información
de calidad.
• Herramientas adecuadas
• Un entorno de desarrollo que facilite nuestro trabajo
• Un lenguaje de programación apropiado para el tipo
de sistema que vayamos a construir.
PRUEBAS
Errar es humano y la etapa de pruebas tiene como
objetivo detectar los errores que se hayan podido
cometer en las etapas anteriores del proyecto (y,
eventualmente, corregirlos).
• Las pruebas de unidad
• Las pruebas de integración
• Pruebas alfa
• Pruebas beta
• Test de aceptación
• Revisiones
INSTALACIÓN/DESPLIEG
UE
Una vez concluidas las etapas de desarrollo de un sistema de
información (análisis, diseño, implementación y pruebas), llega el
instante de que poner el sistema en funcionamiento, su instalación o
despliegue.
De cara a su instalación, hemos de planificar el entorno en el que el
sistema debe funcionar, tanto hardware como software: equipos
necesarios y su configuración física, redes de interconexión entre los
equipos y de acceso a sistemas externos, sistemas operativos
(actualizados para evitar problemas de seguridad), bibliotecas y
componentes suministrados por terceras partes, etcétera.
USO Y MANTENIMIENTO
La etapa de mantenimiento consume típicamente del 40 al 80 por
ciento de los recursos de una empresa de desarrollo de software.
De hecho, con un 60% de media, es probablemente la etapa más
importante del ciclo de vida del software.
Dada la naturaleza del software, que ni se rompe ni se desgasta
con el uso, su mantenimiento incluye tres facetas diferentes:
•Eliminar los defectos que se detecten durante su vida útil (mantenimiento correctivo)
•Adaptarlo a nuevas necesidades (mantenimiento adaptativo)
•Añadirle nueva funcionalidad (mantenimiento perfectivo),
CICLO DE VIDA
Sucesión de etapas por las que atraviesa un producto software a lo largo
de su desarrollo y existencia.
Existen distintas formas, paradigmas o modelos de ciclo de vida de
software:
•Clásico o cascada
•Prototipado.
•Evolutivo o en espiral.
•Combinación de estilos, etc.
Alternativamente, a veces se usan los términos
“Ciclo de vida”, y “Modelo de ciclo de vida”
CICLO DE VIDA
CLÁSICO O CASCADA
Propuesto por W. Royce a principios de los 70.
Aplicación secuencial de una serie de pasos.
Cada paso genera entradas y documentación
para la siguiente.
MODELO EN CASCADA
REAL
CRÍTICAS AL CICLO DE
VIDA CLÁSICO
Proyectos raramente siguen el ciclo de vida secuencial.
Dificultad para establecer los requerimientos al principio de
proceso.
Errores detectados tardíamente.
Mantenimiento por parcheado (corregir según se presenten
los problemas).
PROTOTIPADO
Prototipear consiste en construir una
versión inicial de un producto, el cual se
describe la interacción hombre-máquina
sin implementar completamente la
funcionalidad del sistema (prototipo sin
funcionalidad).
Utilidad:
•Ayuda a los analistas a establecer las necesidades
del cliente.
•Ayuda a los desarrolladores a mejorar los productos.
CLASES DE
PROTOTIPOS
Vertical: desarrolla completamente algunas de las
facetas del producto.
Horizontal: desarrolla parcialmente todas las facetas del
producto.
Evolutivo: la versión final es el producto ya construido.
Desechable: se usa solo para la captación de
requerimientos y funcionalidad.
OBSERVACIONES
SOBRE EL
PROTOTIPADO
Facilita la captación de los requerimientos del cliente.
Reduce el riesgo de parcheado del producto final.
La construcción del prototipo supone una inversión adicional.
El cliente ve funcionando una versión de lo que será su programa
sin asumir que dicha versión no es robusta ni completa.
EVOLUTIVO O EN
ESPIRAL
El desarrollo en espiral fue definido por primera vez por
Barry Boehm en 1986.
Las actividades de este modelo se conforman en una
espiral, en la que cada bucle o iteración representa un
conjunto de actividades.
Las actividades no están fijadas a ninguna prioridad, sino
que las siguientes se eligen en función del análisis de
riesgo, comenzando por el bucle interior.
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, etc.
Además es posible tener en cuenta mejoras y nuevos requerimientos sin
romper con la metodología, ya que este ciclo de vida no es rígido ni estático.
DESVENTAJAS
Genera mucho tiempo en el desarrollo
del sistema
Modelo costoso
Requiere experiencia en la identificación
de riesgos
OTROS TIPOS DE
MODELADO
Modelo incremental
Modelo DRA
Modelo en “Y”
Proceso Unificado de Rational (RUP)
Metodología ágil
Scrum
Programación extrema
¿QUÉ MODELO
UTILIZAR?
Para sistemas bien conocidos se puede utilizar el Modelo de
Cascada. La fase de análisis de riesgos es relativamente fácil
Con requisitos estables y sistemas de seguridad críticos, se
recomienda utilizar modelos formales
Con especificaciones incompletas, el modelo de prototipado
ayuda a identificarlos y va produciendo un sistema funcional
Pueden utilizarse modelos híbridos en distintas partes del
desarrollo
CLASIFICACIÓN DE LA
TECNOLOGÍA EN EL
DESARROLLO DE
SOFTWARE
Una de las tareas del ingeniero de software es la de seleccionar la
mejor tecnología para el tipo de proyecto a desarrollar.
Definimos tecnología de software como un conjunto integrado de
notaciones, herramientas y métodos, basados en unos sólidos
fundamentos, que permiten el desarrollo de un producto software en
un contexto organizativo dado.
Una tecnología de software puede considerarse constituida por los
siguientes componentes:
TECNOLOGÍAS DE
SOFTWARE
Las dos mas importantes son:
• Tecnologías de desarrollo
estructurado
• Tecnologías orientadas a objetos
TECNOLOGÍA
ESTRUCTURADA
Las tecnologías de desarrollo estructurado son las más convencionales de las
empleadas hoy día. Han surgido de la evolución de las ideas de programación
estructurada (hace más de veinticinco años) hacia las fases iniciales del ciclo de
vida.
La idea base de esta tecnología es que es posible estructurar el modelo de un
sistema de software en base a funciones que procesan información que reciben
de otras funciones (o del exterior) y dirigen la información procesada a otros
módulos funcionales (o al exterior).
El enfoque seguido, por tanto, es el de pensar en las funciones del sistema
necesarias (extraídas de los requisitos del sistema) y luego en los datos que
requieren.
TECNOLOGÍAS
ORIENTADOS A
OBJETOSLas tecnologías de desarrollo estructurado han demostrado sus
limitaciones a la hora de organizar y facilitar la evolución de sistemas de
software complejos.
La descomposición en funciones hace difícil al diseñador mantener la
relación con los objetos del mundo real sobre los que se modifican
generalmente los requisitos del usuario.
Los métodos de descomposición orientada a objetos constituyen la
tendencia más influyente observada en la ingeniería de sistemas de
software en los últimos años.
Con ellos nos referimos a un conjunto de métodos (aún en fase de
desarrollo o evolución) que permiten al analista y diseñador concebir su
sistema identificando clases de objetos, operaciones permitidas y
relaciones entre ellos como base para la estructura del sistema a diseñar.
¿Cuáles son las ventajas de un lenguaje
orientado a objetos?
• Fomenta la reutilización y extensión del código.
• Permite crear sistemas más complejos.
• Relacionar el sistema al mundo real.
• Facilita la creación de programas visuales.
• Construcción de prototipos
• Agiliza el desarrollo de software
• Facilita el trabajo en equipo
• Facilita el mantenimiento del software
HERRAMIENTAS CASE
Utilizamos las computadoras en nuestras vidas sin pensarlo.
•TV´s, microondas, cajeros automáticos, etc.
Desde que se inició la creación de software, surgió la necesidad de
herramientas que automatizaran el proceso.
Traductores, recopiladores, ensambladores, procesadores de
macros, etc.
•Estas aplicaciones provocaron una gran demanda por desarrollar software.
Se creo una gran cantidad de software que necesitaba
mantenimiento y actualización.
Causo muchos problemas a la industria de software, ya que no
podía cubrir la demanda con los métodos que se utilizaban.
•Crisis de software
Se crearon metodologías para intentar crear estándares de
desarrollo.
Además se creó un soporte automatizado para el desarrollo y
mantenimiento de software,
•Computer Aided Software Engineering (CASE)
¿QUÉ SON LAS
HERRAMIENTAS CASE?
Son un conjunto de programas y ayudas que
dan asistencia a los analistas, ingenieros de
software y desarrolladores, durante todos los
pasos del Ciclo de Vida de desarrollo de un
Software.
También se pueden definir como:•Conjunto de métodos, utilidades y técnicas que facilitan la
automatización del ciclo de vida del desarrollo de sistemas
de información, completamente o en alguna de sus fases.
VENTAJAS
La mejor razón para la creación de estas herramientas fue el
incremento en la velocidad de desarrollo de los sistemas.
Por esto, las compañías pudieron desarrollar sistemas sin encarar el
problema de tener cambios en las necesidades del negocio, antes de
finalizar el proceso de desarrollo.
También permite a las compañías competir más efectivamente usando
estos sistemas desarrollados nuevamente para compararlos con sus
necesidades de negocio actuales. En un mercado altamente
competitivo, esto puede hacer la diferencia entre el éxito y el fracaso.
Las herramientas CASE también permiten a los analistas
tener más tiempo para el análisis y diseño y minimizar
el tiempo para codificar y probar.
Además permiten:
•Verificar el uso de todos los elementos en el sistema
diseñado.
•Automatizar el dibujo de diagramas.
•Ayudar en la documentación del sistema.
•Ayudar en la creación de relaciones en la Base de Datos.
CLASIFICACIÓN DE
HERRAMIENTAS CASE
No existe una única clasificación de herramientas
CASE y, en ocasiones, es difícil incluirlas en una clase
determinada. Podrían clasificarse atendiendo a:
•Las plataformas que soportan.
•Las fases del ciclo de vida del desarrollo de sistemas que cubren.
•La arquitectura de las aplicaciones que producen.
•Su funcionalidad.
FASES DEL CICLO DE
VIDA QUE CUBREN
Herramientas integradas, I-CASE (Integrated CASE, CASE integrado):
abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son
llamadas también CASE workbench.
Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o
front-end, orientadas a la automatización y soporte de las actividades
desarrolladas durante las primeras fases del desarrollo: análisis y diseño.
Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-
end, dirigidas a las últimas fases del desarrollo: construcción e
implantación.
Juegos de herramientas o Tools-Case, son el tipo más simple de
herramientas CASE. Automatizan una fase dentro del ciclo de vida.
Dentro de este grupo se encontrarían las herramientas de reingeniería,
orientadas a la fase de mantenimiento.
Tipo de
CASE
Ventajas Desventajas
I – CASE • Integra el ciclo de vida.
• Permite lograr importantes
mejoras de productividad a
mediano plazo.
• Permite un eficiente soporte al
mantenimiento de sistemas.
• Mantiene la consistencia de los
sistemas a nivel corporativo.
• No es tan eficiente para
soluciones simples, sino
para soluciones complejas.
• Depende del Hardware y del
Software.
• Es costoso.
Upper CASE • Se utiliza en plataforma PC, es
aplicable a diferentes entornos.
• Menor costo.
• Permite mejorar la calidad
de los sistemas, pero no
mejora la productividad.
• No permite la integración
del ciclo de vida.
Lower CASE • Permite lograr importantes
mejoras de productividad a
corto plazo.
• Permite un eficiente soporte al
mantenimiento de sistemas.
• No garantiza la consistencia
de los resultados a nivel
corporativo.
• No garantiza la eficiencia
del Análisis y Diseño.
• No permite la integración
del ciclo de vida.
DE ACUERDO A SU
FUNCIONALIDAD
Herramientas de planificación de sistemas de gestión.
Herramientas de análisis y diseño.
Herramientas de programación.
Herramientas de integración y prueba.
Herramientas de gestión de prototipos.
Herramientas de mantenimiento.
Herramientas de gestión de proyectos.
Herramientas de soporte.
COMPONENTES DE UNA
CASE
Repositorio: Base de datos central de una herramienta CASE. La mayoría de
herramientas CASE poseen un repositorio propio o bien trabajan sobre un
repositorio suministrado por otro fabricante o vendedor.
Módulos de diagramación y modelización: Algunos de los diagramas y
modelos utilizados con mayor frecuencia son:
•Diagrama de flujo de datos.
•Modelo entidad - interrelación.
•Historia de la vida de las entidades.
•Diagrama Estructura de datos.
•Diagrama Estructura de cuadros.
•Técnicas matriciales.
Herramienta de prototipado: El objetivo principal de esta herramienta es
poder mostrar al usuario, desde los momentos iniciales del diseño, el
aspecto que tendrá la aplicación una vez desarrollada.
Generador de código: Normalmente se suele utilizar sobre ordenadores
personales o estaciones de trabajo, por lo que el paso posterior del código
al host puede traer problemas, al tener que compilar en ambos entornos.
Las características más importantes de los generadores de código son:
•Lenguaje generado
•Portabilidad de código
•Generación del esqueleto del programa
Módulo generador de documentación: El módulo generador
de la documentación se alimenta del repositorio para
transcribir las especificaciones allí contenidas.
Algunas características de los generadores de
documentación son:
•Generación automática a partir de los datos del repositorio
•Combinación de información textual y gráfica
•Generación de referencias cruzadas.
•Ayuda de tratamiento de textos

Weitere ähnliche Inhalte

Was ist angesagt?

Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructuraProf. Javier Troya
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionAbner Gerardo
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rupmireya2022
 
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
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativoIan Berzeker Tovar
 
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 WATCHPerozoAlejandro
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Sesión 2: Visión General. El proceso del software
Sesión 2: Visión General. El proceso del softwareSesión 2: Visión General. El proceso del software
Sesión 2: Visión General. El proceso del softwareCoesi Consultoria
 

Was ist angesagt? (20)

Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
Prueba de Caja Blanca
Prueba de Caja BlancaPrueba de Caja Blanca
Prueba de Caja Blanca
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Requerimientos del software
Requerimientos del software Requerimientos del software
Requerimientos del software
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructura
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacion
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
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
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativo
 
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
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Sesión 2: Visión General. El proceso del software
Sesión 2: Visión General. El proceso del softwareSesión 2: Visión General. El proceso del software
Sesión 2: Visión General. El proceso del software
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 

Andere mochten auch

Procesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareProcesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareRaquel Solano
 
Ingenieria en software
Ingenieria en softwareIngenieria en software
Ingenieria en softwareEl Tory
 
Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de software481200601
 
Material Apoyo Ingenieria del Software USAL Argentina
Material Apoyo Ingenieria del Software USAL ArgentinaMaterial Apoyo Ingenieria del Software USAL Argentina
Material Apoyo Ingenieria del Software USAL ArgentinaSusana Daldin
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadVictor Cones
 
Unidad 1 (1.3) Fundamentos de ingeniería de software
Unidad 1 (1.3) Fundamentos de ingeniería de software Unidad 1 (1.3) Fundamentos de ingeniería de software
Unidad 1 (1.3) Fundamentos de ingeniería de software Selins Cassiel
 
Unidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareUnidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareMary Carmen
 
CALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTRE
CALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTRECALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTRE
CALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTREJuan Raul Vergara
 
Pp valuacion por puntos
Pp valuacion por puntosPp valuacion por puntos
Pp valuacion por puntosyelymil
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
 
2008 Raquis
2008 Raquis2008 Raquis
2008 RaquisForlizzi
 
Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para DummiesSorey García
 
Que Es Un Erp Y Ejemplos
Que Es Un Erp Y EjemplosQue Es Un Erp Y Ejemplos
Que Es Un Erp Y EjemplosLeticia Molina
 

Andere mochten auch (20)

Procesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareProcesos De Ingenieria Del Software
Procesos De Ingenieria Del Software
 
(Inmer)La Ingenieria de Software
(Inmer)La Ingenieria de Software(Inmer)La Ingenieria de Software
(Inmer)La Ingenieria de Software
 
Ingenieria en software
Ingenieria en softwareIngenieria en software
Ingenieria en software
 
Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de software
 
Material Apoyo Ingenieria del Software USAL Argentina
Material Apoyo Ingenieria del Software USAL ArgentinaMaterial Apoyo Ingenieria del Software USAL Argentina
Material Apoyo Ingenieria del Software USAL Argentina
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Unidad 1 (1.3) Fundamentos de ingeniería de software
Unidad 1 (1.3) Fundamentos de ingeniería de software Unidad 1 (1.3) Fundamentos de ingeniería de software
Unidad 1 (1.3) Fundamentos de ingeniería de software
 
Unidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareUnidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de Software
 
Treminacion del trabajo v
Treminacion del trabajo vTreminacion del trabajo v
Treminacion del trabajo v
 
Administración de Proyectos en la Ingeniería de Software
Administración de Proyectos en la Ingeniería de SoftwareAdministración de Proyectos en la Ingeniería de Software
Administración de Proyectos en la Ingeniería de Software
 
El despido
El despidoEl despido
El despido
 
CALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTRE
CALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTRECALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTRE
CALIDAD DE SOFTWARE-SOLO SEPTIMO SEMESTRE
 
Pp valuacion por puntos
Pp valuacion por puntosPp valuacion por puntos
Pp valuacion por puntos
 
DESPIDO LABORAL
DESPIDO LABORALDESPIDO LABORAL
DESPIDO LABORAL
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
2008 Raquis
2008 Raquis2008 Raquis
2008 Raquis
 
Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
NORMA 830
NORMA 830NORMA 830
NORMA 830
 
Que Es Un Erp Y Ejemplos
Que Es Un Erp Y EjemplosQue Es Un Erp Y Ejemplos
Que Es Un Erp Y Ejemplos
 

Ähnlich wie Unidad 1 Ingenieria de software

Ähnlich wie Unidad 1 Ingenieria de software (20)

Unidad 1 ing de software
Unidad 1 ing de softwareUnidad 1 ing de software
Unidad 1 ing de software
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdf
 
Inf 162
Inf 162Inf 162
Inf 162
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de software
 
Software
SoftwareSoftware
Software
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Software
SoftwareSoftware
Software
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
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
 
Tic
TicTic
Tic
 
Omar,luis,daniel
Omar,luis,danielOmar,luis,daniel
Omar,luis,daniel
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Actividad 1
Actividad 1Actividad 1
Actividad 1
 
Taller de Programación Distribuida
Taller de Programación DistribuidaTaller de Programación Distribuida
Taller de Programación Distribuida
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definiciones
 
Siste deinf
Siste deinfSiste deinf
Siste deinf
 
Tarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computadorTarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computador
 

Kürzlich hochgeladen

entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasDerlyValeriaRodrigue
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstDavidRojas870673
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.pptjacnuevarisaralda22
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosandersonsubero28
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potableFabricioMogroMantill
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheElisaLen4
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfgonzalo195211
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxwilliam801689
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfElisaLen4
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESJHONJAIROVENTURASAUC
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdfSantiagoRodriguez598818
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...WeslinDarguinHernand
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptRobertoCastao8
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalaciónQualityAdviceService
 

Kürzlich hochgeladen (20)

entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdf
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptx
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 

Unidad 1 Ingenieria de software

  • 2. CONCEPTOS BÁSICOS ¿Qué es el software? • Es el producto que diseñan y construyen los ingenieros del software. Esto abarca programas que se ejecutan dentro de una computadora de cualquier tamaño y arquitectura, documentos virtuales e impresos y datos que combinan números, texto, audio, video e imágenes. ¿Quién lo hace? • Los ingenieros de software lo construyen, y virtualmente cualquier persona en el mundo industrializado lo utiliza bien directa o indirectamente. ¿Porqué es importante? ¿Cuáles son los pasos?
  • 3. APLICACIONES DEL SOFTWARE Puede aplicarse en cualquier situación donde se haya definido previamente un conjunto específico de pasos procedimentales. •Software de sistemas •Software de tiempo real •Software de gestión •Software de ingeniería y científico
  • 4. PRODUCTO DE SOFTWARE Son sistemas de software junto a la documentación que describe cómo instalarlo y usarlo. • Documentación de requerimientos • Documentación de diseño • Código fuente • Planes de prueba del sistema • Principios de operación • Instrucciones de instalación • Procedimientos de mantenimiento • Manuales de usuario
  • 5. CATEGORÍAS DE SOFTWARELos productos de software se pueden dividir en dos grupos: •Productos genéricos: desarrollados para un mercado. •Productos a la medida: encargados por un cliente. La diferencia entre uno y otro: •En los genéricos, la organización que desarrolla el software controla su especificación. •En los otros, por lo general es desarrollada y controlada por la organización que está comprando el software.
  • 6. 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 daños 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.
  • 7. INGENIERÍA DE SOFTWARE El término “Ingeniería del software” surge a final de los años 60 dentro de una conferencia dedicada a “la crisis del software”. Se define como: •“La disciplina tecnológica relacionada con la producción sistemática y el mantenimiento de productos de software que son desarrollados y modificados en el tiempo previsto y dentro de los costos estimados”. Su objetivo es producir productos de software.
  • 8. OTROS CONCEPTOS Ingeniería del software: • Conjunto de métodos, herramientas y procedimientos para producir software de gran calidad. [R. Pressman]
  • 9. Los métodos describen cómo construir técnicamente el software. Comprende las actividades de: •Planificación y estimación de proyectos •Análisis de requisitos •Diseño •Codificación •Prueba •Mantenimiento Las herramientas dan soporte semiautomático a los métodos. Los procedimientos relacionan formalmente los métodos y las herramientas.
  • 10. CALIDAD DE SOFTWARE La calidad del software es una noción que puede ser descrita mediante una serie de factores, que pueden ser: • Externos: observables por los usuarios del producto. • Internos: observables por profesionales de la computación.
  • 11. FACTORES EXTERNOS Corrección: capacidad de los productos de software de ejecutar sus tareas tal como están definidas en su especificación de requerimientos. Robustez: capacidad de un sistema de software para funcionar en situaciones anormales. Modificabilidad: facilidad de un producto para adaptarse al cambio de especificaciones. Reusabilidad: facilidad para ser reutilizado en todo o en parte para nuevas aplicaciones. Compatibilidad: facilidad de los productos de software para combinarse unos con otros. Eficiencia: buen uso de los recursos de software y hardware disponibles.
  • 12. FACTORES EXTERNOS Portabilidad: facilidad para adaptarse a otros entornos de software o hardware. Verificabilidad: facilidad para preparar procedimientos de aceptación, en particular datos de prueba, para detectar fallos durante las fases de validación y operación. Integridad: capacidad de un sistema para proteger sus documentos (programas, datos) contra accesos y modificaciones no autorizados. Facilidad de uso: capacidad de aprender a manejar un sistema de software, operar con el, preparar datos de entrada, interpretar resultados, etc.
  • 13. FACTORES INTERNOS Modularidad: independencia funcional de los componentes del programa. Legibilidad: facilidad de lectura e interpretación del código del programa.
  • 14. EL PROCESO DEL SOFTWARE ¿Qué es un proceso de software? Es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse algún producto del trabajo. • Una actividad busca lograr un objetivo amplio y se desarrolla sin importar el dominio de la aplicación. • Una acción es un conjunto de tareas que producen un producto importante del trabajo. • Una tarea se centra en un objetivo pequeño pero bien definido que produce un resultado tangible.
  • 15. ACTIVIDADES DEL PROCESO DE SOFTWAREUna estructura de proceso general para la ingeniería de software consta de las siguientes actividades: • Planificación • Análisis • Diseño • Implementación • Pruebas • Instalación o Despliegue • Uso y mantenimiento Comunicación: comunicarse con los clientes para entender los objetivos. Planeación: Cualquier viaje se simplifica si existe un mapa. Para el desarrollo de software el mapa es el plan del proyecto de software. Modelado: crear un bosquejo del objeto por hacer con el fin de entender el panorama. Construcción: generación de código y pruebas para descubrir errores. Despliegue: entrega al consumidor para su evaluación.
  • 16. PLANIFICACIÓN Delimitación del ámbito del proyecto Realización de un estudio de viabilidad Análisis de los riesgos asociados al proyecto Estimación del costo del proyecto Planificación temporal y la asignación de recursos a las distintas etapas del proyecto.
  • 17. ANÁLISIS Técnicas de elicitación de requerimientos • Incluye desde el cliente que paga el proyecto hasta los usuarios finales de la aplicación. • Sin olvidarse de terceras personas, empresas competidoras y organismos reguladores. Herramientas de modelado de sistemas. • Ayudan a comunicar la estructura de un sistema complejo • Sirven para especificar el comportamiento deseado del sistema • Ayudan a comprender mejor lo que estamos diseñando • Permiten descubrir oportunidades de simplificación y de reutilización Metodologías de análisis de requerimientos.
  • 18. DISEÑO Un software bien diseñado debe exhibir determinadas características. Su diseño debería ser modular Sus módulos deberían ser cohesivos (encargarse de una tarea concreta y sólo de una) y estar débilmente acoplados entre sí (para facilitar el mantenimiento del sistema). Cada módulo debería ofrecer a los demás unas interfaces bien definidos y ocultar sus detalles de implementación. Debe ser posible relacionar las decisiones de diseño tomadas con los requerimientos del sistema que las ocasionaron. Diseños mas comunes •Arquitecturas multicapa •Arquitecturas cliente/servidor
  • 19. IMPLEMENTACIÓN Antes de escribir una sola línea de código (o de crear una tabla en nuestra base de datos) es fundamental haber comprendido bien el problema que se pretende resolver y haber aplicado principios básicos de diseño que nos permitan construir un sistema de información de calidad. • Herramientas adecuadas • Un entorno de desarrollo que facilite nuestro trabajo • Un lenguaje de programación apropiado para el tipo de sistema que vayamos a construir.
  • 20. PRUEBAS Errar es humano y la etapa de pruebas tiene como objetivo detectar los errores que se hayan podido cometer en las etapas anteriores del proyecto (y, eventualmente, corregirlos). • Las pruebas de unidad • Las pruebas de integración • Pruebas alfa • Pruebas beta • Test de aceptación • Revisiones
  • 21. INSTALACIÓN/DESPLIEG UE Una vez concluidas las etapas de desarrollo de un sistema de información (análisis, diseño, implementación y pruebas), llega el instante de que poner el sistema en funcionamiento, su instalación o despliegue. De cara a su instalación, hemos de planificar el entorno en el que el sistema debe funcionar, tanto hardware como software: equipos necesarios y su configuración física, redes de interconexión entre los equipos y de acceso a sistemas externos, sistemas operativos (actualizados para evitar problemas de seguridad), bibliotecas y componentes suministrados por terceras partes, etcétera.
  • 22. USO Y MANTENIMIENTO La etapa de mantenimiento consume típicamente del 40 al 80 por ciento de los recursos de una empresa de desarrollo de software. De hecho, con un 60% de media, es probablemente la etapa más importante del ciclo de vida del software. Dada la naturaleza del software, que ni se rompe ni se desgasta con el uso, su mantenimiento incluye tres facetas diferentes: •Eliminar los defectos que se detecten durante su vida útil (mantenimiento correctivo) •Adaptarlo a nuevas necesidades (mantenimiento adaptativo) •Añadirle nueva funcionalidad (mantenimiento perfectivo),
  • 23. CICLO DE VIDA Sucesión de etapas por las que atraviesa un producto software a lo largo de su desarrollo y existencia. Existen distintas formas, paradigmas o modelos de ciclo de vida de software: •Clásico o cascada •Prototipado. •Evolutivo o en espiral. •Combinación de estilos, etc. Alternativamente, a veces se usan los términos “Ciclo de vida”, y “Modelo de ciclo de vida”
  • 25. CLÁSICO O CASCADA Propuesto por W. Royce a principios de los 70. Aplicación secuencial de una serie de pasos. Cada paso genera entradas y documentación para la siguiente.
  • 27. CRÍTICAS AL CICLO DE VIDA CLÁSICO Proyectos raramente siguen el ciclo de vida secuencial. Dificultad para establecer los requerimientos al principio de proceso. Errores detectados tardíamente. Mantenimiento por parcheado (corregir según se presenten los problemas).
  • 28. PROTOTIPADO Prototipear consiste en construir una versión inicial de un producto, el cual se describe la interacción hombre-máquina sin implementar completamente la funcionalidad del sistema (prototipo sin funcionalidad). Utilidad: •Ayuda a los analistas a establecer las necesidades del cliente. •Ayuda a los desarrolladores a mejorar los productos.
  • 29. CLASES DE PROTOTIPOS Vertical: desarrolla completamente algunas de las facetas del producto. Horizontal: desarrolla parcialmente todas las facetas del producto. Evolutivo: la versión final es el producto ya construido. Desechable: se usa solo para la captación de requerimientos y funcionalidad.
  • 30. OBSERVACIONES SOBRE EL PROTOTIPADO Facilita la captación de los requerimientos del cliente. Reduce el riesgo de parcheado del producto final. La construcción del prototipo supone una inversión adicional. El cliente ve funcionando una versión de lo que será su programa sin asumir que dicha versión no es robusta ni completa.
  • 31. EVOLUTIVO O EN ESPIRAL El desarrollo en espiral fue definido por primera vez por Barry Boehm en 1986. Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa un conjunto de actividades. Las actividades no están fijadas a ninguna prioridad, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.
  • 32.
  • 33.
  • 34. 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, etc. Además es posible tener en cuenta mejoras y nuevos requerimientos sin romper con la metodología, ya que este ciclo de vida no es rígido ni estático.
  • 35. DESVENTAJAS Genera mucho tiempo en el desarrollo del sistema Modelo costoso Requiere experiencia en la identificación de riesgos
  • 36. OTROS TIPOS DE MODELADO Modelo incremental Modelo DRA Modelo en “Y” Proceso Unificado de Rational (RUP) Metodología ágil Scrum Programación extrema
  • 37. ¿QUÉ MODELO UTILIZAR? Para sistemas bien conocidos se puede utilizar el Modelo de Cascada. La fase de análisis de riesgos es relativamente fácil Con requisitos estables y sistemas de seguridad críticos, se recomienda utilizar modelos formales Con especificaciones incompletas, el modelo de prototipado ayuda a identificarlos y va produciendo un sistema funcional Pueden utilizarse modelos híbridos en distintas partes del desarrollo
  • 38. CLASIFICACIÓN DE LA TECNOLOGÍA EN EL DESARROLLO DE SOFTWARE Una de las tareas del ingeniero de software es la de seleccionar la mejor tecnología para el tipo de proyecto a desarrollar. Definimos tecnología de software como un conjunto integrado de notaciones, herramientas y métodos, basados en unos sólidos fundamentos, que permiten el desarrollo de un producto software en un contexto organizativo dado. Una tecnología de software puede considerarse constituida por los siguientes componentes:
  • 39.
  • 40. TECNOLOGÍAS DE SOFTWARE Las dos mas importantes son: • Tecnologías de desarrollo estructurado • Tecnologías orientadas a objetos
  • 41. TECNOLOGÍA ESTRUCTURADA Las tecnologías de desarrollo estructurado son las más convencionales de las empleadas hoy día. Han surgido de la evolución de las ideas de programación estructurada (hace más de veinticinco años) hacia las fases iniciales del ciclo de vida. La idea base de esta tecnología es que es posible estructurar el modelo de un sistema de software en base a funciones que procesan información que reciben de otras funciones (o del exterior) y dirigen la información procesada a otros módulos funcionales (o al exterior). El enfoque seguido, por tanto, es el de pensar en las funciones del sistema necesarias (extraídas de los requisitos del sistema) y luego en los datos que requieren.
  • 42. TECNOLOGÍAS ORIENTADOS A OBJETOSLas tecnologías de desarrollo estructurado han demostrado sus limitaciones a la hora de organizar y facilitar la evolución de sistemas de software complejos. La descomposición en funciones hace difícil al diseñador mantener la relación con los objetos del mundo real sobre los que se modifican generalmente los requisitos del usuario. Los métodos de descomposición orientada a objetos constituyen la tendencia más influyente observada en la ingeniería de sistemas de software en los últimos años. Con ellos nos referimos a un conjunto de métodos (aún en fase de desarrollo o evolución) que permiten al analista y diseñador concebir su sistema identificando clases de objetos, operaciones permitidas y relaciones entre ellos como base para la estructura del sistema a diseñar.
  • 43. ¿Cuáles son las ventajas de un lenguaje orientado a objetos? • Fomenta la reutilización y extensión del código. • Permite crear sistemas más complejos. • Relacionar el sistema al mundo real. • Facilita la creación de programas visuales. • Construcción de prototipos • Agiliza el desarrollo de software • Facilita el trabajo en equipo • Facilita el mantenimiento del software
  • 44. HERRAMIENTAS CASE Utilizamos las computadoras en nuestras vidas sin pensarlo. •TV´s, microondas, cajeros automáticos, etc. Desde que se inició la creación de software, surgió la necesidad de herramientas que automatizaran el proceso. Traductores, recopiladores, ensambladores, procesadores de macros, etc. •Estas aplicaciones provocaron una gran demanda por desarrollar software. Se creo una gran cantidad de software que necesitaba mantenimiento y actualización.
  • 45. Causo muchos problemas a la industria de software, ya que no podía cubrir la demanda con los métodos que se utilizaban. •Crisis de software Se crearon metodologías para intentar crear estándares de desarrollo. Además se creó un soporte automatizado para el desarrollo y mantenimiento de software, •Computer Aided Software Engineering (CASE)
  • 46. ¿QUÉ SON LAS HERRAMIENTAS CASE? Son un conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software. También se pueden definir como:•Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases.
  • 47. VENTAJAS La mejor razón para la creación de estas herramientas fue el incremento en la velocidad de desarrollo de los sistemas. Por esto, las compañías pudieron desarrollar sistemas sin encarar el problema de tener cambios en las necesidades del negocio, antes de finalizar el proceso de desarrollo. También permite a las compañías competir más efectivamente usando estos sistemas desarrollados nuevamente para compararlos con sus necesidades de negocio actuales. En un mercado altamente competitivo, esto puede hacer la diferencia entre el éxito y el fracaso.
  • 48. Las herramientas CASE también permiten a los analistas tener más tiempo para el análisis y diseño y minimizar el tiempo para codificar y probar. Además permiten: •Verificar el uso de todos los elementos en el sistema diseñado. •Automatizar el dibujo de diagramas. •Ayudar en la documentación del sistema. •Ayudar en la creación de relaciones en la Base de Datos.
  • 49. CLASIFICACIÓN DE HERRAMIENTAS CASE No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a: •Las plataformas que soportan. •Las fases del ciclo de vida del desarrollo de sistemas que cubren. •La arquitectura de las aplicaciones que producen. •Su funcionalidad.
  • 50. FASES DEL CICLO DE VIDA QUE CUBREN Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back- end, dirigidas a las últimas fases del desarrollo: construcción e implantación. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de mantenimiento.
  • 51. Tipo de CASE Ventajas Desventajas I – CASE • Integra el ciclo de vida. • Permite lograr importantes mejoras de productividad a mediano plazo. • Permite un eficiente soporte al mantenimiento de sistemas. • Mantiene la consistencia de los sistemas a nivel corporativo. • No es tan eficiente para soluciones simples, sino para soluciones complejas. • Depende del Hardware y del Software. • Es costoso. Upper CASE • Se utiliza en plataforma PC, es aplicable a diferentes entornos. • Menor costo. • Permite mejorar la calidad de los sistemas, pero no mejora la productividad. • No permite la integración del ciclo de vida. Lower CASE • Permite lograr importantes mejoras de productividad a corto plazo. • Permite un eficiente soporte al mantenimiento de sistemas. • No garantiza la consistencia de los resultados a nivel corporativo. • No garantiza la eficiencia del Análisis y Diseño. • No permite la integración del ciclo de vida.
  • 52. DE ACUERDO A SU FUNCIONALIDAD Herramientas de planificación de sistemas de gestión. Herramientas de análisis y diseño. Herramientas de programación. Herramientas de integración y prueba. Herramientas de gestión de prototipos. Herramientas de mantenimiento. Herramientas de gestión de proyectos. Herramientas de soporte.
  • 53. COMPONENTES DE UNA CASE Repositorio: Base de datos central de una herramienta CASE. La mayoría de herramientas CASE poseen un repositorio propio o bien trabajan sobre un repositorio suministrado por otro fabricante o vendedor. Módulos de diagramación y modelización: Algunos de los diagramas y modelos utilizados con mayor frecuencia son: •Diagrama de flujo de datos. •Modelo entidad - interrelación. •Historia de la vida de las entidades. •Diagrama Estructura de datos. •Diagrama Estructura de cuadros. •Técnicas matriciales.
  • 54. Herramienta de prototipado: El objetivo principal de esta herramienta es poder mostrar al usuario, desde los momentos iniciales del diseño, el aspecto que tendrá la aplicación una vez desarrollada. Generador de código: Normalmente se suele utilizar sobre ordenadores personales o estaciones de trabajo, por lo que el paso posterior del código al host puede traer problemas, al tener que compilar en ambos entornos. Las características más importantes de los generadores de código son: •Lenguaje generado •Portabilidad de código •Generación del esqueleto del programa
  • 55. Módulo generador de documentación: El módulo generador de la documentación se alimenta del repositorio para transcribir las especificaciones allí contenidas. Algunas características de los generadores de documentación son: •Generación automática a partir de los datos del repositorio •Combinación de información textual y gráfica •Generación de referencias cruzadas. •Ayuda de tratamiento de textos