[Ingeniería de Software: Objetivos de sistemas para modelos seguros y UML]
La arquitectura de un proyecto IT (Information technology) tiene que tener claro los objetivos del proyecto. Ésto se pretende que sea desde un lenguaje lo más entendible posible, al mismo tiempo que exacto en términos técnicos, después se procede a la producción con metodologías modernas que optimizan el proceso de desarrollo mediante la identificación de tareas y gestión eficaz del tiempo con equipos de trabajo.
Pautas iniciales
Debido a la diversidad de formas de trabajo, necesitamos estadísticas y asistencia de vanguardia para concluir qué metodología es más efectiva para la gestión y finalización de proyectos, manejo de presupuestos, control de riesgos, calidad del proyecto, recursos disponibles y así realizar y escalar el proyecto.
Observar las estadística y la efectividad de los métodos en términos de sus efectos sobre los factores de gestión de proyectos, siempre es una buena práctica. Los datos y las decisiones estarán asistidas de data science e inteligencia artificial, idealmente, para alimentar la inteligencia de de la plataforma o software así como su competitividad.
Casos de Uso
Simplicidad y claridad, cada caso de uso debe tener un único identificador el cual, al leerlo, comunica de forma entendible la funcionalidad concreta.
Su estructura es con un verbo y un objeto.
Ejemplo:
ZPI02 inscribir-curso
ZQK04 crear-ICO
A cada identificador, posteriormente, se le da una muy breve descripción de la funcionalidad en lenguaje cotidiano común.
Luego se establecen pre-condiciones (condiciones necesarias que deben existir para que el caso de uso se dé) y post condiciones (estados del caso de uso ya terminado), así las complejidades del lenguaje o lo sistemas lógicos no se mal interpretan o se confunden. Después se enumera una serie de pasos que muestran la funcionalidad del caso de uso en productivo, como "flujo Normal de trabajo".
Con ésta claridad se puede ir incrementando sistemáticamente más porciones de código fuente al mismo tiempo que se considera la escalabilidad la rentabilidad y el mantenimiento.
Ejemplo:
Creation date: dd/m/y | author: SatoshSon
Last update date: dd/m/y | author: user02
Use Case ID ZPI02 | Crear-contrato |
---|---|
Versión | 0.02 |
Dependencias* | Sistema web automatizado funcionando para curación de contenido |
Pre-condición | 1.-Es sostenible la micro-economía pensada en términos de liquidez y competencia en el mercado 2.-Tenemos un KYC simple en la base de datos usuarios. |
Descripción | A través de una cuenta puedes crear en la interfaz un smart contract tan simple como ordenar componentes. |
Secuencia Normal | 1- El usuario crea un contrato y lo guarda para la test net 2.-La interfaz le muestra la funcionalidad del contrato de una forma simple y completa con estadísticas simples. 3.-El usuario decide si publicarlo, de ser así tendría que pagar el gas. |
Post condición | El sistema guarda un log de qué contratos y qué cuentas se están creando, las estadísticas están enfocadas a hacer más simple el deploy de un smart contract. |
Excepciones | Si el usuario tiene comportamientos y pruebas maliciosas se le niega el acceso posterior a la plataforma y se publica su ip como peligrosa. |
Notas importantes | Dentro de la infraestructura se debe tener en cuenta la carga computacional de machine learning para los insights en los datos. |
Herramientas de desarrollo
Modelos UML
Ésts diagramas son muy usados y efectivos porque el objetivo de éstos modelos es buscar las clases que pueden abstraer/modelar bien las características del sistema para establecer relaciones entre éstas mismas clases, que reflejen lo que sucede realmente en el mundo real de la implementación de la aplicación.
Identificar clases
Se identifican los conceptos que pueden ser o valer como clases.
Luego apliamos un poco la información para incluir atributos y precondiciones en cada clase.
Después, hay que establecer relaciones entre las clases porque tiene que ser consistente, es decir, debe existir relaciones entre las clases de manera que se pueda navegar y manipular la información del sistema.
Identificar relaciones entre clases
Las relaciones entre las clases pueden ser de cuatro tipos:
- Dependencia
Cuando una clase A depende de otra B, osea, cuando una clase A en un método, recibe un parámetro de un determinado tipo de clase B.
- Asociación
Es una relación más estrecha entre clases, se da cuando los objetos/instancias de una clase están relacionados con los objetos de otra clase.
- Generalización
O bien conocida como "herencia".
- Realización
Cuando una clase implementa una interfaz con un contrato que se define.
Además éstos modelos son muy útiles porque se pueden almacenar como texto, simplifica la integración con una variedad de herramientas (como los sistemas de control de versiones) que los programadores ya utilizan en su trabajo diario, y los programadores normalmente se sienten más cómodos.
Claro que hay herramientas alternativas como los ER, pero teniendo en cuenta que hay extensiones UML para editores de código tan intuitivos como Visual Studio Code . Que puede crear:
Clase, Actividad, Caso de uso, Estado, Despliegue, Paquete, Secuencia (desarrollo casi terminado)... conviene seguir prestando atención a los diagramas UML.
SCRUM
Con éste trabajo hecho, es entonces natural implementar una metodología de trabajo horas/hombre en la construcción del source code.
Git
Git usualmente se usa después de que las características han sido desarrolladas, añadidas al roadmap del producto, y el equipo de desarrollo está listo. Pero para dar un paso atrás aquí es un curso rápido de desarrollo de características ágiles: producto, diseño, garantía de calidad, e ingeniería se reúnen para llegar a una comprensión compartida de lo que será una característica. Estas tareas, también conocidas como historias de usuarios, se asignan a desarrolladores individuales.
Git (que es es un controlador de versiones ideado por Linus Torvalds) comienza a encajar en tu ágil flujo de trabajo en este punto.Unos consejos para la adopción rápida de éste software empezar a pensar en las tareas como ramas de Git.
Depende de cómo se quiera administrar el proyecto si se decide si las características, correcciones de errores deba tiene su propia rama, es decir, hay que administrar el proyecto en éste punto de tal forma que se tenga la capacidad de abordar las tareas de forma individual pero en diferentes repositorios, osea, que los desarrolladores se puedan centrarse en pequeños trozos de trabajo en repositorios separados del repositorio principal de preferencia.
También, para minimizar el recargo de gastos generales, es mejor crear la rama de liberación lo más cerca posible de la fecha de liberación programada porque una rama de la versión, necesitará fusionarla regularmente en su rama maestra para asegurarse de que sus características funcionen en futuras versiones.
Git juega tiene también el rol clave de poder realizar 'pruebas'. Los equipos ágiles exitosos practican revisiones de código y configuran pruebas automatizadas para facilitar al resto de su equipo y que el trabajo está listo para ser revisado por especialistas si es que necesita ser revisado.
Hay que tener muy clara las nociones del tiempo, por si una rama no se une con el master durante mucho tiempo o si se quiere implementar ciclos de liberación de código más cortos, o más personal coontratado.
Costos fijos
Es hora entonces de hacer un registro contable de los gastos fijos para tu proyecto de infraestructura. De inicio nosotros podemos recomendarte los siguientes que te generarán buena competencia dentro del mercado:
Marketing
Finanzas
Administración
Desarrollo y mantenimiento seguro
Intelligent Analytics & Data Science
Ten en cuenta también que no es necesario que hagan un contrato para cada rol dentro de tu organización, existen alternativas y mercados donde el outsourcing y los freelance son el motor de muchos proyectos. En los siguientes enlaces podrás encontrar información de precios y capacidades:
¿Qué metodología es la que mejor te ha funcionad a ti?
Recursos:
https://steemit.com/~witnesses
scroll & vote:
-Discord Server-
@CulturaBitcoin
(Español)
Cultura Bitcoin
-
Criptomonedas Profesionales Español