La construcción software Es la creación detallada de software que trabaja a través de una combinación de codificación, verificación, la unidad de pruebas, las pruebas de integración, y la depuración.

Fundamentos de software Construcción

Minimizando la complejidad

Reducir una actividad compleja, que involucre mucho tiempo para la persona.

Anticipar el cambio

Un ejemplo de esto es la plataformas como twiter esta en constate cambio y no se puede interrumpir, se debe aplicar un cambio anticipado.

Reutilizar

Me gusta hablar del paradigma OOP por que este nos permite reutilizar mucho código por medio de la herencia, muchos procesos se repiten aveces son globales, por ejemplos cuando usamos un librería estamos reutilizado código.

Normas de construcción

Estándar para los procesos de ciclo de vida del software de la organización, Este estándar se concibió para aquellos interesados
en adquisición de software, así como desarrolladores y proveedores. El estándar indica una serie de procesos desde la
recopilación de requisitos hasta la culminación del software.

Estándares en la construcción

Modelo de ciclo de vida

Hay varios modelos de ciclos de vida, todos tratan de construir el software por medio de actividades después de un extenso trabajo de planificación, todo esto pasa después de tener los requisitos y diseño.

Modelo en espiral

¿Secuencial o iterativo?

Modelos iterativos

Modelos evolutivos

Desarrollo de prototipos

Ciclo de vida clásico

Planificación

También define el orden en que se crean los componentes e integrados, la estrategia de integración (por ejemplo, por etapas o integración incremental), los procesos de gestión de calidad de software, la asignación de la asignación de tareas a los ingenieros de software específicos, y otras tareas, de acuerdo con el método elegido.

Métricas de construcción

Con los artefactos se pueden medir el código desarrollado, código modificado y la reutilizado código.

Hay un porcentaje de proyectos muy alto que fracasan no por
falta de presupuesto o tecnología sino por
falta de gestión.

En el campo de la ingeniería del software, una métrica es un estándar de medida de un grado en el que un sistema o proceso de software posee alguna propiedad.

Mediciones Comunes de Software

Métrica de Software ABC

Cuadro de mando integral

Errores por línea de código

Cobertura de código

Consideraciones de prácticas

Diseño de la construcción

los desarrolladores de software deben hacer modificaciones en una escalas pequeña para ver los detalles del diseño de software durante la construcción.

lenguajes de construcción

Escoger el Lenguaje que mas se adapte al desarrollo en construcción, que no afecte la calidad y funcionamiento sin olvidar la seguridad.

Codificación

El uso de clases, tipos enumerados, variables, constantes con nombre, y otras entidades similares;

Las técnicas para crear el código fuente comprensible, incluyendo las convenciones de nomenclatura y el diseño de código fuente;

El uso de estructuras de control;

Manipulación de las condiciones-tanto de
error anticipó y excepcional (entrada de
datos erróneos, por ejemplo);

Pruebas de Software

El propósito de las pruebas de la construcción es el de reducir la brecha entre el momento en que los fallos se insertan en el código y el momento cuando se detectan los fallos, reduciendo así el coste incurrido para solucionarlos.

Reutilización

Muchos plugin o modulos nace de esta manera con el potencial de ser reutilizado para un del presente proyecto u otros proyectos.

Calidad

Los fallos resultantes de los requisitos y de diseño, durante la construcción pueden dar lugar a problemas graves de calidad -por ejemplo, las vulnerabilidades de seguridad.

Integración

Esta actividad e durante la construcción es integrar desarrollos construidos individualmente por ejemplo las clases, componentes y subsistemas, en un único sistema
Existen numerosas técnicas para asegurar la
calidad de código.

Tecnologías de la construcción

Diseño y Uso de la API

Diseñar la API se debe hacer una API fácil de aprender y memorizar, dar lugar a un código legible, ser difícil de mal uso, fácil de extender.

Orientado a Objetos Problemas de tiempo de ejecución

Este apartado es tan grande que para sacar un idea principal es complejo es un paradigma de programación de gran importancia para le diseño de software.

Encapsularon

Abstracción

Herencia

Polimorfismo

Programación genérica

La programación genérica es un tipo de programación que está mucho más centrada en los algoritmos que en los datos. La idea de esta forma de programar pretende generalizar las funciones utilizadas para que puedan usarse en más de una ocasión.

Ejecutable modelos

Abstraer los detalles de los lenguajes de programación específicos y las decisiones sobre la organización del software. Diferente de los modelos tradicionales de software, una especificación construido en un lenguaje de modelado ejecutable como xUML (UML ejecutable) se puede implementar en varios entornos de software sin cambios.

Herramientas de software de construcción

Entornos de desarrollo

Entornos de desarrollo integrado (IDE) actualmente hay bastantes con énfasis en los lenguajes que estemos trabajando recomido "visual studio code".

GUI Builders

Wireframing

Balsamiq

OmniGraffle

Unit Testing Tools

xUnit.net

NUnit

JUnit

TestNG

PHPUnit

Symfony Lime

Test Unit

RSpec

List of performance analysis tools

Muchas IDE se pueden instarla y hacer un debug buscan mejorar el rendimiento de software.