Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

INGENIERÍA DEL SOFTWARE Factores económicos y humanos

No description
by

Eduardo J Ramírez F

on 22 July 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of INGENIERÍA DEL SOFTWARE Factores económicos y humanos

El software, como bien de capital
3. Los bienes de capital son conocimiento empaquetado acerca de cómo realizar algún tipo de producción:
1. El software es un bien de capital, y algo más:
1. Indicador de personalidad MBTI
3. Nuevos conceptos de inteligencia
5. Apuntes breves sobre el “hardware” de la inteligencia
Peopleware: El Individuo
Indicadores de personalidad: MBTI
La inteligencia, según la teoría factorialista
Nuevos conceptos de inteligencia
Inteligencia emocional
Apuntes breves sobre el “hardware” de la inteligencia

1. Orgware, manageware, peopleware
2. Leyes populares sobre la naturaleza humana y el trabajo
Ley de Parkinson: El trabajo tiende a ocupar todo el tiempo disponible para él (Ley del mínimo esfuerzo, o de la voluptuosidad de los trabajos).
Ley de Brooks: Añadir gente a un proyecto retrasado lo atrasará aún más (Ley estadística de los proyectos).
Principio de Peter: Toda persona tiende a ascender hasta su nivel de incompetencia (Ley de las organizaciones humanas, aplicable por tanto a jefes de proyecto).
Ley de Murphy: Las cosas pueden empeorar más allá de todo límite (Ley del pesimismo integral o de la negrura generalizada).
Principio de Clausewitz: El movimiento de un grupo de personas se rige por la velocidad de la más lenta.

Sólo la ley de Brooks ha sido dictada por alguien del mundo de la ingeniería del software.
3. Un ejemplo de perfil de empleado más buscado
En el año 1998, el grupo Europa 500 y el IESE elaboraron mediante encuestas un perfil del trabajador más buscado y de más éxito para una empresa moderna (no tecnológica). Véase:
• Formación general y conocimientos informáticos (34).
• Capacidades de comunicación (40).
•Habilidad para resolver problemas (42).
•Capacidad para trabajar en equipo (52).
•Iniciativa personal (54).
•Lealtad (57).
•Orientación al cliente (58).
1. Cuatro arquetipos organizativos de los equipos de proyectos
1.2. Chief Programmer Team
OMT es una de las metodologías de análisis y diseño orientadas a objetos, más maduras y eficientes que existen en la actualidad. La gran virtud que aporta esta metodología es su carácter de abierta (no propietaria), que le permite ser de dominio público y , en consecuencia, sobrevivir con enorme vitalidad.
Enlaces y Asociaciones
Las relaciones entre clases determinan el comportamiento del sistema y constituyen una parte muy importante del mismo ya que mediante las relaciones definimos la forma en que los objetos se comunican, lo que también se conoce como comportamiento.
6. Un ejemplo concreto: Los Factores Claves del Éxito
La organización Birmingham Midshires Building Society ha creado un sistema de gestión de conocimientos basado en un marco o plantilla de trece factores:
5. El software, componente del capital intelectual
a) La empresa en cuestión desarrolla software, para uso propio (de algún departamento) o para comercializarlo
b) La empresa (o departamento) usa software producido por otras empresas, que adquiere o encarga en el mercado, o producido por algún otro departamento de la misma empresa, con respecto al que juegan un rol de cliente.

Esta es la situación en la que el software es una herramienta para soportar los procesos productivos de la empresa.
3. El conocimiento como activo. Capital intelectual.
Características diferenciadoras:
El conocimiento explícito es abundante.
No está limitado por modos ni formas.
No está limitado por el espacio.
No es consumido por su uso.
2. Qué es la gestión del conocimiento
Requiere un cambio cultural profundo en la empresa, además de un soporte tecnológico adecuado. Por lo tanto, es un proceso lento y requiere cierto tiempo para conseguir resultados.
1. Qué se entiende por conocimiento en la empresa
El conocimiento se basa en el contexto subjetivo en el que cada persona articula la información que recibe. Es adecuado decir que el conocimiento reside en el usuario y no en la información.
PRIMERA PARTE:
EL SOFTWARE, PARTE DEL CAPITAL INTELECTUAL DE LA EMPRESA

Las aplicaciones, sistemas y componentes de software son herramientas o elementos de herramientas que ayudan a producir bienes y servicios que quieren las personas.
2. Todos los bienes de capital operan dentro de una vasta y evolutiva estructura de interrelaciones, la estructura de producción
Toda esta estructura cambia constantemente, es decir, evoluciona, a medida que los humanos integran lo que aprenden en nuevas técnicas, tecnologías y materiales.
Los bienes de capital son esencialmente conocimiento, conocimiento integrado (materializado) en algún medio adecuado para intervenir en algún tipo de proceso productivo.
4. El conocimiento que hay que empaquetar es disperso, incompleto, cambiante, en gran parte tácito y crecientemente complejo
5. El proceso de desarrollo de nuevos bienes de capital (Sw) es un proceso de aprendizaje social
Se requiere un diálogo entre el equipo de diseño y los usuarios, entre otras cosas para descubrir y definir los requisitos.
Se requiere un diálogo entre el equipo de diseño y los usuarios, entre otras cosas para descubrir y definir los requisitos.
Los desarrolladores deben trabajar para comprender mejor cómo construir sus sistemas de forma efectiva.
El aprendizaje se potencia en la medida en que las herramientas de desarrollo ayuden a diseñadores y programadores a comprender mejor lo que están haciendo.
Al mismo tiempo, se requieren herramientas que contribuyan al proceso de comunicación interpersonal.
El software es un bien de capital, y algo más
Todos los bienes de capital operan dentro de una vasta y evolutiva estructura de interrelaciones, la estructura de producción
Los bienes de capital son conocimiento empaquetado acerca de cómo realizar algún tipo de producción
El conocimiento que hay que empaquetar es disperso, incompleto, cambiante, en gran parte tácito y crecientemente complejo
El proceso de desarrollo de nuevos bienes de capital (Sw) es un proceso de aprendizaje social
Complejidad del software
Efectos de la escala en la ingeniería del software
Aspectos y áreas involucrados
Modelo CMM
Código ACM/IEEE-CS de ética y práctica profesional
1. Efectos de la escala en la Ingeniería del Software
Años 60: Programación a pequeña escala: Programas comprensibles. Uso de lenguajes de alto nivel.
Años 70: Programación a gran escala: Persisten las dificultades de la programación a pequeña escala, a las que se une un incremento del orden de magnitud de la complejidad. Necesidad de organizar largos proceso de desarrollo. Herramientas.
Años 80 y 90: Programas-componentes de sistemas heterogéneos y Programas-delegados: Se construyen piezas de software integrables en sistemas formados por toda clase de componentes físicos y humanos, diferentes lenguajes, constricciones temporales o materiales, etc.
2. Aspectos y áreas involucrados
Profesionales: Escasez de técnicos, carreras, formación, ética, etc.
Legales: Derechos intelectuales e industriales, protección del software, límites a la distribución, etc.
Económicos: Consumo creciente de recursos empresariales, decisiones estratégicas en cuanto a la innovación tecnológica, estructura de producción, riesgos de penalización por fallos en calidad o plazos de entrega, etc.
Gerenciales: Control de costes, planificación, liderazgo, selección de personal, calidad, análisis de riesgos, selección de equipos y herramientas, etc.
3. Modelo CMM
El Capability Maturity Model es una norma de calidad y experiencia técnica y de gestión de los equipos y organizaciones dedicadas al desarrollo de software. Ha sido elaborado por el Instituto de Ingeniería del Software de la Universidad Carnegie Mellon (U.S.A.).
4. Código ACM de ética y práctica profesional
Creemos que todo ingeniero de software debería leer este código y reflexionar sobre él. El código ACM/IEEE-CS, elaborado, tras muchas reuniones, consultas y versiones, por un selecto grupo de profesionales convocados por las dos sociedades profesionales más importantes, contiene 8 principios deontológicos, que desarrollan una serie de puntos cada uno de ellos.
4. El conocimiento, como ventaja competitiva
El conocimiento es la única fuente de ventaja competitiva duradera, siempre y cuando se conjugue adecuadamente con la estrategia de la empresa.
Gestión del conocimiento
Qué se entiende por conocimiento en la empresa
Qué es la gestión del conocimiento
El conocimiento como activo. Capital intelectual.
El conocimiento como ventaja competitiva
El software, componente del capital intelectual
Un ejemplo concreto: Los Factores Claves del Éxito (de BMBS)

CAPITAL INTELECTUAL
CAPITAL HUMANO
CAPITAL ESTRUCTURAL
CAPITAL CLIENTES
CAPITAL ORGANIZATIVO
CAPITAL DE INNOVACIÓN
CAPITAL DE PROCESOS
1. Impulso de logros
2. Pericia analítica
3. Cambio de orientación
4. Habilidad de comunicación e influencia
5. Mejora continua
6. Desarrollo del potencial máximo de otros
7. Pensamiento innovador
8. Juicio y toma de decisiones
9. Liderazgo
10. Planificación para el éxito
11. Trabajo en equipo
12. Conciencia empresarial más amplia
13. Trabajo más allá de fronteras
SEGUNDA PARTE: EL FACTOR HUMANO (PEOPLEWARE)
Introducción
Orgware, manageware, peopleware
Leyes populares sobre la naturaleza humana y el trabajo
Un ejemplo de perfil de empleado más buscado
Hoy, la actividad de las empresas tiende a organizarse en forma de procesos. Los procesos productivos (procesos de negocio), integran procesos tecnológicos y éstos a su vez se montan por el trabajo, la aplicación de conocimientos y la cooperación de individuos organizados en maneras diversas.
Peopleware: el Grupo
1.1. Modelo de Constantine
3. Liderazgo M.O.I.
Cuatro arquetipos organizativos
Decálogo para el equipo de éxito
Liderazgo M.O.I.
Mando: Autoritario.
Comportamiento grupo: Agresivo/rebelde o apático/sumiso, según caracteres de sus componentes
Resultados: Mejora de rendimiento a corto plazo. Formación de objetivos propios de los individuos. Descenso de rapidez y calidad. Malestar psíquico.
Mando: Democrático.
Comportamiento grupo: Personal y más amistoso. Se valoran cualidades individuales y aceptan intereses comunes.
Resultados: Se mantiene nivel de actividad aún sin jefe presente. Decisiones más vinculantes. Se favorece el desarrollo personal.
Mando: Pasota (laissez faire)
Comportamiento grupo: Mejora creatividad. Desarrollo individualismo. Falta de responsabilidad.
Resultados: Favorece creatividad e imaginación. Desaparece conciencia de grupo. Relega trabajo duro. Surge líder.
Consta de los siguientes elementos:
1. Un programador jefe y el programador jefe reserva. El primero es el responsable del proyecto, del diseño total del sistema y de la programación de los principales programas. El segundo supervisa el trabajo del anterior y revisa completamente su programación.
2. Un administrador del proyecto, que descarga al programador jefe de las tareas administrativas.
3. Un instrumentalista, responsable de poner a punto las herramientas de software necesarias para soportar el proyecto.
4. Un editor de documentación, que toma la documentación del proyecto escrita por el programador jefe y su reserva y la prepara para publicación.
5. Un experto en los lenguajes y sistemas utilizados en el proyecto, cuyo papel consiste en aconsejar a los jefes sobre la forma de optimizar su uso.
6. Un probador, que genera casos de prueba para validar el trabajo del programador jefe.
7. Uno o más programadores de soporte, encargados de codificar diseños preparados por el programador jefe.
2. Decálogo para el equipo de éxito
Los consejos del decálogo son interesantes y útiles:
La aportación de Weinberg, que es un destacado sistemista, se cifra en proponer un modelo orgánico de liderazgo, llamado M.O.I., por las iniciales del nombre de los tres ingredientes fundamentales que tiene que reunir el entorno buscado: Motivación, Organización e Innovación (o Ideas). Estos tres campos componen un programa de actuación y al tiempo la descripción de las capacidades personales que debe poseer o desarrollar el líder.
Dada la idiosincrasia especial de los proyectos de software, podríamos llegar a sugerir el perfil ideal de un líder de proyectos software, juntando los elementos aportados por Weinberg y Maccoby:
• Líder humano MOI
• Líder técnico
• Innovador técnico
1. Elegir a las personas adecuadas:
Antes, visión global del proyecto, número y capacidades personales requeridos.
Entrevistas personales.
2. Mantener un equipo pequeño:
Dividir lo grande en trozos pequeños.
Dinámica de grupos.
Seis personas: Comunicaciones, sinergia.
Líder/jefe.
3. Reunirse físicamente de forma regular:
Información de gestión.
Informes de los jefes.
4. Aislar equipo de políticas de empresa:
Asumirse como “frontal” del grupo.
Despacho cerca del grupo.
5. Crear presentaciones efectivas:

Frente a gestores superiores.
Principio KISS (Keep It Small and Simple) en informes.
Fechas realistas.
6. Hacer el menor número de promesas:

Especialmente sobre plazos (tiempo) y presupuesto: regla difícil de conseguir.
7. Proporcionar formación y materiales:

Personal experimentado requiere formación adicional. Facilitar flujo de información: revistas, artículos seleccionados, libros, informes.
8. Proporcionar horario flexible de trabajo:

Programar es actividad creativa.
Ritmos diferentes, pero objetivos y fechas marcados: Puntos de función, no fichar en reloj.
9. Dar ejemplo personal
10. Conocer a tu equipo:

Seres humanos, con problemas y familia.
Recordarse que dirigir, aquí, es facilitar, crear ambiente de equipo.
1.1. Extrovertidos-Introvertidos: De dónde extrae el sujeto su energía
1.2.Sensores-Intuitivos: Cómo colecta el individuo su información
1.3.Thinkers-Feelers: Cómo toma sus decisiones
1.4. Judgers-Perceivers: Cómo trabaja el individuo, relacionado con cómo cierra los asuntos
2. La inteligencia, según la teoría factorialista
Se distinguen siete campos:
El CAMPO VERBAL
se refiere al uso inteligente del lenguaje y comprende otros tipos de aptitud: la comprensión verbal (V) y la fluidez verbal (W).
El CAMPO NUMÉRICO
está representado por el factor N, definido por tests de rapidez y exactitud de cálculo numérico.
El CAMPO ESPACIAL
abarca un conjunto de aptitudes precisas para resolver problemas de tipo técnico-práctico.
3.1 Insuficiencia del concepto clásico de inteligencia (CI): como orientador, como predictor
Capacidad de motivarnos a nosotros mismos
Capacidad de perseverar en el empeño por encima de frustraciones
Capacidad de controlar los impulsos
Capacidad de diferir las gratificaciones
Capacidad de regular nuestros estados de ánimo
Capacidad de evitar que la angustia interfiera con nuestras facultades racionales
Capacidad de empatizar con los demás
Capacidad de resolver conflictos
Capacidad de "leer" la situación social
3.2. Dos grandes dominios de la inteligencia

Algunos apuntes:
Hay dos hemisferios cerebrales unidos, pero funcionalmente muy diferentes y hay dos clases de inteligencia: la inteligencia racional y la inteligencia emocional.
3.3 Inteligencia racional
Lo racional tiene que ver sobre todo con las aptitudes verbales y lógico-matemáticas, núcleo del paradigma de inteligencia en la cultura occidental.
El CAMPO DE LA INTELIGENCIA FORMAL
abarca un conjunto de factores que trascienden todo contenido y están presentes en la solución de cualquier tipo de problema. Entre los factores que parecen más claramente definidos se encuentran los de razonamiento (R), deducción (D) e inducción (I).
El CAMPO DE LA MEMORIA
engloba muchas y muy diferentes clases de memoria. Existen muy variadas memorias repetitivas, y hay también una memoria significativa.
En el CAMPO PERCEPTIVO
cabe distinguir dos tipos de factores: de una parte están los que se especifican por su materia o contenido (táctil, cromático, figural, etc.) y, por otra, los de índole formal.
El CAMPO PSICOMOTOR
está constituido por un verdadero enjambre de pequeños
factores sin apenas correlación mutua: coordinación visuomotora, perseveración y ritmos.
3.4. Pensamiento convergente/pensamiento divergente
Los factores que forman el campo del razonamiento, o sea el factor R, el de deducción (D), el de Inducción (I) y alguno más en el modelo factorial, constituyen el pensamiento convergente.

Existe otro ámbito, llamado por Guilford pensamiento divergente, que incluiría factores, todavía mal conocidos, que apuntan hacia aptitudes para descubrir nuevos modos de consebir las cosas, para ser original.
3.5. Visión multidimensional de la inteligencia: Inteligencias múltiples
Distinguen 7 variedades distintas básicas de inteligencia:
4. Inteligencia emocional
Según Goleman, la inteligencia emocional es la aptitud maestra, la que abre/cierra y potencia/bloquea todas las demás aptitudes.
4.2 Algunos comentarios sobre la I.E.

Que sepamos, no existe una medida cuantitativa de la Inteligencia Emocional, que, por semejanza, se llamaría CE (Cociente Emocional), pero podemos deducir que éste actuará como sumando o sustraendo para un hipotético cómputo final de la inteligencia.

En resumen, podría formularse de manera cualitativa o conceptual que:

C I + C E = Medida de la Inteligencia
4.1 Cinco competencias básicas
El conocimiento de las propias emociones (Self awareness, autoconsciencia)
La capacidad de controlar las emociones (Self Regulation o autocontrol)
La capacidad de motivarse a uno mismo (Motivación)
El reconocimiento de las emociones ajenas (Empathy, empatía)
El control de las relaciones sociales (Social skills, habilidades sociales)
5.1. Neocórtex
O corteza cerebral, sede del pensamiento consciente racional. Es el cerebro pensante. Se divide en dos hemisferios y en cuatro lóbulos: frontal, parietal, temporal y occipital.
5.2. Evolución del cerebro
Sus regiones más primitivas constituyen el tallo encefálico, situado en el extremo superior de la médula espinal. De él emergieron los centros emocionales y de éstos el neocórtex.
El sistema límbico contiene el lóbulo olfatorio, alrededor del que se desarrollaron en forma de estratos anulares (limbus significa anillo) otros centros.
La evolución de tal sistema desarrolló dos herramientas: el aprendizaje y la memoria.
5.3. Proceso de las señales sensoriales: receptor sensorial - tálamo - corteza - amígdala
Las señales sensoriales (tacto, oído, vista, gusto), van al tálamo, donde son preprocesadas y encaminadas posteriormente a las secciones corticales pertinentes, para su procesamiento y posterior reenvío a los centros de acción.
Si la respuesta es emocional el centro al que se reenvían es la amígdala, para que ésta actúe sobre otros centros nerviosos como el hipotálamo o el hipocampo u hormonales, como la glándula pituitaria.
El descubrimiento reciente por LeDoux de una vía nerviosa rápida entre el tálamo y la amígdala ha transformado el concepto de procesamiento humano de las emociones.
Este descubrimiento demuestra que puede haber respuestas generadas directamente por la amígdala, sin que el neocórtex haya tenido tiempo de procesar y matizar racionalmente tales respuestas.
• Disperso: Se necesitan los saberes de varias personas, con especialidades muy diferentes.
• Incompleto: Con frecuencia, no existen algunas porciones del conocimiento necesario para construir el software previsto.
• Cambiante: Las necesidades de los usuarios cambian, los usuarios aprenden y evolucionan, las herramientas se van perfeccionando, se transforman continuamente las condiciones sociales, económicas y culturales, etc.
• Tácito: A menudo, el conocimiento está embebido en hábitos y operativas que sus poseedores no saben o no pueden expresar con palabras.
• Complejo: El aumento de las ambiciones funcionales y operativas del ser humano con respecto a sus actividades de todo tipo, emparejado al increíble aumento de las capacidades de su tecnología
Las fases que conforman a la metodología OMT son:
Análisis
Diseño de sistema
Diseño objetos
Implementación
La metodología OMT emplea tres clases de modelos para describir el sistema:
Modelo de objetos. Describe la estructura estática de los objetos del sistema (identidad, relaciones con otros objetos, atributos y operaciones).
Modelo dinámico. Describe los aspectos de un sistema que tratan de la temporización y secuencia de operaciones y la organización de sucesos y estados.
Modelo funcional. Describe las transformaciones de valores de datos (funciones, correspondencias, restricciones y dependencias funcionales) que ocurren dentro del sistema.
Clases y Objetos
Objetos. Un objeto es, sencillamente, algo que tiene sentido en el contexto de la aplicación. Se definirá un objeto como un concepto, abstracción o cosa con límites bien definidos y con significado a efectos del problema que se tenga entre manos.

Clases. Describe un grupo de objetos con propiedades (atributos) similares, con relaciones comunes con otros y con una semántica común.

Diagramas de objetos. Proporcionan un anotación gráfica formal para el modelado de objetos, clases y sus relaciones entre sí, son útiles, tanto para el modelado abstracto como, para diseñar programas reales. Hay dos tipos de diagramas de objetos
Metodología OMT (Rumbaugh)
Generalización y Herencia
Ambos conceptos van unidos: herencia y estructura jerárquica, de forma que la herencia se produce por la existencia de una estructura entre los componentes del sistema y la estructura se consigue en la implementación del código a través de la herencia en los lenguajes OO.
La herencia está íntimamente relacionada con la forma concreta en que un lenguaje implementa la generalización, que es un término más abstracto.
Agrupación de entidades
Los elementos que hemos estudiado en el Modelo de Objetos se pueden agrupar para construir el modelo completo, así, las clases, las asociaciones y las generalizaciones forman lo que se denomina módulo y varios módulos forman el modelo de objetos.
Construcción de un modelo de objetos
Identificar las clases de objetos.
Iniciar un diccionario de datos que contenga descripciones de clases, atributos y asociaciones.
Agregar asociaciones entre clases.
Agregar atributos a objetos y ligas.
Organizar y simplificar las clases de objetos usando herencia.
Probar las rutas de acceso usando escenarios e iterar los pasos anteriores según sea necesario.
Agrupar las clases en módulos, basándose en "acoplamiento cercano" y función relacionada.
Modelo Dinámico
Los aspectos del sistema que están relacionados con el tiempo y con los cambios constituyen el modelo dinámico.
Los conceptos más importantes del modelado dinámico son los
sucesos
, que representan estímulos externos, y los
estados
, que representan los valores de los objetos. El
diagrama de estados
va a representar los sucesos y los estados que se dan en el sistema.
Diagramas de Estados Anidados
Anidamiento de diagramas de estados. Una actividad de un estado se puede expandir en forma de diagrama de estados de nivel inferior, en el cual cada uno representará un paso de la actividad.
Generalización de estados. Un diagrama de estados anidados es en realidad una forma de generalización de estados.
Notaciones del modelo de objetos
Notaciones del modelo avanzado de objetos
Desarrollo de un modelo dinámico
Preparar escenarios para las secuencias de interacción típicas.
Identificar eventos entre objetos y preparar trazos de eventos para cada escenario.
Preparar un diagrama de flujo de eventos para el sistema.
Desarrollar un diagrama de estados para cada clase que tenga un comportamiento dinámico importante.
Verificar que los eventos compartidos entre diagramas de estado sean consistentes y correcctos.
Modelo Funcional
El modelo funcional describe los cálculos existentes dentro del sistema siendo la tercera parte del modelado. Dentro del modelado del sistema, el modelo funcional especifica lo que sucede, el modelo dinámico cuándo sucede, y el modelo de objetos especifica a qué le sucede.
Diagramas de flujo de datos
Procesos: un proceso transforma valores de datos.
Flujo de datos: un flujo de datos conecta la salida de un objeto o proceso con la entrada de otro objeto o proceso.
Actores: es un objeto activo que controla el grafo de flujo de datos produciendo o consumiendo valores.
Almacenes de datos: es un objeto pasivo dentro de un diagrama de flujo de datos que almacena datos para su posterior utilización
Diagramas de flujo de datos anidados. Resulta muy útil para mostrar la funcionalidad de alto nivel de un sistema, y su descomposición en unidades funcionales más pequeñas.
Flujos de control. Un diagrama de flujo de control muestra todas las posibles vías de computación para los valores. No muestra cuales son las vías que se ejecutan ni en qué orden.
Especificación de Operaciones
Toda operación se podrá especificar de diferentes maneras, entre las que están:
Funciones matemáticas
Tablas de valores de entrada y salida
Ecuaciones que especifican la salida dependiendo de la entrada,
Condiciones previas y posteriores,
Tablas de decisión
Pseudocódigo
Lenguaje natural.
Construcción de un modelo funcional
Identificar valores de entrada y salida.
Usar diagramas de flujo de datos para mostrar dependencias funcionales.
Describir las funciones.
Identificar restricciones.
Especificar criterios de optimización.
Fase de Diseño de sistemas.
1. Organizar el sistema en subsistemas.
2. Identificar la concurrencia inherente al problema.
3. Asignar subsistemas a procesadores y tareas.
4. Escoger la estrategia básica para implantar los almacenamientos de datos en términos de estructuras de datos, archivos y bases de datos.
5. Identificar recursos globales y determinar los mecanismos para controlar su acceso.
6. Seleccionar un esquema para implantar el control del software
7. Considerar las condiciones de frontera.
8. Establecer prioridades de decisión sobre características deseables del producto de software.
Fase de Análisis.
1. Contar con una descripción inicial del problema (enunciado del problema).
2. Construir un modelo de objetos. Modelo de objetos = diagramas del modelo de objetos + diccionario de datos.
3. Desarrollar un modelo dinámico. Modelo dinámico = diagramas de estado + diagrama global de flujo de eventos.
4. Construir un modelo funcional. Modelo funcional = diagramas de flujo de datos + restricciones.
5. Verificar, iterar y refinar los tres modelos
Notaciones
Notación
Fase de Diseño de objetos.
1. Obtener las operaciones para el modelo de objetos a partir de los otros modelos
2. Diseñar los algoritmos para implantar las operaciones
3. Optimizar las rutas de acceso a los datos
4. Implantar el control del software introduciendo el esquema seleccionado durante el diseño de sistemas.
5. Ajustar la estructura de clases para incrementar la herencia
6. Diseñar la implantación de las asociaciones
7. Determinar la representación de los atributos de los objetos.
8. Empaquetar las clases y las asociaciones en módulos.
Aplicaciones
Esta Tecnología puede ser aplicada en varios aspectos de implementación incluyendo:
Archivos.
Base de datos relacionales.
Base de datos orientadas a objetos. Estructura de datos.
Multimedia.
Interactivas.
Web.
Cliente/servidor.
Distribuidas.
Herramientas CASE que soportan OMT
Excelerator II
Intersolv Inc.
MetaEdit MetaCASE Consulting YO
ObjectMarker, Mark V Software
BOCS, Berard Software Eng.
ObjectTeam, Candre Technologies, Inc.
OMTool, Martin Marietta.
Paradigm Plus, Protosoft.
Software Through Pictures, Interactive Development Enviroment
System Architect, Popkin Software.
Ejemplo:
Sistema de cajero automático: ATM (Automated Teller Machine)
Escenario normal de un CA.
El CA pide al usuario que inserte una tarjeta; inserta una tarjeta de crédito.
El CA admite la tarjeta y se lee un número de serie.
El CA solicita la contraseña; el usuario escribe "9999".
El CA verifica el número de serie y la contraseña con el consorcio, que los rechaza después de consultar con el banco adecuado.
El CA indica que la contraseña es incorrecta, y pide al usuario que vuelva a escribirla; éste usuario escribe "1234", y la tarjeta es admitida por el consorcio tras verificar el CA.
El CA pide al usuario que seleccione la clase de transacción que desea; el usuario selecciona una retirada de fondos.
El CA pregunta la cantidad de dinero; el usuario cambia de opinión y pulsa "cancelar".
El CA expulsa la tarjeta y pide al usuario la recoja, el usuario la recoge.
El CA pide a un usuario que inserte una tarjeta.
Conclusiones
OMT pone énfasis en la importancia del modelo y uso del modelo para lograr una abstracción, en el cual el análisis esta enfocado en el mundo real para un nivel de diseño, también pone detalles particulares para modelado de recursos de la computadora.
Es muy fácil de aprender ya que para el 90% de casi todos los proyectos se ocupan casi todo el mismo subconjunto de notaciones, además debido a su sencillez se ha extendido a casi todo los niveles de ingeniería de software
Recomendamos esta metodología como base para aprender métodos más modernos y profesionales como pueden ser UML u Objectory por mencionar algunos.
METODOLOGÍA ORIENTADA A OBJETOS
Para definir el comportamiento de un objeto, se crean métodos, los cuales tienen una apariencia y un comportamiento igual al de las funciones en otros lenguajes de programación, los lenguajes estructurados, pero se definen dentro de una clase.


Otro concepto muy importante en la metodología orientada a objetos es el de herencia. Con la herencia, todas las clases están arregladas dentro de una jerarquía estricta. Cada clase tiene una superclase y puede tener una o más subclases.
Ventajas de la metodología orientada a objetos
Reutilización
Estabilidad
El diseñador piensa en términos del comportamiento de objetos y no en detalles de bajo nivel
Se construyen clases cada vez más complejas
Calidad
Un diseño más rápido
Integridad
Mantenimiento más sencillo
Una interfaz de pantalla sugestiva para el usuario
Independencia del diseño
Interacción
Computación Cliente-Servidor
Computación de distribución masiva
Mayor nivel de automatización de las bases de datos
Migración
Mejores herramientas CASE
INGENIERÍA DEL SOFTWARE
Factores económicos y humanos

Eduardo Ramírez
C.I. 18502581
Eduardo Ramírez
C.I. 18502581
Full transcript