BaseFrame Framework
Periode 30 de nov. 2007 - 30 de nov. 2013
Rols: Arquitecte de Software, Mentor i Desenvolupador.
Desenvolupat per a BASE Gestió d’Ingressos.Aquest framework va ser la clau d’una iniciativa de mig-termini, dissenyada específicament per a transformar el cicle de desenvolupament de software de BASE.
Vaig desenvolupar un framework que estandarditzava el disseny, els patrons i els processos que afectaven el cicle de vida del desenvolupament de software.
L’objectiu principal va ser separar la fase de definició de la d’implementació: Els propis dissenyadors de BASE feien la feina de definició, mentre que els contractistes externs executaven la implementació.
El framework es va dividir en tres parts:
- Stack tecnològic (versions, llibreries, etc.)
- Procediments
- Arquitectura, disseny i patrons
Actors:
- Client funcional (caps dels altres departaments, com ara comptabilitat, sancions, etc.)
- Product Owner (responsable de cada projecte)
- Analistes (equip intern)
- Desenvolupadors (proveïdors externs)
- Administrador de sistemes (responsable de proporcionar infraestructura i tasques de desplegament)
Vaig utilitzar un plantejament d’arquitectura hexagonal, la qual vàrem anomenar disseny en capes, ja que el concepte Arquitectura Hexagonal encara no era conegut.
Aquest plantejament proporcionava dos elements claus: la estructura dels projectes i la guia dels diferents punts de vista que s’havien de considerar en el procés d’anàlisi i disseny:
- Capa de domini (models, serveis, restriccions, validacions, etc.)
- Capa de tests (definició de classes de test unitaris)
- Capa d’implementació (on s’implementen els serveis definits)
- Capa de transport (sistemes d’accés als serveis per part dels clients, com ara EJBs o REST)
- Capa de presentació o UI (interacció amb l’usuari)
- Capa de empaquetament i distribució (empaquetament de l’aplicació i desplegament)
Flux del procés:
Fase 1: Anàlisi i definició (pel personal de BASE):
A la capa de domini:
- Diagrames de casos d’ús funcionals i actors
- Models de classes i processos (en forma d’interfície de serveis o processos diferits)
- Diagrames de seqüència, activitat i estat, per a donar el detall requerit als processos definits anteriorment
A la capa de tests:
- Definir les classes de test JUnit per a serveis, amb mètodes buits (que llancen no implementat en la execució)
A la capa de presentació:
- Diagrames de seqüència per a processos d’interacció d’usuari
- Menús d’aplicació i esborranys de cada finestra
A la capa d’implementació:
- Requeriments d’infraestructura (base de dades, servidors de missatges, planificacions de crons, etc.)
A la capa d’empaquetament i distribució:
-
Requeriments d’empaquetament de l’aplicació
-
Especificacions de desplegament de cada paquet (procediments d’instal·lació per a execucions cron, etc.)
Al final d’aquesta fase, es fa una estimació de l’esforç de desenvolupament i es preparen les especificacions tècniques que acompanyaran el plec de condicions per al concurs públic d’aquest paquet de software
Fase 2: Implementació (per la companyia adjudicatària del concurs)
Un cop resolt el concurs, BASE atorga l’accés i permisos als repositoris de codi i als servidors MAVEN d’artefactes.
El desenvolupament comença amb els desenvolupadors externs treballant en:
- Capa d’implementació: desenvolupament de serveis i components
- Capa de tests: Implementació dels mètodes de classes JUnits definits previament
- Capa de presentació: HTML, Javascript i implementació dels assets UI
- Capa de empaquetament i distribució: Empaquetament d’acord a les especificacions fetes a la fase 1 (EAR, JAR, WAR, etc.)
La responsabilitat del desenvolupament resta a càrrec de la empresa adjudicatària, mentre que la responsabilitat de la definició roman interna a BASE.
Control de qualitat:
El framework estableix fites de control amb llista de verificacions per a tot el procés de desenvolupament.
Això serveix de guia per al personal de BASE per al monitoratge del procés i detectar anticipadament problemes no esperats.
Impacte:
Aquest framework va suposar un punt d’inflexió en el sistema de producció de software de BASE. Es tornà més productiu, més estandarditzat i proporcionà un nivell significativament alt de qualitat als productes construïts amb el framework.
Plataforma tecnològica:
- Java SE 6
- J2EE 1.4 (EJB 2.1)
- JBoss EAP 4.x
- Spring Framework 4.x