Ensayo de Ingeniería de Software.
Enviado por Roger Martinez Escalante • 11 de Febrero de 2017 • Ensayo • 1.145 Palabras (5 Páginas) • 265 Visitas
Toda la información que me proporciono el artículo de Software Gurú - “Ingeniería de Software Desarrollar es mucho más que programar” es muy extenso y m abrió la mente para preguntarme varias cosas que aun desconozco. Me dio la necesidad de descubrir un mundo que solo tengo pequeñas nociones, y entendí que hoy en día, el principal desafío es mejorar la calidad y reducir el costo de las soluciones basadas en computadoras, soluciones que se implementan con el software, y que la globalización ha permitido multiplicar y difundir inmensamente los amplios avances en materia de creación de software, aplicando prácticas y técnicas avanzadas de manejo y operación de aplicaciones creadas para satisfacer a diario el enfoque de la ingeniería de software está dirigido a la tecnificación y actualización de aplicativos, buscando de manera constante satisfacer las necesidades del ser humano, aplicando los procesos más modernos.
En este ensayo se plasma acerca de los aspectos que debe tener el desarrollo de un software, los conocimientos y requerimientos de la ingeniería, la cual debe someterse a diversas pruebas para que cuente con una construcción, diseño, calidad necesarios y se le pueda brindar el mantenimiento adecuado, para prevenir, corregir o reparar fallas.
También comprendí acerca de la administración de la configuración del software (SCM) y administración de proyectos, el proceso que se debe seguir para su creación. Aprendí la importancia de la utilización de las herramientas y métodos para asegurar la obtención de un software de calidad, y funcionalmente eficaz.
Me di cuenta que para poder crear un software, es necesario que lo cree un ingeniero, ya que él cuenta con los conocimientos y habilidades necesarios.
Ahora bien, para poder saber qué es lo que requerimos para realizar un software, debemos conocer las necesidades y restricciones a satisfacer para poder llegar a la solución de problemas reales; en la cual se debe considerar la obtención, análisis, especificación, validación y el rol dentro del proceso de su desarrollo, este especialista debe contar con experiencia y conocimientos para poder obtener, cuantificar, negociar, clasificar, priorizar, modelar, documentar, hacer valido los requerimientos y la administración adecuada.
Para iniciar su creación deben aplicar dos tipos de modelos o “planos”, que son los siguientes, el primero es el diseño arquitectónico, el cual se encarga de describir la estructura y organización de alto nivel del sistema, así como también identifica los componentes e interfaces; el segundo es el diseño detallado, es el que describe uno por uno cada componente de manera detallada para poder ser construido.
No debemos pasar por alto, que se necesita conocer y entender acerca de principios básicos, como la abstracción, acoplamiento, cohesión, descomposición y encapsulación, ya que sin ellos no se puede diseñar sistemas robustos.
También el ingeniero debe saber resolver algunos aspectos, como la persistencia de datos, sistemas distribuidos, peticiones concurrentes, manejo de eventos, entre otros y debe estar familiarizado con patrones, soluciones para problemas comunes.
Para poder construir un software, implica la creación y aplicación de algoritmos para la resolución de problemas, y también poder implementar lenguajes de programación, todo esto buscando hacer mínima la complejidad y que cumpla con estándares, para que sea entendible el código y extensible por los demás, debe de estar optimizado para que el consumo de recursos sea mínimo.
Las pruebas de software, sirven para brindar una verificación dinámica acerca del comportamiento real comparado con el esperado, en un conjunto finito de casos de pruebas seleccionadas de un dominio de ejecuciones infinitas, en las que tienen por objetivo evaluar la calidad a través de la detección de fallas.
Hay diferentes tipos de pruebas, ya sea por su alcance las cuales pueden ser unitarias, integrales o de sistemas; por su objetivo, funcionalidad, confiabilidad, desempeño, regresión, aceptación, beta, etc; para el cual se puede utilizar diferentes técnicas, como las tablas de decisión, análisis de fronteras, máquinas de estados y la propia experiencia.
...