Академический Документы
Профессиональный Документы
Культура Документы
Introduccin ............................................................................................................................ 2
Competencias ......................................................................................................................... 3
Ideograma ............................................................................................................................... 4
1. Software e Ingeniera ...................................................................................................... 5
1.1. Qu, para qu y porqu del software?........................................................................ 5
1.2. El software como eje central de las organizaciones .................................................... 9
2. Antecedentes, evolucin y localizacin del software dentro del contexto social
contemporneo ..................................................................................................................... 11
3. Componentes de la Ingeniera de Software ................................................................... 12
3.1. Componente Tcnico ................................................................................................. 13
3.2. Componente no tcnico (organizacional) .................................................................. 19
4. Competencias y desafos para el Ingeniero de software ............................................... 29
4.1. Competencias ............................................................................................................ 29
4.2. Aspectos ticos y legales de la Ingeniera de Software ............................................. 31
Glosario ................................................................................................................................ 33
Bibliografa ........................................................................................................................... 36
1
Introduccin
Hasta hace relativamente muy poco tiempo la escritura de programas de computador se
asemejaba a escribir una novela, pintar un cuadro o realizar una escultura. Uno de los
primeros libros obligados para la generacin de "nuevos gomosos" (1970's y 1980's) de la
computacin era un libro de portada amarilla titulado por su autor, Donal P. Knuth, El arte
de la programacin de computadores, en ingls " The art of computer programming".
Curiosa pero no extraamente los primeros captulos estaban dedicados a la teora de los
nmeros y la lgica combinatoria para posteriormente adentrarse al tema de las estructuras
de datos y las estructuras de programacin. En resumen la obra de Knuth, fundamental para
el cientfico de la programacin, es originalmente una triloga (la recopilacin cuenta ahora
con 5 volmenes) que abarca una buena parte de los amplios terrenos de la programacin
de computadores: Ordenamiento, bsqueda, Bsqueda combinatoria, recursividad etc.
2
Competencias
Entender de manera general el alcance y enfoque de la Ingeniera de Software como
disciplina facilitadora en los procesos de desarrollo e implementacin de tecnologas de
la informacin en las organizaciones.
Comprender las implicaciones ticas que conlleva el ejercicio del desarrollo del
software en nuestra sociedad.
3
Ideograma
Componente Tcnico
Componentes de la
Componente no Tcnico
Ingeniera de Software
Tecnicas de Ingenieria de
Software
Software e Ingeniera
Competencias , desafos y
oportunidades para el
Ingeniero de Software Competencias
Oportunidades
4
1. Software e Ingeniera
5
Figura 1. Componentes De Un Sistema de Informacin
Fuente: Bentley, Whitten. System Analysis and Design Methods
Los sistemas de informacin permiten almacenar, procesar y gestionar los datos para as
poder producir la informacin que soporte la organizacin, sus empleados, proveedores y
socios. Los mismos se pueden clasificar en:
6
Sistemas Expertos: Son aquellos que capturan y reproducen el conocimiento de un
experto o un decisor para luego simular la manera o el procedimiento de decisin
utilizado.
Por otra parte, los sistemas de informacin pueden ser apreciados desde la perspectiva de
aquellos que participan o influyen en su concepcin, operacin, mantenimiento, soporte y
proteccin. Algunos roles relevantes son:
Usuarios: Las personas que usan cotidianamente los sistemas de informacin y por
tanto son impactados o afectados directamente por su desempeo, su estabilidad o aun
por sus ausencia.
Desde hace unas cuantas dcadas, el arte de programar no basta para proveer las
necesidades crecientes de software en nuestra sociedad. Los fracasos y fallas en la
construccin de software han obligado a los profesionales de las Tecnologas de la
Informacin a ir ms all e incluir los principios de ingeniera existentes ya en otros
dominios como la ingeniera mecnica, la ingeniera civil, la ingeniera elctrica etc., con
el objetivo de producir software de calidad, mantenible y ajustndose a los presupuestos y
el tiempo establecido para los proyectos. En la primera conferencia de ingeniera de
software en 1968, Fritz Bauer defini la Ingeniera de Software como El establecimiento
y uso de principios de ingeniera universalmente reconocidos con el propsito de
desarrollar software de manera econmicamente eficiente y que pueda trabajar de manera
confiable y eficiente en mquinas reales. Por su parte, Schach define la ingeniera de
software como una disciplina cuyo fin es producir software de calidad, entregado
oportunamente, cumpliendo un presupuesto y satisfaciendo los requerimientos.
8
Figura 2. Componentes de Software
Fuente: Satzinger, John W., et Al. 2003. Analyse et conception de systmes dinformation.
9
necesario usar e incorporar procesos de desarrollo de software efectivos y eficientes de tal
forma que los desarrolladores, los lderes de proyectos y dems personal tcnico puedan
aprovechar las herramientas y utilizar la gestin de proyectos para alcanzar el xito y
conseguir el logro de los objetivos de desarrollo de software que persigue la organizacin.
La industria del software ha evolucionado a un ritmo insospechado pero aun no llega a los
niveles de oportunidad, eficiencia y seguridad exigidos por una industria de la computacin
y de las nuevas tecnologas de la informacin en efervescencia. Hasta hace un tiempo, el
desarrollo de software ocurri al interior de las organizaciones para satisfacer las
necesidades de desarrollo de sistemas de informacin con propsitos estrictamente
definidos.
Al 2010, las unidades de videojuegos vendidas por tipo se distribuan segn lo muestra la
figura 3
10
Figura No. 3. Distribucin Mundial de Mercado de Videojuegos
Fuente: Grupo de Estadsticas NPD - 2010
En primer trmino, es hacia finales de la dcada de los 80s (1989) que Tim Berners Lee es
encargado por el CERN para definir las lneas generales del Estndar HTML (Hyper Text
Markup Language) y publicar la primera versin de un nuevo protocolo de difusin de
informacin de manera global (Estndar HTML 1.0). Los esfuerzos de Tim Berners Lee y
su equipo se vieron consolidados con la escritura y lanzamiento de la primera versin del
navegador MOSAIC, escrito por Marc Andreesen en 1993. La combinacin del estndar
HTML, el protocolo de comunicacin HTTP y la disponibilidad y fcil acceso al navegador
MOSAIC constituyeron la piedra angular para los cimientos de unas nuevas formas de
comunicacin entre las personas y el origen de vertiginosos cambios en la manera de
11
entablar vnculos y relaciones en nuestra sociedad. A partir de 1993, la expansin del uso
de la Word Wide Web sigue un ritmo geomtrico hasta alcanzar niveles de penetracin
inusitados como los alcanzados actualmente. Algunos datos bsicos para tener en cuenta
son:
Una vez colocados los cimientos de una nueva era de la informacin a saber: estndar
HTML, navegadores grficos, conexiones y redes de fcil acceso, el camino hacia nuevas
transformaciones en la forma de hacer negocios, en la manera de relacionarse y an ms en
la forma de conocerse, identificarse y socializar estaba listo. Es as como la primera dcada
del siglo XXI vio la aparicin vertiginosa de nuevas tecnologas: Computacin Mvil, Geo
- localizacin, redes sociales, computacin en la nube (cloud computing), sistemas de
colaboracin en lnea, protocolos de comunicacin inalmbricos, gobierno en lnea,
teletrabajo etc.
3. Componentes de la Ingeniera de
Software
Si bien es cierto que la Ingeniera de software es una disciplina relativamente nueva,
existen mltiples fuentes y documentos que facilitan su estudio y evolucin. Para efectos
del presente curso dividiremos la Ingeniera de software en dos grandes componentes:
Tcnico y No Tcnico.
12
El componente tcnico se refiere a todas aquellas metodologas, procedimientos y
herramientas que permiten al ingeniero de software desarrollar un sistema de informacin
siguiendo una secuencia lgica de fases, utilizando una serie de estndares de la industria y
ayudndose con herramientas y tcnicas ya existentes. El componente no tcnico est
constituido por todas aquellas actividades administrativas y de gestin que permiten a los
equipos de desarrollo de software controlar las diferentes fases tcnicas y facilitar el uso
eficiente de los canales de comunicacin.
3.1.Componente Tcnico
A continuacin centraremos nuestra atencin en discutir de manera un poco ms detallada
el componente tcnico de la ingeniera de software. El desarrollo de un sistema de
informacin exige normalmente los siguientes tipos de actividades: anlisis, concepcin,
desarrollo e implementacin.
13
Figura 4. Flujos de Informacin en la Organizacin.
Fuente: Amado Ballester Castro. 2012. Sistema de informacin para la toma de decisiones en el Departamento Comercial
de ETECSA
En: http://www.gestiopolis.com/administracion-estrategia-2/sistema-informacion-toma-de-decisiones-departamento-
comercial-de-etecsa.htm
Finalmente, las actividades de implementacin permitirn obtener una versin final del
producto de software que ser puesta en produccin siguiendo ciertos estndares de
aseguramiento de calidad, seguridad y soporte para satisfacer las exigencias de la
organizacin. Una vez instalado y entregado formalmente el sistema de informacin
sobrevienen las fase de mantenimiento y soporte, las cuales van a exigir la definicin y
ejecucin de toda una serie de procesos operacionales cuyo objetivo es asegurar la
continuidad en la operacin del sistema de informacin conforme a unos acuerdos de
servicio previamente establecidos por el grupo de gestin de Tecnologas de la
Informacin y los gerentes de rea involucrados en su operacin. Esta ltima fase durar
mucho ms tiempo que las fases de concepcin, desarrollo e implementacin del sistema y
provocar unos costos recurrentes para la organizacin.
14
Fig. 5 : Ciclo de Vida de Desarrollo de Sistemas (SDLC)
Adaptado de: Turban, Efraim et Al. 2007. Information Technology for Management
En la figura 5, se muestra el esquema del ciclo de vida de Sistemas descrito de forma muy
breve en la seccin anterior.
Seguidamente, explicaremos con algn grado de detalle cada una de las fases del ciclo de
vida de desarrollo de sistemas. Es claro que a lo largo de la carrera el estudiante tendr la
oportunidad de profundizar cada uno de los aspectos de este enfoque y desarrollar mltiples
competencias y habilidades que le facilitarn su desempeo profesional.
Recoleccin de informacin.
Definicin de las especificaciones del sistema.
Construccin de prototipos para facilitar la descripcin de las especificaciones.
Priorizacin de las especificaciones.
Examen de las alternativas conjuntamente con la direccin.
15
La recoleccin de informacin es fundamental en la fase de anlisis, pues mediante ella,
los analistas de sistemas obtendrn una visin general de las actividades de la organizacin
y de los principales componentes e interrelaciones de la misma. Ellos se reunirn
peridicamente con los diferentes usuarios del futuro sistema y utilizando mltiples
mtodos tales como: entrevistas, talleres, observacin directa, etc., y haciendo uso de
herramientas metodolgicas plasmarn el funcionamiento en esquemas grficos (diagramas
de flujo de datos, casos de uso, diagramas de actividades) que luego sern validados y
refinados hasta obtener una fotografa de la organizacin y de los flujos de informacin
que circulan al interior de ella. Con base en el entendimiento de los procesos de negocio, el
equipo de anlisis podr resumir las necesidades de informacin de la organizacin y
aproximarse a unas dos o tres alternativas de solucin global del sistema.
As mismo, como el nuevo sistema brinda una forma de acceso y gestin a travs de la
interfaz de usuario, deber estar en capacidad de interactuar con otros sistemas. Por
ejemplo: un sistema de recursos humanos deber estar en capacidad de intercambiar
informacin con el sistema contable, con el sistema de gestin y control de acceso a las
aplicaciones etc. Entonces, ser imprescindible invertir en la definicin y programacin de
los vnculos de comunicacin entre el sistema y su entorno.
Cualquier sistema de informacin tendr como uno de sus objetivos el registro de las
actividades de negocio. Por ejemplo: Twitter es una aplicacin (micro blogging)
considerada como una red social en la que se comparte informacin de estado (eventos,
actividades ) de algn objeto de la realidad (persona, concierto, actividad poltica, etc.) y
como tal genera enormes cantidades de datos que van a ser explotados por numerosas
compaas. Para tal efecto, el sistema de informacin sobre el que se apoya Twitter genera
segundo a segundo un gran cumulo de mensajes que deben ser almacenados en algn lugar
para mltiples propsitos: anlisis estadstico, marketing empresarial, seguridad
informtica, etc. En este caso los diseadores de Twitter definieron una arquitectura de
informacin que se traduce en bases de datos, archivos de configuracin, auditorias del
sistema.
17
Las actividades de desarrollo son aquellas que permiten plasmar toda la concepcin en
lneas de cdigo y finalmente la puesta en produccin de un sistema de informacin fcil de
usar y administrar. Podemos distinguir las siguientes grandes actividades de esta fase:
Existen numerosas tcnicas para desarrollar y construir software. Una de las ms utilizadas
es valerse de un lenguaje de programacin como: Visual Basic, Java, PHP, Perl, Phyton etc.
Por otra parte, existen herramientas que permiten a partir de los requerimientos de usuario
generar un cdigo base a partir del cual el equipo de programacin comienza a desarrollar
los diferentes mdulos del sistema de informacin. El software debe ser debidamente
probado haciendo uso de variadas tcnicas y metodologas, pero siempre con el propsito
de disminuir el riesgo de fallas cuando el sistema de informacin sea puesto en produccin.
Entre las pruebas ms conocidas estn: pruebas unitarias, pruebas funcionales, pruebas de
integracin.
Previo a la fase de instalacin y puesta en produccin del sistema, el equipo del proyecto
deber tener en cuenta como aspecto primordial: la gestin del cambio y la formacin de
los usuarios en el uso del nuevo sistema. Es comn, considerar que el proceso de entrega en
produccin tiene solamente un componente tcnico de escogencia del hardware,
configuracin de los canales de comunicacin, instalacin de clientes (PCs, navegadores
etc), instalacin de servidores e instalacin de los componentes de software. Sin embargo
uno de los mayores riesgos que enfrentan los gerentes de proyectos de software es: La
resistencia al cambio. Por ello es necesario incluir los mecanismos y tcnicas adecuadas
que garanticen la reduccin al mnimo posible de este fenmeno natural en las
organizaciones sociales y en los individuos. Esto incluir sesiones de trabajo y formacin
para que los usuarios puedan apropiarse del sistema y eliminar las barreras naturales que
impediran una adaptacin rpida al nuevo sistema de informacin.
18
La fase de soporte y mantenimiento tiene como principal objetivo garantizar la continuidad
de la operacin del sistema durante el tiempo acordado o previsto en las etapas de
concepcin. En razn a que esta fase es posterior a la entrega del sistema, normalmente no
es considerada parte del ciclo de vida de un sistema. Durante el transcurso de esta fase el
sistema de informacin sufrir actualizaciones y mejoras que permitirn: extender sus
funcionalidades, solucionar problemas de rendimiento o desempeo o incluso arreglar
deficiencias en el sistema inicialmente entregado. Podemos distinguir tres grandes
actividades a lo largo de la fase de soporte:
Cada sistema exige un proceso continuo de revisin para solucionar los problemas
detectados por los usuarios al utilizar el sistema y de actualizacin del software acorde con
los nuevos requerimientos de la organizacin y de los procesos de negocio. En la actualidad
el ciclo de vida de los sistemas tiende a ser mucho ms corto que lo que era hace unos 10 o
20 aos en razn a la dinmica misma de los negocios y al ritmo vertiginoso de aparicin
de nuevas tecnologas. Sin embargo existen sectores tales como: el financiero, de seguros y
ciertas actividades gubernamentales que por ser demasiado crticas, sensibles y complejas
han decidido continuar con sus sistemas tradicionales (Legacy Systems) hacindole ciertos
ajustes a la forma como los usuarios finales visualizan el sistema pero dejando intactas sus
plataformas centrales. Las principales tareas que tienen que ver con el mantenimiento de las
aplicaciones incluyen la correccin o depuracin de errores (debugging) y los ajustes a las
especificaciones de procesamiento de informacin. Tradicionalmente, la labor de
mantenimiento del sistema es asignada a un equipo dedicado de soporte de sistemas.
Finalmente, la otra gran actividad de la fase de soporte tiene que ver con la provisin de
asistencia a los usuarios finales. Las mesas de ayuda (help desk) constituyen un mecanismo
globalmente utilizado para responder rpidamente a las preguntas de los usuarios finales y
ayudarlos a mantener o aumentar su productividad. En tanto que profesional de la
Ingeniera de software, seguramente, su carrera profesional incluir alguna(s) etapas
ejerciendo el rol de instructor o de soporte a usuarios dentro de un grupo de mesa de ayuda.
3.2.Componente no tcnico
(organizacional)
En la siguiente seccin escudriaremos algunos aspectos no tcnicos del proceso de
ingeniera de software. Como se haba resaltado anteriormente, el desarrollo de un proyecto
19
de ingeniera de software implica un cumulo de tcnicas y metodologas que faciliten su
planificacin, realizacin, control y seguimiento.
En muchas ocasiones cuando ocurren eventos trgicos se mencionan diferentes factores que
pueden haber incidido como origen de los mismos. En muchas disciplinas, tal como la
ingeniera de software, los equipos de desarrollo deben tener en mente realizar una
cuidadosa planificacin de cada una de las actividades a ejecutar, as como los tiempos y
recursos necesarios para llegar a cumplir las metas en trminos de dinero y duracin.
Incluir un adecuado uso de la gestin o gerencia de proyectos podr reducir los riesgos de
eventos perjudiciales en el desarrollo del proyecto: costos elevados en algunas actividades,
conflictos en la utilizacin de recursos, demoras injustificadas en cada una de las etapas etc.
No siempre podremos como responsables del proyecto ampararnos en la inevitabilidad de
la ley de Murphy o en el desconocimiento de ciertas tcnicas tales como el anlisis de
riesgos o la mitigacin de los mismos.
En primer lugar, un proyecto se define como una secuencia compleja de actividades nicas,
complejas y conexas que tienen un propsito y que deben ser culminadas en un tiempo
determinado, cumpliendo un presupuesto y de acuerdo con una especificacin (WHITTEN,
2005). Para cualquier proyecto de desarrollo de sistemas es necesario asegurar que el
proyecto cumple un cronograma y unas fechas de entrega determinadas previamente, que es
desarrollado ajustndose a un presupuesto (control de costos) y cumpla con las expectativas
y requerimientos establecidos inicialmente.
Por el contrario, como factores crticos de xito para los proyectos de desarrollo de
software encontramos:
Como una gua bsica para el estudiante introduciremos el ciclo de vida de un proyecto y
sus etapas ms importantes. Las actividades de gestin de proyectos permean todas las
fases del desarrollo de un sistema. A continuacin explicaremos brevemente las
actividades de gestin de proyectos.
Definicin del alcance: Esta actividad tiene como propsito que todos los participantes en
el proyecto acuerden un alcance del proyecto antes de intentar cualquier identificacin de
tareas y/o asignar recursos (personal) a esas tareas. El alcance del proyecto no es ms que la
delimitacin de las fronteras del proyecto. Sera necesario identificar y acordar cuales reas
y procesos de negocio sern estudiadas, analizadas, construidas, mejoradas e
implementadas. El alcance tambin deber incluir las excepciones o limitaciones del
proyecto. Para la construccin de este alcance, el grupo de trabajo deber responder
adecuadamente las siguientes preguntas:
Producto: Qu se quiere?
Calidad: Qu tanta calidad va a tener el producto?
Tiempo: Cundo queremos que entre a funcionar?
Costo: Cunto est el cliente o patrocinador dispuesto a pagar por el
desarrollo del sistema?
Recursos: Cules recursos existen y estn disponibles para emprender la construccin
del sistema?
21
Fig. 6. Resultado de la Estructura de Descomposicin de Trabajo (EDT - WBS)
Fuente: www.criticaltools.com
Una vez hecha la descomposicin de las unidades de trabajo el gerente de proyectos tendr
que asignar la duracin de cada una de ellas. La duracin de una tarea depende de factores
22
tales como: tamao del equipo, nmero de usuarios, disponibilidad de los usuarios,
aptitudes de los usuarios, complejidad del sistema, arquitectura de informacin, experiencia
y destreza del equipo de trabajo y experiencia en otros proyectos.
Una buena parte de las metodologas de sistemas definen tanto las tareas como tambin
proveen guas para la estimacin de la duracin de las mismas. El director de proyectos
debe usar sus habilidades para ajustar la duracin de las tareas acorde con las necesidades y
caractersticas especficas del proyecto. No obstante, en la practica la estimacin o clculo
de la duracin de las tareas es algo difcil de realizar con la precisin adecuada y
normalmente los proyectos incluyen algunos tiempos de holgura para mitigar el riesgo de
haber hecho una estimacin inadecuada de la duracin de las tareas. Adicional a las
metodologas existen innumerables herramientas de software en el mercado para facilitar el
diseo del cronograma e incluir los recursos y costos del proyecto. Algunas de ellas son
Microsoft Project Manager, Primavera, Lotus Notes, entre otros.
Una vez conocidas las fases, actividades, tareas y sus duraciones, es necesario determinar
cules actividades dependen de otras y qu tipos de dependencias suceden entre ellas.
Existen 4 tipos bsicos de dependencias entre tareas:
Asignacin de Recursos
Una vez conocida la secuencia lgica y las interrelaciones de las diferentes tareas de un
proyecto conviene asignar lo diferentes recursos. Entre ellos mencionaremos:
Personas: incluye todos los propietarios del sistema, usuarios, analistas, diseadores,
desarrolladores, personal externo y personal de soporte involucrado en el desarrollo del
proyecto de una u otra manera
Servicios: Incluye todo tipo de servicios tal como aseguramiento de calidad, impresin
de documentos, Albergue de pginas (hosting), etc., necesarios para completar el
proyecto
Equipos y espacio fsico: Incluye todas las salas de reunin, conferencias, puestos de
trabajo, etc.
Materiales y suministros: Incluye todos aquellos artculos como papelera, lpices, etc.
necesarios para el normal desarrollo de las actividades.
Dinero: Incluye todo el flujo de efectivo para el sostenimiento del proyecto.
23
La disponibilidad de recursos es un factor crtico para los proyectos. Especialmente
cuando nos referimos al recurso humano o a la disponibilidad de instalaciones. Una
gran proporcin de metodologas de sistema identifican los recursos humanos
necesarios para la ejecucin de cada tarea usando el concepto de rol. El rol es una
investidura que alguien toma puesto que posee ciertas habilidades particulares:
Analista de Datos, Analista de Procesos, Usuario Lder, Diseador de interfaces etc. En
el instante de asignar los recursos, el gerente de proyectos especifica las unidades del
recurso que se requerirn para ejecutar una tarea.
Todas las actividades anteriores estaban encaminadas a obtener un plan del proyecto. Ahora
es necesario proceder a la ejecucin del plan. Esta exigir del gerente de proyectos la
administracin del personal enfocndose al logro del xito del proyecto. Existe una amplia
bibliografa que gua a los gerentes de proyecto por el difcil camino de la direccin y la
gestin de un equipo de trabajo y la orientacin de un proyecto hacia la consecucin de los
objetivos fijados en las primeras etapas.
24
Monitoreo y control de progreso del proyecto
El reporte de progreso del proyecto es a menudo suficiente para establecer el control y las
responsabilidades, pero en ocasiones se convierte en un impedimento para lograr un
avance real del proyecto. En alguna literatura (algo obsoleta) se recomiendan reuniones
para mostrar el progreso del proyecto cada 2 semanas. Esto puede ser vlido a nivel de alta
gerencia. Sin embargo a nivel del control de ejecucin de las actividades, es ya de uso
corriente metodologas mucho ms livianas (sobre todo en trminos de documentacin) que
implementan reuniones diarias muy cortas con el propsito de conocer el avance de
cada uno de los integrantes de los equipos de trabajo y las dificultades o interdependencias
que pueden suscitar algn tipo de bloqueo o dificultad en el avance del proyecto. Estas
metodologas se han dado en denominar AGILE.
Los informes de progreso o ejecucin del proyecto pueden hacerse verbalmente o de forma
escrita. En general las herramientas de gestin de proyectos como Microsoft Project
manager, primavera, etc., poseen opciones de reportes que facilitan la impresin o envo
electrnico de los informes de ejecucin o de progreso del proyecto. Tambin es muy usado
Excel como herramienta liviana y de fcil uso para mostrar la ejecucin de un proyecto,
usndolo conjuntamente con los grficos de GANTT o PERT.
Adems de responder a la pregunta con un s o con un no, se debern revisar las razones
y circunstancias que justifican las respuestas, para posteriormente favorecer un mecanismo
de mejoramiento continuo que permita progresar en el uso de las metodologas de
desarrollo de sistemas y de gestin de proyectos en el futuro.
25
A continuacin introduciremos algunos elementos referentes a las diferentes tcnicas
existentes para la implementacin y desarrollo de software.
Es necesario tener en cuenta que la reutilizacin de cdigo exige del equipo de desarrollo
un esfuerzo en la gestin de versiones del mismo. Puesto que el desarrollo de software en
gran escala es una actividad de equipo que implica compartir elementos comunes, la labor
de gestionar las versiones del software exigir una atencin especial.
Por otra parte, el desarrollo por componentes permite reutilizar un conjunto de clases de
manera integral. En este enfoque no es permitido utilizar una de las clases del componente
de forma individual. Cada componente representa una unidad de aplicacin, con su interfaz
y sus reglas para ser usado (contrato o protocolo) sin dejar ver cmo est desarrollado
internamente. Ejemplos de componentes son las interfaces grficas disponibles en entornos
como java y .net. El xito del desarrollo utilizando el enfoque de componentes reside en
definir claramente: cul ser la interfaz y cul es su contrato. Para facilitar la definicin de
la interfaz en ocasiones se utiliza un lenguaje de definicin de interfaz (IDL). Esto
independiza la implementacin y definicin de la interfaz del lenguaje de programacin
utilizado.
Para lograr usufructuar y conseguir estos beneficios ser necesario tener en cuenta los
siguientes elementos del patrn:
El nombre del patrn nos permite identificar el patrn de diseo y aumentar el nivel de
abstraccin puesto que nos centramos en la solucin del problema como un todo.
El problema nos muestra que situacin resuelve el patrn. Puede ser un aspecto
concreto o la identificacin de una estructura del problema.
La solucin describe los elementos que participan en el patrn tales como sus
relaciones, responsabilidades y colaboraciones. La solucin acta como una plantilla
que podemos aplicar a nuestro problema.
Las consecuencias que son los resultados y los compromisos derivados del uso del
patrn. Esto nos permite evaluar los costos y beneficios de la aplicacin del patrn.
4.1.Competencias
29
Conocimientos y competencias tcnicas:
Las tcnicas permiten realizar actividades especficas de desarrollo de sistemas tales como:
planificar proyectos, concebir o disear un sistema, instalar un software etc.
Los profesionales de software generalmente poseen una visin global del mundo de los
negocios. Es por ello que en el pensum de su carrera el estudioso encontrar asignaturas
que le permitirn comprender mejor los procesos crticos de las organizaciones.
30
El profesional de software debe poseer una muy buena comprensin de las personas y de
las relaciones humanas. En cada uno de los proyectos se enfrentar a retos de comunicacin
complejos en donde deber extraer muy rpidamente el mayor provecho posible en
trminos del entendimiento de los factores y procesos crticos de una organizacin con
miras a determinar los requisitos funcionales de un sistema. Por tanto, ser absolutamente
necesario desarrollar habilidades para entender como: piensan, aprenden, reaccionan ante
los cambios, se comunican y trabajan.
31
Oportunidades
32
Glosario
Archivo: Conjunto fsico de registros organizados de acuerdo con una lgico o protocolo
que permiten el almacenamiento de datos sin procesar. Existen mltiples tipos de archivos,
de acuerdo con su funcin, su estructura etc.
Especificacin de Interfaz: diseo tcnico que documenta como los usuarios del sistema
interactuaran con el sistema y como el sistema se relacionara con otros sistemas Auditoria
Ley de Murphy: Es una forma de expresar la propensin a obtener una cadena de errores
en un proceso o en una actividad concreta. Se expresa de manera simple diciendo Si algo
puede salir mal, saldr mal.
Prueba de software: actividad realizada por una o varias personas para validar y verificar
el correcto funcionamiento de una pieza de cdigo de software.
Tarea: Unidad bsica de ejecucin a la cual podemos asignar una duracin determinada y
unos recursos especficos.
Usuario del sistema: un cliente quien usar o ser afectado por un sistema de
informacin de forma regular en trminos de la captura, validacin, respuesta,
almacenamiento o intercambio de datos e informacin.
34
Validacin: Proceso mediante el cual se establece si un cdigo de software es ejecutado
libre de errores.
35
Bibliografa
Whitten, Jeffrey L y Bentley , Lonnie D. 2005. System Analysis and Design Methods.
McGraw Hill 7ma. Edicin.
Turban, Efraim et Al. 2007. Information Technology for Management. Editorial John
Wiley & Sons. 6ma. Edicin .
36