Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tecn. de Analisis de Diseno. de Software PDF
Tecn. de Analisis de Diseno. de Software PDF
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
TÉCNICA DE ANÁLISIS DE
DISEÑO DE SOFTWARE
CUARTO NIVEL
TECNOLOGÍA EN:
QUITO - ECUADOR
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
NOTA:
2. LAS TAREAS SERAN ENVIADAS POR EL TUTOR, DE ACUERDO A LAS FECHAS DEL
CALENDARIO Y DE ACUERDO AL DESARROLLO DEL MÓDULO.
Vicerrectoradoacademico@davidausubel.edu.ec
e) ESCENARIOS DE ACTUACIÓN
El Tecnólogo en Informática podrá desempeñarse en todo tipo de empresa pública o
Privada donde se requiera tratar de una manera especial a los datos y la información que
·Instituciones Bancarias
Entidades Financieras
Empresas Comerciales
Empresas del estado
Entes de servicio a la comunidad
Instituciones de capacitación a nivel profesional, universitario o intermedio
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
f) OCUPACIONES PROFESIONALES
El Tecnólogo en Informática podrá desempeñarse como:
Gerente de Sistemas
Programador de computadoras
Director de grupos de trabajo
Administrador de Centros de Cómputo
Asistente de gerencia
Administrador de Bases de Datos
Instructor de personal en el área informática
Asesor organizacional de las empresas
Asesor en el área informática
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
DESCRIPCIÓN DE LA MATERIA
OBJETIVO GENERAL
Conocer las actividades a realizar dentro de las fases de análisis y conceptos básicos de
diseño en el desarrollo de software.
GENERALIDADES
CONCEPTOS
Metodología
Conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a
los desarrolladores a realizar nuevo software.
Tarea
Actividades elementales en que se dividen los procesos.
Procedimiento
Definición de la forma de ejecutar la tarea.
Técnica
Herramienta utilizada para aplicar un procedimiento. Se pueden utilizar una o varias.
Herramienta
Para realizar una técnica, podemos apoyarnos en las herramientas software que
automatizan su aplicación.
Producto
Resultado de cada etapa
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
CONTENIDO
CAPITULO I
CAPITULO II
2. CICLOS DE VIDA
2.1 EL CICLO DE VIDA CLÁSICO SEGÚN PROGER
2.2 PLANIFICACIÓN DEL SISTEMA
2.3 MODELO DEL COSTO DE UN PROYECTO
2.3.1 MODELO DE PROTOTIPO PARA EL CICLO DE VIDA
2.4 FACTORES DE CALIDAD
2.5 MEDICIÓN DE SOFTWARE
2.6 INGENIERÍA DE SOFTWARE
CAPITULO III
3. INGENIERIA DE SOFTWARE
3.1 SISTEMAS BASADOS EN COMPUTADORAS
3.2 LA JERARQUUÍA DE LA INGENIERIA DE SISTEMAS DE COMPUTADORAS
3.3 MODELO DE SISTEMAS
3.4 INGENIERIA DE INFORMACIÓN
3.5 INGENIERIA DE PRODUCTOS
3.6 PLANIFICACIÓN DE LA ESTRATEGÍA DE LA INFORMACIÓN
3.6.1 MODELADO DE LA EMPRESA
3.6.2 MODELADO DE DATOS A NIVEL DE NEGOCIO
3.6.3 ANALISIS DEL AREA DE NEGOCIO
3.6.4 MODELADO DEL PROCESO
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
CAPITULO IV
4. IDENTIFICADORES DE NECESIDADES
4.1 ESTUDIO DE LA VARIABLE
4.1.1 ANÁLISIS ECONÓMICO
4.1.2 ANÁLISIS TECNICO
4.2 MODELADO DE LA ARQUITECTURA DEL SISTEMA
4.3 MODELADO Y SIMULACIÓN DEL SISTEMA
4.4 ESPECIFICACIÓN DEL SISTEMA
4.5 TECNICAS ORIENTADAS A OBJETOS
4.6 CARACTERÍSTICAS
CAPITULO V
5. METODOLOGÍAS DE DESARRROLLO DE SOFTWAR
5.1 METODOLOGÍA Vs CICLO DE VIDA
5.1.1 GENERACIÓN DE METODOLOGÍA
5.1.2 DESARROLLO CONVENCIONAL
5.1.3 DESARROLLO ESTRUCTURADO
5.1.4 DESARROLLO ORIENTADO A OBJETOS
5.2 METODOLOGÍAS ORIENTADAS A OBJETOS
5.2.1 CLASIFICACIÓN DE LAS METODOLOGÍAS
5.2.2 METODOLOGÍAS ESTRUCTURADAS
5.2.3 METODOLOGÍA YOURDON/CONSTANTE
5.2.4 METODOLOGÍA ORIENTADA A DATOS JERÁRQUICOS / NO JERÁRQUICOS
5.3 CICLO DE VIDA DEL SISTEMA ORIENTADO A OBJETOS
5.3.1 ESTUDIO PREMILINAR
5.3.2 ANÁLISIS ORIENTADOS A OBJETOS
5.3.3 DISEÑO ORIENTADOS A OBJETOS
5.3.4 CONTRUCCIÓN ORIENTADA A OBJETOS
5.3.5 IMPLEMENTACIÓN
5.4 OBJETO
5.4.1 CLASIFICACIÓN DEL OBJETO
5.4.2 ANÁLISIS ORIENTADO A OBJETOS
5.4.3 OBJETIVO DEL ANÁLISIS
5.4.4 ANÁLISIS DE OBJETOS
5.5 EJERCICIOS
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
CAPITULO I
1. HISTORIA DEL SOFTWARE
Durante las tres primeras décadas de la Informática, el principal desafío era el desarrollo
del hardware de las computadoras, de forma que se redujera el costo de procesamiento y
almacenamiento de datos.
Fue hasta el año 1968 que se convocó una reunión en Garmisch, Alemania Oriental
estimulándose el interés hacia los aspectos técnicos y administrativos utilizados en el
desarrollo y mantenimiento de software, y fue entonces donde se utilizó el término
"Ingeniería de Software".
A lo largo de la década de los ochenta, los avances en microelectrónica han dado como
resultado una mayor potencia de cálculo a la vez que una reducción de costo. Hoy el
problema es diferente. El principal desafío es mejorar la calidad y reducir el costo.
Durante las tres primeras décadas de la informática, el principal desafío era el desarrollo
del hardware de computadoras, de forma que se redujera el costo del procesamiento y
almacenamiento de datos. A lo largo de las décadas de los ochenta, los avances en
microelectrónica han dado como resultado una mayor potencia de cálculo a la vez que
una reducción del costo. Hoy, el problema es diferente. El principal desafío es mejorar la
calidad (y reducir el costo) de las soluciones basadas en computadoras – soluciones que
se implementan con el software.
La potencia de las grandes computadoras de la era de los ochenta esta hoy disponible en
una computadora personal. Las enormes capacidades de procesamiento y el
almacenamiento de hardware moderno representan una gran potencia de cálculo. El
software es el mecanismo que nos facilita utilizar y explotar este potencial.
1.1.1 EL SOFTWARE
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Hace veinte años menos del 1 por 100 de la gente podría describir de forma inteligente lo
que significaba el “software de computadora”. Hoy, la mayoría de los profesionales y
muchas personas en general creen que entienden el software. Una descripción del
software de un libro de texto puede tener la siguiente forma:
“Estructuras de datos que facilitan a los programas manipular los datos adecuadamente
la información”.
El software es un elemento del sistema que es lógico, en lugar de físico. Por tanto, el
software tiene unas características distintas a las del hardware:
Los costos del software se encuentran en la ingeniería. Esto significa que los proyectos no
se pueden gestionar como si fueran proyectos de fabricación y esto es bien importante
para el manejo de los sistemas de información.
El software no se “estropea”.
El software no es susceptible a los males del entorno que hacen que el hardware se
estropee. Los defectos no detectados harán que falle el programa durante las primeras
etapas de su vida. Sin embargo, una vez que se corrigen, suponiendo que no introducen
nuevos errores, el software no se estropea !Pero se deteriora! Durante su vida, el software
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Los componentes de software se crean mediante una serie de traducciones que hacen
corresponder los requisitos del cliente con un código ejecutable en la maquina. Se traduce
un modelo (prototipo) de requisitos a un diseño. Se traduce el diseño del software a una
forma en un lenguaje que especifica las estructuras de datos, los atributos procedí
mentales y los requisitos que atañen al software. La forma en lenguaje es procesada por
un traductor que la convierte en instrucciones ejecutables a la maquina.
Los lenguajes maquina son una representación sim del conjunto de instrucciones de la
CPU.
Algunas veces es difícil establecer categorías genéricas para las aplicaciones del software
que sean significativas. Conforme aumenta la complejidad del software, es más difícil
establecer compartimientos nítidamente separados. Las siguientes áreas del software
indican la amplitud de las posibilidades de aplicación.
Es software de sistemas es un conjunto de programas que han sido escritos para servir a
otros programas. Algunos programas de sistemas (p. Ej.: compiladores, editores y
utilidades de gestión de archivos) procesan estructuras de información complejas pero
determinadas. En cualquier caso, el área del software de sistemas se caracteriza por una
fuerte interacción del hardware de la computadora; una gran utilización por múltiples
usuarios; una operación concurrente que requiere una planificación, una compartición de
recursos y una sofisticada gestión de procesos; unas estructuras de datos complejos y
múltiples interfaces externas.
1.2 MITOS
Muchas de las causas de la crisis del software se pueden encontrar en una mitología que
surge durante los primeros años del desarrollo del software. Hoy la mayoría de los
profesionales competentes consideran a los mitos como actitudes erróneas que han
causado serios problemas, siendo éstos hábitos difíciles de modificar.
Mitos de Gestión
Mitos del Cliente
Mitos de los Desarrolladores
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Mitos de Gestión
Mito.
Tenemos ya un libro que está lleno de estándares y procedimientos para construir
software. ¿No le proporciona ya a mi gente todo lo que necesita saber?
Realidad.
Está muy bien que el libro exista, pero ¿Se usa? ¿Conocen los trabajadores su
existencia? ¿Refleja las prácticas modernas de desarrollo de software? ¿Es completo? En
muchos casos, la respuesta a todas estas preguntas es "no"?.
Mito.
Nuestra gente dispone de las herramientas de desarrollo de software más avanzadas;
después de todo, les compramos las computadoras más nuevas.
Realidad.
Se necesita mucho más que el último modelo de computadora grande (o de PC) para
hacer desarrollo de software de gran calidad. Las herramientas de ingeniería del software
asistida por computadora (CASE), aunque no se usen la mayoría, son más importantes
que el hardware para conseguir buena calidad y productividad.
Mito.
Si fallamos en la planificación, podemos añadir más programadores y adelantar el tiempo
perdido.
Realidad.
El desarrollo de software no es un proceso mecánico como la fabricación. Brooks dice:
"Añadir gente a un proyecto de software retrasado lo retrasa aún más". Ya que cuando se
añaden nuevas personas, la necesidad de aprender y comunicarse con el equipo puede y
hace que se reduzca la cantidad de tiempo gastado en el desarrollo productivo. Puede
añadirse gente, pero de una manera planificada y bien coordinada.
Realidad.
Una mala definición inicial es la causa principal del trabajo baldío en software. Es esencial
una descripción formal y detallada del ámbito de la información, funciones, rendimiento,
etc. Y todas éstas características sólo se pueden determinar después de una exhaustiva
comunicación entre cliente y analista.
Mito.
Los requisitos del proyecto cambian continuamente, pero los cambios pueden
acomodarse fácilmente, ya que el software es flexible.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Realidad.
Es verdad que los requisitos del software cambian pero el impacto del cambio varía según
el momento en que se introduzca. Entre más temprano se realicen mejor.
Realidad.
Alguien dijo una vez: "Cuando más pronto se comience a escribir código, más se tardará
en terminarlo". Datos industriales indican que entre el 50 y el 70 por ciento de todo el
esfuerzo dedicado a un programa se realizará después de que se le haya entregado al
cliente por primera vez.
Mito.
Hasta que no tengo el programa “ejecutándose” realmente no tengo forma de comprobar
su calidad.
Realidad.
Desde el principio del proyecto se puede aplicar uno de los mecanismos más efectivos
para garantizar la calidad del software (Revisión de técnica formal). La revisión del
Software es un "filtro de calidad" que se ha comprobado que es más efectivo que la
prueba, para encontrar ciertas clases de defectos en el software.
Mito.
Lo único que se entrega al terminar el programa funcionando.
Realidad.
Un programa que funciona es sólo una parte de una configuración del software que
incluye todos los elementos tales como el Análisis, Diseño, Documentación del sistema,
etc.
Una de las primeras definiciones de ingeniería del software fue la propuesta por Fritz
Bauer en la primera conferencia importante [NAU 69] dedicada al tema:
Los procedimientos de la ingeniería del software son el pegamento que junta los métodos
y las herramientas y facilita un desarrollo racional y oportuno del software de la
computadora. Los procedimientos definen la secuencia en la que se aplican los métodos,
las entregas (documentos, informes, formas) que se requieren los controles que ayudan a
asegurar la calidad y coordinar los cambios y las directrices que ayudan a los gestores del
software a evaluar el progreso.
La ingeniería del software está compuesta por una serie de pasos que abarcan los
métodos, las herramientas y los procedimientos antes mencionados. Estos pasos se
denominan frecuentemente paradigmas de la ingeniería de software. La elección de un
paradigma para la ingeniería del software se lleva a cabo de acuerdo con la naturaleza del
proyecto y de la aplicación, los métodos y herramientas a usar y los controles y entregas
requeridos. Tres Son los diferentes tipos de paradigmas que se han tratado ampliamente.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
CAPITULO II
2. CICLOS DE VIDA
Es esencial definir previamente los requisitos de todos los elementos del sistema, así
como un modelo de vida para cada uno de los proyectos de programación, puesto que
permite clasificar y controlar las diferentes actividades necesarias para el desarrollo y
mantenimiento del producto.
Este modelo divide el ciclo de vida del producto de programación en una serie de
actividades sucesivas; cada fase requiere información de entrada, procesos y resultados,
bien definidos.
En ocasiones se denomina de cascada porque los productos pasan de un nivel a otro con
suavidad.
Con frecuencia se dice que es imposible realizar una planeación inicial, porque la
información precisa sobre las metas del proyecto, necesidades del cliente y restricciones
del producto no se conocen al comenzar el proyecto de desarrollo, sin embargo, uno de
los principales propósitos de esta fase es aclarar los objetivos, problemas o necesidades y
restricciones. La dificultad de la planeación no debe desalentar tan importante actividad.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
ANÁLISIS
Es indispensable comprender perfectamente los requisitos del software, para que éste no
fracase. Esta etapa puede parecer una tarea relativamente sencilla, pero las apariencias
engañan. Abundan los casos en que se puede llegar a malas interpretaciones o falta de
información.
DISEÑO
El diseño del software es realmente un proceso multipaso que se enfoca sobre cuatro
atributos distintos del programa: la estructura de los datos, la arquitectura del software, el
detalle procedimental y la caracterización de la interfaz. El proceso de diseño traduce los
requisitos en una representación del software que pueda ser establecida de forma que
obtenga la calidad requerida antes de que comience la codificación. Al igual que los
requisitos, el diseño se documenta y forma parte de la configuración del software.
CODIFICACIÓN
El diseño debe traducirse en una forma legible para la máquina. Si el diseño se realiza de
una manera detallada, la codificación puede realizarse mecánicamente.
PRUEBA
Una vez que se ha generado el código, comienza la prueba del programa. La prueba se
centra en la lógica interna del software, asegurando que todas las sentencias se han
probado, y en las funciones externas, realizando pruebas que aseguren que la entrada
definida produce los resultados que realmente se requieren.
MANTENIMIENTO
Es indudable que el software una vez entregado al cliente sufrirá cambios (posible
excepción es el software empotrado). Los cambios ocurrirán debido a que se hayan
encontrado errores, a que el software deba adaptarse a posibles cambios. El desarrollo de
productos de software bajo éste ciclo de vida tiene los siguientes problemas:
1.- Los proyectos reales raramente siguen el flujo secuencial que propone el modelo.
2.- Normalmente, es difícil para el cliente establecer explícitamente al principio todos los
requisitos. Este ciclo lo requiere y tiene dificultades en entender posibles problemas que
pudieran existir.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
3.- El cliente debe tener paciencia. Hasta llegar a las etapas finales del desarrollo del
proyecto.
A pesar de sus inconvenientes, este ciclo de vida sigue siendo el modelo clásico más
ampliamente usado por los ingenieros del software.
Hay varias razones para desarrollar un prototipo; una de ellas es ilustrar los formatos de
datos de entrada, mensajes, informes y diálogos al cliente, este es un mecanismo
adecuado para explicar opciones de procesamiento y tener un mejor entendimiento de las
necesidades de él.
Una vez realizado el sistema prototipo, la pregunta que surgiría sería la siguiente: ¿Qué
debemos hacer con el prototipo cuando ya ha servido para el propósito establecido?
Brooks nos da una respuesta:
"En la mayoría de los proyectos, el primer sistema construido apenas es utilizable". Puede
ser demasiado lento, demasiado grande, difícil de usar o las tres cosas. No hay más
alternativa que comenzar de nuevo y construir una versión rediseñada que resuelva los
problemas que se presenten... Cuando se utiliza un nuevo concepto de sistema o de
tecnología, hay que construir un sistema para desecharlo, porque incluso la mejor
planificación no puede asegurar que vaya a ser bueno la primera vez. Por tanto, la
cuestión no es si hay que construir un sistema piloto y tirarlo. Se tirará. La única cuestión
es si planificar de antemano la construcción de algo que se va a desechar, o prometer
entregar el desecho a los clientes.
Al igual que el ciclo de vida clásico, la construcción de prototipos puede ser problemática
por las siguientes razones:
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
1.- El cliente ve funcionando lo que parece ser una primera versión del software,
ignorando que, por las prisas en hacer que funcione, no hemos considerado los aspectos
de calidad o de mantenimiento del software a largo plazo. Cuando se le informa de que el
producto debe ser reconstruido, el cliente se vuelve loco y solicita que se apliquen
“cuantas mejoras” sean necesarias para hacer del prototipo un producto final que
funcione. Y el desarrollador del producto cede demasiado a menudo.
2.- El técnico de desarrollo, frecuentemente, impone ciertos compromisos de
implementación con el fin de obtener un prototipo que funciones rápidamente. Puede que
utilice un sistema operativo inapropiado, o un lenguaje de programación equívoco o
simplemente porque ya está disponible y es conocido, puede que implemente
ineficientemente un algoritmo, sencillamente para demostrar su capacidad.
La clave está en definir al comienzo las reglas del juego; esto, es, el cliente y el técnico
deben estar de acuerdo en que el prototipo se construya para servir sólo como un
mecanismo de definición de los requisitos.
Comunicación en grupo
Aunque la programación se considera una actividad individual y privada de modo que
muchos programadores tienen poco contacto social y prefieren trabajar en forma aislada.
Con el incremento del tamaño de un producto, disminuye la productividad debido al
aumento en complejidad de las interacciones entre los diversos componentes del sistema,
y a causa del incremento de comunicación necesario entre programadores, gerentes y
clientes.
métrica diferente del esfuerzo, puede requerir diez o tal vez 100 veces más esfuerzo para
obtener el producto.
Notaciones apropiadas
Las notaciones apropiadas son vehículos de comunicación entre el personal asignado al
proyecto y planean la posibilidad de usar una herramienta automatizada de programación
para manejar las notaciones verificando su uso correcto. Esto puede beneficiar un
proyecto en particular, pero se obtendrán más beneficios cuando se adopte, en todas las
organizaciones e industrias, un conjunto pequeño de notaciones bien definidas para los
proyectos de programación.
Enfoques Sistemáticos
Es indispensable al momento de desarrollar software, el utilizar herramientas de diseño
tales como modelos de desarrollo. Pudiéndose utilizar de cascada, costo,
Versiones sucesivas, y más. Dependiendo del sistema. En este documento se describen
varios enfoques sistemáticos de desarrollo y mantenimiento pero, como la ingeniería del
software se encuentra en su infancia, muchos de los procedimientos propuestos tendrán
todavía que madurar.
Control de Cambios
La flexibilidad de un programa es un gran beneficio y a su vez una gran fuente de
dificultad en la ingeniería de software. Las notaciones y procedimientos que permitan
seguir la secuencia y determinar el impacto de un posible cambio son necesarios para
hacer visible el costo verdadero de una modificación aparentemente pequeña al código
fuente; estos cambios de manuales, requisitos y planes de prueba. Por otro lado, el uso
de notaciones y técnicas apropiadas hace que se puedan realizar cambios controlados,
sin menoscabo de la calidad del producto.
Nivel Tecnológico
Incluye aspectos como selección del lenguaje, ambiente computacional, prácticas de
programación y herramientas de programación disponibles. Entre más tecnología de
hardware y software se tenga mejor será la calidad y productividad.
Nivel de Confiabilidad
Todo producto de programación debe poseer un nivel elemental de confiabilidad; sin
embargo, la alta confiabilidad sólo se consigue con gran cuidado en el análisis, diseño,
instrumentación, pruebas y mantenimiento del software.
Tiempo Disponible
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
La mayoría de las veces las empresas desean tener los sistemas para ayer.
Aunque pareciera que un proyecto de programación que requiere de un esfuerzo de seis
meses-programador pueda ser completado por un programador en seis meses o seis
programadores en un mes, los proyectos de programación son sensibles no sólo al total
de esfuerzo requerido, sino también al número de personas comprendidas. El uso de seis
programadores durante un mes probablemente sea menos eficiente que usar sólo uno
durante seis meses, y esto se debe a que la curva de aprendizaje para el grupo de seis
programadores afectará notablemente al proyecto.
Especialización requerida.
No es necesario que todos los ingenieros poseen todas las habilidades necesarias, pero
los miembros del equipo de programación sí deberán poseerlas, ya que se requiere de
una gama de habilidades y especialidades; por ejemplo: la obtención de la información de
los clientes con el fin de determinar sus necesidades requiere de la habilidad de
comunicarse, de tener tacto y diplomacia, así como de un buen conocimiento del área de
aplicación.
Facilidades y recursos.
Es muy motivante para un programador contar con un buen ambiente de trabajo, así
como un buen acceso a una buena máquina y un lugar silencioso donde laborar. Casi
todos los programadores se motivan con los recursos con que cuentan, por lo tanto son
muy sensibles y están sujetos a frustración si cuentan con recursos pobres o
inadecuados. Los gerentes de un proyecto de programación deben de ser eficaces en el
manejo de los factores de motivación y frustración, si desean mantener la calidad de sus
productos, la productividad de sus programadores y la satisfacción del trabajo.
Entrenamiento adecuado
La programación de un producto es sólo un aspecto de la ingeniería de programación sin
embargo, ésta es la única fase del desarrollo y mantenimiento de un producto que se
enseña en muchas escuelas. Hasta el momento, la mayoría de los programadores se han
educado como ingenieros en computación, ingenieros electrónicos, contadores,
matemáticos, más no como ingenieros en productos de programación. Las universidades
han formado tradicionalmente licenciado en computación y las industrias buscan, también
por tradición, ingenieros de programación.
Habilidades gerenciales
Los proyectos de programación son, por lo común, supervisados por gerentes que tienen
poco conocimiento, si acaso lo tienen, acerca de la ingeniería de programación Por otro
lado, la costumbre de promover a puestos administrativos de un proyecto de
programación a individuos técnicamente competentes, con poca inclinación gerencial y sin
entrenamiento administrativo, también suele producir resultado negativos.
Metas apropiadas
La meta principal de la ingeniería de software es el desarrollo de productos de
programación que cumplan con los requisitos del uso deseado; idealmente, todo producto
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Los procedimientos de la ingeniería del software son el pegamento que junta los métodos
y las herramientas y facilita un desarrollo racional y oportuno del software de la
computadora. Los procedimientos definen la secuencia en la que se aplican los métodos,
las entregas (documentos, informes, formas, etc.) que se requieren, los controles que
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
ayudan a asegurar la calidad y coordinar los cambios y las directrices que ayudan a los
gestores del software a evaluar el progreso.
En este caso nos enfocaremos a la Ingeniería de Sistemas que es lo que más se apega a
lo del curso de Análisis de Sistemas.
CAPITULO III
3. INGENIERIA DE SISTEMAS
Procedimientos: Pasos que definen el empleo especifico de cada elemento del sistema.
La visión global retrata una clara definición de la funcionalidad general que permitirá al
ingeniero entender el dominio y finalmente el sistema o producto del contexto apropiado.
cada tipo que sirven como soluciones alternativas para el problema que tenemos entre
manos. En esencia el trabajo se limita a modificar simplemente la influencia relativa de los
diferentes elementos del sistema para crear modelos de cada tipo.
La vista de dominio del negocio se trata con una actividad II denominada Análisis del Área
de Negocio (AAN). El AAN se ocupa de identificar en detalle la información y los requisitos
de la funciones de áreas de negocio seleccionadas identificadas durante el PEI. Se ocupa
solo de especificar que se requiere en un área de negocio.
Cada uno de estos componentes del sistema debe integrarse para formar una aplicación
o sistema de infamación completo.
INGENIERÍA DE PRODUCTOS
Los requisitos generales del producto se obtienen del cliente. Estos requisitos
comprenden necesidades de información y control, funcionalidad del producto y
comportamiento, rendimiento general del producto, diseño, restricciones de la interfaz y
otras necesidades especiales. Luego de determinar los requisitos es necesario asignar
funcionalidad y comportamiento a cada uno de los 4 componentes mencionados
anteriormente.
Para modelar las complicadas y sutiles maneras en que se relacionan los diferentes
aspectos de la información de la empresa, el ingeniero de la información debe describir
cómo se usan y transforman los objetos de datos dentro de cada área de negocios.
El modelo de flujo de proceso está integrado con el modelo de datos para proporcionar
una indicación de cómo fluye la información a través del área de negocio. Se muestran los
objetos de datos de entrada y salida para cada proceso, proporcionando una indicación
de cómo el proceso transforma la información.
Análisis de Sistema
El análisis del sistema se lleva a cabo con los siguientes objetivos en mente:
Identificar la necesidad del cliente;
Evaluar el concepto del sistema para establecer la viabilidad
Realizar un análisis técnico y económico
Asignar funciones al hardware, software, personal, bases de datos y otros
elementos del sistema
Establecer las restricciones de presupuesto y planificación temporal
Crear una definición de sistema que forme el fundamento de todo el trabajo de
ingeniería .Se requiere un gran dominio del hardware y software para conseguir
con éxito los objetivos mencionados anteriormente.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
CAPITULO IV
4. IDENTIFICACION DE NECESIDADES
Una vez que se han identificado las metas globales, el analista pasa a la evaluación de la
información suplementaria: ¿Existe la tecnología para construir el sistema ?¿Qué
recursos especiales de desarrollo y fabricación serán necesarios ?¿Qué límites se han
puesto al presupuesto y a la planificación temporal? Si el nuevo es un producto a
desarrollar para venderlo a muchos clientes, se plantean además las siguientes
cuestiones: ¿Cuál es el mercado potencial del producto ?¿Cómo es comparativamente
este producto con los de la competencia ?¿Qué posición ocupa este producto en la línea
general de producción de la compañía?
Esta información es reunida por el analista en base a las reuniones y entrevistas con el
cliente, la comunicación cliente – analista originará modificaciones a esta información.
Todos los proyectos son posibles si se tiene finitos recursos y tiempo. Desgraciadamente,
el desarrollo de un sistema o producto basado en computadora es muy probable que esté
plagado de escasees de recursos y de fechas de entrega difíciles (no realistas). Es
necesario y prudente evaluar la viabilidad de un proyecto cuanto antes. Se pueden evitar
meses o años de esfuerzo, miles o millones y un bochorno profesional si se reconoce un
sistema mal concebido en la pronta fase de definición.
Viabilidad económica, Una evaluación del costo de desarrollo sopesado con los ingresos
netos o beneficios obtenidos del sistema o producto desarrollado
El análisis costo/beneficio es complicado por criterios que varían con las características
del sistema a desarrollar, el tamaño relativo del proyecto y los beneficios esperados de la
inversión como parte del plan estratégico de la compañía.
El analista puede estimar cada costo y usar después el desarrollo y los costos sucesivos
para determinar la recuperación de lo invertido, un punto de beneficio cero y un período
de rentabilidad.
Solo invirtiendo tiempo para evaluar la viabilidad reducimos las posibilidades de una grave
situación embarazosa en etapas posteriores del proyecto de un sistema.
Durante el análisis técnico, el analista evalúa los principios técnicos del sistema al mismo
tiempo que se recoge información adicional sobre el rendimiento, fiabilidad, características
de mantenimiento y productividad. En algunos casos, esta frase del análisis del sistema
también incluye una cierta cantidad de investigación y diseño.
El análisis técnico empieza con una valoración de la viabilidad técnica del sistema
propuesto. ¿Qué tecnologías se requieren para lograr el funcionamiento y rendimiento del
sistema ?¿Qué nuevos materiales, métodos o procesos se necesitan y cuál es su riesgo
de desarrollo ?¿Cómo afectarán estos aspectos tecnológicos a los costos?
Los resultados obtenidos del análisis técnico forman la base para otra decisión de
continuar/abandonar sobre el sistema. Si el riesgo es grave , si los modelos indican que
no se puede conseguir la función o rendimiento deseados , si las piezas no encajan
perfectamente unas con otras , Hay que buscar un nuevo planteamiento....
Las dos herramientas que se usan en este proceso son: el diagrama de contexto de la
arquitectura y el diagrama de flujo de arquitectura. El diagrama de contexto establece el
límite de información entre el sistema que se esta implementando y el entorno en que va a
operar. Y por otro lado esta el de flujo que es el flujo de información a través de las
regiones y se usa para guiar al ingeniero de sistemas.
METODOLOGÍA
ANÁLISIS Y DISEÑO
OMT UML
ORIENTADO A OBJETOS
DIAGRAMA DE COMPONENTES Y DE
DISTRIBUCIÓN
OBJETO
PROGRAMACIÓN
REDES Y
POR COMPONENTES
COMUNICACIONES
Y POR OBJETOS
DISTRIBUIDAS
EVOLUCIÓN (Generaciones)
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Primera Generación
Segunda Generación
CASCADA
PROTOTIPO
ESPIRAL
CLÁSICO
Tercera Generación
Cuarta Generación
o UML
o Desarrollo de áreas específicas como:
Visual
Electrónica
Inteligencia artificial
Simulación
ALCANCE
INGENIERIA DE SISTEMAS
INGENIERIA DE REDES
INGENIERIA MANUFACTURA Y
PRODUCCIÓN
OBJETO INGENIERIA DE
CONOCIMIENTO
Metodologías
De componentes
De distribución
Herramientas CASE
o Racional Rose
o Power Designer
4.6 CARACTERÍSTICAS
Tiene una representación natural y real porque un objeto se le considera natural y real.
OBJETO
FÍSICO LÓGICO
EVENTO CLIC
CAPITULO V
Una metodología puede seguir uno o varios modelos de ciclo de vida, es decir, el ciclo de
vida indica qué es lo que hay que obtener a lo largo del desarrollo del proyecto pero no
cómo hacerlo.
La metodología indica cómo hay que obtener los distintos productos parciales y finales
Programación estructurada
Diseño estructurado
Análisis estructurado
Especificaciones funcionales:
Gráficas
Particionadas
Mínimamente redundantes
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Estructuradas
o Orientadas a Procesos
o Orientadas a datos
Jerárquicas
No Jerárquicas
Mixtas
Orientadas a Objetos
Para Sistemas de Tiempo Real
Orientada a Procesos
o Diagramas de Flujo de Datos
o Diccionario de Datos
o Especificaciones de procesos
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
El proceso de diseño consiste en definir primero las estructuras de los datos de entrada y
salida, mezclarlas todas en una estructura jerárquica de programa y después ordenar
detalladamente la lógica procedimental para que se ajuste a esta estructura.
Planificación: construir una arquitectura de la Información y una estrategia que soporte los
objetivos de la organización
Análisis: comprender las áreas del negocio y determinar los requisitos del sistema
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Diseño: establecer el comportamiento del sistema deseado por el usuario y que sea
alcanzable por la tecnología
Construcción: construir sistemas que cumplan los tres niveles anteriores
Manejo de interrupciones
Comunicación y sincronización entre tareas
Gestión de procesos concurrentes
Respuesta oportuna ante eventos externos
Datos continuos o discretos
Se está produciendo una evolución de las metodologías orientadas a objetos para
desarrollos de sistemas de tiempo real
METODOLOGIA MERISE
Fases de la Metodología:
Estudio Preliminar
Estudio Detallado
Implementación
Realización y puesta en marcha
METODOLOGIA METRICA
Tipos:
Clásico
Cascada
Prototipo
Espiral
Cuarta Generación
Desarrollo rápido de aplicaciones
Combinado
Fases:
Actividades
Actividades:
Recolección de información
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Actividades:
Investigación detallada
Descripción detallada del sistema (sistema actual SA)
Estudio de requerimientos
Definición del sistema propuesto (SP)
Identificación y definición de objetos
Diagramas del análisis orientado a objetos
Modularidad (diagrama de paquetes DP)
Funcionalidad de objetos (diagrama de casos de uso DCU, diagrama de clases
DC)
Análisis de datos orientado a objetos (MOR)
Comportamiento de objetos (diagrama de secuencias DS, diagrama de
colaboración DCol)
EVALUACIÓN ECONÓMICA (DE TODO EL PROYECTO)
Documentación
Planificación
Proceso para generar las especificaciones técnicas del diseño para la construcción.
Actividades:
Generar el software.
Actividades:
5.3.5 IMPLEMENTACIÓN
Actividades:
Características:
5.4 OBJETO
Entidad real y abstracta con una estructura propia que le diferencia de otros.
Representación
Clase:
Categoría
Generación
Pocas propiedades
Pocos atributos
Pocos servicios
Baja aplicación
Objeto:
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Instancia
Especificación
Varias propiedades
Varios atributos
Varios servicios
Constante aplicación
Físicos
Ocupa un lugar en el espacio
Lógico
Hace referencia a ideas o definiciones
Evento
Transacción
Documento
Papeles normalizados
Estructura
De compras o lugar de trabajo
Estructura de un objeto
Atributos
Son los datos. Definen estructuras de datos para los modelos de datos.
Servicios
Son las actividades que modifican al objeto.
Encapsulamiento
Ocultamiento de información
Integra:
Atributos
Servicios
Herencia
Mecanismo para definir las propiedades de un objeto en base a existentes mediante
estructura jerárquica de nivel superior a descendientes.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Tipos:
Simple
Compuesta
Polimorfismo
Personal, son los operadores o usuarios directos de las herramientas del Sistema.
Procedimientos, o pasos que definen el uso específico de cada uno de los elementos o
componentes del Sistema y las reglas de su manejo y mantenimiento.
Evalúe que conceptos tiene el cliente del sistema para establecer su viabilidad.
Asigne funciones al Hardware, Software, personal, base de datos, y otros elementos del
Sistema.
Cree una definición del sistema que forme el fundamento de todo el trabajo de Ingeniería.
Para lograr estos objetivos se requiere tener un gran conocimiento y dominio del
Hardware y el Software, así como de la Ingeniería humana (Manejo y Administración de
personal), y administración de base de datos.
Identificación de Necesidades.
Es el primer paso del análisis del sistema, en este proceso en Analista se reúne con el
cliente y/o usuario (un representante institucional, departamental o cliente particular), e
identifican las metas globales, se analizan las perspectivas del cliente, sus necesidades y
requerimientos, sobre la planificación temporal y presupuestal, líneas de mercadeo y otros
puntos que puedan ayudar a la identificación y desarrollo del proyecto.
Algunos autores suelen llamar a esta parte ¨ Análisis de Requisitos ¨ y lo dividen en cinco
partes:
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Cuando queremos dar a entender mejor lo que vamos a construir en el caso de edificios,
Herramientas, Aviones, Maquinas, se crea un modelo idéntico, pero en menor escala
(mas pequeño).
Sin embargo cuando aquello que construiremos es un Software, nuestro modelo debe
tomar una forma diferente, deben representar todas las funciones y subfunciones de un
Sistema. Los modelos se concentran en lo que debe hacer el sistema no en como lo hace,
estos modelos pueden incluir notación gráfica, información y comportamiento del Sistema.
Ejemplo:
PERSONA
Servicios:
Nivel de abstracción:
Servicios
Actividades
tareas MAYOR DETALLE
EJERC
TRANSPORTE
H
E
MARÍTIMO TERRESTRE AÉREO
R
E
URBANO INTERPROVINCIAL N
C
SELECTIVO POPULAR I
A
AGREGACIÓN O PARTE DE…
Representación UML:
PC
DISPOSITIVOS CPU
ALMACENAMIENTO AT ATX
TIPOS DE AGRAGACIÓN:
Por referencia
Por valor
Consiste en ejecutar un servicio del objeto receptor mediante el mensaje del objeto
emisor.
Ejemplo.:
CATEGORÍA PRODUCTO
IngresarNuevaCategoria ingresarNuevoProducto
INSTITUTOREPRESENTACIÓN
ELEMENTO
TECNOLÓGICO SUPERIOR
DESCRIPCIÓN
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
IngresarNuevoProducto
Relaciones:
MOLULARIDAD
FUNCIONALIDAD
Agente
Referencia a una
persona o grupo de
ACTOR personas
Área organizacional o
punto de trabajo
CASO DE USO
Es una actividad
Es una comunicación
y la ejecución del caso
RELACIÓN
de uso.
Identifica secuencia
de casos de uso
DIAGRAMA DE INTERFAZ
EJERCICIO PROPUETO:
MODELOS DE DATOS
Un modelo de datos es una serie de conceptos que puede utilizarse para describir un
conjunto de datos y las operaciones para manipularlos. Hay dos tipos de modelos de
datos: los modelos conceptuales y los modelos lógicos. Los modelos conceptuales se
utilizan para representar la realidad a un alto nivel de abstracción. Mediante los modelos
conceptuales se puede construir una descripción de la realidad fácil de entender. En los
modelos lógicos, las descripciones de los datos tienen una correspondencia sencilla con
la estructura física de la base de datos.
En el diseño de bases de datos se usan primero los modelos conceptuales para lograr
una descripción de alto nivel de la realidad, y luego se transforma el esquema conceptual
en un esquema lógico. El motivo de realizar estas dos etapas es la dificultad de abstraer
la estructura de una base de datos que presente cierta complejidad. Un esquema es un
conjunto de representaciones lingüísticas o gráficas que describen la estructura de los
datos de interés.
Los modelos conceptuales deben ser buenas herramientas para representar la realidad,
por lo que deben poseer las siguientes cualidades:
Expresividad: deben tener suficientes conceptos para expresar perfectamente la realidad.
Simplicidad: deben ser simples para que los esquemas sean fáciles de entender.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
EL MODELO E-R
El modelo E-R es el modelo conceptual más utilizado para el diseño conceptual de bases
de datos. Fue introducido por Peter Chen en 1976. El modelo E-R está formado por un
conjunto de conceptos que permiten describir la realidad mediante un conjunto de
representaciones gráficas y lingüísticas.
Originalmente, el modelo E-R sólo incluía los conceptos de entidad, relación y atributo.
Más tarde, se añadieron otros conceptos, como los atributos compuestos y las jerarquías
de generalización, en lo que se ha denominado modelo entidad-relación extendido.
ENTIDAD
Cualquier tipo de objeto o concepto sobre el que se recoge información: cosa, persona,
concepto abstracto o suceso. Por ejemplo: coches, casas, empleados, clientes, empresas,
oficios, diseños de productos, conciertos, excursiones, etc. Las entidades se representan
gráficamente mediante rectángulos y su nombre aparece en la parte superior. Un nombre
de entidad sólo puede aparecer una vez en el esquema conceptual.
EMPLEADOS
# CI
* Nombre
* Apellido
* Dirección
º Teléfono
* Cargo
º Jefe
Hay dos tipos de entidades: fuertes y débiles. Una entidad débil es una entidad cuya
existencia depende de la existencia de otra entidad. Una entidad fuerte es una entidad
que existe pos sí sola y no depende de la existencia de otras.
RELACIÓN (INTERRELACIÓN)
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Es una correspondencia o asociación entre dos o más entidades. Cada relación tiene dos
extremos, cada uno de ellos con un nombre que describe su función. Las relaciones se
representan gráficamente mediante líneas continuas o entrecortadas, dependiendo de la
opcionalidad de las mismas.
R1 R2
Dueño de
Perteneciente a
Relación 1:N
Obligatorio - Opcional
Una relación recursiva es una relación donde la misma entidad participa más de una vez
en la relación con distintos papeles. El nombre de estos papeles es importante para
determinar la función de cada participación.
La cardinalidad con la que una entidad participa en una relación especifica el número
mínimo y el número máximo de correspondencias en las que puede tomar parte cada
ocurrencia de dicha entidad. La participación de una entidad en una relación es obligatoria
(total) si la existencia de cada una de sus ocurrencias requiere la existencia de, al menos,
una ocurrencia de la otra entidad participante. Si no, la participación es opcional (parcial).
Las reglas que definen la cardinalidad de las relaciones son las reglas de negocio.
Una de las trampas que pueden encontrarse ocurre cuando el esquema representa una
relación entre entidades, pero el camino entre algunas de sus ocurrencias es ambiguo. El
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Otra de las trampas sucede cuando un esquema sugiere la existencia de una relación
entre entidades, pero el camino entre una y otra no existe para algunas de sus instancias.
En este caso, se produce una pérdida de información que se puede subsanar
introduciendo la relación que sugería el esquema y que no estaba representada.
ATRIBUTO
Es una característica de interés o un hecho sobre una entidad o sobre una relación. Los
atributos representan las propiedades básicas de las entidades y de las relaciones. Toda
la información extensiva es portada por los atributos. Gráficamente, se representan
mediante nombres escritos al interior de los rectángulos que representan a las entidades.
CLAVES
Una clave de una entidad es un atributo o conjunto de atributos que , de alguna manera,
identifica cada ocurrencia de esa entidad. Las claves, dentro del modelo Entidad –
Relación, se clasifican en los siguientes tipos:
Superclaves
Claves Candidatas
Clave Primaria
Claves Alternas
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Toda entidad tiene al menos una clave primaria y puede tener varias claves alternas. Las
claves primarias se representan gráficamente con un signo de numeral junto al nombre
del mismo.
JERARQUÍA DE GENERALIZACIÓN
Una entidad E es una generalización de un grupo de entidades E1, E2,…., En. Si cada
ocurrencia de cada una de esas entidades es también una ocurrencia de E.
Cada jerarquía es total o parcial, y exclusiva o superpuesta:
Los modelos de bases de datos más extendidos son el modelo relacional, el modelo de
red y el modelo jerárquico. El modelo orientado a objetos es también muy popular, pero
no existe un modelo estándar orientado a objetos.
El modelo relacional (y los modelos previos) carecen de ciertos rasgos de abstracción que
se usan en los modelos conceptuales. Por lo tanto, un primer paso en la fase del diseño
lógico consistirá en la conversión de esos mecanismos de representación de alto nivel en
términos de las estructuras de bajo nivel disponibles en el modelo relacional.
En la primera fase, se construyen los esquemas lógicos locales para cada vista de usuario
y se validan. En esta fase se refinan los esquemas conceptuales creados durante el
diseño conceptual, eliminando las estructuras de datos que no se pueden implementar de
manera directa sobre el modelo que soporta el DBMS, en el caso que nos ocupa, el
modelo relacional. Una vez hecho esto, se obtiene un primer esquema lógico que se
valida mediante la normalización y frente a las transacciones que el sistema debe llevar a
cabo, tal y como se refleja en las especificaciones de requisitos de usuario. El esquema
lógico ya validado se puede utilizar como base para el desarrollo de prototipos. Una vez
finalizada esta fase, se dispone de un esquema lógico para cada vista de usuario que es
correcto, comprensible y sin ambigüedad.
Eliminar las relaciones de muchos a muchos, sustituyendo cada una de ellas por una
nueva entidad intermedia y dos relaciones de uno a muchos de esta nueva entidad con
las entidades originales. La nueva entidad será débil, ya que sus ocurrencias dependen
de la existencia de ocurrencias en las entidades originales.
Eliminar las relaciones entre tres o más entidades, sustituyendo cada una de ellas por una
nueva entidad (débil) intermedia que se relaciona con cada una de las entidades
originales. La cardinalidad de estas nuevas relaciones binarias dependerá de su
significado.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Eliminar las relaciones recursivas, sustituyendo cada una de ellas por una nueva entidad
(débil) y dos relaciones binarias de esta nueva entidad con la entidad original. La
cardinalidad de estas relaciones dependerá de su significado.
Eliminar las relaciones con atributos, sustituyendo cada una de ellas por una nueva
entidad (débil) y las relaciones binarias correspondientes de esta nueva entidad con las
entidades originales. La cardinalidad de estas relaciones dependerá del tipo de la relación
original y de su significado.
Eliminar los atributos multivaluados, sustituyendo cada uno de ellos por una nueva
entidad (débil) y una relación binaria de uno a muchos con la entidad original.
Revisar las relaciones de uno a uno, ya que es posible que se hayan identificado dos
entidades que representen el mismo objeto (sinónimos). Si así fuera, ambas entidades
deben integrarse en una sola.
Una vez finalizado este paso es más correcto referirse a los esquemas conceptuales
locales refinados como esquemas lógicos locales, ya que se adaptan al modelo de base
de datos que soporta el DBMS escogido.
En este paso, se obtiene un conjunto de relaciones (tablas) para cada uno de los
esquemas lógicos locales en donde se representen las entidades y relaciones entre
entidades, que se describen en cada una de las vistas que los usuarios tienen de la
empresa. Cada relación de la base de datos tendrá un nombre, y el nombre de sus
atributos aparecerá, a continuación, entre paréntesis. El atributo o atributos que forman la
clave primaria se subrayan. Las claves ajenas, mecanismo que se utiliza para representar
las relaciones entre entidades en el modelo relacional, se especifican aparte indicando la
relación (tabla) a la que hacen referencia.
Entidades fuertes. Crear una relación para cada entidad fuerte que incluya todos sus
atributos simples. De los atributos compuestos incluir sólo sus componentes.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Cada uno de los identificadores de la entidad será una clave candidata. De entre las
claves candidatas hay que escoger la clave primaria; el resto serán claves alternativas.
Para escoger la clave primaria entre las claves candidatas se pueden seguir estas
indicaciones:
ENTIDADES DÉBILES
Crear una relación para cada entidad débil incluyendo todos sus atributos simples. Añadir
una clave ajena a la entidad de la que depende. Para ello, se incluye la clave primaria de
la relación que representa a la entidad padre en la nueva relación creada para la entidad
débil. A continuación, determinar la clave primaria de la nueva relación.
Relaciones binarias de uno a uno. Para cada relación binaria se incluyen los atributos de
la clave primaria de la entidad padre en la relación (tabla) que representa a la entidad hijo,
para actuar como una clave ajena. La entidad hijo es la que participa de forma total
(obligatoria) en la relación, mientras que la entidad padre es la que participa de forma
parcial (opcional). Si las dos entidades participan de forma total o parcial en la relación, la
elección de padre e hijo es arbitraria. Además, en caso de que ambas entidades
participen de forma total en la relación, se tiene la opción de integrar las dos entidades en
una sola relación (tabla). Esto se suele hacer si una de las entidades no participa en
ninguna otra relación.
Relaciones binarias de uno a muchos. Como en las relaciones de uno a uno, se incluyen
los atributos de la clave primaria de la entidad padre en la relación (tabla) que representa
a la entidad hijo, para actuar como una clave ajena. Pero ahora, la entidad padre es la de
``la parte del muchos'' (cada padre tiene muchos hijos), mientras que la entidad hijo es la
de ``la parte del uno'' (cada hijo tiene un solo padre).
Crear una relación por cada entidad. Las relaciones de las entidades hijo heredan como
clave primaria la de la entidad padre. Por lo tanto, la clave primaria de las entidades hijo
es también una clave ajena al padre. Esta opción sirve para cualquier tipo de jerarquía,
total o parcial y exclusiva o superpuesta.
Crear una relación por cada entidad hijo, heredando los atributos de la entidad padre.
Esta opción sólo sirve para jerarquías totales y exclusivas.
Integrar todas las entidades en una relación, incluyendo en ella los atributos de la entidad
padre, los atributos de todos los hijos y un atributo discriminativo para indicar el caso al
cual pertenece la entidad en consideración. Esta opción sirve para cualquier tipo de
jerarquía. Si la jerarquía es superpuesta, el atributo discriminativo será multievaluado.
Una vez obtenidas las relaciones con sus atributos, claves primarias y claves ajenas, sólo
queda actualizar el diccionario de datos con los nuevos atributos que se hayan
identificado en este paso.
La normalización se utiliza para mejorar el esquema lógico, de modo que satisfaga ciertas
restricciones que eviten la duplicidad de datos. La normalización garantiza que el
esquema resultante se encuentra más próximo al modelo de la empresa, que es
consistente y que tiene la mínima redundancia y la máxima estabilidad.
El esquema lógico no tiene porqué ser el esquema final. Debe representar lo que el
diseñador entiende sobre la naturaleza y el significado de los datos de la empresa. Si se
establecen unos objetivos en cuanto a prestaciones, el diseño físico cambiará el esquema
lógico de modo adecuado. Una posibilidad es que algunas relaciones normalizadas se
desnormalicen. Pero la desnormalización no implica que se haya malgastado tiempo
normalizando, ya que mediante este proceso el diseñador aprende más sobre el
significado de los datos. De hecho, la normalización obliga a entender completamente
cada uno de los atributos que se han de representar en la base de datos.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Los equipos informáticos de hoy en día son mucho más potentes, por lo que en ocasiones
es más razonable implementar bases de datos fáciles de manejar (las normalizadas), a
costa de un tiempo adicional de proceso.
La normalización produce bases de datos con esquemas flexibles que pueden extenderse
con facilidad.
En este momento, se puede dibujar el diagrama entidad-relación final para cada vista de
usuario que recoja la representación lógica de los datos desde su punto de vista. Este
diagrama habrá sido validado mediante la normalización y frente a las transacciones de
los usuarios.
Las restricciones de integridad son reglas que se quieren imponer para proteger la base
de datos, de modo que no pueda llegar a un estado inconsistente. Hay cinco tipos de
restricciones de integridad.
Datos requeridos. Algunos atributos deben contener valores en todo momento, es decir,
no admiten nulos.
Integridad de entidad. La clave primaria de una entidad no puede ser nula, por lo tanto, las
claves primarias de las relaciones no admiten nulos.
Integridad referencial. Una clave extranjera enlaza cada tupla de la relación hijo con la
tupla de la relación padre que tiene el mismo valor en su clave primaria. La integridad
referencial dice que si una clave ajena tiene un valor (si es no nula), ese valor debe ser
uno de los valores de la clave primaria a la que referencia. Hay varios aspectos a tener en
cuenta sobre las claves ajenas para lograr que se cumpla la integridad referencial.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
¿Admite nulos la clave ajena? Cada clave ajena expresa una relación. Si la participación
de la entidad hijo en la relación es total, entonces la clave ajena no admite nulos; si es
parcial, la clave ajena debe aceptar nulos.
¿Qué hacer cuando se quiere borrar una ocurrencia de la entidad padre que tiene algún
hijo? O lo que es lo mismo, ¿qué hacer cuando se quiere borrar una tupla que está siendo
referenciada por otra tupla a través de una clave ajena? Hay varias respuestas posibles:
Restringir: no se pueden borrar tuplas que están siendo referenciadas por otras tuplas.
Propagar: se borra la tupla deseada y se propaga el borrado a todas las tuplas que le
hacen referencia.
Anular: se borra la tupla deseada y todas las referencias que tenía se ponen,
automáticamente, a nulo (esta respuesta sólo es válida si la clave ajena acepta nulos).
Valor por defecto: se borra la tupla deseada y todas las referencias toman,
automáticamente, el valor por defecto (esta respuesta sólo es válida si se ha especificado
un valor por defecto para la clave ajena).
No comprobar: se borra la tupla deseada y no se hace nada para garantizar que se sigue
cumpliendo la integridad referencial.
¿Qué hacer cuando se quiere modificar la clave primaria de una tupla que está siendo
referenciada por otra tupla a través de una clave ajena? Las respuestas posibles son las
mismas que en el caso anterior. Cuando se escoge propagar, se actualiza la clave
primaria en la tupla deseada y se propaga el cambio a los valores de clave ajena que le
hacían referencia.
Reglas de negocio. Cualquier operación que se realice sobre los datos debe cumplir las
restricciones que impone el funcionamiento de la empresa.
Todas las restricciones de integridad establecidas en este paso se deben reflejar en el
diccionario de datos para que puedan ser tenidas en cuenta durante la fase del diseño
físico.
El esquema lógico refleja la estructura de los datos a almacenar que maneja la empresa.
Un diagrama de flujo de datos muestra cómo se mueven los datos en la empresa y los
almacenes en donde se guardan. Si se han utilizado diagramas de flujo de datos para
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Cada almacén de datos debe corresponder con una o varias entidades completas.
Los atributos en los flujos de datos deben corresponder a alguna entidad.
Los esquemas lógicos locales obtenidos hasta este momento se integrarán en un solo
esquema lógico global en la siguiente fase para modelar los datos de toda la empresa.
NORMALIZACIÓN
La normalización se lleva a cabo en una serie pasos. Cada paso corresponde a una forma
normal que tiene unas propiedades. Conforme se va avanzando en la normalización, las
relaciones tienen un formato más estricto (más fuerte) y, por lo tanto, son menos
vulnerables a las anomalías de actualización. El modelo relacional sólo requiere un
conjunto de relaciones en primera forma normal. Las restantes formas normales son
opcionales. Sin embargo, para evitar las anomalías de actualización, es recomendable
llegar al menos a la tercera forma normal.
Una relación está en primera forma normal si, y sólo si, todos los dominios de la misma
contienen valores atómicos, es decir, no hay grupos repetitivos. Si se ve la relación
gráficamente como una tabla, estará en 1FN si tiene un solo valor en la intersección de
cada fila con cada columna.
Si una relación no está en 1FN, hay que eliminar de ella los grupos repetitivos. Un grupo
repetitivo será el atributo o grupo de atributos que tiene múltiples valores para cada tupla
de la relación. Hay dos formas de eliminar los grupos repetitivos. En la primera, se repiten
los atributos con un solo valor para cada valor del grupo repetitivo. De este modo, se
introducen redundancias ya que se duplican valores, pero estas redundancias se
eliminarán después mediante las restantes formas normales. La segunda forma de
eliminar los grupos repetitivos consiste en poner cada uno de ellos en una relación aparte,
heredando la clave primaria de la relación en la que se encontraban.
Una relación está en segunda forma normal si, y sólo si, está en 1FN y, además, cada
atributo que no está en la clave primaria es completamente dependiente de la clave
primaria.
La 2FN se aplica a las relaciones que tienen claves primarias compuestas por dos o más
atributos. Si una relación está en 1FN y su clave primaria es simple (tiene un solo
atributo), entonces también está en 2FN. Las relaciones que no están en 2FN pueden
sufrir anomalías cuando se realizan actualizaciones.
Para pasar una relación en 1FN a 2FN hay que eliminar las dependencias parciales de la
clave primaria. Para ello, se eliminan los atributos que son funcionalmente dependientes y
se ponen en una nueva relación con una copia de su determinante (los atributos de la
clave primaria de los que dependen).
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
Una relación está en tercera forma normal si, y sólo si, está en 2FN y, además, cada
atributo que no está en la clave primaria no depende transitivamente de la clave primaria.
La dependencia x →y es transitiva si existen las dependencias, x →z ; z →y siendo x, y, z
atributos o conjuntos de atributos de una misma relación.
Aunque las relaciones en 2FN tienen menos redundancias que las relaciones en 1FN,
todavía pueden sufrir anomalías frente a las actualizaciones. Para pasar una relación de
2FN a 3FN hay que eliminar las dependencias transitivas. Para ello, se eliminan los
atributos que dependen transitivamente y se ponen en una nueva relación con una copia
de su determinante (el atributo o atributos no clave de los que dependen).
Una relación está en la forma normal de Boyce-Codd si, y sólo si, todo determinante es
una clave candidata.
La 2FN y la 3FN eliminan las dependencias parciales y las dependencias transitivas de la
clave primaria. Pero este tipo de dependencias todavía pueden existir sobre otras claves
candidatas, si éstas existen. La BCNF es más fuerte que la 3FN, por lo tanto, toda
relación en BCNF está en 3FN.
La violación de la BCNF es poco frecuente ya que se da bajo ciertas condiciones que
raramente se presentan. Se debe comprobar si una relación viola la BCNF si tiene dos o
más claves candidatas compuestas que tienen al menos un atributo en común.
COMPORTAMIENTO DE OBJETOS
INTERACCIÓN:
Acción
Reacción
Elementos:
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
INTRODUCCIÓN
Conceptos y principios:
DISEÑO ARQUITECTÓNICO.
Define la relación entre cada uno de los elementos estructurales del programa.
El Diseño de la Interfaz.
Describe como se comunica el Software consigo mismo, con los sistemas que operan
junto con el y con los operadores y usuarios que lo emplean.
EL DISEÑO DE PROCEDIMIENTOS.
Debe ser una guía que puedan leer y entender los que construyan el código y los que
prueban y mantienen el Software.
El Diseño debe proporcionar una completa idea de lo que es el Software, enfocando los
dominios de datos, funcional y comportamiento desde el punto de vista de la
Implementación.
Para evaluar la calidad de una presentación del diseño, se deben establecer criterios
técnicos para un buen diseño como son:
Un diseño debe presentar una organización jerárquica que haga un uso inteligente del
control entre los componentes del software.
El diseño debe ser modular, es decir, se debe hacer una partición lógica del Software en
elementos que realicen funciones y subfunciones especificas.
Estos criterios no se consiguen por casualidad. El proceso de Diseño del Software exige
buena calidad a través de la aplicación de principios fundamentales de Diseño,
Metodología sistemática y una revisión exhaustiva.
INSTITUTO TECNOLÓGICO SUPERIOR
“DAVID AUSUBEL”
SEMIPRESENCIAL
VICERRECTORADO ACADÉMICO
DISEÑO DE LA SALIDA
En este caso salida se refiere a los resultados e informaciones generadas por el Sistema,
Para la mayoría de los usuarios la salida es la única razón para el desarrollo de un
Sistema y la base de evaluación de su utilidad. Sin embargo cuando se realiza un
sistema, como analistas deben realizar lo siguiente:
DISEÑO DE ARCHIVOS
Incluye decisiones con respecto a la naturaleza y contenido del propio archivo, como si se
fuera a emplear para guardar detalles de las transacciones, datos históricos, o
información de referencia. Entre las decisiones que se toman durante el diseño de
archivos, se encuentran las siguientes:
La longitud de cada registro, con base en las características de los datos que contenga.
No todos los sistemas requieren del diseño de todos los archivos, ya que la mayoría de
ellos pueden utilizar los del viejo Sistema y solo tenga que enlazarse el nuevo Sistema al
Archivo maestro donde se encuentran los registros.
Apoyan el proceso de formular las características que el sistema debe tener para
satisfacer los requerimientos detectados durante las actividades del análisis:
Herramientas de especificación.
Apoyan el proceso de formular las características que debe tener una aplicación, tales
como entradas, Salidas, procesamiento y especificaciones de control. Muchas incluyen
herramientas para crear especificaciones de datos.
GENERADORES DE CÓDIGOS.
DISEÑO DE SERVICIOS