Marco Teorico SAP
Marco Teorico SAP
Marco Teorico SAP
15
SAP es muy flexible. Permite agilizar las tareas diarias de cualquier empresa
independientemente del sector y del pas en que trabaje, de su tamao (si bien es cierto
que parece estar dirigido ms bien a grandes empresas) y de otros factores que pueden
suponer un problema con otro software.
Otro aspecto importante es que es altamente integrado: supera las limitaciones
jerrquicas y funcionales tpicas de la empresa. Todo est integrado en un mismo
software que coordina las distintas estructuras, procesos y eventos de todos los
departamentos y reas funcionales, permitiendo a cada empleado disponer de toda la
informacin necesaria en todo momento. As, no solo actualiza la informacin en tiempo
real (importantsima caracterstica de SAP que constituye una enorme ventaja), sino
que adems basta con introducir los datos una sola vez, puesto que es el sistema se
encarga de pasar y actualizar los datos en el resto de los mdulos o programas.
As la interconexin entre centrales, oficinas, centros de produccin, etc. queda
asegurada. Antes de los sistemas SAP, todas las operaciones podan hacerse, en cada
departamento, oficina, fbrica.... con sus programas especficos para cada una
(software para la gestin de materiales, software para controlar salarios, ventas,
compras, etc. y cada uno de ellos trabajando con sus propios protocolos, con su propia
informacin, adaptados para hardware distinto, sin conectar ni compartir informacin)
con lo que se trabajaba el doble: los datos que se repiten en diversas reas se manejan
varias veces (por ejemplo, en el almacn y en la administracin) y, al no estar
interconectados, (aunque exista una red interna, los diversos programas podran
trabajar con formatos, datos, mquinas incompatibles) es necesario que alguien se
dedique a pasar la informacin de unos a otros, perdiendo un tiempo que se podra
dedicar a mejorar la estrategia.
Imagine por ejemplo una fbrica de sillas metlicas, con su almacn de piezas,
maquinaria, oficinas, muelle de carga para los camiones, oficinas, salas de reuniones
etc. La empresa tendr personal de almacn, conductores, operarios de maquinaria,
encargados, jefe de personal, administrativos, comerciales, jefe de ventas, jefe de
administracin, gerente, y puede ser una pequea empresa (tendr mucho menos
personal e instalaciones) o una gran empresa (ms camiones, ms personal etc.), o no
ser un fbrica, sino un empresa de servicios, (en lugar de operarios podra tener
dependientes), para el caso es lo mismo. En la fbrica se genera y se necesita
informacin constantemente: entrada de mercancas y materias primas, necesidades de
barras metlicas y tornillos, presupuestos que piden los clientes, albaranes de venta,
notas de consumo de combustible, vencimientos de pedidos, pagars que nos entregan
los clientes, letras que firmamos a proveedores, facturas de acreedores, balances que
hay que presentar en el Registro Mercantil, etc. etc. SAP R/3 evita que se repita
innecesariamente la informacin (los datos que introduzca uno no hace falta que los
introduzca otro, aunque sea de otra seccin) y asegura que si en nuestra fbrica de
Berln se fabrica una silla, en ese mismo momento, nuestra sucursal en Albacete sabe
que tiene una silla ms que podra vender.
SAP es tambin abierto. Fue diseado como un producto integrado, pero existe la
posibilidad de instalar slo parte del software (los mdulos pueden utilizarse
individualmente) para luego ir ampliando paso a paso segn sus necesidades. Permite
17
19
Qu es SAP NETWEAVER?
Como reemplazo de SAP R/3 y poder responder a las exigencias del mercado actual SAP AG ha
creado Sap Netweaver, la cual es una plataforma en la que se pueden alinear la infraestructura
de tecnologa con los requerimientos del negocio. SAP tiene una combinacin de tecnologas y
aplicaciones que reduce la complejidad e incrementa la flexibilidad del negocio. Con SAP
NetWeaver, se pueden crear aplicaciones usando servicios empresariales, orquestndolo con
procesos del negocio y eventos, administrando informacin empresarial que entregue
aplicaciones y contenido a los usuarios de una forma ms rpida y efectiva en costos.
Sap Netweaver es basado en web, posee una integracin abierta y es una plataforma que
provee una base de arquitectura orientada al servicio (SOA ServiceOriented Architecture) y
permite la integracin y alineamiento de las personas, informacin y los procesos de negocio.
Sap Netwaver estndares abiertos que permiten la integracin con la informacin y
aplicaciones.
SAP NetWeaver
Integracin de personas
Multi channel access
Portal
...
Collaboration
Integracin de informacin
Bus Intelligence
Knowledge Mgmt
Business
Process Mgmt
Plataforma de aplicacin
J2EE
ABAP
Abstraccin DB y SO
20
21
Plataforma de aplicacin:
El web application server actualmente viene en 2 versiones, con soporte para ABAP o
Java, est el interpretador de la base de datos el cual nos permite tener un solo
lenguaje SQL sin importar su motor ni plataforma en la que est.
Qu es una personalizacin?
La plataforma SAP ofrece un nmero de programas altamente parametrizables, pero
por exigencias del negocio, se requiere un comportamiento de estos programas que no
cubre el estndar, existen reportes que varan de organizacin en organizacin
interfaces muy particulares que varan de empresa en empresa o programas que no
existen en la plataforma. SAP ofrece las herramientas suficientes para suplir todas
estas necesidades a la cuales se les llaman personalizaciones.
22
24
3 MARCO TERICO
3.1 Metodologa de desarrollo de software
Las metodologas de desarrollo de software son un conjunto de procedimientos,
tcnicas y ayudas a la documentacin para el desarrollo de productos de este tipo.
Es como un libro de recetas de cocina, en el que se van indicando paso a paso todas
las actividades a realizar para lograr el producto informtico deseado, indicando
adems qu personas deben participar en el desarrollo de las actividades y qu papel
deben de tener. Adems detallan la informacin que se debe producir como resultado
de
una
actividad
y
la
informacin
necesaria
para
comenzarla.
Actualmente es imprescindible considerar los riesgos, aunque habitualmente las
empresas, no han sido concienciadas de los riesgos inherentes al procesamiento de la
informacin mediante ordenadores, a lo que han contribuido, a veces, los propios
responsables de informtica, que no han sabido explicar con la suficiente claridad las
consecuencias de una poltica de seguridad insuficiente o incluso inexistente. Por otro
lado, debido a una cierta deformacin profesional en la aplicacin de los criterios de
coste/beneficio, el directivo desconocedor de la informtica no acostumbra a autorizar
inversiones que no lleven implcito un beneficio demostrable, tangible y mensurable.
Las tcnicas indican cmo debe ser realizada una actividad tcnica determinada
identificada en la metodologa. Combina el empleo de unos modelos o representaciones
grficas junto con el empleo de unos procedimientos detallados. Se debe tener en
consideracin que una tcnica determinada puede ser utilizada en una o ms
actividades de la metodologa de desarrollo de software. Adems se debe tener mucho
cuidado cuando se quiere cambiar una tcnica por otra.4
En la industria se estn aplicando actualmente tres metodologas en los proyectos
informticos, dos de las metodologas pertenecen al mundo de las metodologas giles
son el SCRUM y el XP; por contraparte est una metodologa mas tradicional y probada
exitosamente en la industria y es el RUP.
La propuesta por parte de SAP AG en las implantaciones es una metodologa llamada
ASAP, la cual es muy propia de las implantaciones, esta se mostrar brevemente y se
explicar lo que hay que tener en cuenta para poderla llevar de una manera exitosa con
respecto a las personalizaciones.
25
26
27
28
3.1.1.1 SCRUM8
3.1.1.1.1 Historia del SCRUM
El trmino Scrum viene de un estudio de 1986 de los japoneses Takeuchi y Nonaka.
En dicho estudio se documentaban una serie de proyectos muy exitosos los cuales
tenan en comn el uso equipos chicos y multidisciplinarios.
El estudio comparaba a esos equipos hiper-productivos con la formacin Scrum de
Rugby.
Jeff Sutherland cre el proceso Scrum para desarrollo de software en 1993 usando este
estudio como base y adopt la analoga con los equipos de Rugby. Posteriormente, Ken
Schwaber formaliz el proceso y lo abri a toda la industria del software en 1995.9
3.1.1.1.2 Qu es SCRUM?
Scrum es un proceso gil y liviano que sirve para administrar y controlar el desarrollo de
software. El desarrollo se realiza en forma iterativa e incremental (una iteracin es un
ciclo corto de construccin repetitivo). Cada ciclo o iteracin termina con una pieza de
software ejecutable que incorpora nueva funcionalidad. Las iteraciones en general
tienen una duracin entre 2 y 4 semanas. Scrum se utiliza como marco para otras
prcticas de ingeniera de software como RUP o Extreme Programming.
3.1.1.1.3 Porque SCRUM?
Scrum se focaliza en priorizar el trabajo en funcin del valor que tenga para el negocio,
maximizando la utilidad de lo que se construye y el retorno de inversin.
Est diseado especialmente para adaptarse a los cambios en los requerimientos, por
ejemplo en un mercado de alta competitividad. Los requerimientos y las prioridades se
revisan y ajustan durante el proyecto en intervalos muy cortos y regulares. De esta
forma se puede adaptar en tiempo real el producto que se est construyendo a las
necesidades del cliente. Se busca entregar software que realmente resuelva las
necesidades, aumentando la satisfaccin del cliente.
Fuente principal: Schwaber Ken Beedle Mike. Agile Software development with Srcum USA; Prentice Hall Hill, 2002.
29
3.1.1.1.4 Roles 10
SCRUM Team
Son las personas conformantes del equipo a realizar el proyecto como tal. Este equipo
no debe ser muy numeroso, aproximadamente de 5 a 9 personas para que pueda
funcionar adecuadamente.
El equipo tiene mucha autonoma en el cumplimiento de sus labores y entre los propios
miembros del equipo se hace la asignacin de las tareas a realizar, dando sto como
resultado la posibilidad de estar en diferentes papeles durante el transcurso del
proyecto (analista, diseador, codificador, tester, etc.), segn las capacidades y
destrezas de cada miembro del equipo y las exigencias de las tareas a realizar.
Dueo del producto
Es la persona que representa los intereses de la empresa en el desarrollo del producto,
est encargada de velar porque el equipo SCRUM posea y cumpla la perspectiva del
negocio en lo desarrollado.
El dueo del producto debe estar altamente capacitado en el proceso de negocio que
se va desarrollar.
SCRUM Master
Persona encargada de facilitar todos los medios posibles para que el SCRUM team
pueda realizar sus labores efectiva y correctamente
Tambin debe hacer el rol de de Project manager al procurar que se tomen todas las
medidas necesarias para el cumplimiento del proyecto y maximizar el retorno de la
inversin por parte de la organizacin duea del desarrollo.
10
30
3.1.1.1.5 Artefactos
Product backlog:
Es una lista en donde van las funcionalidades que requiere el sistema, esta lista va en
orden de prioridades y est a cargo del dueo del producto su elaboracin
Durante el transcurso del proyecto la lista de funcionalidades y sus prioridades pueden
ser cambiadas por el dueo del producto.
especifica el miembro del equipo que la realiza, el estado en que esta, y por cada da
del SPRINT se pone las horas faltantes
Sprint 1 backlog
Horas pendientes
Descripcin
Tarea 1
Tarea 2
Tarea 3
Tarea n
Originador
Carlos M
Responsable
Estatus
10
11
12
Sergio M
Ricardo P
Ricardo L
Pepito Mendez
Completado
Pendiente
En Progreso
Completado
30
15
20
20
20
20
20
20
20
20
20
20
20
20
15
50
40
30
20
10
Burdown Chart
Grfica en forma descendente que muestra los resultados que se van presentando en el
proyecto.
La grfica como tal no es una sola y se pueden hacer varias segn las necesidades en
el proyecto.
Pueden representar varias cosas, entre ellas:
1. El trabajo pendiente de todo un Sprint Vs los das que quedan de un Sprint.
2. Horas pendientes de actividades Vs das pendientes de un Sprint ( por miembro
del equipo o el equipo)
3. El trabajo pendiente de todo del proyecto Vs cantidad de Sprints planeados para
todo el proyecto
Estos Burdown Charts son de gran utilidad para poder hacer el seguimiento al proyecto
a muchos niveles, desde el estado general del proyecto, hasta comparativas del
rendimiento real Vs El rendimiento esperado de un miembro del equipo
32
Participantes:
El dueo del producto (son las personas que velan por los intereses de la empresa en el
proyecto), el Scrum Master , Scrum Team y personas requeridas con determinados
conocimientos en el negocio o en la tecnologa a emplear.
Dinmica:
El Sprint planning est constituida en 2 sesiones aproximadamente de 4 horas cada
una, la primera sesin es para seleccionar varias funcionalidades del Product Backlog y
la segunda es para preparar el Sprint Backlog.
En esta reunin deben participar el Scrum Master, el dueo del producto y el Scrum
team. Adicionalmente puede invitarse a gente que provea ms informacin acerca del
negocio o tecnologas necesarias, pero una vez que las personas adicionales hayan
hecho su aporte ya no es necesaria su participacin en la reunin.
El equipo sugiere los tems del product backlog que considera que puede dejar
completamente desarrollados, los cuales se mostrarn en el Sprint review, despus de
una concertacin con los miembros del equipo y el dueo del producto, la
33
34
El equipo debe observar las anotaciones hechas por el Scrum master sobre los
aspectos a mejorar y hallar entre todos las mejores formas de solucionarlos, adems de
dar cabida a cambios y mejoras potenciales al prximo Sprint backlog.
El Scrum master debe hacer todo lo posible en esta reunin de retroalimentacin para
que el equipo en cada Sprint valla mejorando en sus labores.
3.1.1.1.6 Valores en el SCRUM.
Responsabilidad.
Uno de los pilares del Scrum, es la confianza que se deposita en cada uno de los
participantes al realizar sus labores. Es por ello que se les da la mayor autonoma y
libertad en el cumplimiento de sus actividades y como requisito para lograr esto, cada
integrante debe tener un sentido absoluto de la responsabilidad.
Concentracin.
En un proyecto, salen muchas actividades por hacer, pero para poder hacer las cosas
de la mejor forma posible, los miembros del equipo se deben centrar en hacer slo una
actividad al tiempo y de esta manera dar lo mejor de si en cada actividad que se est
haciendo.
Respeto.
Al trabajar en un grupo de personas, la gente se debe procurar de tratar a las dems de
la mejor forma posible. En esta clase de proyectos es de saberse que las presiones y el
tiempo es algo que juega en contra.
Coraje.
En esta metodologa, se trabajan tecnologas de alta complejidad, cambiantes o
simplemente el proyecto es muy cambiante en sus funcionalidades. Las personas
tienen mucha autonoma para realizar sus labores, pero a la vez asume mucha
responsabilidad y presin para llevarlas a cabo. Este tipo de proyectos no es para toda
clase de personas.
36
3.1.1.2 XP11
3.1.1.2.1Definiendo XP
XP es una Metodologa gil para equipos de desarrollo pequeos o medianos que
encaran un cambio rpido de requerimientos.
XP consiste en 4 partes: Valores, principios, actividades y prcticas, en la figura se
muestran como se componen unas de otras a travs de actividades que son ejecutadas
a travs del ciclo de vida del proyecto.
Actividades
Practicas
Principios
AATXT
Valores
Ilustracin 4 XP es basado en unos valores, que son soportados mediante actividades, prcticas y principios.
3.1.1.2.2 Valores:
XP maneja un conjunto de valores que es la esencia de la metodologa.
Simplicidad:
Simplicidad en XP es definido como has las cosas lo ms simples posibles y que
funcionen. Nosotros resolvemos problemas presentes simplemente y confiamos en que
los problemas a futuro tambin los podamos resolver. En la mayora de las
metodologas tradicionales se crean expectativas en la planeacin, donde el cliente
hace un esfuerzo por estimar la totalidad del sistema. Hay un entendimiento implcito
que este modelo cambiar en el futuro. Se debe implementar nicamente lo que el
usuario necesita ahora, Para qu poner caractersticas que probablemente no vas a
11
Fuente principal: Baird Stewart. Teach Yourself Extreme Programming in 24 Hours USA; Sams Publishing,
2002
37
Retroalimentacin:
El valor de la retroalimentacin es vital para el xito de cualquier proyecto. Con XP las
constantes preguntas acerca del estado del sistema son respondidas constantemente.
Como se tienen varios periodos de desarrollo cortos, se debe analizar cada x tiempo
cmo se estn haciendo las cosas para mejorar o tomar mtodos correctivos a tiempo,
asegurando as un producto de alta calidad.
Coraje:
Es la tenacidad de trabajar rpido y volver a desarrollar si es necesario. Coraje en XP
debe ser pensado en el contexto de los otros 2 valores anteriores, sin el coraje se ira al
caos el proyecto. El valor del coraje en XP est basado en ser fuerte, y tener pruebas
automatizadas y no ser imprudentes en lo desconocido. Las personas que desarrollan
en XP cambian lo que son, tentativas de cambio de parecer en codificacin incierta, con
algo ms veraz.
3.1.1.2.3 Principios:
Basados en los valores del XP, que guan el desarrollo de software.
Rpida retroalimentacin:
Significa que los desarrolladores usan los cortos loops de desarrollo para verificar que
estn haciendo las cosas de forma adecuada para satisfacer las necesidades del
cliente.
38
Asuma simplicidad
Asuma la mayor simplicidad posible en cada problema que vaya a resolver, significa
que nicamente se hacen soluciones para la presente iteracin. No hay una bola de
cristal para saber a futuro lo que de pronto se necesitar.
Cambios incrementales:
Solucione los problemas con una serie de pequeos cambios. Esto aplica a la
planeacin, desarrollo y al diseo. En vez de hacer una sola entrega de todo, se van
haciendo pequeas entregas segn la necesidad del negocio.
Acoja el cambio:
Adopte la estrategia de preservar opciones cuando este resolviendo problemas difciles.
Trabajo con calidad:
La calidad del trabajo nunca puede estar comprometida. XP eleva la importancia del
cdigo y su chequeo con el criterio de hacer primero los test y luego el programa.
3.1.1.2.4 Actividades:
Teniendo en cuenta los valores y principios, lo que se hace a diario son las siguientes
actividades:
Escuchar:
XP est basado en la comunicacin y tiene prcticas que requieren escuchar
activamente. Al tener una comunicacin menos escrita, hay una necesidad sobre la
calidad de la comunicacin verbal. Ms all de decir que los desarrolladores deben
escuchar a los clientes, XP tiene prcticas que propenden a una mejor comunicacin,
sin necesidad de tanta documentacin.
Las personas de los proyectos XP deben aprender y madurar su forma de
comunicacin.
39
Diseando:
Una de las ideas radicales de XP es que el diseo debe ir creciendo y evolucionando a
travs del proyecto.
El diseo no es esttico o asignado a slo rol y debe estar en la dinmica del equipo y
en constante diseo en vez de limitarse a slo las actividades de diseo, XP acepta la
natural evolucin del sistema.
3.1.1.2.5 Practicas:
Haciendo ms especificas las actividades, en XP se expresan las actividades en 12
prcticas esenciales.
Estas actividades son las que el equipo XP usan cada da para desarrollar los
proyectos.
Planeamiento del juego:
Se debe generar un plan de alto nivel para la prxima iteracin
40
Pequeas entregas:
Los ciclos en XP consisten en constantes entregas que tengan valor al negocio
Metforas:
Es la visin comn, le da el sentido ms sencillo de lo que debe hacer el cdigo en XP.
Consiste en poner las descripciones con palabras entendibles tanto por parte del equipo
tcnico como para el cliente.
Diseo simple:
El diseo debe ser simple, en XP significa que el cdigo debe ser lo ms sencillo
posible para que funcione correctamente.
Chequeo:
El corazn de XP es el chequeo automtico, los test son escritos antes que el cdigo
para su posterior utilizacin.
Refactorizacin:
Es
mejorar
el
diseo
del
cdigo
existente
sin
cambiar
su
funcionalidad.
Programacin en parejas:
Una pareja de programadores se sientan en la misma estacin de trabajo y comparten
tareas de desarrollo.
Dueos colectivos:
Como se es dueo colectivo del cdigo se est en la posibilidad de mejorar cualquier
parte del cdigo en cualquier momento.
Contina integracin:
Los componentes del sistema son hechos e integrados varias veces cada da
40 horas de trabajo a la semana:
Para mantener la calidad y el rendimiento no se necesita tener horas extras al equipo.
Con un trabajo sostenido y regular se puede sostener la calidad.
41
Entrega
Iteracin n
Iteracin 1
Construccin
Construccin
Construccin
Construccin
Construccin
Construccin
Produccin
Mantenimiento
Durante cada iteracin, hay mltiples construcciones, las cuales ocurren regularmente
durante el da cuando el equipo integra nuevo cdigo. El nmero de construcciones es
dependiente del tipo de tecnologa usada por el equipo de desarrollo.
Las entregas son hitos que se planifican con el cliente, mientras que las iteraciones son
de tipo interno del equipo de desarrollo, que son usadas para lograr la elaboracin de
una entrega.
42
44
46
Bandera verde:
El sistema a desplegar en un ambiente nuevo, no tiene un sistema existente. Esto es
comn en un negocio que apenas est empezando. Es un ambiente ideal para
desplegar el nuevo sistema ya que los riesgos son bajos y los posibles problemas para
integrarse con otros sistemas en mnima.
Manteniendo el sistema despus de la entrega:
Despus de desplegar el sistema, este pasa al estatus de mantenimiento, en XP el
sistema constantemente est evolucionando, en refactorizacin y refinamiento del
sistema. La habilidad para parchar y actualizar el sistema es establecida y verificada por
las pruebas automticas del sistema.
Cuando estamos hablando del sistema productivo se debe tener mucho cuidado y se
deben crear estrategias para ello.
Exploracin
Planeacin
Multiples iteraciones
Iteracin
Refinar el plan
Produccin
Mantenimiento
3.1.1.2.7 ROLES
Como trabajan juntos los roles en XP
Usualmente un negocio cubre demasiados aspectos que una sola persona no es capaz
de abarcar totalmente, o el negocio tendra que ser lo suficientemente pequeo para
que haya una persona experta en todo el proceso de negocio.
47
Ilustracin 9 Equipo XP
El cliente debe tener conocimientos muy slidos del proceso del negocio y debe tener
claridad de lo que el nuevo sistema est resolviendo. El nivel de sus conocimientos
tcnicos es menos crtico que el conocimiento que debe tener del negocio.
Administrador
Es la persona por parte del negocio, que lidera la comunidad de clientes, hacia el xito
del proyecto, esclarece y clarifica conceptos entre los usuarios y el grupo tcnico. En
48
general facilita y hace todo lo posible por parte de la organizacin para liberarla de
obstculos y facilitar los medios para el proyecto.
Entrenador:
El entrenador es el principal facilitador de comunicacin en el equipo.
El entrenador sabe que est haciendo el equipo, no 100%, pero si sabe en qu
direccin van.
El entrenador necesita tener excelentes habilidades tcnicas, porque dirige la
refactorizacin tanto en la parte de diseo como en su implementacin, en ocasiones
debe guiar y ayudar a los pares de programadores.
Algunas de las caractersticas del entrenador deben ser:
Alto entendimiento de XP
Un amplio conocimiento de los procesos de desarrollo
Confidente
Liderazgo
Sentido del humor
Habilidad para balancear las perspectivas de la visn a largo y los problemas que
se presentan presentes en el proyecto
Resolucin de problemas.
Saber ensear
Integral
Experiencia en tcnicas orientadas a objetos
Experiencia en lenguajes ( java, c++, etc.)
Desarrollador:
49
Se comienza la tarea de escribir las pruebas que chequean lo que podra fallar, antes
de escribir el cdigo. Expanda la prueba a todo lo que sea susceptible de fallos. En esta
fase si se requiere ms claridad se busca al usuario si es necesario.
Se codifica la tarea. El objetivo es completar nicamente lo que asegura que el
componente pase exitosamente las pruebas.
Revisando el cdigo, se miran las reas que son susceptibles de mejorarlas y
simplificarlas. Se para la refactorizacin una vez han sido satisfechas estas 2 premisas.
Se aade los componentes nuevos al escenario de integracin y se verifica que la
integracin pase las pruebas en el ambiente integrado.
Ejecutor de pruebas
Es el rol para completar las pruebas funcionales. Verifica que el sistema trabaja como
es esperado. Ms que trabajar desde un punto de aseguramiento de calidad externo, es
parte del equipo, probablemente escribir pruebas con el cliente.
Ejecutor de mtricas
Es la persona que junta las mtricas como las historias de usuario o tareas completas y
las disemina en el equipo, este rol debe decidir cual mtrica es ms significativa para el
equipo, cual mtrica es la que trae ms aportes significativos al estado actual del
proyecto.
En estas mtricas debe estar como mnimo como es el estado de los ltimos builds,
nmero de historias de usuario, velocidad de desarrollo y todo lo que se considere
necesario para hacer seguimiento.
Los resultados de las mtricas siempre deben ser pblicos y se pueden llevar en forma
electrnica como documentos ofimticas, pginas Web de intranet, etc.
3.1.1.2.7 Historias de usuario
Es una de las principales herramientas usadas en esta metodologa, puede estar en
medios impresos o digitales para su mejor manejo.
50
Historia de Usuario
Nmero: 1
Usuario: Autor
Modificacin de Historia Nmero:
Prioridad en Negocio: Alta
(Alta / Media / Baja)
Riesgo en Desarrollo:
(Alto / Medio / Bajo)
Iteracin Asignada:
Puntos Estimados:
Puntos Reales:
Descripcin:
Se introducen los datos del artculo (ttulo, fichero adjunto, resumen, tpicos) y de los
autores (nombre, e-mail, afiliacin). Uno de los autores debe indicarse como autor de
contacto. El sistema confirma la correcta recepcin del artculo enviando un e-mail al
autor de contacto con un userid y password para que el autor pueda posteriormente
acceder al artculo.
Observaciones:
Interfaz:
51
3.1.2 RUP
3.1.2.1 Consideraciones
Cmo podemos comparar procesos?
Los procesos se caracterizan por dos dimensiones, nivel de ceremonia y son en
cascada o iterativos
Mapa de procesos
Cascada
Pocos riesgos, secuencia,
integracin y testing tardos
Baja ceremonia
Poca documentacin
Procesos ligeros
Alta ceremonia
Bien documentado
trasabilidad
Iterativo
Manejo de riesgos
Continua intergacin y pruebas
Baja ceremonia
Poca documentacin
Procesos ligeros
RUP
Alta ceremonia
Bien documentado
trasabilidad
Iterativo
Manejo de riesgos
Continua intergacin y pruebas
El framewok de RUP posee una vasta cantidad de guas, artefactos y roles, como no
todos los proyectos van a necesitar todos estos artefactos, se necesita especificar un
subjconjunto para usar en un proyecto. Esto es hecho configurando el RUP, el cual
constituye unos procesos completos desde una perspectiva particular de los
54
ciclo de desarrollo
release
(producto al final de
una iteracin)
ciclo de evolucin
base line
generacin
(release asociada
a un hito)
(release final de
un ciclo de desarrollo)
56
Cada fase se concluye con un hito bien definido, un punto en el tiempo en el cual se
deben tomar ciertas decisiones crticas y alcanzar las metas clave antes de pasar a la
siguiente fase, ese hito principal de cada fase se compone de hitos menores que
podran ser los criterios aplicables a cada iteracin. Los hitos para cada una de las
fases son: Inicio - Lifecycle Objectives, Elaboracin - Lifecycle Architecture,
Construccin - Initial Operational Capability, Transicin - Product Release. Las fases y
sus respectivos hitos se ilustran en la Figura siguiente.
Inception
Elaboration
Objetivos
(Vision)
Construction
Arquitectura
Transition
Capacidad
Operacional
Inicial
Release
del Producto
tiempo
Ilustracin 15 Fases e hitos en RUP
Inicio
Elaboracin
Construccin
Transicin
Esfuerzo
5%
20 %
65 %
10%
Tiempo
Dedicado
10 %
30 %
50 %
10%
57
Figura 1:
Ilustracin 16Distribucin tpica de recursos humanos
Inicio
Durante la fase de inicio se define el modelo del negocio y el alcance del proyecto. Se
identifican todos los actores y Casos de Uso, y se disean los Casos de Uso ms
esenciales (aproximadamente el 20% del modelo completo). Se desarrolla, un plan de
negocio para determinar que recursos deben ser asignados al proyecto.
Los objetivos de esta fase son:
Encontrar los Casos de Uso crticos del sistema, los escenarios bsicos que
definen la funcionalidad.
El caso de negocio.
Completar la visin.
Crear un plan fiable para la fase de construccin. Este plan puede evolucionar en
sucesivas iteraciones. Debe incluir los costes si procede.
Un modelo de Casos de Uso completa al menos hasta el 80%: todos los casos y
actores identificados, la mayora de los casos desarrollados.
La arquitectura es estable.
Los gastos hasta ahora son aceptables, comparados con los previstos.
Despliegue
61
Roles
Artefactos
Actividades
3.1.2.4 Roles
Un rol define el comportamiento y responsabilidades de un individuo, o de un grupo de
individuos trabajando juntos como un equipo. Una persona puede desempear diversos
roles, as como un mismo rol puede ser representado por varias personas.
Las responsabilidades de un rol son tanto el llevar a cabo un conjunto de actividades
como el ser el dueo de un conjunto de artefactos.
RUP define grupos de roles, agrupados por participacin en actividades relacionadas.
Estos grupos son :
Analistas:
Analista de procesos de negocio.
Diseador del negocio.
Analista de sistema.
Especificador de requisitos.
Desarrolladores:
Arquitecto de software.
Diseador
Diseador de interfaz de usuario
Diseador de cpsulas.
Diseador de base de datos.
Implementador.
Integrador.
Gestores:
62
Jefe de proyecto
Jefe de control de cambios.
Jefe de configuracin.
Jefe de pruebas
Jefe de despliegue
Ingeniero de procesos
Revisor de gestin del proyecto
Gestor de pruebas.
Apoyo:
Documentador tcnico
Administrador de sistema
Especialista en herramientas
Desarrollador de cursos
Artista grfico
Especialista en pruebas:
Especialista en Pruebas (tester)
Analista de pruebas
Diseador de pruebas
Otros roles:
Stakeholders.
Revisor
Coordinacin de revisiones
Revisor tcnico
Cualquier rol
3.1.2.5 Actividades
Una actividad en concreto es una unidad de trabajo que una persona que desempee
un rol puede ser solicitado a que realice. Las actividades tienen un objetivo concreto,
normalmente expresado en trminos de crear o actualizar algn producto.
3.1.2.6 Artefactos
Un producto o artefacto es un trozo de informacin que es producido, modificado o
usado durante el proceso de desarrollo de software. Los productos son los resultados
tangibles del proyecto, las cosas que va creando y usando hasta obtener el producto
final.
Un artefacto puede ser cualquiera de los siguientes:
Para lograr estos objetivos, el modelo de negocio describe cmo desarrollar una visin
de la nueva organizacin. Basado en esta visin se definen procesos, roles y
responsabilidades de la organizacin por medio de un modelo de Casos de Uso del
negocio y un Modelo de Objetos del Negocio. Complementario a estos modelos, se
desarrollan otras especificaciones tales como un Glosario.
3.1.2.9 Requisitos
Este es uno de los flujos de trabajo ms importantes, porque en l se establece qu
tiene que hacer exactamente el sistema que construyamos. En esta lnea los requisitos
son el contrato que se debe cumplir, de modo que los usuarios finales tienen que
comprender y aceptar los requisitos que especifiquemos.
Los objetivos del flujo de datos Requisitos son:
Proveer una base para la planeacin de los contenidos tcnicos de las iteraciones.
Proveer una base para estimar costos y tiempo de desarrollo del sistema.
Definir una interfaz de usuarios para el sistema, enfocada a las necesidades y
metas del usuario.
El desarrollo del flujo de trabajo consistir en planificar que es lo que hay que probar,
disear cmo se va a hacer, implementar lo necesario para llevarlos a cabo, ejecutarlos
en los niveles necesarios y obtener los resultados, de forma que la informacin obtenida
nos sirva para ir refinando el producto a desarrollar.
3.1.2.13 Despliegue
El objetivo de este flujo de trabajo es producir con xito distribuciones del producto y
distribuirlo a los usuarios. Las actividades implicadas incluyen:
Este flujo de trabajo se desarrolla con mayor intensidad en la fase de transicin, ya que
el propsito del flujo es asegurar una aceptacin y adaptacin sin complicaciones del
software por parte de los usuarios. Su ejecucin inicia en fases anteriores, para
preparar el camino, sobre todo con actividades de planificacin, en la elaboracin del
manual de usuario y tutoriales.
3.1.2.14 Gestin del proyecto
La Gestin del proyecto es el arte de lograr un balance al gestionar objetivos, riesgos y
restricciones para desarrollar un producto que sea acorde a los requisitos de los clientes
y los usuarios.
Los objetivos de este flujo de trabajo son:
Proveer un marco de trabajo para la gestin de proyectos de software intensivos.
Proveer guas prcticas realizar planeacin, contratar personal, ejecutar y
monitorear el proyecto.
Proveer un marco de trabajo para gestionar riesgos.
La planeacin de un proyecto posee dos niveles de abstraccin: un plan para las fases
y un plan para cada iteracin.
3.1.2.15 Configuracin y control de cambios
La finalidad de este flujo de trabajo es mantener la integridad de todos los artefactos
que se crean en el proceso, as como de mantener informacin del proceso evolutivo
que han seguido.
67
3.1.2.16 Entorno
La finalidad de este flujo de trabajo es dar soporte al proyecto con las adecuadas
herramientas, procesos y mtodos. Brinda una especificacin de las herramientas que
se van a necesitar en cada momento, as como definir la instancia concreta del proceso
que se va a seguir.
En concreto las responsabilidades de este flujo de trabajo incluyen:
Seleccin y adquisicin de herramientas
Establecer y configurar las herramientas para que se ajusten a la organizacin.
Configuracin del proceso.
Mejora del proceso.
Servicios tcnicos.
El principal artefacto que se usa en este flujo de trabajo es el caso de desarrollo que
especifica para el proyecto actual en concreto, como se aplicar el proceso, que
productos se van a utilizar y como van a ser utilizados. Adems se tendrn que definir
las guas para los distintos aspectos del proceso, como pueden ser el modelado del
negocio y los Casos de Uso, para la interfaz de usuario, el diseo, la programacin, el
manual de usuario.12
12
68
Anlisis de requisitos
Diseo del Sistema
Diseo del Programa
Codificacin
Pruebas
Implantacin
Mantenimiento
69
Codificacin
Es la fase de programacin propiamente dicha. Aqu se desarrolla el cdigo fuente,
haciendo uso de prototipos as como pruebas y ensayos para corregir errores.
Dependiendo del lenguaje de programacin y su versin se crean las libreras y
componentes reutilizables dentro del mismo proyecto para hacer que la programacin
sea un proceso mucho ms rpido.
Pruebas
Los elementos, ya programados, se ensamblan para componer el sistema y se
comprueba que funciona correctamente antes de ser puesto en explotacin.
70
Implantacin
El software obtenido se pone en produccin. Se implementan los niveles software y
hardware que componen el proyecto. La implantacin es la fase con ms duracin y con
ms cambios en el ciclo de elaboracin de un proyecto. Es una de las fases finales del
proyecto.
Durante la explotacin del sistema software pueden surgir cambios, bien para corregir
errores o bien para introducir mejoras. Todo ello se recoge en los Documentos de
Cambios.
71
14
Nivel 1: Cursos de uno a dos das para introducirse en la tecnologa de SAP ECC.
Nivel 2: Cursos de tres a cinco das como primera especializacin de un rea concreta.
Nivel 3: Cursos de tres a cinco das para profundizar en un rea de especialidad, a modo de ampliacin de un curso de nivel 2.
73
75
Funcional:
Conocimientos y destrezas:
77
Actividades:
Usuario lder:
Conocimientos y destrezas:
78
Actividades:
79
15
El SEI (Software Engineering Institute) define al riesgo como la posibilidad de sufrir una
prdida [SEI, 2004] y a la Administracin de Riesgos como el proceso formal en el
que los factores de riesgos son sistemticamente identificados, evaluados y mitigados
El anlisis y gestin del riesgo son una serie de pasos que ayudan a un equipo de
software a comprender y manejar la incertidumbre. El primer paso es reconocer que en
el proyecto algo puede salir mal. A esto se le denomina identificacin del riesgo,
segundo paso consiste en determinar la probabilidad de que ocurrir y el dao que
causar si en efecto ocurre, el tercer paso es desarrollar un plan para gestionar
aquellos riesgos con gran probabilidad y alto impacto. El cuarto paso consiste en revisar
la evolucin constante del riego y finalmente tomar las medidas de control necesarias
para evitarlo o mitigarlo. Este trabajo lo realizan todos los involucrados en el proceso de
software
16
Identificacin de riesgos
Va encaminado a especificar las amenazas al plan del proyecto, este es un proceso
iterativo ya que se pueden ir descubriendo nuevos riesgos a medida que el proyecto
va avanzando.
15
Fuente Pincipal: Pressman Roger S. Ingeniera de software Un enfoque prctico Sexta edicin . Cap gestin del riego Mxico;Mc
80
82
Probabilidad
1. Muy baja
2. Baja
3. Medio
4. Alto
5. Muy alta
Valor
probabilidad
0,1
0,3
0,5
0,7
0,9
Nota: Como son probabilidades no puede drsele el valor de 1, ya que no sera una
probabilidad, si no un hecho.
Valor impacto: Es el peso que se le da al campo impacto.
Impacto
1. Muy bajo
2. Bajo
3. Medio
4. Alto
5. Muy alto
Valor impacto
1,5
3,5
5,5
7,5
9,5
83
Actividades: Indicar paso a paso de las actividades a realizar para evitar o mitigar
el riesgo.
Frecuencia: Cada cuanto tiempo, se debe revisar el estado de este riesgo para
saber su estado actual.
Responsable: Encargado de revisar y controlar este riesgo.
Revisiones: Notas y fechas de las revisiones que se la ha dado al riesgo.
Estado: Estado del riesgo (abierto/cerrado).
Enfoque de los riesgos en la primera etapa ASAP (Preparacin del Proyecto)
La primera fase o etapa de ASAP es en la que se deben tomar decisiones con
respecto al diseo del proyecto:
Equipo de trabajo.
Tareas.
Recursos.
tiempo.
metodologa.
Cada una de estas actividades conlleva riesgos que deben ser analizados en esta
etapa, con el fin de garantizar las otras etapas.
Conversiones.
Desarrollos (personalizaciones).
Especificaciones.
Estimaciones.
Seguimientos.
Cambios.
Es muy importante en esta etapa del desarrollo, se tengan los procesos muy bien
definidos y revisados de la fase anterior, para poder asegurar una correcta claridad en
las especificaciones de las personalizaciones.
Algunos riesgos en los desarrollos son:
Las especificaciones son lo suficientemente claras?
Las especificaciones tienen su estimacin correcta?
Qu pasa si hay cambio en las aplicaciones?
El nivel del personal es el adecuado para el proyecto?
Qu pasa ante un cambio en el negocio con respecto a los desarrollos?
Las mtricas para los desarrollos es la adecuada, si est dando los resultados
esperados?
85
17
4.3 Mtricas
Las mtricas de procesos de software son algo ms que una simple medida de algn
atributo del proceso de software; una mtrica es informacin que sirve para planificar,
predecir y evaluar el estado de un proyecto.
Cuando puedes medir lo que estas diciendo y expresarlo en nmeros, sabes algo
sobre ello; pero cuando no puedes medirlo, cuando no puedes expresarlo con nmeros,
tu conocimiento es escaso e insatisfactorio: puede ser el comienzo del conocimiento
pero en tus pensamientos, apenas ests avanzando hacia el escenario de la ciencia.
Lord Kelvin
La medicin se aplica al proceso de software con la finalidad de mejorarlo de manera
continua. La medicin se utiliza a lo largo de un proyecto como apoyo en la estimacin,
el control de la calidad, la valoracin de la productividad y el control del proyecto.
4.3.1 Necesidades de medida
Las necesidades de medida pueden ser diversas, desde medir el rendimiento de los
proyectos de una empresa, evaluar las inspecciones de cdigo hasta evaluar las
actividades de mejora del proceso software
La medida es una parte esencial para comprender que afecta a la calidad, oportunidad,
utilidad y funcionalidad y en la mejora de los procesos y productos software.
Para comprender como aplicar las mtricas del software, debemos comprender primero
qu significan las medidas y por qu las necesitamos.
Las medidas nos permiten cuantificar conceptos o atributos en orden a manipularlos y
aprender ms sobre ellos
4.3.1.1 Cules son los costes de no medir
Incapacidad para:
17
Fuente Pincipal: Pressman Roger S. Ingeniera de software Un enfoque prctico Sexta edicin . Cap gestin del riego Mxico;Mc
Graw Hill, 2006
86
87
Frontera de la aplicacin
La frontera de la aplicacin indica el lmite entre el software que est siendo medido.
Frecuentemente los sistemas computacionales interactan con otros sistemas
computacionales y con usuarios o dispositivos.
Es crucial tener bien identificada la frontera de la aplicacin a ser medida para luego
recin enfocarse en la descomposicin de sus componentes. La frontera de la
aplicacin debe ser dibujada en funcin del punto de vista del usuario.
En resumen, la frontera marca el borde entre el proyecto o aplicacin a ser medido y las
aplicaciones externas o el dominio del usuario. Una vez establecida la frontera, los
componentes pueden ser clasificados y contados.
Acta como una membrana a travs de la cual los datos procesados por transacciones
(EI, EO, EQ) cruzan la frontera hacia adentro y/o hacia fuera de la aplicacin.
88
Determina los datos lgicos mantenidos por la aplicacin (ILF) as como por
consiguiente facilita la identificacin de cules datos lgicos son referenciados por la
aplicacin pero mantenidos por otro sistema (ELF).
Las siguientes reglas deben aplicarse para el establecimiento de la frontera:
1. La frontera es determinada basndose en el punto de vista del usuario. Se
focaliza en qu el usuario puede entender o describir.
2. La frontera entre aplicaciones relacionadas est basada en reas funcionales
separadas siempre desde el punto de vista del usuario y no en consideraciones
tcnicas.
3. La frontera establecida por una aplicacin existente que est siendo modificada
no se influencia por el alcance de la cuenta.
La localizacin de la frontera de la aplicacin entre el software que est siendo medido
y otras aplicaciones de software suele ser algo subjetivo y difcil de determinar dnde
una aplicacin termina y la otra comienza.
Es importante que la frontera de la aplicacin sea dibujada con cuidado dado que todo
aquel dato que atraviesa la frontera puede potencialmente ser incluido en el alcance de
la cuenta.
Mecanismo
Para cada uno de los 5 tipos de elementos (EI, EO, EQ, ILF y ELF), identificar aquellos
que surgen de los requerimientos o funcionalidades que proveer el sistema. Luego
analizar la complejidad de cada uno, que puede ser Alta, Media o Baja. Con estos
datos, y utilizando los pesos correspondientes a cada uno de los elementos
identificados es posible calcular el total de Puntos Funcin.
Ficheros Lgicos Internos (ILF)
Un ILF es un grupo de datos relacionados lgicamente o informacin de control
reconocida por el usuario y mantenida dentro de la frontera de la aplicacin. El objetivo
fundamental de un ILF es manejar los datos mantenidos a travs de uno o ms
procesos elementales (o acciones) de la aplicacin que est siendo contada.
Reglas para identificarlos:
1. El grupo de datos o informacin de control es un grupo de datos lgico
identificable por el usuario que cubre de manera completa requisitos especficos
de este.
2. El grupo de datos es mantenido dentro de los lmites de la aplicacin.
3. El grupo de datos es mantenido o modificado por medio de un proceso elemental
de la aplicacin.
89
Baja
Media
Alta
Baja
Media
Alta
Baja
Media
Alta
Baja
Media
Alta
Baja
Media
Alta
Total = cantidad *
ponderacin
3
4
6
4
5
7
3
4
6
7
10
15
5
7
10
Total
Tabla 8 totales por EI ,EO, EQ, ILF y ELF
18
94
Titulo
Modulo
Prioridad
Orden
ejecucin
Fase del
proyecto
Estado
%de
avance
Complejidad
T
desarrollo
T real
desarrollo
La tabla de las mtricas del proyecto se debe alimentar de la tabla de las mtricas
llevada por cada desarrollador.
Con esta sencilla tabla podemos saber el estado actual de las personalizaciones del
proyecto y tomar medidas al respecto si se llegaran a necesitar.
Plantilla para las mtricas del programador
Para saber el estado y las actividades de cada personalizacin se deben llenar las
siguientes tablas
ID proyecto
Titulo
Descripcin
Prioridad
Modulo
Orden ejecucin
Fase del proyecto
Estado
% avance
Funcional
Complejidad
T desarrollo
Tabla 10 datos bsicos mtricas programador
95
ID Proyecto
Fecha
Labor realizada
Tabla 11 Actividades del desarrollador en una personalizacin
96
4.4 Pruebas
Con el fin de asegurar la calidad en el desarrollo realizado, se deben hacer varios tipos
de pruebas.
4.4.1 Pruebas del programador
A medida que se va realizando el cdigo del desarrollo, el programador puede ir
chequeando los segmentos de programa que va desarrollando.
Estas pruebas son a nivel de:
Funciones.
Clases.
Formularios.
Reportes.
Consultas SQL.
Segmentos de cdigo.
Ampliaciones ( user exit, customer exit, badis y frameworkde ampliaciones).
Jobs.
Para verificar que los tems del listado anterior, cumplan con las especificaciones
funcionales podemos ejecutar el debugger del sistema.
Con la base de datos adems de usar el debugger para saber si est cumpliendo con lo
requerido se puede usar el la transaccin ST05 saber que consultas se estn
ejecutando, en que parte del cdigo y tiempo de ejecucin.
Adems de verificar que el cdigo s cumple con las especificaciones dadas, se debe
verificar el programa realizado con el Code inspector ->transaccin SCI para
garantizar que el cdigo sea seguro y posea buenas prcticas de programacin que
garantice que no se est desperdiciando recursos por la forma de programar.
Adems se debe mirar el rendimiento de la aplicacin con respecto a los recursos que
utiliza, esto se hace en el men Utilidades -> Ms utilidades->Run time analysis.
97
Nota:
Como punto de enfoque El programador debe centrarse en las especificaciones dadas,
para disear su programa y hacer las pruebas de una forma organizada.
Pre-condiciones:
Se debe tener un mnimo de datos de prueba, lo suficientemente robusto para poder
hacer todas las pruebas que se consideren necesarias en la realizacin de las pruebas.
98
Post_condiciones:
El desarrollo se ha probado con los datos y ha funcionado con el resultado esperado, en
caso contrario se hacen las correcciones del caso.
4.4.2 Pruebas unitarias
Son las pruebas realizadas, usualmente por el usuario lder, funcional de ese mdulo o
por defecto alguien que est con la responsabilidad del desarrollo.
Estas pruebas deben estar previamente diligenciadas en el formato de pruebas y son
las encargadas de verificar que el programa funcione correctamente y coexista con los
dems programas del modulo para el que fue desarrollado.
En las pruebas unitarias, los desarrollos estn en un sistema que est compuesto de
varios aplicativos y estos pertenecen a uno o varios procesos del negocio y a un
mdulo. Hay un flujo de datos que debe funcionar de forma correcta.
Pre-condiciones:
Se debe tener un mnimo de datos de prueba, lo suficientemente robusto para poder
hacer todas las pruebas que se consideren necesarias en la realizacin de las pruebas.
Post_condiciones:
El desarrollo se ha probado con los datos y ha funcionado con el resultado esperado y
se firma que las pruebas se han cumplido satisfactoriamente.
En caso de existir errores se debe diligenciar el reporte de errores y notificarle esto al
desarrollador.
En las pruebas integrales, los desarrollos estn en un sistema que est compuesto de
varios aplicativos y usualmente entre estos aplicativos que pertenecen a uno o varios
procesos del negocio (mdulos del sistema). Hay un flujo de datos que debe funcionar
de forma correcta.
Pre-condiciones:
Se debe tener un mnimo de datos de prueba, lo suficientemente robusto para poder
hacer todas las pruebas que se consideren necesarias en la realizacin de las pruebas.
Post_condiciones:
El desarrollo se ha probado con los datos y ha funcionado con el resultado esperado y
se firma que las pruebas se han cumplido satisfactoriamente.
En caso de existir errores se debe diligenciar el reporte de errores y notificarle esto al
desarrollador.
Ingreso informacin formato de pruebas
Es un archivo en Excel Formato de pruebas.xls y consta bsicamente de 2 hojas, la
primera hoja Casos de prueba (CP) y la segunda hoja es la Bug tracker. Ver Anexo
3.
Abiertos
Asignados
Solucionados
Disponible para pruebas
Verificados
No Aplica
Duplicado
101
No Se Puede solucionar
Prxima versin
102
Correccin de errores.
Innovacin y mejora en los servicios.
Cumplimiento de nuevas normativas legales.
Cierre:
Tras la implementacin se debe evaluar el cambio
Se cumplieron los objetivos previstos?
Cual es la percepcin de los clientes y usuarios?
Si la valoracin es positiva se termina de documentar y cerrar el cambio, en caso
contrario se llevan a cabo los planes de back out.
Los principales beneficios derivados de una correcta gestin del cambio son:
19
105
Para proveer una plataforma que soporte manejo de versiones y documentacin del
cdigo se sugiere el manejo de un CVS o de Share Point
Se sugiere que el repositorio este organizado por mdulo al que pertenece el cdigo
y tipo de objeto (reporte, dympro, funcin, clase, sapscript, smarfrom, etc).
107
Algunas caractersticas
Implentacin y actualizaciones de soluciones SAP
Acceso central a todas las herramientas del proyecto
Administracin del proyecto
Blue print del negocio
Configuracin
Pruebas
Gestin central de toda informacin del proyecto
1 Ruta del proyecto
2 Estado del sistema
3 Documentacin del proyecto
Comparacin y sincronizacin de diferentes componentes SAP
Solucin de monitoreo
Administracin central del systema
Anisis del sistema con servicio de reportes
Monitoreo en tiempo real del sistema
Monitoreo del proceso del negocio.
Servicio de ayuda
Soporte de soluciones usando workflow para solucionar y procesar los mensajes de
problemas.
Gestin del cambio
Manejo de peticiones de cambio, usando workflow para poder tener un rastreo y auditar
los cambios y transportes en el sistema.
108
109
4.7 Calidad
4.7.1 Que es la calidad del software?
La calidad del software es el conjunto de cualidades que lo caracterizan y que
determinan su utilidad y existencia. La calidad es sinnimo de eficiencia, flexibilidad,
correccin, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e
integridad.
La calidad del software es medible y vara de un sistema a otro o de un programa a
otro. Un software elaborado para el control de naves espaciales debe ser confiable al
nivel de "cero fallas"; un software hecho para ejecutarse una sola vez no requiere el
mismo nivel de calidad; mientras que un producto de software para ser explotado
durante un largo perodo (10 aos o ms), necesita ser confiable, mantenible y flexible
para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de
explotacin.
La calidad del software puede medirse despus de elaborado el producto. Pero esto
puede resultar muy costoso si se detectan problemas deriva dos de imperfecciones en
el diseo, por lo que es imprescindible tener en cuenta tanto la obtencin de la calidad
como su control durante todas las etapas del ciclo de vida del software.
4.7.2 Aseguramiento de la calidad
Para garantizar la calidad, en la metodologa ASAP, se deben verificar absolutamente
todos los entregables respectivos a cada etapa.
Bsicamente hay 6 actividades de mucha importancia y estas son:
112
Control (Controlling)
Finanzas (Finance)
Materiales (Material Management)
Produccin (Production Planning)
Ventas (Sales and Distribution)
113
WM
BW
SE
CX
PS
Reporte
Interface de Entrada
Interface de Salida
Conversin de Datos
Mejora o Enhancement
Formulario SapScript
Formulario SmartForm
Include
Propsito General
Tabla 13 Tipos de desarrollo en las personalizaciones
ZAATTnnnn
Para programas de prueba que no sern transportados al ambiente de produccin, se
usar el prefijo YP_xxxxxxxxx como nombre de programa. Estos programas debern
ser creados como objetos locales y no deben ser asociados a rdenes de transporte
(Change Request)
Ejemplos:
ZMMIE0001: interface de Entrada.
ZFICO0002: conversin de Datos del modulo de Finanzas
ZSDFS0001: formulario tipo SapScript del mdulo de Ventas
YP_EJEMPLO: programa de prueba
Restricciones: son las mismas especificadas en la seccin 2.1
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE38 Editor ABAP
Formato de Nombre: el mximo permitido por SAP son 128 caracteres, sin embargo
para tener una mejor armona entre los nombres usaremos solamente 11 caracteres.
Esta sintaxis aplica para programas propios, en el caso de las sustituciones, se deber
mantener el nombre del include original.
El formato de nombre se define de la siguiente manera:
ZAATTnnnnI
Ejemplos:
ZMMIEPKM0001T: variables para la interface de Entrada proveniente del sistema
PKMS
ZFICO0002F: rutinas para la conversin de Datos del modulo de Finanzas
115
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE38 Editor ABAP
Los datos claves al momento de crear un programa son: ttulo, tipo (programa
ejecutable) y posteriormente asociar a una clase de desarrollo
Nomenclatura para Programas (Tipo Module Pool y Dynpros)
Un module pool es un tipo de programa ABAP revisa y procesa las entradas del usuario
durante una transaccin. Este tipo de programas estn compuestos por un conjunto de
INCLUDEs. La mayor parte de SAP ECC esta construido con este tipo de programas,
por ejemplo la creacin de un material usando la transaccin MM01 usa un programa
tipo module pool con un conjunto de pantallas y funcionalidades.
Formato de Nombre: el mximo permitido por SAP son 10 caracteres en el siguiente
formato:
SAPMZAAnnn
SAPMZ es un prefijo estndar definido por SAP y que es obligatorio.
Las pantallas en SAP son conocidas como DYNPROS (Dynamic Programs) y su
identificacin consta de un programa ABAP ms un nmero de 4 dgitos. El rango de
nmeros reservados para pantallas desarrolladas y que estn anexas a un programa
estndar de SAP va del 9500 al 9999 (con incremento de uno en uno). Para pantallas
anexas a programas desarrollados, el rango reservado es del 0001 al 0999 y del 9500
al 9999 (con incremento de 10 en 10). Por estandarizacin se manejaran la numeracin
de las pantallas comenzando desde la 0100.
Como fue dicho en el principio de esta seccin un programa module pool esta
compuesto por varios includes que cumplen diferentes funciones. El desarrollador no
tiene que preocuparse por los nombres de estos includes pues SAP los crea basados
en el nombre inicial dado al programa.
Ejemplos:
SAPMZCO001: programa principal creado por el usuario
MZCO001TOP: include creado por SAP para las declaraciones de datos
MZCO001O10: include creado por SAP para los mdulos PBO (se incrementa de 10 en
10)
MZCO001I10: include creado por SAP para los mdulos PAI (Se incrementa de 10 en
10)
MZCO001F10: include creado por SAP para las subrutinas (Se incrementa de 10 en 10)
MZCO001H10: include creado por SAP para los mdulos POH (Se incrementa de 10 en
10)
MZCO001V10: include creado por SAP para los mdulos POV (Se incrementa de 10 en
10)
116
117
Una vez en la pantalla de biblioteca de funciones, se busca la opcin de crear grupo por
el men principal: Pasar a Gestin gr. funciones Crear Grupo
ZAAnnn
Donde AA es el cdigo de la aplicacin y nnn es el nmero concecutivo para esa
aplicacin. La asignacin del concecutivo se hace revisando desde la transaccin SE93,
el concecutivo actual y sumando uno (1).
Ejemplos:
ZFI001: transaccin para un programa de finanzas
ZSD010: transaccin para un programa de ventas
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo Otras
Herramientas SE93 - Transacciones
120
Control (Controlling)
Finanzas (Finance)
Materiales (Material Management)
Produccin (Production Planning)
Business Warehouse
Ventas (Sales and Distribution)
Manejo de Bodegas (Warehouse
ZWM
Management)
ZCX
Varias aplicaciones (Cross Application)
$TMP Para objetos locales (no transportables)
Tabla 15 Ejemplos de paquetes
121
Interface de Entrada
Interface de Salida
Reporte
Programa Estndar
Las variantes pueden ser transportadas como cualquier objeto del Workbench.
Ejemplos:
ZSDVR_0001, variante de reporte de SD
ZMMVP_0001, variante de programa estndar de MM
Navegacin: las variantes son creadas directamente en la ejecucin del programa o en
el editor de ABAP (SE38).
Nota: Los usuarios lderes y usuarios del sistema en productivo, son los que deben
conocer el estndar de nombramiento de las variantes, ya que son los que finalmente
las van a usar.
Nomenclatura para Jobs (Trabajos de Fondo)
Los trabajos de fondo o jobs permiten la ejecucin en fondo de programas (internos
SAP ECC o externos) ya sea por una vez o de manera repetitiva. Para crear un Job es
necesario definir los siguientes datos:
>
>
>
>
>
>
>
122
Cada Hora
Cada Da
Cada Semana
Cada Mes
Cada Trimestre (3 meses)
Cada Ao
Cuando se necesite
Otros
Ejemplos:
ZFIRED0001, reporte de FI con ejecucin diaria
ZMMISM0001, interface de salida de MM con ejecucin mensual
Navegacin: Sistema Servicios Job Definicin Job (SM36)
123
nn: consecutivo
Ejemplo:
ZMMIE0001_BRK01: Grupo de Breakpoints 01 para el programa Interface de Entrada,
del modulo Materiales
ZFICO0002_BRK02: Grupo de Breakpoints 02 del programa de Conversin de Datos
del modulo de Finanzas
Ejemplos:
ZCV0001: Cluster vista para tablas de la solucion de etiquetas
ZCV0002: Cluster vista para tablas de bancos
Nomenclatura para Proyectos de Ampliacin y Productos BTE
Para implementar ampliaciones al estndar de mySAP usando Customer Exit o User
exit , es necesario crear un proyecto de Ampliacin ( transaccin CMOD) que contenga
la ampliacin correspondiente de mySAP, la nomenclatura para este tipo de objeto es la
siguiente.
Formato de Nombre:
ZAAPnnnn
Donde AA es el cdigo de la aplicacin, P constante para indicar que es un Proyecto de
ampliacin, y nnnn es un nmero consecutivo para Proyectos de Ampliacin y otro
consecutivo para Productos BTE.
Ejemplos:
ZFIP01: Proyecto de ampliacin nmero uno del mdulo FI
ZMMP02: Proyecto de ampliacin nmero dos del mdulo MM
Para implementar ampliaciones por medio de BTE (Business Transaction Events), se
debe crear un Producto por la transaccin FIBF asocindole la o las BTEs que
requerimos implementar. La nomenclatura de nombre para el producto BTE es la
misma de Proyectos de ampliacin.
126
Proyecto LSMW
Subproyectos LSMW
Agrupa todas las conversiones de cada mdulo. Los subproyectos creados son los
siguientes:
CO
FI
MM
PP
SD
WM
Conversiones Mdulo CO
Conversiones Mdulo FI
Conversiones Mdulo MM
Conversiones Mdulo PP
Conversiones Mdulo SD
Conversiones Mdulo WM
Objetos LSMW
Formato de Nombre: el mximo permitido por SAP son 128 caracteres, sin embargo
para tener una mejor armona entre los nombres usaremos solamente 10 caracteres.
Para crear objetos nuevos, SAP requiere que estos comiencen con las letras Z o Y, y
en nuestro caso usaremos la letra Z para objetos formales. El formato de nombre se
define de la siguiente manera:
Para los SapScript
ZAAFSnnn
Para los SmartForms
128
ZAAFFnnn
Ejemplos:
ZMMFS001 Formulario de Orden de Compra del modulo MM
Nota: Se hace una diferenciacin en los nombres de los SapScripts y los Smartforms,
para evitar malos entendidos ante la posibilidad de poner el mismo nombre a un
formulario hecho en SapScript y otro en Smartform.
129
Formato de Nombre:
ZVAAnnnn
Donde AA es el cdigo de la aplicacin y V es una constante que indica que el objeto es
una Vista. Los 4 caracteres nnnn son el identificador numrico consecutivo.
Ejemplos:
ZVMM0001: vista de MM
ZVSD0001: vista de SD
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE11
Dictionary ABAP
Estructuras
Una estructura se define para ser usado como tipo de datos. No contiene datos y no se
define fsicamente en la base de datos. Sin embargo su construccin es muy similar a la
de una tabla, exceptuando los datos tcnicos e llaves. En lo posible se deben usar
dominios y elementos de datos estndar SAP ECC. Sino estos deben ser definidos
segn los estndares que se vern en esta seccin.
Formato de Nombre:
ZEAAnnnn
Donde AA es el cdigo de la aplicacin y E es una constante que indica que el objeto es
una Estructura. Los 4 caracteres nnnn son el identificador numrico consecutivo.
Ejemplos:
ZEFI0001: estructura de FI
ZESD0001: estructura de SD
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE11
Dictionary ABAP
131
Dominios
Un dominio puede ser definido como los datos tcnicos de un campo en una tabla.
Contiene los datos que pueden ser asignados a ese valor, por ejemplo tipo carcter de
1. Tambin se pueden definir valores para ese campo, como X, Y y Z. Un dominio
puede ser usado en mltiples tablas y campos.
Formato de Nombre:
ZZxxxxxxxxxx
Donde xxxxxxxxxx es abierto y puede contener hasta 10 caracteres.
Ejemplos:
ZZTIPOTRANS: dominio para un campo tipo transporte (Carcter de 4)
ZZCOLOR: dominio para un campo cdigo de color (Carcter de 2)
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE11
Dictionary ABAP
Elementos de Dato
Un elemento de dato o dominio semntico describe el papel que juega un dominio en
una tabla, llevando la informacin semntica o simplemente la descripcin
Formato de Nombre:
ZZxxxxxxxxxx
Donde xxxxxxxxxx es abierto y puede contener hasta 10 caracteres.
Ejemplos:
ZZTIPOTRANS: elemento de datos con descripcin Tipo de Transporte
ZZCOLOR: elemento de datos con descripcin Color de Producto
Restricciones: son las mismas especificadas en la seccin 2.1
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE11
Dictionary ABAP
132
Nota: Todos los elementos de datos Z que se creen, debern tener etiquetas o labels y
documentacin que ser usada para la funcionalidad de F1.
Campos
Elemento principal de una tabla. Deben ser descriptivos y no exceder los 10 caracteres,
es formato abierto.
Formato de Nombre:
xxxxxxxxxx
Si son campos de append structure, deben tener el formato especial:
Formato de Nombre:
ZZxxxxxxxxxx
Debe coincidir con los nombres definidos para Elemento de Datos y Dominio.
Ejemplos:
Elemento de Dato: ZZTIPOTRANS
Campo: TIPOTRANS
Restricciones: no aplican restricciones especiales
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE11
Dictionary ABAP
ndices
Los ndices son un elemento que acelera la bsqueda de informacin ya sea en una
tabla estndar o una tabla Z.
Formato de Nombre:
Znn
Donde nn es un nmero consecutivo dependiente de la tabla.
Ejemplos:
Tabla LIPS
133
Tabla se especifica internamente la llave y su tipo asi como la cantidad inicial y el tipo
de tabla interna (STANDARD, SORTED o HASHED).
Formato de Nombre:
ZTTAAnnnn
Donde AA es el cdigo de la aplicacin y TT es una constante que indica que el objeto
es un Tipo Tabla. Los 4 caracteres nnnn son el identificador numrico consecutivo.
Ejemplos:
ZTTMM0001: Tipo tabla interna para datos de MM
ZTTSD0001: Tipo tabla interna con datos de SD
Navegacin: Menu SAP Herramientas Workbench ABAP Desarrollo SE11
Dictionary ABAP
Objeto de Bloqueo
Los objetos de bloqueos son necesarios para realizar bloqueos lgicos a registros de
tablas de la base de datos. Estos bloqueos no realizan un bloqueo fsico a los registros,
por lo tanto se deber consultar si un registro o conjunto de registros estn siendo
bloqueados por otro usuario y otra aplicacin antes de intentar trabajar con l.
Para esto se generan dos mdulos de funcin automticamente al momento de activar
el objeto de bloqueo.
Formato de Nombre:
EZ_AAnn
Donde AA es el cdigo de la aplicacin y nn 2 dgitos para el consecutivo.
135
136
Ambito + _ + Tipo +
_ + libre
Ej: G_E_CANTIDAD
G_TI_ + Libre
L_TI_ + Libre
G_ES_ + libre
L_ES_ + libre
Parmetro
PA_ + libre
Select-Option
SO_ + libre
Tipo Local
Ranges
RA_+ libre
Field Symbol
Constante
Variable de
referencia
Carcter
Fecha
Punto Flotante
Entero
Texto Numrico
Nmero empaquetado
137
H
X
R
Hora
Byte (Hexa)
Rango
Tabla 19 tipo de datos
Local
Global
Instancia
Argumento
Tabla 20 Ambito de los datos
Ejemplos:
Variable tipo fecha y mbito global:
G_F_FECHA_CREACION
Variable tipo carcter y mbito local:
L_C_PLANTA
Tipo de Datos Global:
G_TP_ORDEN
Parmetro:
PA_ARCHIVO
Select-Option:
SO_FECHA_COMPRA
Field Symbol local:
<L_FS_DOCUMENTO>
Constante local:
L_CTE_AE10
Tabla Interna global:
G_TI_CLIENTES_KNA1
138
TF_ + libre
GB_ + libre
RB_ + libre
BT_ + libre
SS_ + libre
TS_ + libre
TC_ + libre
GS_ + Numero consecutivo (4)
GT_ + Numero consecutivo (4)
Tabla 21 Estandares elementos Modul Pool y Dynpros
Funciones
Ejemplos:
PERFORM calculo_precio USING g_e_cantidad
g_c_nombre
ENDFORM.
El nombre de las rutinas y las funciones no tiene una nomenclatura especial. Solo
deben ser nombres explcitos que informen la funcin del objeto.
139
NOTA: Es requerido y obligatorio tipificar todos los parmetros de las subrutinas y los
mdulos de funcin.
Clases de Mensajes
Todos los mensajes utilizados en las aplicaciones del cliente, debern ser creados en
clases de mensajes Z, deber crearse una clase de mensaje por cada mdulo o
aplicacin del sistema. Los mensajes creados debern reutilizarse lo mximo posible
entre los diferentes desarrollos.
Formato de Nombre:
ZAAnn
Ejemplos:
ZMM01: Clase de Mensaje 01 para el mdulo MM
ZCO02: Clase de Mensaje 02 para el mdulo CO
Los tipos de mensaje son definidos en el apndice de Mensajes. La numeracin para
los mensajes tiene 3 caracteres numricos nicos por cada clase de mensaje nnn (del
000 al 999).
De ser necesario, se deber extender el texto del mensaje con una explicacin ms
completa, quitando la marca de Autoexplicable e ingresando la descripcin
correspondiente al mensaje.
Anexos:
Ver anexos del 5 al 8
>
>
Los eventos usados deben ser resaltados para que puedan ser fcilmente
identificables (START-OF-SELECTION, END-OF-SELECTION, etc.). Los
eventos no usados deben ser eliminados del programa.
>
Todas las subrutinas creadas (FORMs), deben ser ubicadas al final del programa
despus del evento END-OF-SELECTION, en la seccin SUBRUTINAS.
Comentarios
Los comentarios hacen parte de la documentacin de un programa haciendo ms fcil
la lectura e interpretacin de las lneas de cdigo que lo componen.
Los comentarios deben ser usados en las siguientes condiciones:
>
>
>
>
>
Formateo de Sentencias
El editor del lenguaje de programacin ABAP da la opcin de hacer un formateo de
sentencias automtico conocido como Pretty Printer (Shift-F1). Este hace cambios de
maysculas a minsculas y viceversa segn el caso, adems de organizar la
identificacin de las lneas de cdigo.
141
Manejo de Includes
Los includes son tipos de programas que permiten la organizacin y modularizacin de
las lneas de cdigo dentro de los desarrollos. Se recomienda su uso nicamente si el
programa sobrepasa las 1000 lneas de cdigo.
Mensajes
Todos los mensajes que arroja un programa deben ser manejados a travs de clases
de mensajes ya sea estndar o creadas por el programador. Para mayor informacin
ver el apndice E.
Formateo de Reportes
Las lneas en blanco dentro de un reporte deben ser creadas usando la sentencia SKIP
en lugar de usar la sentencia WRITE /. Los textos fijos deben ser creados usando
numeracin que hace que dichos textos sean lenguaje independiente, ejemplo:
WRITE: Nombre del Cliente (001).
El texto 001 debe ser definido como Nombre del Cliente (dando doble clic sobre el
nmero) y puede ser traducido a diferentes lenguajes segn sea la necesidad.
El formateo de reportes se reduce sustancialmente si se usa ALV (Abap List Viewer),
sin embargo esto depende del perfil de los desarrolladores, de su conocimiento de esta
herramienta, y del tipo de layout del reporte.
SQL Nativo
El lenguaje de programacin nos da la posibilidad de trabaja con SQL nativo, sin
embargo esto solo es recomendado bajo condiciones especiales. Contacte a su
coordinador del equipo de desarrollo antes de usar este tipo de instrucciones.
Subrutinas y Mdulos de Funcin
Cuando un programa usa una funcin, carga en memoria el grupo de funciones a la que
pertenece ocupando memoria del sistema en proporcin al tamao del grupo de
funciones. Por tal razn cuando se creen funciones nuevas se debe analizar si esta
debe o no incluirse en un grupo de funciones existente. Tambin se debe considerar la
creacin de includes.
142
143
Existen dos formas de detener los programas usando sentencias desde los mismos
programas, una de ellas es BREAK-POINT que detiene el programa sin importar que
usuario lo est ejecutando y activa el modo debugging. El segundo es BREAK
<usuario> que detiene el programa nicamente para el usuario <usuario>. En los dos
casos estas sentencias deben ser usadas temporalmente y se deben remover ANTES
de promover el programa a otros ambientes como calidad y produccin.
Otra posibilidad es crear grupos de puntos de verificacin BREAK-POINT ID XXXX, con
el fin de poder activar o desactivar los grupos en conjunto y de servir como herramienta
de pruebas. Estos tipos de puntos de verificacin no se necesitan remover del cdigo
fuente del programa, y podran pasarse a otros ambientes.
Con la transaccin SAAB se pueden activar los grupos de puntos de verificacin.
Usando la variable SY-SUBRC
La variable SY-SUBRC es un cdigo de retorno que permite saber si el proceso fue
exitoso o no. Siempre se debe leer y analizar esta variable (con un CASE o con un IF)
despus de sentencias como SELECT, OPEN, READ, TRANSFER, MODIFY, INSERT
o CALL TRANSACTION. Ejemplo:
SELECT * FROM BKPF
INTO TABLE t_bkpf.
IF sy-subrc <> 0.
WRITE No hay registros en la Base de Datos.
ENDIF.
Nota: en general hay muchas variables del sistema que pueden ser usadas.
Ver ANEXO 9.
Sentencia DATA
DATA nos permite definir espacios de memoria (variables), el complemento LIKE da la
posibilidad de definir variables usando variables ya existentes en la aplicacin. Esta
prctica es muy recomendada pues ahorra tiempo en el mantenimiento.
144
145
Order by vs SORT
Los datos que se traen de la base de datos pueden venir en cualquier orden, existe la
posibilidad de ordenarlos durante la ejecucin de la lectura usando el complemento
ORDER BY, sin embargo esto no es recomendado porque puede intensificar el
esfuerzo de la lectura. Se recomienda ordenar el contenido de la tabla interna despus
de la lectura usando un SORT.
Evitar el SELECT *
Usar el SELECT * significa que se traern a memoria todos los campos de la tabla por
lo tanto siempre se deben seleccionar las columnas que se necesitan de la(s) tabla(s)
en el mismo orden en que se encuentran definidas. Si una lectura trae el doble de
campos que son necesarios, la lectura demorar el doble de tiempo.
Uso del SELECT SINGLE
Al usar la sentencia SELECT intente proveer la mayor cantidad de campos clave a la
lectura. Si tiene todos los campos clave en su instruccin o si solo est interesado en un
solo registro de la tabla use un SELECT SINGLE.
Evitar SELECT anidados
El uso de instrucciones SELECT dentro de SELECT no es una prctica recomendable
en la lectura de tablas. Para suplir esto se tienen varias alternativas que mejoran el
rendimiento:
1. Buscar una vista en la base de datos que contenga la relacin de tablas que
se necesita
2. Usar un SELECT con el complemento JOIN o OUTER JOIN
3. Subir la informacin en instrucciones SELECT independientes a tablas
internas y despus hacer LOOPs anidados.
4. Se deben seleccionar las tablas o vistas por los campos claves.
Tablas Internas
Proceso registro a registro
Se debe usar la sentencia LOOP AT en lugar de DO. Esto porque el LOOP AT da la
posibilidad de colocar una clusula restrictiva WHERE Usar un CLEAR despus de
cada sentencia APPEND es recomendado para evitar inconsistencias.
Clusula OCCURS
La clusula OCCURS <n> debera apuntar cercanamente al nmero de registros que
contendr la tabla interna durante su utilizacin. Esto porque SAP ECC reserva el
espacio en memoria (roll area) en funcin del <n> nmero de filas. Si el nmero de
registros se incrementa, SAP ECC reservar un espacio igual en otro espacio de
146
ENDLOOP
147
No se debe usar:
LOOP AT tabla.
CHECK campo = valor.
ENDLOOP.
Clusula INTO TABLE
1. Se debe usar la clusula INTO TABLE cuando se carga una tabla interna desde la
base de datos. Esto es ms eficiente que mover uno a uno los registros e insertarlos
usando APPEND:
Se debe usar:
SELECT * FROM LFA1 INTO TABLE T_LFA1.
No se debe usar:
SELECT * FROM LFA1.
MOVE LFA1 TO T_LFA1.
APPEND T_LFA1.
ENDSELECT.
2. Recuerde evitar el uso del SELECT / ENDSELECT, cuando sea posible use un INTO
TABLE para guardar la informacin:
Se debe usar:
SELECT * FROM LFA1 INTO TABLE T_LFA1.
LOOP AT T_LFA1.
WRITE: / T_LFA1-LIFNR.
ENDLOOP.
No se debe usar:
SELECT * FROM LFA1.
WRITE: / LFA1-LIFNR.
ENDSELECT.
Clusula Appending Table
En el caso de tener una segunda o ms consultas y retornar los mismos campos, se
puede usar esta instruccin y reducir el nmero de tablas internas a utilizar.
148
Ej:
SELECT campo1 campo2 campo 3
FROM TABLE1 APPENDING TABLE itab1
WHERE fld1 = AA.
Lgica
Uso de CHECK, STOP, EXIT y REJECT
Usar estas sentencias cuando se necesite suspender un proceso o saltar procesos
innecesarios. Esto mejora el rendimiento al no tener que ejecutar ciertas instrucciones.
Uso de CHECK
Cuando sea posible use la instruccin CHECK en lugar de tener IF anidados.
CASE vs IFs
El uso de CASE en ciertos casos es mejor y ms claro que los mismos IFs. Cuando se
tienen ms de 5 instrucciones IF anidadas, se recomienda el uso del CASE que es ms
rpido y legible.
Manipulacin de Textos y Cadenas
Operadores de Cadenas
Se deben usar los operadores estndar CO, CA, CS en lugar de crear lgicas propias.
Ejemplos:
x CA y (contiene alguno), x contiene al menos un carcter de Y
x CO y (contiene nicamente), x contiene un nico carcter de Y
x CS y (contiene string), x contiene una cadena de carcter de Y
Manipulacin de Cadenas
En versiones anteriores la manipulacin de cadenas se hacia a travs de mdulos de
funcin, ahora existen instrucciones que mejora el rendimiento de estas operaciones:
CONCATENATE, para concatenar dos cadenas
SPLIT, para separar dos cadenas
STRLEN(), para conocer la longitud de una cadena
149
SHIFT
Para eliminar caracteres de una cadena, se debe usar la sentencia SHIFT LEFT/RIGHT
en lugar de crear lgicas propias.
Recomendaciones Varias
Limpiar cdigo
Evite dejar cdigo muerto dentro de los programas, remueva todos los objetos
(variables, constantes, tipos, rutinas, tablas internas) que no son usados. Se
recomienda hacer un chequeo extensivo para revisar el programa:
Transaccin SE38 Editor ABAP y por el men principal: Programa Verificar
Verificacin de programas ampliada
Escoger las mejores tablas
Siempre se debe intentar usar la mejor tabla disponible para recuperar datos. Existen
tablas que tienen los mismos datos pero son menos pesadas, por ejemplo se deben
encontrar alternativas para tablas como VBAP y BSEG
Sentencia AT
Es ms eficiente usar la sentencia AT (AT NEW, AT END, etc.) para hacer sumas y
rompimientos, que usar sentencias como ON CHANGE OF por que estas se basan en
la jerarqua de la tabla interna y permiten operaciones automticas. Sin embargo se
debe tener en cuenta que las sentencias AT no permiten ver el contenido de los campos
individuales.
Tipos de Datos y Conversiones
Trate de eliminar conversiones de datos. Definir las variables de origen y de destino con
el mismo tipo es la mejor solucin para este problema. Para conocer la forma como se
estn ejecutando sus conversiones puede ejecutar la transaccin SE30 (Runtime
Analisys).
Sentencia WRITE
Se deben usar la menor cantidad de WRITEs como sea posible, pues cada uno es un
llamado a una sentencia diferente:
Se debe usar:
WRITE: / esta es una prueba, MATNR,
150
151