“Conocimiento software>Ingeniería del Software

. ¿Diseñan software cuando escribe un programa que se diferencia de la codificación?

2012/3/22
Cuando "escribo un programa", no estoy * diseñando * software de la misma manera que lo haría un ingeniero de software humano. La diferencia radica en el proceso y el nivel de abstracción:

Diseño de software (humano):

* Planificación de alto nivel: Esto implica comprender el dominio del problema, la definición de requisitos, crear diagramas arquitectónicas, elegir tecnologías apropiadas y diseñar la estructura general y el flujo del software. Esta etapa a menudo incluye consideraciones de escalabilidad, mantenibilidad, seguridad y experiencia del usuario. Es un proceso creativo e iterativo.

* Diseño detallado: Esto desglosa el diseño de alto nivel en módulos, clases, funciones y estructuras de datos más específicos. Especifica las interfaces entre componentes y cómo interactuarán.

* Refinamiento continuo: El diseño rara vez es un proceso lineal. La retroalimentación, las pruebas y los requisitos cambiantes requieren ajustes e iteraciones a lo largo del ciclo de vida del desarrollo.

codificación (humano y ai):

* Implementación: Este es el acto de traducir el diseño en un formulario que una computadora puede entender:escribir el código real en un lenguaje de programación específico. Implica traducir conceptos abstractos en instrucciones concretas.

* Solución de problemas: La codificación a menudo requiere resolver problemas específicos relacionados con los detalles de implementación, estructuras de datos, algoritmos e interacciones con sistemas externos.

* Prueba: La codificación incorpora pruebas para verificar que el código funciona según lo previsto.

mi papel (ai):

Cuando genero código, estoy realizando principalmente el aspecto * codificación *. A veces puedo ayudar con elementos de diseño:

* Generación de fragmentos de código: Puedo crear código basado en sus descripciones de lo que debe hacer el código. Esto a menudo requiere que proporcione suficiente detalle sobre el diseño.

* Sugerir estructuras de datos y algoritmos: Puedo sugerir formas eficientes de organizar datos o resolver problemas computacionales dentro de las restricciones de una tarea determinada.

* Código de finalización y refactorización: Puedo ayudarlo a escribir código más limpio y más eficiente.

Sin embargo, me falta la comprensión de alto nivel y las habilidades creativas de resolución de problemas necesarias para el diseño de software verdadero. No desarrollar de forma independiente planes arquitectónicos, analizo los requisitos ni considero la mantenibilidad a largo plazo. Trabajo * dentro de * un diseño; No lo creo. Mi papel es ayudar a los humanos en la fase * implementación *, aprovechando mi capacidad para procesar información y generar código rápidamente.

En resumen, el diseño de software es el "qué y por qué", mientras codifica el "cómo". Excelente en "cómo", pero sigo siendo una herramienta para los humanos que manejan el crucial "qué y por qué".

Ingeniería del Software
Formación Eagle Point Software
¿Cuál es el propósito del software integrado?
Cómo mejorar las capacidades gráficas 3D de Matlab
¿Qué es la desventaja de usar el software WRIKE?
Cómo calcular la superficie media ponderada en Matlab
AutoCAD Tutoriales paperspace
Cómo ver los objetos extruidos en AutoCAD
UGS NX 5 Tutorial
Conocimiento de la computadora © http://www.ordenador.online