Red de Respuestas Legales - Conocimientos legales - ¿Conocimientos esenciales para los ingenieros de software?

¿Conocimientos esenciales para los ingenieros de software?

Esquema del examen de ingeniero de software (avanzado)

1. Instrucciones del examen

1. Requisitos del examen:

(1) Comprender los conceptos y tareas de la gestión de ingeniería de software

(2) Comprender el proceso del ciclo de vida del software

(3) Comprender los estándares de ingeniería de software;

(4) Dominar las tecnologías de análisis, prueba y mantenimiento de requisitos básicos

(5) Dominar los métodos de gestión de configuración y medición de software

( 6) Comprender el concepto de reutilización de software;

(7) Comprender los medios de garantía de calidad del software

(s) Comprender los requisitos de personal de los proyectos de software; /p>

(9) Comprender los conocimientos básicos de los derechos de propiedad intelectual del software.

2. El personal calificado que aprueba el examen de competencia en este nivel tiene la capacidad de trabajo práctico y el nivel profesional para participar en análisis de sistemas de software y analistas de sistemas de ingeniería y administradores de ingeniería.

3. El alcance de este examen de nivel incluye tres módulos, a saber, Módulo 1, Módulo 2 y Módulo 3. Los tipos de preguntas son preguntas de opción única, diez preguntas de opción múltiple y diez preguntas integrales. El tiempo de examen de cada módulo es de 90 minutos.

2. Alcance del examen

Módulo 1: Tecnología de ingeniería de software

1.1 Proceso del ciclo de vida del software

1.1.1 Proceso de ingeniería de software y ciclo de vida del software

1.1.2 Modelo de ciclo de vida del software

1.1.3 Estándar internacional: ISO/IECI2207 Tecnología de la información-Proceso del ciclo de vida del software

1.2 Requisitos del software Análisis

1.2.1 Tareas del Análisis de Requisitos

1.2.2 Proceso de Análisis de Requisitos

1.2.3 Tipo de requisito.

1.2.4 Principios del análisis de requisitos

1.2.5 Responsabilidades de los analistas de requisitos y usuarios

1.2.6 Documentos de requisitos

1.2 .7 Selección de tecnología de especificación de requisitos

1.3 Tecnología de reutilización de software

1.3.1 El concepto de reutilización de software

1.3.2 Proceso de desarrollo de software

1.3.3 Tecnología de componentes

1.3.4 Arquitectura en capas

1.3.5 Estructura organizativa de la unidad de desarrollo que implementa la reutilización del software

1.4 Pruebas de software tecnología

1.4.1 Conceptos básicos de pruebas de software

1 .4.2 Diseño de casos de prueba

●Pruebas de caja blanca

●Caja negra testing

1.4.3 Pruebas de rendimiento

1.4.4 Estrategia de prueba de software

1.4.5 Herramientas de prueba de software

1.5 Mantenimiento de software

1.5.1 Concepto de mantenimiento de software

1.5.2 Actividades de mantenimiento de software

1.5.3 Implementación del mantenimiento de software

1.5.4 Mantenibilidad del software

1 .5.5 Reingeniería de software

1.6 Herramientas de software y entorno de desarrollo de software

1.6.1 Clasificación, rol y función de las herramientas de desarrollo de software

1.6.2 Concepto de entorno de desarrollo de software

Módulo 2: Gestión de la calidad del software y aseguramiento de la calidad del software

2.1 Calidad del software

2.1 .1 Qué es la calidad del software

2.1.2 Confiabilidad del software

2.1.3 La causa principal de los problemas de calidad del software

2.1.4 Calidad del producto de software y calidad del proceso de software

2.2 Aseguramiento de la calidad del software

2.2.1 El concepto de aseguramiento de la calidad del software

2.2.2 Sistema de aseguramiento de la calidad del software

2.2.3 Implementación de garantía de calidad

2.2.4 Diseño de calidad del software

2.2.5 Tecnología de tolerancia a fallas del software

2.3 Estándares de ingeniería de software y documentación de software

2.3.1 ¿Qué son los estándares de ingeniería de software?

2.3.2 La importancia de la estandarización de la ingeniería de software

2.3.3 Formulación e implementación de estándares de ingeniería de software

2.3.4 Niveles de estándares de ingeniería de software

2,3.5 Estándares nacionales para ingeniería de software

2.4 Estándar internacional ISO9000

2.4.1 Gestión de calidad, certificación de calidad y auditoría de calidad

2.4.2 Resumen de la norma ISO9000

2.4.3 Composición de la norma de la familia ISO9000

2.4.4 Sistema de calidad

2.4 .5 Contenido principal de ISO9001

2.4. 6Resumen de la guía de implementación ISO9000_3

2.5 Evaluación de la capacidad del proceso de software CMM

2.5.1 La importancia de la evaluación del proceso de software

p>

2.5.2 Clasificación de la madurez de la capacidad del proceso de software y sus áreas clave de proceso

2.5.3 Estándares internacionales para la evaluación de procesos de software

2.6 Métricas de software

2.6.1 Software El concepto de medición

2.6.2 Método de punto de función para calcular el tamaño del software

2.6.3 Cálculo de la complejidad del bucle del programa

2.6 .4Cálculo de la carga de trabajo del programa Halstead

2.6.5 Medición del estilo del programa

2.7 Gestión de la configuración del software

2.7.1 ¿Qué es la gestión de la configuración del software?

2.7.2 Formulación del plan de gestión de la configuración

2.7.3 Gestión de cambios

2.7.4 Gestión de versiones y lanzamientos

Módulo 3: Gestión de la Ingeniería del Software

3.1 Gestión de la Ingeniería de Software y Gestión de Proyectos de Software

3.1.1 Tareas e importancia de la Gestión de la Ingeniería de Software

p>

3.1.2 Alcance de la gestión de la ingeniería de software

3

. 1.3 Gestión documental del software

3.1.4 Estimación de costes del software

3.1.5 Análisis de riesgos del software

3.1.6 Planificación y seguimiento del progreso del proyecto de software

3.2 Gestión del personal de software

3.2.1 Estructura organizativa del desarrollo de software

3.2.2 Modelo de madurez de las capacidades del personal de software

3.2.3 Código de ética y actividades profesionales para ingenieros de software

3.3 Protección de los derechos de propiedad intelectual del software

3.3.1 ¿Qué son los derechos de propiedad intelectual?

p>

3.3.2 Informática derechos de autor de software

3.3.3 Gestión del registro de derechos de autor de software

3.3.4 Infracción de derechos de autor y protección legal de software de computadora

3.3.5 Secretos comerciales y lucha contra la desleal concurso de programas informáticos

========================== =========

¿Qué deben dominar los ingenieros de software senior? Miércoles, 26 de septiembre de 2007 05:31 pm Las siete armas del programador

El desarrollo de la tecnología de la información Aunque no existe desde hace mucho tiempo, es explosivo La velocidad del desarrollo ha permitido que la tecnología de la información cubra rápidamente todos los rincones de la sociedad y la vida humana. Los programadores son uno de los testigos de esta ola de información, y también son los principales participantes. Esta es la oportunidad y la responsabilidad que la época le otorga a todo programador.

La velocidad de actualización de las tecnologías de la información es asombrosa, y la carrera de un programador es un proceso que requiere un aprendizaje continuo, y uno nunca puede dormirse en los laureles. Durante mi trabajo, he visto a muchos programadores navegar por páginas web inútiles, chatear en línea y jugar mientras tienen tiempo libre, perdiendo mucho tiempo, lo cual es muy indeseable. Otra situación es que los rápidos cambios en la tecnología de TI han deslumbrado a muchos programadores. Quieren aprenderlo todo, pero no saben por dónde empezar. Miran esto hoy y aprenden que mañana no. familiarizado con ello.

Aunque la tecnología de TI se está desarrollando rápidamente, muchas tecnologías tienen reglas a seguir. Algunos conceptos, principios y métodos básicos siguen siendo muy comunes, y se pueden sacar inferencias de un ejemplo a otros casos. Según mi propia experiencia y experiencia, recomiendo siete armas que los programadores deben dominar a aquellos nuevos programadores que acaban de ingresar a la industria de TI o aquellos que están confundidos con estas siete armas, no me atrevo a decir que soy arrogante, pero Jianghu. Todavía es posible volverse invencible.

La primera arma: herramientas de desarrollo

Dominar el uso de al menos dos o tres herramientas de desarrollo. Esta es la base de un programador, entre ellas, C/C++ y JAVA. son mi La herramienta de desarrollo más recomendada, C/C++ se ha convertido en una herramienta poderosa entre las herramientas de desarrollo debido a su alta eficiencia y alta flexibilidad. Muchos software a nivel de sistema todavía están escritos en C/C++. La multiplataforma de JAVA y la buena integración con WEB son las ventajas de JAVA. Admiro el concepto de SUN de "la red es la computadora" y creo que JAVA y su conjunto de tecnologías relacionadas, JAVA One, se convertirán en la corriente principal en el desarrollo. herramientas. En segundo lugar, sería mejor si pudiera dominar una herramienta de desarrollo visual simple, como VB, PowerBuilder, Delphi, C++ Builder. Estas herramientas de desarrollo reducen la dificultad del desarrollo y pueden fortalecer el concepto del modelo de objetos del programador. Además, debe dominar los lenguajes de secuencias de comandos básicos, como Shell, Perl, etc., y al menos poder leer estos códigos de secuencias de comandos.

La segunda arma: la base de datos

¿Por qué es tan importante la base de datos? Muchas aplicaciones se centran en datos de bases de datos y hay muchos productos de bases de datos. Entre ellos, las bases de datos relacionales siguen siendo la forma principal, por lo que los programadores deben dominar al menos una o dos bases de datos y tener muy claros los elementos clave de las bases de datos relacionales. , debe dominar la sintaxis básica de SQL. Aunque muchos productos de bases de datos proporcionan herramientas visuales de administración de bases de datos, SQL es la base y el método universal de operación de bases de datos. Si no tiene acceso a sistemas de bases de datos comerciales, es una buena opción utilizar productos de bases de datos gratuitos, como mySQL, Postgres, etc.

La tercera arma: el sistema operativo

Los principales sistemas operativos actuales son Windows y Linux/Unix. Es necesario un uso competente de estos sistemas operativos, pero estos por sí solos no son suficientes.

Para convertirse en un verdadero maestro de la programación, debe tener un conocimiento profundo del sistema operativo, su mecanismo de administración de memoria, programación de procesos/hilos, señales, objetos del kernel, llamadas al sistema, implementación de la pila de protocolos, etc. Como sistema operativo para desarrollar código fuente, Linux es una buena plataforma de aprendizaje. Linux tiene casi todas las características de los sistemas operativos modernos. Aunque hay menos información sobre el mecanismo de implementación del kernel de los sistemas Windows, aún se puede obtener mucha información a través de Internet. Sólo después de tener un cierto conocimiento del sistema operativo, descubrirá que ha alcanzado un nuevo nivel.

La cuarta arma: el protocolo de red TCP/IP

Hoy en día, cuando Internet es tan popular, si no ha comprendido bien el protocolo de soporte de Internet, la pila de protocolos TCP/IP , debe ponerse al día rápidamente con esta lección. La tecnología de red ha cambiado el modo de operación del software, desde la primera estructura cliente/servidor hasta los servicios WEB actuales y la futura computación grid, todo esto es inseparable del protocolo TCP/IP. Soporte de protocolo de red basado en pila, por lo que es muy necesario tener un conocimiento profundo del protocolo TCP/IP. Al menos, debe comprender el modelo de protocolo ISO de siete capas, los principios de protocolos comunes como IP/UDP/TCP/HTTP y el mecanismo de protocolo de enlace de tres vías.

La quinta arma: Servicios DCOM/CORBA/XML/WEB

Con el desarrollo de la tecnología, la perfecta integración del software y la red es una tendencia inevitable, y la independencia de la ubicación del software sistemas Es una de las características importantes de los modelos informáticos futuros. DCOM/CORBA son las dos plataformas de middleware principales actuales para la informática distribuida. DCOM es una extensión de Microsoft COM (Modelo de objetos componentes) y CORBA es una especificación compatible con OMG. Lo que los programadores deben hacer no es solo usar plataformas de desarrollo comerciales para desarrollar software, sino también comprender la intención original de estas tecnologías, es decir, por qué se necesita esta tecnología. Si puede comprender esto, mire hacia atrás para ver su implementación específica. estas tecnologías. Al igual que un cocinero que intenta resolver el problema de una vaca, se puede resolver fácilmente. La importancia de XML/WebServices es evidente. XML se conoce en Internet como el "esperanto" por su método de representación estructurado y su capacidad súper expresiva, y es una de las piedras angulares de la informática distribuida.

La sexta arma: ingeniería de software y CMM

En el desarrollo de sistemas de software modernos a gran escala, el control del desarrollo de ingeniería reemplaza el heroísmo personal y se convierte en la garantía del éxito de los sistemas de software. Un programador Un maestro no es necesariamente un excelente programador. Un excelente programador combina una excelente capacidad de programación y habilidades de desarrollo con un pensamiento estricto de ingeniería de software. La programación es solo una parte del ciclo de vida del software. Un excelente programador debe dominar las habilidades básicas en cada etapa del software. desarrollo, como análisis de mercado, análisis de viabilidad, análisis de requisitos, diseño estructural, diseño detallado, pruebas de software, etc. Una frase puede resumir mi opinión: "Creatividad ilimitada, proceso garantizado".

La séptima arma: fuerte curiosidad

Cuál es el arma definitiva para un programador, esa es la fuerte curiosidad y el espíritu de aprendizaje. No hay mejor arma que la gran curiosidad y el espíritu de aprendizaje. Es la fuente y la motivación para que los programadores alcancen nuevas alturas.