Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El objetivo de la definición del titulo es enunciar la intención del proponente de realizar un trabajo de grado
bajo un nombre que debe reunir las siguientes características:
Breve
Conciso
Explicativo
Sintético
Pertinente al perfil profesional
PLANTEAMIENTO DE UN PROBLEMA
El planteamiento del problema debe responder ¿Qué se quiere hacer? ante una situación o un problema a
resolver.
Problema
Definiciones
Algunas definiciones de problema:
Problema es un procedimiento dialéctico que tiende a la elección o al rechazo o también a la verdad y
al conocimiento (Aristóteles).
El Problema o la proposición problemática es una proposición principal que enuncia que algo puede
ser hecho, demostrado o encontrado (Jungius).
Problema es una proposición práctica demostrativa por la cual se afirma que algo puede o debe ser
hecho (Wolff).
Problemas son proposiciones demostrativas que necesitan pruebas o son tales como para expresar
una acción cuyo modo de realización no es inmediatamente cierto (Kant).
Un problema es una situación que implica un no saber y por consiguiente una necesidad para hallar la
solución
Un problema es la definición de los estados de incertidumbre funcionales, operativos y o
administrativos propios de situaciones y eventos.
Todo problema aparece a raíz de una dificultad; ésta se origina a partir de una necesidad, en la cual
aparecen dificultades sin resolver.
Tipos de problemas
Teóricos. Cuyo propósito es reflexionar sobre un tema o conocimiento.
Prácticos. Con objetivos destinados al progreso e innovación.
Teórico-prácticos. Para obtener información desconocida en la solución de problemas de la práctica
¿Qué es una Situación problémica?
La situación problémica es la presencia o ausencia de un hecho, desarrollo o no de una actividad y prestación
o no de un servicio que afecta el logro de los objetivos de un sistema y organización
Esta presencia o ausencia de un hecho, desarrollo o no de una actividad y prestación o no de un servicio se
puede o debe diagnosticar o pronosticar como una deficiencia (debilidad) o necesidad (requisito).
Deficiencia: Dificultad o no se posee los recursos, servicios, métodos para cumplir con el objetivo propuesto
Necesidad: Puede ser Anticipada (En el caso que se va a implantar un nuevo producto, recurso o servicio) o
por Demanda (el sistema u organización considera indispensable en su desarrollo social, económico,
tecnológico).
Presentación del Sistema y Organización
Concepto de Sistema y Organización:
―Un conjunto de elementos relacionados entre si y armónicamente conjugados". (Ferrater Mora, José.)
―Un sistema es un todo coherente de partes". (Herbert G. Heneman)
―Un conjunto complejo de elementos o componentes directa o indirectamente relacionados en una red causal".
(Walter Buckley)
Finalmente, según C. West Churchman todos los que definen el termino "sistema", están de acuerdo en que
se trata de un conjunto de partes coordinadas para lograr un conjunto de metas.
Una vez conocido el concepto de sistema, se puede definir la organización como " un sistema diseñado para
lograr metas y objetivos predeterminados por medio de la gente y otros recursos que emplean" (Kendall &
Kendall).
Las Organizaciones son sistemas grandes compuestos de subsistemas interrelacionados, en donde las
culturas y subculturas organizacionales influencian la manera en que se interrelaciona los intereses, los
objetivos, recursos y gentes en los diferentes subsistemas. Es por tanto, de primordial importancia considerar
a la organización como un todo para definir de manera adecuada los requerimientos de información para su
correcto funcionamiento.
Enunciado del Sistema y Organización
Se describe el departamento, sección, empresa en donde se realizara las actividades de desarrollo del
proyecto.
Si, es posible se enuncia:
- Nombre
- Ciudad
- Domicilio
- Estructura Organizativa
- Breve Descripción de: Actividades y Servicios
Diagnóstico
El punto de partida para llevar a cabo cualquier tipo de cambio en una organización. Es ―una fotografía‖,
―radiografía‖ o ―un mapa‖ que nos señala lo que hay en el sistema y organización, que proporciona datos e
información.
Es un insumo fundamental para, con base en él, definir y emprender futuras acciones.
Objetivo del Diagnóstico
Aportar un parámetro válido, para conocer la situación que guarda una organización en su conjunto o
cualquiera de las áreas que la conforman sobre una o varias deficiencias o necesidades, a fin de
entenderlos, asimilarlos y ubicarlos en la realidad que viven –o guardan- en ese momento.
Las fuentes de Diagnóstico
Las fuentes de consulta para llevar a cabo el levantamiento de un Diagnóstico son las siguientes:
- Leyes, reglamentos y normatividad existente que impacta directamente al organismo o área que se desea
diagnosticar.
–Funciones básicas y generales.
–Principales sistemas y procedimientos de operación y de seguimiento, evaluación y control (manuales de
procedimiento).
–Organigrama (manuales de organización).
–Líderes formales e informales, personal operativo ―clave‖
–Principales productos y/o servicios
–Interconexión e interacción directa con su medio ambiente externo (clientes y proveedores) y entre áreas o
departamentos internos
Las Actividades para configurar o determinar un Diagnóstico
Para llevar a cabo el levantamiento de diagnóstico es necesario considerar las siguientes actividades:
- Recopilación de datos;
- Análisis y validación los datos obtenidos;
- Clasificación los datos;
- Definición de reglas de los datos/negocio;
- Enunciado del Diagnóstico: Necesidad o Deficiencia
- Enunciado del Pronóstico: Sobre lo que es probable que ocurra en el futuro, basándose en el
diagnóstico y en consideraciones de juicio
Las herramientas del Diagnóstico
Las herramientas que pueden ser utilizadas para la obtención del diagnóstico se enumeran a continuación; es
importante destacar que es conveniente usar todas ellas o la gran mayoría, a fin de contar con datos que
cubran diferentes vistas del mismo sistema y organización, estas son:
- Observación;
- Análisis de documentos;
- Entrevistas verbales libres, semidirigidas y dirigidas;
- Cuestionarios;
- Metodología de análisis estructurado o Metodología de análisis orientada a objetos
¿Qué es una Situación problémica?
La situación problémica es la presencia o ausencia de un hecho, desarrollo o no de una actividad y prestación
o no de un servicio que afecta el logro de los objetivos de un sistema y organización
Esta presencia o ausencia de un hecho, desarrollo o no de una actividad y prestación o no de un servicio se
puede o debe diagnosticar o pronosticar como una deficiencia (debilidad) o necesidad (requisito).
Deficiencia: Dificultad o no se posee los recursos, servicios, métodos para cumplir con el objetivo propuesto
Necesidad: Puede ser Anticipada (En el caso que se va a implantar un nuevo producto, recurso o servicio) o
por Demanda (el sistema u organización considera indispensable en su desarrollo social, económico,
tecnológico).
En el caso de la Ingeniería de Sistemas, la situación problémica es la presencia o ausencia de un objeto de
estudio de investigación (sistema software, sistema telemático, desarrollo de la buenas prácticas de TI) que
afecta el logro de los objetivos de un sistema y organización.
Requisitos para elegir la situación problemica
Sin duda existe un gran número de situaciones problemicas que inquietan al proponente, pero quizá la mayor
parte de ellos no están al alcance de él.
Los requisitos para elegir una situación problemica son:
- Experiencia en el tema.
- Importancia de la situación problemica
- Conocimientos para su manejo.
- Relevancia social
- Relevancia contemporánea.
- Pertinencia con el saber profesional
Definición con claridad la situación problemica
El proyectante plantea la existencia de un problema informático que le ha llamado la atención y que –a su
juicio— requiere ser analizada (diagnóstico y pronostico) para pasar a algún tipo de acción posterior como es
la solución sistemica y tecnologica (modelamiento, prototipos, documentación, software).
Al definir la situación problemica, es necesario relacionar al menos dos elementos, que pueden ser: posibles
causas de la situación y efectos de la misma.
Tabla Tomada de Proyecto: Diseño, desarrollo e implementación de un software para la eficiencia de las
operaciones contables de la asociación Asofutuglua del municipio de la Macarena, Meta. Estudiante: Diana
Patricia Sandoval Quimbaya, CAU: Villavicencio
El Diagrama de Ishikawa o Diagrama de Causa Efecto o Espina de pescado
El Diagrama de Ishikawa o Diagrama de Causa Efecto (conocido también como Diagrama de Espina de
Pescado dada su estructura) consiste en una representación gráfica que permite visualizar las causas que
explican un determinado problema
El proyecto de grado es evaluado por el logro de los objetivos mediante un proceso sistemático, los cuales
deben haber sido previamente señalados y seleccionados en la propuesta del proyecto.
.
Los Requisitos para plantear los objetivos:
1. Señalar que es lo que se quiere alcanzar con el proyecto
2. Enfocarse a la solución del problema.
3. Ser realistas.
4. Ser medibles.
5. Ser congruentes.
6. Ser importantes.
7. Redactarse evitando palabras subjetivas.
8. Precisar los factores existentes que lleva el proyecto
9. Enfatizar la importancia de mejorar la organización.
10. Ser práctico, correcto, definido y verificable, debe guiar y soportar los pasos del proyecto de grado,
es decir, implica tácitamente el por qué, y el cómo del proyecto.
11. Como resultados o los fines que se pretenden lograr con el proyecto de grado.
Deben por tanto ser enunciados con claridad y precisión determinado de antemano la eficacia, eficiencia y
efectividad de la formación de los mismos con respecto al problema planteado.
Objetivo General
Es el enunciado en que se expresa la acción general (total) de lo que se pretende realizar en el proyecto.
El objetivo general debe tener una correlación con el problema planteado..
Un Objetivo es un enunciado en que se expresa una acción a llevar a cabo. Por lo tanto debe estar iniciado
por verbos fuertes, que indican acciones, a continuación se indica el objeto o instrumento que se emplea para
la solución del problema. Y por último se establecen el resultado esperado o resultados esperados en
correlación con la formulación del problema.
A continuación se muestra una tabla sintagmática que puede ayudar a construir los objetivos del proyecto
Tabla 2. Tabla Sintagmática para Construir Objetivos
Verbo Objeto/ Instrumento Finalidad del Correlación del
Objetivo formulación del
problema con
resultados esperados
Mejorar
Establecer
1.Sistema Software Renovar
Averiguar
2. Funciones Sugerir
Identificar
3. Buenas Prácticas Innovar
Recopilar
4. Metodologías Agiles Resolver
Indagar
5. Estadísticas Satisfacer
Proponer
6. Integración Continua Controlar
Implementar
Administrar
Diseñar
Esquematizar
Desarrollar
Desplegar
Ejemplo: Implementar la Integración Continua para los proyectos de software desarrollados con la suite
webMethods en la compañía xxx (Proyecto Implementación de la Integración Continua en la Suite
Webmethods del estudiante Javier Hernando Mesa Losada).
Objetivos Específicos
Informan los resultados intermedios que se pretende realizar en cada una de las etapas del proyecto. Un
objetivo bien formulado es aquel que transmite en forma precisa los logros del proyecto.
En los objetivos específicos se responde la pregunta ¿a dónde queremos llegar? Y por consiguiente son
indicadores de resultados esperados, metas y productos También, indican los propósitos que se pretenden
alcanzar en forma inmediata o mediata.
En lo posible cada objetivo específico debe estar relacionado con un solo logro
Entonces, El Objetivo General, para ser llevado a cabo, usualmente puede y tiene que ser desglosado en una
serie de acciones o actividades particulares menores, sustancialmente diferentes unas de otras. En el
ejemplo de un colegio, se tendrá que investigar el funcionamiento académico, por un lado y el funcionamiento
administrativo y tecnológico, por lo tanto, dando tres acciones independientes. Estos son los Objetivos
Específicos. Son como las dos, tres o cuatro partes básicas en que se divide el proyecto.
Por lo tanto el desarrollo del proyecto a lo largo de la metodología empleada no es otra cosa que la forma en
que se van resolviendo los objetivos específicos.
Ejemplo tomado del Proyecto Implementación de la Integración Continua:
- Instalar y configurar las herramientas de Integración Continua en el servidor adecuado y destinado
para ello.
- Realizar conexión de webMethods con las herramientas de Integración Continua.
- Documentar todos los procesos de instalación y configuración de las herramientas de Integración
Continua.
- Capacitar un grupo de diez (10) ingenieros de la empresa xxx para el uso de las herramientas de la
Integración Continua en sus labores diarias.
Tabla Verbos para Objetivos Generales y Objetivos Especificos
JUSTIFICACIÓN
Tiene que ver con la motivación, importancia, pertinencia, beneficios, impactos, relevancia social, relevancia
administrativa, financiera y tecnológica del proyecto en el contexto administrativo e informático.
Deben responder ¿Cuál es su importancia? ¿Qué se va a proyectar y por que? ¿Por qué se quiere
hacer? También, mencionar ¿Cuáles son los beneficios a obtener? ¿Quién recibirá los beneficios?
Ejemplo tomado del Proyecto Implementación de la Integración Continua:
LIMITACIÓN
Tiene que ver con la precisión de los alcances y limites del proyecto. Se debe relacionar en términos tangibles
lo que se espera obtener y hasta donde llega el proyecto.
Se delimita con relación al espacio, tiempo, temática, ambiente y tecnología.
1. En relación con espacio, indica el área, sección, departamento, organización y población afectada o
beneficiada por la presentación, desarrollo o implantación del proyecto
2. En relación con el tiempo, se ubica el proyecto en que momento sucede o puede suceder la presentación,
desarrollo o implantación del proyecto
3. En relación con la temática, se debe conocer el área del conocimiento a la pertenece el proyecto.
4. En relación con el ambiente, se debe determinar el impacto sobre el ambiente, por ej., la contaminación
5. En relación con la tecnología, se debe establecer herramientas, servidores, versiones, etc.
Ejemplo:
Tiempo: 12 Meses
Espacio: Empresa Los Colores, Sección Facturación
Temática: Buenas Prácticas
Tecnológica: Ejemplo tomado del Proyecto Implementación de la Integración Continua
ALCANCES
Los alcances indican con precisión qué se puede esperar o cuales aspectos alcanzaremos en el proyecto.
Ejemplo tomado del Proyecto Implementación de la Integración Continua:
Figura 2. Representación Metodológica. Fuente Propia
ESTUDIO DE VIABILIDAD
Es preciso estudiar un mínimo de tres viabilidades que condicionarán el éxito o fracaso del proyecto: la
viabilidad técnica, la legal y la económica. Otras viabilidades son las de gestión, la política y la ambiental.
La viabilidad técnica determina si es posible física o materialmente hacer un proyecto. Puede incluso llegar a
evaluar la capacidad técnica y motivación del personal del sistema y organización involucrado.
La viabilidad legal determina la existencia de trabas legales para la instalación y operación normal del
proyecto, incluyendo las normas internas de la empresa.
La viabilidad económica determina la rentabilidad de la inversión en un proyecto.
La viabilidad de gestión determina si existen las capacidades gerenciales internas del sistema y organización
para lograr la correcta implementación y eficiente administración del proyecto.
La viabilidad ambiental determina el impacto sobre el ambiente, por ej., la contaminación.
La viabilidad política corresponde a la intencionalidad de quienes deben decidir si quieren o no implementar un
proyecto, independientemente de su rentabilidad. Por ej., al elegir entre dos proyectos, el criterio tradicional es
elegir el de mayor valor actual neto (VAN), aunque los responsables políticos pueden decidir a favor del
proyecto con un menor punto de equilibrio en ventas, o a favor del proyecto más flexible en cuanto a la caída
de ventas.
CRONOGRAMA DE ACTIVIDADES
Las actividades del proyecto se presentan gráficamente a través de un diagrama con una coherencia y
ordenamiento espacio-temporal.
El proyectante puede representar el cronograma a partir del diagrama Gantt (
Diagrama que sirve para relacionar actividades con el tiempo) adicionando la columna de Objetivos
específicos, para asociar así, con las actividades como también el resultado esperado.
Ejemplo tomado del Proyecto Seguimiento Actividades Especialistas de TI Estudiante Pablo Emilio Gil Puertas
Marco conceptual
Proviene del término concepto. Cada concepto se delimita considerando sus atributos primordiales que lo
diferencia de otros conceptos.
Hay muchos modos de definir un marco conceptual, algunas definiciones son las siguientes:
- Una serie de ideas o conceptos coherentes organizados de tal manera que sean fáciles de comunicar a
los demás.
- Definición y Delimitación de los conceptos propios del proyecto.
- Una visión de conjunto de las ideas, conceptos y las prácticas que conforman el modo en que se lleva a
cabo el trabajo de un proyecto.
- Una serie de suposiciones, valores, y conceptos que el proponente adopta para el proyecto.
Normatividad a Cumplir con los conceptos
Ejemplo:
- Entidad. Toda Cosa ó Persona del que / quien se puede decir algo.
- Información. El Atributo o Característica de la Entidad
- Dato. El valor asociado a la Información.
Marco Metodológico
El marco metodológico es la explicación de los mecanismos utilizados para el análisis del problema del
proyecto. Por lo general, es el resultado de la aplicación, sistemática y lógica, del área de conocimiento
teórico existente, como también, la serie de ideas, conceptos y prácticas expuestos en el marco teórico y
marco conceptual. Es importante comprender que la metodología de la investigación es progresiva, por lo
tanto, no es posible realizar el marco metodológico sin las fundamentaciones teóricas.
En el marco metodológico se debe incluir las siguientes secciones:
Nivel de Investigación
El nivel de investigación se refiere al grado de profundidad con que se aborda un objeto o fenómeno. Aquí se
indicará si se trata de una investigación exploratoria, descriptiva o explicativa. En cualquiera de los casos es
recomendable justificar el nivel adoptado.
Investigación Exploratoria: es aquella que se efectúa sobre un tema u objeto poco conocido o estudiado, por
lo que sus resultados constituyen una visión aproximada de dicho objeto
Investigación Descriptiva: consiste en la caracterización de un hecho, fenómeno o supo con establecer su
estructura o comportamiento. Los estudios descriptivos miden de forma independiente las variables, y aun
cuando no se formulen hipótesis, las primeras aparecerán enunciadas en los objetivos del proyecto.
Investigación Explicativa: se encarga de buscar el porqué de los hechos mediante el establecimiento de
relaciones causa-efecto.
Ejemplo tomado del Proyecto Control de Aplicaciones y Registro de Novedades:
Diseño de la Investigación
El diseño de la investigación es la estrategia que adopta el proponente para responder al problema del
proyecto.
Los diseños de investigación son:
Investigación Documental: es aquella que se basa en la obtención y análisis de datos provenientes de
materiales impresos u otros tipos de documentos.
Investigación de Campo: consiste en la recolección de datos directamente de la realidad donde ocurren los
hechos, sin manipular o controlar variable alguna.
Investigación Experimental: proceso que consiste en someter a un objeto o grupo de individuos a
determinadas condiciones o estímulos (variable independiente), para observar los efectos que se producen
(variable dependiente).
Ejemplo tomado del Proyecto Control de Aplicaciones y Registro de Novedades:
Población y Muestra
La población (personas, organizaciones o instituciones) involucradas en el proyecto informático para el cual
serán válidas las conclusiones.
Se describe la población, así como el tamaño y forma de selección de la muestra, es decir, el tipo de
muestreo, en el caso de que exista.
En el caso de investigación bibliográfica el universo equivale al tema de estudio.
Por otra parte, los estudios de caso se concentran en uno o pocos elementos que se asumen, no como un
conjunto sino como una sola unidad.
Ejemplo tomado del Proyecto Control de Aplicaciones y Registro de Novedades:
Variables
Una variable es una cualidad susceptible de sufrir cambios. Un sistema de variables consiste, por lo tanto, en
una serie de características por estudiar, definidas de manera operacional, es decir, en función de sus
indicadores o unidades de medida.
Un sistema de variables puede ser desarrollado mediante un cuadro, donde además de las variables, se
especifiquen sus dimensiones e indicadores, y su nivel de medición.
Tabla 4. Descripcion de Variables
Fuente http://www.smo.edu.mx/colegiados/apoyos/proyecto-investigacion.pdf
En un entorno de proyecto tecnológico, la decisión de iniciar un proyecto sistémico y tecnologico viene dado
por las necesidades de: mantenimiento, modificación, mejoramiento, reemplazo o capacidad; encuadrándose
así, el proyecto sistémico y tecnológico, dentro de una categoría de complejidad mostrada en la siguiente
figura:
El Mantenimiento de un sistema software; es una consecuencia de una omisión realizada en la etapa del
diseño del sistema e involucra solucionar fallas menores del sistema, que obligará a la realización de cambios
en el programa; como por ejemplo el descuido de no considerar que puedan ocurrir en el sistema, ciertas
condiciones extraordinarias; como sería el caso de un aumento no previsto del 60 %, en la emisión de órdenes
de compra. Las fallas también pueden provenir de otros factores, como ser en el caso de que existan cambios
en las expectativas de los usuarios.
La Modificación de un sistema software; involucra algo más que un simple cambio en el código; involucra un
cambio estructural de una entidad. Por ejemplo, un cambio en el número de dígitos del código postal, o en el
código de zona telefónica. La diferencia con el Mantenimiento es el grado de importancia
El Mejoramiento del sistema software; es el agregado de capacidades que no formaron parte del sistema de
información original; por ejemplo cuando en una división se implementó un sistema de inventarios, este
sistema no incluía un módulo para calcular la futura demanda de bienes y partes. La inclusión de este
sofisticado módulo de cálculo es considerado un mejoramiento del sistema.
El Reemplazo de un sistema software; ocurre cuando los sistemas de información se tornan físicamente,
tecnológicamente o competitivamente obsoletos. Como es el caso de la utilización del láser, en el
reconocimiento óptico de caracteres para la lectura del código de barras, remplazando a la entrada por
teclado.
FASES DE UN PROYECTO DE GRADO (PROYECTO SOFTWARE)
1. Titulo Provisional.
2. Nombre de Proponente
3. Nombre de Asesor Propuesto
4. Planteamiento del Problema
Presentación del Sistema y Organización
Descripción de la Situación Problemica del Sistema y Organización
Delimitación de la Situación Problemica del Sistema y Organización
Formulación del Problema
5. Modelado del Negocio/Modelo del Negocio
3. ASPECTOS ADMINISTRATIVOS.
1. Estudio de Viabilidad
2. Cronograma.
4. INGENIERIA DEL ANTEPROYECTO
Modelado del Negocio/Modelo del Negocio
BIBLIOGRAFIA
DOCUMENTO DEL PROYECTO (PROYECTO SOFTWARE ORIENTADO A OBJETOS)
Este proyecto debe partir de una situación real, de manera que los datos sean factibles
1. DATOS GENERALES DEL PROYECTO DE GRADO
1. Título descriptivo del proyecto.
2. Planteamiento del problema
Descripción del Problema Informático
Planteamiento del Problema Informático
Formulación del Problema del Proyecto Informático
3. Objetivos.
General
Específicos
4. Justificación.
5. Alcances y Limitaciones
2. MARCO DE REFERENCIA.
1. Antecedentes.
2. Marco Teórico
3. Marco Conceptual.
4. Marco Metodológico
3. ASPECTOS ADMINISTRATIVOS.
1. Estudio de Viabilidad
2. Cronograma.
3. ASPECTOS ADMINISTRATIVOS.
1. Estudio de Viabilidad
2. Cronograma.
METODOLOGÍA DE DESARROLLO
● Estructura del modelo: se basará en la figura anteriormente representada para la
reunión e implementación de la información requerida, de este modo estructurar el
posible modelo y soluciones que se podrían implementar, realizando una investigación
cualitativa con el fin de recopilar la mayor información con sus respectivos autores
para revisar conceptos, y así tener una idea base hacia la solución del problema.
● Diseño del modelo: una vez recopilada y categorizada toda la información, se
planteará la posible solución de modelo a seguir para el problema en cuestión.
● Establecimiento de reglas: en esta parte de la metodología se plantearan las reglas
necesarias con ciertas condiciones, que para algunos casos se tendrán que cumplir a
cabalidad en otros casos se podrá tener el no cumplimiento de alguna de ellas.
Esto para identificar los stakeholders potenciales, y entre ellos generar un trabajo
colectivo que sea de beneficio a la organización.
● Simulación de pruebas: basada en el diseño el modelo se dará a conocer un
primer ejemplo de simulación donde se vea aplicada la posible solución
metodológica del problema de manera específica.
CASO 3. JUAN MANUEL CAMARGO HURTADO, ANTE PROYECTO DE GRADO,
UNIVERSIDAD SANTO TOMAS, 2017
1. Estado del Arte Herramientas
1.1 Ciclo de Deming
El ciclo Deming es una herramienta de mejora continua. El ciclo consiste de una
secuencia lógica de cuatro pasos repetidos que se deben de llevar a cabo
consecutivamente. Estos pasos son:
Ciclo Deming
Los resultados de la implementación de este ciclo permiten a las empresas una mejora
integral de la competitividad, de los productos y servicios, mejorando continuamente la
calidad, reduciendo los costes, optimizando la productividad, reduciendo los precios,
incrementando la participación del mercado y aumentando la rentabilidad de la empresa u
organización.
1.2 ISO/IEC 27002:2013
Código de prácticas para la gestión de la seguridad de la información". Es un modelo
que da recomendaciones para las buenas prácticas. Es un modelo basado en el anexo
A de la ISO/IEC 27001:2005, el cual amplia y explica de forma detalla como implantar
los controles del anexo A de la ISO/IEC 27001:2005, este método no puede utilizarse
para la certificación.
ISO/IEC 27002:2013
Los derechos de propiedad intelectual de la idea como modelo de negocio pertenecen a los estudiantes, por lo
cual, toda la información contenida en el presente trabajo sólo puede ser usada con fines académicos.
Cualquier uso, reproducción parcial o total destinada a otros fines, deberá estar autorizada por las partes
mencionadas.
Que es un Modelo de Negocio
https://www.emprendedores.es/crear-una-empresa/a69057/que-significa-modelo-de-negocio/
Un modelo de negocio es una herramienta que permitirá definir con claridad qué se va a ofrecer al mercado, cómo se va
a hacer, a quién se le va ofertar/ofrecer, cómo se va a vender y de qué forma se va a generar ingresos. Es una
herramienta de análisis que permite saber quién eres, cómo lo haces, a qué coste, con qué medios y qué fuentes de
ingresos vas a tener. Definir tu modelo de negocio es saber cuál es tu ADN, cómo está hecho, cómo se puede modificar,
cómo pulir, cómo cambiar, cómo moldear…
Cuando se habla, coloquialmente, de modelo de negocio se suele concretar en la forma que tiene una empresa de ganar
dinero. Y también es eso, pero es mucho más. ―Se suele relativizar lo del modelo de negocio con los flujos de ingresos, y
el modelo de negocio habla no sólo de cómo ganar dinero sino también de quiénes son tus clientes, de cómo vas a llegar
a ellos, qué cosas tienes que hacer para entregarles tu propuesta de valor, qué es lo que te hace único, qué estructura
de costes tienes, etc.; es una visión sistémica de tu negocio‖, subraya Javier Megías, experto en creación de empresas y
modelos de negocio.
Los modelos que están funcionando son aquellos capaces de crear valor para el cliente, es decir, que tienen una
propuesta de valor clara, que son capaces de llegar al cliente, de diferenciarse, de establecer fuertes lazos con el cliente,
de fidelizar y que son capaces de producirlos también de una manera especial.
La manera de validar un modelo de negocio es teniendo clientes que paguen por tu producto y/o servicio. Esa es la
manera de validar tu propuesta de valor. ¿Cómo se crea valor? Estando muy cerca del cliente. Estableciendo una
relaciones muy estrechas desde el principio para saber cuáles son sus necesidades o problemas que tienen. Y una vez
en el mercado puedes encontrarte con que tu modelo de negocio necesita modificarse. "El modelo de negocio puede
variar constantemente. De hecho, no cambiar de modelo de negocio o no hacer variaciones importantes es aterrador"
METODO CANVAS
Fuente: https://www.marketingyfinanzas.net/2013/03/modelo-canvas-una-herramienta-para-generar-
modelos-de-negocios/
El Método Canvas consiste en poner sobre un lienzo o cuadro nueve elementos esenciales de las
empresas y testar estos elementos hasta encontrar un modelo sustentable en VALOR para crear un
negocio exitoso, hace parte de la metodología ―Lean Startup‖ que junto al Producto Mínimo Viable
ponen a su mano herramientas muy sencillas de probar cual puede ser el producto o el servicio más
viable para las empresas en crecimiento.
El Método Canvas busca con un modelo integral analizar la empresa como un todo y sirva como
base para desarrollar diferentes modelos de negocios, se ha convertido en una herramienta de
Innovación Estratégica.
Elementos o bloques del Método Canvas
1. Segmentos de Clientes: estos resultan ser los más importantes dentro del modelo, saber y conocer
perfectamente nuestros clientes, responde la pregunta ¿para Quién?
2. Propuesta de Valor: aquí es muy importante descubrir cómo queremos generar VALOR para
nuestros clientes, con propuestas novedosas e innovadoras. Responde la pregunta ¿el Qué?
3. Canal: Como entregar la propuesta de valor para nuestros clientes? Cómo hacemos llegar los
productos a nuestros clientes?
4. Relación con los Clientes: Qué tipo de relación esperan nuestros clientes, qué relación tenemos
ahora?
5. Flujo de Ingresos: cuál es valor que están dispuestos a pagar nuestros clientes por nuestros
productos?
6. Recursos Claves: qué recursos claves necesito para generar Valor en mis productos?
7. Actividades Claves: qué actividades claves necesito desarrollar para generar valor en mis productos
o servicio?
8. Alianzas: este bloque es muy importante ya que debemos definir cuáles serán nuestros socios
estratégicos en proveedores, clientes y accionistas entre otros.
9. Costos: es muy importante saber que estructura de costos voy a implementar ya que en este punto
sabremos qué utilidad podríamos tener de nuestro negocio
Orden Para Completar el Método Canvas
http://innokabi.com/canvas-de-modelo-de-negocio/
Para hacer un canvas, primero se rellenan los módulos del lienzo de la parte derecha. Estos bloques hacen
referencia a la parte externa de la compañía, al mercado. El que se rellene esta parte inicialmente no es
casualidad, la razón por la que se trabaja de esta manera es que primero debes conocer y analizar el entorno
en el que opera o va a operar tu empresa, identificando inicialmente tu segmento de clientes, qué es lo que
vas a ofrecerles, cómo vas a llegar a ellos, qué relación vas a mantener con ellos y finalmente cómo van a
pagarte.
Esta plataforma en particular es utilizada por más del 30% de la internet, lo cual nos indica que es una opción seria.
WordPress es fácil de usar y ofrece una cantidad asombrosa de opciones de personalización gracias a sus plugins y
temas.
A continuación, veamos a Joomla:
Esta plataforma en particular tiene una mayor complejidad que WordPress, pero compensa el trabajo adicional
involucrado con sus funciones integradas de optimización para motores de búsqueda (SEO) y configuración de
seguridad. Además, Joomla hace un excelente trabajo en cuanto el manejo de tipos de contenido personalizados sin
tener que añadir extensiones, que es un área en la que WordPress tiene ciertas dificultades si no se realiza un cierto
nivel de personalización.
Aparte de los CMS, también puedes utilizar creadores de páginas web. Estas soluciones permiten crear sitios web
utilizando constructores visuales con función de arrastrar y soltar, junto con colecciones de elementos listos para usar:
Los creadores de páginas web ofrecen una forma fácil de poner tu sitio en funcionamiento rápidamente, a la vez que
permiten un grado decente de personalización. Si te llama la atención, ofrecemos un creador de páginas web con todos
los planes de Hostinger, así que quizás puedes empezar por allí.
Durante el resto de este tutorial, nos centraremos en WordPress, ya que es la plataforma más popular para crear páginas
web. Además, ofrece muchas herramientas para ayudarte a aprender cómo diseñar una página web.
Paso 3: Configurar las herramientas que necesitarás
Después de instalar WordPress, también tendrás que configurar algunas herramientas adicionales si quieres hacer
realidad tus diseños. En primer lugar, necesitarás una plantilla que corresponda con el estilo que tienes en mente para tu
sitio web.
Hay miles de opciones para elegir cuando se trata de plantillas de WordPress. Sin embargo, recomendamos que
empieces utilizando un tema gratuito mientras te acostumbras a la plataforma. Puedes encontrar la mejor selección en
el repositorio oficial de
WordPress.org:
Busca algún tema que te guste, manteniéndote atento a que tenga buenas calificaciones y actualizaciones recientes. Si
un tema no tiene ninguno de ellos, entonces es mejor evitarlo, porque es mucho más probable que cause problemas.
Cuando ya te hayas decidido por un tema en particular, puedes instalarlo y activarlo.
En esta etapa, también te recomendaremos usar un plugin de creador de páginas de WordPress. Estas herramientas
permiten diseñar fácilmente sitios web con altos niveles estéticos. WordPress puede ser fácil de usar, pero lograr que tu
sitio web se vea como tu quieres requiere algo de delicadeza. Con un plugins de creación de sitios web, puedes modificar
el diseño sobre la marcha.
Como puedes imaginar, no hay escasez de plugins de creación de páginas para usuarios de WordPress. Sin embargo,
somos partidarios de Beaver Builder debido a su facilidad de uso y su gama de funciones:
Aprender a diseñar una página web con este plugin es algo muy intuitivo. Con Beaver Builder, obtienes acceso a una
amplia colección de elementos que puedes agregar a cualquiera de tus páginas, simplemente arrastrándolos hasta la
ubicación que quieras. Luego puedes editar cada elemento, para que se vea genial:
Si no te entusiasma Beaver Builder, no te preocupes, hay muchas otras opciones que puedes probar. Cuando hayas
encontrado el que te guste, es hora de dar el siguiente paso para aprender a diseñar una página web.
Paso 4: Crear un bosquejo de tu diseño web
Hasta ahora, hemos estado sentando las bases técnicas necesarias antes de comenzar a diseñar una página web.
Ahora, sin embargo, es cuando puedes dejar fluir toda tu creatividad.
En este momento, tienes un sitio web de WordPress con una plantilla de buen aspecto y un plugin de creación de
páginas listo para funcionar. A continuación, vas a sacar papel y lápiz (sí, vamos a hacerlo ‗a la antigua‘), que usarás
para dibujar cómo quieres que se vea tu sitio web.
Este es un bosquejo y no tiene que ser demasiado detallado. Lo importante es que incluya todos los elementos que
quieres ver en el sitio web. Por supuesto, puedes agregar tantos detalles como desees. En última instancia, este
bosquejo servirá como referencia visual cuando comiences a diseñar tu sitio web en la realidad.
Si no eres de los que usan lápiz y papel, también hay muchas herramientas que puedes usar para crear bosquejos en
tu computadora. El inconveniente es que todos conllevan una curva de aprendizaje, lo que significa que tendrás que
dedicar un poco más de tiempo a este paso.
En cualquier caso, revisa y modifica tu bosquejo tantas veces como quieras, hasta que te sientas cómodo con su
aspecto. Luego de eso, pasemos al siguiente paso.
Paso 5: Comenzar a trabajar en un prototipo de diseño y refinarlo
Cuando tu bosquejo ya esté listo, vamos a pasarlo del papel al mundo digital. En otras palabras, vas a comenzar a crear
un prototipo de tu diseño web.
Como ya tienes el creador de páginas web listo, el primer paso debería ser abrirlo con el editor de WordPress. Luego,
puedes comenzar a agregarle a tus páginas los elementos que desees y organizarlos tal como aparecen en tus
bosquejos.
Este proceso podrá variar según el plugin de creador de sitios que elijas, por supuesto. Sin embargo, en esta etapa,
recomendamos que no te quedes atascado en los detalles, como decidir qué tamaño de fuente utilizar o elegir los colores
perfectos. Todavía habrá tiempo para refinar el diseño más adelante.
Lo importante ahora es que construyas un prototipo funcional de tu sitio web, que incluya todos los elementos que
incorporaste en el bosquejo. Con un prototipo listo, podrás detectar cualquier decisión de diseño que no funcione y
realizar cambios para mejorar el diseño de tu sitio web. En este punto es en donde comenzarás a enfocarte en los
detalles más pequeños.
En la mayoría de los casos, los bosquejos no pasaran ilesos por la transición hacia un prototipo. Pero eso es
completamente normal. Del mismo modo, el primer prototipo probablemente no se parecerá mucho al sitio terminado.
Además, el tiempo que demores en diseñar un sitio web dependerá de qué tan perfeccionista seas. Probablemente
tengas docenas de elementos para personalizar y opciones de diseño para jugar, así que no te apresures.
Un consejo rápido para tener en cuenta ahora es no preocuparse demasiado por el texto del sitio web y otros tipos de
contenido. Para lograr tener listos los prototipos más rápido, utiliza texto ficticio e imágenes de stock. Cuando hayas
terminado el diseño y todo esté en su lugar, puedes reemplazarlos por el contenido que realmente usarás.
Paso 6: Verificar que el diseño se vea bien en dispositivos móviles
En este punto, ya has aprendido mucho sobre cómo diseñar una página web. Sin embargo, hay un último paso antes de
que puedas decir que tu diseño está listo para el show, y es asegurarse de que se vea bien en los dispositivos móviles.
Hoy en día, el tráfico móvil ha superado a sus contrapartes, por lo que asegurarse de que tus diseños se vean bien en
resoluciones más pequeñas es clave. Si tu sitio web se desfigura cuando alguien accede a él desde un smartphone,
tendrás muchos visitantes decepcionados y una tasa de rebote bastante alta, que es algo que debes evitar.
La buena noticia es que la mayoría de los creadores de páginas de WordPress (como Beaver Builder) están optimizados
para dispositivos móviles por defecto. Eso significa que los diseños que realices con ellos deberían verse bien en
dispositivos móviles, sin que tengas que hacer nada más.
Sin embargo, nunca está de más ser cauteloso y verificar cómo se ve tu sitio web en una pantalla más pequeña. Hay
muchas maneras de hacerlo. Por ejemplo, puedes usar tu propio dispositivo móvil para acceder al sitio web. Otra
alternativa mejor es usar las herramientas de desarrollo de Chrome, que permiten visualizar tu sitio web en diferentes
resoluciones.
Para acceder a las herramientas de desarrollo de tu navegador, haz clic derecho en cualquier lugar del sitio web, luego
presiona el botón Inspeccionar (Inspect). Luego, mira la parte superior de la pantalla. Verás un par de campos donde
puedes ingresar una resolución personalizada y ver cómo se ve tu sitio web en ese tamaño:
Si quieres ser minucioso, te recomendamos probar varias resoluciones para asegurarte de que tu sitio web se vea y
funcione correctamente en todas ellas. Si tienes algún problema, regresa a la etapa de prototipo y usa el creador de
páginas web para solucionarlo. Luego de solucionar los imprevistos, tu diseño finalmente estará listo para el público.
Otra mirada puede ser con el diseño profesional de Páginas web profesionales con wix
Editor de Wix. Libertad total de diseño. Se comienza desde cero o se elige entre más de 500 plantillas para crear el sitio
Wix. Con el sistema de arrastrar y soltar, puedes personalizar o cambiar cualquier cosa. Haz que tu sitio cobre vida con
fondos de video, efectos de desplazamiento y animaciones. Con el Editor de Wix, se puede crear una página web
profesional sin ayuda de nadie.
Conclusión
Si tienes un sitio web de aspecto profesional, entonces ya has ganado la mitad de la batalla. Con un buen diseño, la
gente prestará más atención a lo que tienes que decir y así debería ser más fácil conseguir conversiones. La buena
noticia es que no necesitas ser un profesional para aprender a diseñar un sitio web que se vea fantástico. Todo lo que se
necesita es seguir algunas de las mejores prácticas, usar las herramientas adecuadas y trabajar hasta que tu sitio se vea
genial.
¿QUÉ ES EL POSICIONAMIENTO SEO Y SEM?
Tomado de: https://www.palbin.com/es/blog/p32-seo-y-sem-que-es-el-posicionamiento-seo-y-sem.html
SEO Y SEM son las dos técnicas de posicionamiento en buscadores que debes incluir en tu estrategia de marketing y
publicidad, gracias a las cuales una página o sitio web consigue su mejor colocación a la hora de hacer una búsqueda
determinada en cualquier herramienta de análisis (en el caso español, Google la más utilizada). La misión del
posicionamiento es hacer que un determinado sitio o web sea encontrado de forma fácil en los buscadores
¿Qué es el SEO?
El significado del SEO (Search Engine Optimization en inglés) es la optimización que hacemos en una página para que
aparezca en los motores de búsqueda, por ejemplo Google o Bing. Herramienta indispensable en la estrategia de
marketing.
Estamos hablando de la aparición de forma natural, orgánica, sin pagar en las primeras posiciones de los resultados de
búsqueda para las principales palabras clave de nuestro negocio. Se trata pues de un tráfico casi gratuito porque no se
paga por cada click (a diferencia del SEM). Sin embargo, hay que aclarar que para gestionar el SEO de forma natural hay
que tener en cuenta muchas características y factores dictados por estos buscadores. Por ejemplo, hay que obtener
información sobre qué tiene en cuenta el algoritmo de los buscadores (que se actualiza de forma frecuente), las palabras
clave más interesantes para cada negocio, el contenido de la página, los enlaces, indexación, optimización del código de
la web, etc. En otras palabras podríamos decir que es necesario cumplir con todas las premisas del buscador. Si ya
trabajamos con una web o tienda online optimizada, según los expertos en marketing y posicionamiento SEO, lo más
laborioso es la selección de las palabras clave adecuadas, tanto por el volumen idóneo como por su fácil accesibilidad en
función del nivel de competencia. Este paso está directamente relacionado con otro aspecto a tener en cuenta, que
contribuirá a mejorar el resultado de la búsqueda, el cual son los enlaces. Un sitio web que dispone de un gran número
de enlaces a través de una palabra clave será mucho más relevante que otro. Ahora, eso sí, el hecho de lograr un buen
posicionamiento en un momento determinado no nos asegura el mantenernos de forma permanente, por lo que implica
un trabajo ininterrumpido para ocupar siempre los primeros lugares.
Características principales del posicionamiento SEO. Para conocer más a fondo de en qué consiste el SEO y su
utilidad en el entorno digital se presenta a continuación las principales características:
Es gratuito: Es una técnica muy rentable y beneficiosa para la salud de la web porque no necesita de inversión
inicial
Requiere de conocimientos técnicos: Es importante conocer bien las técnicas buenas, ya que realizar malas
prácticas mal vistas para google (Black Hat SEO) pueden ser penalizados por Google y acarrear resultados
desafortunados en una página web.
Consume tiempo: Los resultados no se aprecian de un día para otro por lo que es necesario invertir mucho
tiempo, paciencia y cariño al proyecto.
Se basa en las directrices que marcan los algoritmos del buscador: Google normalmente modifica sus
algoritmos varias veces al año y hay que estar continuamente actualizados para adaptarse a esos cambios.
Se obtiene resultados a largo plazo: Se debe tener la paciencia y constancia necesarias, los resultados de
posicionamiento serán mucho más estables y valiosos a largo plazo, siendo así mucho más difícil descender
posiciones que con una campaña de pago
Tipos de SEO. Como se comentaba con anterioridad, el posicionamiento SEO u orgánico trabaja cientos de factores
para optimizar una página web y hacerla más importante a vista de google. De esta forma que puede salir más arriba en
los resultados de búsqueda. Existen dos principales tipos de técnicas de posicionamiento SEO que deben ser trabajadas
comúnmente para alcanzar las primeras posiciones. Es importante destacar que no servirá de nada trabajar o centrarte
en unas técnicas más que otras, sino que la clave está en trabajar todas (o las más necesarias para la web) a la vez.
El SEO On Page (En página) hace referencia a la optimización dentro de una página web de cara a los
buscadores y a la experiencia del usuario. En SEO On Page el objetivo es destacar entre todas las otras webs,
haciéndola una web agradable para Google. Existen cientos de factores On page que pueden ser optimizados y
que se dividen en estas temáticas entre otras. Análisis de palabras clave: Toda la creación de la web y
contenidos tiene que realizarse en función a un buen estudio de palabras clave para conseguir información y
atraer tráfico a la web. Velocidad de carga de la página: una web no debe tardar más de 3 segundos en cargarse
completamente si no queremos ir a las últimas posiciones del ranking de Google Estructura Web: Crear una
buena jerarquía de paginación y enlazado interno es imprescindible. Optimización del código fuente: la mejor
práctica es mantenerlo limpio y organizado para facilitar su lectura. Actualización y creación de información y
contenido: En SEO se dice que el contenido es el rey, por lo que es muy importante crear nuevo contenido y
actualizar el viejo, para demostrar que es una web activa y actualizada.
El SEO off page se centra en todo lo que ocurre alrededor de nuestra web y que no está a nuestro alcance. El
propósito principal de esta técnica es la de crear un red de enlaces entrantes o Linkbuilding a nuestra web.
Google entiende que cuantas más páginas webs ajenas tengan enlaces hacia nuestra web, más interesante será
nuestro contenido y por tanto más personas querrán ver el contenido de esta, haciéndonos ascender en las
posiciones en Google. Lo más difícil de esta técnica es cómo conseguir buenos enlaces entrantes o backlinks,
ahí entra la labor del buen especialista en SEO.
¿Qué es el SEM? La definición del SEM es Search Engine Marketing se puede utilizar en la estrategia de marketing y
hace mención a la optimización que hace una página con publicidad en los motores de búsqueda como Google o Bing.
En el SEM si se crean correctamente los anuncios y siempre que se tenga presupuesto el buscador mostrará la página
en los primeros resultados de búsqueda reservados para anuncios. Por tanto, los resultados de pago hacen referencia a
las campañas de pago por clic, es decir, el enlace aparece en los enlaces patrocinados pagando una suma de dinero por
cada vez que algún usuario accede a nuestro sitio web, en otras palabras podríamos decir que son anuncios. Si se hace
bien la campaña SEM como resultado se obtiene un tráfico cualificado muy segmentado con el mayor control de los
resultados. El precio de este servicio está controlado ya que depende del presupuesto que haya decidido el anunciante y
la rapidez de lanzamiento puede reducirse a unas pocas horas. En el SEM cada vez que una persona hace clic en cada
anuncio el buscador (Adwords para Google por ejemplo) nos cobrará por ello. Esta es la gran diferencia con el SEO. Si
bien es cierto que hacer una campaña rentable en el SEM tiene su miga. Hay que enfocarse en palabras que impliquen
la intención de comprar, reservar, registrar o que satisfaga el objetivo que tengamos como empresa.
Características del posicionamiento
Anuncios de pago: aunque existen otras opciones de pago, la más habitual es la del coste por clic o CPC:
A corto plazo: ideal para campañas de duración determinada como Navidad, Black Friday o rebajas. Sin
embargo, los anuncios desaparecerán en cuanto dejes de pagar, y no generará ningún valor adicional a largo
plazo a la web derivado de estos anuncios.
Rápido: a publicación: los anuncios aparecerán en el mismo momento en que crees los anuncios y
desaparecerán en el momento que los elimines.
Tipos de campañas SEM. Dentro del SEM existen varios tipos de campañas que pueden ser interesantes en función de
las características de la web, ya que cada una de ellas tiene un objetivo y funcionalidades diferentes. A continuación se
describe:
Google Shopping. Si lo que tenemos es un comercio online y lo que nos interesa es aumentar las ventas de nuestro
negocio lo más recomendado es utilizar Google Shopping. Los años de experiencia en creación de tiendas online
demuestran que es una gran herramienta que favorece las ventas en la web por una sencilla razón, su funcionamiento es
muy sencillo y se anuncian todos y cada uno de los productos que aparecen en la web. Además en varias ocasiones
hemos llevado a cabo experimentos con Google Shopping con grandes resultados y que nos dan la razón en este
aspecto. Pero, ¿cómo aparecer en google shopping? Cabe destacar que no todas las tiendas online pueden acceder a
este tipo de campañas por que Google pone unas restricciones que se deben ajustar en la web, para que así, la
publicidad no sean rechazados por Google.
Los procesos del negocio son la base de todo buen desarrollo de software y normalmente se identifican en la
primera fase del proceso. Facilitan la abstracción del problema para construir la solución informática, y su
análisis está orientado a la identificación de los objetivos generales, los requisitos del software, la selección
del tipo de sistema de información y la arquitectura sobre la cual se debe construir el sistema.
El término "Workflow", que se traduce literalmente como "flujo de trabajo", hace referencia a la gestión
modelada y computarizada de todas las tareas que deben llevarse a cabo y de los distintos protagonistas
involucrados en realizar el proceso de negocios (también llamado proceso operativo). También puede
traducirse el término Worflow como gestión electrónica de procesos de negocios.
Un proceso de negocios representa interacciones bajo la forma de un intercambio de información entre los
distintos protagonistas, por ejemplo:
• Personas
• Aplicaciones o servicios
• Procesos de terceros
En la práctica, un Workflow puede describir:
• El circuito de validación.
• Las tareas que deben realizarse entre los distintos participantes de un proceso.
• Los plazos que deben respetarse.
• Los modos de validación.
Además, le proporciona a cada protagonista la información necesaria para que pueda completar su tarea. Por
ejemplo, en el caso de un proceso de publicación en línea, el Workflow da forma a las tareas de la cadena de
edición completa, desde la propuesta del editor hasta la validación de la persona a cargo de la publicación.
En la figura 2 presentan un mapa conceptual de cómo un proceso del negocio puede ser automatizado desde
su definición y su uso en un sistema (motor) administrador de workflow.
Un workflow está compuesto por los siguientes elementos:
1. Ítem. Es una clasificación de un componente que hace parte de un proceso. En otros térmi-nos, es todo
objeto/documento que requiera tramitarse por medio del workflow.
2. Atributos. Son las propiedades que describen cada ítem identificado en el workflow. Por ejemplo, si un
ítem es “Registrar Idea de Negocio”, entonces algunos atributos de ese ítem pueden ser la descripción de
la idea y el sector de negocio.
3. Proceso. Está compuesto de actividades (íconos) y transiciones (líneas de conexión o flechas).
4. Actividad. Es una unidad de trabajo que contribuye a la ejecución de un proceso. Puede ser una
notificación, una función, un evento, un proceso o subproceso.
5. Notificación. Es el resultado de cada actividad dentro del flujo de trabajo, es decir, es la forma de anunciar
los cambios de estado de los objetos del sistema que interesan a los actores del proyecto. Así, en la figura
3 hay varias notificaciones, entre ellas: “Aprueba idea de negocio”.
6. Función. Actividad usada para ejecutar pasos totalmente automatizados en el proceso. Los pasos
automatizados de ordinario los realiza una aplicación transaccional.
7. Evento. Representa un acontecimiento del negocio dentro de un proceso. Un evento puede recibir, atender
o enviar un acontecimiento del negocio.
Las actividades de función y de evento tienen un costo asociado. El costo es un valor que re-presenta el
tiempo (número de segundos) que la actividad tarda en recibir una función, un evento o una notificación
para darle continuidad al flujo. El tiempo es calculado por el motor del workflow.
8. Mensajes. Se refiere a una actividad de notificación asociada a un ítem que puede enviar a un usuario o
rol.
Modelando los Procesos de Negocios
Para conseguir sus objetivos, una empresa organiza su actividad por medio de un conjunto
de procesos de negocio. Cada uno de ellos se caracteriza por una colección de datos que
son producidos y manipulados mediante un conjunto de tareas, en las que ciertos agentes
(por ejemplo, trabajadores o departamentos) participan de acuerdo a un flujo de trabajo
determinado. Además, estos procesos se hallan sujetos a un conjunto de reglas de negocio,
que determinan las políticas y la estructura de la información de la empresa. Por tanto, la
finalidad del modelado del negocio es describir cada proceso del negocio, especificando sus
datos, actividades (o tareas), roles (o agentes) y reglas de negocio (que determina como se
van a estructurar la información y las políticas de la organización).
Notación del Modelado de Proceso
Un modelo de proceso de negocio típicamente define los siguientes elementos:
Actores o participantes en el proceso
El Objetivo
Las Reglas o pautas del Negocio
Las Entradas específicas
Las Salidas especificas
Los Recursos consumidos
La secuencia de las Actividades; y Los
Eventos que dirigen el proceso El
proceso de negocio:
Puede afectar a más de una unidad organizacional
Tiene un impacto horizontal en la organización
Actores
Los actores pueden ser personas (roles que desempeñan las personas), aparatos eléctricos
o mecánicos, y otros sistemas de cómputo que intervienen en el negocio. Se pueden definir
categorías generales de actores (como cliente en el ejemplo de abajo) y especializarlos
(como ClienteComercial) a través de relaciones de generalización.
Ejemplo:
El Proceso de Negocio
Un proceso de negocio es una colección de actividades diseñadas para producir una salida
específica para un cliente o un mercado en particular. Esto implica un fuerte énfasis en cómo se
realiza el trabajo dentro de una organización, en contraposición con un enfoque del producto en
qué se produce. Por lo tanto, el proceso es una secuencia específica de actividades de trabajo
a través del tiempo y del espacio, con un inicio, un final y unas entradas y salidas claramente
definidas: una estructura para la acción.
A continuación se dibuja la notación que se utiliza para indicar un proceso de negocio:
Un conector ―goal‖ indica que el objeto adjunto al proceso describe el objetivo del proceso. Un
objetivo es la justificación para llevar a cabo la actividad.
Reglas o pautas del Negocio
En una organización, tanto los procesos como los datos que estos manejan, están
restringidos por las reglas del negocio. Estas reglas aseguran que la actividad de la empresa
se lleva a cabo de acuerdo a restricciones impuestas desde el entorno (leyes o normas) o
desde dentro de la propia organización.
Las reglas de negocio deben ser:
1. Reglas de Flujo. Estas reglas determinan y delimitan como fluye la información a través del
proceso. Generalmente asociadas a la aceptación o rechazo de un trámite. Ejemplo: Si el
valor del servicio académico no supera un salario mínimo y el pago es con tarjeta débito o
crédito se recibe en caja, caso contrario, se debe hacer una consignación
2. Reglas de Operación: Se debe establecer las condiciones para realizar la operación. Puede
asociarse a precondiciones y postcondiciones (antes y después de la operación). A
continuación se presenta Reglas de operación mediante una tabla diseñada por el profesor.
DESCRIPCIÓN DE LA REGLA
CRITERIOS DE VALIDACIÓN
Nombre de la Descripción
regla de la
ID Regla Elementos Objetos de Atributo Operador Objetos de Atributo Operador Condición
negocio Lógico negocio (AND/OR)
Servicio
Académico
Condición Cuenta Saldo > Valor Precondición
Valor servicio
Realizar un Se debe
académico
pago con verificar si el Condición menor a un
tarjeta debito saldo es
mayor al salario mínimo
valor del
servicio Qué hacer
académico
R1 con el
Resultado Si se Acciones Imprimir Recibo Post
de la presenta Condición
Evaluación
de las Se puede
Condiciones realizar el
Si no se Acciones servicio
presenta académico
Un conector ―regla‖ indica que el objeto adjunto al proceso descríbe las reglas del
negocio aplicadas
Entradas, Recursos e Información
Los procesos de negocio emplean información para adaptar o completar sus actividades. La
información, a diferencia de los recursos, no se consume en los procesos, sino que se usa
como parte del proceso de transformación. La información puede provenir de fuentes externas,
de los clientes, de las unidades organizacionales internas e inclusive puede ser el producto de
otros procesos.
Un recurso es una entrada para un proceso de negocio y, a diferencia de la información,
típicamente se consume durante el procesamiento. Por ejemplo, a medida que cada servicio
diario de tren sale y registran las novedades, el recurso servicio se usa tanto como concierna
al proceso de registración de novedades de tiempos de los trenes.
A continuación se muestra la notación para ilustrar la información y los recursos:
Eventos
Un evento es la recepción de algún objeto, un momento o fecha cumplidos, una notificación
o cualquier otro disparador que inicie un proceso de negocio. El evento se puede consumir y
transformar (por ejemplo una orden de cliente) o simplemente actuar como un catalizador
(por ejemplo, el proceso en lote nocturno).
Salidas
Un proceso de negocio típicamente producirá una o más salidas de valor para el negocio, para
uso interno o para satisfacer requisitos externos. Una salida puede ser un objeto físico (tal
como un informe o una factura), una transformación de recursos crudos con un nuevo
ordenamiento (una agenda diaria) o un resultado final de un proceso tal como completar una
solicitud de cliente.
Una salida de un proceso de negocio puede alimentar a otro, como un ítem requerido o como
un disparador para iniciar nuevas actividades.
Un conector ―output‖ indica que el proceso de negocio produce algún objeto (físico o lógico)
que es de valor para la organización, como un ítem externamente visible o como un producto
interno (posiblemente alimentando otro proceso).
La segunda parte del modelo de proceso está para responder a una orden de
cliente y para despachar los ítems requeridos. Este proceso involucra el
inventario, la empresa distribuidora y se completa cuando la orden se entrega al
cliente.
ANEXO4 MODELAMIENTO DE UN SISTEMA
Introducción
Una de las principales capacidades que debe poseer un Ingenierio Informático es la habilidad de
modelar sistemas. Estos sistemas suelen ser fundamentalmente empresas aunque también deberán ser
capaces de modelar aplicaciones software, dispositivos hardware, procesos de producción, etc. El
ingeniero informático domina y utiliza un conjunto de metodologías de los Sistemas de Información y de la
Ingeniería del Software, como también modelos de desarrollo, que usa para conocer el comportamiento de
los sistemas (de información o software) con el que se enfrenta, entender lo que el cliente le desea
transmitir, lograr una especificación clara de los requerimientos del software, de arquitectura etc.
Es pues, el modelado una actividad frecuente en el ingeniero informático y debe éste ser
consciente de los procesos y entidades que entran en juego cuando esta modelando.
La necesidad de modelar
A grandes rasgos, el ingeniero informático necesita modelar por,
- Simplificar la realidad consiguiendo una mejor comprensión de la misma.
- Dividir el sistema en subsistemas para observar como interactúan sus diferentes partes.
- El diseño de software de un sistema bien modelado es mucho más sencillo de desarrollar y
mantener.
- Adquirir y comprender todos los requerimientos que el cliente le exige al software.
Todo el conocimiento humano se estructura bajo infinidad de modelos, pero el ingeniero informático
debe tener la capacidad de simplificar estos modelos y ser capaz de expresarlos en ―el papel‖ y aplicarlos
en el desarrollo del software.
Los tres mundos
Si se propone como ejercicio el modelar como cocinar un arroz, al principio se puede pensar que es
fácil de hacer, pero después se reflexiona, sobre ello surgen mil y una duda de cómo hacerlo, tales como:
qué tipo de arroz, margarina o aceite, condimentos (cebolla o ajo), agua, etc. Esto hace reflexionar lo difícil
que es modelar hasta los sistemas más simples y que es imposible modelar un sistema contemplando
todos los casos. Además la concepción del sistema para cada ingeniero informático es diferente y esto
hará que cada uno genere modelos diferentes.
El ingenieiro informático (analista), en su tarea de modelar debe ser consciente de los tres mundos
en los que debe ―vivir y trabajar‖. En primer lugar, está el MUNDO 1, este es el mundo que le rodea y que
debe modelar, es un mundo complejo con infinidad de subsistemas relacionados entre sí (no isolados). De
este mundo el informático estará interesado en un segmento del mismo, normalmente, la EMPRESA.
Por otro lado está el MUNDO 3, el mundo ―del saber humano‖ o de los modelos. Y en medio de los
dos mundos, el MUNDO 2, que es el ingeniero informático con sus órganos sensoriales y de percepción,
su experiencia, su conocimiento, etc.
Además, el ingenieiro informático vive en el mundo 1, luego en cierta manera, en el mundo 2 está
inmerso dentro del mundo 1.
Las acciones fundamentales que hace el ingenieiro informático para modelar son:
- Observar el mundo 1.
- Extraer casos, peculiaridades (proceso de inducción).
- Exportarlas al mundo 3.
- Verificación del modelo
Inducción y deducción. Circulo mayéutico
En el arte de crear modelos participan los procesos de inducción y deducción. La inducción se
refiere a la capacidad generalizar, observando multitud de casos el informático es capaz crear un modelo.
Y en el proceso de deducción el ingenieiro informático utiliza el modelo para obtener nuevos casos
específicos.
Modelos de referencia
Dentro del mundo 2, es útil para el ingenieiro informático reconocer y utilizar entre todos los
modelos que lo forman aquellos que le sirvan de referencia para crear nuevos modelos. El proceso se
indica en el siguiente esquema:
Con el ejemplo anterior, entonces que es mejor aquel ingeniero informático con mayor experiencia,
pues tendrá mayor número de modelos de referencia para aplicar en diferentes situaciones. Esto es así,
pero el ingenieiro informático experto debe ser consciente de los modelos de referencia que aplica, usar
por inercia o de manera inconsciente un modelo de referencia puede hacer que el modelo creado pierda
peculiaridades importantes del sistema que no se pueden obviar.
Un informático experto tiende a ver la empresa de manera general, comparando sus subsistemas y
modelos a los subsistemas y modelos de otras empresas que ya ha estudiado. En cambio, un ingenieiro
informático junior al no tener experiencia tenderá a considerar las peculiaridades de la empresa y le será
más difícil crear modelos generales que se adapten a ella.
Modelos de empresa
El principal sistema donde trabaja el ingenieiro informático es en la
empresa/organización/comunidad. Es por tanto importante conocer las diferentes teorías de como se
estructuran y organizan.
Muy básicamente podemos tener dos visiones sobre la empresa/organización/comunidad, una
horizontal y otra vertical:
Hay cuatro clases de construcciones gráficas que se usan en la notación de UML: íconos, símbolos
bidimensionales, rutas y cadenas.
Un ícono es una figura gráfica con un tamaño y forma fijos. No se amplía para contener a su contenido.
Los iconos pueden aparecer dentro de símbolos de área, como terminadores en las rutas o como
símbolos independientes que puedan o no conectar con las rutas.
Los símbolos de dos dimensiones tienen altura y anchura variables, y pueden ampliarse para permitir
otras cosas tales como listas de cadenas o de otros símbolos. Muchos de ellos están divididos en
compartimientos similares o de tipos diferentes. Las rutas se conectan con los símbolos, el arrastrar o
suprimir uno de ellos afecta a su contenido y las rutas conectadas.
Una ruta es una secuencia de segmentos de recta o de curva que se unen en sus puntos finales.
Conceptualmente una ruta es una sola entidad topológica, aunque sus segmentos se pueden manipular
gráficamente. Un segmento no debería existir separado de su ruta. Las rutas siempre van conectadas
en ambos extremos.
Las cadenas presentan varias clases de información en una forma "no analizada", UML asume que
cada uso de una cadena en la notación tiene una sintaxis por la cual pueda ser analizada la información
del modelo subyacente. Las cadenas pueden existir como el contenido de un compartimiento, como
elementos en las listas, como etiquetas unidas a los símbolos o a las rutas, o como elementos
independientes en un diagrama.
UML está compuesto por los siguientes diagramas:
Estructura
Comportamiento
Diagramas de
Interacción, objeto, mensaje, activación.
Secuencia
Vista de interacción
Objeto es una entidad discreta con límites bien definidos y con identidad, es una unidad atómica que
encapsula estado y comportamiento. La encapsulación en un objeto permite una alta cohesión y un bajo
acoplamiento. El Objeto es reconocido también como una instancia de la clase a la cual pertenece.
Un objeto se puede ver desde dos perspectivas relacionadas: como una entidad de un determinado
instante de tiempo que posee un valor específico (Un objeto puede caracterizar una entidad física -coche-)
y como un poseedor de identidad que tiene distintos valores a lo largo del tiempo (abstracta -ecuación
matemática-).
Cada objeto posee su propia identidad exclusiva y se puede hacer referencia a él mediante una
denominación exclusiva que permite accederle. El Modelado de Objetos permite representar el ciclo de
vida de los objetos a través de sus interacciones. En UML, un objeto se representa por un rectángulo con
un nombre subrayado.
La regla general para la notación de instancias consiste en utilizar el mismo símbolo geométrico que el
descriptor. En la instancia se muestran los posibles valores pero las propiedades compartidas sólo se
ponen de manifiesto en el descriptor. La notación canónica es un rectángulo con tres compartimientos. En
el primero va el nombre del objeto, en el segundo sus atributos y en el tercero sus operaciones. Este
último puede ser omitido si así se prefiere.
Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes características:
Constituye un identificador único y global para cada objeto dentro del sistema.
Es determinado en el momento de la creación del objeto.
Es independiente de la localización física del objeto, es decir, provee completa independencia de
localización.
Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de
estructura.
No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el objeto deje de
existir.
No se tiene ningún control sobre los oids y su manipulación resulta transparente. Sin embargo, es preciso
contar con algún medio para hacer referencia a un objeto utilizando referencias del dominio (valores de
atributos).
El estado evoluciona con el tiempo. Algunos atributos pueden ser constantes, el comportamiento agrupa
las competencias de un objeto y describe las acciones y reacciones de ese objeto. Las operaciones de un
objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto.
Persistencia:
Comunicación:
Un sistema informático puede verse como un conjunto de objetos autónomos y concurrentes que trabajan
de manera coordinada en la consecución de un fin específico. El comportamiento global se basa pues en
la comunicación entre los objetos que la componen.
Categorías de objetos:
Activos o Pasivos
Cliente -- Servidores, Agentes
1. Objeto Activo: posee un hilo de ejecución (thread) propio y puede iniciar una actividad.
2. Objeto Pasivo: no puede iniciar una actividad pero puede enviar estímulos una vez que se le
solicita un servicio.
3. Cliente es el objeto que solicita un servicio.
4. Servidor es el objeto que provee el servicio solicitado.
5. Los agentes reúnen las características de clientes y servidores. Son la base del mecanismo de
delegación. Introducen indirección: un cliente puede comunicarse con un servidor que no conoce
directamente.
Mensajes:
La unidad de comunicación entre objetos se llama mensaje. El mensaje es el soporte de una comunicación
que vincula dinámicamente los objetos que fueron separados previamente en el proceso de
descomposición. Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinámico. Un
estímulo causará la invocación de una operación, la creación o destrucción de un objeto o la aparición de
una señal. Un mensaje es la especificación de un estímulo.
Tipos de flujo de control:
Diagrama de Objetos
Diagramas de Clases
El Diagrama de Clases es el diagrama principal para el análisis y diseño. Un diagrama de clases presenta
las clases del sistema con sus relaciones estructurales y de herencia. La definición de clase incluye
definiciones para atributos y operaciones. El modelo de casos de uso aporta información para establecer
las clases, objetos, atributos y operaciones.
El mundo real puede ser visto desde abstracciones diferentes (subjetividad)
Mecanismos de abstracción:
1. Clasificación / Instanciación
2. Composición / Descomposición
3. Agrupación / Individualización
4. Especialización / Generalización
La clasificación es uno de los mecanismos de abstracción más utilizados. La clase define el ámbito de
definición de un conjunto de objetos, y cada objeto pertenece a una clase, Los objetos se crean por
instanciación de las clases.
nombre de la clase
atributos de la clase
operaciones de la clase
Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos. Por esta
razón se crearon niveles de visibilidad para los elementos que son:
(-) Privado: es el más fuerte. Esta parte es totalmente invisible (excepto para clases friends en
terminología C++)
(#) Los atributos/operaciones protegidos están visibles para las clases friends y para las clases
derivadas de la original.
(+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se
está transgrediendo el principio de encapsulación)
Los enlaces entre objetos pueden representarse entre las respectivas clases y sus formas de relación son:
Agregación:
La agregación representa una relación parte_de entre objetos. En UML se proporciona una escasa
caracterización de la agregación. Esta relación puede ser caracterizada con precisión determinando las
relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos
componentes.
Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo. Un
Diagrama de Clases muestra la abstracción de una parte del dominio. Un Diagrama de Objetos representa
una situación concreta del dominio. Las clases abstractas no son instanciadas.
Generalización:
Permite gestionar la complejidad mediante un ordenamiento taxonómico de clases, se obtiene usando los
mecanismos de abstracción de Generalización y/o Especialización. La Generalización consiste en
factorizar las propiedades comunes de un conjunto de clases en una clase más general. Los nombres
usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada. Las
subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de
la clase padre están disponibles en sus clases hijas. La Generalización y Especialización son equivalentes
en cuanto al resultado: la jerarquía y herencia establecidas. Generalización y Especialización no son
operaciones reflexivas ni simétricas pero sí transitivas. La especialización es una técnica muy eficaz para
la extensión y reutilización.
La noción de clase está próxima a la de conjunto. Dada una clase, podemos ver el conjunto relativo a las
instancias que posee o bien relativo a las propiedades de la clase. Generalización y especialización
expresan relaciones de inclusión entre conjuntos
Diagrama de Clases
Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo
se desea que trabaje. No pertenece estrictamente al enfoque orientado a objeto, es una técnica para
captura de requisitos.
Los Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el
comportamiento de un sistema desde el p.d.v. del usuario.
Permiten definir los límites del sistema y las relaciones entre el sistema y el entorno.
Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la
implementación.
Comparación con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado.
Los Casos de Uso cubren la carencia existente en métodos previos (OMT, Booch) en cuanto a
la determinación de requisitos.
Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios
que participan en el mismo.
Están basados en el lenguaje natural, es decir, es accesible por los usuarios.
Actores
La misma persona física puede interpretar varios papeles como actores distintos, el nombre del actor
describe el papel desempeñado.
Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interacción,
los escenarios, desde el punto de vista del usuario. Los casos de uso intervienen durante todo el ciclo de
vida. El proceso de desarrollo estará dirigido por los casos de uso. Un escenario es una instancia de un
caso de uso.
Comunicación
Inclusión: una instancia del Caso de Uso origen incluye también el comportamiento descrito por
el Caso de Uso destino. «include» reemplazó al denominado «uses»
Extensión: el Caso de Uso origen extiende el comportamiento del Caso de Uso destino.
«extend»
Herencia: el Caso de Uso origen hereda la especificación del Caso de Uso destino y
posiblemente la modifica y/o amplía.
Parámetros para la construcción de un caso de uso:
Un caso de uso debe ser simple, inteligible, claro y conciso. Generalmente hay pocos actores asociados a
cada Caso de Uso. Preguntas clave:
Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones. Muestran las
opciones de realización incluyendo código fuente, binario y ejecutable. Los componentes representan
todos los tipos de elementos software que entran en la fabricación de aplicaciones informáticas. Pueden
ser simples archivos, paquetes de Ada, bibliotecas cargadas dinámicamente, etc. Las relaciones de
dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los
servicios ofrecidos por otro componente.
Un diagrama de componentes muestra clasificadores de componentes, las clases definidas en ellos, y las
relaciones entre ellas. Los clasificadores de componentes también se pueden anidar dentro de otros
clasificadores de componentes para mostrar relaciones de definición.
Un diagrama que contiene clasificadores de componentes y de nodo se puede utilizar para mostrar las
dependencias del compilador, que se representa como flechas con líneas discontinuas (dependencias) de
un componente cliente a un componente proveedor del que depende. Los tipos de dependencias son
específicos del lenguaje y se pueden representar como estereotipos de las dependencias.
El diagrama también puede usarse para mostrar interfaces y las dependencias de llamada entre
componentes, usando flechas con líneas discontinuas desde los componentes a las interfaces de otros
componentes.
El diagrama de componente hace parte de la vista física de un sistema, la cual modela la estructura de
implementación de la aplicación por sí misma, su organización en componentes y su despliegue en nodos
de ejecución. Esta vista proporciona la oportunidad de establecer correspondecias entre las clases y los
componentes de implementación y nodos. La vista de implementación se representa con los diagramas de
componentes.
Diagrama de Componentes
Qué es Componente?
Código:
Un componente contiene el código para las clases de implementación y otros elementos. Un componente
de código fuente es un paquete para el código fuente de las clases de implementación. Algunos lenguajes
de programación distinguen archivos de declaración de los archivos de método, pero todos son
componentes. Un componente de código binario es un paquete para el código compilado. Una biblioteca
del código binario es un componente.
Cada tipo de componente contiene el código para las clases de implementación que realizan algunas
clases e interfaces lógicas. La relación de realización asocia un componente con las clases y las interfaces
lógicas que implementan sus clases de implementación. Las interfaces de un componente describen la
funcionalidad que aporta. Cada operación de la interfaz debe hacer referencia eventualmente a un
elemento de la implementación disponible en el componente.
La estructura estática, ejecutable de una implementación de un sistema se puede representar como un
conjunto interconectado de componentes. Las dependencias entre componentes significan que los
elementos de la implementación en un componente requieren los serivios de los elementos de
implemntación en otros componentes. Tal uso requiere que dichos elementos sean de visibilidad pública.
Identidad:
Un componente de identidad tiene identidad y estado. Posee los objetos físicos que están situados en él.
Puede tener atributos, relaciones de composición con los objetos poseídos, y asociaciones con otros
componentes. Desde este punto de vista es una clase. Sin embargo la totalidad de su estado debe hacer
referencia a las instancias que contiene.
Estructura:
Un componente ofrece un conjunto de elementos de implementación, esto significa que el componente
proporciona el código para los elementos. Un componente puede tener operaciones e interfaces. Un
componente de identidad es un contenedor físico para las entidades físicas como bases de datos. Para
proporcionar manejadores para sus elementos contenidos, puede tener atributos y asociaciones salientes,
que deben ser implementadas por sus elementos de implementación. Este componente se representa con
un rectángulo con dos rectángulos más pequeños que sobresalen en su lado izquierdo.
Las operaciones e interfaces disponibles para los objetos exteriores se pueden representar directamente
en el símbolo de clase. Estos son su comportamiento como clase. Los contenidos del subsistema se
representan en un diagrama separado.
Las dependencias de un componente con otros componentes o elementos del modelo se representan
usando líneas discontinuas con la punta de flecha hacia los elementos del proveedor. Sí un componente
es la realización de una interfaz, se representa con un círculo unido al símbolo del componente por un
segmento de línea.
Paquetes
Cualquier sistema grande se debe dividir en unidades más pequeñas, de modo que las personas
puedan trabajar con una cantidad de información limitada, a la vez y de modo que los equipos de
trabajo no interfieran con el trabajo de los otros.
Un paquete es una parte de un modelo. Cada parte del modelo debe pertenecer a un paquete. Pero
para ser funcional, la asignación debe seguir un cierto principio racional, tal como funcionalidad
común, implementación relacionada y punto de vista común. UML no impone una regla para
componer los paquetes.
Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas agrupando
elementos de modelado. Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema).
Los paquetes son unidades de organización jerárquica de uso general de los modelos de UML. Pueden
ser utilizados para el almacenamiento, el control de acceso, la gestión de la configuración y la construcción
de bibliotecas que contengan fragmentos reutilizables del modelo.
Un paquete puede contener otros paquetes, sin límite de anidamiento pero cada elemento pertenece a
(está definido en) sólo un paquete.
Los paquetes contienen elementos del modelo al más alto nivel, tales como clases y sus relaciones,
máquinas de estado, diagramas de casos de uso, interacciones y colaboraciones; atributos, operaciones,
estados, líneas de vida y mensajes están contenidos en otros elementos y no aparecen como contenido
directo de los paquetes.
Las dependencias que se presentan entre elementos individuales, pero en un sistema de cualquier
tamaño, deben ser vistas en un nivel más alto. las dependencias entre paquetes resumen dependencias
entre los elementos internos a ellos, es decir, las dependencias del paquete son derivables a partir de las
dependencias entre los elementos individuales.
La presencia de una dependencia entre paquetes implica que existe en un enfoque ascendente (una
declaración de existencia), o que se permite que exista más adelante en un enfoque descendente (una
restricción que limita cualquier otra relación), por lo menos un elemento de relación con el tipo de
dependencia indicado entre elementos individuales dentro de los paquetes correspondientes.
Las dependencias múltiples del mismo tipo entre elementos individuales se agregan a una sola
dependencia entre los paquetes que contienen los elementos. Si las dependencias entre elementos
contienen estereotipos, éste puede ser omitido en la dependencia del paquete, para dar una sola
dependencia de alto nivel.
VISTA DE DESPLIEGUE
Diagramas de Despliegue
Los Diagramas de Despliegue muestran la disposición física de los distintos nodos que componen un
sistema y el reparto de los componentes sobre dichos nodos. La vista de despliegue representa la
disposición de las instancias de componentes de ejecución en instancias de nodos conectados por enlaces
de comunicación. Un nodo es un recurso de ejecución tal como un computador, un dispositivo o memoria.
Los estereotipos permiten precisar la naturaleza del equipo:
Dispositivos
Procesadores
Memoria
Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse.
Esta vista permite determinar las consecuencias de la distribución y la asignación de recursos. Las
instancias de los nodos pueden contener instancias de ejecución, como instancias de componentes y
objetos. El modelo puede mostrar dependencias entre las instancias y sus interfaces, y también
modelar la migración de entidades entre nodos u otros contenedores.
Esta vista tiene una forma de descriptor y otra de instancia. La forma de instancia muestra la
localización de las instancias de los componentes específicos en instancias específicas del nodo
como parte de una configuración del sistema. La forma de descriptor muestra qué tipo de
componentes pueden subsistir en qué tipos de nodos y qué tipo de nodos se pueden conectar, de
forma similar a un diagrama de clases, esta forma es menos común que la primera.
DIAGRAMAS DE COMPORTAMIENTO
VISTA DE MAQUINA DE ESTADOS
Diagrama de Estado
Muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación, junto con
los cambios que permiten pasar de un estado a otro.
Los Diagramas de Estado representan autómatas de estados finitos, desde el p.d.v. de los estados y las
transiciones. Son útiles sólo para los objetos con un comportamiento significativo. Cada objeto está en un
estado en cierto instante. El estado está caracterizado parcialmente por los valores algunos de los
atributos del objeto. El estado en el que se encuentra un objeto determina su comportamiento. Cada objeto
sigue el comportamiento descrito en el Diagrama de Estados asociado a su clase. Los Diagramas de
Estados y escenarios son complementarios, los Diagramas de Estados son autómatas jerárquicos que
permiten expresar concurrencia, sincronización y jerarquías de objetos, son grafos dirigidos y
deterministas. La transición entre estados es instantánea y se debe a la ocurrencia de un evento.
Estado
Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto está esperando alguna
operación, tiene cierto estado característico o puede recibir cierto tipo de estímulos. Se representa
mediante un rectángulo con los bordes redondeados, que puede tener tres compartimientos: uno para el
nombre, otro para el valor característico de los atributos del objeto en ese estado y otro para las acciones
que se realizan al entrar, salir o estar en un estado (entry, exit o do, respectivamente
Eventos
Es una ocurrencia que puede causar la transición de un estado a otro de un objeto. Esta ocurrencia puede
ser una de varias cosas:
El nombre de un evento tiene alcance dentro del paquete en el cual está definido, no es local a la clase
que lo nombre.
Envío de mensajes
Además de mostrar y transición de estados por medio de eventos, puede representarse el momento en el
cual se envían mensajes a otros objetos. Esto se realiza mediante una línea punteada dirigida al diagrama
de estados del objeto receptor del mensaje.
Transición simple
Una transición simple es una relación entre dos estados que indica que un objeto en el primer estado
puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas
condiciones son satisfechas. Se representa como una línea sólida entre dos estados, que puede venir
acompañada de un texto con el siguiente formato:
event-signature "[" guard-condition] "/" action-expression "^"send-clause
event-signature es la descripción del evento que da lugar la transición, guard-condition son las
condiciones adicionales al evento necesarias para que la transición ocurra, action-expression es un
mensaje al objeto o a otro objeto que se ejecuta como resultado de la transición y el cambio de estado y
send-clause son acciones adicionales que se ejecutan con el cambio de estado, por ejemplo, el envío de
eventos a otros paquetes o clases.
Transición interna
Es una transición que permanece en el mismo estado, en vez de involucrar dos estados distintos.
Representa un evento que no causa cambio de estado. Se denota como una cadena adicional en el
compartimiento de acciones del estado.
Acciones:
Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición. Se puede
especificar el ejecutar una acción como consecuencia de entrar, salir, estar en un estado, o por la
ocurrencia de un evento
Generalización de Estados:
Podemos reducir la complejidad de estos
diagramas usando la generalización de estados.
Distinguimos así entre superestado y subestados.
Un estado puede contener varios subestados disjuntos.
Los subestados heredan las variables de estado y las transiciones externas.
La agregación de estados es la composición de un estado a partir de varios estados
independientes.
La composición es concurrente por lo que el objeto estará en alguno de los estados de cada uno de los
subestados concurrentes. La destrucción de un objeto es efectiva cuando el flujo de control del autómata
alcanza un estado final no anidado. La llegada a un estado final anidado implica la subida al superestado
asociado, no el fin del objeto.
Subestados
Un estado puede descomponerse en subestados, con transiciones entre ellos y conexiones al nivel
superior. Las conexiones se ven al nivel inferior como estados de inicio o fin, los cuales se suponen
conectados a las entradas y salidas del nivel inmediatamente superior.
Transacción Compleja
Una transición compleja relaciona tres o más estados en una transición de múltiples fuentes y/o múltiples
destinos. Representa la subdivisión en threads del control del objeto o una sincronización. Se representa
como una línea vertical de la cual salen o entran varias líneas de transición de estado.
Transición a estados anidados
Una transición de hacia un estado complejo (descrito mediante estados anidados) significa la entrada al
estado inicial del subdiagrama. Las transiciones que salen del estado complejo se entienden como
transiciones desde cada uno de los subestados hacia afuera (a cualquier nivel de profundidad).
Transiciones temporizadas
Las esperas son actividades que tienen asociada cierta duración.
La actividad de espera se interrumpe cuando el evento esperado tiene lugar.
Este evento desencadena una transición que permite salir del estado que alberga la actividad de
espera. El flujo de control se transmite entonces a otro estado.
Diagrama de Estado
El Diagrama de Actividad es una especialización del Diagrama de Estado, organizado respecto de las
acciones y usado para especificar:
Un método
Un caso de uso
Un estado de actividad representa una actividad: un paso en el flujo de trabajo o la ejecución de una
operación. Un grafo de actividades describe grupos secuenciales y concurrentes de actividades. Los
grafos de actividades se muestran en diagramas de actividades. Las actividades se enlazan por
transiciones automáticas. Cuando una actividad termina se desencadena el paso a la siguiente
actividad.
Un diagrama de actividades es provechoso para entender el comportamiento de alto nivel de la
ejecución de un sistema, sin profundizar en los detalles internos de los mensajes. Los parámetros de
entrada y salida de una acción se pueden mostrar usando las relaciones de flujo que conectan la
acción y un estado de flujo de objeto.
Un grafo de actividades contiene estados de actividad que representa la ejecución de una secuencia en un
procedimiento, o el funcionamiento de una actividad en un flujo de trabajo. En vez de esperar un evento,
como en un estado de espera normal, un estado de actividad espera la terminación de su cómputo.
Cuando la actividad termina, entonces la ejecución procede al siguiente estado de actividad dentro del
diagrama. una transición de terminación es activada en un diagrama de actividades cuando se completa la
actividad precedente. Los estados de actividad no tienen transiciones con eventos explícitos, peor pueden
ser abortados por transiciones en estados que los incluyen.
Un grafo de actividades puede contener también estados de acción, que son similares a los de actividad
pero son atómicos y no permiten transiciones mientras están activos. Los estados de acción se deben
utilizar para las operaciones cortas de mantenimiento.
Un diagrama de actividades puede contener bifurcaciones, así como divisiones de control en hilos
concurrentes. los hilos concurrentes representan actividades que se pueden realizar concurrentemente por
los diversos objetos o personas. La concurrencia se representa a partir de la agregación, en la cual cada
objeto tiene su propio hilo. Las actividades concurrentes se pueden realizar simultáneamente o en
cualquier orden. Un diagrama de actividades es como un organigrama tradicional, excepto que permite el
control de concurrencia además del control secuencial.
Notación
Un estado de actividad se representa como una caja con los extremos redondeados que contiene una
descripción de actividad. Las transacciones simples de terminación se muestran como flechas. Las ramas
se muestran como condiciones de guarda en transiciones o como diamantes con múltiples flechas de
salida etiquetadas. Una división o una unión de control se representan con múltiples flechas que entran o
salen de la barra gruesa de sincronización.
Cuando es necesario incluir eventos externos, la recepción de un evento se puede mostrar como un
disparador en una transición, o como un símbolo especial que denota la espera de una señal.
A menudo es útil organizar las actividades en un modelo según su responsabilidad. Esta clase de
asignación puede mostrarse organizando las actividades en regiones distintas separados por líneas en el
diagrama. Debido a su aspecto, esto es conocido como Calles.
Un diagrama de actividades puede mostrar el flujo de objetos como valores. Para un valor de salida, se
dibuja una flecha con línea discontinua desde la actividad al objeto. Para un valor de entrada, se dibuja
una flecha con línea discontinua desde el objeto a una actividad.
Diagrama de Actividades
Ejemplo de Diagrama de Actividades
VISTA DE INTERACCION
Diagramas de Interacción:
La vista de interacción describe secuencias de intercambios de mensajes entre los roles que implementan
el comportamiento de un sistema. Un rol clasificador, o simplemente "un rol", es la descripción de un
objeto, que desempeña un determinado papel dentro de una interacción, distinto de los otros objetos de la
misma clase. Esta visión proporciona una vista integral del comportamiento del sistema, es decir, muestra
el flujo de control a través de muchos objetos. La vista de interacción se exhibe en dos diagramas
centrados en distintos aspectos pero complementarios: centrados en los objetos individuales y centrados
en objetos cooperantes.
Los objetos interactúan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los
diagramas de interacción muestran cómo se comunican los objetos en una interacción. Existen dos tipos
de diagramas de interacción: el Diagrama de Colaboración y el Diagrama de Secuencia.
El Diagrama de Secuencia es más adecuado para observar la perspectiva cronológica de las
interacciones, muestra la secuencia explícita de mensajes y son mejores para especificaciones de tiempo
real y para escenarios complejos. El Diagrama de Colaboración ofrece una mejor visión espacial
mostrando los enlaces de comunicación entre objetos, muestra las relaciones entre objetos y son mejores
para comprender todos los efectos que tiene un objeto y para el diseño de procedimientos. El diagrama de
Colaboración puede obtenerse automáticamente a partir del correspondiente diagrama de Secuencia (o
viceversa).
Diagramas de Secuencia:
Diagramas de Colaboración:
Diagramas de Colaboración:
Es una descripción de una colección de objetos que interactúan para implementar un cierto
comportamiento dentro de un contexto. Describe una sociedad de objetos cooperantes unidos para
realizar un cierto propósito. Una colaboración contiene ranuras que son rellenadas por los objetos y
enlaces en tiempo de ejecución. Una ranura de colaboración se llama Rol porque describe el propósito de
un objeto o un enlace dentro de la colaboración.
Un rol clasificador representa una descripción de los objetos que pueden participar en una ejecución de la
colaboración, un rol de asociación representa una descripción de los enlaces que pueden participar en una
ejecución de colaboración. Un rol de clasificador es una asociación que está limitada por tomar parte en la
colaboración. Las relaciones entre roles de clasificador y asociación dentro de una colaboración sólo
tienen sentido en ese contexto. En general fuera de ese contexto no se aplican las mismas relaciones.
Una Colaboración tiene un aspecto estructural y un aspecto de comportamiento. El aspecto estructural es
similar a una vista estática: contiene un conjunto de roles y relaciones que definen el contexto para su
comportamiento. El comportamiento es el conjunto de mensajes intercambiados por los objetos ligados a
los roles. Tal conjunto de mensajes en una colaboración se llama Interacción. Una colaboración puede
incluir una o más interacciones.
Es el conjunto de mensajes intercambiados por los roles de clasificador a través de los roles de
asociación. Un mensaje es una comunicación unidireccional entre dos objetos, un flujo de objeto con la
información de un remitente a un receptor. Un mensaje puede tener parámetros que transporten valores
entre objetos. Un mensaje puede ser una señal (comunicación explícita entre objetos, con nombre y
asíncrona) o una llamada (la invocación síncrona de una operación con un mecanismo para el control, que
retorna posteriormente al remitente). Un patrón de intercambios de mensajes que se realizan para lograr
un propósito específico es lo que se denomina una interacción.
Qué es Patrón?
Un patrón es una colaboración parame trizada, junto con las pautas sobre cuándo utilizarlo. Un parámetro
se puede sustituir por diversos valores, para producir distintas colaboraciones. Los parámetros señalan
generalmente las ranuras para las clases. El uso de un patrón se representa como una elipse de línea
discontinua conectada con cada una de las clases por una línea discontinua, que se etiqueta con el
nombre del rol.
Diagrama de Secuencia
Diagrama que muestra las interacciones entre los objetos organizadas en una secuencia temporal. En
particular muestra los objetos participantes en la interacción y la secuencia de mensajes intercambiados.
En un diagrama de secuencia ponemos varios de los objetos o clases que forman parte de nuestro
programa y ponemos qué llamadas van haciendo unos a otros para realizar una tarea determinada.
Hacemos un diagrama de secuencia por cada caso de uso o para una parte de un caso de uso (lo que
llamo subcaso de uso).
El detalle del diagrama depende de la fase en la que estemos, lo que pretendamos contar con el diagrama
y a quién. En una primera fase de diseño podemos poner clases grandes y ficticias, que representen un
paquete/librería o, si nuestro programa está compuesto por varios ejecutables corriendo a la vez, incluso
clases que representen un ejecutable.
Un diálogo de secuencia posee dos dimensiones: la vertical representa el tiempo, la horizontal representa
los objetos que participan en la interacción. En general, el tiempo avanza hacia abajo dentro de la página
(se pueden invertir los ejes si se desea). Con frecuencia sólo son importantes las secuencias de mensajes
pero en aplicaciones de tiempo real el eje temporal puede ser una métrica. La ordenación horizontal de los
objetos no tiene ningún significado.
Cada objeto representa una columna distinta, se pone un símbolo de objeto al final de la flecha que
representa el mensaje que ha creado el objeto; está situada en el punto vertical que denota el instante
en que se crea el objeto. Esta se conoce como línea de vida del objeto. Se pone una X grande en el
punto en que deja de existir el objeto o en el punto en que el objeto se destruye a sí mismo. Para el
periodo durante el cual esté activo el objeto, la línea de vida se amplía para ser una línea doble
continua. Si el objeto se llama a sí mismo, entonces se superpone otra copia de la doble línea para
mostrar la doble activación. El orden relativo de los objetos no tiene significado aun cuando resulta útil
organizarlos de modo que se minimice la distancia de las flechas.
Cada mensaje se representa mediante una flecha horizontal que va desde la línea de vida del objeto
que envió el mensaje hasta la línea de vida del objeto que ha recibido el mensaje. Si un mensaje
requiere un cierto tiempo para llegar a su destino, entonces la flecha del mensaje se dibuja
diagonalmente hacia abajo.
Para un flujo de objeto asíncrono entre objetos activos, los objetos se representan mediante líneas
dobles continuas y los mensajes se representan como flechas. Se pueden enviar simultáneamente dos
mensajes pero no se pueden recibir simultáneamente porque no se puede garantizar una recepción
simultánea.
Las bifurcaciones se muestran partiendo la línea de vida del objeto. Cada bifurcación puede enviar y
recibir mensajes. Eventualmente las líneas de vida del objeto tienen que fusionarse de nuevo.
A pesar de que a partir de los diagramas de casos de uso y de los diagramas de robustez ya
tenemos entre un 75 y 80 por ciento de atributos de nuestras clases identificados, es hasta el diagrama de
secuencia donde se empiezan a ver que métodos llevaran las clases de nuestro sistema. Esto se debe
que hasta que vemos interactuando a los objetos de nuestras clases con los actores y con otros objetos de
manera dinámica, hasta ese momento tenemos suficiente información como para poder empezar a
especificar los métodos de nuestras respectivas clases.
El diagrama de secuencias es el núcleo de nuestro modelo dinámico, y muestra todos los cursos
alternos que pueden tomar todos nuestros casos de uso. Los diagramas de secuencias se componen de 4
elementos que son: el curso de acción, los objetos, los mensajes y los métodos (operaciones). Estos 4
elementos son los que ya han sido analizados en clase con anterioridad dentro de la primera unidad.
-Paso 2: Cada uno de los objetos entidad de tu diagrama de robustez es una instancia de la clase
que debe de ser agregada a tu diagrama de secuencias ya que representa tu modelo estático. Hay que ser
muy meticuloso con este paso, ya que representa el último de tu modelo estático antes de codificar.
-Paso 3: Agrega las interfaces del diagrama de robustez. Con esto ya tenemos el diagrama de
secuencias construido. Ahora, el cuarto paso es para decidir cuales métodos irían en cuales clases, lo cual
es la esencia del modelo de iteraciones.
-Paso 4: Pon los métodos en las clases, lo cual significa convertir los controles uno por uno de tu
diagrama de robustez en métodos y mensajes. Verifica que para cada control dibujado le pertenecen los
mensajes correctos dentro del diagrama de secuencias.
10.- No hacen un diagrama de secuencia para cada caso de uso: Hacer esto es muy importante, ya
que solo así se puede saber cuál es el rol y las responsabilidades de cada objeto.
9.- No ponen el texto del caso de uso en el diagrama de secuencia: El poner de vuelta este texto al
margen del diagrama de secuencia provee de la visión necesaria para poder hacer diagramas de
secuencia correctos de acuerdo al caso de uso que se está modelando.
8.- No identifican todos los objetos necesarios desde el diagrama de robustez: Si tienes problemas
al realizar los diagramas de secuencia es porque tienes mal modelados tus casos de uso o tus diagramas
de robustez están incompletos.
APLICACIÓN DE DIAGRAMAS UML EN FORMULACION
DE PROYECTOS
PROPUESTA DE MEJORA
“Implementación de Gestión de Incidentes (Soporte y Eventos de seguridad TI) y mesa de servicio, bajo los
estándares internacionales de ITIL V3 y Best Practice”.
ESTUDIANTE:
OSCAR ANDRÉS BETANCOURT BELTRÁN
El modelo de análisis tiene como objetivo generar una arquitectura de objetos indicando las
variables claves para la mejor compresión de conceptos representando la relación del sistema
organizacional con su entorno de modo que sirva como base para el diseño del sistema.
Diagrama de secuencia: Este tipo de diagrama muestra la forma en que los objetos se
comunican entre sí al transcurrir el tiempo mostrando interacciones y mensajes de secuencia.
Precondiciones:
prueba de ping
Prueba de SNMP
Postcondiciones :
Se crea un numero de caso en Service Manager (IM)
Precondiciones:
Correlación de eventos.
Postcondiciones :
Se crea un numero de caso en Service Manager (IM)
Excepciones: Ninguna.
Precondiciones:
Descubrimiento de cambio de estado en un dispositivo.
Postcondiciones :
Se crea un numero de caso en Service Manager (C)
Modelo de Dominio: Este diagrama da una representación de las clases que se utilizan para la
ejecución del programa.
Betancourt, O. (2016) Modelo de Dominio. [imagen]
MODELO DEL NEGOCIO: Este modelo es realizado para evaluar el costo beneficio que se obtiene por
adquirir un producto o un servicio.
Modelo de procesos de Negocio: Es un modelo que permite evidenciar las actividades correspondientes
a cada área implicada en el proceso.
Búsqueda de datos: Para realizar la búsqueda en el aplicativo se debe ingresar la palabra y hacer
clic en el botón buscar en este caso existen dos posibilidades.
Si existen varios valores de búsqueda podrá visualizarlos haciendo clic derecho en alguna de las
filas inferiores y escoger la opción ―Ver Archivos‖, esto diligenciara todos los campos de la parte
superior de la interfaz y podrá visualizar todos los datos en las casillas correspondientes, como
se evidencia a continuación:
Adición: Para adicionar un nuevo elemento de forma manual a la tabla, tener en cuenta:
a) Si el identificador (Llave primaria) no existe en la base de datos, podrá diligenciar todos los datos
de las casillas y hacer clic en el botón insertar.
Edición de información: Para actualizar algún campo de la tabla se debe seleccionar el ítem a
modificar en la parte inferior de la interfaz, realizar clic derecho y escoger la opción ―Ver Archivo‖,
allí se diligenciaran automáticamente todos los cuadros de texto con los datos del dispositivo a
modificar.
Eliminar Información: Se puede eliminar cualquier registro de la base de datos haciendo clic
derecho sobre el ítem a eliminar y escoger la opción ―Eliminar‖
Betancourt, O. (2016). Modificiar Datos. [Imagen]
Modelo Entidad-Relación
CRITERIO
ETAPA ENTREGABLE
FINALIZACIÓN
Adquisición de - Entrega de suministros de Sw, Hw y - Factura radicada
suministros Licenciamiento
Diseño - Documento de Diseño final del SOC - Documentos Firmados
Implementación - Acta de entrega de la - Firmas Actas de
Implementación universal CMDB implementación
- Acta de entrega del monitoreo y
gestión de redes
- Acta de entrega de la gestión de
servicios e integraciones – BSM
- Acta de entrega de suministros de
10 cámaras IP inalámbricas y 2
pantallas de monitoreo
- Acta de entrega de la plataforma
SIEM
- Acta de entrega la plataforma de
incidentes de seguridad
Pruebas - Informe del resultado del plan de - Aceptación por parte del
pruebas. FNA del plan de pruebas
Precondiciones:
prueba de ping
Prueba de SNMP
Postcondiciones :
Se crea un numero de caso en Service Manager (IM)
Excepciones: Ninguna.
Precondiciones:
Descubrimiento de cambio de estado en un dispositivo.
Postcondiciones :
Se crea un numero de caso en Service Manager (C)
Descripción de la secuencia:
Integration ArcSight Connector + Los eventos que llegan al ArcSight connector son
1C ArcSight ESM reenviados al ArcSight ESM, para que puedan ser correlacionados.
ArcSight ESM + BSM/OMi Si existe algún tipo de regla que deba abrir un incidente
de seguridad, se enviará este evento a BSM + Omi
1D
BSM/OMi + Service Manager Cada vez que se solicite a BSM abrir un incidente en
Service Manager este se comunica para abrir el incidente
5 requerido.
Diagrama de Clases: Estos diagramas visualizan las relaciones entre las clases que involucran
el sistema.
Betancourt, O.
(2016) Diagrama
de Clases.
[Imagen]
MODELO DE DISEÑO: Este modelo se utiliza para planificar y desarrollar el proyecto.
Diagrama Arquitectónico: Es la representación del diseño y los procesos de ingeniería de requerimientos.
Betancourt, O.
(2016)
Diagrama de
clases y datos.
[Imagen]
Diseño de
paquetes: Es
un tipo de
diagrama donde
se evidencian
todos los
procesos del
sistema, los
cuales son
colocados en
componentes
separados de tal
manera que
todos los datos y
funciones dentro
de cada
componente
estén
relacionados.
Betancourt, O. (2016) Diseño de paquetes. [Imagen] recuperado de:
https://cacoo.com/diagrams/5vTLsNOu08tO3hhB
Diseño de interfaces graficas: Consiste en el diseño de la aplicación grafica con el fin de que el usuario
obtenga mayor familiaridad con la aplicación y la interacción sea muy intuitiva es decir que el usuario pueda
comunicarse con el software y aprender rápidamente su funcionamiento a través de los recursos gráficos,
simbología, pictogramas y estereotipos.
Puede consultar cualquier registro que se encuentre en la base de datos uCMDB desde la tabla que
se encuentra en la parte inferior del programa y se puede ampliar su información haciendo clic
derecho sobre el registro a consultar y escoger la opción ―Visualizar Activo‖, automáticamente se
llenaran todas las casillas con la información correspondiente al registro seleccionado como se
evidencia en la imagen.
Los derechos de propiedad intelectual de la Metodología pertenece al Docente, por lo cual, toda la información
contenida en el presente trabajo sólo puede ser usada con fines académicos. Cualquier uso, reproducción
parcial o total destinada a otros fines, deberá estar autorizada por el Docente.
METODOLOGIA SOFTWARE EDUCATIVO
Análisis del Sistema Edumático
Situación Problémica
Recolección de Información
Diagnostico
Formulación del Problema
Planteamiento del Problema
Dominio Material y de Aplicación
Normalización e Identificación del Objeto
Capa Contenido
Capa Presentación
Capa Ayuda
Navegación
Estructura de un Componente
Diseño del Sistema Edumático
Modelo Esquemático
Descripción del Elemento Terminal (Escena)
Set de Escenas
Navegación
Análisis del Sistema Edumático
En el Análisis Edumático una vez que se haya recolectado la información de la situación problemica,
identificado la población objetiva, diagnosticado y formulado el problema Edumático, como también, justificado
el sistema Edumático; se plantea el Dominio Material y de Aplicación del tema como resultado de Solución de
una Deficiencia o Satisfacción de una Necesidad.
1 Identificación de los objetos de conocimiento, de formación y de estudio del tema
Tabla 1. Tabla de Dominio Material del Tema. Fuente Propia
Objetos de Conocimiento Objetos de Formación Objetos de Estudio se deben
(se deben Definir) (se deben Demostrar) saber (Docente) y Aprender
(Estudiante)
12 La navegación se manifiesta como quiere que se aprenda el tema. Entonces, cada componente cumple
con ser una secuencia, un menú, una opción de o un llamado de. Por lo tanto, se puede pensar en una
navegación lineal o secuencial, navegación por menús, navegación hipermedial donde cada componente
es una opción, navegación por hipermedia (un componente es llamado y retorna al componente que
llamo)
13 Se representa cada componente como la integración de una Navegación y un Contenido (Tabla 7).
Tabla 7. Estructura de un Componente. Fuente Propia
COMPONENTE COMPONENTE COMPONENTE
PREVIO SIGUIENTE
Nombre: Nombre: Nombre:
Identificación: Identificación: Identificación:
Pertenece a la: Pertenece a la: Pertenece a la:
Capa Presentación Capa Presentación Capa Presentación
_ Portada _ Portada _ Portada
_ Antecedentes _ Antecedentes
Capa Contenido Capa Contenido
_ Conocimiento _ Conocimiento
_ Formación _ Formación
_ Estudio _ Estudio
_ Menú _ Menú
Capa Ayuda Capa Ayuda
_ Proyecto _ Proyecto
_ Componente _ Componente
COMPONENTE COMPONENTE COMPONENTE
PREVIO SIGUIENTE
12
http://www.ceis.cl/Gestacion/Gestacion.htm (5.3.2003)
13
http://standishgroup.com/ (5.3.2003)
El ―IEEE Standard Glossary of Software Engineering Terminology‖ (Stad. 610.12-1990) ha desarrollado una
definición más completa para ingeniería del software [1]: ―(1) La aplicación de un enfoque sistemático,
disciplinado y cuantificable para el desarrollo, operación y mantenimiento del software; es decir, la aplicación
de ingeniería al software. (2) El estudio de enfoques en (1)‖.
Pressman [1] caracteriza la Ingeniería de Software como ―una tecnología multicapa‖, ilustrada en la Figura 3.
El proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo
para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un
proceso de desarrollo de software.
A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades
fundamentales que se encuentran presentes en todos ellos [4]:
9. Especificación de software: Se debe definir la funcionalidad y restricciones operacionales que debe
cumplir el software.
10. Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación.
11. Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente.
12. Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente.
Además de estas actividades fundamentales, Pressman [1] menciona un conjunto de ―actividades
protectoras‖, que se aplican a lo largo de todo el proceso del software. Ellas se señalan a continuación:
13. Seguimiento y control de proyecto de software.
14. Revisiones técnicas formales.
15. Garantía de calidad del software.
16. Gestión de configuración del software.
17. Preparación y producción de documentos.
18. Gestión de reutilización.
19. Mediciones.
20. Gestión de riesgos.
Pressman [1] caracteriza un proceso de desarrollo de software como se muestra en la Figura 5. Los
elementos involucrados se describen a continuación:
Un marco común del proceso, definiendo un pequeño número de actividades del marco de trabajo que
son aplicables a todos los proyectos de software, con independencia del tamaño o complejidad.
Un conjunto de tareas, cada uno es una colección de tareas de ingeniería del software, hitos de
proyectos, entregas y productos de trabajo del software, y puntos de garantía de calidad, que permiten que
las actividades del marco de trabajo se adapten a las características del proyecto de software y los
requisitos del equipo del proyecto.
Las actividades de protección, tales como garantía de calidad del software, gestión de configuración del
software y medición, abarcan el modelo del proceso. Las actividades de protección son independientes de
cualquier actividad del marco de trabajo y aparecen durante todo el proceso.
Figura 5. Elementos del proceso del software
Otra perspectiva utilizada para determinar los elementos del proceso de desarrollo de software es establecer
las relaciones entre elementos que permitan responder Quién debe hacer Qué, Cuándo y Cómo debe
hacerlo [5].
14
Un artefacto es una pieza de información que (1) es producida, modificada o usada por el proceso, (2) define un área de responsabilidad para un rol
y (3) está sujeta a control de versiones. Un artefacto puede ser un modelo, un elemento de modelo o un documento.
La composición y sincronía de las actividades está basada en un conjunto de Principios y Prácticas. Las
Prácticas y Principios enfatizan ciertas actividades y/o la forma como deben realizarse, por ejemplo:
desarrollar iterativamente, gestionar requisitos, desarrollo basado en componentes, modelar visualmente,
verificar continuamente la calidad, gestionar los cambios, etc.
Modelos de proceso software
Sommerville [4] define modelo de proceso de software como ―Una representación simplificada de un proceso
de software, representada desde una perspectiva específica. Por su naturaleza los modelos son simplificados,
por lo tanto un modelo de procesos del software es una abstracción de un proceso real.‖
Los modelos genéricos no son descripciones definitivas de procesos de software; sin embargo, son
abstracciones útiles que pueden ser utilizadas para explicar diferentes enfoques del desarrollo de software.
Modelos que se van a discutir a continuación:
Codificar y corregir
Modelo en cascada
Desarrollo evolutivo
Desarrollo formal de sistemas
Desarrollo basado en reutilización
Desarrollo incremental
Desarrollo en espiral
Codificar y corregir (Code-and-Fix)
Este es el modelo básico utilizado en los inicios del desarrollo de software. Contiene dos pasos:
Escribir código.
Corregir problemas en el código.
Se trata de primero implementar algo de código y luego pensar acerca de requisitos, diseño, validación, y
mantenimiento.
Este modelo tiene tres problemas principales [7]:
Después de un número de correcciones, el código puede tener una muy mala estructura, hace que los
arreglos sean muy costosos.
Frecuentemente, aún el software bien diseñado, no se ajusta a las necesidades del usuario, por lo que
es rechazado o su reconstrucción es muy cara.
El código es difícil de reparar por su pobre preparación para probar y modificar.
Modelo en cascada
El primer modelo de desarrollo de software que se publicó se derivó de otros procesos de ingeniería [8]. Éste
toma las actividades fundamentales del proceso de especificación, desarrollo, validación y evolución y las
representa como fases separadas del proceso.
El modelo en cascada consta de las siguientes fases:
1. Definición de los requisitos: Los servicios, restricciones y objetivos son establecidos con los usuarios
del sistema. Se busca hacer esta definición en detalle.
2. Diseño de software: Se particiona el sistema en sistemas de software o hardware. Se establece la
arquitectura total del sistema. Se identifican y describen las abstracciones y relaciones de los
componentes del sistema.
3. Implementación y pruebas unitarias: Construcción de los módulos y unidades de software. Se realizan
pruebas de cada unidad.
4. Integración y pruebas del sistema: Se integran todas las unidades. Se prueban en conjunto. Se
entrega el conjunto probado al cliente.
5. Operación y mantenimiento: Generalmente es la fase más larga. El sistema es puesto en marcha y se
realiza la corrección de errores descubiertos. Se realizan mejoras de implementación. Se identifican
nuevos requisitos.
La interacción entre fases puede observarse en la Figura 5. Cada fase tiene como resultado documentos que
deben ser aprobados por el usuario.
Una fase no comienza hasta que termine la fase anterior y generalmente se incluye la corrección de los
problemas encontrados en fases previas.
Los usuarios y desarrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora
de la calidad del software.
Es más efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente.
Desde una perspectiva de ingeniería y administración se identifican los siguientes problemas:
Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se
necesita desarrollar rápido, no es efectivo producir documentos que reflejen cada versión del sistema.
Sistemas pobremente estructurados: Los cambios continuos pueden ser perjudiciales para la estructura
del software haciendo costoso el mantenimiento.
Se requieren técnicas y herramientas: Para el rápido desarrollo se necesitan herramientas que pueden
ser incompatibles con otras o que poca gente sabe utilizar.
Este modelo es efectivo en proyectos pequeños (menos de 100.000 líneas de código) o medianos (hasta
500.000 líneas de código) con poco tiempo para su desarrollo y sin generar documentación para cada versión.
Para proyectos largos es mejor combinar lo mejor del modelo de cascada y evolutivo: se puede hacer un
prototipo global del sistema y posteriormente reimplementarlo con un acercamiento más estructurado. Los
subsistemas con requisitos bien definidos y estables se pueden programar utilizando cascada y la interfaz de
usuario se puede especificar utilizando un enfoque exploratorio.
Desarrollo formal de sistemas
Este modelo se basa en transformaciones formales de los requisitos hasta llegar a un programa ejecutable.
Desarrollo
Desiciones Formal
Especificación
Código
Informal
Tranformación Transformación Fuente
Especificación
Especificación Interactiva Especificación Automática
de alto nivel de bajo nivel
(prototipo)
Optimización
Validación de
Especificación
Mantenimiento
Desarrollo en Espiral.
Desarrollo incremental
Mills [9] sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el
proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir
experiencia con el sistema (ver Figura 9). Es una combinación del Modelo de Cascada y Modelo Evolutivo.
Reduce el rehacer trabajo durante el proceso de desarrollo y da oportunidad para retrasar las decisiones
hasta tener experiencia en el sistema.
Durante el desarrollo de cada incremento se puede utilizar el modelo de cascada o evolutivo, dependiendo del
conocimiento que se tenga sobre los requisitos a implementar. Si se tiene un buen conocimiento, se puede
optar por cascada, si es dudoso, evolutivo.
Desarrollo en espiral
El modelo de desarrollo en espiral (ver Figura 10) es actualmente uno de los más conocidos y fue propuesto
por Boehm [7]. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades
sucesivas con retrospectiva de una actividad a otra.
Cada ciclo de desarrollo se divide en cuatro fases:
4. Definición de objetivos: Se definen los objetivos. Se definen las restricciones del proceso y del producto.
Se realiza un diseño detallado del plan administrativo. Se identifican los riesgos y se elaboran
estrategias alternativas dependiendo de estos.
5. Evaluación y reducción de riesgos: Se realiza un análisis detallado de cada riesgo identificado. Pueden
desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para
reducir los riesgos.
6. Desarrollo y validación: Se escoge el modelo de desarrollo después de la evaluación del riesgo. El
modelo que se utilizará (cascada, sistemas formales, evolutivo, etc.) depende del riesgo identificado
para esa fase.
7. Planificación: Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto.
Este modelo a diferencia de los otros toma en consideración explícitamente el riesgo, esta es una actividad
importante en la administración del proyecto.
El ciclo de vida inicia con la definición de los objetivos. De acuerdo a las restricciones se determinan distintas
alternativas. Se identifican los riesgos al sopesar los objetivos contra las alternativas. Se evalúan los riesgos
con actividades como análisis detallado, simulación, prototipos, etc. Se desarrolla un poco el sistema. Se
planifica la siguiente fase.
Figura 6: Modelo de desarrollo en Espiral
Codificar y
Bajo Bajo Bajo Alto Medio
corregir
Desarrollo
Bajo Alto Bajo Bajo Bajo
en cascada
Desarrollo
Alto Medio Medio Alto Alto
Evolutivo
Desarrollo
Bajo a
formal de Bajo Alto Bajo Bajo
Medio
sistemas
Desarrollo
Bajo a
basado en Medio Bajo a Alto Alto Alto
Medio
reutilización
Desarrollo
Bajo Alto Medio Medio Bajo
Incremental
Desarrollo
Alto Alto Alto Medio Medio
Espiral
Análisis y diseño
La mayoría de proyectos de software son complejos, y la estrategia primaria para superar la
complejidad, es la descomposición (divide y vencerás). La estrategia es dividir el problema
en unidades más pequeñas que sean manejables. Un enfoque tradicional para realizar esto
fue el análisis y diseño estructurados, donde se trata de descomponer el problema en
funciones o procesos. Este método origina una división jerárquica de procesos constituidos
por sub-procesos. Por ejemplo, una descomposición por funciones o procesos en análisis y
diseño estructurados, de un Sistema de Información de Biblioteca podría ser el siguiente:
Otra forma de realizar la descomposición, es usando un esquema de análisis y diseño
orientado a objetos. En este esquema, se busca descomponer el problema en objetos, y no
en funciones. Por ejemplo, una descomposición orientada a objetos del Sistema de
Información de Biblioteca podría ser la siguiente:
R1.4 Reduce las cantidades del inventario cuando se realiza una venta. oculta
R1.5 Se registran las ventas efectuadas. oculta
Funciones de pago:
Referencia Función Categoría
R2.4 Registra los pagos en el sistema de cuentas por cobrar, pues el oculta
servicio de autorización de crédito debe a la tienda el monto del
pago.
d) Atributos del sistema
Los atributos del sistema son cualidades no funcionales que a menudo se confunden con
las funciones. Por ejemplo: facilidad de uso, tolerancia a fallas, tiempo de respuesta,
metáfora de interfaz, plataformas.
Los atributos tienen un posible conjunto de detalles de atributos, los cuales tienden a ser
valores discretos, confusos o simbólicos. Por ejemplo:
Tiempo de respuesta = (psicológicamente correcto)
Metáfora de interfaz = (gráfico, colorido, basado en formularios)
Algunos atributos del sistema también pueden tener restricciones de frontera del atributo,
que son condiciones obligatorias de frontera, generalmente en un rango numérico de
valores de un atributo. Por ejemplo:
Tiempo de respuesta = (dos segundos como
máximo) Algunos atributos del sistema de punto de
venta son:
Atributo Detalles y restricciones de frontera
Tiempo de (restricción de frontera) Cuando se registre un producto
respuesta vendido, la descripción y el precio aparecerán en un segundo.
(detalle) Ventanas orientadas a la metáfora de un formulario y
Metáfora de cuadros de diálogo.
interfaz
(detalle) Maximiza una navegación fácil con teclado y no con mouse.
(restricción de frontera) Debe registrar los pagos a crédito autorizados
Tolerancia a fallas que se hagan a las cuentas por cobrar en un plazo de 24 horas, aun
cuando se produzcan fallas de energía o del equipo.
Plataformas del (detalle) Microsoft Windows xxx.
sistema operativo
Finalmente, es conveniente describir todos los atributos del sistema que se relacionen
claramente con las funciones especificadas. Además, los detalles de los atributos y las
restricciones de frontera pueden catalogarse como obligatorios u opcionales. Por ejemplo:
Los casos de uso requieren tener al menos un conocimiento parcial de los requerimientos
del sistema. Un caso de uso es un documento narrativo que describe la secuencia de
eventos de un actor (agente externo) que utiliza un sistema para completar un proceso.
Para especificar los casos de uso en el lenguaje UML, se utiliza una elipse que encierra el
nombre del caso.
El formato para la descripción de los casos de uso es el siguiente:
Caso de uso: Nombre del caso de uso
Este esquema tiene por objeto ofrecer una clase de diagrama contextual que nos permita
conocer rápidamente los actores externos de un sistema y las formas básicas en que lo
utilizan.
Un caso de uso describe la interacción con un sistema. Las fronteras del sistema se
representan en el diagrama por un rectángulo exterior. Las fronteras corresponden a: la
frontera hardware/software de un dispositivo o sistema de cómputo, un departamento de una
organización, o la organización entera.
Curso normal de los eventos:
Cursos alternos
Los casos de uso se emplean para capturar el comportamiento deseado del sistema en
desarrollo, sin tener que especificar cómo se implementa ese comportamiento. Proporcionan
un medio para que los desarrolladores, los usuarios finales del sistema y los expertos del
dominio lleguen a una comprensión común del sistema. Además ayudan a validar la
arquitectura y a verificar el sistema mientras evoluciona a lo largo del desarrollo. Por lo
general el nombre de un caso de uso comienza con un verbo en infinitivo. Un caso de uso
describe un proceso de principio a fin, es decir, una secuencia de eventos, las acciones y las
transacciones que se requieren para realizarlo. Debe ser posible revisar en las referencias
cruzadas, que todas las funciones (de los requerimientos) hayan sido asignadas.
Fronteras
Un caso de uso define la interacción con un sistema. Las fronteras del sistema normalmente
son: la frontera software/hardware de un dispositivo o sistema de cómputo, el departamento
de una organización, la organización entera. Las fronteras son importantes para definir lo
que es interno y externo al sistema. El ambiente externo está representado exclusivamente
por los actores. Las dos siguientes figuras muestran dos fronteras diferentes para el mismo
sistema.
Los casos de uso pueden ser versiones especializadas de otros casos de uso, casos de
uso incluidos como parte de otros casos de uso, y casos de uso que extienden el
comportamiento de otros casos de uso básicos.
Un modelo conceptual explica los conceptos más significativos en un dominio del problema,
identificando los atributos y las asociaciones, y es la herramienta más importante del análisis
orientado a objetos. Los casos de uso son una importante herramienta para el análisis de
requerimientos, pero realmente no están orientados a objetos. Un modelo conceptual
representa cosas del mundo real, no componentes del software. En UML se representa
mediante un grupo de diagramas de estructura estática donde no se define ninguna
operación. En estos diagramas se muestran conceptos (objetos), asociaciones entre
conceptos (relaciones) y atributos de conceptos (atributos). La siguiente figura muestra un
modelo conceptual parcial del dominio de la tienda y las ventas.
En el dominio real de comprar productos en una tienda usando una terminal de punto de
venta (TPDV), intervienen tres conceptos principales: tienda, TPDV y una venta.
Por lo general es mejor exagerar un poco y especificar un modelo conceptual con muchos
conceptos. Esto debido a que es frecuente omitir conceptos durante el análisis, y al
descubrirlos más tarde, es más difícil incorporarlos.
La siguiente lista muestra un conjunto de conceptos idóneos para ser incluidos en el
modelo conceptual.
TPV EspecificaciondeProducto
Producto VentasLineadeProductos
Tienda Cajero
Venta Cliente
Pago Gerente
CatalogodeProductos
¿Se debería incluir la boleta que imprime el punto de venta? Esta boleta es un informe del
sistema, y dado que toda su información proviene de otros objetos, no es necesario incluirlo.
Sin embargo, es posible que en una etapa posterior (por ejemplo cuando se implemente
devolver productos) se justifique su inclusión.
Por tanto, el modelo conceptual inicial del sistema de punto de venta (sin incluir
atributos ni asociaciones) sería:
Falta ahora agregar los atributos relevantes de cada concepto, y las asociaciones.
Atributos
Un atributo es un valor lógico de un dato de un objeto. Es preferible que los atributos sean
simples. Entre los tipos de atributos más comunes se encuentran: booleanos (o lógicos),
fechas, números, texto y horas. Algunos tipos comunes son: dirección, color, teléfono,
RUT, código de barras, código postal.
Uno de los errores más frecuentes al crear modelos conceptuales, es representar algo como
un atributo, cuando debería haber sido un concepto aparte. Una regla práctica para evitar
esto es: si en el mundo real no consideramos algún concepto X como número o texto,
probablemente X sea un concepto y no un atributo.
Por ejemplo, en un dominio de reservaciones en líneas aéreas, ¿el Destino debería ser un
atributo de Vuelo u otro concepto?
Asociaciones
Una asociación es una relación entre dos conceptos que indica alguna conexión significativa
entre ellos. Las asociaciones útiles a determinar, suelen incluir el conocimiento de una
relación que ha de preservarse por algún tiempo: puede tratarse de milisegundos o de años
(según el contexto). Por ejemplo, ¿debemos recordar cuales instancias de
VentasLineadeProducto están asociadas a Venta? Claro que si, porque de lo contrario no
sería posible reconstruir la venta, imprimir la boleta ni calcular el total de la venta. Por otra
parte, ¿necesitamos recordar una relación entre una Venta y Gerente? Probablemente no es
indispensable ni útil dentro del contexto de nuestros requerimientos.
Una asociación se representa como una línea entre conceptos, con el nombre de la
asociación. La asociación es intrínsecamente bidireccional, es un posible nexo lógico entre
los objetos. Este nexo es totalmente abstracto, no es una afirmación sobre las conexiones
entre las entidades del software. Los extremos de una asociación pueden contener una
expresión de multiplicidad que indica la relación numérica entre las instancias de los
conceptos. Opcionalmente se puede poner una flecha que indique la dirección en que debe
leerse el nombre de la asociación (no indica nada más, es sólo una ayuda para leer el
diagrama).
Para identificar las asociaciones más comunes, la siguiente lista es de gran ayuda.
* cero o más,
muchos 1..* uno o
más
1..40 de uno a cuarenta
5 exactamente cinco
2,4,6 exactamente dos, cuatro o seis
Por ejemplo:
Los nombres de las asociaciones deben ser lo más claros posibles, y deben permitir
leer y entender fácilmente las relaciones entre conceptos. Por ejemplo:
En síntesis, para construir un modelo conceptual se deben aplicar los siguientes pasos:
1. Liste los conceptos idóneos usando la lista de categorías de conceptos.
2. Dibújelos en un modelo conceptual.
3. Incorpore las asociaciones necesarias para registrar las relaciones más
importantes (las que se deben recordar).
4. Agregue los atributos necesarios para cumplir con las necesidades de
información. El modelo conceptual de la siguiente figura muestra un conjunto de
conceptos, asociaciones y atributos idóneos para la aplicación de punto de venta.
El modelo conceptual es una herramienta de comunicación, con la cual se intenta
comprender los conceptos importantes y sus relaciones. Es también útil para transmitir este
conocimiento a otros.
Paquetes: Organización de los elementos
Falta considerar el caso en que la tarjeta se reprueba. El caso de uso para pago con
cheque es similar.
Después de analizar todos los casos de uso extendidos (análisis semántico), y revisar la
lista de posibles candidatos a conceptos, se obtiene la versión preliminar del modelo
conceptual.
Cuando el número de elementos del modelo conceptual empieza a ser grande, se hace
necesario buscar una forma de organizarlos, y para esto usaremos paquetes. Un paquete
UML se muestra gráficamente como una carpeta etiquetada. En su interior se pueden
incluir los paquetes subordinados.
Ejemplo:
Un elemento es propiedad del paquete en el cual está definido, pero puede referenciarse en
otros paquetes. En este caso, para referenciar el nombre de ruta se usa el nombre del
paquete y luego el nombre del elemento, de la siguiente forma:
NombrePaquete::NombreElemento. Ejemplo:
El problema con este diagrama, es que una misma persona puede jugar más de un rol al
mismo tiempo. Alguien podría ser funcionario y a la vez estar estudiando una carrera. Del
mismo modo, alguien podría ser académico y estar ocupando un puesto administrativo. Para
modelar adecuadamente esta situación, se necesitarían 7 subclases de Persona:
Estudiante, Académico, Funcionario, AcadémicoyEstudiante, FuncionarioyEstudiante,
AcadémicoyFuncionario, EstudianteyAcadémicoyFuncionario. En este tipo de situaciones, el
número de subclases que se necesitan, se incrementa exponencialmente con el número de
roles (por ejemplo, se necesitarían 63 subclases para modelar 6 roles). Pero el problema
más serio se presenta cuando la misma persona puede jugar combinaciones distintas de
roles en distintos tiempos. La herencia es una relación estática que no cambia con el tiempo.
Para resolver esta situación, es posible representar personas en diferentes roles usando
delegación, como se muestra en la siguiente figura.
La solución general propuesta en este patrón es: incorporar la funcionalidad de la clase
original usando una instancia de la clase original y llamando sus métodos.
En el diagrama anterior, se muestra una clase con rol Delegador que usa una clase con el rol
Delegado. Aquí se usa la delegación para reutilizar y extender el comportamiento de la clase.
Patrones de Análisis
Los patrones de análisis son un conjunto de clases y relaciones entre ellas, que tienen algún
sentido en el contexto de una aplicación. Representan una estructura que puede ser válida
para otras aplicaciones.
Diagramas de secuencia
El diagrama de secuencia de un sistema muestra gráficamente los eventos que originan los
actores y que impactan al sistema. La creación de los diagramas de secuencia forma parte de
la investigación para conocer el sistema, por lo que es parte del análisis del mismo. La
creación de los diagramas de secuencia depende de la formulación de los casos de uso. Los
casos de uso indican cómo los actores interactúan con el sistema. Durante la operación del
sistema, los actores generan eventos, solicitando alguna operación a cambio. Por ejemplo,
cuando un cajero ingresa un código de barras de un artículo, está pidiendo al sistema de TPV
que registre esa compra. Con este evento se inicia una operación en el sistema.
Antes de iniciar el diseño lógico de la aplicación de software, es necesario investigar y definir
su comportamiento como una "caja negra". Vamos a estudiar el comportamiento del
sistema, desde la perspectiva de qué es lo que hace, y no de cómo lo hace.
Def.: El diagrama de secuencia de un sistema es una representación que muestra, en
determinado escenario de un caso de uso, los eventos generados por actores externos, su
orden y los eventos internos del sistema. Lo importante aquí son los eventos originados por los
actores, que trascienden las fronteras del sistema. Los sistemas mismos son cajas negras.
Recordemos el caso de uso Comprar productos:
Caso de uso: Comprar
productos Actores: Cliente,
cajero Tipo: Primario
Descripción: Un Cliente llega a la caja registradora con los artículos que va a comprar. El
Cajero registra el código de cada producto. Si hay más de una unidad de un
producto, puede registrar la cantidad. El sistema determina el precio del producto,
y agrega la información a la transacción actual de venta. Se muestra la
descripción del producto y el precio. Esto se repite para todos los artículos. Al
final, el cajero cobra el importe. Al terminar la operación, el Cliente se marcha con
los productos.
El siguiente diagrama de secuencia describe el caso de uso Comprar productos. En
estos diagramas el tiempo avanza hacia abajo, y el orden de los eventos debería
seguir el orden indicado en el caso de uso correspondiente.
En el diagrama anterior, se indica que el Cajero es el único actor, y que se generan los
eventos del sistema: pasarProducto, terminarVenta y efectuarPago.
Def.: Un evento es un hecho externo de entrada, que un actor produce en el sistema. Cada
evento da origen a una operación del sistema como respuesta. En el ejemplo anterior, se
tienen tres eventos: pasarProducto, terminarVenta y efectuarPago. Los eventos y las
operaciones del sistema tienen el mismo nombre, por ejemplo, cuando el cajero genera un
evento de pasarProducto, causa que en el sistema se ejecute la operación pasarProducto.
Una vez que se identifican los eventos, se "registran" en la entidad que corresponda,
como operaciones. Por ejemplo:
En esta notación UML los parámetros son opcionales. Es conveniente que los nombres
de los eventos comiencen con un verbo, pues están orientados a comandos del sistema.
Dado que los eventos son hechos externos de entrada, es necesario definir la frontera del sistema.
Por lo general la frontera será el sistema de software (puede también incluir el hardware).
Es en este contexto que decimos que un evento del sistema es un hecho externo que
estimula directamente al software.
Observe que la representación del tipo Sistema es muy diferente a lo que se expresó en el
modelo conceptual. Los elementos del modelo conceptual representan conceptos del mundo
real, en cambio, el tipo Sistema es un concepto artificial. Además muestra las operaciones
que realiza.
Esto se debe a que, a diferencia del modelo conceptual, que representa información
estática, estamos ahora describiendo el comportamiento del sistema, que es
información dinámica.
En el caso de uso anterior (Comprar productos) lo primero que se hace es determinar los
actores que interactúan directamente con el sistema de software. En este caso, el cliente
interactúa con el cajero, pero no directamente con el software TPV. Es el cajero quien
interactúa con el software. Por tanto, el cliente no genera eventos en el sistema.
A veces es conveniente mostrar algunos fragmentos del texto del caso de uso dentro del
diagrama de secuencia. Por ejemplo:
Contratos
Antes de construir el diseño lógico que dice cómo funcionará la aplicación de software, es
conveniente definir su comportamiento como una caja negra. El comportamiento del sistema
es una descripción de lo que hace, y no de cómo lo hace. Los contratos son documentos
útiles para describir estos comportamientos, a partir de las operaciones del sistema o eventos.
Un contrato ve las relaciones entre los proveedores y sus clientes como un acuerdo formal,
que expresa los derechos y obligaciones de cada parte.
La correctitud de un programa es algo relativo, y depende en gran parte de la especificación. Una
Fórmula de corrección (o tripleta de Hoare) es una expresión de la forma:
(1) {P} A {Q}
La fórmula de corrección anterior se lee: una ejecución de A que comience en un estado en
el que se cumpla P terminará en un estado en el que se cumple Q. Aquí A denota una
operación. P y Q se denominan aserciones, de las cuales Pserá la pre-condición y Qserá la
post-condición.
Ejemplo:
{x >= 9} x := x + 5 {x >= 13}
En este caso, una post-condición más fuerte sería {x >= 14}. Las condiciones más fuertes
acotan más el resultado. Una condición más débil hace lo contrario, por ejemplo: {x >= 10} es
una post-condición más débil, pero para nuestros efectos, no es muy útil.
La pre-condición establece las propiedades que se tienen que cumplir cada vez que se
ejecute el procedimiento. La post-condición establece las propiedades que debe garantizar el
procedimiento cuando termine.
Note que el cuadro inferior derecho obliga al cliente a llamar a la rutina con una pila que no
está llena. En caso de que el cliente no cumpla esta pre-condición, el proveedor puede retornar
cualquier cosa, podría quedarse en un ciclo infinito, o podría terminar abruptamente el
programa, sin que esto sea considerado un error.
El uso de contratos simplifica la programación, pues el programador puede dar por supuesto
que las pre condiciones se cumplen, sin tener que verificarlas.
Ejemplo: Si una función raíz cuadrada sqrt(int x) que produce un número real como
resultado, tiene como pre-condición que el valor de x tiene que ser mayor que cero, el
programador puede escribir el algoritmo sin preocuparse del caso en que x sea negativo.
El método de diseño por contrato va más allá. Escribir esta rutina de la forma:
if x < 0 then
// Tratar el error de alguna manera else
// Proceder con el cálculo de la raíz cuadrada end
no sólo es innecesario, sino inaceptable!
Def.: Principio de no redundancia. Bajo ninguna circunstancia debe, el cuerpo de la
rutina, verificar el cumplimiento de la pre-condición de la rutina.
El diseño por contrato invita a identificar las condiciones de consistencia que son necesarias
para el funcionamiento correcto de cada cooperación cliente-proveedor (cada contrato) y a
especificar, para cada una de estas condiciones, de quién es la responsabilidad de
asegurar la misma: del cliente o del proveedor.
Si una rutina tiene una pre-condición, y se realiza una llamada que no la cumple, es un
error ("bug") en el software. La violación de una pre-condición es la manifestación de un
"bug" en el cliente (el proveedor es inocente). La violación de una post-condición es la
manifestación de un "bug" en el proveedor (el cliente es inocente).
Contratos para las operaciones
Para ayudar a explicar lo que una operación (o evento del sistema) se propone hacer, es
conveniente usar contratos. Un contrato de operación del sistema describe los cambios de
estado del sistema total cuando se llama a una de sus operaciones.
A continuación como se describe un contrato:
Contrato: Nombre de Contrato
Pago con
cheque
Diagramas de estado
Los diagramas de estado describen gráficamente los eventos y los estados de los objetos. Los
diagramas de estado son útiles, entre otras cosas, para indicar los eventos del sistema en los
casos de uso.
Un evento es un acontecimiento importante a tomar en cuenta para el sistema. Un estado es la
condición de un objeto en un momento determinado: el tiempo que transcurre entre eventos.
Una transición es una relación entre dos estados, e indica que, cuando ocurre un evento, el
objeto pasa del estado anterior al siguiente.
En UML, los estados se representan mediante óvalos. Las transiciones se representan
mediante flechas con el nombre del evento respectivo. Se acostumbra poner un estado
inicial (círculo negro). Por ejemplo:
Un diagrama de estado que describe los eventos globales del sistema y su secuencia en un
caso de uso es un diagrama de estado para casos de uso. Por ejemplo, una versión
simplificada del diagrama de estados para el caso de uso comprarProductos es el siguiente:
Una versión más completa del diagrama anterior se muestra en la siguente figura:
El diagrama anterior aun no está completo, pues falta considerar algunos casos
excepcionales, como por ejemplo, si al rechazar una tarjeta de crédito o un cheque, el
cliente decide pagar usando otro método, por ejemplo pagando en efectivo.
Una transición puede tener una protección condicional, o prueba booleana, que permite
pasar al siguiente estado solemente si esta protección es válida. Estas protecciones se
colocan entre paréntesis debajo de los eventos (ver validación del usuario al descolgar el
auricular, en la siguiente figura). También se pueden tener sub-estados anidados.
Las herramientas usadas en la etapa de análisis (investigación del problema) se pueden
resumir en la siguiente tabla.
Diagramas de colaboración
Los contratos muestran qué hacen las operaciones del sistema, pero no muestran cómo los
objetos de software van a cumplir con ellas. Los diagramas de interacción (diagramas de
secuencia o diagramas de colaboración) explican gráficamente cómo los objetos interactúan a
través de mensajes para realizar las tareas. Antes de definir estos diagramas, hay que generar
el modelo conceptual, los contratos de operación y los casos de uso reales (estos últimos se
generan a partir de los casos de uso definidos en el análisis).
Los diagramas de colaboración explican gráficamente las interacciones entre las instancias
del modelo (objetos). Por ejemplo:
Note que el primer mensaje corresponde a uno de los "mensaje externos" del
diagrama de secuencia del sistema.
Los diagramas de interacción constituyen una de las herramientas más importantes para
el análisis y diseño orientado a objetos. El tiempo y esfuerzo dedicado a la preparación
de éstos, correponde a un porcentaje considerable de la actividad total del proyecto.
Notación: Para representar gráficamente el hecho de que un mensaje devuelva un valor, se
puede hacer de la siguiente manera:
Notación: Un objeto puede enviarse un mensaje a si mismo:
msg1() {
for i := 1 to 10 {
miB.mens2();
miC.mens3();
}
}
puede ser representado mediante el siguiente diagrama:
La siguiente figura muestra cómo enviar mensajes para crear una instancia de un
objeto, y agregarla a un multiobjeto.
También es posible enviar mensajes a la clase y no a una instancia, con el fin de llamar a
métodos de la clase. Por ejemplo:
Las herramientas utilizadas en las etapas anteriores se pueden resumir en la siguiente tabla:
¿Qué información hace falta para calcular el gran total? Hay que conocer todas las
instancias VentaLineadeProducto de una venta, y la suma de sus subtotales, y esto lo
conoce únicamente la instancia Venta. Por tanto, desde el punto de vista del Experto,
Venta es la clase de objetos correcta para asumir esta responsabilidad. Venta es el
experto en información. Entonces:
Clase Responsabilidad
Note que el cumplimiento de una responsabilidad requiere a menudo información distribuida en varias
clases de objetos. Es decir, hay muchos "expertos parciales" que colaboran en la tarea.
Cuando la información se encuentre esparcida entre varios objetos, éstos tendrán que
interactuar a través de mensajes para compartir el trabajo.
ANEXO8
OPORTUNIDAD DE MEJORAS
Aceleración de un proceso
Análisis de un proceso mediante la eliminación de pasos innecesarios
Un proyecto de sistema comienza con problemas y oportunidades de mejora dentro de un negocio. Una
vez que es sugerido un proyecto, el analista trabajara rápidamente con los tomadores de decisiones, para
determinar si es factible, si es aprobado se hará un estudio de sistemas completo. Las actividades son
calenda rizadas mediante el uso de herramientas como gráficas de Gantt y PERT para que el proyecto se
realizar a tiempo.
Problemas d la organización
Razones para
Inicio del sugerir el Selección del proyecto
Proyecto proyecto
Oportunidades de mejoras
PROBLEMAS DENTRO DE LA ORGANIZACIÓN
Los problemas con proceso que son visibles en la salida que pueden requerir la ayuda de un analista,
incluyen errores excesivos y trabajado desarrollado demasiado lento, incompleto, en forma incorrecta o
incluso que no se realiza.
Otros síntomas de problemas se hacen evidentes cuando las personas no logran los objetivos.
Errores
Revisar salida contra Trabajo lento
Trabajo incorrecto
Criterios de desempeño Trabajo incompleto
Trabajo no terminado
Quejas
Sugerencias de mejoras
Retroalimentación Perdida de ventas
Menores ventas
DETERMINACION DE LA FACTIBILIDAD
Nota. El estudio de factibilidad debe estar altamente comprendido en tiempo, comprendiendo varias
actividades en un pequeño lapso.
PLANEACION Y CONTROL DE LAS ACTIVIDADES
Planeación:
Seleccionar un equipo para el análisis del sistema
Asignar a los miembros en proyectos adecuados
Estimación de tiempo requerido para cada tarea
Calendarización del proyecto para determinar las tareas y su orden
Estimación
del tiempo
requerido
Planeació
n y
control de
las Uso de
actividade gráficas de
s Gantt, Pert
Tomar acciones
adecuadas para agilizar
o recalendarizar las
actividades para
terminar a tiempo y
motivas a los analistas
Niveles de Requerimientos
Requerimientos de Negocio: Representan a gran nivel los objetivos de la organización y/o las solicitudes
del cliente con respecto al sistema o producto.
Requerimientos de Usuarios: Describen las tareas de los usuarios que deben poder ser realizadas con el
producto.
Requerimientos del Sistema: Definen la funcionalidad del software que los desarrolladores deben construir
dentro del producto para permitir al usuario realizar sus tareas y satisfacer los Requerimientos del Negocio.
REQUERIMIENTOS BASICOS
Los analistas estructuran sus investigaciones al buscar respuestas a las siguientes cuatro importantes
preguntas:
¿Cuál es el proceso básico de la empresa?
¿Qué datos utiliza y produce este proceso?
¿Cuáles son los límites impuestos por el tiempo y la carga de trabajo?
¿Qué controles de desempeño utiliza?
INNOVACIONES
Es añadir capacidades nuevas del sistema que no habían sido pensadas antes de la interacción con el
prototipo.
PLANES DE REVISION
Los planes de revisión ayudan a identificar prioridades para lo que se debe construir un prototipo. La
información recolectada en la fase de construcción del prototipo permite al analista asignar prioridades y
de dirigir los planes sin realizar gastos.
TIPOS DE PROTOTIPOS
Prototipo parchado
Un prototipo en sistemas es un modelo operable que tiene todas las características necesarias,
pero que es ineficiente debido a que los programas fueron hechos a la carrera con el objetivo de ser
funcionales en vez de ser eficientes.
Un prototipo parchado es un sistema de información que tiene todas las características propuestas
pero es realmente un modelo básico que eventualmente será mejorado.
Prototipo no operacional
Un modelo a escala no funcional de un sistema de información pude ser hecho cuando la
codificación requerida por las aplicaciones es muy amplia para hacer el prototipo.
Este modelo a escala no funcional es utilizado con el objeto de aspecto de diseño y no
funcionalidad.
Prototipo primero de una serie
La elaboración de prototipos involucra la creación de un primer modelo a escala completa de un
sistema, llamado a veces piloto.
Ejemplo: la elaboración del prototipo de un primer avión de una serie. El modelo es completamente
operacional y es una realización de lo le diseñador espera que será de una serie de aviones con
características idénticas.
TABLAS DE DECISION
Más que un árbol, tabla de decisión es una matriz de renglones y columnas que indican condiciones y
acciones. Las reglas de decisión, incluidas en una tabla de decisión, establecen el procedimiento a seguir
cuando existan ciertas condiciones.
VERIFICACION DE TABLAS
Después de construir una tabla, los analistas verifican que sea correcta y completa con la finalidad de
asegurar que la tabla incluye todas las condiciones junto con las reglas de decisión que las relacionan con
las acciones. Asimismo, los analistas también deben examinar la tabla para encontrar redundancias y
contradicciones.
Eliminación de la redundancia. Las tablas de decisión pueden volverse muy grandes y difíciles de
manejar si se permite que crezcan sin ningún control. Remover las entradas redundantes puede ser de
ayuda para manejar el tamaño de la tabla. La redundancia se presenta cuando las siguientes
condiciones son verdaderas al mismo tiempo 1) dos reglas de decisión son idénticas salvo para una
condición del renglón, 2) las acciones para las dos reglas son idénticas.
Supresión de contradicciones. Las reglas de decisión son contradictorias entre si cuando dos o más
reglas tienen el mismo conjunto de contradicciones pero sus acciones son diferentes.
Las contradicciones indican que la información que tiene el analista es incorrecta o bien que existe un error
en la construcción de la tabla. Muchas veces la contradicción es resultado de las discrepancias en la
información que recibe el analista de diferentes personas con respeto a la forma en que estas toman
decisiones.
Así puede quedar una tabla una vez eliminadas las discrepancias.
CONDICION REGLAS DE
DECISION
1 2 3 4 5
Suficiente efectivo S - S N N
Crédito bueno S S N N N
Desea ―hacerse a un lado‖ - N S S S
Seleccionar el articulo a comprar x x x x
No seleccionar ningún articulo x
1.-Forma de entrada limitada. En la estructura básica de la tabla se dice que es limitada porque se llena
con un sí(S) o un no(N). Este es uno de los formatos más comunes, ejemplo:
2.-Forma de entrada extendida. Esta forma reemplaza las S y N con acciones que le indican al lector
cómo decidir. En este formato, los identificadores de condición y acción no están complejos y es la razón
por la que las entradas contienen más detalle que una S y N. la forma de entrada extendida tiene sólo una
identificación de acción: ACCION. Para cada regla, se coloca una frase breve en la sección de
identificación de acciones: descontar 3%, descontar 2%, pagar el monto total de la factura. Muchas
personas favorecen este formato sobre el método de entradas limitadas porque es más explícito para
señalar las acciones, ejemplo:
3.-Forma de entrada mixta. En ocasiones los analistas prefieren combinar en la misma tabla las
características de los dos métodos anteriores.
4.-Forma ELSE. Esta es otra variante en las tablas de decisión que tiene como finalidad omitir la repetición
por medio de reglas else. Para construir una tabla de decisión en la forma else, se especifican las reglas,
junto con las entradas de decisiones, que cubren todo el conjunto de acciones con excepción de una que
se convierte en la regla a seguir cuando ninguna de las demás condiciones explicitas es verdadera. Esta
regla se encuentra en la columna else. Si ninguna de las otras condiciones es válida, entones se sigue la
regla de decisión else, esta regla elimina la necesidad de repetir condiciones que conducen a las mismas
acciones.
DESARROLLO DE DECLARACIONES ESTRUCTURADAS
Emplea tres tipos básicos de declaraciones para describir un proceso: estructuras de secuencias,
estructuras de decisión y estructura de iteración. Estas estructuras son adecuadas son adecuadas para el
análisis de decisión y pueden trasladarse al desarrollo de software y programación.
Estructuras de secuencia: una estructura de secuencia es un solo paso o acción incluido en un proceso.
Este no depende de la existencia de ninguna condición y, cuando se encuentra, siempre se lleva acabo.
En general, se emplean varias instrucciones en secuencia para describir un proceso.
Por ejemplo, es probable que la compra de un libro siga un procedimiento similar al siguiente:
Este ejemplo muestra una secuencia de 5 pasos. Ninguno contiene alguna decisión o condición para
determinar la realización del siguiente paso.
Estructura de decisión: El español estructurado es otro camino para mostrar el análisis de decisión. A
menudo se incluyen las secuencias de acciones entre estructuras de decisión que sirven para identificar
condiciones. Es así como las estructuras de decisión aparecen cuando se pueden emprender dos o más
acciones, lo que depende del valor de una condición específica. Primero se evalúa la condición y después
se toma la decisión de emprender las acciones asociado con esta condición. Una vez determinada la
condición las acciones son incondicionales.
Estas condiciones junto con las acciones pueden indicarse de la siguiente manera:
Si se encuentra el libro deseado ENTONCES.
Llevar el libro al mostrador de salida para libro.
Pagar el libro
Asegurase de obtener el recibo de compras
Abandonar la librería
DE OTRO MODO
No llevar los libros al mostrador
Abandonar la librería
La estructura de decisión que emplea las frases SI / ENTONCES / DE OTRO MODO, señala con bastante
claridad las alternativas de proceso de decisión. En este caso se indican dos condiciones y dos acciones.
Las estructuras de decisión no está limitada a pares de combinaciones condición – acción. Pueden existir
muchas condiciones.
Estructuras de iteración: En las actividades rutinarias de operación, es común encontrar que algunas de
ellas se repiten mientras existan ciertas condiciones o hasta que estas se representan. Las instrucciones
de iteración permiten al analista describir estos casos.
La búsqueda de un libro en la librería puede realizarse repitiendo los siguientes pasos:
EJECUTAR MIENTRAS se examinan más libros:
Leer el título del libro
Si el titulo suena interesante
ENTONCES tomar el libro y hojearlo
Buscar el precio
Si la decisión es llevar el libro
Colocarlo en la filas de LIBROS PARA LLEVAR
OTRO regresar el libro al instante
FIN DE SI
OTRO continuar
FIN DE EJECUTAR
SI se encuentra en los libros deseados ENTONCES
Llevar los libros al mostrador de salida
Pagar los libros
Asegurarse de obtener el recibo
Abandonar la librería
OTRO
No llevar al libro al mostrador de salida
Abandonar la librería
FIN DE SI
El español estructurado puede ser de utilidad para describir con claridad condiciones y acciones.
HERRAMIENTAS
Es cualquier dispositivo, objetivo, objetos u operación utilizada para ejecutar una tarea específica. El
analista de sistema depende de las herramientas para realizar su trabajo de la misma manera que otras
personas de sus actividades cotidianas.
Las herramientas ayudan al analista a recopilar los datos por los diversos métodos en la sección anterior.
ACCIONES
Son alternativas, pasos, actividades o procedimientos que deben emprenderse cuando se toman una
decisión específica.
ÁRBOLES DE DECISION.
Son uno de los tres métodos que se emplean para describir decisiones y que evita dificultades en la
comunicación.
acción
condición
acción
Raíz
acción
condición
acción
ANALISIS ESTRUCTURADOS
Ya sea un nuevo sistema o recomendaciones para hacer cambios en el ya existente debe conducir a una
mejora.
Para tener buenos resultados se espera que los analistas hagan lo siguiente:
Aprendan los detalles y procedimientos del sistema en uso.
Obtengan una idea de las demandas futuras de la organización como resultado del crecimiento, del
aumento de la competencia en el mercado, los cambios en las necesidades de los consumidores.
Documentar detalles del sistema actual para su revisión y discusión por otros.
Evaluar la eficiencia y efectividad actual y sus procedimientos. Recomendar todas las revisiones y
ampliaciones del sistema actual señalando su justificación.
Fomentar la participación de gerentes y empleados en todo el proceso y aprovechar sus conocimientos
y experiencias.
¿Qué es el Análisis Estructurado?
Considérese las siguientes preguntas:
¿Deben dos analistas desarrollar una lista idéntica de requerimientos cuando estudian de forma
independiente lamisca situación?
Para una situación dada, ¿Existe siempre un solo diseño correcto para el sistema?
¿Las aplicaciones que el analista observa tiene una naturaleza bien estructurada o están mal
definidas?
El hecho es que dos analistas que examinan una situación en forma independiente, sin lineamientos y
técnicas preestablecidas recopilan información diferente para describir el sistema. Por lo tanto, la
determinación de requerimientos es diferente los sistemas dependen de los seres humanos para funcionar
o no funcionar se ven influenciados por las políticas de la organización, restricciones sobre costos y
ganancias, política en general.
¿Qué es lo que se desea estructurar? ¿Qué significa ―estructura‖? el objetivo que persigue el analista es
organizar las tareas asociadas con la determinación de requerimientos para obtener la comprensión
completa y exacta de una situación dada.
Componentes del análisis estructurado
El análisis estructura hace uso de los siguientes componentes:
1. Símbolos gráficos. Íconos y convenciones para identificar y describir los componentes de un sistema
junto con las relaciones entre estos componentes.
2. Diccionario de datos. Descripción de todos los datos utilizados para el sistema. Puede ser manual
automatizado (y estar incluido en el diccionario de un proyecto más grande que quizás contengan las
descripciones de los procesos que integran el sistema).
3. Descripción de procesos y procedimientos. Declaraciones formales que emplean técnicas y
lenguajes que permitan a los analistas describir actividades importantes que forman parte del sistema.
4. Reglas. Estándares para describir, documentar el sistema en forma correcta y completa.
Diagrama de flujo de datos. Una herramienta gráfica se emplea para describir y analizar el movimiento
de datos a través de un sistema ya sea que este fuera manual o automatizado incluyendo procesos,
lugares para almacenar datos y retrasos en el sistema.
Diccionario de datos. Contiene las características lógicas de los sitios donde se almacenan los datos
del sistema. También identifican los procesos donde se emplean los datos y los sitios donde se
necesita el acceso inmediato a la información.
Diagrama de estructura de datos. Es una descripción de la relación entre entidades de un sistema y el
conjunto de información relacionado con la entidad.
Graficas de estructura. Muestra con símbolo la relación entre los módulos de procesamiento y el
software de la computadora. Incluye el análisis de las transformaciones entrada/salida y el análisis de
transacciones.
DIAGRAMAS DE FLUJO DE DATOS
Los diagramas de datos se pueden dibujar solo con cuatro notaciones sencillas, y dependiendo del
enfoque que se aplique ya se el Yourdon o el de Gane-sarson.
Flujo de datos: Es la dirección en la que viajan los datos.
YOURDON GNE-SEARSON
Proceso: Son las personas, procedimientos o dispositivos que utilizan o producen datos.
YOURDON GANE-SARSON
Fuente o destino de los datos: Pueden ser personas, programas, organizaciones u otras entidades
que interactúan con el sistema.
YUORDON GANE-SARSON
Almacenamiento de datos: Es donde se guardan los datos los datos o al que hacen referencia los
procesos del sistema.
YOURDON GANE-SARSON
Los diagramas de flujo Se datos se refieren al movimiento de datos a trabes del sistema, no en los
dispositivos o el equipo.
ALGUNOS SIMBOLOS UTILIZADOS EN LOS DIAGRAMS DE FLUJO
SEÑALA DOSCTOS
ENTRADA/SALIDA
IMPRESOS
ALMACENAMIENTO EN
ENTRADA/SALIDA
LINEA
PROCESAMIENTO POR
PROCESAMIENTO
COMPUTADORA
PROCESAMIENTO
PREDEFINIDO (DEFINIDO
PROCESAMIENTO
EN OTRO LUGAR U OTRO
DIAGRAMA DE FLUJO
PROCESAMIENTO ENTRADA/SALIDA
PROCESAMIENTO DECISION
INDICA CONTINUACION
DESCRIPTIVOS
CON OTRA PAGINA
DESCRIPTIVO CONECTOR
Relación iteración. La iteración implica repetición. Al definir estructuras de datos la relación de iteración
implica que los elementos que componen una estructura están perdidos.
¿Cuántas veces? Esto depende de la entidad específica descrita en ese momento. En general, sin
embargo, se suele afirmar que una relación de iteración los datos en la estructura de datos se repiten 0,
una o más veces. El analista de sistemas puede indicar para una aplicación específica valores mínimos y
máximos para la repetición de los datos; o dejarlos sin definir.
Relación opcional. Algunos elementos dato pueden ser opcionales. Más que mostrarlos como un caso
especial de iteración, esto es como cero una iteración; es más eficiente indicar que estos casos elementos
pueden o no estar incluidos.
Notación empleada en el diccionario de datos. Los analistas utilizan símbolos especiales con la
finalidad de liminar la cantidad de texto necesario para descubrir las relaciones entre datos y al mismo
tiempo mostrar con claridad las relaciones estructurales.
Las estructuras de datos se describen al vincular los datos sobre artículos en particular con un signo (+).
En algunos casos se emplean varios términos diferentes para describir la misma entidad. Los alias, como
se denomina a estos sinónimos, se representan con finalidad con un signo igual (=) que vincula datos.
Registro de las descripciones de datos. Dado que las descripciones de los datos se utilizaran una y otra
vez durante toda la investigación durante el diseño, es aconsejable adoptar un formato fácil de usar tanto
para el registro como para la recuperación de detalles cuando sea necesario es esta sesión se presentan
varias muestras de formatos. Estos emplean los principios y la notación desarrollada en la sesión anterior.
Definición de los flujos y almacenes de datos. Una explicación completa de todos los elementos del
diagrama de flujo de datos y procesos.
Todos estos detalles son capturados en una forma especial para el flujo de datos. Cada flujo de datos
recibe un nombre y se describe de manera breve. Así mismo, se incluyen los nombres y la identificación de
los procesos asociados con el flujo de datos. Para completar la definición del flujo de datos se listan todas
las estructuras de datos apropiadas. (No es necesario definir el contenido d las estructuras de datos, este
se encuentra en otra parte del diccionario de datos).
Definición de estructuras de datos. Los flujos y almacenes de datos son estructuras de datos. Dicho de
otra forma, si las estructuras de datos están en movimiento reciben el nombre de flujo de datos. En
contraste, las estructuras de datos, que no están en movimiento se denominan almacenes de datos.
Se utilizan definiciones por separado para los artículos con la finalidad de describir los valores permisibles
para lo mismo.
Descripción del proceso. También se proporciona una definición por separado de cada proceso en el
sistema.
DICCIONARIO DE DATOS
Qué es un Diccionario de Datos
Un diccionario de datos (DD) es un catálogo, un depósito de los elementos de un sistema de flujo de
datos y auxilia al analista en la determinación de los requerimientos del sistema.
HIPO son las siglas de jerarquía (más) entrada/proceso/salida. Las siglas proporcionan una mejor idea
del objetivo de ésta técnica.
El diagrama HIPO es jerárquico debido a que el sistema completo consiste o está formado de
subsistemas más pequeños. Esta técnica da soporte a un enfoque de diseño de arriba hacia abajo y
también reduce la complejidad percibida del sistema, debido a que cada uno de los subcomponentes
puede ser manejado por separado.
Las siglas del diagrama recuerdan las tres partes fundamentales de cualquier sistema, la entrada, el
proceso y la salida.
Tabla Visual de Contenido de un Sistema Universitario, el objetivo es mapear el sistema para hacer más
fácil la identificación de los módulos que lo componen y lograr una mejor comprensión de la distribución
de éstos.
Pantalla Prototipo:
1 2
7
4
6
Componente Descripción
1. Apartado Dividen el formulario en secciones dependiendo de la
tarea, dichos apartados se encuentran subrayados y
resaltados, el tipo de letra es Arial tamaño 10 color
Consultas.
Información presentada en pantalla, resulta de una solicitud de datos por parte de un usuario a la base de
datos. El formato de la información es el siguiente:
1.
Botones
2.
Contenido
del
reporte.
3. Cuadro de
Diálogo de
impresión.
Componente Descripción
1. Botones. Permiten realizar las funciones principales del
módulo de reportes, como lo es la navegación entre
páginas (de existir más de una), impresión y cerrar el
2. Contenido del reporte. módulo.
Espacio donde se encuentra la información
presentada en el reporte.
3. Cuadro de diálogo de Impresión. Módulo que permite al usuario configurar la
impresión del reporte.
ANEXO9
Los derechos de propiedad intelectual de buenas prácticas pertenece a los Docentes, por lo cual, toda la
información contenida en el presente documento sólo puede ser usada con fines académicos. Cualquier
uso, reproducción parcial o total destinada a otros fines, deberá estar autorizada por los Docentes.
PRIMER MOMENTO. DISTINCIÓN ENTRE PRÁCTICA Y PROCESO
Existe una distinción importante entre prácticas y procesos. Las prácticas son lo que debe hacer y el
proceso es la estructura para hacer las tareas. El proceso define el orden en el cual aplicar las prácticas y
hacer el trabajo, de forma que obtenga resultados de ingeniería significativos. Las prácticas aprovechan el
proceso de ingeniería de software que explica las tareas y el orden en el que se deben realizar para crear
productos de trabajo específicos. Lasfases generales clave del proceso son:
•Preparación del proyecto
•Análisis de requisitos
•Análisis funcional
•Síntesis de diseño
•Implementación
•Prueba de unidad
1. INTRODUCCIÓN
Según [1] los patrones de diseño en la construcción de software se especifican acorde a la etapa donde
se aplican: modelos de dominio, patrones arquitecturales (estilos), patrones de diseño, patrones de código
específicos a una tecnología (idioms), patrones de diseño implementados en una API (Frameworks),
patrones de procesos.
Antes de formular que es Framework, se hace necesario definir que la Arquitectura de Componentes
Software (Fig. 1) es el conjunto de componentes15 y sus relaciones16, sus interfaces17, obligaciones,
servicios o contratos18.
Un Framework se define como un cascaron o una estructura en bruto donde se van colocando los
componentes acorde con una necesidad, requerimiento o una exigencia basado en un análisis de alto
nivel, como también, en una valoración crítica. Entones, un Framework es una abstracción de un
componente de software (su construcción se basa en la experiencia) para resolver un problema en UN
CONTEXTO (ojo no confundir con PATRON DE DISEÑO que es para resolver un problema en
CUALQUIER contexto).
20
API [2] que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java,
independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto
SQL del modelo de base de datos que se utilice
21
Java Naming and Directory Interface[2] es una Interfaz de Programación de Aplicaciones (API) para servicios de directorio
22
Consiste en obtener una secuencia de bytes que represente el estado de dicho objeto
Fig. 2. Hibernate Java. Fuente Propia
En la Figura 2 se persisten las Tablas User y Group para generar los objetos user, user_group, group.
2) Objetivo de las Prácticas. Utilizar Framework Hibernate en NetBeans para generación de Interfaces de
Captura y Consulta de Tablas de una Base de Datos MySQL.
3) Actividades Desarrolladas.
- Instalación MySQL server
- Conceptualización de:
Que es Hibernate
El Lenguaje de Consulta Hibernate
Documentación Hibernate
- Descarga MySQL Connector
- Registro del Servidor MySQL en NetBeans
- Conexión a la Base de Datos MySQL en NetBeans
- Creación de la aplicación Hibernate en NetBeans
Primer Paso. Creación de la entidad Cliente
Segundo Paso. Escritura del Archivos de Mapeo y Configuración
Tercer paso. Creación Archivo de Mapeo Cliente.hbm.xml
Cuarto Paso. Escritura del Archivo Configuración Hibernate
Quinto Paso. Adicionar librería Hibernate JPA (Java Persistence Applications) como el Controlador
mySql Conector
Sexto Paso. Crear archivo de sesión y de ayudante (helper) hibernate
Séptimo Paso. Creación de un Archivo Menu
Octavo Paso. Actualizar la clase main
- Ejecución
D. Cuarto Referente. Frameworks Struts
1) Teoría Comprobada. Framework Struts es un framework que implementa el patrón de arquitectura MVC
en Java. El patrón de arquitectura MVC (Model-View-Controller) se define en el Model (Objetos de
Negocio), la View (interfaz con el usuario u otro sistema) y el Controller (controlador del workflow 23 de la
aplicación).
El Framework Struts 1.x implementa el patrón de arquitectura MVC separando el modelo o workflow de la
aplicación (se puede programar desde un archivo XML), del modelo de objetos de negocio y de la
generación de interfaz.
Las acciones se ejecutan sobre el Model (Objetos de Negocio) y se implementan basándose en clases
predefinidas por el framework a partir de un patrón de diseño Facade. La generación de la View (interfaz
con el usuario u otro sistema) se realiza a partir de un conjunto de Tags predefinidos por Struts generando
ventajas de mantenimiento y de desempeño (pooling de Tags, caching, etc). Así mismo, separa el
desarrollo de interfaz del workflow y lógica de negocio permitiendo desarrollar ambas en paralelo.
El Framework Struts 1.x permite la reutilización de componentes y puede hacer uso de múltiples interfaces
de usuario (Html, sHtml, Wml, Desktop applications, etc.) y de múltiples idiomas, localismos, etc.
El Controller (controlador) Struts se encarga de tres tareas:
1. Validaciones simples: extendiendo la clase ActionForm, se realiza validaciones simples sin acceder
al modelo, haciendo uso de expresiones regulares (comprobación formato y longitud de datos)
2. Validaciones Complejas: extendiendo la clase Action, se comprueba las reglas de negocio
(modelo). Por ejemplo: Se realizan consultas contra la base de datos y se obtienen los errores de
integridad, etc.
Control de flujo o de Navegación: a través de un archivo de configuración (struts-conf) se gestiona el flujo
de navegación entre páginas, que también se logra extendiendo la clase ActionForm y Action.
El Framework Struts 2.x establece:
1. Cuáles deben ser las peticiones o solitudes a recibir desde el usuario.
2. El elemento FilterDispatcher(administrador de responsabilidades) determina cual es el action( la clase
base de struts 2.x) que deberá responder a una determinada petición o solicitud. El framework struts posee
la estructura para que el administrador de responsabilidades (FilterDispatcher) determine qué action es el
responsable de recibir la petición, procesarla y publicar el resultado de su ejecución.
La clase Action:
- Es una clase java
- Esta clase java cumple con normatividad de variables javabeans: nombre en minúscula, acceso de
variables private, métodos getter y setter
- El Método execute() retorna ERROR cuando no cumple con lo solicitado. Retorna SUCCESS
cuando cumple con lo solicitado.
Acorde con la Tabla 1 (Tabla de Responsabilidades), se debe declarar: el nombre de la responsabilidad
(Action), el nombre de la clase Action, el nombre del interceptor24, el nombre de la página JSP que recibe
la petición, el nombre de la página JSP donde se publican los errores, el nombre de la página JSP donde
se publica el resultado de la ejecución con éxito, como también, en algunos casos el llamado a un
JavaBean para realizar un modelo de datos o lógica del negocio.
TABLA 1.
TABLA DE RESPONSABILIDADES
23
Estudio de los aspectos operacionales de una actividad de trabajo: cómo se estructuran las tareas, cómo se realizan, cuál es su
orden correlativo, cómo se sincronizan, cómo fluye la información que soporta las tareas y cómo se le hace seguimiento al
cumplimiento de las tareas
24
Clases que se emplean para especificar el ciclo de vida de una petición, y están pensadas para añadir funcionalidad extra a las acciones. Los
interceptores se pueden configurar para que ejecuten diferentes servicios, a saber, workflows, validaciones, upload de archivos, etc. Entonces, los
interceptores en struts2 son clases que se ejecutan antes o después que se invoque un Action
3. Cada solicitud o petición dentro del servidor se relaciona con un Action (por nombre de
responsabilidad). Entonces, una vez recibida una solicitud o petición se ejecuta el interceptor siempre y
cuando el Action tenga asociado uno. Luego, se ejecuta la clase action haciendo uso del método execute()
y retornando un resultado. De acuerdo a este resultado (error o éxito en dar respuesta a la petición o
solicitud) se determina la página a publicar (Dispatcher).
4. Se publica el resultado en el cliente.
Un ejemplo, de acuerdo a la lógica a emplear en el FilterDispatcher (administrador de responsabilidades)
se describe a partir de la siguiente tabla:
TABLA 2.
TABLA EJEMPLO DE RESPONSABILIDADES
En el archivo struts.xml, se debe escribir el tag <action>…</action> para declarar los Actions de la
siguiente manera:
<action name="Crear">
<result>/Entrada.jsp</result>
</action>
<action name="Crear" class="Action.AccionCrear">
<result name="input">/Entrada.jsp</result>
<result name="error">/Entrada.jsp</result>
<result>/Creacion.jsp</result>
</action>
También, en el archivo struts.xml, se debe escribir el tag <interceptors>…</interceptors> para declarar los
interceptores de la siguiente manera:
<interceptors>
<interceptor name="Nuevo" class=" Action.Nuevo "/>
</interceptors>
Se puede decir entonces:
- El nombre de la responsabilidad o action se llama Crear
- La clase action se denomina AccionCrear
- La clase interceptor es Nuevo.class
- entrada.jsp es la página JSP donde se recibe la petición dentro del servidor. También, es donde se
retorna el control si existe error en dar respuesta a la petición o solicitud
- creación.jsp es la página JSP donde retorna el control si existe éxito en dar respuesta a la petición
o solicitud
- Cuenta se encuentra en el paquete Beans. Se hace uso de un javabean Cuenta si existe éxito en
responder la petición o solicitud.
El llamado del action Crear se hace desde una página JSP de la siguiente manera:
2) Actividades Desarrolladas.
- Actualización de Strut 2.x
- Conceptualización de:
Arquitectura Strut 2.x
Struts 1 vs Struts 2
Patrón de Diseño Cadena de Responsabilidades Descarga MySQL Connector
- Framework Strut en Netbeans
Primer Paso. Creación de Proyecto
Segundo Paso. Editando el archivo struts.xml
Tercer Paso. Eliminar index.html
Cuarto Paso. Adicionar index.jsp
Quinto Paso. Actualizar web.xml
Sexto Paso. Creando la clase Validar
Séptimo Paso. Creando JavaBeans Cuenta
Octavo Paso. Creando Páginas JSP Petición y Vista
Noveno Paso. Edición Transaccion.jsp
Decimo Paso. Edición Actualiza.jsp
Décimo Primer Paso. Edición Creacion.jsp
Décimo Segundo Paso. Creando Action AccionCrear
Décimo Tercer Paso. Modificar el método execute()
Décimo Cuarto Paso. Creando Action AccionActualiza
Décimo Quinto Paso. Modificar el método execute()
- Ejecución
E. Quinto Referente. Frameworks Spring
1) Teoría Comprobada. Spring es un framework liviano que generalmente los objetos que se programan no
tienen dependencias en clases específicas de Spring. Sus características principales son inyección de
dependencias y programación orientada a aspectos.
Inyección de dependencias. El objetivo es lograr un bajo acoplamiento entre los objetos de una
aplicación. Con el Patrón Inversión de Control25 (IoC), los objetos no crean o buscan sus dependencias
(objetos con los cuales colabora) sino que éstas son dadas al objeto. El contenedor (la entidad que
coordina cada objeto en el sistema) es el encargado de realizar este trabajo al momento de crear el objeto.
Se invierte la responsabilidad en cuanto a la manera en que un objeto obtiene la referencia a otro objeto.
De esta manera, los objetos conocen sus dependencias por su interfaz. Así la dependencia puede ser
intercambiada por distintas implementaciones a través del contenedor. En resumen, se programa
orientado a interface y se inyecta las implementaciones a través del contenedor.
Programación orientada a aspectos (AOP). Se trata de un paradigma de programación (Codigo, 2012)
que intenta separar las funcionalidades secundarias26 de la lógica de negocios.
Módulos de Spring. En la figura 4 se muestran los módulos del Spring. En su núcleo (Core) se encuentra
el BeanFactory – el contenedor fundamental de Spring y quien se encarga de la inyección de
dependencias. El contenedor ApplicationContext se basa en BeanFactory, eventos de ciclo de vida,
validación y mejor integración con AOP.
25
IoC permite instanciar una clase (crear objetos) olvidando las dependencias que tiene. Para eso, primero se registran las clases
en un Contenedor (IoC Container). Segundo, haciendo uso de Dependency Injection, se generan los Constructores de las
clases registradas en el Contenedor (IoC Container), para así, recuperar fácilmente cualquier clase en cualquier otra clase. IoC
también es famoso por el principio de HollyWood: ―don‘t call us, we‘ll call you‖ (No nos llames, nosotros le llamaremos.)
26
―cross-cutting concerns‖ algo que se traduciría como ―preocupaciones transversales‖
Web – Módulo que aporta clases especiales orientadas al desarrollo web e integración con tecnologías
como Struts y JSF. Cuenta con el paquete Spring MVC, una implementación del conocido patrón de
diseño aplicando los principios de Spring.
2) Objetivo de las Prácticas. Desarrollar los módulos del Framework Spring en NetBeans.
3) Actividades Desarrolladas.
- Conceptualización de:
Patrón Inversión de Control (IoC)
Que es Hibernate
Que es Framework Spring
- Instalación y registro MySQL server
- Desarrollo de Framework Spring en NetBeans
Primer Paso Creación de JavaBean Cliente
Segundo Paso Creación de InterfaceCliente
Tercer Paso. Escritura del Archivo de Mapeo
Cuarto Paso. Crear archivo Hibernate
Quinto Paso. Crear Archivo Interceptor
Sexto Paso. Crear Archivo Test
Séptimo Paso. Creación de JSP Actualiza
Octavo Paso. Creación de JSP Ayudante
Noveno Paso. Modificar redirect.jsp
- Ejecución
2) Objetivo de las Prácticas. Desarrollo de JPA a partir de una Base de Datos Relacional MySQL.
3) Actividades Desarrolladas.
- Instalación MySQL server
- Creación de una Base de Datos con sus respectivas tablas
- Conceptualización
Que es Hibernate
Interfaz de Persistencia Java (JPA)
Diferencia entre Hibernate y JPA
- Desarrollo en NetBeans
Registro Servidor MySQL
Conexión a la Base de Datos MySQL
Creación de Aplicación JPA
- Ejecución
27
API de persistencia desarrollada para la plataforma Java EE. Es un Framework del lenguaje de programación Java que maneja datos relacionales en aplicaciones
usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).
G. Séptimo Referente. Practica JSF (Java Server Face)
1) Teoría Comprobada. JSF (Java Server Faces) es un Framework MVC para desenvolvimiento web en
lenguaje de programación Java.
Principales características de JSF
a. Es un Framework que fue definido por JCP (Java Community Process), que es la entidad
que define las especificaciones de la evolución de la tecnología Java.
b. Conjunto de componentes para la interfaz del usuario.
c. Programadores pueden crear componentes adicionales.
d. Componentes visuales se conectan con los datos del servidor
e. Eventos de componentes visuales realizan funciones en el servidor. (ManagedBeans)
f. Validadores y convertidores de datos, todos los datos que llegan al servidor vienen en
formato texto, puede que nuestro usuario escriba una fecha de nacimiento, en JSF tenemos
conversores automáticos.
g. Soporte AJAX28, puede mostrar información que proviene del servidor sin necesidad de
recargar la página.
2) Objetivo de las Prácticas. Desarrollo de JPA Hibernate a partir de una Base de Datos Relacional
MySQL.
3) Actividades Desarrolladas.
- Instalación MySQL server
- Creación de una Base de Datos con sus respectivas tablas
- Conceptualización de:
Que es Framework Hibernate Java
HQL: El lenguaje de consulta de Hibernate
- Desarrollo en NetBeans
Registro Servidor MySQL
Conexión a la Base de Datos MySQL
Creación de Aplicación Hibernate
Primer paso. Modificar el archivo de configuración de Hibernate
Segundo paso. Crear archivo de sesión y de ayudante (Helper)
Tercer paso. Generación de archivos de mapeo Hibernate y las clases Java
Cuarto paso. Creación de los archivos Pojo y de Asignación
Quinto paso. Edición de una clase ayudante (Helper)
Sexto paso. Desarrollo de consultas y método de adición de registro
Séptimo paso. Crear páginas web
Octavo paso. Creación de archivos XML
- Ejecución
28
Acrónimo de Asynchronous Javascript and XML, es decir, Javascript y XML Asíncrono.
29
Document Object Model o DOM ('Modelo de Objetos del Documento' o 'Modelo en Objetos para la Representaci ón de Documentos') es
esencialmente una interfaz de plataforma que proporciona un conjunto estándar de objetos para representar, acceder y modif icar el contenido,
estructura y estilo de los documentos HTML y XML. El responsable del DOM es el World Wide Web Consortium (W3C).
Colocar campos de Captura de Datos
Búsqueda de bibliotecas de código abierto JavaScript
Colocar en el tag <script>
Adición de Hoja de Estilo (css)
Adición de archivos de datos
Creación de una clase Control
Creación del archivo servlet
Configuración archivo xml
Ejecución
Fig. 4. Gráfica de Buenas Prácticas de los Frameworks en las Capas Arquitectónicas. Fuente Propia
ANEXO10
Los derechos de propiedad intelectual de buenas prácticas pertenece al docente, por lo cual, toda la
información contenida en el presente documento sólo puede ser usada con fines académicos. Cualquier
uso, reproducción parcial o total destinada a otros fines, deberá estar autorizada por el Docente.
INTRODUCCION A ARQUITECTURA DE SOFTWARE
Tomado de: Buenas Prácticas en Arquitectura Orientada en Servicios ISBN 978-620-0-03791-6
La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema.
Una Arquitectura de Software, también denominada Arquitectura lógica, consiste en un conjunto de
patrones y abstracciones coherentes que proporcionan el marco
Una arquitectura de software se selecciona y diseña con base en objetivos (requerimientos) y
restricciones. Los objetivos son aquellos prefijados para el sistema de información, pero no solamente los
de tipo funcional, también otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción
con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las
tecnologías disponibles para implementar sistemas de información. Unas arquitecturas son más
recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para
determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas
para implementar sistemas en tiempo real.
La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea
de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable
en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada
cada tarea.
La arquitectura de software, tiene que ver con el diseño y la implementación de estructuras de software de
alto nivel. Es el resultado de ensamblar un cierto número de elementos arquitectónicos de forma adecuada
para satisfacer la mayor funcionalidad y requerimientos de desempeño de un sistema, así como
requerimientos no funcionales, como la confiabilidad
La Arquitectura Orientada a Servicios (SOA, siglas del inglés Service Oriented Architecture) es un
paradigma de arquitectura (Google) del software creada para satisfacer los objetivos de negocio las cuales
incluyen facilidad y flexibilidad de integración con sistemas legados, alineación directa a los procesos de
negocio reduciendo costos de implementación, innovación de servicios a clientes y una adaptación ágil
ante cambios incluyendo reacción temprana ante la competitividad.
Permite la creación de sistemas de información altamente escalables que reflejan el negocio de la
organización, a su vez brinda una forma bien definida de exposición e invocación de servicios
(comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes
sistemas propios o de terceros.
SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de negocio y
puede dar soporte a las actividades de integración y consolidación.
Modelos o vistas
Toda arquitectura de software debe describir diversos aspectos del software. Generalmente, cada uno de
estos aspectos se describe de una manera más comprensible si se utilizan distintos modelos o vistas. Es
importante destacar que cada uno de ellos constituye una descripción parcial de una misma arquitectura y
es deseable que exista cierto solapamiento entre ellos. Esto es así porque todas las vistas deben ser
coherentes entre sí, evidente dado que describen la misma cosa.
Cada paradigma de desarrollo exige diferente número y tipo de vistas o modelos para describir una
arquitectura. No obstante, existen al menos tres vistas absolutamente fundamentales en cualquier
arquitectura:
La visión estática: describe qué componentes tiene la arquitectura.
La visión funcional: describe qué hace cada componente.
La visión dinámica: describe cómo se comportan los componentes a lo largo del tiempo y cómo interactúan
entre sí.
Las vistas o modelos de una arquitectura de software pueden expresarse mediante uno o varios lenguajes.
El más obvio es el lenguaje natural, pero existen otros lenguajes tales como los diagramas de estado, los
diagramas de flujo de datos, etc. Estos lenguajes son apropiados únicamente para un modelo o vista.
Afortunadamente existe cierto consenso en adoptar UML (Unified Modeling Language, lenguaje unificado
de modelado) como lenguaje único para todos los modelos o vistas. Sin embargo, un lenguaje generalista
corre el peligro de no ser capaz de describir determinadas restricciones de un sistema de información (o
expresarlas de manera incomprensible).
Arquitecturas más comunes
Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de
información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes
para cada caso en concreto. Así, las arquitecturas más universales son:
Descomposicion Modular. Donde el software se estructura en grupos funcionales muy acoplados.
Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin
reparto claro de funciones.
Arquitectura de tres capas. Especialización de la arquitectura cliente-servidor donde la carga se divide en
tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de
usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento
(persistencia). Una capa solamente tiene relación con la siguiente.
CONCEPTOS DEL DOCENTE
1. Definiendo un servicio
Un servicio es un componente de software que, dependiendo de su tipo, puede tener una función mayor o
menor. Sin embargo existen ciertas cualidades que suele cumplir todo servicio:
Está definido por una interface
Está disponible a través de una red
Opera sobre objetos de negocio
Puede ser decorado con funcionalidad adicional
Es reusable
Un servicio está definido por una interface, que actúa como un contrato para el uso de la misma (esto no
es distinto de una interface estándar en Java). La interface puede ser dependiente de una plataforma (por
ejemplo en un servicio EJB, donde sólo un cliente EJB podrá hacer uso del contrato) o por contra ser
independiente de una plataforma (por ejemplo REST, que actúa sobre XML y HTML y por tanto puede ser
accedida desde multitud de sistemas, por muy distintos que sean éstos).
Un servicio está disponible a través de una red, o lo que es lo mismo: puede ser accedido remotamente.
Esto incluye a otras aplicaciones, otras máquinas, etc.
Un servicio opera sobre objetos de negocio, los cuales representan una parte tangible del problema de
negocio que intentamos resolver. En un servicio que realice conversión de divisas entre dólares
americanos (USD) y francos suizos (CHF) la divisa es el objeto de negocio y la conversión de divisas es el
problema de negocio.
Un servicio puede ser decorado con funcionalidad adicional, de manera que le puedan ser aplicados
requerimientos tanto funcionales como no funcionales. En un servicio SOAP hay disponibles multitud de
especificaciones, como WS-ReliableMessaging y WS-SecureConversation, que proporcionan capas
adicionales de seguridad a un servicio SOAP estandar.
Por último, un servicio debe ser reusable, con una funcionalidad atómica y bien definida. Ya seas
arquitecto o programador, el concepto de reusabilidad debe ser tu mantra.
2. Definiendo SOA
La Arquitectura Orientada a Servicios (Service-Oriented Architecture, a partir de ahora SOA) es un tipo de
arquitectura que utiliza servicios para facilitar la integración entre sistemas. El termino arquitectura en SOA
debe ser tratado de forma distinta ha como es tratado el término objetos en Programación Orientada a
Objetos: en éste último caso los objetos suelen ser tratados como una unidad de medida, como el
resultado final y tangible de un problema de negocio. Por el contrario, cuando nos enfrentamos a SOA
debemos pensar en términos más abstractos, en un cómo en lugar de un qué. En otras palabras, es un
paradigma de diseño.
Servicio Una función sin estado, auto-contenida, que acepta una(s) llamada(s) y devuelve una(s)
respuesta(s) mediante una interfaz bien definida. Los servicios pueden también ejecutar
unidades discretas de trabajo como serían editar y procesar una transacción. Los servicios
no dependen del estado de otras funciones o procesos. La tecnología concreta utilizada
para prestar el servicio no es parte de esta definición. Existen servicios asíncronos en los
que una solicitud a un servicio crea, por ejemplo, un archivo, y en una segunda solicitud se
obtiene ese archivo.
Orquestación Secuenciar los servicios y proveer la lógica adicional para procesar datos. No incluye la
presentación de los datos. Coordinación.
Sin estado No mantiene ni depende de condición pre-existente alguna. En una SOA los servicios no
son dependientes de la condición de ningún otro servicio. Reciben en la llamada toda la
información que necesitan para dar una respuesta. Debido a que los servicios son "sin
estado", pueden ser secuenciados (orquestados) en numerosas secuencias (algunas veces
llamadas tuberías o pipelines) para realizar la lógica del negocio.
Proveedor La función que brinda un servicio en respuesta a una llamada o petición desde un
consumidor.
Consumidor La función que consume el resultado del servicio provisto por un proveedor
Principios
No hay estándares en relación a la composición exacta de una arquitectura orientada a servicios, aunque
muchas fuentes de la industria han publicado sus propios principios.
Algunos de los principios publicados son los siguientes:
Contrato de servicios estandarizados: los servicios adhieren a un acuerdo de comunicación,
según se define en conjunto con uno o más documentos de descripción de servicios.
Acoplamiento débil de sistemas: los servicios mantienen una relación que minimiza las
dependencias y sólo requiere que mantengan un conocimiento de uno al otro.
Abstracción de servicios: más allá de las descripciones del contrato de servicios, los servicios
ocultan la lógica a los demás.
Reutilización de servicios: la lógica se divide en servicios con la intención de promover la
reutilización.
Autonomía de servicios: los servicios tienen control sobre la lógica que encapsulan, desde una
perspectiva de diseño y ejecución.
Servicios sin-estado: los servicios minimizan el consumo de recursos aplazando la gestión de la
información de estado cuando sea necesario.
Descubrimiento de servicios: los servicios se complementan con los metadatos mediante los
cuales se pueden descubrir e interpretar la eficacia.
Composición de servicios: servicios están compuestos por partes eficazmente,
independientemente del tamaño y la complejidad de la composición.
Granularidad de servicios: una consideración de diseño para proporcionar un ámbito óptimo y un
correcto nivel granular de la funcionalidad del negocio en una operación de servicio.
La normalización de servicios: los servicios se descomponen a un nivel de forma normal para
minimizar la redundancia. En algunos casos, los servicios se desnormalizan para fines específicos,
como la optimización del rendimiento, el acceso y agregación.
Optimización de servicios: los servicios de alta calidad son preferibles a los de baja calidad.
Relevancia de servicios: la funcionalidad se presenta en un nivel de granularidad reconocido por
el usuario como un servicio significativo.
Encapsulación de servicios: muchos servicios están consolidados para el uso de SOA. A
menudo, estos servicios no fueron planificados para estar en un SOA.
Transparencia de ubicación de servicios: se refiere a la capacidad de un consumidor de
servicios para invocar a un servicio independientemente de su ubicación en la red. Esto también
reconoce la propiedad de descubrimiento (uno de los principios fundamentales de SOA) y el derecho
de un consumidor para acceder al servicio. A menudo, la idea de la virtualización de servicios también
se refiere a la transparencia de ubicación. Aquí es donde el consumidor simplemente llama a un
servicio lógico, mientras que un SOA habilita la ejecución del componente de la infraestructura,
normalmente un bus de servicios, que mapea este servicio lógico y llama al servicio físico.
Capas de software
SOA define las siguientes capas de software:
Aplicaciones básicas: sistemas desarrollados bajo cualquier arquitectura o tecnología,
geográficamente dispersos y bajo cualquier figura de propiedad;
De exposición de funcionalidades: donde las funcionalidades de la capa aplicativa son
expuestas en forma de servicios (generalmente como servicios web);
De integración de servicios: facilitan el intercambio de datos entre elementos de la capa
aplicativa orientada a procesos empresariales internos o en colaboración;
De composición de procesos: que define el proceso en términos del negocio y sus necesidades,
y que varía en función del negocio;
De entrega: donde los servicios son desplegados a los usuarios finales.
Metodologia Propuesta para Desarrollo de SOA
http://www.revistatonoetecsa.cu/articulo/propuesta-de-desarrollo-para-arquitecturas-orientadas-servicios
Al adoptar o diseñar una arquitectura orientada a servicios en conjunto con una metodología
de desarrollo de software que la sustente es de importancia vital para garantizar el éxito de
cualquier desarrollo basado en SOA. Dicha metodología de desarrollo de software debe
poseer las siguientes características:
Centrada en la arquitectura: Gran parte del trabajo puede ser considerado como
arquitectura, por lo que es quien guía todo el desarrollo.
Iterativa e incremental: Los servicios al enmarcarse en un dominio muy amplio
deben ser identificados, diseñados e implementados de una forma iterativa, es decir,
una determinada cantidad a la vez y no haciéndose un esfuerzo en identificar todos los
de la empresa u organización de una sola vez. Asimismo, la metodología debe
desarrollar una aplicación a la vez y debe existir una relación entre
aplicación/servicios que es a lo que se le puede llamar proyecto dentro de la
metodología.
Con separación de intereses: Los intereses de quienes desarrollan las aplicaciones no
tienen que ser los mismos de aquellos que proyectan los servicios o de quienes se
ocupan de la infraestructura. Mantener equipos separados para cada una de estas tareas
es crucial para evitar conflictos de intereses que puedan crear una fuerte dependencia
entre el diseño de las aplicaciones, el diseño de los servicios y el diseño de la
infraestructura que los soporta y que impacten negativamente en la reutilización futura
de los servicios. Conjuntamente con estas características generales se debe tener en
cuenta el enfoque que se de a la metodología en cuanto a la forma de implementarse,
donde los más comunes son los siguientes:
Enfoque de arriba hacia abajo: se considera el desarrollo de SOA como un esfuerzo
centrado en identificar todas las funcionalidades de un negocio que puedan ser
expuestas como servicios, en toda la empresa u organización, donde se obtiene un
inventario de servicios que deben ser diseñados, implementados y desplegados para su
uso por las aplicaciones. Tiene los riesgos asociados a las complicaciones del trabajo y
al tiempo de duración que puede ser de meses o años. Esto implica que no se
obtendrán resultados a corto plazo. El alcance de este enfoque es a nivel empresarial.
Enfoque de abajo hacia arriba: este enfoque es contrario al anterior. En él cada
proyecto de desarrollo decide qué funcionalidades exponer como servicios sin
preocuparse de si tributan o no a los objetivos y procesos del negocio. Tampoco se
analiza si dichas funcionalidades están implementadas para reusarlas, lo que conlleva
a su duplicación. El alcance de este enfoque es a nivel de proyecto.
Enfoque de encontrarse en el medio: se basa en utilizar lo mejor de los enfoques
anteriores, busca alinear los objetivos del negocio con el desarrollo de los servicios.
Este enfoque se considera menos riesgoso que los anteriores, al unirlos de una manera
iterativa donde se identifican servicios y, paralelamente, se determina si las
funcionalidades asociadas al servicio se encuentran implementadas ya como servicios
o contenidas en aplicaciones legadas. El alcance de este enfoque es a nivel de
dominios de negocio.
La propuesta de metodología presentada (Figura 1) identifica las principales áreas de
impacto y de resultados de una aplicación en un proyecto de desarrollo de software. Los
mayores aportes se han obtenido de IBM y CBDI (The Service Oriented Process) al
considerárseles de referencia en los temas tecnológicos y metodológicos.
Planeación: esta fase constituye el inicio de cualquier proyecto y abarca las tareas
relacionadas con la identificación del dominio del negocio, las problemáticas a
resolver y la obtención de la mayor cantidad de conocimientos sobre la organización
en donde se desarrollará el proyecto. Aquí se pueden obtener los objetivos del
negocio, los objetivos a cumplir con el proyecto, la cadena de valor y los principales
procesos que apoyan el funcionamiento del negocio y que serán tratados en el
proyecto.
Arquitectura: esta fase enmarca todo el trabajo arquitectónico relacionado con la
arquitectura de la aplicación, las arquitecturas de especificación de servicios, de
implementación y despliegue para los servicios, la arquitectura de seguridad general, y
la arquitectura de infraestructura.
Diseño: esta fase abarca todo el diseño de los componentes específicos de la solución,
el diseño de los servicios y de la infraestructura.
Ensamblaje: durante la fase de ensamblaje, el trabajo fundamentalmente estará
centrado en la implementación de la solución técnica del proyecto y en la
implementación de los servicios, logrando que los equipos responsables de cada capa
laboren de conjunto.
Ejecución: esta fase constituye la última de la metodología y se centra en el
despliegue de los componentes de la aplicación y de los servicios, además de realizar
las pruebas finales de cada uno de los componentes, incluida la monitorización a lo
largo del tiempo para validar que se ajustan a su diseño inicial.
Dentro de esta clasificación de las disciplinas hay dos que no se tienen en cuenta, vinculadas
con los temas de gobierno SOA. Estas disciplinas contienen tareas y procedimientos que se
ejecutan en cada una de las fases y que son las mismas para cada equipo de trabajo, por lo
tanto, no tiene sentido ubicarlas en una capa y fase dentro de la metodología.
Como esta metodología abarca no solo el desarrollo de las aplicaciones, sino de las
diferentes arquitecturas y de los servicios, posee varios flujos e iteraciones para hacer posible
la sincronía y la concordancia de todo el trabajo realizado.
Estos flujos aparecen identificados a continuación: