ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

¿Qué Es El Diseño De Software?


Enviado por   •  17 de Octubre de 2014  •  11.428 Palabras (46 Páginas)  •  138 Visitas

Página 1 de 46

¿Qué es el Diseño de Software?

Por Jack W. Reeves

Técnicas orientadas a objetos y C ++ en particular, parecen estar tomando el mundo del software por la tormenta. Numerosos artículos y libros han aparecido describir cómo aplicar las nuevas técnicas. En general, las cuestiones de si las técnicas OO son sólo exageraciones han sido reemplazadas por las preguntas de cómo obtener los beneficios con la menor cantidad de dolor. Técnicas orientadas a objetos han estado alrededor por algún tiempo, pero esta popularidad explosión parece un poco inusual. ¿Por qué el repentino interés? Se han ofrecido todo tipo de explicaciones. En verdad, probablemente no hay una única razón. Probablemente, una combinación de factores, finalmente ha alcanzado la masa crítica y las cosas están despegando. Sin embargo, parece que C ++ en sí es un factor importante en esta última fase de la revolución del software. Una vez más, es probable que haya un número de razones por qué, pero quiero sugerir una respuesta desde una perspectiva ligeramente diferente: C ++ ha hecho popular porque hace más fácil el diseño de software y el programa al mismo tiempo.

Si ese comentario parece un poco inusual, es deliberado. Lo que quiero hacer en este artículo es echar un vistazo a la relación entre la programación y diseño de software. Durante casi 10 años he sentido que la industria del software en conjunto pierde un punto sutil acerca de la diferencia entre el desarrollo de un diseño de software y lo que es un diseño de software es en realidad. Creo que hay una profunda lección en la creciente popularidad de C ++ sobre lo que podemos hacer para ser mejores ingenieros de software, aunque sólo lo vemos. Esta lección es que la programación no se trata de la construcción de software; programación es sobre el diseño de software.

Hace años yo estaba asistiendo a un seminario en el que surgió la pregunta de si el desarrollo de software es una disciplina de ingeniería o no. Aunque no recuerdo la discusión resultante, que sí recuerdo cómo catalizó mi propio pensamiento de que la industria del software ha creado algunos paralelismos falsos con la ingeniería de hardware, mientras que faltan algunos paralelismos perfectamente válidas. En esencia, llegué a la conclusión de que no somos ingenieros de software, porque no nos damos cuenta lo que es un diseño de software es en realidad. Estoy aún más convencido de que hoy en día.

El objetivo final de cualquier actividad de ingeniería es la de algún tipo de documentación. Cuando un esfuerzo de diseño está completo, la documentación de diseño es entregado al equipo de fabricación. Este es un grupo completamente diferente con completamente diferentes habilidades del equipo de diseño. Si los documentos de diseño representan verdaderamente un diseño completo, el equipo de fabricación puede proceder a construir el producto. De hecho, se puede proceder a construir una gran cantidad de producto, todo ello sin ninguna intervención adicional de los diseñadores. Después de revisar el ciclo de vida de desarrollo de software como lo entendí, llegué a la conclusión de que la única documentación de software que en realidad parece satisfacer los criterios de un diseño de ingeniería es los listados de código fuente.

Probablemente hay suficientes argumentos a favor y en contra de esta premisa para llenar numerosos artículos. Este artículo se supone que el código fuente final es el diseño de software real y luego se examinan algunas de las consecuencias de esa suposición. Puede que no sea capaz de demostrar que este punto de vista es correcto, pero espero que no se muestra a explicar algunos de los hechos observados de la industria del software, incluyendo la popularidad de C ++.

No es una de las consecuencias de considerar el código como diseño de software que abruma por completo todos los demás. Es tan importante y tan obvio que es un punto ciego total para la mayoría de las organizaciones de software. Este es el hecho de que el software es barato de construir. No califican como de bajo costo; que es tan barato que es casi gratis. Si el código fuente es un diseño de software, software, entonces en realidad la construcción se realiza por los compiladores y enlazadores. A menudo nos referimos al proceso de compilación y enlazado de un sistema completo de software como "hacer una build". La inversión de capital en equipos de construcción de software es bajo todo lo que realmente se necesita es una computadora, un editor, un compilador y un enlazador. Una vez que el entorno de compilación está disponible, entonces realmente hacer una compilación de software sólo se necesita un poco de tiempo. Compilar un programa 50000 línea C ++ puede parecer una eternidad, pero ¿cuánto tiempo se tarda en construir un sistema de hardware que tenía un diseño de la misma complejidad que 50.000 líneas de C ++.

Otra consecuencia de considerar el código fuente como el diseño de software es el hecho de que un diseño de software es relativamente fácil de crear, al menos en el sentido mecánico. Escritura (es decir, el diseño) un módulo de software típico de 50 a 100 líneas de código es por lo general sólo un par de días de esfuerzo (conseguirla totalmente depurado es otra historia, pero más sobre esto más adelante). Es tentador preguntarse si hay alguna otra disciplina de ingeniería que pueden producir diseños de tal complejidad como software en tan poco tiempo, pero primero tenemos que encontrar la manera de medir y comparar la complejidad. Sin embargo, es obvio que los diseños de software ponen muy grande con bastante rapidez.

Teniendo en cuenta que los diseños de software son relativamente fáciles de apagar, y esencialmente libre de construir, una revelación sorprendente es que los diseños de software tienden a ser muy grande y complejo. Esto puede parecer obvio, pero la magnitud del problema es a menudo ignorado. Los proyectos escolares a menudo terminan siendo varios miles de líneas de código. Hay productos de software con diseños de 10.000 líneas que se regalan por sus diseñadores. Hace tiempo que hemos pasado el punto donde el software simple es de mucho interés. Productos de software comerciales típicas tienen diseños que constan de cientos de miles de líneas. Muchos diseños de software dirigido a millones. Además, los diseños de software son casi siempre en constante evolución. Mientras que el diseño actual sólo puede ser unos pocos miles de líneas de código, muchas veces que en realidad puede haber sido escrito durante la vida del producto.

Aunque sin duda hay ejemplos de diseños de hardware que son sin duda tan complejo como diseños de software, tenga en cuenta dos hechos sobre el hardware moderno. Uno, los esfuerzos de ingeniería de hardware complejas no son

...

Descargar como (para miembros actualizados)  txt (69 Kb)  
Leer 45 páginas más »
Disponible sólo en Clubensayos.com