Universidad Nacional De La Patagonia San Juan Bosco Facultad De Ingeniería Cátedra: Análisis Y Diseño De Sistemas

  • Uploaded by: Johnny Juarez Juarez
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Universidad Nacional De La Patagonia San Juan Bosco Facultad De Ingeniería Cátedra: Análisis Y Diseño De Sistemas as PDF for free.

More details

  • Words: 13,799
  • Pages: 96
Universidad Nacional de la Patagonia San Juan Bosco Facultad de Ingeniería Cátedra: Análisis y Diseño de Sistemas

Unidad 1: Software y Sistemas



Introducción – Actualmente, el software ha superado al hardware como la clave de muchos sistemas basados en computadoras. Tanto si se utiliza la computadora para llevar un negocio, controlar un producto o capacitar un sistema, el software es el factor que marca la diferencia. Lo que diferencia a una compañía de su competidora es la suficiencia y oportunidad de la información dada por el software (y las bases de datos relacionales). – Un sistema puede ser definido como un conjunto interrelacionado de componentes que se ven como un todo y trabajan juntos para realizar una función común o alcanzar un objetivo. Constituye una combinación compleja de recursos tales como seres humanos, materiales, equipos, hardware (HW), software (SW), datos, etc.



Importancia del Software – Durante las tres primeras décadas de la informática, el principal desafío era el desarrollo de hardware, de forma que se redujera el costo de procesamiento y almacenamiento de datos. – 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.

2



La evolución del Software – Primera Era (1950-1965 aprox.) – Durante los primeros años de desarrollo de las computadoras, el hardware sufrió continuos cambios, mientras que el software se contemplaba simplemente como un añadido. – Existían pocos métodos sistemáticos para la programación. – El desarrollo del software se realizaba virtualmente sin planificación, hasta que los planes comenzaron a descalabrarse y los costos a crecer. – Durante este período se utilizaba la orientación por lotes en la mayoría de los sistemas. – Lo normal era que el HW fuera de propósito general. – El SW se diseñaba a medida para cada aplicación y tenía una distribución relativamente pequeña. – La mayoría del SW se desarrollaba y era utilizado por la misma persona u organización. La misma persona lo escribía, lo ejecutaba y si fallaba, lo depuraba.

3



La evolución del Software – Segunda Era (1965-1975 aprox.) – En la segunda era de la evolución de los sistemas de computadora, la multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre-máquina. – Las técnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del HW y del SW. – Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos en lugar de en minutos. – La segunda era se caracterizó también por el establecimiento del software como producto y la llegada de las casas de SW. El SW ya se desarrollaba para tener una amplia distribución. Todos esos programas tenían que ser corregidos cuando se detectaban fallos, modificados cuando cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos de HW que se hubieran adquirido. Estas actividades se llamaron mantenimiento de software. – El esfuerzo gastado en el mantenimiento de SW comenzó a absorber recursos en una medida alarmante. Aún peor, la naturaleza personalizada de muchos programas los hacía virtualmente imposibles de mantener. Había comenzado una crisis del software.

4



La evolución del Software – Tercer Era (1975-1985 aprox.) – La tercer era se caracteriza por el procesamiento distribuido. – Procesamiento distribuido: varias computadoras, cada una ejecutando funciones concurrentemente y comunicándose con alguna otra. – Incrementó la complejidad de los sistemas informáticos. – Las redes de área local y de área global, las comunicaciones digitales supusieron una fuerte presión sobre los desarrolladores de software. – La tercera era también se caracteriza por la llegada y el amplio uso de los microprocesadores y las computadoras personales. – El hardware de las computadoras se ha convertido rápidamente en un producto estándar, mientras que el software que se suministre con ese hardware, es lo que marca la diferencia.

5



La evolución del Software – Cuarta Era (1985-2000 aprox.) – La cuarta era del software está empezando ahora. – Las tecnologías orientadas a los objetos están desplazando rápidamente a los enfoques de desarrollo de software más convencionales en muchas áreas de aplicación. – Las técnicas de cuarta generación para el desarrollo de software ya están cambiando la forma en que algunos segmentos de la comunidad informática construyen los programas de computadora. – Conforme nos movemos en la Cuarta era, continúan intensificándose los problemas asociados con el SW de computadoras:  La sofisticación del HW ha dejado desfasada nuestra capacidad de construir SW que pueda explotar el potencial del HW.  Nuestra capacidad de construir nuevos programas de aplicación no puede dar abasto a la demanda de nuevos programas.  Nuestra capacidad de mantener programas existentes está amenazada por el mal diseño y el uso de recursos inadecuados.

– Como respuesta a la crisis del software, muchas industrias están adoptando prácticas de Ingeniería de software.

6



La evolución del Software – Etapa actual (principios del tercer milenio) – Componentes y arquitecturas software reutilizables – Web semántica: Web extendida y basada en el significado, se apoya en lenguajes universales – Computación ubicua: integración de la informática en el entorno de la persona – Interfaces multimodales: es un mismo servicio que se presta independientemente de la terminal por la que se accede



Problemas persistentes en la evolución – – – –



El SW nunca explota las posibilidades plenas del HW El desarrollo del SW no es tan rápido como su demanda La sociedad depende de las computadoras y necesitamos SW fiable Los programas no son escalables ni mantenibles por culpa de diseños pobres y recursos inadecuados

¿Aumentan estos problemas?

7

El Software - Definición

• –

Existen varias definiciones según Pressman, algunas serían:

1.

Instrucciones (programas de computadora) que cuando se ejecutan proporcionan una función y el comportamiento deseado Estructuras de datos que facilitan a los programas manipular adecuadamente la información Documentos que describen la operación y el uso de programas

2. 3. 

Para poder comprender lo que es el software es importante examinar las características que lo diferencian de otras cosas que los hombres pueden construir.

8

El Software – Características

• –

1. –

2. 3.

El SW es un elemento del sistema que es lógico, en lugar de físico. Por lo tanto, tiene características considerablemente distintas a las del HW: El Software se desarrolla, no se fabrica en el sentido clásico Ambas actividades requieren la construcción de un producto, pero los métodos son diferentes. Los costes del software se encuentran en la ingeniería. El Software no se estropea, se deteriora La mayoría del software se construye a medida, en vez de ensamblar componentes existentes.

Según Pressman:

• – – –

Curva de fallos del Hardware. Curva ideal de fallos del Software. Curva real de fallos del Software.

9

Curvas de Fallos - Curva de Fallos del HW



La figura siguiente describe para el HW, la proporción de fallos como una función del tiempo. Esa relación, es denominada frecuentemente “curva de la bañera”.



Estropeado

Defectos fabricación

Indice de fallos

Obsolescencia

Tiempo

10

Curvas de Fallos (Cont.) - Curva idealizada de fallos del software – El SW no es susceptible a los males del entorno que hacen que el HW se estropee. Por lo tanto, en teoría, la curva de fallos para el SW tendría la forma que muestra la siguiente figura. – Los defectos no detectados harán que falle el programa durante las primeras etapas de su vida. Una vez que se corrigen y suponiendo que no se introducen nuevos errores, la curva se aplana. Esa figura es una gran simplificación de los modelos reales de fallos de SW. Sin embargo la implicación es clara, el SW no se estropea. ¡Pero se deteriora!

Defectos fabricación

Indice de fallos



Obsolescencia

Mismo nivel hasta obsoleto

Tiempo 11

Curvas de Fallos (Cont.) - Curva real de fallos del software

• – –

Durante su vida, el software sufre cambios (mantenimiento). Conforme se hacen los cambios, es bastante probable que se introduzcan nuevos defectos, haciendo que la curva de fallos tenga picos como se ve en la figura.

Defectos fabricación

Indice de fallos

Cambio

Cambio

Cambio

Obsolescencia Curva ideal

12



Componentes del Software – Las componentes del software se crean mediante una serie de traducciones que hacen corresponder los requisitos del cliente con un código ejecutable en la máquina. – Se traduce un modelo de requisitos (Prototipo) a un diseño. Se traduce el diseño del software a una forma de lenguaje que especifica las estructuras de datos, los atributos procedimentales y los requisitos que atañen al software. La forma en lenguaje es procesada por un traductor que la convierte en instrucciones ejecutables en máquina. – La reusabilidad es una característica importante para un componente de software de alta calidad. Es decir, el componente debe diseñarse e implementarse para que pueda volver a usarse en otros programas diferentes. – Los componentes de software se construyen mediante un lenguaje de programación que tiene un vocabulario limitado, una gramática definida explícitamente y reglas bien formadas de sintaxis y semántica.

13



Aplicaciones del software – El SW puede aplicarse en cualquier situación en la que se haya definido previamente un conjunto específico de pasos procedimentales. – Para determinar la naturaleza de una aplicación de SW hay dos factores importantes que se deben considerar: el contenido y el determinismo de la información:  El contenido se refiere al significado y a la forma de la información de entrada y salida.  El determinismo de la información se refiere a la predecibilidad del orden y el tiempo de llegada de datos.



Software de Sistemas – El SW de sistemas es un conjunto de programas que han sido escritos para servir a los otros programas. P.e. compiladores, editores y utilidades de gestión de archivos. – Algunas características son:  Fuerte interacción con el HW  Operación concurrente  Recursos compartidos  Gestión de procesos complicada  Estructura de datos complejas 14



Software de Tiempo Real – El SW que mide, analiza, controla sucesos del mundo real conforme ocurren, se denomina de Tiempo Real. – Entre los elementos del SW de Tiempo Real se incluyen:  Un componente de adquisición de datos que recolecta y da formato a la información recibida del entorno externo  Un componente de análisis que transforma la información según lo requiera la aplicación  Un componente de control/salida que responda al entorno externo  Un componente de monitorización que coordina todos los demás componentes, de forma que pueda mantenerse la respuesta en tiempo real – Algunas características son:  Tiempo de respuesta crítico: magnitud de milisegundos  Interacción directamente con dispositivos físicos y sensores  Requisitos de rendimiento críticos  Programación de bajo nivel  Concurrencia 15



Software de Gestión – El procesamiento de información comercial constituye la mayor de las áreas de aplicación de SW. – Algunos ejemplos son:  Proceso de información comercial (nóminas, clientes, inventarios): manejan gran volumen de datos, complejidad de la información  Sistemas transaccionales: soportan las operaciones diarias de un negocio (pedidos, compras, etc.); los requisitos, los datos y el procesamiento se conoce y está bien estructurado  Análisis de datos: Aplicaciones de consultas (query), Datawarehouse (almacenamiento de versiones históricas de entradas a la base de datos, registros de transacciones y datos históricos)  Soporte a la toma de decisiones: herramienta de usuario final, análisis “what – if”, estadísticas, tendencias, etc.  Software de computadoras personales: herramientas de escritorio, SW para ocio, etc.  Aplicaciones Web: SW accedido a través de un browser

16



Software de Ingeniería y Científico – El SW de ingeniería y científico está caracterizado por los algoritmos de manejo de números. Van desde la astronomía a la vulcanología. – Algunas características son:  Algoritmos de tratamiento numérico: simulación, estadística, CAD  Diseño de algoritmos y estructuras de datos  Cálculo intensivo  Paralelización



Software Empotrado – Los productos inteligentes se han convertido en algo común en casi todos los mercados de consumo e industriales. – El SW empotrado reside en memoria de sólo lectura y se utiliza para controlar productos y sistemas de los mercados industriales y de consumo. P.e. el control de las teclas de un horno de microondas.

17



Software de Computadoras Personales – El mercado del SW de las computadoras personales ha germinado en la tercer era.  El procesamiento de textos  Las hojas de cálculo  Los gráficos por computadora  Entretenimientos  Gestión de bases de datos  Aplicaciones financieras, de negocios y personales  Redes o acceso a bases de datos externas son sólo algunas de cientos de aplicaciones.



Software de Inteligencia Artificial – El software de inteligencia artificial (IA) hace uso de algoritmos no numéricos para resolver problemas complejos para los que no son adecuados el cálculo o el análisis directo. – Algunos ejemplos son:  Sistemas expertos  Reconocimiento de patrones  Demostradores de teoremas 18



Crisis del Software – Muchos observadores de la industria han caracterizado los problemas asociados con el desarrollo del SW como una crisis. Sin embargo, lo que realmente tenemos puede ser algo bastante diferente. – Si hablamos de crisis del SW, el término alude a un conjunto de problemas que aparecen en el desarrollo del SW de computadoras. – Cabe aclarar que los problemas no se limitan al SW que no funciona correctamente. – El mal abarca los problemas asociados a:  Cómo desarrollar software  Cómo mantener el volumen cada vez mayor de software existente  Cómo poder esperar mantenernos al corriente de la demanda creciente de software. – Aunque se puede criticar la referencia a crisis, las frases resultan útiles por referirse a verdaderos problemas que se encuentran en todas las áreas del desarrollo del SW.

19

Problemas

• –

Los problemas que afligen al desarrollo del software se pueden caracterizar bajo muchas perspectivas diferentes, pero los responsables de los desarrollos de software se centran sobre los aspectos de fondo:

1.

La planificación y estimación de costos son frecuentemente muy imprecisas La productividad de la comunidad del software no se corresponde con la demanda de sus servicios La calidad del software no llega a veces a ser aceptable

2. 3.

20



Problemas (Cont.) – Tales problemas son sólo las manifestaciones más visibles de otras dificultades del software:  No tenemos tiempo de recoger datos sobre el proceso de desarrollo del software. Sin datos históricos como guía, la estimación no ha sido buena y los resultados previstos muy pobres. Sin una indicación sólida de la productividad, no podemos evaluar con precisión la eficacia de las nuevas herramientas, técnicas o estándares.  La insatisfacción del cliente con el sistema terminado se produce demasiado frecuentemente. Los proyectos de desarrollo del SW se acometen frecuentemente con sólo una vaga indicación de los requisitos del cliente. Normalmente, la comunicación entre el cliente y el que desarrolla el SW es muy escasa.  La calidad del software es normalmente cuestionable. Hemos empezado a comprender recientemente la importancia de la prueba sistemática y técnicamente completa del SW.  El SW existente puede ser muy difícil de mantener. La tarea de mantenimiento del SW se lleva la mayor parte de todo el dinero invertido en el SW. El mantenimiento no se ha considerado un criterio importante en la aceptación del SW. – Todos los problemas pueden corregirse  Enfoque de ingeniería al desarrollo del software, junto con la mejora continua de las técnicas y de las herramientas. 21



Causas – Los problemas asociados con la crisis de SW se han producido por el propio carácter del SW y por los errores de las personas encargadas del desarrollo del mismo. – El SW es un elemento lógico y por lo tanto, el éxito se mide por la calidad de una única entidad en vez de por muchas entidades fabricadas. El SW no se rompe. Si se encuentran fallos, lo más probable es que se introdujeran inadvertidamente durante el desarrollo y no se detectaran durante la prueba. Reemplazamos las partes defectuosas durante el mantenimiento, pero tenemos muy pocas piezas de repuesto, incluso ninguna  el mantenimiento incluye normalmente la corrección o modificación de diseño. – Frecuentemente, los responsables del desarrollo del SW han sido ejecutivos de nivel medio y alto, sin conocimiento de SW. Un antiguo axioma de gestión dice: Un buen gestor puede gestionar cualquier proyecto si está dispuesto a aprender nuevas técnicas que pueden utilizarse para medir el desarrollo del proyecto, a aplicar métodos efectivos de control, a ignorar la mitología y a llegar a conocer la tecnología que cambia rápidamente. – Todos nos resistimos al cambio. Sin embargo, es verdaderamente irónico que, mientras el potencial de cálculo (HW) experimenta enormes cambios, la gente de SW, responsable de aprovechar dicho potencial, se oponga a los cambios cuando se discuten y se resista al cambio cuando se introduce. Puede que ésta sea la causa real de la 22 crisis del SW.



Mitos del Software – Las actitudes y hábitos son difíciles de modificar y, cuando vamos hacia la quinta década del SW, todavía se cree en algunos de los mitos del SW.



Mitos de Gestión – Mito: Tenemos un libro que está lleno de estándares y procedimientos para construir SW. ¿No le brinda a mi gente 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 esas preguntas es NO. – Mito: Nuestra gente dispone de las herramientas de desarrollo de software más avanzadas  les compramos las PC’s más nuevas. – Realidad: Se necesita mucho más que el último modelo de computadora para desarrollar SW de gran calidad. – Mito: Si fallamos en la planificación podemos añadir más programadores y recuperar el tiempo perdido. – Realidad: El desarrollo de SW no es un proceso mecánico. Añadir gente a un proyecto de SW retrasado, lo retrasa aún más. 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 sólo de una manera planificada y bien coordinada. 23



Mitos del Cliente – Mito: Una declaración general de los objetivos es suficiente para comenzar a escribir los programas – Realidad: Una mala definición inicial es la principal causa del trabajo baldío en SW. Es esencial una descripción formal y detallada del ámbito de la información, funciones, rendimiento, interfaces, ligaduras del diseño y criterios de validación. Estas características pueden determinarse sólo después de una exhaustiva comunicación entre el cliente y el analista. – Mito: Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el SW es flexible. – Realidad: Es verdad que los requisitos del SW cambian, pero el impacto del cambio varía según el momento en que se introduzca.

Impacto de Cambio

Definición

Desarrollo

Después de la Entrega

24



Mitos del Desarrollador – Mito: Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado. – Realidad: Alguien dijo una vez Cuanto más pronto se comience a escribir código, más se tardará en terminarlo. Entre el 50% y el 70% de todo el esfuerzo dedicado a un programa se realizará después de que se le haya entregado el SW 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 SW, la revisión técnica formal. La revisión del SW es un filtro de calidad que se ha comprobado que es más efectivo que la prueba para encontrar ciertas clases de defectos de SW. – Mito: Lo único que se entrega al terminar el proyecto es el programa funcionando. – Realidad: Un programa que funciona es sólo una parte de una configuración del SW que incluye todos los elementos como: el plan, la especificación de requisitos, diseño, estructuras de datos, especificación de prueba.  El reconocimiento de las realidades del SW es el primer paso hacia la formulación de soluciones prácticas para su desarrollo. 25

Atributos de un buen producto de SW

• –

Así como los servicios que proveen, los productos de SW tienen un cierto número de atributos asociados que reflejan la calidad de ese software. Estos atributos no están directamente asociados con lo que el software hace. Más bien, reflejan su comportamiento durante su ejecución, en la estructura y organización del programa fuente y en la documentación asociada.



El conjunto específico de atributos que se espera de un sistema de software depende obviamente de su aplicación. Esto se generaliza en el conjunto de atributos que se describe a continuación, el cual tiene las características esenciales de un sistema de software bien diseñado.



Existen diferentes aspectos de calidad:  Interna: medible a partir de las características intrínsecas, como el código fuente  Externa: medible en el comportamiento del producto, como en una prueba. Son los atributos más difíciles, ya que no pueden ser medidos de manera directa.

26



Atributos de un buen producto de SW (Cont.) 1.

Factores Externos: Detectados por los usuarios. Son los factores que realmente interesan (objetivo):   



 

Facilidad de mantenimiento: debe poder evolucionar para adaptarse a las necesidades de cambio de los clientes Confiabilidad: no debe causar daños físicos o económicos en el caso de fallo del sistema. Fiabilidad, seguridad y protección Eficiencia: capacidad del SW para proporcionar un desempeño apropiado, en relación con la cantidad de recurso utilizado, bajo condiciones establecidas Usabilidad: Esfuerzo necesario para aprender, operar, preparar entradas e interpretar la salida de un programa. Debe tener una interfaz de usuario apropiada y documentación adecuada Reusabilidad: capacidad de que un SW pueda utilizarse en un contexto diferente al de su creación Portabilidad: facilidad de transferir productos SW a diferentes plataformas

27



Atributos de un buen producto de SW (Cont.) 2.

Factores Internos: Únicamente percibidos por los desarrolladores. Son un medio para conseguir la calidad externa:         

Facilidad de traza Modularidad Tolerancia a fallos Eficiencia de ejecución Eficiencia de almacenamiento Legibilidad Facilidad de expansión Independencia del sistema y HW Estandarización de datos y comunicaciones

28



Paradigmas de la Ingeniería de Software – El mal que ha infectado el desarrollo del SW no va a desaparecer de la noche a la mañana. – Reconocer los problemas y sus causas y demoler los mitos del SW son los primeros pasos hacia las soluciones. Pero las propias soluciones tienen que:  Proporcionar asistencia práctica a la persona que desarrolla SW  Mejorar la calidad del software  Permitir al mundo del SW mantenerse en paz con el mundo del HW – No existe un único enfoque mejor para solucionar el mal del SW. Sin embargo, podemos conseguir una disciplina para el desarrollo del software  llamada Ingeniería del Software:  Mediante la combinación de métodos completos para todas las fases del desarrollo del SW  Mejores herramientas para automatizar estos métodos  Bloques de construcción más potentes para la implementación del SW  Mejores técnicas para la garantía de calidad de software  Una filosofía predominante para la coordinación, control y gestión 29



Ingeniería de software – Definición – La ingeniería del software (IS) surge de la ingeniería de sistemas y de HW. Abarca un conjunto de tres elementos clave:  Métodos  Herramientas  Procedimientos – Estos tres elementos facilitan al gestor controlar el proceso del desarrollo del software y suministrar a los que practiquen dicha ingeniería las bases para construir SW de alta calidad de una forma productiva. – En los párrafos que siguen, examinaremos brevemente cada uno de estos elementos.

30



Ingeniería de software – Definición (Cont.) – Los métodos de la ingeniería de software indican cómo construir técnicamente el software. – Abarcan un amplio espectro de tareas que incluyen:  Planificación y estimación de proyectos  Análisis de requerimientos del sistema y del software  Diseño de estructuras de datos, arquitectura de programas y procedimientos algorítmicos  Codificación  Prueba  Mantenimiento – Los métodos de la ingeniería de software introducen frecuentemente una notación especial orientada a un lenguaje o gráfica y un conjunto de criterios para calidad de SW. En resumen el método consiste en:  Formulación del problema  Análisis del problema  Búsqueda de soluciones  Elección de la solución más adecuada  Especificación de la solución 31



Ingeniería de software – Definición (Cont.) – Las herramientas de la IS suministran un soporte automático o semiautomático para los métodos. Hoy existen herramientas para soportar cada uno de los métodos mencionados anteriormente. – Los procedimientos de la IS son el pegamento que junta los métodos y las herramientas y facilita un desarrollo racional y oportuno del SW. Los procedimientos definen la secuencia en la que se aplican los métodos, las entregas (documentos, informes, etc.), los controles que ayudan a asegurar la calidad y coordinar los cambios, y las directrices que ayudan a los gestores del SW a evaluar el progreso. – La IS 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 IS. La elección de un paradigma para la IS 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. – El trabajo que se asocia a la IS se puede dividir en tres fases genéricas: Definición, Desarrollo y Mantenimiento. Con independencia del área de aplicación, tamaño o complejidad del proyecto. Cada fase se enfrenta con una o varias cuestiones de las destacadas anteriormente. 32



Fases de la IS – La Fase de Definición se centra sobre el qué. Es decir, durante la definición, quien desarrolla el SW intenta identificar qué información ha de ser procesada, qué función y rendimiento se desea, qué comportamiento del sistema, qué interfases van a ser establecidas, qué restricciones de diseño existen, y qué criterios de validación se necesitan para definir el sistema correcto. Aunque los métodos dependen del paradigma, las tareas principales son: ingeniería de sistemas (o de información), la planificación del proyecto de SW y el análisis de los requisitos. – La Fase de Desarrollo se centra en el cómo. Es decir, durante el desarrollo un ingeniero de software intenta definir cómo han de diseñarse las estructuras de datos, cómo ha de implementarse la función como una arquitectura del SW, cómo han de implementarse detalles procedimentales, cómo ha de realizarse la prueba. Las tareas son: diseño del SW, generación de código y prueba de SW. – La Fase de Mantenimiento se centra en el cambio asociado a la corrección de errores (correctivo), a las adaptaciones requeridas a medida que evoluciona el entorno de del software (adaptativo), a cambios debidos a las mejoras producidas por requisitos cambiantes del cliente (perfectivo) y a mejoras en las características internas del producto para hacerlo más mantenible (preventivo).

33



Herramientas CASE – Son herramientas que combinan software, hardware y bases de datos de la ingeniería de software para crear un entorno que facilite el desarrollo del software. Ofrecen soporte al proceso SW automatizando algunas de sus actividades. – En cuanto a la clasificación de las herramientas CASE, Sommerville establece que se pueden realizar diferentes clasificaciones en función de diversas perspectivas:  Perspectiva funcional: se clasifican de acuerdo a su función específica en herramientas de planificación, herramientas de soporte, herramientas de documentación, etc.  Perspectiva de proceso: se clasifican de acuerdo a las actividades del proceso SW que soportan.  Perspectiva de integración: se clasifican de acuerdo a cómo se organizan en unidades de integración que ofrecen soporte a una o más actividades del proceso SW.

34



Beneficios de las herramientas CASE – Facilitan la verificación y mantenimiento de la consistencia de la información – Facilitan el establecimiento de estándares en el proceso de desarrollo y documentación – Facilitan el mantenimiento del sistema y las actualizaciones de su documentación – Facilitan la aplicación de las técnicas de una metodología – Brindan disponibilidad de funciones automatizadas tales como: obtención de prototipos, generación de código, generación de pantallas e informes, generación de diseños físicos de bases de datos, verificadores automáticos de consistencia – Facilitan la aplicación de técnicas de reutilización y reingeniería – Facilitan la planificación y gestión de los proyectos

35



Ciclos de vida del desarrollo de software – El Ciclo de Vida del Desarrollo de software es un proceso por el cual los analistas de sistemas, los ingenieros de software, los programadores y los usuarios finales (stakeholders) elaboran sistemas de información y aplicaciones informáticas. – Para realizar un efectivo análisis de sistemas necesitamos herramientas de modelización  métodos. – Los propósitos de tener un ciclo de vida del proyecto son:  Definir las actividades a realizar en el proyecto de desarrollo del sistema.  Lograr consistencia entre los distintos proyectos de desarrollo en la misma organización.  Proveer puntos de control al administrador del proyecto que lo guíen en la toma de decisiones.

36



Tipos de modelos de procesos - Modelo Lineal o Secuencial: Ciclo de Vida Clásico – Han sido ampliamente utilizados:  Ofrecen grandes facilidades a los gestores para controlar el progreso de los proyectos  Proponen un enfoque sistemático, secuencial, para el desarrollo del SW  Comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento  Fases separadas en la especificación y el desarrollo

– La filosofía de estos modelos de proceso no es realista:  No se ajusta al proceso de desarrollo de SW  Raramente sigue un flujo secuencial sino que exige diversas iteraciones  No ofrece un soporte adecuado a las técnicas de desarrollo basadas en objetos y componentes

37



Tipos de modelos de procesos – Ciclo de Vida Clásico – También llamado modelo en cascada, exige un enfoque sistemático y secuencial del desarrollo del software que comienza en un nivel del sistema y progresa a través del análisis, diseño, codificación, prueba y mantenimiento.

– Modelizado a partir del ciclo de vida de una ingeniería, el paradigma del ciclo de vida abarca las siguientes actividades:  Ingeniería y análisis de sistemas: Debido a que el software es siempre parte de un sistema mayor, el trabajo comienza estableciendo los requisitos de todos los elementos del sistema y luego asignando algún subconjunto de estos requisitos al software. La ingeniería y el análisis de sistemas abarca los requisitos globales del sistema con una pequeña cantidad de análisis y de diseño a un nivel superior. 38



Tipos de modelos de procesos – Ciclo de Vida Clásico (Cont.)  Análisis de los requisitos del SW: El proceso de recopilación de los requisitos se centra e intensifica especialmente para el SW. Para comprender la naturaleza de los programas que hay que construir, el ingeniero de software debe comprender el ámbito de la información del software, así como la función, el rendimiento y las interfaces requeridas. Los requisitos, tanto del sistema como del SW, se documentan y se revisan con el cliente.  Diseño: El diseño de SW es realmente un proceso multipaso que se enfoca sobre cuatro atributos distintos:  La estructura de los datos  La arquitectura del software  El detalle procedimental  La caracterización de la interfaz El proceso de diseño traduce los requisitos en una representación del SW que pueda ser establecida de forma que obtenga la calidad requerida antes de que comience la codificación (SQA). El diseño se documenta y es parte de la configuración del SW.  Codificación: El diseño debe traducirse en una forma legible para la máquina. El paso de codificación realiza esta tarea. Si el diseño se realiza de una manera detallada, la codificación puede realizarse mecánicamente. 39



Tipos de modelos de procesos – Ciclo de Vida Clásico (Cont.)  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 hayan probado, y en las funciones externas, realizando pruebas que aseguren que la entrada definida produce los resultados que realmente se requieren.  Mantenimiento: El SW indudablemente sufrirá cambios después de que se entregue al cliente. Los cambios ocurrirán debido a que se hayan encontrado errores, a que el software debe adaptarse a cambios de entorno externo, o debido a que el cliente requiera ampliaciones funcionales o del rendimiento  El mantenimiento de software aplica cada uno de los pasos precedentes del ciclo de vida a un programa existente en vez de a uno nuevo.

40



Tipos de modelos de procesos – Ciclo de Vida Clásico - Problemas  Los proyectos reales raramente siguen el flujo secuencial que propone el modelo. Siempre hay iteraciones y se crean problemas en la aplicación del paradigma.  Normalmente es difícil para el cliente establecer al principio explícitamente todos los requisitos. El ciclo de vida clásico lo requiere y tiene dificultades en acomodar posibles incertidumbres que pueden existir al comienzo de muchos proyectos.  No estará disponible una versión operativa del programa hasta llegar a las etapas finales del proyecto. Un error importante no detectado hasta que el programa esté funcionando puede ser desastroso.  Los responsables del desarrollo del SW siempre se retrasan innecesariamente, ya que algunos miembros del equipo del proyecto deben esperar a otros para completar tareas dependientes.  Es un modelo monolítico  hasta llegar a las etapas finales del desarrollo no habrá una versión operativa del programa, lo que influye negativamente en el descubrimiento a tiempo de errores o incongruencias en los requisitos.



Consideraciones finales – – – –

Tiene un lugar destacado en la IS Proporciona una plantilla para adecuar otros métodos Es muy utilizado Tiene problemas pero es mejor que desarrollar sin guías

41



Tipos de modelos de procesos – Ciclo de Vida Estructurado

42



Tipos de modelos de procesos – Ciclo de Vida Estructurado (Cont.) – Actividad 1: La encuesta – Empieza cuando el usuario solicita que una o más partes de su sistema se automaticen. Los objetivos son:  Identificar a los usuarios responsables y crear un campo de actividad inicial del sistema. Esto puede comprender la conducción de una serie de entrevistas para determinar qué usuarios estarán comprendidos.  Identificar las deficiencias actuales en el ambiente del usuario. Esto en general comprenderá una lista de funciones que hacen falta o que se están llevando a cabo insatisfactoriamente en el sistema actual.  Establecer metas y objetivos para un sistema nuevo. Esto puede ser una simple lista narrativa que contenga las funciones existentes que deben reimplementarse, las nuevas que necesitan añadirse y los criterios de desempeño del nuevo sistema.  Determinar si es factible automatizar el sistema y, de ser así, sugerir escenarios aceptables. Esto implicará algunas estimaciones bastantes rudimentarias y aproximadas del costo y tiempo necesarios para construir un sistema nuevo, y los beneficios que se derivarán de ello.  Preparar el esquema que se usará para guiar el resto del proyecto. Este esquema incluirá toda la información que se lista anteriormente, además de identificar al administrador responsable del proyecto. También pudiera describir los detalles del ciclo de vida que seguirá el resto del proyecto. 43



Tipos de modelos de procesos – Ciclo de Vida Estructurado (Cont.) – Actividad 2: El análisis de sistemas – El propósito principal de la actividad de análisis es transformar sus dos entradas principales, las políticas del usuario y el esquema del proyecto, en una especificación estructurada. – Actividad 3: El diseño de sistemas – La actividad de diseño se dedica a asignar porciones de la especificación a procesadores adecuados y a labores apropiadas dentro de cada procesador. Dentro de cada labor, la actividad de diseño se dedica a la creación de una jerarquía apropiada de módulos de programas y de interfases entre ellos para implementar la especificación creada en el análisis. Además, la actividad de diseño se ocupa de la transformación de modelos de datos de entidad-relación en un diseño de base de datos. – Actividad 4: Implantación ó Implementación – Esta actividad incluye la codificación y la integración de módulos en un esquema progresivamente más completo del sistema final. – Actividad 5: Generación de pruebas de aceptación – La especificación estructurada debe contener toda la información necesaria para definir un sistema que sea aceptable desde el punto de vista del usuario. Por eso, una vez generada la especificación, puede comenzar la actividad de producir un conjunto de casos de prueba de aceptación desde la especificación estructurada. 44



Tipos de modelos de procesos – Ciclo de Vida Estructurado (Cont.) – Actividad 6: Garantía de calidad – La garantía de calidad también se conoce como la prueba final o la prueba de aceptación. Esta actividad requiere como entradas datos de la prueba de aceptación generada en la actividad 5 y el sistema integrado producido en la actividad 4. – Actividad 7: Descripción del procedimiento – El resultado es el manual para el usuario. – Actividad 8: Conversión de bases de datos – En algunos proyectos, la conversión de bases de datos involucra más trabajo que el desarrollo de programas de computadora para el nuevo sistema. En otros casos, pudiera no haber existido una base de datos que convertir. En caso general, esta actividad requiere como entrada la base de datos actual del usuario, al igual que la especificación del diseño producida por medio de la actividad 3. – Actividad 9: Instalación – La actividad final es la instalación, sus entradas son el manual del usuario producido en la actividad 7, la base de datos convertida que se creó con la actividad 8 y el sistema aceptado producido por la actividad 6.

45



Tipos de modelos de procesos – Modelo V – Es una variación del modelo en cascada que demuestra cómo se relacionan las actividades de prueba con las de análisis y desarrollo. Presenta una implementación ascendente. – Se puede identificar una ventaja principal con respecto al Modelo Cascada, y se refiere a que involucra chequeos de cada una de las etapas del modelo de cascada. – Demuestra que el desarrollo de las pruebas se efectúa de manera síncrona con el desarrollo del programa. Mientras que el modelo clásico centra su atención en los documentos y artefactos producidos, el modelo en V lo hace en la actividad y exactitud. – No contempla la posibilidad de retornar a etapas inmediatamente anteriores, cosa que en la realidad puede ocurrir. – Se toma toda la complejidad del problema de una vez y no en iteraciones o ciclos de desarrollo, lo que disminuye el riesgo.

46



Tipos de modelos de procesos – Modelos Basados en Prototipos – Un prototipo es un modelo experimental de un sistema o de un componente de un sistema que tiene los suficientes elementos que permiten su uso. Es una solución parcial que describe la interacción entre el hombre y la máquina, mostrando parte de su funcionalidad no optimizada. Este modelo presenta un componente iterativo que facilita involucrar a los clientes/usuarios en el desarrollo del SW para ayudar a éstos a comprender los requisitos. – Pueden presentar diferentes enfoques en la utilización de los prototipos en el ciclo de vida:  Enfoque desechable: el propósito del prototipo es validar algún aspecto del sistema, sirviendo, como herramienta auxiliar a la especificación de requisitos y el diseño. Este enfoque suele derivar en un modelo lineal una vez que el prototipo ha cumplido su misión.  Enfoque evolutivo: el prototipo se utiliza como alternativa de ciclo de vida. Es la base de los modelos de proceso evolutivos.  Enfoque mixto: conocido como prototipado operativo, combina ambos tipos de prototipos.

47



Tipos de modelos de procesos – Ciclo de vida de Prototipos – Un cliente a menudo define un conjunto de objetivos generales para el software pero no identifica los requisitos detallados de entrada, procesamiento o salida. En otros casos, el responsable del desarrollo del software puede no estar seguro de la eficacia de un algoritmo, de la capacidad de adaptación del sistema operativo, o de la forma en que debería tomarse la interacción hombre-máquina. En éstas y en muchas otras situaciones, un paradigma de construcción de prototipos puede ofrecer el mejor enfoque. – El paradigma de construcción de prototipos comienza con la recolección de requisitos. El desarrollador y el cliente encuentran y definen los objetivos globales para el software, identifican los requisitos conocidos, y las áreas del esquema en donde es obligatoria más definición. Entonces aparece un diseño rápido. El diseño rápido se centra en una representación de esos aspectos del software que serán visibles para el usuario/cliente. El diseño rápido lleva a la construcción de un prototipo. El prototipo lo evalúa el usuario/cliente y lo utiliza para refinar los requisitos de SW a desarrollar. La interacción ocurre cuando el prototipo satisface las necesidades del cliente, a la vez que permite que el desarrollador comprenda mejor lo que necesita hacer.  El prototipo puede servir como primer sistema pero se recomienda tirar. 48



Tipos de modelos de procesos – Ciclo de vida de Prototipos Problemas 1.

2.

3. 4.

El cliente ve lo que parece ser una versión de trabajo del software, sin tener conocimiento que es el prototipo y sin saber que con prisa de hacer que funcione, no se ha tenido en cuenta la calidad del software global o la facilidad de mantenimiento a largo plazo. Cuando se le informa que el producto se debe construir otra vez para que se puedan mantener los niveles altos de calidad, el cliente no lo entiende y pide que se apliquen unos pequeños ajustes para que se pueda hacer del prototipo un producto final. De forma demasiado frecuente la gestión de desarrollo de SW es muy lenta. El desarrollador a menudo hace compromisos de implementación para hacer que el prototipo funcione rápidamente. Se puede utilizar un sistema operativo o lenguaje de programación inadecuado simplemente porque está disponible y porque es conocido. Un algoritmo eficiente se puede implementar simplemente para demostrar capacidad. Después de algún tiempo, el desarrollador debe familiarizarse con estas selecciones, y olvidarse de las razones por las que son inadecuadas. La selección menos ideal ahora es una parte integral del sistema. Al usuario le desagrada que se deseche código. Relajación de los desarrolladores. 49



Tipos de modelos de procesos – Ciclo de vida de Prototipos – Problemas (Cont.) – Aunque pueden surgir problemas, la construcción de prototipos puede ser un paradigma efectivo para la ingeniería de software. La clave es definir las reglas del juego al comienzo; es decir, el cliente y el desarrollador se deben poner de acuerdo en que el prototipo que se construya para servir como un mecanismo de definición de requisitos. Entonces se descarta, y se realiza la ingeniería del software con una visión hacia la calidad y la facilidad de mantenimiento.

50

Tipos de modelos de procesos – Modelos basados en Métodos Formales

• –



– 1. 2. 3. – 1. 2. 3.

El modelo de métodos formales comprende un conjunto de actividades que conducen a la especificación matemática del software de computadora. Los métodos formales permiten que un ingeniero de software especifique, desarrolle y verifique un sistema basado en computadora aplicando una notación rigurosa y matemática. Ventajas: La ambigüedad, lo incompleto y la inconsistencia se descubren y se corrigen fácilmente. Los métodos formales de diseño sirven como base para la verificación de programas. Sirven de base para la generación automática de código. Desventajas: El desarrollo es bastante caro y lleva mucho tiempo. El estudio de los métodos es costoso. Es difícil establecer modelos formales como mecanismo comunicación con los clientes.

de

51

Tipos de modelos de procesos – Modelos Evolutivos (Iterativos e Incrementales)

• –



El SW al igual que todos los sistemas complejos evoluciona con el tiempo. Estos modelos se caracterizan porque permiten desarrollar versiones cada vez más completas del SW teniendo en cuenta la naturaleza evolutiva del SW. Los modelos evolutivos son iterativos. Se caracterizan por la forma en que permiten a los ingenieros de SW, desarrollar versiones cada vez más completas del producto SW, que puede ir entregándose al cliente en forma de incrementos.

52

Tipos de modelos de procesos – El modelo incremental

• –







Combina elementos del ciclo de vida clásico (aplicados repetidamente) con la filosofía interactiva de construcción de prototipos. El modelo incremental aplica secuencias lineales de forma sorprendente de la misma forma que progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento de software. Cuando se utiliza un modelo incremental, el primer incremento a menudo es un producto esencial (núcleo). Es decir, se afrontan requisitos básicos, pero muchas funciones suplementarias quedan sin extraer. El cliente utiliza el producto central. Como resultado de utilización y / o evaluación, se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades del cliente y la entrega de funciones, y características adicionales. Este proceso se repite siguiendo la entrega de cada incremento, hasta que se elabore el producto completo. Los primeros incrementos son versiones desmontadas del producto final, pero proporcionan la capacidad que sirve al usuario y también proporciona una plataforma para la evaluación por parte del usuario. 53

Tipos de modelos de procesos – El modelo incremental (Cont.)

• –

Es útil cuando el personal no está disponible para una implementación completa en cuanto a la fecha límite de gestión que se haya establecido para el proyecto. Los primeros incrementos se pueden implementar con menos personas. Si el proyecto central es bien recibido, se puede añadir más personal para implementar el incremento siguiente. Además, los incrementos se pueden planear para gestionar riesgos técnicos.

54

Tipos de modelos de procesos – El modelo en espiral

• –

Es un modelo de proceso de software evolutivo que acompaña la naturaleza interactiva de construcción de prototipos con los aspectos controlados y sistemáticos del ciclo de vida clásico. Se proporciona el potencial para el desarrollo rápido de versiones incrementales del software. En el modelo espiral, el software se desarrolla en una serie de versiones incrementales. Durante las primeras iteraciones, la versión incremental podrá ser una versión en papel o un prototipo. Durante las primeras iteraciones, se producen versiones cada vez más completas de ingeniería del sistema.

55

Tipos de modelos de procesos – El modelo en espiral (Cont.)

• –

El modelo en espiral se divide en un número de actividades estructurales, también llamadas regiones de tareas. Existen entre tres y seis regiones de tareas, entre ellas están:  Comunicación el cliente: Las tareas requeridas para establecer comunicación entre el desarrollador y el cliente  Planificación: Las tareas requeridas para definir recursos, el tiempo y otras informaciones relacionadas con el proyecto.  Análisis de riesgo: Las tareas requeridas para evaluar los riesgos técnicos y de gestión.  Ingeniería: Las tareas requeridas para construir una o más representaciones de aplicación.  Construcción y adaptación: Las tareas requeridas para construir probar, instalar y proporcionar soporte al usuario.  Evaluación del cliente: Las tareas requeridas para obtener la reacción del cliente según la evaluación de las representaciones del software creadas durante la etapa de ingeniería e implementada durante la etapa de instalación

56

Tipos de modelos de procesos – El modelo en espiral (Cont.)

• –



Cada una de las regiones está poblada de un conjunto de tareas que se adaptan a las características del proyecto que va emprenderse. Para proyectos pequeños, el número de tareas y su formalidad es bajo. Para proyectos mayores y más críticos, cada región contiene tareas que se definen para lograr un nivel de más alto de formalidad. Cuando empieza este proceso evolutivo, el equipo de ingeniería del software gira alrededor del espiral en la dirección de las agujas del reloj, comenzando por el centro. El primer circuito del espiral produce el desarrollo de una especificación de productos; los pasos siguientes en el espiral se podrían utilizar para desarrollar un prototipo y progresivamente versiones más sofisticadas de software. Cada paso de la región de planificación produce ajustes en el plan del proyecto. El costo y la planificación se ajustan según la reacción ante la evaluación del cliente. Además, el gestor del proyecto ajusta el número planificado de iteraciones requeridas para completar el software.

57

Tipos de modelos de procesos – El modelo en espiral (Cont.)

• –





A diferencia del modelo de proceso clásico que termina cuando se entrega el software, el modelo espiral puede adaptarse y aplicarse a lo largo de la vida del software. En la figura se define un eje de punto de entrada en el proyecto. Cada uno de los cubos situados a los largo del eje representan el punto de arranque para un tipo diferente de proyecto. Un proyecto de desarrollo de conceptos comienza en el centro del espiral y continuará hasta que se completa el desarrollo del concepto. Si el concepto se va a desarrollar dentro de un producto real, el proceso procede a través del cubo siguiente y se inicia un nuevo proyecto de desarrollo. El producto nuevo evolucionará a través de iteraciones alrededor del espiral siguiendo el camino que limita la región algo más brillante que el centro. Un flujo de proceso similar aparece para otros tipos de proyectos. En esencia, el espiral cuando se caracteriza de esta forma, permanece operativa hasta que el software se retira. Hay veces en que el proceso está inactivo, pero siempre que se inicie un cambio, el proceso arranca en el punto de entrada adecuado.

58

Tipos de modelos de procesos – El modelo en espiral (Cont.)

• –



El modelo en espiral es un enfoque realista del desarrollo de sistemas y de software a gran escala. Como el software evoluciona, a medida que progresa el proceso, el desarrollador y el cliente comprenden y reaccionan mejor ante riesgos en cada uno de los niveles evolutivos. El modelo en espiral utiliza la construcción de prototipos como mecanismo de reducción de riesgos, pero lo que es más importante, permite a quien lo desarrolla aplicar el enfoque de construcción de prototipos en cualquier etapa de evolución del producto. El modelo en espiral demanda una consideración directa de los riesgos técnicos en todas las etapas del proyecto, y si se aplica adecuadamente, debe reducir los riesgos antes de que se conviertan en problemáticos. El modelo espiral no es la panacea. Requiere una considerable habilidad para la evaluación del riesgo, y cuenta con esta habilidad para el éxito. Si un riesgo importante no fue descubierto y gestionado, indudablemente surgirán problemas. Finalmente, el modelo en sí mismo es relativamente nuevo y no se ha utilizado tanto como los paradigmas lineales secuenciales o de construcción de prototipos. Todavía tendrán que pasar muchos años antes que se determine con absoluta certeza la eficacia de este nuevo e importante paradigma.

59

Tipos de modelos Reutilización

• –

– –

de

procesos



Modelos

basados

en

Esta aproximación se basa en la existencia de un número significativo de elementos reutilizables. El proceso de desarrollo, se centra en la integración de estos elementos en un sistema, en lugar de desarrollarlo desde cero. Incorpora muchas características del modelo en espiral. Es evolutivo por naturaleza. El proceso tiende a estructurarse en dos subprocesos distintos y separados:  El desarrollo para reutilización: construcción de elementos reutilizables dentro de un dominio concreto.  El desarrollo con reutilización: construcción de aplicaciones utilizando elementos reutilizables.

60

Tipos de modelos de procesos – El modelo DRA

• –





El desarrollo Rápido de Aplicaciones (DRA) es un modelo de proceso del ciclo de vida clásico que enfatiza un ciclo de vida de desarrollo extremadamente corto. El modelo DRA es una adaptación a alta velocidad del ciclo de vida clásico en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un sistema completamente funcional dentro de períodos cortos de tiempo. Cuando se utiliza principalmente para aplicaciones de sistemas de información, el enfoque DRA comprende las siguientes fases: Modelado de gestión: El flujo de información entre las funciones de gestión se modela de forma que responda a las siguientes preguntas: ¿Qué información conduce el proceso de gestión? ¿Qué información se genera? ¿Quién la genera? ¿A dónde va la información? ¿Quién la procesa? Modelado de datos: El flujo de información definido como parte de la fase de modelado de gestión refina como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las características de cada uno de los objetos y relaciones entre estos objetos.

61



Tipos de modelos de procesos – El modelo DRA (Cont.) 





Modelado de procesos: Los objetos de datos definidos en la fase de modelado de datos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión. Las descripciones se crean para añadir, modificar, suprimir, o recuperar un objeto de datos. Generación de aplicaciones: El DRA asume la utilización de técnicas de cuarta generación. En lugar de crear software con lenguajes de programación de tercera generación, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automáticas para facilitar la construcción del software. Prueba y entrega: Como el proceso DRA enfatiza la reutilización, ya se han comprobado muchos de los componentes de los programas. Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las interfaces a fondo.

62



Tipos de modelos de procesos – El modelo DRA (Cont.)

63

Tipos de modelos de procesos – El modelo DRA (Cont.)

• –

Las limitaciones de tiempo impuestas en un proyecto DRA demandan ámbito en escalas. Si una aplicación de gestión puede modularse de forma que permita completarse cada una de las funciones principales en menos de tres meses, es el candidato del DRA. Cada una de las funciones puede ser afrontada por un equipo DRA diferente y ser integradas en un solo conjunto.



Problemas:  Para proyectos grandes aunque por escalas, el DRA requiere recursos humanos suficientes como para crear el número correcto de equipos DRA.  DRA requiere clientes y desarrolladores comprometidos en las rápidas actividades necesarias para completar un sistema en un marco de tiempo abreviado. Si no hay compromiso, por ninguna de las partes constituyentes, los proyectos DRA fracasarán.

64



Tipos de modelos de procesos – El modelo DRA (Cont.)  







No todos los tipos de aplicaciones son apropiados para DRA. Si un sistema no puede modularizarse adecuadamente, la construcción de los componentes necesarios para DRA será problemático. Si está en juego el alto rendimiento, y se va a conseguir el rendimiento convirtiendo interfaces en componentes de sistemas, el modelo DRA puede que no funcione. DRA no es adecuado cuando los riesgos técnicos son altos. Esto ocurre cuando una nueva aplicación hace uso de tecnologías nuevas, o cuando el nuevo software requiere un alto grado de interoperatividad con programas de computadoras ya existentes. DRA enfatiza el desarrollo de componentes de programas reutilizables.

65

Tipos de modelos de procesos – Técnicas de 4 Generación

• –

– – –



Abarca un amplio espectro de herramientas de software que tienen algo en común: todas facilitan al ingeniero del SW la especificación de algunas características del software de alto nivel. Luego, la herramienta genera automáticamente el código fuente basándose en la especificación del técnico. Cada vez parece más evidente que cuanto mayor sea el nivel en que se especifique el SW, más rápido se podrá construir el programa. El paradigma T4G para la ingeniería del software se orienta hacia la posibilidad de especificar el software usando formas de lenguaje especializado o notaciones gráficas que describan el problema que hay que resolver en términos que los entienda el cliente. Actualmente, un entorno para el desarrollo de software que soporte el paradigma T4G puede incluir todas o algunas de las siguientes herramientas:  Lenguajes no procedimentales de consultas de bases de datos  Generación de informes  Manejo de datos  Interacción y definición de pantallas  Generación de códigos  Capacidades gráficas de alto nivel  Capacidades de hoja de cálculo 66

Tipos de modelos de procesos – Técnicas de 4 Generación (Cont.)

• –





T4G comienza con el paso de reunión de requisitos. Idealmente, el cliente describe los requisitos, que son, a continuación, traducidos directamente a un prototipo operativo. Sin embargo, en la práctica no se puede hacer eso. El cliente puede que no esté seguro de lo que necesita; puede ser ambiguo en la especificación de hechos que son conocidos, y puede que no sea capaz o no esté dispuesto a especificar la información en la forma en que puede utilizar una herramienta T4G. Por esta razón, el diálogo cliente-desarrollador descrito por los otros paradigmas sigue siendo una parte esencial del enfoque T4G. Para proyectos pequeños se puede ir de la recolección de requisitos a la implementación usando lenguajes de cuarta generación (L4G). Sin embargo, es necesario un mayor esfuerzo para desarrollar una estrategia de diseño para el sistema, incluso si se utiliza un L4G. El uso de T4G sin diseño (para proyectos grandes) causará dificultades (poca calidad, mantenimiento pobre, mala aceptación del cliente) que se encuentran cuando se desarrolla software mediante los enfoques convencionales. Para transformar una implementación T4G en un producto, el que lo desarrolla debe dirigir una prueba completa, desarrollar con sentido una documentación y ejecutar el resto de las actividades de integración requeridas en los otros paradigmas. 67

Tipos de modelos de procesos – Técnicas de 4 Generación (Cont.)

• –



– 1.

2.

3.

Ventajas  Reducciones en el tiempo de desarrollo.  Mejora en la productividad. Desventajas  Las herramientas actuales de T4G no son más fáciles de utilizar que los lenguajes de programación.  El código fuente producido por tales herramientas es ineficiente.  El mantenimiento de grandes sistemas es cuestionable. Estado actual El uso de T4G ha crecido considerablemente y ahora es un enfoque viable para muchas de las diferentes áreas de aplicación. Junto con las herramientas de ingeniería de software asistida por computadora (CASE) y los generadores de código, T4G ofrece una solución fiable a muchos problemas de software. Los datos recogidos en compañías que usan T4G parecen indicar que el tiempo requerido para producir software se reduce mucho para aplicaciones pequeñas y de tamaño medio, y que la cantidad de análisis y diseño para aplicaciones pequeñas también se reduce. EL uso de T4G para grandes trabajos de desarrollo exige el mismo o más tiempo de análisis, diseño y prueba, perdiéndose así un tiempo sustancial que se ahorra mediante la eliminación de la codificación. 68

Metodologías

• – –

– –



El uso de una metodología permite el dominio del proceso descrito. Una metodología es el conjunto de métodos que se siguen en una investigación científica. Una metodología SW es un enfoque, una manera de interpretar la realidad o la disciplina en cuestión. Se elaboran a partir del marco definido por uno o varios ciclos de vida. Desde una perspectiva de Ingeniería de SW, una metodología:  Describe cómo se organiza un proyecto  Establece el orden en el que la mayoría de las actividades tienen que realizarse y los enlaces entre ellas  Indica cómo tienen que realizarse algunas tareas proporcionando las herramientas concretas e intelectuales Con una metodología se intentan cubrir las siguientes necesidades:  Mejores aplicaciones  Mejor proceso de desarrollo  Establecer un proceso estándar en una organización

69

Metodologías - Definición

• –

Conjunto de componentes que especifican: cómo dividir un proyecto en etapas, qué tareas se llevarán a cabo en cada etapa, qué salidas se producen y cuándo deben producirse, qué restricciones se aplican, qué herramientas van a ser utilizadas, cómo se gestiona y se controla el proyecto.



Otra definición: conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar un SW.

70

Metodologías - Características

• –

Una metodología debe cubrir:  Un proceso de ciclo de vida completo, que comprenda aspectos tantos del negocio como técnicos  Un conjunto completo de conceptos y modelos que sean internamente consistentes  Una colección de reglas y guías  Una descripción completa de artefactos a desarrollar  Una notación con la que trabajar, idealmente soportada por diversas herramientas CASE y diseñada para una usabilidad óptima  Un conjunto de técnicas probadas  Un conjunto de métricas, junto con asesoramiento sobre calidad, estándares y estrategias de prueba  Identificación de los roles organizacionales  Guías para la gestión de proyectos y aseguramiento de la calidad  Asesoramiento para la gestión de bibliotecas y reutilización

71

Metodologías - Clasificación

• –







Estructuradas: Proponen la creación de modelos del sistema que representen los procesos, los flujos y la estructura de datos de una manera descendente. Se pasa de una visión general del problema, a un nivel de abstracción sencillo. Esta visión se puede enfocar hacia:  Un punto de vista funcional del sistema (Metodologías orientadas a procesos): Se enfocan en el proceso, por ejemplo: Merise, Yourdon Systems Method YSM, Structured Systems Analysis and Design Method SSADM, Métrica v3.0  La estructura de datos (Metodologías orientadas a datos): Se enfocan en la Entrada y Salida, por ejemplo: Jackson Structured Design JSD, Warnier-Orr Orientadas a estados y transiciones: Están dirigidas a la especificación de sistemas de tiempo real o sistemas que tienen que reaccionar continuamente a estímulos internos y externos (eventos o sucesos). Por ejemplo las metodologías de Ward y Mellor y de Hatley y Pirbhai. Orientadas al diseño del conocimiento: Esta aproximación se encuentra aún en una fase temprana de desarrollo. Utiliza técnicas y conceptos de Inteligencia Artificial para especificar y generar sistemas de información. Por ejemplo KADS (Knowledge Acquisition and Development System), IDEAL. 72

Metodologías – Clasificación (Cont.)

• –

– –





Orientadas a objetos: Se fundamenta en la integración de los datos y procesos. Este paradigma se concibe como un conjunto de objetos que se comunican entre sí mediante mensajes. El objeto encapsula datos y operaciones. Este enfoque facilita la reutilización del SW. Algunos ejemplos:  Metodologías dirigidas por los datos: Object Modeling Technique (OMT), Fusion  Metodologías dirigidas por las responsabilidades: Responsibility Driven Desgin (RDD)  Metodologías dirigidas por los casos de uso: Proceso Unificado  Metodologías dirigidas por estados: Metodología de Shlaer y Mellor Orientadas al desarrollo de sistemas hipermediales: Pretenden sistematizar la creación de aplicaciones Web dentro de un proceso de creación de SW bien definido. Por ejemplo Hypermedia Design Model (HDM), Web Site Design Method (WSDN) Basadas en métodos formales: Se basan en teorías matemáticas que permiten una verdadera aproximación científica y rigurosa al desarrollo de sistemas de información y SW asociado, por ejemplo OO-Method. 73



Proceso Unificado – El Proceso Unificado es más que un simple proceso, es un marco de trabajo genérico que puede especializarse para una gran variedad de sistemas SW, para diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaños de proyectos. – El proceso de desarrollo de SW es un conjunto completo de actividades necesarias para convertir los requisitos de usuario en un conjunto de artefactos que conforman un producto SW, y para convertir los cambios sobre esos requisitos en un nuevo conjunto de artefactos. – El proceso hace referencia a un contexto que sirve como plantilla que pueda reutilizarse para crear instancias de ella. – Las actividades relacionadas conforman disciplinas o flujos de trabajo. Su identificación parte de la identificación de los trabajadores y de los artefactos para cada tipo de trabajador, describen como fluye el proceso a través de los trabajadores (se representan mediante “calles”).

74



Proceso Unificado - Características - Está basado en componentes - Utiliza UML - Es un proceso conducido por casos de uso. Dirigen las actividades de desarrollo, creando y validando la arquitectura del sistema, definiendo los casos de prueba y procedimientos, planificando iteraciones, creando la documentación de usuario y desplegando el sistema. Los casos de uso enlazan las disciplinas de Requisitos, Análisis, Diseño, Implementación y Prueba. - Está centrado en la arquitectura. La arquitectura se representa mediante vistas del modelo. Se seleccionan escenarios, se identifican las clases principales, se estructura en subsistemas, capas y se definen interfaces, se implementan prototipos de arquitectura y se evalúa la misma mediante iteraciones. - Es iterativo e incremental. En cada iteración se identifican y especifican los casos de uso relevantes, se crea un diseño basado en la arquitectura seleccionada, se implementa el diseño mediante componentes y se verifica que los componentes satisfacen los casos de uso. Si una iteración cumple con sus objetivos, se pasa a la siguiente. En cada iteración se va desarrollando el sistema de forma incremental. - Puede extenderse y especializarse para una gran variedad de sistemas SW (es flexible) - Permite gran variedad de estrategias de ciclos de vida 75



UML – Es una notación estándar para el desarrollo de sistemas usando el enfoque OO. Es una notación en evolución, aún en desarrollo. Comenzó en 1994 como esfuerzo de Booch y Rumbaugh quienes definieron el estándar. Luego Jacobson se unió al equipo. En 1997 UML fue entregado a OMG (Object Management Group) como propuesta de notación y metamodelo OO. – UML es un lenguaje de modelado que sirve para visualizar, especificar, construir y documentar un sistema SW. – Los diagramas de UML son los siguientes:  Análisis en el contexto organizacional: Diagramas de CU  Análisis y Diseño desde la perspectiva estática: Diagrama de Clase y Diagrama de Objetos  Análisis y Diseño desde la perspectiva dinámica: Diagrama de Secuencia, Diagrama de Colaboración y Diagrama de Estados  Implementación: Diagrama de Componentes y Diagrama de Despliegue – En sistemas de envergadura es conveniente hacer una división en subsistemas. En UML esto se representa con el concepto de package (paquete). Un paquete es una agrupación de elementos modelados. Los paquetes pueden estar anidados dentro de otros. La relación entre paquetes se establece mediante conexiones de dependencia. Una relación de dependencia se simboliza por una flecha punteada. 76



UML (Cont.) – El concepto de paquete permite organizar los CU por subsistemas. – UML es un lenguaje de modelado que sirve para visualizar, especificar, construir y documentar un sistema SW.  Lenguaje de visualización: facilita la comunicación de los modelos conceptuales a otros y disminuye errores al permitir hablar el mismo lenguaje. Permite interpretar los modelos sin ambigüedades, ya que UML tiene una semántica bien definida.  Lenguaje de especificación: especificación significa construir modelos precisos, no ambiguos y completos. UML especifica las decisiones de análisis y diseño que deben llevarse a cabo, como así también las de implementación.  Lenguaje de construcción: no es un lenguaje de programación, pero sus modelos pueden ser conectados a una variedad de lenguajes de programación, como Java, C++, Visual Basic. Se puede generar código a partir de un modelo UML y aún hacer ingeniería inversa.  Lenguaje de documentación: documenta requerimientos, arquitectura, diseño, codificación, plan de proyecto, prueba, prototipo, versiones de SW.

77



UML - Objetivos - Establecer un lenguaje visual de modelado, expresivo y sencillo en su uso - Mantener una independencia de los procesos de modelado y de los lenguajes de programación - Establecer bases formales - Integrar las mejores prácticas - Imponer un estándar mundial



UML - Algunos conceptos – Producto: El producto que se obtiene es un sistema de SW. El sistema lo componen todos los “artefactos” necesarios para representarlo de forma comprensible. – Artefacto: Término general para cualquier tipo de información creada, producida, cambiada o utilizada por los trabajadores en el desarrollo del sistema. El artefacto más importante del Proceso Unificado es el “modelo”.

78



UML - Algunos conceptos (Cont.) – Un sistema posee una colección de modelos y las relaciones entre ellos. – Modelo: Es una abstracción del sistema. Recogen diferentes perspectivas del sistema (desde el punto de vista de analistas, diseñadores, usuarios, jefe de proyecto, etc.). Describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo. – Existen diversos modelos:  Modelos de Casos de uso: Diagramas de casos de uso, secuencia, colaboración y actividad (Modelado de requerimientos)  Modelos de Análisis y Diseño: Diagramas de clases, objetos, secuencia, colaboración y actividad (Modelado de la estructura y de interacción)  Modelo de Despliegue: Diagramas de despliegue, secuencia y colaboración.  Modelo de Implementación: Diagramas de componentes, secuencia y colaboración.  Modelo de Pruebas: Todos los diagramas.

79



Elementos del Proceso Unificado – Fases del ciclo de vida: La división temporal necesita puntos de control. – Puntos de control o hitos (separan las etapas, fases e iteraciones): En estos puntos los participantes del proyecto revisan el progreso del mismo, se identifican los riesgos y se evalúa la situación global del proyecto. – Disciplinas o flujos de trabajo (organizan las actividades de gestión y desarrollo): El resultado de las actividades de los flujos de trabajo son los artefactos. – Artefactos: cualquier tipo de información producida por los desarrolladores de un sistema (diagramas UML, código, ejecutables, casos de prueba, etc.). Se construyen de forma incremental.

80



La vida del Proceso Unificado – El proceso unificado se repite a lo largo de una serie de ciclos de desarrollo que constituyen la vida de un sistema. Cada ciclo de desarrollo concluye con una versión entregable del producto. – Cada ciclo consta de cuatro fases:  Inicio: se define el alcance del proyecto y se desarrollan los casos de negocio.  Elaboración: se planifica el proyecto, se especifican en detalle la mayoría de los casos de uso y se diseña la arquitectura del sistema.  Construcción: se construye el producto.  Transición: el producto se convierte en versión beta, se corrigen los problemas y se incorporan mejoras sugeridas en la revisión.

81



Plan de Negocio (Plan de Empresa) – Debido a los cambios constantes del ámbito empresarial surge la necesidad conceptual, metodológica y de gestión, de introducir un instrumento que permita concretar las estrategias en términos técnicos, económicos, tecnológicos y financieros en las entidades, este instrumento se denomina mundialmente: Plan de Negocio. – En dicho plan se debe argumentar tanto a corto como mediano plazo una descripción detallada de los servicios y productos que se ofrecen, las oportunidades de mercados que se poseen, y cómo está dotada la organización de recursos tangibles e intangibles, que le permitan determinada competitividad y diferenciación entre los competidores. – Es un documento escrito que evalúa todos los aspectos de la factibilidad económica de la iniciativa comercial con una descripción y análisis de sus perspectivas empresariales.  Un plan de negocios es un documento escrito y conciso, preparado por una organización (o su equipo) donde se describe el negocio actual, la situación del mercado, las futuras acciones y estrategias de implementación.

82



Plan de Negocio (Cont.) – Su objetivo consiste en comunicar la idea del negocio y establecer credibilidad frente a diferentes públicos con argumentos sólidos para vender la idea. También constituye una gran herramienta para que la organización evalúe la viabilidad y realice un seguimiento de su implementación. – El Plan de Negocio muestra en un documento el o los escenarios futuros y más probables con todas sus variables, con el fin de facilitar un análisis integral que pueda ser presentado a otras partes involucradas en el proyecto (inversionistas, socios, bancos, proveedores, clientes).

83



Plan de Negocio – Ventajas – Existen múltiples ventajas de su uso, podemos citar algunas: 1. Evita invertir fondos sin conocer la posibilidad de mercado para el producto 2. Obliga a la organización a buscar información que puede ser estadística o de la experiencia colectiva para detallar datos. 3. Indica la estructura humana que lo hará posible 4. Reporta la rentabilidad esperada de la idea de negocio. 5. Permite determinar el dinero que la empresa necesita para sus diversas actividades. 6. Ayuda a que la empresa pueda alcanzar sus metas. Los errores se cometen en el papel, eso posibilita reducir los fracasos. 7. Es una herramienta de diseño. La organización va dando forma mental a su negocio antes de darle forma real. 8. Herramienta de reflexión. El escribir de una forma organizada y coherente las estrategias empresariales y la forma de alcanzar las metas obliga a la reflexión. 9. Herramienta de comunicación. El plan facilita la necesaria coordinación entre los diferentes departamentos y personas de la empresa. 10.Herramienta de Gestión de Recursos Humanos. El plan sirve de guía para planificar las necesidades de formación y distribuir las responsabilidades. 84



Plan de Negocio – Contenido básico – Proponemos un contenido básico o estándar para plan de negocio con el siguiente formato:         

Resumen ejecutivo. Descripción del negocio. Productos y servicios. Descripción del sector. Estrategia de comercialización. Gestión y personal. Protección y normativas. Plan de puesta en marcha. Información adicional (optativo).

85

• •

Plan de Negocio – Contenido básico (Cont.) Resumen Ejecutivo – Sólo puede ser preparada cuando finalice la elaboración del Plan de Negocios y debe ser colocada al principio del documento. – Es una síntesis descriptiva, en la que se destaca lo que se considera importante. – Debe contener:  La descripción de la empresa o proyecto y la proyección de sus productos y servicios.  La estructura organizativa, los propietarios y la gerencia de la empresa.  Sus principales iniciativas y objetivos.  Las oportunidades de mercado.  Las principales ventajas competitivas.  Los componentes de su estrategia de comercialización.  Las principales proyecciones económicas y financieras.

86

• •

Plan de Negocio – Contenido básico (Cont.) Descripción del negocio – Compuesta por:  Historia del negocio: Si la firma ya existe, describa cuándo y por quién fue iniciada y los cambios más importantes que hayan ocurrido durante su trayectoria. Si se trata de un nuevo emprendimiento, señale algunas de las razones por las que usted quiere iniciar el mismo.  Objetivo general y formas de alcanzarlo: Es una visión a largo plazo de lo que usted desea de su empresa. En algunos casos, conviene hacer referencia a las estrategias y filosofías de negocio o para mostrar los esfuerzos que su empresa dedica para desarrollar buenas relaciones con los clientes y con su personal.  Objetivos: Con el propósito de verificar si su negocio se está desarrollando en orden a estos objetivos en el corto plazo. Se puede fijar los objetivos relacionados con ocupar una posición deseada del mercado, las ventas o cualquier otro objetivo que sea importante para el negocio  Deben ser efectivos, simples, y mensurables.  Localización y recursos: Describa dónde se localiza su empresa y qué facilidades dispone. Puede incluir una descripción del lugar, del tipo y magnitud de las instalaciones que posee, del equipo, y si es propietario de los inmuebles. Además, explique cuáles son las ventajas -si las hubiera87

• •

Plan de Negocio – Contenido básico (Cont.) Productos y servicios – Compuesto por:  Descripción de productos y/o servicios: Describa brevemente los productos y/o los servicios que su empresa vende o venderá.  Características destacables de sus productos y/o servicios: Explique cuáles son las razones que hacen que sus productos o servicios sean los elegidos en el mercado y de qué manera se diferencian de los de sus competidores.  Producción: Describa cómo serán producidos sus productos o servicios. Puede destacar los recursos humanos y materiales utilizados y el proceso productivo que utiliza o utilizará.  Futuros productos y servicios: ¿Tiene planes para actualizar los productos o servicios existentes o para ofrecer otros nuevos? Si así fuera, describa brevemente lo que planea hacer.  Ventajas competitivas en la producción de productos y servicios: ¿Hay algún aspecto destacable en su capacidad de producción que puede significar una ventaja con respecto a sus competidores? P. e. ¿ posee personal especializado, nueva tecnología, insumos a menores costos, etc.?

88

• •

Plan de Negocio – Contenido básico (Cont.) Descripción del sector  Estudios de Mercado: En este punto, sería útil que comente si ha efectuado alguna investigación del mercado en que se desenvuelve. P. e. una encuesta a actuales y potenciales clientes.  Tamaño del sector: Describa el tamaño del sector en el cual su empresa funciona o funcionará. Factores que determinan esa dimensión: el monto total de las ventas, el número de las unidades vendidas, la cantidad de empresas, el empleo total. Puede incluir cualquier otra estadística sobre el crecimiento del sector.  Principales segmentos de los productos o servicios: Un sector económico puede estar constituido por un determinado número de productos. P. e. en el de la industria panadera pueden definirse un conjunto de bienes, tales como pan de harina de trigo, pan integral, facturas, galletas, etc. Trate de explicar los productos que integran su actividad, destacando el tamaño y las características de los segmentos en los que su empresa deberá competir.  Principales segmentos del mercado: ¿Quiénes participan en el sector en el cual usted vende sus productos o servicios? Divida su mercado en grupos de clientes, destacando las características y tamaño de los mismos. ¿Tiene previsto cuál es o va ser su participación en esos segmentos? 89

• •

Plan de Negocio – Contenido básico (Cont.) Descripción del sector – Compuesta por:  Proceso y criterio de compras de los clientes: Es importante saber cómo y por qué los clientes compran sus productos o los de su competencia. Por ejemplo, qué importancia tiene el precio, la calidad, las garantías o el servicio de pos-venta que usted ofrece, en la toma de decisiones de compra de sus clientes. Explique resumidamente cómo los criterios del proceso de compra pueden variar en cada uno de los segmentos de mercado o del producto.  Descripción de los participantes del sector: Describa, en términos generales, los tipos de empresas que compiten en su sector.  Tendencias clave en el sector: Lo único que es constante en un negocio es el cambio. ¿Cuáles son las tendencias dominantes en su actividad? Estas tendencias podían incluir cambios en tecnología, productos, moda, mercados, regulaciones o condiciones económicas. ¿Cuáles de esas tendencias afectarán a su empresa en los próximos años?  Visión del sector: Considere qué productos tienen las mayores oportunidades de crecimiento en los próximos años y por qué, y para cuáles se puede esperar una declinación en las ventas.

90

• •

Plan de Negocio – Contenido básico (Cont.) Estrategia de comercialización – Compuesta por:  Mercado objetivo: En la sección anterior, se describió el mercado de su actividad. ¿A qué clientes o segmentos de mercado su empresa apuntará específicamente? P. e. se puede definir su mercado objetivo por tipo cliente y por región geográfica. ¿Cómo sus mercados pueden cambiar durante el período de su Plan de Negocios?  Descripción de los competidores principales: Enumere a sus competidores principales y proporcionar una descripción abreviada de sus negocios en términos de la localización, producción, estrategias de comercialización y posición en el mercado.  Análisis de la posición competitiva: Se trata de comparar su negocio con el de sus competidores. ¿De qué manera su empresa tendrá una ventaja competitiva sobre sus competidores y de qué forma podrá encontrar alguna desventaja competitiva?  Estrategia de precios: ¿Cómo establecerá los precios de sus productos o servicios? ¿Cómo son en relación con los de sus competidores?

91

• •

Plan de Negocio – Contenido básico (Cont.) Estrategia de comercialización – Compuesta por:  Estrategia de distribución: Cómo distribuirá sus productos y/o servicios a sus mercados. Dónde están ubicados sus clientes, y cómo llegará a ellos, tanto para la venta como en la pos-venta.  Estrategia de Promoción: Tener un buen producto o servicio no es una garantía de éxito. Usted tiene que hacer conocer sus productos o servicios e informarles cómo y dónde pueden adquirirlos. Describa cómo hará para que se conozcan. Destaque las actividades que usted emprenderá con ese objetivo. P. e. inversión en publicidad, demostraciones comerciales, mailing, telemarketing y cualquier otro medio de promoción que utiliza o utilizará para llegar a sus potenciales clientes.

92

• •

Plan de Negocio – Contenido básico (Cont.) Gestión y personal – Compuesta por:  Estructura de su organización: Describa la organización de su empresa. Comente cuánto personal dispone habitualmente y cuánto piensa tener en los próximos años.  Personal de gerencia: Haga una lista con una breve descripción con el cargo que cada uno ocupa, las funciones principales y la experiencia en cada caso. Considere las fortalezas y debilidades del personal de gerencia y de otros, y de qué manera se propone tratar esas debilidades.  Personal: Explique, si necesita personal, cómo va a cubrir el o los cargos que no son de nivel gerencial en su empresa señalando el perfil y nivel de experiencia que necesita y los salarios que estima pagar y si dicho personal requiere de algún tipo de entrenamiento que usted está en condiciones de suministrar o si acudirá a la capacitación externa.  Mercado de trabajo: Contemple qué factores pueden afectar la capacidad de identificar el personal que necesita y mantenerlo en su negocio.  Métodos de producción: Explique si su empresa puede variar el método de producción y si ha hecho estimaciones del costo de esa variación. P. e. trabajar en dos turnos o más. 93

• •

Plan de Negocio – Contenido básico (Cont.) Protección y normativas – Integrada por:  Protección a la Propiedad Intelectual: En el caso de que sus procesos, productos o servicios, se encuentren protegidos por Patentes, Propiedad intelectual, Marcas, Licencias, Permisos u otros tipos de protección, descríbalos brevemente.  Cuestiones normativas: ¿Qué tipo de disposiciones normativas pueden afectar su actividad en forma directa? ¿Su negocio requiere de licencias o permisos? ¿Qué medidas ha contemplado para cumplir con las mencionadas normativas ?

94

• •

Plan de Negocio – Contenido básico (Cont.) Plan de puesta en marcha – Implementación: – ¿Cuándo se iniciarán las principales actividades contenidas en su Plan de Negocios, y quiénes serán los responsable de llevarlas a cabo? ¿Cuándo finalizarán las mismas?



Información adicional (optativo) – Toda aquella información que considere necesaria para complementar lo detallado anteriormente.

95



Bibliografía  Ingeniería de software: Un enfoque práctico – 5° Edición de Roger S. Pressman - Editorial Mc Graw Hill. 2002  Análisis Estructurado Moderno de Edward Yourdon – Editorial: Prentice Hall  El lenguaje Unificado de Modelado de Booch, Rumbaugh y Jacobson – Addison-Wesley, 1999  Guía para empresarios PyMEs para elaborar un Plan de Negocios

96

Related Documents


More Documents from ""

Info.txt
June 2020 19
June 2020 16
December 2019 1
December 2019 6
Meto.docx
October 2019 4