Responsabilidades de un ingeniero de software

Tengo una licenciatura en ingeniería eléctrica. Trabajé como ingeniero de software de sistemas integrados durante 27 años. Este artículo detalla las responsabilidades que tenía como ingeniero de software. Está destinado a darle al lector una idea del mundo de la ingeniería de software.

Este artículo está configurado en el siguiente formato. Cada párrafo comienza con una pregunta. Si el lector sabe la respuesta a la pregunta, el lector podría omitir ese párrafo.

¿Cuáles son las cuatro áreas principales de estudio para un ingeniero de software de sistemas integrados?
Lectura e interpretación de las especificaciones del cliente
Diseño y depuración de programas de software
Programación de Windows
Redes de área local
Software compatible con Internet.
Electrónica (opcional)

¿Exactamente qué es un sistema incrustado? Un sistema integrado es un sistema con un pequeño microcontrolador y memoria.

¿Qué es un microcontrolador? Un microcontrolador es literalmente una computadora en un chip. Tiene memoria para el almacenamiento del programa, datos del programa y tiene “puertos” a través de los cuales el programa podría acceder al mundo exterior. El microcontrolador ejecuta un programa que procesa las entradas de interruptores internos, equipos periféricos o y/o red de área local, realiza una red de área local. Operación especificada en los datos ingresados ​​y muestra los resultados de alguna manera.

¿Qué es el hardware? El hardware es la electrónica dentro del sistema integrado.

¿Cuál es el software? El software es el programa que es ejecutado por el microcontrolador.

¿Cuál es mi experiencia? Diseñé software para sistemas recién salidos de la línea de ensamblaje. El hardware se había probado pero sin ningún software instalado. Por lo general, el cliente que ordenó el sistema también detalló el Las funciones de software requeridas en una especificación.

READ  Las cinco mejores computadoras portátiles de 2009

¿Cuáles fueron mis responsabilidades? Enumeré mis responsabilidades en el orden en que las ejecuté.
Recibí una especificación de software escrita del cliente que detalla los requisitos de los requisitos de los requisitos de los requisitos de los requisitos de los requisitos de los requisitos diseño de software. Estudié la especificación y noté cualquier pregunta que tenía y cualquier aclaración que necesitaba. Si algo surgiera, haría que mi jefe organice una llamada de conferencia con el cliente. Durante la llamada de conferencia, discutiríamos los detalles de la especificación y recibiríamos respuestas para nuestras preguntas y solicitudes de aclaración. Si el cliente solicitara una cotización de precios, detallaría todas mis tareas, incluida la documentación y la lista del tiempo requerido para cada tarea. Entonces le daría la cotización de precios a mi jefe. La cotización de precios se presentaría al cliente. Si el cliente aceptara la cotización de precios, comenzaría a trabajar en el flujo general del software. El flujo general del software es un diagrama que muestra el orden en el que el software lograría cada tarea detallada en el contrato. Mostraría la estructura general del software. Este “diagrama de flujo” fue revisado por otros ingenieros para determinar si era satisfactorio. Luego diseñaría el software y lo probaría en el sistema. Después de depurar el software, se realizaría una revisión de software. Después de implementar los cambios dictados por la revisión del software, el software y el sistema se entregarían al cliente.

¿Qué abarca la depuración del software? La mayoría de los programadores aficionados solo prueban el software de lo que debe hacer. Sin embargo, el software que se entregará al cliente también debe ser probado por lo que no debe hacer. El ejemplo más fácil es una entrada de teclado. Tomemos el caso donde el software solicite una de dos entradas: ‘y’ para sí o ‘n; por no. En la escuela, un estudiante podría simplemente escribir el código desnudo y nunca verificar si hay otra entrada. En un sistema, esto puede causar problemas. El Software Eengineer debe incluir un código que atrapa cualquier entrada clave incorrecta, responde con un mensaje de error y solicita la entrada nuevamente.
Si el software lee un montón de posiciones de interruptor y muestra información sobre cada posición de conmutador, la depuración podría implicar un cambio rápidamente de varias posiciones de conmutador y asegurar que el software muestra correctamente todas las posiciones de conmutador.

READ  Las 5 mejores universidades para ingeniería de software

Lo que es eficiente ¿software? El software eficiente es un software que se ejecuta en un tiempo mínimo de tiempo.

¿Hay alguna razón válida para escribir un software eficiente? Supongamos que el software leerá un conjunto de datos, realizará alguna operación en el conjunto de datos y los mostrará. En este caso, el Cliente especificó que el tiempo máximo de ejecución de software que se permite leer y procesar un conjunto de datos será de 0.05 segundos y que el software leerá y procesará 100 conjuntos de datos por minuto. Esto requeriría que el software funcione de manera eficiente.

que resume las tareas de un ingeniero de software. Espero que ayude a cualquier estudiante a pensar en una carrera en ingeniería de software.