<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>rup &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/rup/</link>
	<description>Feed of posts on WordPress.com tagged "rup"</description>
	<pubDate>Sun, 12 Oct 2008 11:34:22 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Flujos de eventos alternativos]]></title>
<link>http://synergix.wordpress.com/?p=284</link>
<pubDate>Sun, 12 Oct 2008 07:06:35 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/10/12/flujos-de-eventos-alternativos/</guid>
<description><![CDATA[En un caso de uso, los flujos de eventos se refieren a los pasos que alternativamente van realizando]]></description>
<content:encoded><![CDATA[<p>En un <a href="http://synergix.wordpress.com/2008/06/19/definimos-caso-de-uso/">caso de uso</a>, <a href="http://synergix.wordpress.com/2008/09/23/casos-de-uso-flujos-de-eventos/">los flujos de eventos</a> se refieren a los pasos que alternativamente van realizando <a href="http://synergix.wordpress.com/2008/07/25/definimos-actor-como/">los actores</a> y el sistema en el contexto del <a href="http://synergix.wordpress.com/2008/07/07/requisito-funcional-y-no-funcional/">requisito funcional</a> capturado en el caso. Dichos pasos por claridad, se separan en el <a href="http://synergix.wordpress.com/2008/10/02/el-flujo-de-eventos-del-dia-feliz/">flujo principal</a> y los flujos alternativos; de forma tal que en <a href="http://synergix.wordpress.com/2008/10/02/el-flujo-de-eventos-del-dia-feliz/">el flujo principal representamos el día feliz</a>, donde todo ocurre sin problemas y en los flujos alternativos lidiamos con las situaciones de error y el comportamiento esperado del sistema en respuesta a dichos errores.</p>
<p>Es necesario entonces contar con una aproximación sistemática sobre como disponer los flujos de eventos principal y alternativos, de forma que capturen en forma <a href="http://synergix.wordpress.com/2008/09/27/todo-requisito-debe-ser-preciso-y-legible/">clara y precisa</a> cada condición que el flujo del día feliz ha asumido como libre de error pero que es a su vez, el punto de inicio de un flujo alternativo.</p>
<p>La idea aquí es la de indicar el paso del flujo principal y la condición precisa que de violarse hace que se ejecute el flujo alternativo. De ser posible la condición ha de estar expresada en términos del <a href="http://synergix.wordpress.com/2008/07/10/modelo-de-dominio/">modelo de dominio</a> de forma tal que facilitar su traducción al sistema software.</p>
<p>Los pasos del flujo alternativo han de tener una enumeración propia de forma tal que no choquen los unos con los otros ni con los pasos del flujo principal. La forma exacta en que vamos a enumerar es cosa de cada quien, por lo que es un punto a documentar como parte del <em>Plan de Gestión de Requisitos</em>, documento este que suele ser parte del <a href="http://synergix.wordpress.com/2008/07/02/plantillas-plan-de-desarrollo-de-software/">Plan de Desarrollo de Software</a>.</p>
<p>Un ejemplo de todo lo anterior puede ser visto como parte del <a href="http://synergix.wordpress.com/2008/06/04/ejemplo-de-caso-de-uso/">ejemplo de caso de uso</a> en este blog. En el ejemplo referido se hace mención al caso de uso <em>"llamada de voz"</em> y se ha señalado la condición de error <em>"número incorrecto"</em>. Veamos una versión ligeramente modificada del caso de uso de ejemplo para discutir como se puede implementar los flujos alternativos:</p>
<p style="padding-left:30px;"><strong>Código:</strong> CS-0100.<br />
<strong>Nombre:</strong> Llamada de voz.<br />
<strong>Actores: </strong>Usuario.<br />
<strong>Descripción:</strong> El usuario del teléfono levanta el auricular y marca el número de destino. Al completar la secuencia de dígitos la conexión se realiza. Por medio de tonos particulares el sistema indica el estado de error y de progreso en la conexión.<br />
<strong>Precondición:</strong> El teléfono está colgado.<br />
<strong>Postcondición:</strong> Ninguna.<br />
<strong>Diagrama:</strong></p>
<p style="text-align:center;"><a href="http://synergix.files.wordpress.com/2008/06/modelo.jpg"><img class="alignnone size-full wp-image-55 aligncenter" src="http://synergix.files.wordpress.com/2008/06/modelo.jpg?w=297&#38;h=219" alt="Sencillo Modelo de Casos de Uso" width="297" height="219" /></a></p>
<p style="padding-left:30px;"><strong>Flujo Principal:<br />
Paso 1 - Usuario: </strong>Levanta el auricular.<br />
<strong>Paso 2 - Sistema:</strong> Da el tono de marcado.<br />
<strong>Paso 3 - Usuario:</strong> Indica el número de teléfono.<br />
<strong>Paso 4 - Sistema:</strong> Realiza la conexión. Da tono de aviso en tanto se levanta el teléfono del lado contrario de la conexión. Permite la conversación al hacerse efectiva la conexión.<br />
<strong>Paso 5 - Usuario:</strong> Conversa y al finalizar esta, tranca el teléfono.<br />
<strong>Paso 6 - Sistema:</strong> Termina la conexión.</p>
<p style="padding-left:30px;"><strong>Flujo alternativo: Número incorrecto<br />
Paso 3 - Sistema:</strong> Presenta tono de error. El caso de uso termina.</p>
<p style="padding-left:30px;"><strong>Flujo alternativo: Desconexión inesperada<br />
Paso 5.1 - Sistema: </strong>Detecta un fin inesperado de la conexión. Indica todo de error.<br />
<strong>Paso 5.2</strong> - <strong>Usuario:</strong> Tranca el teléfono.<br />
<strong>Paso 5.3 - Sistema: </strong>Registra error. El caso de uso termina.</p>
<p style="text-align:center;">Tabla 1 - <strong>Ejemplo de caso de uso con flujos alternativos</strong></p>
<p>Como ya dije, este ejemplo es una modificación del ya visto en el post <a href="http://synergix.wordpress.com/2008/06/04/ejemplo-de-caso-de-uso/">ejemplo de caso de uso</a>, donde ahora se han considerado dos flujos alternativos, uno para la condición de <em>número incorrecto</em> y otro para la <em>desconexión inesperada</em>.</p>
<p>La condición ha sido indicada en términos abstractos, comprensibles desde una perspectiva técnica y luego se ha indicado el paso en que dicha condición se puede violentar. En el flujo alternativo del número incorrecto el paso es el tres y en caso de problemas las acciones a tomar son solo una: el sistema presenta tono de error.</p>
<p>Otro tanto puede ser dicho en el segundo flujo alternativo. La desconexión inesperada sin embargo a dado lugar a tres pasos. El sistema detecta un fin inesperado e indica tono de error. El usuario entonces tranca el teléfono. Finalmente el sistema registra el error. Estos tres pasos han sido enumerados con la secuencia 5.1, 5.2 y 5.3, de forma de hacer referencia a que son un flujo alternativo del paso cinco del flujo principal al tiempo de mantener una secuencia numerica propia.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[FÁBRICA DE SOFTWARE - DEFINIÇÃO DOS PROCESSOS GERENCIAIS E OPERACIONAIS]]></title>
<link>http://robsonmendonca.wordpress.com/?p=23</link>
<pubDate>Wed, 08 Oct 2008 02:10:14 +0000</pubDate>
<dc:creator>Robson Pereira Mendonça</dc:creator>
<guid>http://robsonmendonca.bg.wordpress.com/2008/10/08/fabrica-de-software-definicao-dos-processos-gerenciais-e-operacionais/</guid>
<description><![CDATA[A cada dia as pesquisas acerca de Fábricas de Software vêm se intensificando, especialmente devido]]></description>
<content:encoded><![CDATA[<p class="MsoNormal" style="line-height:200%;text-align:justify;margin:0;"><span style="font-family:&#34;">A cada dia as pesquisas acerca de Fábricas de Software vêm se intensificando, especialmente devido ao crescimento desta atividade no cenário mundial. Fábricas da Índia e China se tornaram referência de qualidade e sucesso, fazendo com que países como o Brasil viessem a perseguir um modelo semelhante que pudesse gerir a operação de múltiplas demandas. Diante de um mercado exigente e extremamente dinâmico, no qual o equilíbrio ideal entre custo e qualidade dita o sucesso no mundo dos negócios, a produtividade passou a ser um aspecto fundamental para a sobrevivência de qualquer organização. Porém, para atingir este padrão, deve-se estar ciente que fatores como processos, padrões de qualidade e frameworks de soluções fabris interferem diretamente no resultado final. Neste contexto, este trabalho técnico-científico apresenta um estudo deste modelo de produção de software, realizando a revisão de literatura da estrutura e de três modelos fundamentais para a sua implantação: RUP – processo unificado, CMMI e o PMBOK. Assim, ele discutirá as características envolvidas e gerará uma proposta de operação de software mais efetiva em termos de custo, agregação de valor ao negócio, qualidade, previsibilidade do atendimento e eficácia na solução de problemas, ou seja, mostrará um modelo que condense os fatores relevantes do estudo, através de um mapeamento dos principais processos existentes para o funcionamento de uma fábrica de software.</span></p>
<p> </p>
<p>Para obter a versão completa deste trabalho <a href="http://robsonmendonca.files.wordpress.com/2008/10/tcc.pdf">CLIQUE AQUI</a> e <a href="http://robsonmendonca.files.wordpress.com/2008/10/tcc2.pdf">AQUI TAMBÉM</a> .</p>
<p class="MsoNormal" style="line-height:200%;text-align:justify;margin:0;"> </p>
<p class="MsoNormal" style="line-height:200%;text-align:justify;margin:0;"><span style="font-family:&#34;">Day by day the research concerning Software Factories has increased, especially due to recent term growth in the worldwide scene. Indian and Chinese Factories had become quality and success reference, making countries like Brazil came to pursue a similar model that it has been able to manage multiple discussion operations. Operating an exigent and extremely dynamic market which the ideal balance between costs and quality impose the success at business world, the productivity has started to be a basic aspect for any organization survival. However, to reach this standard, it must be clear factors as processes, quality standards and manufacture solutions frameworks intervene directly with the final result. From this point of view, this <span style="color:#000000;">technician-scientific</span> paper presents a study of this software production model, making a literature revision of the structure and three basic models for its implantation: <span style="color:#000000;">RUP - unified process, CMMI and PMBOK. Thus, it´s going to discuss about involved characteristics and make </span>a more effective software operation pondering cost, business value increasing, quality, support forecasting and efficacy problem solutions, or better, it´s going to show a model which condenses the main parts of three models study; through mapping of the main software processes existents in software factories operation.</span></p>
<p class="MsoNormal" style="line-height:200%;text-align:justify;margin:0;"> </p>
<p class="MsoNormal" style="line-height:200%;text-align:justify;margin:0;">Download the complete version: <a href="http://robsonmendonca.files.wordpress.com/2008/10/tcc.pdf">CLICK HERE</a> and <a href="http://robsonmendonca.files.wordpress.com/2008/10/tcc2.pdf">HERE TOO</a> .</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[El flujo de eventos del día feliz]]></title>
<link>http://synergix.wordpress.com/?p=261</link>
<pubDate>Thu, 02 Oct 2008 17:06:38 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/10/02/el-flujo-de-eventos-del-dia-feliz/</guid>
<description><![CDATA[Un flujo de eventos consiste en enumerar los pasos que sucesivamente realizan los actores y el siste]]></description>
<content:encoded><![CDATA[<p>Un <a href="http://synergix.wordpress.com/2008/09/23/casos-de-uso-flujos-de-eventos/">flujo de eventos</a> consiste en enumerar los pasos que sucesivamente realizan <a href="http://synergix.wordpress.com/2008/07/25/definimos-actor-como/">los actores</a> y el sistema en el contexto de un <a href="http://synergix.wordpress.com/2008/06/19/definimos-caso-de-uso/">caso de uso</a>. Es decir, que un flujo de eventos es en su forma más básica un simple listado de acciones, que corresponden con un caso de uso en concreto.</p>
<p>Si pensamos un poco en el tema nos podemos percatar que la funcionalidad promedio de un caso de uso ha de tener bifurcaciones e incluso bucles. Esto es natural pensarlo ya que hay una similitud muy fuerte entre la noción de algoritmo y la de flujo de eventos vistos estos como listado de pasos.</p>
<p>Sin embargo, a diferencia de las notaciones formales utilizadas para expresar algoritmos, los flujos de eventos se construyen en lenguaje natural, lo cual impone limitaciones sobre cuan precisamente podemos indicar condiciones y bifurcaciones sin comprometer la <a href="http://synergix.wordpress.com/2008/09/27/todo-requisito-debe-ser-preciso-y-legible/">claridad</a>.</p>
<p>La solución a este problema claro esta, es la de tener más de un flujo de eventos. Tendremos uno sencillo y claro, que exprese lo que ha de ocurrir en el caso más probable y a su vez, tendremos otros <a href="http://synergix.wordpress.com/2008/10/12/flujos-de-eventos-alternativos/">flujos alternativos</a> que lidien con las condiciones de error o casos que requieran bifurcación.</p>
<p>Al flujo de eventos principal, ese que contiene el caso más probable, se le llama <em>Flujo de Eventos del Día Feliz,</em> como forma de hacer referencia a la ausencia de condiciones de error. En otras palabras, le llamamos día feliz ya que en este flujo de eventos principal vamos a asumir que todo ocurre de la mejor forma: <a href="http://synergix.wordpress.com/2008/07/25/definimos-actor-como/">el actor</a> tiene disponible la información y la indica sin fallas, el sistema puede completar todas las operaciones y así sucesivamente para cada posible desviación. En el flujo del día feliz simplemente todo ocurre correctamente.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Plantillas: Cierre de Iteración]]></title>
<link>http://synergix.wordpress.com/?p=255</link>
<pubDate>Wed, 01 Oct 2008 08:50:16 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/10/01/plantillas-cierre-de-iteracion/</guid>
<description><![CDATA[Si el Plan de Iteración es la planificación de un periodo corto de tiempo dentro del proyecto, ent]]></description>
<content:encoded><![CDATA[<p>Si el <a href="http://synergix.wordpress.com/2008/07/18/plantillas-plan-de-iteracion/">Plan de Iteración</a> es la planificación de un periodo corto de tiempo dentro del proyecto, entonces el Cierre de Iteración es el informe del cumplimiento de dicho plan.</p>
<p>El documento de cierre de iteración es una presentación de las actividades realizadas, los recursos dedicados, los hitos, los riesgos concretados, así como cualquier otro evento o información de la que queramos dejar constancia.</p>
<p>He de comentar que el Cierre de Iteración que presento aquí tiene una característica adicional: el control de evaluación de los artefactos. La idea es que en el Plan de Aseguramiento de Calidad se indiquen los criterios que deben ser evaluados en cada artefacto, para que luego entre el Plan de Iteración y el Cierre de Iteración se siga la pista de la evolución de estas calificaciones.</p>
<p>Es una característica un poco engorrosa, pero si se cuenta con recursos para mantener un equipo de control de calidad entonces se va a poder llevar a cabo este control, con miras a mejorar la ejecución del proyecto en su conjunto.</p>
<p>En cualquier caso, acá esta la plantilla del artefacto Cierre de Iteración:</p>
<p><a href="http://synergix.wordpress.com/files/2008/10/cierre-de-iteracion.pdf">Cierre de Iteración (en PDF)</a></p>
<p><a href="http://www.scribd.com/doc/6329192/Cierre-de-Iteracion">Cierre de Iteración (en iScribd)</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Definimos retrabajo como...]]></title>
<link>http://synergix.wordpress.com/?p=252</link>
<pubDate>Wed, 01 Oct 2008 07:42:59 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/10/01/definimos-retrabajo-como/</guid>
<description><![CDATA[La elaboración de un diseño o producto, conforme a unas especificaciones conocidas, da lugar a la ]]></description>
<content:encoded><![CDATA[<p>La elaboración de un diseño o producto, conforme a unas especificaciones conocidas, da lugar a la posibilidad de fallar en el cumplimiento de lo requerido. Toda diferencia entre lo que se nos pidió y lo que estamos entregando como resultado de nuestro trabajo es considerado un fallo de calidad y se le suele llamar <em>inconformidad</em>.</p>
<p>Si la inconformidad es muy grave y compromete la aceptación del producto por parte del cliente, es necesario dedicar esfuerzos adicionales en lograr que el producto sea conforme a lo especificado. A este esfuerzo adicional es a lo que llamamos <em>retrabajo</em>.</p>
<p>Técnicamente como para el glosario:</p>
<blockquote><p><strong>Inconformidad.</strong> Fallo de calidad definido como la desviación del producto de su especificación.</p></blockquote>
<p>Y también:</p>
<blockquote><p><strong>Retrabajo</strong>. Esfuerzo adicional necesario para la corrección de una inconformidad en algún producto.</p></blockquote>
<p>El problema que surge con el retrabajo es obvio: es un esfuerzo adicional que no puede en buena lid ser cobrado al cliente, pero que es necesario para que este quede conforme con lo que hemos hecho para él. La idea es entonces minimizar la cantidad de retrabajo en el que incurramos, objetivo deseado pero dificil de lograr sin un adecuado sistema de gestión de calidad.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Todo requisito debe ser preciso y legible]]></title>
<link>http://synergix.wordpress.com/?p=238</link>
<pubDate>Sat, 27 Sep 2008 21:28:39 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/09/27/todo-requisito-debe-ser-preciso-y-legible/</guid>
<description><![CDATA[La especificación de un sistema es un trabajo retador. En él participan no solo los desarrolladore]]></description>
<content:encoded><![CDATA[<p>La especificación de un sistema es un trabajo retador. En él participan no solo los desarrolladores de aplicaciones, sino también los clientes. Esto significa que la especificación de requisitos, ya sea como <a href="http://synergix.wordpress.com/2008/06/19/definimos-caso-de-uso/">casos de uso</a> o como declaraciones tradicionales tipo <em>"el sistema debe..."</em> ha de ser entendida a la vez, por lo clientes y por los desarrolladores. Dicho en otras palabras: la especificación contiene detalles técnicos que los clientes luchan por entender, a la vez que incluye información sobre el negocio que es nueva y potencialmente confusa para los desarrolladores.</p>
<p>Esta situación nos obliga a luchar por dos atributos básicos en todo nuestro sistema de requisitos: la claridad y la precisión.</p>
<blockquote><p><strong>Precisión de un requisito.</strong> Un requisito es preciso cuando indica sin ambigüedad lo que se desea especificar. Debe ir directo al punto y evitar todo adorno en el lenguaje. Debe documentar solo un aspecto del sistema y lo debe de hacer en forma exacta.</p></blockquote>
<p>Y también</p>
<blockquote><p><strong>Claridad o legibilidad de un requisito.</strong> Un requisito es legible cuando el lenguaje en el que esta escrito es fácil de entender, tanto por los clientes como los analistas. La legibilidad se extiende no solo a la especificación escrita, sino también a los formalismos gráficos como los diagramas de casos de uso.</p></blockquote>
<p>Es curioso observar que en los cursos universitarios sobre el tema, los profesores tengan la presión de explicar métodos y técnicas avanzadas, como las relaciones de <a href="http://synergix.wordpress.com/2008/06/05/casos-de-uso-avanzados-relacion-extend/">extensión</a> e <a href="http://synergix.wordpress.com/2008/06/07/casos-de-uso-avanzados-relacion-de-inclusion/">inclusión</a> de casos de uso, forzando al estudiante a adoptar estar técnicas en forma demasiado temprana. Esto causa una deformación profesional en el estudiante, quien sale del curso con la creencia que es mejor una especificación sofisticada que haga uso de todo lo visto en el curso, en lugar de una aproximación más informal y relajada que puede en verdad ser entendida por el cliente.</p>
<p>El lugar correcto para la extensión y la inclusión, así como para todas las técnicas de modelado de requisitos más sofisticadas, es en aquellos dominios de aplicación donde los requisitos reales sean muy complejos. Es decir por lo tanto, que en la práctica el analista ha de hacer esfuerzos por mantenerse sencillo, normalmente no vale la pena la complejidad del modelo de requisitos.</p>
<p>También es de hacer notar, que en mi experiencia la mayoría de los clientes intentan hacer otro tanto. Ellos suelen expresar lo que necesitan en la forma más directa que tienen disponible, sin embargo dado que los clientes son a su vez profesionales en un área especifica, la forma correcta en la ellos se expresan suponen tensión a los desarrolladores, quienes deben luchar por <a href="http://synergix.wordpress.com/2008/07/05/tareas-desarrollar-vocabulario-del-cliente/">desarrollar un vocabulario común</a> con el cliente para poder comprender sin errores lo que este pide.</p>
<p>En conclusión: lo sencillo se entiende más y la especificación de un sistema ha de entenderse bien. Cuan sofisticado hagamos nuestro modelo de casos de uso o nuestro documento de especificación, no es ni de lejos lo que en verdad importa. Es mucho mejor un caso de uso sencillo pero que <a href="http://synergix.wordpress.com/2008/08/04/un-buen-caso-de-uso-captura-valor-de-negocio/">captura valor de negocio</a>, que uno sofisticado que haga un uso abundante de las técnicas más esotericas de modelado.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[RUP (выдержки, тезисы)]]></title>
<link>http://sysana.wordpress.com/?p=139</link>
<pubDate>Fri, 26 Sep 2008 17:21:16 +0000</pubDate>
<dc:creator>deekobraz</dc:creator>
<guid>http://sysana.bg.wordpress.com/2008/09/26/methods_development_rup-abstract/</guid>
<description><![CDATA[Каскадная разработка (waterfall) - модель ЖЦ (процесса разра]]></description>
<content:encoded><![CDATA[<p><strong>Каскадная разработка (waterfall)</strong> - модель ЖЦ (процесса разработки) ПО, в которой предыдущий этап полностью заканчивается до начала следующего. Подходит, когда имеется исцерпывающее представление о решаемой проблеме, которое не меняется в процессе разработки.<br />
<img class="alignleft" title="Каскадная разработка 1" src="http://www.intuit.ru/department/se/compprog/2/02_03sm.gif" alt="" width="620" height="365" /><br />
<img class="alignleft" title="Каскадный процесс 2" src="http://www.intuit.ru/department/se/verify/1/01-01sm.jpg" alt="" width="620" height="243" /><br />
Спиральная (spiral) = эволюционная (evolutionary) = итеративная (iterative) - ...<br />
<img class="alignleft" title="Итеративная разработка 1" src="http://ooad.asf.ru/standarts/RUP/Kaskad/Images/2.gif" alt="" width="450" height="325" /></p>
<p><a href="http://www.ibm.com/developerworks/ru/doc/rational.html?S_TACT=105AGX99&#38;S_CMP=SIMPLERS" target="_blank">Библиотека документов IBM Rational (рус.)</a><br />
<a href="http://www-01.ibm.com/software/rational/sw-library/">Библиотека документов IBM Rational (англ.)</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Diagramas de Clase]]></title>
<link>http://synergix.wordpress.com/?p=228</link>
<pubDate>Fri, 26 Sep 2008 06:22:03 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/09/26/diagramas-de-clase/</guid>
<description><![CDATA[De entre todos los tipos de diagramas UML, el más común y conocido es el diagrama de clases. Dicho]]></description>
<content:encoded><![CDATA[<p>De entre todos los <a href="http://synergix.wordpress.com/2008/07/20/tipos-de-diagramas-en-uml/">tipos de diagramas UML</a>, el más común y conocido es el <em>diagrama de clases</em>. Dicho diagrama ilustra una vista de los componentes estáticos del sistema, ya sean estos clases o módulos, indicando las relaciones entre estas y los atributos (datos) de las clases, así como sus métodos (código).</p>
<p>El diagrama de clases puede ser utilizado para presentar la vista estática del <a href="http://synergix.wordpress.com/2008/07/10/modelo-de-dominio/">modelo de dominio</a>, del modelo de diseño, o bien, del detalle de la implementación de un sistema en un lenguaje de programación orientado a objeto, como Eiffel, Java o C++. Para todos estos usos, lo que se desea es expresar las unidades en que el código se organiza -las clases- así como algunas características de estas, notablemente como dije antes, sus relaciones, atributos y métodos.</p>
<p>Es valido combinar los diagramas de clase con paquetes, dando lugar a un diagrama que muestra simultáneamente clases y paquetes. Dicha práctica ayuda a documentar elementos que estén en distintos paquetes pero que guarden alguna relación, aún cuando la especificación de UML habla de diagramas de tipos diferentes para los paquetes y las clases.</p>
<p>En este blog se encuentran muchos ejemplos de <em>diagramas de clase</em>, ya que se han incluido en los post que lo requieren como parte del asunto tratado. Algunos de estos son:</p>
<ul>
<li><a href="http://synergix.wordpress.com/2008/07/10/modelo-de-dominio/">"Modelo de Dominio"</a> donde se utiliza un diagrama de clases para expresar el modelo inicial.</li>
<li><a href="http://synergix.wordpress.com/2008/07/20/tipos-de-diagramas-en-uml/">"Tipos de diagramas de UML"</a> donde se utiliza un diagrama de clases para decir cuales tipos de diagramas existen en UML y la forma en que estos se encuentran clasificados.</li>
<li><a href="http://synergix.wordpress.com/2008/09/25/diagrama-de-definicion-de-elemento-uml/">"Diagrama de definición de elemento"</a> donde un diagrama de clases tomado del metamodelo de UML ilustra los conceptos <em>elemento</em> y <em>relación</em> de UML.</li>
</ul>
<p>Por lo anterior, si se queiren ver ejemplos de un diagrama de clases, basta con dar un paseo por el blog, seguro encontrará muchos ejemplos apropiados.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Diagrama de definición de Elemento: UML::Classes::Kernel::Root]]></title>
<link>http://synergix.wordpress.com/?p=223</link>
<pubDate>Thu, 25 Sep 2008 17:48:24 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/09/25/diagrama-de-definicion-de-elemento-uml/</guid>
<description><![CDATA[UML es un lenguaje de modelado capaz de describir sistemas como conjuntos de elementos y relaciones.]]></description>
<content:encoded><![CDATA[<p>UML es un lenguaje de modelado capaz de describir sistemas como conjuntos de elementos y relaciones. Esta forma de describir sistemas es lo suficientemente potente como para poder describir las nociones del propio lenguaje UML como un conjunto de elementos y relaciones.</p>
<p>Como ejemplo de lo anterior podemos tomar el diagrama UML::Classes::Kernel::Root, parte del metamodelo de UML, en el cual se describe la noción de <em>Elemento</em>, en termino de sus relaciones con otros conceptos. Dicha descripción se presenta como un diagrama de clases convencional.<br />
<a href="http://synergix.wordpress.com/files/2008/09/uml_classes_kernel_root.jpg"><img class="aligncenter size-medium wp-image-224" title="Root" src="http://synergix.wordpress.com/files/2008/09/uml_classes_kernel_root.jpg?w=300" alt="" width="300" height="227" /></a></p>
<p style="text-align:center;">Fig. 1 - <strong>Descripción del concepto "Elemento" de UML<br />
(Diagrama UML::Classes::Kernel::Root del metamodelo de UML)</strong></p>
<p>Esta forma de definir los conceptos del lenguaje UML recurriendo a los propios mecanismos del lenguaje es conocido como <em>Metamodelado</em> y es uno de los puntos fuertes del lenguaje UML. Ahora, con el diagrama en mano, podemos ver los detalles del concepto de elemento simplemente leyendo las relaciones presentadas en el diagrama.</p>
<p>Por ejemplo, se deja ver en el diagrama que:</p>
<ul>
<li>Un elemento puede tener cualquier número de comentarios. Cero, uno o más.</li>
<li>Un elemento puede o no, tener un dueño. En caso que lo tenga será único.</li>
<li>Un elemento puede ser dueño de cualquier número de elementos.</li>
<li>Las relaciones y comentarios son elementos a su vez.</li>
<li>Las relaciones tienen un tipo especializado: las relaciones dirigidas. Estas tienen un elemento de origen y otro de destino.</li>
<li>El origen y el destino de una relación dirigida puede ser el mismo elemento.</li>
</ul>
<p>Entre otros posibles puntos mostrados en el gráfico.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[RSDC UK 2008 Review]]></title>
<link>http://mikemacd.wordpress.com/?p=269</link>
<pubDate>Wed, 24 Sep 2008 23:59:42 +0000</pubDate>
<dc:creator>mikemacd</dc:creator>
<guid>http://mikemacd.bg.wordpress.com/2008/09/25/rsdc-uk-2008-review/</guid>
<description><![CDATA[So RSDC UK is over and I&#8217;m finally getting a chance to blog about it. It was cool to meet so m]]></description>
<content:encoded><![CDATA[<p>So RSDC UK is over and I'm finally getting a chance to blog about it. It was cool to meet so many old friends and new make new connections. There were even some blog readers that were able to recognise me <a href="http://www.urbandictionary.com/define.php?term=IRL" target="_blank">IRL </a>by mentally adding 6 years and a beard on to my blog picture :D Very impressive!</p>
<p>I think it was the best UK Rational event for a long time, and there were some great speakers. Unfortunately the chairs were uncomfortable, some of the rooms too small and the venue would do well to invest in some air conditioning. I suspect that going to an event at the Royal College of Phyicians in the height of summer (assuming we ever have one in this country again) would be enough cause to need a doctor. Regardless of that, and the amount of walking up and down stairs I did, I think it was a great event. The buzz was mainly about the <a href="http://mikemacd.wordpress.com/?s=jazz" target="_blank">Jazz </a>platform and associated tools (<a href="http://mikemacd.wordpress.com/?s=RTC" target="_blank">RTC</a>, <a href="http://mikemacd.wordpress.com/2008/07/11/first-look-ibm-rational-quality-manager/" target="_blank">RQM</a>, <a href="http://mikemacd.wordpress.com/2008/07/04/first-look-ibm-rational-requirements-composer/" target="_blank">RRC</a>).</p>
<p><span style="text-decoration:underline;"><strong>Day 1</strong></span></p>
<p>The conference was opened by Graham Spittle (IBM SWG UKISA VP) and Danny Sabbah (IBM Rational Worldwide VP) who set the scene well for <a href="http://en.wikipedia.org/wiki/Erich_Gamma" target="_blank">Erich Gamma</a> (in real life) and <a href="http://www.booch.com/architecture/blog.jsp" target="_blank">Grady Booch</a> (in <a href="http://www.secondlife.com/" target="_blank">Second Life</a>). Unfortunately the Second Life link went belly up and we did't get all of Grady's keynote. Which must have been extremely annoying for Grady since it was 3:30am for him! Erich then took over and gave an excellent Rational Team Concert demo (<a href="http://mikemacd.wordpress.com/?s=RTC" target="_blank">RTC</a>). When he started his demo I was a bit worried he was going to cover all of my planned demo too, but fortunately it didn't overlap completely. Since he did the Monday keynote and I did the last slot on Tuesday there was enough time and quantity of information for the delegates so a little overlap didn't hurt. Erich also did a panel discussion on Agile development in the context of Geographically Distributed Development along with Scott Ambler and Julian Holmes moderated by Anthony Kesterton.</p>
<p>The great TQ (Terry Quatrani) was also present speaking on Agile Modelling, I had a meeting to attend so unfortunately didn't get to see her speak which is a shame because she's always great. I did speak to people that did go who just confirmed that I'd have rather gone than have a meeting!</p>
<p>Following the break it was then time for me to speak along with Linda Weedon of PwC and <a href="http://mattarcherblog.wordpress.com/" target="_blank">Matt Arch</a>er (also of IJI) on "CUPID - Implementing the IBM Rational Unified Process at PricewaterhouseCoopers" which is all about our experiences in deploying UP using a practice based approach. I think the session went really well, we had some pertinent questions which is always a good sign of people staying awake and listening :P To close the day <a href="http://www.amazon.co.uk/Modelling-Addison-Wesley-Object-Technology-Paperback/dp/0201709139/ref=sr_1_5?ie=UTF8&#38;s=books&#38;qid=1222300320&#38;sr=1-5" target="_blank">Ian Spence</a> gave an excellent (as usual) talk on "Conversations in Context: Using Use Cases on Agile Projects". Following an excellent dinner and a few glasses of wine kindly provided by a competitor it was time to commute home and eventually get to sleep at around 1am. It's much easier at conferences when you're staying at or really close to the venue! During the dinner there was a caricature artist or two wondering around who came to our table. Naturally we volunteered Ian to be caricatured and I managed to take a quick pic with my phone of him with his Mad Scientist caricature.</p>
[caption id="attachment_272" align="alignnone" width="378" caption="Ian Spence - the Mad Scientist"]<a href="http://mikemacd.files.wordpress.com/2008/09/ian_mad_scientist.jpg"><img class="size-full wp-image-272" title="ian_mad_scientist" src="http://mikemacd.wordpress.com/files/2008/09/ian_mad_scientist.jpg" alt="Ian Spence - the Mad Scientist" width="378" height="409" /></a>[/caption]
<p>It's a little known fact that Ian is also a Kung Fu master which is why his hand appears blurred in this pic. Fractions of a second later my phone was whisked from my hand at the speed of lightening.</p>
<p><span style="text-decoration:underline;"><strong>Day 2</strong></span></p>
<p>Day 2 was for some peculiar reason started 30mins earlier than day 1. This didn't impress me, especially since like most people I hadn't noticed until I was texted while on the train on the way in. Fortunately I was early enough anyway to get there on time. Mike O'Rourke opened the day with some description of the Rational 2.0 Roadmap (Jazz and future products). Rumours were confirmed about Rational Project Management and Rational Enterprise Reporting being released Q1 next year.</p>
<p><a href="http://en.wikipedia.org/wiki/Ivar_Jacobson" target="_blank">Ivar Jacobson</a> then gave an excellent keynote on "Back to basics: Getting Good Software Quickly and at Low Cost" which focussed on using practices in a smart way, not following processes. I've seen Ivar speak many times, and many times on practice based development, which isn't that surprising since I work for him but it's always entertaining to hear the man speak.</p>
<p>I also had some meetings on Day 2 but the sessions that really stood out for me were Peter Eeles talking on "The Rise of the Development Environment Architect" which was based on <a href="http://www.ibm.com/developerworks/rational/library/edge/08/apr08/eeles/" target="_blank">his paper on DevelopWorks</a>. This is an excellent formalisation of something that has been part of my job for some time. I also enjoyed Derek Holt's talk on "RTC and the Agile Development Strategy".</p>
<p>Finally to wrap up Day 2 I presented on own this time on "Live Jazz: Process Execution in IBM Rational Team Concert". This started off with a demo of <a href="http://www.esswork.com/" target="_blank">EssWork </a>in Eclipse, shell sharing with RTC and creating a new process by composing practices as described in Ivar's slideware at morning keynote. I then started executing my new process in RTC. It was the end of a long two days in a really hot room so I kept it quite light and I think it went well - and hopefully the audience got something different and new from the talk. If you are now kicking yourself that you missed this talk, fear not I'll be repeating most of it as part of a webinar I'm doing in October - <a href="http://mikemacd.wordpress.com/2008/09/24/free-webinar-series-for-october-2008-from-iji/" target="_blank">more details here</a>.</p>
<p>Thanks to all those who attended my talks and came and said hello, especially those that read the Mac Daddy! :D I'll post the slides in a few days :)</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Algunas referencias sobre metodologías de desarrollo de software]]></title>
<link>http://victorgallego.wordpress.com/?p=56</link>
<pubDate>Tue, 23 Sep 2008 10:55:00 +0000</pubDate>
<dc:creator>Víctor Gallego</dc:creator>
<guid>http://victorgallego.bg.wordpress.com/2008/09/23/algunas-referencias-sobre-metodologias-de-desarrollo/</guid>
<description><![CDATA[ 
La mayor parte de las visitas (son muy pocas todavía) que entran al blog buscan información sob]]></description>
<content:encoded><![CDATA[<p> </p>
<p><span style="font-size:x-small;">La mayor parte de las visitas (son muy pocas todavía) que entran al blog buscan información sobre metodologías de desarrollo de software (podeis ver mi opinión sobre el tema en <a href="http://victorgallego.wordpress.com/2008/09/12/metodologias-frameworks-y-estandares-para-el-desarrollo-de-software-%c2%bfcomo-lo-he-visto-y-como-lo-veo/">este post</a>). Hoy contaré cuales han sido algunas de mis fuentes. Os facilito unos cuantos enlaces y lecturas que a mí me han resultado útiles:</span></p>
<p><span style="font-size:x-small;"><strong>RUP (Rational Unified Process) y UML (Unified Model Language)</strong></span></p>
<p><span style="font-size:x-small;">Mis aprendizajes sobre RUP y UML se basaron en dos libros, estos son los títulos:</span></p>
<ul>
<li> <span style="font-size:x-small;">Unified Modeling Language User Guide</span></li>
<li><span style="font-size:x-small;">The Unified Software Development Process</span></li>
</ul>
<p> <span style="font-size:x-small;">Los dos son de los mismos autores, los padres de UML y RUP: Ivar Jacobson, Grady Booch y James Rumbaugh. Y los dos son de 1999, ya ha llovido desde entonces, RUP ha evolucionado y creo que también hay libros más adecuados, pero las bases de UML y RUP pueden verse en estos dos títulos. <span style="font-size:x-small;"><span style="font-size:x-small;">En la web, yo buscaría en los white papers y red books de IBM, podeis usar este enlace: </span><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><a href="http://www.google.es/search?hl=es&#38;q=rup+redbook+site%3Aibm.com&#38;btnG=Buscar&#38;meta="><span style="font-size:x-small;">http://www.google.es/search?hl=es&#38;q=rup+redbook+site%3Aibm.com&#38;btnG=Buscar&#38;meta=</span></a><span style="font-size:x-small;"><strong>MSF (Microsoft Solution Framework)</strong></span></p>
<p><span style="font-size:x-small;"><span style="font-size:x-small;">Sobre MSF en el Download Center de la web de Microsoft, podéis encontrar todo sobre MSF: </span></span><a href="http://www.microsoft.com/downloads/results.aspx?pocId=&#38;freetext=MSF&#38;DisplayLang=en"><span style="font-size:x-small;">http://www.microsoft.com/downloads/results.aspx?pocId=&#38;freetext=MSF&#38;DisplayLang=en</span></a></p>
<p><span style="font-size:x-small;">Las dos últimas versiones son "MSF for Agile Software Development" y "MSF for CMMI", cada una con orientaciones diferentes, pero ni mucho menos puede decirse que la versión anterior a estas dos (MSF v3), esté ya caduca, es muy recomendable también su lectura y, por qué no, su aplicación, quizás MSF v3 se adapte mejor a tu equipo…</span></p>
<p><span style="font-size:x-small;"><strong>SCRUM</strong></span></p>
<p><span style="font-size:x-small;"><span style="font-size:x-small;">Para Scrum, esta es la página que visitaría, </span></span><a href="http://www.controlchaos.com/"><span style="font-size:x-small;">www.controlchaos.com</span></a><span style="font-size:x-small;">, con cuidado de no tomarlo de un modo ortdoxo..</span></p>
<p><span style="font-size:x-small;"><strong></strong></span></p>
<p><span style="font-size:x-small;"><strong>LEAN</strong></span></p>
<p><span style="font-size:x-small;">Para aprender Lean, os puedo recomendar que leais "Lean Thinking" de James P. Womack y Daniel T. Jones. En internet, podeis visitar <a href="http://www.lean.org">www.lean.org</a>, y la versión de Lean aplicada al desarrollo de software que propone Poppendieck <a href="http://www.poppendieck.com">http://www.poppendieck.com/</a></span></p>
<p><strong>Métrica</strong></p>
<p>Los manuales de métrica pueden descargarse de la web del Consejo Superior de Informática, un organismo dependiente de la administración española, esta es la página: <a href="http://www.csi.map.es/csi/metrica3/index.html">www.csi.map.es/csi/metrica3/index.html</a></p>
<p><strong>Six Sigma</strong></p>
<p>No os puedo dar una buena referencia sobre Six Sigma, por suerte para mi pude contar con los manuales de una empresa que aplica Six Sigma, y nunca me preocupé demasiado buscando por internet.</p>
<p> </p>
<p>Acabo con algunas consideraciones que deben estar por encima de la metodología que utilicemos. Si no sois nuevos desarrollando software, posiblemente no sean más que obviedades, pero si no llevais mucho tiempo, quizás os convenga leerlas.</p>
<ul>
<li>Las metodologías no solucionan problemas, los problemas los solucionamos las personas. Está bien contar con un método que normalice el trabajo y sirva como guía, pero no hay una relación directa entre utilizar determinada metodología y tener éxito en un proyecto.</li>
<li>Una comunicación correcta es fundamental. Durante el proceso de desarrollo de software generaremos mucha documentación dirigida a distintas personas con distintos roles. Es vital utilizar un lenguaje y un nivel de detalle adecuado para cada persona. Antes de empezar a elaborar cualquier documento, debemos pensar para quien estamos escribiendo.</li>
<li>La utilización de una metodología es un medio, no un objetivo. El objetivo será mejorar determinado proceso de negocio, y nuestra solución debe cumplir este requisito, hacerlo bajo cierto método es un solo un aspecto secundario.</li>
<li>Trabajar con una aplicación informática que nos permita gestionar  todo el proceso desarrollo de software, es fundamental para tener control sobre lo que estamos haciendo. Los informáticos somos un ejemplo constante de que "en casa del herrero, cuchillo de palo". Nos vamos apañando para las tareas de gestión del área con Excel y Project, sin embargo nos escandalizamos cuando uno de nuestros clientes ( no técnico) hace lo mismo con sus procesos de negocio.</li>
<li>Contar conocimientos de varias metodologías es positivo. Como en todos los órdenes de la vida, cuanto más conocimientos tengamos, más recursos tendremos y más aportaciones podremos hacer. Posturas anti (ej.: AntiMicrosoft, AntiLinux,…) no aportan nada. No olvidemos que hablamos de tecnologías de la información y no de política o religión.</li>
</ul>
<p>Acabo con una pregunta, ¿cómo lo veis vosotros? ¿Por donde irá el mercado en el futuro?</p>
<p></span></span></span></span></span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Casos de Uso: Flujos de Eventos]]></title>
<link>http://synergix.wordpress.com/?p=221</link>
<pubDate>Tue, 23 Sep 2008 06:33:45 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/09/23/casos-de-uso-flujos-de-eventos/</guid>
<description><![CDATA[Un caso de uso es un escenario de interacción entre el sistema y un ente externo; es decir: es la d]]></description>
<content:encoded><![CDATA[<p>Un <a href="http://synergix.wordpress.com/2008/06/19/definimos-caso-de-uso/">caso de uso</a> es un escenario de interacción entre el sistema y un ente externo; es decir: es la descripción de una funcionalidad del sistema, visto desde el punto de vista de un ente externo que demanda dicha funcionalidad.</p>
<p>Al ente externo le llamamos <a href="http://synergix.wordpress.com/2008/07/25/definimos-actor-como/">actor</a> por cuanto un caso de uso puede ser visto también como un guión, que a la manera de los guiones de una obra de teatro, dice paso a paso lo que el actor ha de hacer.</p>
<p>Es mucho lo que podemos decir de un caso de uso: nombre, descripción, pre condiciones, etc. Sin embargo, el aspecto más interesante de un caso de uso luego de la descripción del mismo es sin duda el <em>flujo de eventos</em>.</p>
<p>Al flujo de eventos lo podemos relacionar con un dialogo. Línea a línea, el flujo de eventos indica quien habla y qué dice. La secuencia se suele iniciar con algo dicho por el actor, y se continua intercalando sucesivamente lo hecho por el sistema con lo dicho por el actor. A cada una de estas líneas o indicaciones, le podemos llamar <em>paso</em>.</p>
<p>Un buen flujo de eventos recoge con detalle la identidad de quien realiza el paso, expresando sin ambigüedad la acción realizada. Es decir, que un buen paso ha de ser siempre una oración con sentido completo, escrita en voz activa, iniciando con el nombre del actor o bien del sistema que realiza la acción e indicando exhaustivamente los elementos de información que se intercambian.</p>
<p>Dichas oraciones con sentido completo, sin ambigüedad y demás características ya mencionadas, no son difíciles de redactar. Son de hecho la forma más directa de decir lo que hay que decir. Y es que a la hora de redactar un flujo de eventos debemos evitar recurrir a formas de redacción en prosa típicas de nuestros textos comunes. No vale sustituir el nombre del actor por un pronombre o demostrativo que le haga referencia. A la larga, dicha omisión del nombre del actor va a ser una fuente de ambigüedad y nos puede traer problemas.</p>
<p>Si bien para quienes acostumbran a redactar con estilo, estas normas para los flujos de eventos pueden sonar extrañas, son normas muy comunes para cuando queremos redactar documentos de requisitos. Básicamente estamos aplicando aquí los mismos consejos que se dan para redactar bien un requisito tradicional, del estilo <em>"el sistema debe..."</em> por lo que en Internet abundan los detalles sobre este particular.</p>
<p>Finalmente, la prosa tiene su refugio en la descripción breve de un caso de uso; y dado que es esta descripción breve la parte más importante del caso de uso, podemos decir que a la final todos vamos a poder estar contentos. Quienes quieren una redacción con estilo van a encontrar lo que buscan en la descripción breve y quienes necesitan los detalles operativos del caso de uso lo van a encontrar en los pasos del flujo de eventos.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[¿Qué son las llamadas Mejores Prácticas?]]></title>
<link>http://synergix.wordpress.com/?p=219</link>
<pubDate>Tue, 23 Sep 2008 04:05:37 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/09/23/que-son-las-mejores-practicas/</guid>
<description><![CDATA[Las mejores prácticas son características reconocibles de los procesos de las organizaciones de é]]></description>
<content:encoded><![CDATA[<p>Las <strong>mejores prácticas</strong> son características reconocibles de los procesos de las organizaciones de éxito. Suelen ser conductas observables, llenas de sentido común; que al estar presentes en las mejores empresas de cada sector, se piensa que son parte del éxito de dichas empresas. Por supuesto, se piensa también que de asumirse, toda empresa se puede beneficiar, por lo que la predica en pos de las mejores prácticas es parte importante de la planificación a largo plazo de las organizaciones que desean mejorar y crecer.</p>
<p>A nivel personal, podemos establecer un símil con los consejos más comunes sobre como llevar una vida sana y exitosa. Consejos tales como <em>"pensar antes de actual"</em> o bien el elemental <em>"dormir lo suficiente cada noche"</em> son el equivalente de las mejores prácticas, aplicadas a como conducir la propia vida.</p>
<p>En el caso de las empresas, se confía en los institutos de investigación de cada sector, quienes identifican sistemáticamente las prácticas en uso, con el objetivo de publicar catálogos de mejores prácticas, que sean apropiadas para el sector industrial que se este considerando. Dichos catálogos suelen ser de acceso libre y son conocidos bajo diferentes denominaciones, como si se estuviera hablando de cosas diferentes en cada sector. Pero no hay confusión que valga: para todo sector valen distintas mejores prácticas, pero llámense como se quieran llamar, todas son mejores prácticas y poco más.</p>
<p>Cuando se esta diseñando un proceso empresarial, es útil considerar las mejores prácticas conocidas del sector o actividad en la que el proceso vive. Dado que existen gran cantidad de sectores, el analista de procesos puede beneficiarse de conocer que se considera como una buena idea, dando entonces una base sistemática para identificar objetivos de diseño para los procesos, más allá de cubrir las necesidades inmediatas demandadas por los clientes.</p>
<p>He de hacer notar también, que muchas de las mejores prácticas pueden ser apoyadas por sistemas de información apropiados; o dicho de otra forma, que hoy en día existen gran cantidad de sistemas de información, muchos de ellos construidos para dar cumplimiento a una o más de las mejores prácticas de sector destino del sistema.</p>
<p>Así que el asunto de las prácticas conviene tenerlo en mente.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Metodologías, frameworks y estándares para el desarrollo de software. ¿Cómo lo he visto y cómo lo veo?]]></title>
<link>http://victorgallego.wordpress.com/?p=49</link>
<pubDate>Fri, 12 Sep 2008 12:35:03 +0000</pubDate>
<dc:creator>Víctor Gallego</dc:creator>
<guid>http://victorgallego.bg.wordpress.com/2008/09/12/metodologias-frameworks-y-estandares-para-el-desarrollo-de-software-%c2%bfcomo-lo-he-visto-y-como-lo-veo/</guid>
<description><![CDATA[Mi primer contacto profesional con una metodología estándar, en este asunto de desarrollar softwar]]></description>
<content:encoded><![CDATA[<p>Mi primer contacto profesional con una metodología estándar, en este asunto de desarrollar software, sería allá por el 96 o 97. Nuestro cliente planeaba usar Métrica, la metodología de desarrollo de software de la administración española. Y nosotros nos adelantamos, utilizándola en todos nuestros trabajos. Yo creo que con ello abrimos cierto escalón de calidad entre nosotros y el resto de proveedores de nuestro cliente con los que competíamos, y eso nos hizo crecer de manera importante.</p>
<p>Este hecho, creo que me influyó decisivamente, y me hizo tener una visión, al menos durante unos años, bastante ortodoxa en el desarrollo de software.<br />
Desde entonces, he tenido tiempo de conocer y trabajar con otras metodologías. He tenido tiempo creer en determinados planteamientos, y más tarde de abandonarlos y creer en los contrarios. Así que sirva mi experiencia personal, para contar un ejemplo de cómo se ha movido el mercado en estas cuestiones en la última década.</p>
<p>Como decía allá por el 97, comencé con métrica v2, el nivel de detalle de esta metodología  permitía casi, poner el manual encima de la mesa y comenzar con el análisis de los sistemas. Fue necesario un esfuerzo importante en el primer proyecto, pero después solo había que seguir el manual punto a punto. Creo que lo mejor de métrica, además de que ofrecía un perfecto guión para todo el análisis era, que sus resultados eran comprensibles prácticamente para cualquiera, sin necesidad de ser técnico.<br />
De este periodo de métrica, me quedo con dos cosas, por una parte, el orden y la calidad que aportaba el método,  y por otra, con un comentario que uno de los clientes nos hizo y que ahora detallaré. Habíamos desarrollado un análisis que superaba el millar de páginas, durante la implantación del sistema, el cliente se quejó del funcionamiento de un módulo, y yo le dije “el módulo funciona según se recoge en el capítulo tal del análisis”. Nuestro cliente cogió uno de los volúmenes en los que habíamos encuadernado nuestro trabajo y mientras lo levantaba mostrándomelo, me dijo “¿tú crees que yo tengo tiempo para leerme esto?”<br />
En aquel momento me resultó insultante,  más adelante me pareció una estupenda lección que, como ahora hago, he citado en más de una ocasión.</p>
<p>Más tarde en el año 2000, en otra compañía y en otro negocio, tras decidir que los futuros sistemas irían hacia un entorno web, hubo que definir y decidir cómo se trabajaría. El análisis y la programación estructurada ya no nos servía. Después de estudiar cual debía ser el camino, elegimos RUP (Rational Unified Process) como framework para nuestros desarrollos. Realmente, mirándolo con la distancia que da el tiempo, el principal motivo de la elección fue que era  lo que todo el mundo estaba haciendo: todo el mercado no podía equivocarse. Elegimos un proveedor para hacer un importante desarrollo, nuestro planteamiento fue, nosotros haremos un análisis utilizando las “antiguas” técnicas de programación estructurada y nuestro proveedor debía “traducirlo” a orientación a objetos  utilizando RUP y Rational Rose. Ellos eran expertos y nosotros no. De la etapa de RUP, también me llevé varios aprendizajes:</p>
<p>RUP no solo era un framework para el desarrollo de software, se había convertido también en una “buzzword”  (termino que utilizan los anglosajones para aquellas palabras rimbombantes que se ponen de moda y están en boca de todo el mundo), y como tal todo el mundo se proclamó defensor, conocedor y experto de RUP. Yo no tenía intención de aprender RUP, pero como el proyecto fue mal, no me quedó más remedio. Fue entonces, después de días y días de estudio de UML y RUP, cuando me di cuenta de que todo el mundo hablaba de RUP pero pocos sabían de lo que hablaban y muy pocos estaban capacitados para trabajar con esta metodología, en mi opinión, tremendamente compleja, pesada y difusa. Primera enseñanza, cuidado con los expertos, si realmente no lo son, sus efectos pueden ser nocivos, y segunda enseñanza, en ocasiones la marcha atrás no es posible. Cuando esto ocurre, caben dos posibilidades seguir hablando de las excelencias de la decisión que se tomó, o bien, admitir que la decisión no fue la mejor. La situación no es buena con cualquiera de ellas, por que lo esencial es que la decisión fue equivocada. Pero esta es otra historia, yo estaba hablando de metodologías.</p>
<p>La cuestión en aquel punto es que necesitaba reorientar los análisis y puesto que había aparecido la versión 3 de métrica, que soportaba orientación a objetos, esta fue la elección.  Al menos, métrica centraba más las cosas, y era más sencillo implementar el análisis que con RUP.</p>
<p>Y así seguí hasta 2005, pensando que RUP continuaba siendo el estándar,  aunque a mí me resultaba tremendamente pesado y complejo. En verano de 2005 comenzó una temporada en que tuve tiempo para reflexionar sobre todo esto (acababa de ser despedido). Me venía a la cabeza aquel comentario que antes citaba, realizado 6 años atrás y referido a un tocho de análisis de más de mil páginas. “¿Tu crees que tengo tiempo para leerme esto”?. Por otra parte pensaba en lo poco explicativos  que resultaban para los usuarios los diagramas de casos de uso (de utilización extensiva en RUP), y me pregunté, por que narices los informáticos obligábamos a nuestros clientes a que utilizasen nuestras técnicas de diagramación, en lugar de ser nosotros quienes utilizásemos las suyas. Hablé con unos cuantos compañeros y amigos (Gente de empresariales, económicas, ingenieros, MBA’s) y les pregunté que tipo de técnicas os han enseñado para definir procesos de negocio. La respuesta fue unánime: ninguna. Así que me dije a mi mismo, debes salvar al mundo de los sistemas de información (entiéndase el tono jocoso) y crear una metodología basada en las necesidades de los clientes y no al revés.</p>
<p>Comencé a esbozar algunas ideas al respecto, hasta que di con la palabra clave: “Ágil”,  es sabido que las cosas no existen, hasta que no das en  en Google con la palabra adecuada, y una vez que la encontré me enteré de que hacía no mucho, que se estaban iniciando con fuerza lo que se venían a llamar “Metodologías ágiles” de desarrollo de software, mas o menos en línea con las ideas que yo tenía. Mi primer sentimiento, fue de rabia, ya estaba inventado lo que yo iba buscando. El segundo fue de todo lo contrario, me sentí satisfecho por evolucionar hacia una tendencia relativamente nueva, luego mis ideas y mis planteamientos eran buenos.</p>
<p>No obstante, en ese momento, no quise aprender nada más sobre “métodos ágiles”, pensé que si leía más al respecto, me condicionaría y no me permitiría ser creativo.</p>
<p>Entre notas y notas sobre el tema, iba haciendo algunos cursos dirigidos a emprendedores, un compañero de curso me dijo sobre mi idea. Lo que dices, suena muy bien, pero, ¿alguien te lo comprará? Tras resistirme durante unos días a reconocerlo, finalmente me di cuenta de que la respuesta era muy simple: NO,  así que…, abandoné la idea.</p>
<p>Sería principios de 2006, y ahí se inició un paréntesis en mi relación con las metodologías de desarrollo de software, que duraría hasta verano de 2007, cuando comienzo un periodo como consultor y he de trabajar con la metodología utilizada por una gran empresa para la que trabajaba.<br />
En aquel momento, su metodología me parece un refrito de UML con algunas técnicas de modelado de procesos, donde habían quitado protagonismo al modelo de casos de uso. Pero, hace muy poco que he leido algo sobre UML 2.0 y también sobre el estándar de OMT para la definición de procesos de negocio (BPM) y pensándolo, quizás se hubiesen basado en ello al definir esta metodología.<br />
El caso es que me seguía pareciendo compleja, no me parecía que se hubiese evolucionado y pensaba que no aportaba gran cosa respecto a RUP.</p>
<p>Así que,  me interesé de nuevo por lo que había en el mercado, y descubrí Microsoft Solutions Framework (MSF) en su version 3.0 (que no era novedad, pero sí para mi). Me pareció excelente, potenciaba el trabajo en equipo y la creatividad, promovía que cada etapa fuese dirigida por quien más capacidad tuviese para ello, había oido hablar y algo había leido también sobre “empowerment”  y equipos de alto rendimiento (perdón por los palabros), pero no tan en detalle como MSF lo proponía y por supuesto no aplicado al desarrollo de software. Así que estuve durante un tiempo interesándome por el tema. Leí también sobre eXtreme Programming, que basa sus técnicas en el desarrollo entre pares y la velocidad de proporcionar al cliente prototipos tan rápido como sea posible. Y también sobre Scrum, excelente para plantear la estrategia de los  proyectos a corto plazo. XP no es demasiado de mi agrado, si lo es sin embargo Scrum, al igual que las nueva versión de MSF para entornos “Ágiles” (la versión para CMMI me resulta pesada).</p>
<p>Paralelamente a esto, un día curioseando en una librería, hojee “Lean Thinking”.  El “Lean Thinking” basado en el sistema de producción de Toyota, tiene como máxima el evitar desperdiciar tiempo y recursos, haciendo solo aquello que realmente sea necesario (¿Software en producción que nunca ha sido utilizado? ¿Le suena a alguien?), así que lo incorporé a mi pensamiento actual.</p>
<p>Por otra parte también tuve la oportunidad de aprender algo sobre Six Sigma, un método orientado inicialmente a garantizar la calidad en procesos industriales. Aunque 6 Sigma me resulta demasiado pesado,  me quedo con su método para definir objetivos, centrado en las necesidades del cliente (“la voz del cliente”) y la percepción que el mercado tiene de nuestros productos y de los de nuestra competencia. A partir de aquí obtendremos objetivos mensurables que llama CTQ’s (Critical to quality)</p>
<p>Sinceramente, creo que pretender continuar con metodologías “pesadas” es un error, y comprendo que en grandes empresas prescindir de ellas es complicado. Pero creo que es el camino a seguir, sirva el ejemplo de los padres de UML y Rational, moviéndose hacia lo “ágil”</p>
<p>Así pues, si tuviera que elegir escogería  algo así como el  Framework”de Microsoft, tomando planteamientos e ideas de Scrum, Lean y Six Sigma. Pero sobre todo me quedo, como decía en un  post anterior, con el “Think” que Thomas J. Watson llevó primero a NCR y después a IBM. Cada problema,  cada proyecto, cada empresa son diferentes y no hay ningún guión escrito para ellos, esto no significa que los  procedimientos y métodos no nos ayuden, todo lo contrario, pero debemos tener siempre presente que lo realmente importante es la resolución del problema, y no la metodología, que solo será un medio para conseguir el objetivo. </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[¿Que es? ISO 9000,PMI,ITIL,COBIT,MoProSoft,CMMI,RUP]]></title>
<link>http://darkchicles.wordpress.com/?p=210</link>
<pubDate>Thu, 11 Sep 2008 07:40:27 +0000</pubDate>
<dc:creator>darkchicles</dc:creator>
<guid>http://darkchicles.bg.wordpress.com/2008/09/11/def_sof_cali/</guid>
<description><![CDATA[Pues esta vez, traigo algunas pequeñas definiciones, y digo pequeñas por que asi son =) muy simple]]></description>
<content:encoded><![CDATA[<p>Pues esta vez, traigo algunas pequeñas definiciones, y digo pequeñas por que asi son =) muy simples y sencillas de entender, sin entrar a detalles para ser mas entendible y fácil de memorizar (no falta el profe que nos pregunte)</p>
<p class="MsoNormal"><strong>ISO 9000</strong></p>
<p class="MsoNormal">El término se refiere a una <strong>serie de normas universales que define un sistema de “Garantía de Calidad” </strong>desarrollado por la Organización Internacional de Normalización (ISO) y adoptado por 90 países en todo el mundo. ISO está compuesta por representantes de normas nacionales de más de 100 países. Su objetivo es promover el intercambio de productos y servicios en todo el mundo y fomentar la cooperación mundial en las áreas intelectual, científica, tecnológica y económica.</p>
<p class="MsoNormal"><strong>PMI (Project Mangement Institute)</strong></p>
<p class="MsoNormal"><strong>Es una organización sin fines de lucro dedicada a desarrollar la Disciplina de Administración de proyectos </strong>(Project Management) en todo el mundo. Su casa central está en Pensilvania - USA y tiene más de 112.000 miembros en 125 países.</p>
<p class="MsoNormal">Los miembros son individuos que se desarrollan en proyectos en distintas industrias, entre otras, aeroespacial, automotriz, negocios, servicios financieros, tecnología de la información, telecomunicaciones, construcción, farmacéutica, ingeniería.</p>
<p class="MsoNormal">El PMI fue fundado en 1969 y desde ese entonces se fueron incorporando más miembros en distintos países y realizaron distintos eventos para difundir el mejor uso de la disciplina.</p>
<p class="MsoNormal">La certificación del PMI como Project Management Professional (PMP®) es la más reconocida en todo el mundo y está certificada en la ISO 9001.</p>
<p class="MsoNormal"><strong>ITIL (Tecnología de la Información Biblioteca de Infraestructura)</strong></p>
<p class="MsoNormal">ITIL es un acrónimo de Tecnología de la Información Biblioteca de Infraestructura. ITIL <strong>son una serie de libros y manuales de capacitación que contienen y explican las prácticas que son las más beneficiosas para servicios de TI</strong> (por lo general se centró administrador). El objetivo de ITIL es para los administradores a tener muy altos niveles de TI en valor, así como una alta calidad financiera en el día a día las operaciones de TI. ITIL son los procedimientos proveedor independiente e incluyen materiales de instrucción en infraestructura de TI, las operaciones y cuestiones de desarrollo.</p>
<p class="MsoNormal"><strong>COBIT (Control Objectives Control Objectives for Information and related Technology)</strong></p>
<p class="MsoNormal"><strong>Es el marco aceptado internacionalmente como una buena práctica para el control de la información, TI</strong> y los riesgos que conllevan. COBIT se utiliza para implementar el gobierno de IT y mejorar los controles de IT. Contiene objetivos de control, directivas de aseguramiento, medidas de desempeño y resultados, factores críticos de éxito y modelos de madurez.</p>
<p class="MsoNormal"><strong>MoProSoft </strong></p>
<p class="MsoNormal">MoProSoft <strong>es el modelo de procesos para la industria mexicana de Software</strong>, realizado en conjunto por la Secretaría de Economía, la UNAM y AMCIS. Este modelo está diseñado para medir la capacidad de los procesos que siguen las empresas y para garantizar una calidad constante en los desarrollos y mantenimiento de software. Se tomaron los siguientes estándares internacionales como base para la creación de MoProSoft:</p>
<p class="MsoNormal">ISO 9000, ISO 15504, SW-CMM y CMM-I.</p>
<p class="MsoNormal">MoProSoft es un modelo de calidad que permitirá a la pequeña y mediana empresa de desarrollo de software,<span> </span>el acceso a las prácticas de Ingeniería de Software de clase mundial.</p>
<p class="MsoNormal">Es un producto de la Estrategia 6 "Alcanzar niveles internacionales en capacidad de procesos", del Programa Nacional para la Industria de Software administrado por la Secretaría de Economía</p>
<p class="MsoNormal"><strong>CMMI (Capability Maturity Model Integration)</strong></p>
<p class="MsoNormal">Capability Maturity Model Integration (CMMI) <strong>es un modelo</strong> para la mejora de procesos que proporciona a las organizaciones los elementos esenciales para procesos eficaces.</p>
<p class="MsoNormal">Las mejores prácticas CMMI se publican en los documentos llamados modelos. En la actualidad hay dos áreas de interés cubiertas por los modelos de CMMI: Desarrollo y Adquisición.</p>
<p class="MsoNormal"><strong>RUP (Rational Unified Process)</strong></p>
<p class="MsoNormal">El Proceso Unificado de Rational (Rational Unified Process en inglés, habitualmente resumido como RUP) <strong>es un proceso de desarrollo de software</strong> y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.</p>
<p class="MsoNormal">El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.</p>
<p class="MsoNormal">--------------</p>
<p>La intención de este post es solo dar a conocer estas definiciones de forma no muy detallada simplemente para que sepamos de que nos hablan.</p>
<p>Si desean un poco mas de información acudan a papa google.. hay un verdadero mar de datos..</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Ivar Jacobson: Developers are too fashionable]]></title>
<link>http://mikemacd.wordpress.com/2008/09/08/ivar-jacobson-developers-are-too-fashionable/</link>
<pubDate>Mon, 08 Sep 2008 09:13:13 +0000</pubDate>
<dc:creator>mikemacd</dc:creator>
<guid>http://mikemacd.bg.wordpress.com/2008/09/08/ivar-jacobson-developers-are-too-fashionable/</guid>
<description><![CDATA[Ivar speaks a number of topics related to Software Development inlcuding:

The Invention of Use Case]]></description>
<content:encoded><![CDATA[<p>Ivar speaks a number of topics related to Software Development inlcuding:</p>
<ul>
<li><a href="http://www.builderau.com.au/video/play/22459995" target="_blank">The Invention of Use Cases</a></li>
<li><a href="http://www.builderau.com.au/video/play/22459996" target="_blank">The future of software development practices</a></li>
<li><a href="http://www.builderau.com.au/video/play/22459990" target="_blank">Aspect Orientated Programming</a></li>
<li><a href="http://www.builderau.com.au/video/soa/builder-ivar-esup-1/0,2000066230,22459992p,00.htm" target="_blank">Essential Unified Process</a></li>
<li><a href="http://www.builderau.com.au/video/play/22459993" target="_blank">SOA and Extreme Programming</a></li>
<li><a href="http://www.builderau.com.au/video/play/22459994" target="_blank">UML is Broken</a></li>
<li><a href="http://www.builderau.com.au/video/soa/Ivar-Jacobson-Developers-are-too-fashionable/0,2000064338,22459991p,00.htm" target="_blank">Developers are too fashionable</a></li>
</ul>
<p>"We are as fashion orientated in our industry as clothing industries. We are changing fashion every five years. Go back five years ago it was Rational Unified Process (RUP). If you go just a few years ago extreme programming was very, very hot. Today you don't hear about extreme programming. Today it is SCRUM, the new silver bullet. I have met one of the founders of SCRUM, Ken Schwaber, and he would never have that opinion."</p>
<p><a href="http://www.builderau.com.au/strategy/developmentprocess/soa/Ivar-Jacobson-Developers-are-too-fashionable/0,339028278,339291697,00.htm">Ivar Jacobson: Developers are too fashionable</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[10 مورد ضروری RUP]]></title>
<link>http://grp3se.wordpress.com/?p=80</link>
<pubDate>Sat, 06 Sep 2008 12:02:18 +0000</pubDate>
<dc:creator>grp3se</dc:creator>
<guid>http://grp3se.bg.wordpress.com/2008/09/06/10-%d9%85%d9%88%d8%b1%d8%af-%d8%b6%d8%b1%d9%88%d8%b1%db%8c-rup/</guid>
<description><![CDATA[


برای کسی که اولین بار با RUP (که دارای 4 فاز، 9 دیسیپلین، ]]></description>
<content:encoded><![CDATA[<div class="smallfont"><strong><br />
</strong></div>
<hr size="1" />
<div id="post_message_28366">برای کسی که اولین بار با RUP (که دارای 4 فاز، 9 دیسیپلین، 31 نقش، 103 دست‌آورد، 136 فعالیت، بعلاوه رهنمودها، چک‌ لیست‌ها و راهنمای ابزار می‌باشد) مواجه می‌شود این سؤال پیش می‌آید که ”چطور می‌توان از میان این همه موارد تعیین کنیم که کدام یک برای پروژه ما مورد نیاز است؟“، ”آیا به این یکی نیاز دارم؟“، ”آیا RUP فقط برای پروژه‌های بزرگ است؟“ و پاسخ نیز اغلب به این صورت است : ”خب بستگی دارد به ... “ در این مطلب یک لیست از ده مورد اساسی و ضروری RUP که می‌تواند نقطة شروعی برای چگونگی بکارگیری RUP در هر پروژه باشد معرفی می‌شود. البته ضروری است که چارچوب کلی RUP که یک فرآیند تکراری و تکاملی است لحاظ شود. <br />
این ده مورد عبارتند از : </p>
<p><strong><span style="color:#000080;">1- تصویر کلی ( Vision) – تولید یک تصویر کلی <br />
</span></strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">داشتن یک تصویر کلی واضح، برای تولید محصولی که نیازهای واقعی ذی‌نفعان را برآورده سازد، کلیدی است. تصویر کلی عصاره‌ای از دیسیپلین نیازمندی‌ها در RUP بدست می‌دهد : تحلیل مسأله، شناخت نیازهای ذی‌نفعان، تعریف سیستم و مدیریت نیازمندی‌ها(زمانی که تغییر می‌کند). <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">2- طرح (برنامه) – مدیریت طرح </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">طرح‌ریزی خوب روند تولید محصول تأثیر کاملا مستقیمی بر روی کیفیت خوب محصول خواهد داشت. در RUP، طرح تولید نرم‌افزار (Software Development Plan)، همه اطلاعات مورد نیاز برای مدیریت پروژه را گرد‌آوری می‌کند. <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">3- لیست مخاطرات- شناسایی و کاهش ریسک‌ها </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">یک دستور اساسی RUP، شناسایی و رفع هرچه زودتر به ریسک‌های عمده پروژه است. لیست ریسک‌ها، به منظور در نظرگرفتن ریسک‌های شناخته شده در راه موفقیت پروژه است. <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">4- موارد مهم – تعیین و ردیابی موارد مهم </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">ارتباط باز و مداوم با داده‌های عینی که مستقیما از فعالیت‌های در حال انجام مشتق می‌شوند، و تکمیل پیکربندی محصول در هر پروژه، اهمیت دارد. <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">5- طرح تجاری (Business Case) </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">طرح تجاری، اطلاعات لازم را از نقطه نظر تجاری فراهم می‌کند؛ به منظور تعیین اینکه آیا این پروژه ارزش سرمایه گذاری دارد یا نه؟ <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">6- معماری – طراحی یک معماری بر اساس مؤلفه </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">در RUP، معماری یک سیستم نرم‌افزاری (در یک مقطع خاص)، سازمان یا ساختار مؤلفه‌های مهم سیستم است که از طریق واسط‌ها با مؤلفه‌های متشکل از مؤلفه‌های کوچکتر و واسط‌های آنها ارتباط دارند. در واقع پاسخ به این سؤال است که تکه‌های اصلی کدامند و چگونه با هم جور می‌شوند؟ <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">7- محصول - ساخت و تست گام به گام (افزایشی) محصول </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">عصاره جریان کارهای پیاده‌سازی و تست در RUP، کدنویسی، ساخت و تست گام به گام مؤلفه‌های سیستم، با نشرهای قابل اجرا در پایان هر تکرار بعد از فاز آغازین است. <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">8- ارزیابی (Evaluation) </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">ارزیابی تکرار، نتایج یک تکرار، میزان برآورده شدن معیار ارزیابی، دروس آموخته شده و تغییرات فرآیند که باید پیاده‌سازی شوند، را دربر می‌گیرد <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">9- درخواست‌های تغییر (Change Request) </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">عصاره مدیریت پیکربندی و تغییرات، مدیریت و کنترل محدوده‌ پروژه در هنگامی است که تغییرات در طول چرخه حیات پروژه رخ می‌دهد و زمانیکه باید هدفِ در نظر گرفتن کلیه نیازهای ذی‌نفعان و برآورده کردن آنها، تا حد امکان، مورد نظر باشد. <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">10- حمایت از کاربر </span></span></span></strong><br />
<span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;">حمایت از کاربر، باید دست‌ کم، شامل یک راهنمای کاربر باشد که شاید از طریق راهنمای برخط پیاده‌سازی شده و ممکن است شامل یک راهنمای نصب و یادداشت‌های نشر باشد، و بسته به میزان پیچیدگی محصول، ممکن است ابزار آموزشی نیز مورد نیاز باشد و بالاخره یک صورت از مواد همراه (BoM) با هر نوع بسته‌بندی محصول(در صورت وجود بسته‌بندی متنوع محصول). <br />
</span></span></span><strong><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:navy;">مرجع : </span></span></span></strong></p>
<div><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;"><a href="http://www.smhoseyni.com/notes/10_essential.htm" target="_blank">http://www.smhoseyni.com/notes/10_essential.htm</a></span></span></span></div>
<div><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="color:black;"><a href="http://www.smhoseyni.com/notes/10_essential.htm" target="_blank"></a><a href="http://www.rational.com/media/whitepapers/TP177.pdf" target="_blank">Leslee Probasco, “The Ten Essentials of RUP: The Essence of an Effective Development Proce</a></span></span></span></div>
</div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[مروري بر مفاهيم و مراحل RUP]]></title>
<link>http://grp3se.wordpress.com/?p=77</link>
<pubDate>Sat, 06 Sep 2008 11:59:44 +0000</pubDate>
<dc:creator>grp3se</dc:creator>
<guid>http://grp3se.bg.wordpress.com/2008/09/06/%d9%85%d8%b1%d9%88%d8%b1%d9%8a-%d8%a8%d8%b1-%d9%85%d9%81%d8%a7%d9%87%d9%8a%d9%85-%d9%88-%d9%85%d8%b1%d8%a7%d8%ad%d9%84-rup/</guid>
<description><![CDATA[RUP (مخفف عبارت Rational Unified Process) چارچوبي كلي است براي تشري]]></description>
<content:encoded><![CDATA[<div id="post_message_1888"><span style="font-size:x-small;"><span style="font-family:Mitra;">RUP</span><span style="font-family:Mitra;"> (مخفف عبارت </span><span style="font-family:Mitra;">Rational Unified Process</span><span style="font-family:Mitra;">) چارچوبي كلي است براي تشريح فرآيند ساخت نرم‌افزار. پس از آنكه تيم سه نفره‌ي شركت </span><span style="font-family:Mitra;">Rational</span><span style="font-family:Mitra;"> ساخت </span><span style="font-family:Mitra;">UML</span><span style="font-family:Mitra;"> را (به عنوان يك شيوه‌ي نمايش</span><span style="font-family:Mitra;">notation/</span><span style="font-family:Mitra;"> يكتا براي تشريح مدل شيء) به آخر رساند، تلاش خود را متوجه فرآيند توليد نرم‌افزار نمود. </span></span></p>
<p><span style="font-size:x-small;"><span style="font-family:Mitra;">اساس </span><span style="font-family:Mitra;">RUP</span><span style="font-family:Mitra;"> بر تكرار (</span><span style="font-family:Mitra;">iteration</span><span style="font-family:Mitra;">) است و اساس تكرار اين است كه هر تكرار به يك محصول قابل اجرا ختم شود. هر تكرار شامل هر هفت مرحله چرخه‌ي حيات در مدل سنتي آبشاري است، يعني: مدلسازي تجاري، تخمين نيازها، تحليل و طراحي، پياده سازي، تست، نگهداري و توسعه. </span></span></p>
<div></div>
<p><span style="font-size:x-small;"><span style="font-family:Mitra;">در </span><span style="font-family:Mitra;">RUP</span><span style="font-family:Mitra;"> كل فرآيند توليد نرم‌افزار به چهار فاز اصلي تقسيم مي‌شود، كه هر فاز مي‌تواند شامل يك يا چند تكرار باشد. هر فاز شامل مسيري است كه بين دو گردنه (</span><span style="font-family:Mitra;">milestone</span><span style="font-family:Mitra;">) قرار دارد. اين چهار فاز عبارتند از:</span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">آغاز (</span><span style="font-family:Mitra;">inception</span><span style="font-family:Mitra;">)</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">جزييات (</span><span style="font-family:Mitra;">elaboration</span><span style="font-family:Mitra;">)</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">ساخت (</span><span style="font-family:Mitra;">construction</span><span style="font-family:Mitra;">)</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">انتقال (</span><span style="font-family:Mitra;">transition</span><span style="font-family:Mitra;">)</span></span></span></p>
<p><strong><span style="font-family:Mitra;"><span style="font-family:Tahoma;"><span style="font-size:x-small;">1- فاز آغاز</span></span></span></strong></p>
<p><span style="font-size:x-small;"><span style="font-family:Mitra;">در اين فاز مدل تجاري سيستم رسم و دورنماي پروژه ترسيم مي‌شود. براي اين كار بايد همه‌ي موجوديت‌هايي كه سيستم با آنها تعامل دارد (بازيگران /</span><span style="font-family:Mitra;">Actors</span><span style="font-family:Mitra;">) شناخته شوند و نحوه تعاملشان با سيستم مشخص گردد. اين شامل تعيين همه‌ي موارد كاربرد (</span><span style="font-family:Mitra;">use case</span><span style="font-family:Mitra;">) و توضيح برخي از موارد مهم است. مدل تجاري شامل شرايط موفقيت، برآورد ريسك‌ها و تخمين منابع مورد نياز است. همچنين يك برنامه‌ي كلي كه زمانبندي مراحل انجام پروژه را نشان دهد. </span></span></p>
<p><strong><span style="font-family:Mitra;"><span style="font-family:Tahoma;"><span style="font-size:x-small;">اهداف فاز آغاز</span></span></span></strong></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">در انتهاي اين فاز اهداف چرخه‌ي حيات پروژه را تعيين مي‌كنيد و تصميم مي‌گيريد كه آنرا ادامه بدهيد يا نه. هدف اصلي اين فاز بدست آوردن هماهنگي بين تمام افراد درگير با پروژه درباره‌ي اهداف پروژه است. اهداف فرعي ديگر اين‌هايند:</span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">تعيين حدود و دورنماي پروژه</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">تعيين موارد كاربرد حيياتي سيستم و سناريور اوليه آنها</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">تعيين سناريوهاي جايگزين</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">تخمين هزينه و زمان پروژه</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">تخمين ريسك‌هاي احتمالي</span></span></span></p>
<p><strong><span style="font-family:Mitra;"><span style="font-family:Tahoma;"><span style="font-size:x-small;">خروجيهاي فاز آغاز</span></span></span></strong></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">سند نماي كلي (</span><span style="font-family:Mitra;">vision</span><span style="font-family:Mitra;">) : ديد كلي به هسته‌ي اصلي نيازهاي پروژه، قابليت‌هاي كليدي و حدود اصلي</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">مدل مورد كاربرد: مشخص كردن همه‌ي موارد كاربردي كه در اين مرحله‌ي مقدماتي مي‌توانند شناسايي شوند)</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">لغتنامه‌ي اوليه</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">مدل تجاري اوليه، شامل زمينه‌ي تجارت، شرايط موفقيت، الزامات تجاري</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">تخمين خطاي اوليه</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">برنامه‌ي اوليه كه فازها و تكرارها را نشان مي‌دهد. </span></span></span></p>
<p><strong><span style="font-family:Mitra;"><span style="font-family:Tahoma;"><span style="font-size:x-small;">2- فاز جزييات</span></span></span></strong></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">در اين فاز تعريف محصول تصحيح مي‌شود و معماري آن مشخص مي‌گردد. همچنين خلاصه برنامه‌ي توسعه و گسترش محصول تدوين مي‌گردد. در انتهاي اين فاز اهداف و نماي پروژه دقيقتر تعيين مي‌شوند و انتخاب يك معماري و تبيين ريسك‌هاي عمده انجام مي‌گيرد. اين فاز مهمترين در بين چهار فاز ذكر شده است. فشار كار «مهندسي» نرم‌افزار در اين فاز است. </span></span></p>
<p><span style="font-size:x-small;"><span style="font-family:Mitra;">در اين فاز، در يك يا چند تكرار، يك پيش نمونه (</span><span style="font-family:Mitra;">prototype</span><span style="font-family:Mitra;">) قابل اجرا از معماري سيستم ساخته مي‌شود. تعداد تكرارها بستگي به نما، اندازه، ريسك و جديدبودن پروژه دارد. </span></span></p>
<p><strong><span style="font-family:Mitra;"><span style="font-family:Tahoma;"><span style="font-size:x-small;">اهداف فاز جزييات</span></span></span></strong></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">هدف اين فاز آناليز دامنه‌ي مساله و ايجاد يك پايه‌ي درست براي معماري، توسعه‌ي برنامه‌ي پروژه و برطرف كردن عمده‌ترين ريسك‌هاي پروژه است. تصميم‌ها در مورد معماري بايد بر اساس دركي از كل سيستم اتخاذ شوند. اين متضمن آن است كه بيشتر موارد كاربرد توصيف شوند. اهداف اوليه اين فاز عبارتند از: </span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">تعريف و تصحيح معماري، با بيشترين سرعت ممكن</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">به دست آوردن يك برنامه‌ي درست براي فاز ساخت</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">اثبات اينكه معماري مورد نظر، نياز پروژه را با هزينه و زمان معقولي تامين مي‌كند.</span></span></span></p>
<p><strong><span style="font-family:Mitra;"><span style="font-family:Tahoma;"><span style="font-size:x-small;">خروجيهاي فاز جزييات</span></span></span></strong></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">مدل مورد كاربرد </span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">ديدن نيازهاي اضافي و غيركاركردي كه به مورد كاربرد خاصي وابسته نيستند. </span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">يك نسخه‌ي قابل اجرا از معماري و مستندات پيوست (سند معماري نرم‌افزار) شامل طراحي زير مجموعه‌اي از موارد كاربرد و لغتنامه‌ي اصلاح شده</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">مدل تجاري تجديد نظر شده</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">فهرست ريسك‌هاي تجديد نظر شده</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">برنامه‌ي توسعه‌ي پروژه</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">راهنماي اوليه‌ي كاربر</span></span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">3- فاز ساخت</span></span></p>
<p><span style="font-size:x-small;"><span style="font-family:Mitra;">در طول فاز ساخت، به صورت تكراري (</span><span style="font-family:Mitra;">iteratively</span><span style="font-family:Mitra;">) و افزايشي (</span><span style="font-family:Mitra;">incrementally</span><span style="font-family:Mitra;">) محصول نهايي كامل توليد مي‌شود، كه براي انتقال به كاربر آماده است. اين متضمن تبيين موارد كاربرد باقي‌مانده و ساير نيازمندي‌ها، تبيين طراحي، تكميل پياده سازي، و تست نرم‌افزار است. در انتهاي اين مرحله تصميم مي‌گيريد كه آيا نرم‌افزار، سايت و كاربران براي شروع بكار سيستم آماده‌اند يا نه.</span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">در طول اين مرحله همه‌ي اجزاي باقي‌مانده ساخته مي‌شوند و قابليت‌هاي كاربردي توسعه يافته به محصول افزوده و تست مي‌شوند. در اين مرحله تاكيد و توجه بر مديريت منابع و كنترل عمليات براي بهينه كردن هزينه‌ها، زمانبندي و كيفيت است. اغلب پروژه‌ها آنقدر بزرگ هستند كه كارهاي اين مرحله بصورت موازي انجام گيرند. اين فعاليت‌هاي موازي باعث تسريع در توليد مي‌شوند، همچنانكه مي‌توانند پيچيدگي مديريت منابع را زياد كنند. يكي از مهمترين ويژگي‌هاي كيفي يك معماري خوب، سادگي ساخت آن است. اين يكي از دلايل آن است كه تعادل ميان توسعه‌ي معماري و برنامه‌ريزي در فاز جزييات مورد توجه بود. </span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">اهداف فاز ساخت</span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">كمينه‌كردن هزينه‌هاي توسعه با بهينه كردن منابع و اجتناب از ضايعات و دوباره‌كاري‌هاي غيرلازم</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">بدست آوردن كيفيت كافي در كمترين زمان ممكن</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">بدست آوردن نسخه‌هاي مورد نياز (آلفا، بتا و ساير نسخه‌هاي تستي) در كمترين زمان ممكن</span></span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">خروجيهاي فاز ساخت</span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">خروجي فاز ساخت محصولي است كه براي قرار گرفتن در دست‌هاي كاربر نهايي‌اش آماده است. اين شامل موارد زير است:</span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">محصول نرم‌افزاري، سوار شده بر سكو</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">راهنماي كاربر و توضيحي درباره‌ي نسخه‌ي فعلي</span></span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">4- فاز انتقال</span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">در اين مرحله محصول در دست‌هاي كاربر نهايي قرار مي‌گيرد. معمولا در اين مرحله مواردي مطرح مي‌شوند كه نياز به كار بيشتر براي ميزان كردن سيستم و تصحيح مشكلات پيش‌بيني نشده دارد. اين مرحله معمولا با يك نسخه‌ي بتا آغاز مي‌شود. در پايان اين مرحله تصميم مي‌گيريد كه آيا اهداف چرخه توليد محقق شده‌اند يا نه، و اينكه آيا بايد چرخه‌ي ديگري آغاز شود؟ اين فاز خود مي‌تواند شامل چند تكرار (مانند نسخه‌ي بتا، نسخه‌ي نهايي و رفع خطاهاي كوچك و ريزه‌كاري‌ها) باشد. همچنين مسائلي چون آموزش كاربران و تبديل داده از پايگاه داده‌ي فعلي به جديد مورد توجه قرار مي‌گيرند. </span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">فعاليت‌هايي كه در تكرار‌هاي اين فاز انجام مي‌شوند، بستگي به هدف آن دارند: براي رفع خطاهاي كوچك، كار كدنويسي زيادي لازم نيست، ولي اگر قابليت جديدي بايد به محصول اضافه شود، تكرار شبيه فاز ساخت خواهد بود. </span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;">اهداف فاز انتقال</span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">كسب توانايي خود-پشتيباني توسط كاربر</span></span></span></p>
<p><span style="font-family:Tahoma;"><span style="font-size:x-small;"><span style="font-family:Symbol;">· </span><span style="font-family:Mitra;">بدست آوردن و آغاز بكار محصول نهايي با بيشترين سرعت و كمترين هزينه</span></span></span></p>
<p><span style="font-family:Mitra;"><span style="font-size:x-small;"><strong><span style="color:red;">منبع</span></strong> : <a href="http://www.dadeban.com/" target="_blank">http://www.dadeban.com</a></span></span></div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Casos de uso: preferir la amplitud a lo detallado]]></title>
<link>http://synergix.wordpress.com/?p=216</link>
<pubDate>Tue, 26 Aug 2008 04:31:29 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/08/26/casos-de-uso-preferir-la-amplitud-a-lo-detallado/</guid>
<description><![CDATA[Un caso de uso es la descripción de un escenario de interacción -un uso- entre un actor y el siste]]></description>
<content:encoded><![CDATA[<p>Un caso de uso es la descripción de un escenario de interacción -un uso- entre un actor y el sistema. Dicho escenario captura el requisito funcional que el sistema ha de cumplir y documenta lo que se ha discutido entre el equipo de desarrollo y el cliente en una forma simple, de fácil lectura y razonablemente exacta.</p>
<p>Todo bien hasta aquí.</p>
<p>En sistemas reales, es inevitable encontrarse con las siguientes dos situaciones:</p>
<ol>
<li>Algunos requisitos quedan sin descubrir y se convierten en riesgos.</li>
<li>Algunos requisitos muy especificados jamás encuentran un lugar en el desarrollo.</li>
</ol>
<p>O en otras palabras, si no tenemos cuidado, tendremos casos de uso que especifican en detalle algo que esta por fuera del alcance del proyecto en tanto uno o más puntos importantes habrán quedado en el anonimato y nos atacaran en castigo a nuestro olvido.</p>
<p>Ambas situaciones son peligrosas y aún si las controlamos representaran costos imprevistos que pueden hacer peligrar el proyecto.</p>
<p>¿Como podemos evitar estos problemas? Sin querer decir que es una receta mágica, lo que la experiencia nos enseña es que un modelo de casos de uso (y quizás todo sistema de requisitos) ha de preferir documentar <strong>primero a lo ancho</strong>, cubriendo áreas cuanto más amplias mejor, del sistema a desarrollar, antes de descender a los detalles de las partes de mayor interés.</p>
<p>Si suponemos un desarrollo cualquiera, este consejo de ir primero a lo amplio y luego a lo detallado, significa que tendremos muchos casos de uso apenas en estado de borrador, que delinean a grandes rasgos lo que se pretende del sistema en términos de su funcionalidad y el alcance del proyecto. Luego, según vayamos atendiendo los requisitos en nuestras iteraciones o fases, podremos dedicar algo de tiempo en obtener los detalles de cada caso de uso de manera de desarrollar el sistema correcto.</p>
<p>Esta aproximación es interesante también desde el punto de vista de la gestión del proyecto. Es posible crear un plan de proyecto que dedique algunas semanas a la creación de un modelo de casos de uso muy amplio pero sin mayores detalles, para luego decir cuales casos de uso van en cada una de las iteraciones.</p>
<p>Claro que al gestionar nuestros proyectos de esta forma hay que <strong>priorizar los casos de uso</strong>, según <strong>el riesgo</strong> y según su relevancia para establecer una <strong>arquitectura estable</strong>, conceptos que ahora si podemos entender sin mayores problemas: del total de casos de uso identificados, detallamos en las primeras iteraciones aquellos que sean identificados como de alto riesgo o como de mayor impacto en la arquitectura del software.</p>
<p>La otra vía es casi imposible de practicar: documentar en detalle los requisitos aún antes de comenzar a desarrollar la primera línea del código es decir que todo se puede saber de antemano, por lo que para aquellos de entre nosotros que carecemos de la omnisciencia vamos inevitablemente a cometer errores.</p>
<p>Entonces no tentemos al destino. Los requisitos cambian durante el tiempo de vida de los proyectos; no perdamos el tiempo capturando detalles que van a cambiar. Por otra parte, identificar a grandes rasgos las principales características que se nos piden es vital para tener una idea de la magnitud del desarrollo así como de los recursos que tendremos que invertir (tiempo, dinero, etc.) y finalmente, no tiene mucho sentido excluir a los requisitos de la planificación del proyecto, por lo que tenemos de una u otra forma que integrar a los casos de uso en el diseño del proceso de desarrollo.</p>
<p>Todo lo anterior nos obliga a todos quienes practicamos el desarrollo <strong>guiado por casos de uso</strong> a trabajar primero a lo ancho: prefiriendo lo amplio a lo detallado en tanto dichos detalles no sean impresindibles.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Casos de Uso: Herencia de Actores]]></title>
<link>http://synergix.wordpress.com/?p=210</link>
<pubDate>Tue, 26 Aug 2008 03:55:37 +0000</pubDate>
<dc:creator>Iván Garcerant</dc:creator>
<guid>http://synergix.bg.wordpress.com/2008/08/25/casos-de-uso-herencia-de-actores/</guid>
<description><![CDATA[La propiedad de mayor interés de los actores, más allá de su identidad, es la relación que estos]]></description>
<content:encoded><![CDATA[<p>La propiedad de mayor interés de los actores, más allá de su identidad, es la relación que estos guarden con los distintos casos de uso de nuestro sistema - las líneas que unen a unos con otros. Es decir que las dos partes más expresivas de un actor son <strong>el nombre propio</strong> y la <strong>activación de un caso de uso</strong>.</p>
<p>Aceptado lo anterior, la herencia de actores va a ser la distribución a lo largo de una jerarquía de roles, de las actividades a realizar, representadas estas como casos de uso. O lo que es lo mismo, la herencia nace como una forma de organizar los enlaces entre actores y casos de uso a fin de simplificar los diagramas y reducir la necesidad de presentar información repetida.</p>
<p>Nuevamente pero algo más técnico: a lo largo de la jerarquía de herencia lo que vamos a organizar son las activaciones de casos de uso de cada actor con ayuda de categorías intermedias o actores abstractos.</p>
<p>A diferencia de la herencia de casos de uso, considero que la herencia de actores es una práctica básica y que no tiene mayor problema en ser entendido por los stakeholders ni mucho menos, presenta problemas a los analistas. La razón es que la dificultad de la herencia de los casos de uso es la definición detallada de como los múltiples elementos de información de un caso de uso se comporta durante la herencia, dificultad esta que no existe en la herencia de actores por ser estos tan sencillos.</p>
<p>Como dije antes, la herencia de actores es una forma legible de mejorar la presentación de nuestros modelos, por lo que ejemplo que daré tiene por motivación el mejorar la legibilidad de un por lo demás, muy sencillo modelo de casos de uso.</p>
<p>A efectos del ejemplo, supongamos que trabajamos con un sistema de ventas, que permite tanto a los promotores como a los empleados del departamento de ventas el visualizar las existencias de productos así como la consignación de mercancía, pero que excluye a los promotores de la posibilidad de aceptar devoluciones. La situación es presentada en el siguiente diagrama de casos de uso:</p>
[caption id="attachment_212" align="aligncenter" width="300" caption=" "]<img class="size-medium wp-image-212" src="http://synergix.wordpress.com/files/2008/08/herenciaactores01.jpg?w=300" alt="Ejemplo de modelo de casos de uso sin herencia" width="300" height="235" />[/caption]
<p style="text-align:center;">Fig. 1 - <strong>Ejemplo de modelo de casos de uso sin herencia</strong></p>
<p>Si se observa con atención el diagrama 1, se ve como las líneas de activación se cruzan entre actores. Claro que podemos tratar de organizar un poco mejor el diagrama para evitar esto, pero hemos de reconocer que esto solo será una solución temporal. Conforme se incremente la cantidad de casos de uso nos encontraremos una y otra vez en esta situación. No es solo una cuestión de estética, de utilizar líneas segmentadas bien podríamos llegar a hacer el diagrama por completo ilegible. Es entonces necesario un enfoque alternativo.</p>
<p>Dicho enfoque alternativo naturalmente va a ser la herencia. En el segundo diagrama se ven exactamente los mismos casos de uso y los mismos actores, pero se ha establecido una relación de herencia con respecto a un <strong>actor abstracto</strong> u operador como estrategia para presentar la información sin tanto barullo de líneas.</p>
<div class="mceTemp mceIEcenter">
<dl class="wp-caption aligncenter">
<dt class="wp-caption-dt"><img class="size-medium wp-image-214" src="http://synergix.wordpress.com/files/2008/08/herenciaactores02.jpg?w=300" alt="Ejemplo de modelo de casos de uso con relación de herencia entre actores" width="300" height="221" /></dt>
</dl>
</div>
<p style="text-align:center;">Fig. 2 - <strong>Ejemplo de modelo de casos de uso con herencia entre actores</strong></p>
<p>En este segundo diagrama hemos indicado que el operador puede realizar las dos tareas comunes, en tanto que por herencia hemos dicho que los empleados del departamento de ventas son los únicos autorizados a aceptar devoluciones de mercancías. Aquí hay que notar que no he establecido una relación de herencia entre promotor y ventas, sino que por el contrario he introducido un actor abstracto nuevo, que articula la presentación del modelo sin correr el riesgo de equivoco: promotor no es ventas y ventas no es promotor. El hecho que compartan dos casos de uso si es algo digno de mención pero sus identidades siguen por completo desligadas.</p>
<p>La presencia de un actor abstracto puede ser considerada una fuente de ruido a la hora de explicar el modelo, pero dado que es solo para simplificar las líneas de activación encuentro que la sobrecarga de información no es nociva. Por otra parte lo que hemos ganado en claridad es en mi opinión, mucho mayor a lo que hemos sacrificado al utilizar una notación un poco más técnica.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[¿Que es Rational Unified Process (RUP)?]]></title>
<link>http://ipst08.wordpress.com/?p=3</link>
<pubDate>Fri, 22 Aug 2008 00:01:26 +0000</pubDate>
<dc:creator>ipst08</dc:creator>
<guid>http://ipst08.bg.wordpress.com/2008/08/22/%c2%bfque-es-rational-unified-process-rup/</guid>
<description><![CDATA[
st1\:*{behavior:url(#ieooui) }
  &lt;!&#8211;  /* Font Definitions */  @font-face 	{font-family:Win]]></description>
<content:encoded><![CDATA[<p><!--[if gte mso 9]&#62;  Normal 0 21   false false false        MicrosoftInternetExplorer4  &#60;![endif]--><!--[if gte mso 9]&#62;   &#60;![endif]--><!--[if !mso]&#62;--><br />
st1\:*{behavior:url(#ieooui) }<br />
  &#60;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:612.1pt 792.1pt; 	margin:70.9pt 3.0cm 70.9pt 3.0cm; 	mso-header-margin:35.45pt; 	mso-footer-margin:35.45pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1805391831; 	mso-list-type:hybrid; 	mso-list-template-ids:-21696580 1192113110 201981955 201981957 201981953 201981955 201981957 201981953 201981955 201981957;} @list l0:level1 	{mso-level-start-at:0; 	mso-level-number-format:bullet; 	mso-level-text:-; 	mso-level-tab-stop:36.0pt; 	mso-level-number-position:left; 	text-indent:-18.0pt; 	font-family:Arial; 	mso-fareast-font-family:"Times New Roman";} ol 	{margin-bottom:0cm;} ul 	{margin-bottom:0cm;} --&#62; <!--[if gte mso 10]&#62;--><br />
 /* Style Definitions */<br />
 table.MsoNormalTable<br />
	{mso-style-name:"Tabla normal";<br />
	mso-tstyle-rowband-size:0;<br />
	mso-tstyle-colband-size:0;<br />
	mso-style-noshow:yes;<br />
	mso-style-parent:"";<br />
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
	mso-para-margin:0cm;<br />
	mso-para-margin-bottom:.0001pt;<br />
	mso-pagination:widow-orphan;<br />
	font-size:10.0pt;<br />
	font-family:"Times New Roman";<br />
	mso-ansi-language:#0400;<br />
	mso-fareast-language:#0400;<br />
	mso-bidi-language:#0400;}</p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;">Proceso Unificado Racional (RUP)</span></strong></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;"> </span></strong></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">El Proceso Unificado de Rational (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo a necesidades.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;">Principios de desarrollo </span></strong></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;"> </span></strong></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">El RUP está basado en 5 principios clave que son:</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Adaptar el proceso </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">El proceso deberá adaptarse a las características propias del proyecto u organización. El tamaño del mismo, así como su tipo o las regulaciones que lo condicionen, influirán en su diseño específico. También se deberá tener en cuenta el alcance del proyecto.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Balancear prioridades </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Los requerimientos de los diversos participantes pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un balance que satisfaga los deseos de todos.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Demostrar valor iterativamente </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto así como también los riesgos involucrados</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Elevar el nivel de abstracción </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software, lenguajes 4GL o marcos de referencia (frameworks) por nombrar algunos. Esto evita que los ingenieros de software vayan directamente de los requisitos a la codificación de software a la medida del cliente, sin saber con certeza qué codificar para satisfacer de la mejor manera los requerimientos y sin comenzar desde un principio pensando en la reutilización del código. Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones arquitectónicas. Éstas se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con el lenguaje UML.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Enfocarse en la calidad </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;">Ciclo de vida </span></strong></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;"> </span></strong></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">El ciclo de vida RUP es una implementación del Desarrollo en espiral. Fue creado ensamblando los elementos en secuencias semi-ordenadas. El ciclo de vida organiza las tareas en fases e iteraciones.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en los distintas actividades. En la Figura muestra cómo varía el esfuerzo asociado a las disciplinas según la fase en la que se encuentre el proyecto RUP.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Las primeras iteraciones (en las fases de Inicio y Elaboración) se enfocan hacia la comprensión del problema y la tecnología, la delimitación del ámbito del proyecto, la eliminación de los riesgos críticos, y al establecimiento de una baseline de la arquitectura.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Durante la fase de inicio las iteraciones hacen mayor énfasis en actividades de modelado del negocio y de requerimientos.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">En la fase de elaboración, las iteraciones se orientan al desarrollo de la baseline de la arquitectura, abarcan más los flujos de trabajo de requerimientos, modelo de negocios (refinamiento), análisis, diseño y una parte de implementación orientado a la baseline de la arquitectura.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">En la fase de construcción, se lleva a cabo la construcción del producto por medio de una serie de iteraciones.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Para cada iteración se selecciona algunos Casos de Uso, se refina su análisis y diseño y se procede a su implementación y pruebas. Se realiza una pequeña cascada para cada ciclo. Se realizan tantas iteraciones hasta que se termine la implementación de la nueva versión del producto.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">En la fase de transición se pretende garantizar que se tiene un producto preparado para su entrega a la comunidad de usuarios.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Como se puede observar en cada fase participan todas las disciplinas, pero que dependiendo de la fase el esfuerzo dedicado a una disciplina varía.</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;">Principales características </span></strong></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;"> </span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Pretende implementar las mejores prácticas en Ingeniería de Software</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Desarrollo iterativo</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Administración de requisitos</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Uso de arquitectura basada en componentes</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Control de cambios</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Modelado visual del software</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Verificación de la calidad del software</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"><span> </span></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">El RUP es un producto de Rational (IBM). Se caracteriza por ser iterativo e incremental, estar centrado en la arquitectura y guiado por los casos de uso. Incluye artefactos (que son los productos tangibles del proceso como por ejemplo, el modelo de casos de uso, el código fuente, etc.) y roles (papel que desempeña una persona en un determinado momento, una persona puede desempeñar distintos roles a lo largo del proceso)....</span></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;"> </span></strong></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;"> </span></strong></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;">Fases </span></strong></p>
<p class="MsoNormal"><strong><span style="font-size:14pt;font-family:Arial;"> </span></strong></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Establece oportunidad y alcance</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Identifica las entidades externas o actores con las que se trata</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Identifica los casos de uso<span> </span></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">RUP, a nivel de fases, contiene una estructura estática y una estructura dinámica. La estructura estática de RUP comprende 2 aspectos importantes por los cuales se establecen las disciplinas:</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Proceso: Las etapas de esta seccion son:</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Modelado de negocio</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Requisitos</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Análisis y Diseño</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Implementación</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Pruebas</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Despliegue</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">Soporte: En esta parte nos conseguimos con las siguientes etapas:</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Gestión del cambio y configuraciones</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Gestión del proyecto</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Entorno</span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Arial;">La estructura dinámica de RUP es la que permite que este sea un proceso de desarrollo fundamentalmente iterativo, y en esta parte se ven inmersas las 4 fases descritas anteriormente:</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-indent:-18pt;"><!--[if !supportLists]--><span style="font-size:11pt;font-family:Arial;"><span>-<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:11pt;font-family:Arial;">Inicio (Tambien lla