[Ingeniería de Software: Objetivos de sistemas para modelos seguros y UML]

in #spanish6 years ago (edited)

1.jpg

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 ZPI02Crear-contrato
Versión0.02
Dependencias*Sistema web automatizado funcionando para curación de contenido
Pre-condición1.-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ónA través de una cuenta puedes crear en la interfaz un smart contract tan simple como ordenar componentes.
Secuencia Normal1- 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ónEl 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.
ExcepcionesSi el usuario tiene comportamientos y pruebas maliciosas se le niega el acceso posterior a la plataforma y se publica su ip como peligrosa.
Notas importantesDentro 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.

20191145.png

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.

2019_01.png

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


2.png

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:

Codility

stack verflow

¿Qué metodología es la que mejor te ha funcionad a ti?


Hasta pronto, colegas!


Imágenes

Referencia 1

Referencia 2

Referencia 3


Recursos:

Vote for diversity, vote for cultura.bitcoin :
https://steemit.com/~witnesses
scroll & vote:

omg1.png



-Discord Server-

@CulturaBitcoin

(Español)
Cultura Bitcoin

-

Criptomonedas Profesionales Español

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 60986.74
ETH 2636.75
USDT 1.00
SBD 2.63