SlideShare una empresa de Scribd logo
1 de 34
UNIVERSIDAD TECNICA DEL NORTE
FACULTAD DE INGENIERIA EN CIENCIAS APLICADAS
CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES
Ing. Pablo Landeta López
INTRODUCCION Y DEFINICIONES
Cómo desarrollamos sistemas?
• Se detecta la necesidad de iniciar un proyecto.- Varias
restricciones son originadas en esta fase
• Se reúnen los requerimientos del usuario .- El centro de
atención es la Funcionalidad.
• Se planea el proyecto.- Repartiendo la funcionalidad
deseada el el tiempo y presupuesto disponibles.
• Se diseña la aplicación.- De acuerdo a la especificación técnica de los
requerimientos funcionales
• Se desarrolla y se prueba el software.- La prioridad es cubrir la funcionalidad
acordada.
• Se libera y se pone en operación al nuevo sistema.- Todos conocen por fin el
nuevo sistema y..
INTRODUCCION Y DEFINICIONES
Resultados típicos:
• Los usuarios: Sienten lento el sistema, lo encuentran difícil de usar,
experimentan interrupciones en el servicio.
• Los operadores: Tienen dificultad para ponerlo en
ejecución y para diagnosticar y detectar fallos. Se dan
cuenta de que no soporta la carga real.
• Los programadores: Se encuentran con problemas al
agregar nueva funcionalidad.
• El área de pruebas: encuentra un sistema difícil de probar
• Los gerentes y áreas de negocio: No sienten que el sistema esté obteniendo
resultados con la eficiencia esperada.
• Los promotores: No sienten que el sistema se atractivo, encuentran rechazo
por parte de los usuarios / clientes.
• Los directivos: No sienten que la inversión haya dado los resultados que
esperaban.
INTRODUCCION Y DEFINICIONES
Significado:
El sistema no tiene la calidad esperada
La razón:
• Nunca se pudo atención en la calidad del sistema en las fases de
desarrollo.
• Muchas veces las expectativas de calidad no eran ni siquiera conocidas al
comenzar el desarrollo.
INTRODUCCION Y DEFINICIONES
La culpa?
El negocio dice: Esto es responsabilidad de sistemas … y con muchas razón
Sistemas dice: Nada de esto venía en los requerimientos!! … y también con
mucha razón.
INTRODUCCION Y DEFINICIONES
Problemas:
• Relacionados con requerimientos no funcionales: rendimiento,
disponibilidad, confiabilidad, etc.
• No se puede identificar al responsable (culpable)
• No son defectos de programación, sino malas
decisiones: protocolos, seguridad, escalabilidad,
rendimiento, etc.
• Existe un brecha natural de comunicación entre las áreas de negocio y los
desarrolladores.
• Hay decisiones que ninguno de ellos puede tomar de manera
independiente.
Origen del problema:
INTRODUCCION Y DEFINICIONES
Necesidad:
• Darle a la calidad del software la misma importancia que a la funcionalidad
• El análisis y diseño basados únicamente en la funcionalidad no nos permiten
expresar correctamente las necesidades de calidad del software
Análisis y diseño tienen distinto enfoque:
Contexto del
problema
Contexto de la
solución
INTRODUCCION Y DEFINICIONES
Solución:
• La disciplina de la Arquitectura del software
• Funciona como enlace entre el Análisis y Diseño.
Contexto del
problema
Contexto de la
solución
• Introduce al proceso de desarrollo la atención hacia la calidad del software.
Análisis de
requerimientos
Diseño de
software
Arquitectura
de software
INTRODUCCION Y DEFINICIONES
Por qué la Arquitectura?:
• Analogía: Arquitectos, ingenieros, y constructores. Diversos perfiles,
pero complementarios
• La Arquitectura de Software no es sobre objetos o páginas o pantallas o
algoritmos.
• La Arquitectura de Software no es sobre como construir software, sino que
software construir (o reutilizar o comprar).
INTRODUCCION Y DEFINICIONES
Arquitectura en una construcción es una estructura física. Pero tenemos muchos
atributos (forma en que se adapta al ambiente y se integra a otros edificios, el
grado en que cumple su propósito y satisface al propietario, la estética, el efecto
visual interno y externo).
También son las miles de decisiones (grandes y pequeñas). Algunas se toman en la
etapa inicial del diseño y tienen efecto en las demás acciones. Otras se toman
más adelante
Es importante porque no es posible construir una casa sin un plano. Tampoco se
empieza los planos con el dibujo de la plomería. Antes de los detalles es
necesario tener un panorama general. Eso hace el diseño arquitectónico: da el
panorama y asegura que sea el correcto.
INTRODUCCION Y DEFINICIONES
En el Software Engineering Institute se agrupan muchas definiciones
http://www.sei.cmu.edu/architecture/definitions.html
- lugar en el ciclo de vida
- configuración o topología estática
- vista del sistema con sus componentes principales
- estructura global de control: protocolos, sincronización, funcionalidad a
elementos de diseño, distribución física, escalabilidad, performance.
- puente entre requerimiento y código
Ingeniería del software IEEE 610.12.1990:
La aplicación de una estrategia sistemática, disciplinada y cuantificable
al desarrollo, aplicación y mantenimiento del software; esto es, la
aplicación de la ingeniería al software.
Definición oficial: IEEE Std 1471-2000
La Arquitectura de Software es la organización fundamental de un
sistema encarnada en sus componentes, las relaciones entre ellos y el
ambiente y los principios que orientan su diseño y evolución.
INTRODUCCION Y DEFINICIONES
Al hablar de componentes de software puede ser un módulo de programa, una
clase orientada a objetos, puede incluir bases de datos y middleware, etc.
Las propiedades de los componentes son las características necesarias para
entender comp interactuan unos componentes con otros.
Las relaciones entre componentes pueden ser una invocación de procedimientos
de un módulo a otro o protocolos de acceso a base de datos.
La arquitectura permite:
 Analizar la efectividad del diseño pra cumplir los requerimientos establecidos
 Considerar alternativas arquitectonicas en un etapa en la que hacer cambios
de diseño es todavía relativamente fácil
 Reducir los riesgos asociados en la construcción de software
INTRODUCCION Y DEFINICIONES
La diferencia entre AS e IS: la noción clave de la AS es la organización (un
concepto cualitativo o estructural), mientras que la IS tiene fundamentalmente
que ver con una sistematicidad susceptible de cuantificarse.
El énfasis de la solución del ingeniero de software se encuentra en los aspectos
técnicos. La del arquitecto en el contexto del negocio.
La razón principal de la Arquitectura de Software reside en el que el análisis y
diseño no son suficientes para resolver el problema. En la mayoría de los sistemas
empresariales es muy importante tomar en cuenta los requerimientos no
funcionales conocidos también como Atributos de Calidad.
INTRODUCCION Y DEFINICIONES
Beneficios de la arquitectura del software:
• Aumenta la predictibilidad de la calidad del producto final
• Abre la oportunidad de detectar riesgos en una fase temprana del ciclo de
desarrollo.
• Las representaciones de la arquitectura del software fomentan una
comunicación eficiente y oportuna entre interesados y desarrolladores.
• La arquitectura resalta las primeras decisiones que tendrán un efecto profundo
en todo el trabajo de ingeniería de software siguiente y en el éxito del sistema
• La arquitectura se constituye en un modelo pequeño y asequible sobre como
esta estructurado el sistema.
INTRODUCCION Y DEFINICIONES
Como se logra todo esto?
• Al reconocer que no es suficiente con identificar los
requerimientos funcionales sino que también hay otras
influencias que determinan el éxito de un sistema. La
arquitectura las identifica y trabaja con ellas
• El diseño de la arquitectura comienza con el diseño de los
datos y continua con la obtención de una o más
representaciones de la estructura arquitectónica del
sistema.
• Se analizan alternativas de estilos o patrones
arquitectónicos para llegar a la estructura más adecuada
para los requerimientos del usuario y para los atributos de
calidad.
• Seleccionada la alternativa se elabora la arquitectura usando un método de
diseño.
• Se crea un modelo de la arquitectura que incluye la arquitectura de los datos y
la estructura del programa. Se describen las relaciones entre componentes.
INTRODUCCION Y DEFINICIONES
Influencias de la Arquitectura del software:
• Los Involucrados o interesados en el sistema (stakeholders)
• La organización misma
• El ambiente tecnológico
• La experiencia de los arquitectos
• El contexto gubernamental y legal
Influencia: Stakeholders
• La gente que ideó el proyecto
• La que la va a financiar
• La que la va a usar
• La que recibirá los beneficios
• La que lo va a diseñar
• La que lo va a desarrollar
• La que lo va a probar
• La que lo va a operar
• La que lo va a promocionar
• La que lo va a dar soporte técnico.
INTRODUCCION Y DEFINICIONES
Influencia: la organización:
• Procesos y políticas del negocio
• Infraestructura tecnológica
• Tiempos y presupuestos
• Recursos humanos y materiales
• Nivel de experiencia del equipo de desarrollo
Influencia: el ambiente tecnológico:
• Tecnologías de moda
• Hardware disponible
• Patrones arquitectónicos
• Disponibilidad de productos de terceros
• Tendencias de la industria
• Expertos y consultores
• Servicios de outsourcing existentes
Influencia: experiencia de arquitectos:
• Con todo constante, dos arquitectos
trabajando por separado nunca
diseñarían una arquitectura idéntica.
Cada quien utilizaría las técnicas y
herramientas que le han sido útiles en
el pasado
INTRODUCCION Y DEFINICIONES
Requerimientos funcionales: Lo que el sistema debe proveer. Estos definen que
es lo que el usuario necesita y no el como lo hace. Es el conjunto de
características y capacidades del programa.
Estos requerimientos se desprenden del Diagrama de Contexto del sistema a
través de Procesos del negocio (persiste en el tiempo) y Casos de Uso (interacción
particular del usuario)
INTRODUCCION Y DEFINICIONES
Atributos de calidad (requerimientos no funcionales):
La funcionalidad puede ser la misma, pero las características de calidad no.
• Desempeño o rendimiento: Se mide con base a la velocidad de procesamiento,
el tiempo de respuesta. El grado en que el sistema responde a un cierto evento
es decir la eficiencia.
• Disponibilidad: grado de operabilidad del sistema. Recuperación en eventos.
• Seguridad: que no produce consecuencias fatales.
• Escalabilidad: propiedad de un sistema que indica su habilidad para reaccionar
y adaptarse, o bien manejar el crecimiento continuo de trabajo de manera
fluida, o para estar preparado para hacerse más grande sin perder calidad.
INTRODUCCION Y DEFINICIONES
Atributos de calidad (requerimientos no funcionales):
• Usabilidad: que tan fácil es la operación del sistema, es decir se toma en
cuenta factores humanos, la estética, la consistencia.
• Fiabilidad o Confiabilidad: Propiedad de un sistema tal que se puede confiar
justificablemente en los servicios que este presta. Se evalúa con la medición
de la frecuencia y gravedad de la fallas, exactitud de resultados, capacidad de
recuperación.
• Mantenibilidad: la capacidad del programa para ser ampliable (extensibilidad),
adaptable y servicial; además que pueda probarse, ser compatible y
configurable.
No todo atributo de calidad de software se pondera por igual al diseñarlo. Una
aplicación tal vez aborde a lo funcional con énfasis en la seguridad. Otra quizá
busque el rendimiento enfocándose en la velocidad de procesamiento.
INTRODUCCION Y DEFINICIONES
Drivers de arquitectura: Son los escenarios (funcionales + atributos de calidad)
críticos y significativos que nos permiten modelar, comunicar y evaluar la
arquitectura: generalmente estos son los requerimientos más prioritarios de los
stakeholders.
INTRODUCCION Y DEFINICIONES
Calidad
La calidad es un concepto complejo y de facetas múltiples que puede describirse
desde cinco puntos de vista:
o Punto de vista trascendental: La calidad es algo que se reconoce de inmediato,
pero que no es posible definir explícitamente.
o Punto de vista del usuario: concibe la calidad en términos de sus metas
específicas
o Punto de vista del fabricante: la define en términos de las especificaciones
originales del producto. Si las cumple tiene calidad.
o Punto de vista del producto: la calidad tiene que ver con las características
inherentes (funciones y características) de un producto.
o Punto de vista del valor: Mide de acuerdo con lo que un cliente esta dispuesto
a pagar por un producto.
INTRODUCCION Y DEFINICIONES
Calidad
En el desarrollo de software la calidad del diseño incluye el grado en que el
diseño cumple las funciones y características especificadas en el modelo de
requerimientos. La calidad de la conformidad se centra en el grado en el que la
implementación se apega al diseño y en el que el sistema resultante cumple sus
metas de requerimientos y desempeño.
Se puede plantear una relación más intuitiva:
Satisfacción del usuario = producto que funciona + buena calidad + entrega dentro del presupuesto y plazo
Si el usuario esta satisfecho nada más importa, es decir este punto de vista de la
calidad afirma que si un producto de software beneficia mucho a los usuarios
finales, estos podrían estar dispuestos a tolerar problemas ocasionales de
confiabilidad y desempeño.
INTRODUCCION Y DEFINICIONES
Calidad
Se puede definir a la calidad del software como un proceso eficaz que se aplica
de manera que crea un producto útil que proporciona valor medible a quienes lo
producen y a quienes lo utilizan.
 Proceso eficaz: administración del proceso, prácticas de ingeniería del
software, la administración del cambio y revisiones técnicas.
 Producto útil: funciones y características de forma confiable y sin errores.
Satisface los requerimientos establecidos
 Agregar valor: la organización que elabora el software obtiene valor agregado
porque el software de calidad requiere menos esfuerzo de mantenimiento,
menos errores que corregir, menos asistencia. Para el usuario final significa
mayores utilidades, más rentabilidad y mejor disponibilidad.
INTRODUCCION Y DEFINICIONES
Factores de la Calidad ISO 9126
Este estandar se desarrollo con la intención de identificar los atributos clave del
software. Identifica 6 atributos clave de calidad:
 Funcionalidad: grado en que el software satisface las necesidades planteadas
 Confiabilidad: Cantidad de tiempo que el software se encuentra disponible.
 Usabilidad: Grado en que el software es fácil de usar
 Eficiencia: Grado en que el software emplea óptimamente los recursos
 Facilidad de mantenimiento: facilidad con la que pueden realizarse
reparaciones al software (analizable, cambiable, estable, fácil para pruebas)
 Portabilidad: Facilidad con la que un software puede llevarse de un ambiente a
otro (adaptable, instalable, conformidad y sustituible)
INTRODUCCION Y DEFINICIONES
Ejemplo: Factores de la Calidad que se persiguen en la interfaz
Para hacer una evaluación se necesita determinar atributos específicos y
medibles de la interfaz:
Intuitiva: Grado en que la interfaz sigue patrones de uso esperados, de modo que
hasta un novato lo pueda usar sin mucha capacitación.
Eficiencia: Grado en que es posible localizar o iniciar las operaciones y la
información.
Robustez: Grado en que el software maneja
entradas erróneas de datos o en el que se
presenta interacción inapropiada por parte del
usuario
Riqueza: Grado en que la interfaz provee un
conjunto abundante de características.
INTRODUCCION Y DEFINICIONES
Dilema de la calidad del software
Si produce un software de mala calidad, usted pierde porque nadie lo querrá
comprar.
Si dedica un esfuerzo infinito (tiempo y dinero) para generar un elemento
perfecto de software, entonces tomará tanto tiempo terminarlo y será tan caro
que de igual manera terminará fuera del negocio.
En cualquier caso habrá perdido la ventana
del mercado, o habrá agotado sus recursos.
Las personas tratan de situarse en es punto
medio donde el producto es
suficientemente bueno para para no ser
rechazado de inmediato, pero tampoco un
objeto perfeccionista.
INTRODUCCION Y DEFINICIONES
Software lo suficientemente bueno
Es aceptable producir software lo suficientemente bueno?.. La pregunta debe ser
que sí, de hecho las principales compañías de software lo hacen a diario. Crean
software con errores detectados y lo distribuyen a una gran población de usuarios
finales. Reconocen que algunas funciones de la versión 1.0 tal vez no sean de la
calidad más alta y planean hacer mejoras en la versión 2.0.
El software lo suficientemente bueno contiene las funciones y características de
alta calidad que desean los usuarios, pero al mismo tiempo contiene errores
conocidos. El vendedor espera que la mayoría de usuarios finales perdone los
errores gracias que están muy contentos con la funcionalidad de la aplicación.
INTRODUCCION Y DEFINICIONES
Software lo suficientemente bueno
Esto puede funcionar para ciertos dominios de aplicación y para algunas
compañías grandes de software.
Pero en una compañía pequeña hay que tener cuidado. Al entregar un producto
bueno (pero defectuoso) corre el riesgo de causar un daño permanente re
reputación a su compañía. Tal vez no llegue a entregar una versión 2.0 porque la
empresa se puede derrumbar antes de lograrlo.
En casos como software automotriz o de telecomunicaciones, entregar software
con errores conocidos se convierte en una negligencia y puede crear litigios
legales o incluso puede ser un delito.
INTRODUCCION Y DEFINICIONES
Costo de la calidad
No hay dudad que la calidad tiene un costo,
pero la mala calidad también lo tiene.
El costo de la calidad puede dividirse en los
costos asociados con la prevención, la
evaluación y la falla.
• Prevención: costo de actividades de administración para planear y coordinar las
actividades de control, costo de actividades técnicas agregadas para desarrollar
modelos completos de los requerimientos y del diseño, costos de capacitación
• Evaluación: costo de efectuar revisiones técnicas, costo de recopilar datos y
unidades de medida, costo de hacer pruebas y depurar
• De falla: costo por repeticiones, costos por efectos colaterales, costo de
unidades de medida de calidad, costos por solución de quejas, devoluciones,
sustitución de productos, garantía.
INTRODUCCION Y DEFINICIONES
Riesgos de la mala calidad
Lo perjudicial de la aplicaciones mal diseñadas e implementadas no siempre se
mide en dólares y tiempo.
Ejemplo: En noviembre del 2000, en un hospital de Panamá, 28 pacientes
recibieron dosis masivas de rayos gama durante un tratamiento contra cáncer.
Meses después 5 pacientes murieron por envenenamiento radiactivo 15 quedaron
con complicaciones serias.
Que ocasionó la tragedia?: Un paquete de software
desarrollado por una compañía estadounidense, que
fue modificado por técnicos del hospital para
calcular la dosis de radiación para cada paciente.
Los tres médicos panameños que modificaron el
software fueron acusados de asesinato en segundo
grado.
La empresa desarrolladora enfrentó litigios legales
en dos países.
INTRODUCCION Y DEFINICIONES
Calidad y seguridad
El software que no tiene calidad es fácil de penetrar por parte de intrusos, en
consecuencia el software de mala calidad aumenta indirectamente el riesgo de
seguridad con los costos y problemas que conlleva.
Para construir un sistema seguro hay que centrarse en la calidad, y eso debe
comenzar durante el diseño.
Al eliminar las fallas de arquitectura (con lo que
mejora la calidad del software) será más difícil que
intrusos penetren en el software.
INTRODUCCION Y DEFINICIONES
Lograr la calidad del software
La calidad del software no solo se ve, es el resultado de una buena administración
del proyecto y de una correcta práctica de ingeniería de software. Se pueden
considerar 4 actividades para lograr una alta calidad.
 Métodos de la arquitectura del software: Se debe entender el problema que se
quiere resolver. Para esto se debe lograr un buen diseño que esté de acuerdo
con el problema.
 Técnicas de administración de proyectos: usar estimaciones para verificar que
las fechas pueden cumplirse, la planeación del riesgo es fundamental.
 Control de calidad: revisión de modelos para garantizar consistencia,
inspeccionar el código para descubrir y corregir errores antes de las pruebas,
etc.
 Aseguramiento de la calidad: funciones de auditoría y reportes para evaluar la
eficacia de las acciones de control de calidad.
INTRODUCCION Y DEFINICIONES
En conclusión la AS es:
- Vista estructural de alto nivel
- Define estilo o combinación de estilos para una solución
- Se concentra en requerimientos no funcionales (los funcionales requieren
modelado y diseño de la aplicación)
- Escencial para el éxito o fracaso de un proyecto
Lo hace: Un Ingeniero de software puede diseñar tanto los datos como la
arquitectura pero en sistemas grandes y complejos es necesario un especialista.
El Arquitecto del software selecciona un estilo arquitectónico a partir de los
requerimientos obtenidos durante el análisis de los datos
Se ocupa de:
- Diseño preliminar de alto nivel y su efectividad
- Organización a alto nivel del sistema: descrición y análisis de propiedades,
de estructura y control global, protocolos de comunicación y sincronización,
distribución física, componentes, etc.
- Aspectos del desarrollo, evolución y adaptación: composición, reutilización,
escalabilidad, mantenimiento.

Más contenido relacionado

La actualidad más candente

Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de softwareDiaxz Salgado
 
Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwarealberto calatayu
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos bren1995
 
Fundamentos de la arquitectura del software
Fundamentos de la arquitectura del softwareFundamentos de la arquitectura del software
Fundamentos de la arquitectura del softwareEnder Christense
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareJulio Pari
 
Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...
Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...
Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...Karim Krystalgami
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo iCathy Guevara
 
Introducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareIntroducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareSorey García
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de softwareJose Diaz Silva
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 
200809 - RUP y Patrones de Software en CMMi Technical Solution
200809 - RUP y Patrones de Software en CMMi Technical Solution200809 - RUP y Patrones de Software en CMMi Technical Solution
200809 - RUP y Patrones de Software en CMMi Technical SolutionJavier Gonzalez-Sanchez
 
PSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwarePSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwareFranklin Parrales Bravo
 
Eq11 Traducción Cap3 Hallows Defining The Project
Eq11 Traducción Cap3 Hallows Defining The ProjectEq11 Traducción Cap3 Hallows Defining The Project
Eq11 Traducción Cap3 Hallows Defining The Projectmarcos_0887
 
Proceso de desarrollo de software
Proceso de desarrollo de softwareProceso de desarrollo de software
Proceso de desarrollo de softwareduberlisg
 

La actualidad más candente (20)

Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Sdf p4
Sdf p4Sdf p4
Sdf p4
 
Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del software
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
 
Fundamentos de la arquitectura del software
Fundamentos de la arquitectura del softwareFundamentos de la arquitectura del software
Fundamentos de la arquitectura del software
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de software
 
Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...
Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...
Investigación sobre técnicas que se implementan en las tareas de la Ingenierí...
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo i
 
Introducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareIntroducción a la Ingenieria de Software
Introducción a la Ingenieria de Software
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de software
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
200809 - RUP y Patrones de Software en CMMi Technical Solution
200809 - RUP y Patrones de Software en CMMi Technical Solution200809 - RUP y Patrones de Software en CMMi Technical Solution
200809 - RUP y Patrones de Software en CMMi Technical Solution
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
PSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwarePSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de software
 
Eq11 Traducción Cap3 Hallows Defining The Project
Eq11 Traducción Cap3 Hallows Defining The ProjectEq11 Traducción Cap3 Hallows Defining The Project
Eq11 Traducción Cap3 Hallows Defining The Project
 
Is.1p.5 arquitectura de software
Is.1p.5 arquitectura de softwareIs.1p.5 arquitectura de software
Is.1p.5 arquitectura de software
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Proceso de desarrollo de software
Proceso de desarrollo de softwareProceso de desarrollo de software
Proceso de desarrollo de software
 
1. rol del ingeniero del software
1.  rol del ingeniero del software1.  rol del ingeniero del software
1. rol del ingeniero del software
 

Similar a 1_1 Introduccion

PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de Softwareeeencalada
 
Comprensión de los Requerimientos
Comprensión de los Requerimientos Comprensión de los Requerimientos
Comprensión de los Requerimientos Mauricio Blandon
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdfssuser20fade
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfBibliotecaenlineaUNI
 
IngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdfIngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdfAnaliaEC
 
Análisis de Sistemas
Análisis de SistemasAnálisis de Sistemas
Análisis de SistemasT.I.C
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literariodiegos08
 
Tareas de ingenieria de requerimientos(1)
Tareas de ingenieria de requerimientos(1)Tareas de ingenieria de requerimientos(1)
Tareas de ingenieria de requerimientos(1)nenyta08
 

Similar a 1_1 Introduccion (20)

PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
Pracicas de Ingenieria de Software
Pracicas de Ingenieria de SoftwarePracicas de Ingenieria de Software
Pracicas de Ingenieria de Software
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
 
Comprensión de los Requerimientos
Comprensión de los Requerimientos Comprensión de los Requerimientos
Comprensión de los Requerimientos
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdf
 
IngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdfIngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdf
 
Plan
PlanPlan
Plan
 
Análisis de Sistemas
Análisis de SistemasAnálisis de Sistemas
Análisis de Sistemas
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literario
 
Tareas de ingenieria de requerimientos(1)
Tareas de ingenieria de requerimientos(1)Tareas de ingenieria de requerimientos(1)
Tareas de ingenieria de requerimientos(1)
 
Ciclo de Vida y roles
Ciclo de Vida y roles Ciclo de Vida y roles
Ciclo de Vida y roles
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 

Más de landeta_p

4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologiaslandeta_p
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónicolandeta_p
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónicolandeta_p
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
2 diseño de la arquitectura
2 diseño de la arquitectura2 diseño de la arquitectura
2 diseño de la arquitecturalandeta_p
 
1 4 estandares
1 4 estandares1 4 estandares
1 4 estandareslandeta_p
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 

Más de landeta_p (10)

4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologias
 
3 2 bpm
3 2 bpm3 2 bpm
3 2 bpm
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
2 diseño de la arquitectura
2 diseño de la arquitectura2 diseño de la arquitectura
2 diseño de la arquitectura
 
1 4 estandares
1 4 estandares1 4 estandares
1 4 estandares
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 

Último

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 

Último (20)

Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 

1_1 Introduccion

  • 1. UNIVERSIDAD TECNICA DEL NORTE FACULTAD DE INGENIERIA EN CIENCIAS APLICADAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES Ing. Pablo Landeta López
  • 2. INTRODUCCION Y DEFINICIONES Cómo desarrollamos sistemas? • Se detecta la necesidad de iniciar un proyecto.- Varias restricciones son originadas en esta fase • Se reúnen los requerimientos del usuario .- El centro de atención es la Funcionalidad. • Se planea el proyecto.- Repartiendo la funcionalidad deseada el el tiempo y presupuesto disponibles. • Se diseña la aplicación.- De acuerdo a la especificación técnica de los requerimientos funcionales • Se desarrolla y se prueba el software.- La prioridad es cubrir la funcionalidad acordada. • Se libera y se pone en operación al nuevo sistema.- Todos conocen por fin el nuevo sistema y..
  • 3. INTRODUCCION Y DEFINICIONES Resultados típicos: • Los usuarios: Sienten lento el sistema, lo encuentran difícil de usar, experimentan interrupciones en el servicio. • Los operadores: Tienen dificultad para ponerlo en ejecución y para diagnosticar y detectar fallos. Se dan cuenta de que no soporta la carga real. • Los programadores: Se encuentran con problemas al agregar nueva funcionalidad. • El área de pruebas: encuentra un sistema difícil de probar • Los gerentes y áreas de negocio: No sienten que el sistema esté obteniendo resultados con la eficiencia esperada. • Los promotores: No sienten que el sistema se atractivo, encuentran rechazo por parte de los usuarios / clientes. • Los directivos: No sienten que la inversión haya dado los resultados que esperaban.
  • 4. INTRODUCCION Y DEFINICIONES Significado: El sistema no tiene la calidad esperada La razón: • Nunca se pudo atención en la calidad del sistema en las fases de desarrollo. • Muchas veces las expectativas de calidad no eran ni siquiera conocidas al comenzar el desarrollo.
  • 5. INTRODUCCION Y DEFINICIONES La culpa? El negocio dice: Esto es responsabilidad de sistemas … y con muchas razón Sistemas dice: Nada de esto venía en los requerimientos!! … y también con mucha razón.
  • 6. INTRODUCCION Y DEFINICIONES Problemas: • Relacionados con requerimientos no funcionales: rendimiento, disponibilidad, confiabilidad, etc. • No se puede identificar al responsable (culpable) • No son defectos de programación, sino malas decisiones: protocolos, seguridad, escalabilidad, rendimiento, etc. • Existe un brecha natural de comunicación entre las áreas de negocio y los desarrolladores. • Hay decisiones que ninguno de ellos puede tomar de manera independiente. Origen del problema:
  • 7. INTRODUCCION Y DEFINICIONES Necesidad: • Darle a la calidad del software la misma importancia que a la funcionalidad • El análisis y diseño basados únicamente en la funcionalidad no nos permiten expresar correctamente las necesidades de calidad del software Análisis y diseño tienen distinto enfoque: Contexto del problema Contexto de la solución
  • 8. INTRODUCCION Y DEFINICIONES Solución: • La disciplina de la Arquitectura del software • Funciona como enlace entre el Análisis y Diseño. Contexto del problema Contexto de la solución • Introduce al proceso de desarrollo la atención hacia la calidad del software. Análisis de requerimientos Diseño de software Arquitectura de software
  • 9. INTRODUCCION Y DEFINICIONES Por qué la Arquitectura?: • Analogía: Arquitectos, ingenieros, y constructores. Diversos perfiles, pero complementarios • La Arquitectura de Software no es sobre objetos o páginas o pantallas o algoritmos. • La Arquitectura de Software no es sobre como construir software, sino que software construir (o reutilizar o comprar).
  • 10. INTRODUCCION Y DEFINICIONES Arquitectura en una construcción es una estructura física. Pero tenemos muchos atributos (forma en que se adapta al ambiente y se integra a otros edificios, el grado en que cumple su propósito y satisface al propietario, la estética, el efecto visual interno y externo). También son las miles de decisiones (grandes y pequeñas). Algunas se toman en la etapa inicial del diseño y tienen efecto en las demás acciones. Otras se toman más adelante Es importante porque no es posible construir una casa sin un plano. Tampoco se empieza los planos con el dibujo de la plomería. Antes de los detalles es necesario tener un panorama general. Eso hace el diseño arquitectónico: da el panorama y asegura que sea el correcto.
  • 11. INTRODUCCION Y DEFINICIONES En el Software Engineering Institute se agrupan muchas definiciones http://www.sei.cmu.edu/architecture/definitions.html - lugar en el ciclo de vida - configuración o topología estática - vista del sistema con sus componentes principales - estructura global de control: protocolos, sincronización, funcionalidad a elementos de diseño, distribución física, escalabilidad, performance. - puente entre requerimiento y código Ingeniería del software IEEE 610.12.1990: La aplicación de una estrategia sistemática, disciplinada y cuantificable al desarrollo, aplicación y mantenimiento del software; esto es, la aplicación de la ingeniería al software. Definición oficial: IEEE Std 1471-2000 La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución.
  • 12. INTRODUCCION Y DEFINICIONES Al hablar de componentes de software puede ser un módulo de programa, una clase orientada a objetos, puede incluir bases de datos y middleware, etc. Las propiedades de los componentes son las características necesarias para entender comp interactuan unos componentes con otros. Las relaciones entre componentes pueden ser una invocación de procedimientos de un módulo a otro o protocolos de acceso a base de datos. La arquitectura permite:  Analizar la efectividad del diseño pra cumplir los requerimientos establecidos  Considerar alternativas arquitectonicas en un etapa en la que hacer cambios de diseño es todavía relativamente fácil  Reducir los riesgos asociados en la construcción de software
  • 13. INTRODUCCION Y DEFINICIONES La diferencia entre AS e IS: la noción clave de la AS es la organización (un concepto cualitativo o estructural), mientras que la IS tiene fundamentalmente que ver con una sistematicidad susceptible de cuantificarse. El énfasis de la solución del ingeniero de software se encuentra en los aspectos técnicos. La del arquitecto en el contexto del negocio. La razón principal de la Arquitectura de Software reside en el que el análisis y diseño no son suficientes para resolver el problema. En la mayoría de los sistemas empresariales es muy importante tomar en cuenta los requerimientos no funcionales conocidos también como Atributos de Calidad.
  • 14. INTRODUCCION Y DEFINICIONES Beneficios de la arquitectura del software: • Aumenta la predictibilidad de la calidad del producto final • Abre la oportunidad de detectar riesgos en una fase temprana del ciclo de desarrollo. • Las representaciones de la arquitectura del software fomentan una comunicación eficiente y oportuna entre interesados y desarrolladores. • La arquitectura resalta las primeras decisiones que tendrán un efecto profundo en todo el trabajo de ingeniería de software siguiente y en el éxito del sistema • La arquitectura se constituye en un modelo pequeño y asequible sobre como esta estructurado el sistema.
  • 15. INTRODUCCION Y DEFINICIONES Como se logra todo esto? • Al reconocer que no es suficiente con identificar los requerimientos funcionales sino que también hay otras influencias que determinan el éxito de un sistema. La arquitectura las identifica y trabaja con ellas • El diseño de la arquitectura comienza con el diseño de los datos y continua con la obtención de una o más representaciones de la estructura arquitectónica del sistema. • Se analizan alternativas de estilos o patrones arquitectónicos para llegar a la estructura más adecuada para los requerimientos del usuario y para los atributos de calidad. • Seleccionada la alternativa se elabora la arquitectura usando un método de diseño. • Se crea un modelo de la arquitectura que incluye la arquitectura de los datos y la estructura del programa. Se describen las relaciones entre componentes.
  • 16. INTRODUCCION Y DEFINICIONES Influencias de la Arquitectura del software: • Los Involucrados o interesados en el sistema (stakeholders) • La organización misma • El ambiente tecnológico • La experiencia de los arquitectos • El contexto gubernamental y legal Influencia: Stakeholders • La gente que ideó el proyecto • La que la va a financiar • La que la va a usar • La que recibirá los beneficios • La que lo va a diseñar • La que lo va a desarrollar • La que lo va a probar • La que lo va a operar • La que lo va a promocionar • La que lo va a dar soporte técnico.
  • 17. INTRODUCCION Y DEFINICIONES Influencia: la organización: • Procesos y políticas del negocio • Infraestructura tecnológica • Tiempos y presupuestos • Recursos humanos y materiales • Nivel de experiencia del equipo de desarrollo Influencia: el ambiente tecnológico: • Tecnologías de moda • Hardware disponible • Patrones arquitectónicos • Disponibilidad de productos de terceros • Tendencias de la industria • Expertos y consultores • Servicios de outsourcing existentes Influencia: experiencia de arquitectos: • Con todo constante, dos arquitectos trabajando por separado nunca diseñarían una arquitectura idéntica. Cada quien utilizaría las técnicas y herramientas que le han sido útiles en el pasado
  • 18. INTRODUCCION Y DEFINICIONES Requerimientos funcionales: Lo que el sistema debe proveer. Estos definen que es lo que el usuario necesita y no el como lo hace. Es el conjunto de características y capacidades del programa. Estos requerimientos se desprenden del Diagrama de Contexto del sistema a través de Procesos del negocio (persiste en el tiempo) y Casos de Uso (interacción particular del usuario)
  • 19. INTRODUCCION Y DEFINICIONES Atributos de calidad (requerimientos no funcionales): La funcionalidad puede ser la misma, pero las características de calidad no. • Desempeño o rendimiento: Se mide con base a la velocidad de procesamiento, el tiempo de respuesta. El grado en que el sistema responde a un cierto evento es decir la eficiencia. • Disponibilidad: grado de operabilidad del sistema. Recuperación en eventos. • Seguridad: que no produce consecuencias fatales. • Escalabilidad: propiedad de un sistema que indica su habilidad para reaccionar y adaptarse, o bien manejar el crecimiento continuo de trabajo de manera fluida, o para estar preparado para hacerse más grande sin perder calidad.
  • 20. INTRODUCCION Y DEFINICIONES Atributos de calidad (requerimientos no funcionales): • Usabilidad: que tan fácil es la operación del sistema, es decir se toma en cuenta factores humanos, la estética, la consistencia. • Fiabilidad o Confiabilidad: Propiedad de un sistema tal que se puede confiar justificablemente en los servicios que este presta. Se evalúa con la medición de la frecuencia y gravedad de la fallas, exactitud de resultados, capacidad de recuperación. • Mantenibilidad: la capacidad del programa para ser ampliable (extensibilidad), adaptable y servicial; además que pueda probarse, ser compatible y configurable. No todo atributo de calidad de software se pondera por igual al diseñarlo. Una aplicación tal vez aborde a lo funcional con énfasis en la seguridad. Otra quizá busque el rendimiento enfocándose en la velocidad de procesamiento.
  • 21. INTRODUCCION Y DEFINICIONES Drivers de arquitectura: Son los escenarios (funcionales + atributos de calidad) críticos y significativos que nos permiten modelar, comunicar y evaluar la arquitectura: generalmente estos son los requerimientos más prioritarios de los stakeholders.
  • 22. INTRODUCCION Y DEFINICIONES Calidad La calidad es un concepto complejo y de facetas múltiples que puede describirse desde cinco puntos de vista: o Punto de vista trascendental: La calidad es algo que se reconoce de inmediato, pero que no es posible definir explícitamente. o Punto de vista del usuario: concibe la calidad en términos de sus metas específicas o Punto de vista del fabricante: la define en términos de las especificaciones originales del producto. Si las cumple tiene calidad. o Punto de vista del producto: la calidad tiene que ver con las características inherentes (funciones y características) de un producto. o Punto de vista del valor: Mide de acuerdo con lo que un cliente esta dispuesto a pagar por un producto.
  • 23. INTRODUCCION Y DEFINICIONES Calidad En el desarrollo de software la calidad del diseño incluye el grado en que el diseño cumple las funciones y características especificadas en el modelo de requerimientos. La calidad de la conformidad se centra en el grado en el que la implementación se apega al diseño y en el que el sistema resultante cumple sus metas de requerimientos y desempeño. Se puede plantear una relación más intuitiva: Satisfacción del usuario = producto que funciona + buena calidad + entrega dentro del presupuesto y plazo Si el usuario esta satisfecho nada más importa, es decir este punto de vista de la calidad afirma que si un producto de software beneficia mucho a los usuarios finales, estos podrían estar dispuestos a tolerar problemas ocasionales de confiabilidad y desempeño.
  • 24. INTRODUCCION Y DEFINICIONES Calidad Se puede definir a la calidad del software como un proceso eficaz que se aplica de manera que crea un producto útil que proporciona valor medible a quienes lo producen y a quienes lo utilizan.  Proceso eficaz: administración del proceso, prácticas de ingeniería del software, la administración del cambio y revisiones técnicas.  Producto útil: funciones y características de forma confiable y sin errores. Satisface los requerimientos establecidos  Agregar valor: la organización que elabora el software obtiene valor agregado porque el software de calidad requiere menos esfuerzo de mantenimiento, menos errores que corregir, menos asistencia. Para el usuario final significa mayores utilidades, más rentabilidad y mejor disponibilidad.
  • 25. INTRODUCCION Y DEFINICIONES Factores de la Calidad ISO 9126 Este estandar se desarrollo con la intención de identificar los atributos clave del software. Identifica 6 atributos clave de calidad:  Funcionalidad: grado en que el software satisface las necesidades planteadas  Confiabilidad: Cantidad de tiempo que el software se encuentra disponible.  Usabilidad: Grado en que el software es fácil de usar  Eficiencia: Grado en que el software emplea óptimamente los recursos  Facilidad de mantenimiento: facilidad con la que pueden realizarse reparaciones al software (analizable, cambiable, estable, fácil para pruebas)  Portabilidad: Facilidad con la que un software puede llevarse de un ambiente a otro (adaptable, instalable, conformidad y sustituible)
  • 26. INTRODUCCION Y DEFINICIONES Ejemplo: Factores de la Calidad que se persiguen en la interfaz Para hacer una evaluación se necesita determinar atributos específicos y medibles de la interfaz: Intuitiva: Grado en que la interfaz sigue patrones de uso esperados, de modo que hasta un novato lo pueda usar sin mucha capacitación. Eficiencia: Grado en que es posible localizar o iniciar las operaciones y la información. Robustez: Grado en que el software maneja entradas erróneas de datos o en el que se presenta interacción inapropiada por parte del usuario Riqueza: Grado en que la interfaz provee un conjunto abundante de características.
  • 27. INTRODUCCION Y DEFINICIONES Dilema de la calidad del software Si produce un software de mala calidad, usted pierde porque nadie lo querrá comprar. Si dedica un esfuerzo infinito (tiempo y dinero) para generar un elemento perfecto de software, entonces tomará tanto tiempo terminarlo y será tan caro que de igual manera terminará fuera del negocio. En cualquier caso habrá perdido la ventana del mercado, o habrá agotado sus recursos. Las personas tratan de situarse en es punto medio donde el producto es suficientemente bueno para para no ser rechazado de inmediato, pero tampoco un objeto perfeccionista.
  • 28. INTRODUCCION Y DEFINICIONES Software lo suficientemente bueno Es aceptable producir software lo suficientemente bueno?.. La pregunta debe ser que sí, de hecho las principales compañías de software lo hacen a diario. Crean software con errores detectados y lo distribuyen a una gran población de usuarios finales. Reconocen que algunas funciones de la versión 1.0 tal vez no sean de la calidad más alta y planean hacer mejoras en la versión 2.0. El software lo suficientemente bueno contiene las funciones y características de alta calidad que desean los usuarios, pero al mismo tiempo contiene errores conocidos. El vendedor espera que la mayoría de usuarios finales perdone los errores gracias que están muy contentos con la funcionalidad de la aplicación.
  • 29. INTRODUCCION Y DEFINICIONES Software lo suficientemente bueno Esto puede funcionar para ciertos dominios de aplicación y para algunas compañías grandes de software. Pero en una compañía pequeña hay que tener cuidado. Al entregar un producto bueno (pero defectuoso) corre el riesgo de causar un daño permanente re reputación a su compañía. Tal vez no llegue a entregar una versión 2.0 porque la empresa se puede derrumbar antes de lograrlo. En casos como software automotriz o de telecomunicaciones, entregar software con errores conocidos se convierte en una negligencia y puede crear litigios legales o incluso puede ser un delito.
  • 30. INTRODUCCION Y DEFINICIONES Costo de la calidad No hay dudad que la calidad tiene un costo, pero la mala calidad también lo tiene. El costo de la calidad puede dividirse en los costos asociados con la prevención, la evaluación y la falla. • Prevención: costo de actividades de administración para planear y coordinar las actividades de control, costo de actividades técnicas agregadas para desarrollar modelos completos de los requerimientos y del diseño, costos de capacitación • Evaluación: costo de efectuar revisiones técnicas, costo de recopilar datos y unidades de medida, costo de hacer pruebas y depurar • De falla: costo por repeticiones, costos por efectos colaterales, costo de unidades de medida de calidad, costos por solución de quejas, devoluciones, sustitución de productos, garantía.
  • 31. INTRODUCCION Y DEFINICIONES Riesgos de la mala calidad Lo perjudicial de la aplicaciones mal diseñadas e implementadas no siempre se mide en dólares y tiempo. Ejemplo: En noviembre del 2000, en un hospital de Panamá, 28 pacientes recibieron dosis masivas de rayos gama durante un tratamiento contra cáncer. Meses después 5 pacientes murieron por envenenamiento radiactivo 15 quedaron con complicaciones serias. Que ocasionó la tragedia?: Un paquete de software desarrollado por una compañía estadounidense, que fue modificado por técnicos del hospital para calcular la dosis de radiación para cada paciente. Los tres médicos panameños que modificaron el software fueron acusados de asesinato en segundo grado. La empresa desarrolladora enfrentó litigios legales en dos países.
  • 32. INTRODUCCION Y DEFINICIONES Calidad y seguridad El software que no tiene calidad es fácil de penetrar por parte de intrusos, en consecuencia el software de mala calidad aumenta indirectamente el riesgo de seguridad con los costos y problemas que conlleva. Para construir un sistema seguro hay que centrarse en la calidad, y eso debe comenzar durante el diseño. Al eliminar las fallas de arquitectura (con lo que mejora la calidad del software) será más difícil que intrusos penetren en el software.
  • 33. INTRODUCCION Y DEFINICIONES Lograr la calidad del software La calidad del software no solo se ve, es el resultado de una buena administración del proyecto y de una correcta práctica de ingeniería de software. Se pueden considerar 4 actividades para lograr una alta calidad.  Métodos de la arquitectura del software: Se debe entender el problema que se quiere resolver. Para esto se debe lograr un buen diseño que esté de acuerdo con el problema.  Técnicas de administración de proyectos: usar estimaciones para verificar que las fechas pueden cumplirse, la planeación del riesgo es fundamental.  Control de calidad: revisión de modelos para garantizar consistencia, inspeccionar el código para descubrir y corregir errores antes de las pruebas, etc.  Aseguramiento de la calidad: funciones de auditoría y reportes para evaluar la eficacia de las acciones de control de calidad.
  • 34. INTRODUCCION Y DEFINICIONES En conclusión la AS es: - Vista estructural de alto nivel - Define estilo o combinación de estilos para una solución - Se concentra en requerimientos no funcionales (los funcionales requieren modelado y diseño de la aplicación) - Escencial para el éxito o fracaso de un proyecto Lo hace: Un Ingeniero de software puede diseñar tanto los datos como la arquitectura pero en sistemas grandes y complejos es necesario un especialista. El Arquitecto del software selecciona un estilo arquitectónico a partir de los requerimientos obtenidos durante el análisis de los datos Se ocupa de: - Diseño preliminar de alto nivel y su efectividad - Organización a alto nivel del sistema: descrición y análisis de propiedades, de estructura y control global, protocolos de comunicación y sincronización, distribución física, componentes, etc. - Aspectos del desarrollo, evolución y adaptación: composición, reutilización, escalabilidad, mantenimiento.