Competencia 1: M.C. Juan Carlos Olivares Rojas MSN: juancarlosolivares@hotmail.com jcolivar@itmorelia.edu.mx http://antares.itmorelia.edu.mx/~jcolivar/ @jcolivares Social Network: Facebook, LinkedIn. Hi5
Saberes
Importancia de la función informática. Importancia de la administración de la función informática. La función Informática y su relación con el ciclo competitivo de las organizaciones. Tendencias de las tecnologías de información.
Saberes
Nuevas responsabilidades inform谩tico. Ubicaci贸n en las organizacionales.
del
diferentes
directivo estructuras
Importancia de la función informática • La informática es un galicismo originado del tratamiento automático de la información. • La información permite conocer la realidad, interactuar con el medio físico, apoyar la toma de decisiones, y evaluar las acciones de individuos y de grupos.
Importancia de la F. I.
• Actualmente vivimos en una sociedad llena de información a la que se ha denominado sociedad del conocimiento. • La función de un administrador guiar a las organizaciones hacia el logro de metas y objetivos. Esto se logra con y por medio de personas y otros recursos, en este caso recursos tecnológicos.
Mundo Actual
Era Digital
La Tecnología debe de adaptarse a las situaciones pedagógicas, la didáctica y al contexto social
Nuevo Tipo de Escuelas
Uso de TICs en todo
• Copia rápida del pizarrón.
• Solución: utilizar fotografías
Uso de TICs en todo
• Fotocopiado de algún material impreso como un libro.
Uso de TICs en todo
Sociedad del Conocimiento
• El problema actualmente no es tener la información, sino encontrarla.
Importancia de la Internet
Importancia de la F. I.
Importancia de la F. I
JerarquĂa de Conceptos
Importancia de la F.I.
• La administración se compone de 4 procesos bien definidos: • • • •
Planeación Organización Dirección Control
• Los principios generales de la administración son:
• • • • • •
Importancia de la F. I.
División del trabajo Autoridad Disciplina Unidad de mando Unidad de dirección Subordinación de los intereses particulares a los generales • Renumeración • Centralización*
• • • • • •
Importancia de la F. I.
Cadena escalar Orden Equidad Estabilidad en la permanencia del personal Iniciativa Espíritu de grupo
Importancia de la F. I.
• Vivimos en un mundo lleno de computadoras: cajeros automáticos, relojes, celulares, etc. • La administración de la función informática se vuelve esencial. • Definir el concepto de función informática es sumamente difícil, es como definir el concepto de tiempo.
Importancia de la F. I.
• La F. I. Consiste en las mejores prácticas para evitar el despilfarro computacional. • La administración de los recursos tecnológicos y humanos es parte de la Función Informática. • En general en México hasta hace poco la función informática se administraba.
Importancia de la F. I. • De acuerdo con cifras oficiales, el gasto total en productos de software y tecnologías de información en México durante 2008 fue cercano a los 1,000 millones de dólares; sin embargo, sólo una fracción de esta demanda fue satisfecha por empresas nacionales.
Importancia de la F.I.
• Las elevadas importaciones se deben, en parte, al alto número de empresas consultoras de origen extranjero. • Las empresas filiales de compañías extranjeras representan alrededor del 30 por ciento de sus asociados pero concentran alrededor del 75 por ciento de las ventas.
Importancia de la F.I.
• El perfil actual de la industria nacional resulta mayoritariamente de micro y pequeñas empresas (83%). • Las empresas desarrolladoras de software (definición del PROSOFT), son de un tamaño muy inferior al promedio internacional que es de 250 empleados.
Importancia de la F.I.
• Clasificación de empresas desarrolladoras de software: Número
Número
de
de
1 as 10
619
Empleado Empresas Micro
Porcentaj e 41%
Pequeña
11 a 50
629
42%
Mediana
51 a 100
130
9%
Grande
Más de 100
114
8%
Importancia de la F.I.
• Factores críticos de éxito de la industria de software en México: • México cuenta con buena dotación de capital humano e infraestructura tecnológica, pero la calidad de la mano de obra y el costo de acceso a la infraestructura son un freno para la competitividad de la industria.
Importancia de la F.I.
• Puntos Fuertes:
• La matrícula en áreas de TI crece de manera exponencial. • Se tiene la mejor infraestructura tecnológica en latinoamérica después de Brasil.
Importancia de la F.I.
• Puntos débiles:
• Existe poca investigación y falta de acceso a créditos. • La mano de obra es calificada pero requiere de mucho tiempo de entrenamiento. • A pesar de que se cuenta con mucha infraestructura de TI, el uso de ésta es cara.
Importancia de la F. I.
• La oferta de la industria está muy orientada a la provisión de servicios. • Las servicios con mayor contribución a la oferta son: • Desarrollo e Integración • Mantenimiento y Soporte de Software • Consultoría
Importancia de la F.I.
• En México como en muchos países subdesarrollados la brecha digital es muy marcada. • ¿por qué los Estadounidenses y Canadienses prefieren la mano de obra Hindú si al final de cuentas en México se tienen muchos factores críticos de éxito como: la cercanía, afinidad cultural, menores costos de mano de obra y fácil traslado?
Importancia de la F.I.
• Análisis FODA de la industria del software en México FORTALEZAS
DEBILIDADES
• Uso horario similar • Afinidad cultural
• Oferta limitada de mano de obra calificada • Escaso manejo del inglés
• Proximidad y fácil traslado • Menores costos de mano de obra
• Niveles de mexicanas
• Buena infraestructura aunque más costosa • TLCAN
• Estructura de la industria de TI • Temas de seguridad y corrupción
• Estabilidad política • Bajo riesgo geopolítico OPORTUNIDADES
• Falta de experiencia de las empresas en proyectos grandes de México AMENAZAS • Acceso a capital competencia de países emergentes en el • Alta • Carga y legislación laboral mercado de TI (Brasil, Rusia, China y
con jugadores • Asociación desarrollo de TI canadienses
globales
de
• Amplio espacio para el apoyo efectivo del gobierno • Generar una masa crítica de mano de obra calificada
certificación
de
las
empresas
Filipinas) • Incrementos en el costo de la mano de obra • Constante innovación tecnológica
Importancia de la F.I.
• Investigación sobre parques tecnológicos en México. • Análisis FODA del ClusterTIM (Parque tecnológico de Tres Marías en Morelia, Michoacán). • A continuación se muestra una radiografía de la industria del software en México.
Tipos de Organizaci贸n
Esquema de Contrataci贸n
Edad
Escolaridad
GĂŠnero
Antig端edad
Salarios
Salarios
Salarios
Salario Internacional
Salario Tipo de Organizaci贸n
Salario por Funci贸n
Salario por Rango Edad
Salario Grado de Estudios
Conocimiento y Habilidades
Conocimiento y Habilidades
Plataformas
BD
Otras habilidades
Certificaciones
Certificaciones
1.2 Importancia de la administración de la función informática • El problema principal que se tiene en México es que no se administra de forma correcta las tecnologías de la información ni los procesos que la información conlleva dentro de las organizaciones. Cuando se logra administrar generalmente se hace de manera descentralizada.
AFI
• El área de informática es un área de servicio, cuyo objetivo es apoyar al resto de las áreas de la organización. Por tanto debe hacerse conciencia de lo siguiente: • El 10% de la productividad del personal del área de informática debe ver hacia dentro. • El 90% restante debe proyectarse hacia fuera.
AFI
• Es de suma importancia que se realice el proceso de planeación estratégica y táctica en un departamento de sistemas. • Es importante manejar una estructura del departamento.
adecuada
Dirección de Informática
Gerencia de Desarrollo de sistemas
Gerencia de Consultoría Técnica a usuarios
Gerencia de Servicios de cómputo
Gerencia de Desarrollo técnico
Importancia de la AFI
• Un Informático debe de aprender a delegar el uso de la tecnología, y entender que no se debe delegar la propia tecnología (es decir no se puede dejar que cada quien tenga los programas, sistemas, o lenguajes que quiera en sus PC) sino delegar su uso. • Un informático no es responsable del uso de la tecnología pero si del desempeño y funcionalidad de la misma.
1.3 La función Informática y su relación con el ciclo competitivo de las organizaciones • Es de suma importancia conocer el control interno de una organización para poder mejorar el desarrollo de la empresa a través del uso de tecnologías informáticas.
AFI en las Organizaciones
• El origen de los Sistemas de Información está íntimamente relacionado con el origen de las organizaciones a tal punto que un Sistema de Información no puede existir sino existe una organización. • Los Sistemas de Información han evolucionado conforme lo han hecho las empresas.
Ecosistema de la Industria
El negocio y su entorno
Fundamentos de los Negocios
Estructura Jerรกrquica Actual
La organizaci贸n y su ambiente
Organizaci贸n Formal
Esquema de una Organizaci贸n
TI y las Organizaciones
Organizaciones de Ayer
• Escenario economía cerrada
• Compañías orientadas a producir un producto o servicio. • Mercado con capacidad de absorber a todos. • Comercialización y venta fácil.
Organizaciones de Hoy
• Escenario de una economía abierta
• Compañías orientadas a servir al cliente • Entorno altamente competido. • Comercialización y venta claves para la supervivencia.
Entornos de Trabajo Amigables
Entornos de Trabajo Amigables
• • • • • • • • •
Organizaciones Tradicionales Deseo de Estabilidad Múltiples Niveles Administrativos Reducción de riesgos Toma decisiones lenta, central. Respuesta al cliente tardada Miembros especialistas Importa jerarquía, control Tamaño grande, inflexibilidad Medio comunicación: Papel
Organizaciones Tradicionales
• • • • • • • • •
Organizaciones Modernas
Dinámicas Plana, esfera de comunicaciones Explota nuevas oportunidades Información disponible para todos. JIT en la Información Miembros con conocimiento/autodirección. Autoridad y mando circular. (Trabajo en equipo) Esbeltas Medio de comunicación: Electrónicos.
Organización y TICs
• Las Organizaciones intentan conjuntar dos visiones para realizar su negocio: – Visión del negocio – Visión de TI
• En general esta integración ha sido compleja y problemática sin alcanzar una visión común del negocio
Organizaciones y TICs
• Sin embargo las Organizaciones son cada vez más dependientes de sus sistemas informáticos
– cuentan con diversidad de sistemas que tienen entre sí dependencias complejas – estos sistemas han ido creciendo en forma separada y heterogénea
• Los avances en tecnología y los cambios en los requerimientos del negocio se retroalimentan y deben ser gestionados
Valor del Negocio
Áreas de una Organización
Cadena de Valor de los Negocios
Trinomio de los SI
Entorno de los SI
Perspectiva de la AFI
Importancia de los SI
• Lo que una empresa desea hacer dentro de 5 años dependerá de lo que sus sistemas puedan hacer – Incrementar su mercado – Convertirse en el productor de alta calidad o bajo costo – Desarrollar nuevos productos – Incrementar la productividad de los empleados – Depende del tipo y calidad de información
Sistemas Empresariales
Tipos de Sistemas de Informaci贸n
TPS-MIS
Ejemplo de SI
Ejemplo de SI
Ejemplo de SI
Ejemplos de SI
Actividad de Reflexión
• Nicholas Carr, de Harvard Business Review escribió un artículo “TI no importan” • ...Porque todas las empresas pueden comprar TI en el mercado, • ...porque cualquier ventaja obtenida por una compañía puede ser fácilmente copiada por otra compañía,
Actividad de Reflexión • ...porque TI es ahora un comodity basado en estándares (como Internet) que cualquier compañía puede usar • ...no es ya un factor diferenciador en el desempeño de una compañía.
1.4 Tendencias de las tecnologías de información 1.4.1 Tendencias de hardware, software datos y comunicaciones. 1.4.2 La calidad total en la administración de tecnologías de la información. 1.4.3 Reingeniería de la administración de tecnologías de la información.
Tendencias de hw, sw, datos y comunicaciones
• Cuando se habla de tendencias, se habla de dirección y de la posibilidad de que en un futuro ciertas tecnologías que todavía no tienen nombre y apellido, alcancen la madurez como para ser viables. • El futuro ambiente tecnológico, deberá considerar la adaptación de modelos de negocio centrados en la Web.
Tendencias
• Las tendencias se pueden medir de manera eficiente a través de estadísticos. • Las tecnologías emergentes puede ser un factor crítico de éxito para muchas organizaciones pero sino es administrada de forma eficiente puede ser la punta del iceberg de un fracaso evidente.
Estadísticas E-Commerce
• En México xisten 17.8 millones de computadoras, de las cuales 11.1 millones cuenta con acceso a Internet. • Existen 75.6 millones telefonía celular.
de
usuarios
de
• De los 6.5 millones de enlaces a Internet, 6.1 son de banda ancha.
Estadísticas de E-Commerce
• Un poco más del 20% de los Internautas maneja un Blog. • 58% Internautas utilizan chats • 86% Utilizan un buscador • 40% Utilizan mensajes SMS • Existen muchas empresas de consultoría que se especializan en tendencias del área informática como IDC y Gartner.
Pronóstico Gartner 2007 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Código abierto Virtualización Registro de servicios y repositorios Suites para la gestión de procesos de negocios Enterprise Information Management Cómputo ubicuo Acceso a la información Web 2.0 – AJAX Rich Clients Web 2.0 - Mashup Composite Model Inteligencia colectiva y comunidades
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Pronóstico Gartner 2008
Green IT Unified Communications Business Process Modeling Metadata Management Virtualization 2.0 Mashup & Composite Apps Web Platform & WOA Computing Fabric Real World Web Social Software
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Pron贸stico Gartner 2009
Virtualization. Cloud Computing. Servers-Beyond Blades. Web-Oriented Architectures. Enterprise Mashups. Specialized Systems. Social Software and Social Networking. Unified Communications. Business Intelligence. Green IT.
• • • • • • • • • •
Tendencias 2010 Gartner
Cloud Computing Analítica avanzada Client computing Green IT Rediseño de CDP Social Computing Seguridad y monitorización de accesos Memoria Flash Virtualización para disponibilidad Aplicaciones móviles
Tendencias en TICs
Hardware
• $110 billones de dólares gastados anualmente en los Estados Unidos. • Dominio de chips procesadores 64-bits de Intel, AMD, e IBM al nivel de cliente y servidor. • Servidores de blade “hoja” reemplazan servidores de “caja”. El manejo de mainframe es considerable en empresas grandes.
Microprocesadores
Sistemas Operativos
• $100 billones USD en los Estados Unidos • Dominio contínuo de S.O. Microsoft en el cliente (95%) y en el mercado portátil de mano (45%) • Dominio creciente de Linux (UNIX) en el mercado de servidores corporativos (85%). Las PyMEs manejan servidores basados en Windows NT.
Software Empresarial
• $165 billones gastados anualmente en los Estados Unidos para infraestructura de software empresarial básica. • SAP, Oracle, PeopleSoft (ahora Oracle), y Siebel dominan este mercado. Firmas de software intermedio (Middleware) como BEA y JD Edwards sirven a firmas más pequeñas, y trabajan también en el campo de servicios Web.
Administración de Datos
• $70 billones gastados anualmente en los Estados Unidos. • Oracle y IBM continúan dominando el mercado de software de bases de datos. Microsoft (SQL Server) y Sybase tienden a servir firmas más pequeñas. • MySQL es utilizada en su mayor parte en firmas de tamaño pequeño a mediano.
Capacidad de Discos Duros
Costos por Megabit
Administración de Datos
• $35 billones gastados anualmente en los Estados Unidos para almacenamiento físico en disco duro. • El mercado de disco duro se está consolidando alrededor de unas pocas firmas muy grandes como EMC y firmas más pequeñas de disco duro para PC como Seagate, Maxtor, y Western Digital.
Fuentes de Datos
Redes y Telecomunicaciones
• $700 billones de USD gastados anualmente en servicios de telecomunicaciones. • Redes de Firmas Empresariales completamente Linux o UNIX.
casi
• Cisco, Lucent, Nortel, y Juniper Networks continúan dominando el hardware de redes.
Redes y Telecomunicaciones
• El mercado de servicios de telecomunicaciones es altamente dinámico con MCI, AT&T, y Sprint proveyendo la mayoría de los servicios de líneas troncales para Teléfono e Internet. • Crecimiento de servicios no telefónicos Wi-Fi y Wi-Max, y telefonía por Internet. • Auge del Triple-Play.
Seguridad TI
Redes de Sensores
Internet
• $32 billones USD gastados anualmente en Infraestructura de Internet en los Estados Unidos. • Mercado de hardware de servidor Internet concentrado en Dell, HP, y IBM. • Apache continúa siendo el software de servidor de Web dominante, seguido por el servidor IIS de Microsoft .
Redes HeterogĂŠneas
Consultoría
• $130 billones USD gastados anualmente en los Estados Unidos en consultoría (desarrollo) • Aproximadamente 85% de la Consultoría de empresas en los Estados Unidos involucra consultoría de negocios de TI. • IBM es la empresa más grande de consultoría con Servicios Globales IBM.
Otras Tendencias
• Uso de Grid-Computing, Cloud-Computing, software bajo demanda. Servicios Web y arquitectura orientada a servicios (SOA). • 30%-50% del presupuesto de una empresa para el desarrollo de software es para darle mantenimiento. • Subcontratación (outsourcing) de Software.
Otras Tendencias
• Ejemplo: Dow Chemical contrató a IBM por $1.1 billones para crear un sistema de comunicación integrado para 50,000 empleados en 63 países. ¿Por qué no construiría este Sistema Dow mismo? • Otra de las tendencias de IT es el Software de Integración de Aplicaciones Empresariales (EAI).
Servicios Web
EAI
Sistemas Inteligentes
Inteligencia de Negocios
Cubos de Datos
Calidad en la Admon. Total
• La administración total se centra la atención en los clientes, el benchmarking, el mejoramiento continuo • El benchmarking es un proceso que permite identificar las mejores prácticas en un determinado proceso o actividad, se analizan y se incorporan a la operativa interna de la empresa.
Reingeniería de la AFI
• La reingeniería de los procesos surge como respuesta a las ineficiencias propias de la organización funcional en las empresas y sigue un método estructurado consiste en identificar los procesos clave de la empresa asignar responsabilidades sobre dichos procesos a un “propietario” definir los limites del proceso medir el funcionamiento del proceso entre otros.
Software Hoy en Día
• Mito: programadores ahora ya programan como de antes.
los de no los
• Herramientas más fáciles y productivas • El software es cada día más complejo
Reingeniería del Software
• ¿Si su software fuera un edificio, se parecería mas a uno de la izquierda o de la derecha?
• Reducir
Software Sustentable
• Reusar • Reciclar • 80% Desarrollo de Software es para mantenimiento. Por lo tanto se necesita de un código simple, legible y bien diseñado para que en un futuro pueda ser extensible.
Software Hoy en Día
• En el pasado las prioridades eran tener un código rápido, pequeño (ocupa poca memoria), optimizado, utilizando los algoritmos mas eficaces etc... • Hoy en día el software es más complejo pero a la vez hay herramientas más poderosas, por lo que actualmente el enfoque es que este código tiene que ser simple.
Beneficios Código Simple
• El código es mas fácil de cambiar, evolucionar o arreglar (más del 60% de desarrollo de sw es darle mantenimiento a software existente) • Es más fácil desarrollar de un modo iterativo e incrementando • El código es más fácil de leer (entender).
Reingeniería
• Se originó a finales de la década de 1980 aunque se popularizó en la década de 1990. • La reingeniería es un proceso que trata de dar respuesta a una interrogante: ¿Estamos acaso
haciendo las cosas bien o podríamos hacerlas mejor?
• Es el rediseño o cambio drastico de un proceso en un negocio (deriva hacia el producto). Es comenzar de cero, cambio de todo o nada.
Ejemplo de ReingenierĂa
Reingeniería del Software
• La reingeniería de software es costosa y consumidora de tiempo. • La
reingeniería
es
una
actividad
de
reconstrucción, preferible de realizar antes de que se “derrumbe” la obra. • Antes de derribar una casa, quizás se necesita corroborar que está mal.
ReingenierĂa del Software
Reingeniería del Software
• La reingeniería es un proceso que altera los elementos internos de toda obra, no es una sola remodelación de la fallada. • La reingeniería ayuda a la evolución y mantenimiento del software • Generalmente se siguen los siguientes pasos para aplicar reingeniería:
ReingenierĂa del Software
ReingenierĂa del Software
La gran foto
Definición
• Refactoring (Reestructuración) es modificar el comportamiento
interno
(generalmente
código
fuente) sin modificar su comportamiento externo (apariencia, funcionalidad).
• Un cambio al sistema que deja su comportamiento inalterable (sin cambios), pero aumenta alguna cualidad
no
funcional
como
simplicidad,
flexibilidad, comprensión, … [Beck, 1999]
Definición
• El término se creó como analogía con la factorización de números y polinomios. Por ejemplo, x² − 1 puede ser factorizado como (x + 1)(x − 1), revelando una estructura interna que no era visible previamente (como las dos raíces en -1 y +1) • El libro de Martin Fowler Refactoring es la referencia clásica (1999).
Uso de Refactoring
• Aplicaciones como el edificio de la derecha padecen de malas prácticas en el desarrollo de software como: • • • •
“Código mutante” “Diseño roto” El código es antiguo y muy grande Falta de planeación y documentación
• ¿El softwre sufre degeneración?
Ejemplo de Refactoring
• Es correcto el siguiente modelo
Ejemplo de Refactoring
• Si. Subiendo el método a la clase padre
• ¿En qué casos no sería conveniente esta refactorización?
Ejemplo Renombrar Métodos
• ¿Cuál de los dos códigos siguientes es lo más correcto? • Caso1: double calcRngMaxPer() { .... } • Caso 2:
Ejemplo Renombrar Métodos
• ¿Por qué? • Cómo puede observarse en algunas situaciones las recomendaciones de refactoring pueden ser algo subjetivas. • Para este caso se recomienda el caso 2 ya que es más representativo el nombre del método. Se abreviaba generalmente en el pasado debido a las restricciones de los lenguajes con el tamaño de los identificadores, actualmente ya no es tanto problema.
Ejemplo números mágicos
• Cambiar números mágicos por constantes. • El cambio de valor de un número mágico implica un cambio en todo el código con su pérdida de tiempo. class CalculoSimple { public static double CalcularCincunferencia (double diametro) { return 3.14 * diametro; }
Ejemplo números mágicos
• ¿Cómo debe de quedar la reestructuración? class CalculoSimple { public const double PI = 3.14; public static double CalcularCincunferencia (double diametro) { return PI * diametro; } } • ¿En qué lenguaje está este código?
Patrón de Diseño
• Par Problema-Solución. Mejores prácticas. • Patrón Singletón • Problema: se admite exactamente una instancia de una clase. Los objetos necesitan un único punto de acceso global. • Solución: Defina un método estático de la clase que devuelva el Singleton
Singleton
Singleton
public class Singleton {
private static Singleton INSTANCE = null; private Singleton() {} private
synchronized
static
createInstance() { if (INSTANCE == null){ INSTANCE = new Singleton(); } return INSTANCE; }
Singleton
Patrón de Diseño de un Menú
Patr贸n MVC
Bad Smells
BAD SMELL REFACTORING PROPUESTO • Algunas ideas sobre que reestructura CODIGO DUPLICADO
EXTRAER EL MÉTODO SUBIR VARIABLES SUSTITUIR EL ALGORITMO
MÉTODOS LARGOS
EXTRAER EL MÉTODO INTRODUCIR OBJETOS COMO PARÁMETROS REEMPLAZAR EL MÉTODO CON UN OBJETO MÉTODO
CLASES GRANDES
EXTRAER CLASES EXTRAER SUBCLASES
CARACTERÍSTICA DE LA “ENVIDIA”
MOVER MÉTODO
CLASES “PEREZOSAS”
COLAPSAR JERARQUÍAS
Herramientas de Refactoring
• Existen muchas herramientas de reestructuración de códigos para los principales lenguajes: • Java
– Xrefactory, RefactorIT, jFactor, IntelliJ IDEA
• C++
– CppRefactory, Xrefactory
• C#
– C# Refactoring Tool, C# Refactory
Herramientas de Refactoring
• Los principales IDE’s las contienen de forma natica • NetBeans: RefactorIT • Oracle Jdeveloper: RefactorIT • Borland Jbuilder: RefactorIT • Eclipse: built-in (propia) • Emacs: Xrefactory • Visual Studio .NET: C# Refactory
Herramientas de Refactoring
• Sólo soportan refactoring primitivo:
• Refactorización de clases (Añade (sub)clases a la jerarquía, renombra, elimina clases). • Reestructuración de métodos (añade a una clase, renombra, elimina, mueve hacia abajo, hacia arriba, añade parámetros, extrae código. • Reestructuración de variables (añade a una clase, renombra, elimina, cambia modificadores, mueve de lugar.
Antipatrones de Diseño
• Antipatrón es un patrón de diseño que invariablemente conduce a una mala solución para un problema. • Al documentarse los antipatrones, además de los patrones de diseño, se dan argumentos a los diseñadores de sistemas para no escoger malos caminos, partiendo de documentación disponible en lugar de simplemente la intuición.
Antipatrones de Diseño
• El estudio de los antipatrones es muy útil porque sirve para no escoger malos caminos en el desarrollo de sistemas, teniendo para ello una base documental y así evitar usar simplemente la intuición. Además proporciona una denominación común a problemas que facilita la comunicación entre diferentes desarrolladores.
Antipatrón BLOB
• Mejor conocido como “objeto todopoderoso”. Se presenta cuando una clase es muy grande tanto en atributos y/o en métodos. • Entre más grande son las clases es más difíciles de mantener, reusar y probar. Su gran tamaño puede perjudicar el tiempo de carga. Generalmente son el resultado de un mal diseño o de sistemas legados.
Antipatr贸n BLOB
Antipatr贸n BLOB
Antipatr贸n BLOB
Antipatrones de Diseño
• Algunos
autores
consideran
al
Singleton
(Simplicidad) un ejemplo de un antipatrón ¿por que? • Se tiene que estudiar el código para ver las dependencias en lugar de simplemente ver las interfaces de nuestras clases. • Dificulta las pruebas de código ya que promueve un alto acoplamiento.
Antipatrones de Diseño
• Los singleton permiten controlar las instancias de nuestras clases, esto no está bien porque una clase solo debe tener responsabilidades de negocio. Para controlar la creación de clases deberemos usar un patrón Factoría sobre las clases de negocio. • En general su naturaleza estática y pública no son del todo bien vistas.
Catálogo de Ref. de NetBeans
• Renombrar (Rename)
– Cambia el nombre de una clase
• Mover (move)
– Mueve de forma segura una clase a otra ubicación
• Copiar (copy)
– Copia una clase a otra ubicación
• Eliminar de forma segura (Safely Delete) – Borra una clases y las referencias a ésta.
Catálogo de Ref. de NetBeans
• Cambiar los parámetros del método (Change Method Parameters) – Modifica parámetros de un método
• Ascender (Pull Up)
– Mueve los métodos y campos a una clase que hereda de su clase actual.
• Descender (Pull Down)
– Mueve las clases internas, métodos y campos para todas las subclases de la claseactual (a las clases
Catálogo de Ref. de NetBeans
• Mover de nivel interior a exterior(move inner to outer level)
– Toma una clase interna (que se encuentre dentro de otra) y la saca de ésta para colocarla en su propio archivo
• Convertir anónimo en miembro (convert annonymus to inner)
– Sirve para cambiar una clase miembro anónima (no instanciable) a una clase miembro actual.
Catálogo de Ref. de NetBeans
• Introducir variable (introduce variable)
– Permite introducir una variable e inicializarla a partir de la selección.
• Introducir constante (introduce constant)
– Introduce una constante al código con su referente valor y tipo.
• Introducir campo (introduce field)
– Toma una expresión seleccionada y crea un campo con el valor de la expresión; la cual será
Catálogo de Ref. de NetBeans
• Introducir método (replace block code with a field)
– A partir de varias líneas de código seleccionadas, el reestructurador declara un nuevo método y también se encarga de aplicarlo en lugar de las líneas.
• Encapsular campos (encapsulate fields)
– Toma las variables seleccionadas y crea métodos set y get para dicha variable.
Catálogo de Ref. de NetBeans
• Pull Up & Push Down (Ascender y Descender) – Aplica las dos refactorizaciones en un solo paso
• Extract Interface (Extraer Interface)
– Crea una nueva Interface de los métodos públicos no estáticos dentro de una Clase o Interface.
Catálogo de Ref. de NetBeans
• Extract Superclass (Extraer superclase)
– Crea una nueva Clase Abstracta, extiende a la Clase actual la nueva Clase, y mueve los métodos seleccionados y campos a la nueva Clase.
• Use Supertype Where Possible (usar supertipo cuando sea psible)
– Convierte el uso de una Subclase a una Superclase
Refactorización Pequeña
• Reemplazar una Temp con un Query
• Reemplazar
Consejos para Reestructurar
• Cuando pienses que es necesario. No sobre una base periódica • Aplicar la regla de Tres – Primera vez: Implementar la solución a partir de cero – Segunda vez: Aplicar algo similar por la duplicación de código – Tercera vez: No reimplementar o duplicar, sino Factorizar!!
Consejos para Reestructurar
• Consolidar después de añadir nueva Funcionalidad, especialmente cuando la funcionalidad es difícil de integrar en el código base existente. • Durante la depuración (debugging)
– Si es difícil seguir la pista a un error, reestructure para hacer el código más comprensible.
• Durante la inspección formal del código (revisiones de código)
Estándares de Codificación
• Para la reestructuración de códigos se pueden seguir convenciones ya definidas las más importantes son la notación húngara y la notación de camello. • La notación húngara fue creada por Charles Simonyi de Microsoft, el cual es húngaro y por eso recibió ese nombre.
Notación Húngara
• Es un método ampliamente usado sobre todo para convención de nombres de variables. • Consiste en tener variables autodocumentadas agregando un prefijo de tres caracteres o menos para indicar su tipo. • Las abreviaturas de los tipos de datos puede variar dependiendo del lenguaje de programación.
Notación Húngara Descripción
Abr
Objeto (parecido a las estructuras)
o*
Manejador (handler)
h p
Descripción
Abr
Carácter con signo
c
Carácter sin signo
b
Entero
n
Palabra (entero sin signo)
w
Puntero a entero de 16 bits
lp
Doble palabra (entero 32 bits)
dw
Puntero largo (32 bits) Enumeraciones
Largo
l
Flotante
f
Doble
d
Cadena terminada en /0
sz
Estructura Abc
sA
Descripción
Abr
Formulario
frm
CheckBox
chk
Botón
cmd
Imagen
img
e
Etiqueta
lbl
Puntero largo a una cadena terminado en nulo
lpsz
Menú
mnu
PictureBox
pic
Puntero largo a una función que devuelve un entero
lpfn
TextBox
txt
ComboBox
cbo
Línea
lin
• int nTest;
Notación Húngara
• long lTemp; • char *szString = "Prueba"; • struct Rect srRect; • int nMiVariableEjemplo; • char szEjemploString; • int NNOMBREINVALIDO; • int nNombre_Incorrecto;
Notación de Camello
• Es la utilizada por Java y herramientas afines. Su uso está creciendo en popularidad mientras que la notación húngara va en desuso. • Su principal característica consiste en que no separa nombres de identificadores (variables, métodos, objetos) con “_” para palabras compuestas.
Notación de Camello
• Los identificadores tienen la forma de la joroba de un camello. No se indican tipos de datos. Sigue respetando mucho de la Notación C. • Los métodos inician en minúsculas y si hay una palabra compuesta esta inicia con mayúscula dando la apariencia de una joroba.
Notación de Camello
• Las clases inician con mayúscula siguiendo el mismo método. • Los métodos para acceder a atributos de las clases no públicos deben llamarse por convención set y get.
Convenciones de Desarrollo
• Algunas compañías como Google proponen sus propios estándares de codificación: http://code.google.com/p/google-styleguide/ • Los lenguajes que maneja son C/C++, Python, Perl, Objective-C, XML, entre otros. • Estos estándares son manejados en forma obligatoria para el desarrollo de sus proyectos.
Ingeniería Inversa
• Se aplica para obtener un modelo detallado de análisis, ingeniería de requerimientos, diseño y en algunos casos implementación teniendo una solución, la cual es una actividad consumidora de tiempo. • Tanto la Ingeniería Inversa como la Reingeniería en la mayoría de las licencias de Software se encuentran penadas por la ley.
Ingeniería Inversa
• Los archivos ejecutables pueden ser desemsamblados obteniendo su código fuente en ensamblador. • Los archivos ejecutables con código portable (Java, .NET) pueden ser desemsamblados para obtener su código fuente.
Redise単o
Reuso de Software
• El reuso es una de las técnicas de resolución de problemas que más utilizamos los humanos. De hecho es lo primero que verifica nuestro cerebro.
• El reuso en software nos ayuda a mejorar la producción y calidad del software al “no reinventar la rueda”.
• Desafortunadamente no todo se puede reutilizar.
Reuso de Software
• La reutilización es la propiedad de utilizar conocimiento, procesos, metodologías o componentes de software ya existente para adaptarlo a una nueva necesidad, incrementando significativamente la calidad y productividad del desarrollo. • Para que un objeto pueda ser reusable se necesita de un alto nivel de abstracción. Entre mayor es su nivel de abstracción, mayor es su nivel de reuso.
Ofuscación La ofuscación permite ocultar código y en algunos casos reducir el tamaño del mismo, lo cual es muy útil en lenguajes de script (HTML por ejemplo)
Remover Asignaci贸n Par谩metros
Substituci贸n de Algoritmo
Mover Método
• El método de la clase original de preferencia debe desaparecer o bien hacer referencia al de la nueva clase. • Una clase es responsable de una cosa
Ejemplo de Mover Método
• ¿Qué tiene de malo este código?
Ejemplo de Mover Método
• El método amountFor utiliza muchas referencias a métodos de la clase Rental. • Haciendo un análisis a mayor profundidad se puede determinar que la clase cliente no debe de tener la responsabilidad de calcular el costo de una renta, que realmentele corresponde a la clase Renta. • ¿Cómo debe de quedar la refactorización?
Ejemplo de Mover MĂŠtodo
Ejemplo de Mover Método
• Actualizar la referencia
• Nótese que el método no se eleminó de la clase original. Se escogió una mejor forma de llamarlo.
Extract Class
• Hay un clase que está haciendo el trabajo de dos. Se soluciona creando una nueva clase colocando los métodos y atributos pertinentes en la nueva clase.
Proceso de negocios
• Un proceso de negocios es un conjunto de pasos o actividades relacionadas en las que intervienen gente, información y otros recursos para crear valor. • Los procesos de negocios se integran de pasos que se pueden identificar en el tiempo y el espacio • Tiene un principio y un fin
Procesos de Negocios
• Tienen entradas y salidas
• Tiene un grado de formalización pero no necesitan ser totalmente estructurados
Procesos de negocios
• Los procesos de negocios son la manera más común de mejorar el desempeño de los sistemas de trabajos ya que podemos cambiar el procesos de negocios cambiando, eliminando o agregando pasos al proceso o también cambiando los métodos de cómo se usan estos pasos
Proceso de Negocios
Proceso de Negocio
Modelado Procesos Negocios Investigación
Diseño de Productos
Marketing
Ventas
Fabricación
Concepción
Lanzamiento de Producto
«goal» Mej oramiento de Producto
«people» :Maestro
«physical»
Proceso de taladrado
«resource flow»
:Plato
«process control» «resource flow» Calibrar
Perforar no menos de 10.000 platos semanales : Quantitativ e Goal
Leer instrucción de taladrado
«resource»
«information»
:Máquina
:Instrucciones
203
«physical» Perforado : Plato
Perforar Iniciar taladrado
«achieve»
Taladrar
Modelado de procesos • El modelado de procesos es en si mismo el proceso de negocios. • Es la subdivisión del proceso de negocios en sus elementos básicos con el propósito de poderlos estudiar y mejorarlos
Modelado de Procesos de Negocios โ ข El modelado de procesos es esencial en el desarrollo de los sistemas de informaciรณn ya que nos ayuda a identificar el problema que el sistema de informaciรณn deberรก resolver y la manera en como deberรก resolverlo
Modelo en las Organizaciones
• Modelo es un conjunto de conceptos que permiten construir una representación organizacional de la empresa. • Dos enfoques: – Funcional (Tradicional) – Proceso ORGANIZACIONES TRADICIONALES
ORGANIZACIONES POR PROCESOS
PROCESOS
206
Enfoque Funcional VERTICAL
Enfoque de Procesos HORIZONTAL
Función vs. Proceso • Función: identificada por un verbo. Es continua. – – – – –
Comercializar Fabricar Vender Expedir Comprar
• Proceso:
identificado por verbo+sustantivo. Tiene un inicio y un fin. No es continuo. – – – –
Tomar un pedido Ensamblar un pieza Facturar a un cliente Solicitar materiales
¿Qué es el Modelado del Negocio? • Es una técnica para modelar procesos del negocio. • El Modelo de negocio provee una manera de expresar los procesos del negocios en términos de actividades del negocio y comportamiento colaborativo.
INPUT
OUTPUT
EMPRESA
Procesos de Negocios
• Las aplicaciones empresariales están diseñadas para apoyar la coordinación e integración de procesos que abarcan toda la empresa. • Ejemplos de estas Aplicaciones empresariales se muestran a continuación: • Sistemas de administración de la cadena de suministro (SCM).
Procesos de Negocio
• Sistemas de administración de relaciones con clientes (CRM). • Sistemas de administración conocimiento (Business Intelligence).
del
• Sistemas Integrales que abarcan los procesos de la organización, llamados ERP (Enterprise Resource Plannig).
Procesos de Negocio
• Los Sistemas de Administración del Conocimiento recolectan todo el conocimiento y experiencia relevantes en la empresa y la hacen disponible donde y cuando sea necesaria para apoyar los procesos de la empresa y las decisiones administrativas. TambiÊn enlazan a la empresa a fuentes externas de conocimiento.
Reingeniería de Procesos de Negocios • Es la actividad por medio de la cual se puede implementar el proceso de mejora continua en las organizaciones para lograr la administración de la calidad total. • El proceso de reingeniería es un proceso netamente creativo que debe ser medido para contrastar su efectividad. No puede haber reingeniería si previamente no hay ingeniería de un proceso
Actividad
• En equipos de 3 personas realizar el modelado del proceso de un tipo de baile en particular. • El modelado deberá indicarse a nivel de pies (pasos de baile) e indicar lo que sucede con los brazos, caderas y otros elementos. • El documento de modelado deberá ser capaz de ser ejecutado por otros (claridad)
Pasos de Baile
Pasos de Baile
• El modelado es diferente para cada grupo de personas. Los modelos visuales son más representativos. • Es difícil distinguir en algunos casos el tipo de baile (se necesita de mucho conocimiento). • El llevar un modelado de procesos de negocios no necesariamente garantiza éxito.
Pasos de Baile
• El tener los pasos de baile no nos harĂĄ expertos bailando si no lo adoptamos a nuestras necesidades. • Para poder hacer reingenierĂa de procesos primeramente el proceso debe de estar bien definidos y comprendido.
BPMN • Desarrollado por Business Initiative (BPMI).
Process
Management
• Es un estándar: BPMN Business Process Modeling Notation. • La especificación BPMN 1.0 fue publicada en Mayo del 2004.
Introducción • El objetivo principal de desarrollar BPMN es proveer una notación que sea fácilmente entendible por todos los usuarios de negocio. • Desde los analistas que crean los borradores iniciales de procesos hasta los desarrolladores técnicos que son responsables de implementar la tecnología que ejecutará dichos procesos. Y por supuesto, la gente de negocio que manejará y monitoreará estos procesos.
Introducción
• BPMN define un Diagrama de Procesos de Negocio (BPD), basado en la técnica de “flowcharting” (diagramado de flujos) que ajusta modelos gráficos de operación de procesos de negocio. • Un modelo de procesos de negocio es una red de objetos gráficos, correspondientes a actividades y controles de flujo que definen el orden de ejecución de éstas.
Elementos
Un BPD (diagrama de procesos de negocio) se estructura con un grupo de elementos gráficos. Las cuatro categorías básicas de elementos son:
•
Flow Objects (objetos de flujo) • Connecting Objects (objetos de conexión) • Swimlanes (Carriles) • Artifacts (artefáctos)
Elementos: Flow Objects
Un BPD tiene un peque帽o grupo de elementos centrales (tres), los cuales son los Flow Objects: -
Event (Evento)
-
Activity (Actividad)
- Gateway (Decisi贸n)
Flow Objects: Event •Un evento se representa por un circulo y es algo que “sucede” durante el curso de un proceso de negocio. •Los eventos afectan el flujo del proceso y usualmente tienen un causa (trigger - gatillo) o un impacto (result – resultado). •Los eventos se representan con círculos con el centro abierto para permitir anotar diferentes gatillos o resultados.
Flow Objects: Event โ ข Hay tres tipos de eventos basado en cuรกndo ellos afectan el flujo: - Start (comienzo) - Intermediate (intermedio) - End (final)
Flow Objects: Activity • Una actividad (Activity) se representa por un rectángulo con sus bordes redondeados y es un término genérico para el trabajo que un organización realiza. • Un actividad puede ser atómica o no atómica (compuesta).
Flow Objects: Activity • Los tipos de actividades son: - Task (tareas) - Sub-process (subproceso)
+
Los subprocesos se distinguen por un pequeĂąo + al centro y abajo en la figura.
Flow Objects: Gateway • Un Gateway es representado por la figura de un diamante y se usa para controlar la divergencia de la secuencia de un flujo. • Determina las “tradicionales” decisiones, tanto de bifurcaciones, como uniones y acoplamientos de flujos. • Las anotaciones al interior indican el tipo de comportamiento de control.
Elementos: Connecting Objects • Los objetos de flujo se conectan entre ellos en un diagrama para crear el esqueleto básico de la estructura de un proceso de negocio. • Existen tres Connecting Objects que proveen esta función de conexión. - Sequence Flow - Message Flow - Association
Connecting Objects: Sequence Flow
Un Sequence Flow se representa por una línea sólida con el extremo sólido Es usada para mostrar el orden (secuencia) de la actividad dentro del proceso. Note que el término “control flow” generalmente no es usado en BPMN.
Connecting Objects: Message Flow
Un Message Flow se representa por una lĂnea segmentada con el extremo sin relleno. Es usada para mostrar el flujo de mensajes entre dos participantes de procesos separados (business entities o business roles). En BPMN, dos “Poolsâ€? en el diagrama representan a dos participantes.
Connecting Objects: Association
Una Association se representa por una lĂnea segmentada finamente con el extremo en punta. Se usa para asociar datos, textos u otros artefactos con flujos de objetos. Las asociaciones son usadas para mostrar las entradas y salidas de las actividades.
Ejemplo con formas bรกsicas
Ejemplo de Proceso de Negocio Simple
Ejemplo con formas bรกsicas y marcas internas en las formas
Segmento de un Proceso con mรกs detalles
Elementos: Swimlanes Muchas tĂŠcnicas de modelados utilizan el concepto de swimlanes como mecanismo de organizaciĂłn de actividades en categorĂas visuales separadas para ilustrar las diferentes capacidades funcionales o responsabilidades. BPMN soporta swimlanes con dos constructores principales: - Pool - Lane
Swimlanes : Pool Un Pool representa un Participante en un Proceso.
Nombre
El Pool también actúa como contenedor gráfico para separar al grupo de actividades realizadas por un participante de otros Pools. Los Pools se usan generalmente en el contexto de situaciones B2B.
Swimlanes : Lane Un Lane es una partici贸n dentro de un pool y se extiende a lo largo de todo el pool, tanto vertical como horizontalmente.
Nombre
Nombre
Nombre
Los Lanes son usados para organizar y categorizar actividades.
Swimlanes : Pool & Lane Los Pools se usan cuando los diagramas involucran a dos entidades de negocios o participantes separados. Están físicamente separados en el diagrama. Las actividades dentro de Pools separados son consideradas auto contenidas en el proceso. De esta forma, la secuencia del flujo podría no atravesar el límite del Pool.
Swimlanes : Pool & Lane
Los flujos de mensajes son los mecanismos que muestran la comunicaci贸n entre dos participantes, conectando de esta manera a dos Pools (u objetos dentro de los Pools).
Swimlanes : Pool & Lane
Ejemplo de BPD con Pools
Swimlanes : Pool & Lane Los Lanes son más cercanos a los swimlanes que tradicionalmente se utilizan para modelar procesos de negocio. Los Lanes son usados para separar actividades asociadas con una función específica de la organización. La secuencia de flujos podría atravesar los límites del Lane dentro de un Pool, pero podrían no usarse flujos de mensajes entre Flow Objects en Lanes del mismo Pool.
Swimlanes : Pool & Lane
Segmento de un Proceso con Lanes
Elementos : Artifacts BPMN fue diseñado para permitir a los modeladores y herramientas de modelado algunas flexibilidades para extender la notación básica y proveer la habilidad poder modelar diferentes contextos apropiadamente. No está limitado el número de Artefactos que se pueden agregar a un diagrama para que éste represente más apropiadamente al contexto del negocio. La versión actual de BPMN predefine sólo tres tipos de artefactos.
Elementos : Artifacts Data object Nombre [Estado]
Group
Annotation
Anotaciones de Texto permiten al Modelador agregar informaci贸n adicional
Artifact : Data Object Los Data Objects son un mecanismo para mostrar como las actividades requieren o producen objetos. Se conectan a las actividades a travĂŠs de asociaciones.
Nombre [Estado]
Artifact : Group Un Group es representado por un rectángulo redondeado dibujado con línea segmentada El agrupamiento puede ser usado para propósitos de documentación o análisis, y no afecta la secuencia del flujo.
Artifact : Annotation Las Annotations son mecanismos para que un modelador pueda agregar informaci贸n textual adicional para el lector del diagrama BPMN.
Anotaciones de Texto permiten al Modelador agregar informaci贸n adicional
Artifact Los modeladores puede crear sus propios tipos de artefactos que agreguen mรกs detalle al proceso. Con bastante frecuencia se muestran entradas y salidas de actividades en los procesos. Sin embargo, la estructura bรกsica del procesos, es especificada con actividades, gateways, y flujos de secuencia.
Artifact
Segmento de un Proceso con Lanes. Sin artefactos.
Segmento de un Proceso con Lanes. Con artefactos.
Elementos centrales de los diagramas
Lista completa de elementos
Ejemplo
Elementos del Proceso
Usos Generales de BPMN
Dentro de la variedad de objetivos de modelado de procesos, hay dos tipos básicos que pueden ser creados con un BPD: • Collaborative (Public) B2B Processes • Internal (Private) Business Processes
Collaborative (Public) B2B Processes
Ejemplo proceso colaborativo
Ejemplo Proceso de Alto Nivel
Ejemplo de proceso de alto nivel el cual es b谩sicamente una serie de subprocesos con tres puntos de decisi贸n.
Ejemplo Proceso de Alto Nivel
Ejemplo Proceso de Alto Nivel
Ej. Proceso Interno: Mรกs bajo Nivel
MercadoLibre C2C
PBL
• Problema Based Learning (Aprendisaje Basado en Problemas) es una técnica que permite aprender un tema planteando una problemática. • Es una técnica en donde el alumno construye su propio aprendizaje y por lo cual se éste se convierte en significativo.
PBL
• Esta técnica de aprendizaje basa su funcionamiento en el trabajo colaborativo. • El rol de los alumnos es activo y el profesor juega un papel de facilitador o “coach”. • Se compone de 8 pasos que a continuación se enumeran y describen.
PBL
1. Leer y analizar el problema 2. Enumerar hip贸tesis, ideas y presentimientos 3. Anotar los factores conocidos 4. Anotar los factores desconocidos
PBL
5. Planifique la investigación 6. Emita una declaración del problema. 7. Adquirir información (investigación). 8. Presentar el resultado de la investigación (solución).
PBL
• Dentro de los equipos de trabajos se tienen los siguientes roles: LĂder, Abogado del Diablo, Tracker. • Los roles se deben de turnar de preferencia. Se debe escoger un secretario como rol adicional y en algunos casos un secretario si aplica para el problema.
PBL
• Los Factores Críticos de Éxito de esta técnica se muestran a continuación: • No se deben omitir pasos. • Definir efectivamente los roles. • La incertidumbre es normal en esta técnica.
PBL
• Tener mucha comunicación en el grupo. • Administrar de forma adecuada su tiempo. • Se debe entregar una bitácora durante cada paso. • Se deben resolver conflictos cambiando la actitud.
La Suavecita • La empresa “ La Suavecita” es una empresa con más de 30 años de antigüedad en el ramo de la fabricación de jabones en la ciudad de Morelia. • La empresa, gracias a su liderazgo no sólo se ha mantenido operando en condiciones bastante aceptables, sino que ha sido reconocida por las principales empresas transnacionales que ofrecen dentro de su catálogo de productos jabones y artículos de limpieza de distintas características.
La Suavecita • En la última década, el reconocimiento ha sido tal que dichas empresa transnacionales le han solicitado a “La Suavecita” la maquila de toda su gama de jabones de tocador, de baño, de lavandería, etc.
La Suavecita
• Este incremento en la demanda de producto le ha permitido a la empresa re-invertir su utilidades en la semi-automatización de sus dos líneas de producción principales.
La Suavecita
• Con dicha semi-automatización, la empresa esta en condiciones de fabricar cualquier pedido en donde la mano del hombre se limita a unos cuantas etapas del proceso, como la de recepción de materia prima, el abastecimiento de la materia prima, la definición del producto, la supervisión del proceso de producción, la supervisión del empaque y el embarque.
La Suavecita • Sin embargo recientemente sus principales clientes han empezado a modificar la forma de operar y requerir producto y están obligando a la empresa “La Suavecita” a que de la misma forma que mejoró sus líneas de producción, mejore su área de sistemas.
La Suavecita
โ ข En particular la demanda es por un sistema de informaciรณn integral, mejor conocido como ERP (Enterprise Resource Planning), un sistema de Administraciรณn de la cadena de suministro (SCM), un sistema ESS (Sistema para soporte a ejecutivos) y un CRM (Customer Relationship Management).
La Suavecita • El director de la empresa ha investigado un poco en torno a ellos y además de la inversión y complejidad que representan, se han dado cuenta de que eventualmente deberá modificar sus procesos de negocio para adaptarse a dichos sistemas. • Para “La Suavecita”, esta situación es crítica, ya que son precisamente sus procesos de negocio lo que la han puesto a la vanguardia.
La Suavecita
• Es por ésta razón que se ha acercado a su empresa consultora para que le ayude a tomar una decisión. • Se espera que se entregue la bitácora de la solución hasta el paso 6 al terminar la clase.
Examen La Suavecita
• 20 pts. del examen (por lo que el examen escrito valdrá 50 pts.) se evaluarán de la siguiente forma: • En equipos de 3 personas: • Desarrollar el modelado de procesos de la suavecita utilizando BPMN o UML con extensiones a procesos de negocio.
1.5 Nuevas responsabilidades del directivo informático
• Las responsabilidades informático son:
de
un
directivo
1. Administrar y supervisar la planta técnica y administrativa asignada.
Responsabilidades del Director Informático
• 2. Organizar las funciones, responsabilidades y actividades de la planta técnica y administrativa asignada, manteniendo actualizada y debidamente documentada tal organización, y en especial las funciones, responsabilidades y actividades de los Secretarios Técnicos que lo asistan.
Responsabilidades del Director Informático • 3. Realizar toda incorporación y/o desarrollo de nuevas tecnologías o recursos, ya sea que se adquieran a terceros y/o se desarrollen en la organización • 4. Resguardar y aumentar el capital estructural que la organización adquiera a través del desarrollo de las actividades del Departamento.
Responsabilidades del Director Informático
• 5. Administrar, guardar y preservar las herramientas, hardware y software instalados en las dependencias en las que funcione el Departamento y espacios físicos para alojar equipamiento informático y de comunicaciones que se ponga a disposición para uso de usuarios.
Responsabilidades del Director Informático
• 6. Realizar una memoria informativa anual de las actividades del Departamento, aparte de los informes periódicos que se considere necesario formular o que le sean solicitados. • 7. Convocar periódicamente las reuniones del Departamento y documentar lo tratado en las mismas.
1.6 Ubicación en las diferentes estructuras organizacionales • • • • •
1.6.1 Organización emprendedores. 1.6.2 Organización máquina burocrática. 1.6.3 Organización burocracia divisionalizada. 1.6.4 Organización burocracia profesional. 1.6.5 Organización adhocracia.
Estructuras Organizacionales
• Las organizaciones son agrupamientos humanos que persiguen objetivos comunes, en forma racional y consciente, que a su vez están sujetas a una serie de restricciones y en base a determinados recursos. • La misión de una organización consiste en la expresión de su razón de existir.
Estructura Jerรกrquica Actual
Organización de emprendedores
• La organización de emprendedores son aquellas que surgen a través del análisis de que forma o estructura de trabajo es menor para una empresa. • Cuando varias personas se unen para trabajar en un organización deciden la forma de trabajar que mejor les ayude a cumplir con sus objetivos del negocio.
Organización máquina burocrática.
• La Organización como máquina burocrática es la consecuencia de la industrialización donde se enfatiza la estandarización del trabajo. • Elabora su administración necesitando análisis para diseñar y mantener sus sistemas y de estadarización. La dependencia que se genera de estas les otorga un cierto grado de autoridad informal.
Organizaciones burocráticas
• Existen en nuestra sociedad, en particular en el Estado, unas estructuras que se comportan como “máquinas afinadas”, preparadas para repetir procesos específicos. • Son las llamadas burocracias mecánicas o “máquinas burocráticas”. Peter Drucker, especialista en management, también la llama organización funcional.
Organizaciones Burocráticas
• Es la organización que nace con la Revolución Industrial como consecuencia de la industrialización, donde se enfatiza la estandarización del trabajo y la empresa de producción en masa. • Muchas organizaciones desde fines del siglo XIX hasta nuestros días han mantenido estos tipos de estructuras.
Organizaciones Burocráticas
• Se apoyan en una estructura jerárquica, impersonal, fuertemente centralizada e inflexible. • Se requiere de un sistema permanente de capacitación y adoctrinamiento en todos los niveles, para que en cualquier momento un funcionario pueda reemplazar a otro, sin que ello afecte la eficiencia organizacional.
Organizaciones Burocráticas
• Este tipo de organización requiere una estructura administrativa compleja, pues los numerosos niveles jerárquicos la necesitan a efectos de lograr coordinación entre los sectores funcionales (son numerosos). • La autoridad circula en sentido descendente y existe el respeto al principio de unidad de mando.
O. Burocráticas Divisionadas
• Las organizaciones burocráticas divisionadas son una serie de entidades más bien independientes que se encuentran unidas por una administración suelta. A diferencia de la burocracia profesional, las divisiones se encuentran en la línea media y no en el centro operativo.
Estructuras Organizacionales
• Las organizaciones burocráticas profesionales se apoyan en la estandarización de conocimientos y habilidades bien entrenados para realizar las tareas operativas se entrega poder no solo a ellos si no a quienes los seleccionan y adiestran. • La estructura es muy descentralizada. Los profesionales trabajan en forma independiente.
Orgnizaciones Adhocráticas
• En las organizaciones Adhocráticas los profesionales deben combinar esfuerzos, se forma unidades con grupos de proyectos para llevar acabo su trabajo de innovación, se establece entonces gerentes funcionales, de proyectos e integradores, posiciones de enlace para combinar los esfuerzo entre los distintos grupos y entre otros y las unidades funcionales. • Son organizaciones hechas a la medida.
Estructuras Organizacionales
• Se identifican 2 clases de operativa y administrativa.
adhocracia:
多Preguntas?
Referencias
• Mentzas, G. (2002). A Functional Taxonomy of Computer Based Information Systems, Publicado en: "International Journal of Information Management“, Volume 14, No. 6, December, pp. 397-410. • Laundon y Laundon, Management Information Systems, Managing the Digital Firm, 10th Edición, Estados Unidos, 2008.
Referencias
• Kenneth c. Lauden. Administración de los Sistemas de Información, Organización y Técnicas. • Hernández Jiménez Ricardo. Administración de la Función Informática. factor AFI. Ed. Trillas. • Fine Leonard H. Seguridad en Centros de Cómputo, Políticas y Procedimientos. Ed. Trillas.
Referencias
• Steele, W. (s. f.) Managing Technology, Mc. Graw Hill. • Tapscot, D. y Caston, A. (s. f.) The Paradigm Shift – The New Promise of Information Technology. Mc. Graw Hill. • Wikipedia Fundation, Software Esbelto, http://www.wikipedia.org, Agosto 2009.
Referencia
• Saavedra, M (2007), Curso de Aprendizaje Basado en Problemas (PBL), ITESM Campus Morelia, Diciembre de 2007. • Osscio, E. (2008), La Suavecita, Material del Curso Computación para Negocios, ITESM Campus Morelia, Febrero 2008.
多Preguntas?