Ingeniería de software
Ingeniería de software es la aplicación de de la ingeniería a la diseño, desarrollo, puesta en práctica, prueba y mantenimiento de software en un método sistemático.[1][2][3]
Definiciones formales típicas de Ingeniería de software son:
- "investigar, diseñar, desarrollar y probar software de nivel de sistemas operativos, compiladores dey software de distribución de red para médico, industrial, militar, comunicaciones, aeroespacial, comercial, científica y aplicaciones informáticas generales. "[4]
- "la aplicación sistemática de conocimientos científicos y tecnológicos, métodos y experiencia en el diseño, implementación, prueba y documentación de software";[5]
- "la aplicación de una sistemática, disciplinada, enfoque cuantificable para el desarrollo, operación y mantenimiento de software";[6]
- "una ingeniería la disciplina que se ocupa de todos los aspectos de producción de software";[7]
- y "el establecimiento y uso de sólidos principios de ingeniería para obtener económicamente software que es confiable y funciona eficientemente sobre máquinas reales."[8]
Contenido
- 1 Historia
- 2 Subdisciplines
- 3 Educación
- 4 Profesión
- 4.1 Empleo
- 4.2 Certificación
- 4.3 Impacto de la globalización
- 5 Campos relacionados
- 6 Controversia
- 6.1 Sobre la definición
- 6.2 Crítica
- 7 Véase también
- 8 Notas
- 9 Referencias
- 10 Lectura adicional
- 11 Acoplamientos externos
Historia
Cuando el primer digital equipos apareció a principios de 1940,[9] las instrucciones para hacerlos funcionar fueron conectadas a la máquina. Los médicos se dieron cuenta rápidamente que este diseño no era flexible y vino para arriba con la "arquitectura de programa almacenado" o arquitectura de von Neumann. Así comenzó la división entre el "hardware" y "software" con abstracción se utilizan para lidiar con la complejidad de la informática.
Lenguajes de programación comenzaron a aparecer en la década de 1950 y este también fue otro gran paso en la abstracción. Principales idiomas tales como Fortran, ALGOL, y COBOL fueron lanzados en finales de los años 1950 para abordar problemas científicos, algorítmicos y empresariales respectivamente. Edsger W. Dijkstra escribió su papel seminal, "Ir a declaración considerado dañoso",[10] en 1968 y David Parnas introdujo el concepto clave de modularidad y ocultamiento de información en 1972[11] para ayudar a los programadores de la complejidad cada vez mayor de sistemas de software.
Los orígenes del término "ingeniería de software" se han atribuido a diversas fuentes, pero fue utilizado en 1968 como un título para la primera Conferencia Mundial sobre ingeniería de software, patrocinado y facilitado por la OTAN. La Conferencia contó con expertos internacionales en software que en la definición de mejores prácticas para el software basada en la aplicación de la ingeniería. El resultado de la Conferencia es un informe que define cómo debería desarrollarse el software. El informe original está públicamente disponible.[12]
La disciplina de la ingeniería de software fue creada para la dirección pobre calidad del software, conseguir proyectos más de tiempo y presupuesto bajo control y asegurar que el software está construido sistemáticamente, rigurosamente, mensurable, en tiempo, en presupuesto y dentro de las especificaciones.[13] Ingeniería ya aborda todas estas cuestiones, por lo tanto pueden aplicarse los mismos principios utilizados en la ingeniería software. La falta generalizada de buenas prácticas para el software en el momento se consideraba un "crisis del software".[14][15][16]
Barry W. Boehm documentado varios avances claves en el campo en su libro de 1981, 'Economía de la ingeniería del Software'.[17] Estos incluyen su (modelo constructivo de costoCOCOMO), que relaciona el esfuerzo de desarrollo de software para un programa en T de años-hombre, a líneas fuente del código (MANTENIMIENTO). El libro analiza proyectos de software de sesenta y tres y concluye que el costo de corregir errores aumenta mientras que el proyecto se mueve hacia el uso del campo. El libro también afirma que el factor clave del coste del software es la capacidad del equipo de desarrollo de software.
En 1984, la Instituto de ingeniería de software (SEI) se estableció como un federal centro de investigación y desarrollo con sede en el campus de la Universidad Carnegie Mellon en Pittsburgh, Pennsylvania, Estados Unidos. Watts Humphrey fundó el programa de proceso de Software SEI, encaminadas a entender y gestionar el proceso de ingeniería de software. Su libro de 1989, administración del proceso de Software,[18] afirma que el proceso de desarrollo de Software puede debe ser controlado, medido y mejorado. Los niveles de madurez del proceso introducido se convertiría en el Capability Maturity Model Integration para Development(CMMi-DEV), que ha definido como el gobierno de Estados Unidos evalúa las habilidades de un equipo de desarrollo de software.
Moderno, generalmente aceptadas las mejores prácticas de ingeniería de software han sido recogidas por el ISO/IEC JTC 1/SC 7 Subcomité y publicado como el Ingeniería del software cuerpo de conocimiento (SWEBOK).[19]
Subdisciplines
Ingeniería de software se puede dividir en 15[20] subdisciplinas. Ellos son:
- Requisitos de software[1][20] (o Ingeniería de requerimientos): La obtención, análisis, especificación y validación de requisitos para software.
- Diseño de software:[1][20] El proceso de definición de la arquitectura, componentes, interfaces y otras características de un sistema o componente. También se define como el resultado de ese proceso.
- Construcción de software:[1][20] La creación detallada de trabajo, software significativo a través de una combinación de codificación, verificación, pruebas unitarias, pruebas de integración, y depuración de.
- Pruebas de software:[1][20] Una investigación empírica, técnica realizadas para proporcionar a los interesados información acerca de la calidad del producto o servicio bajo prueba.
- Mantenimiento de software:[1][20] La totalidad de las actividades necesarias para prestar apoyo económico a software.
- Gestión de la configuración de software:[1][20] La identificación de la configuración de un sistema en distintos puntos en el tiempo con el fin de sistemáticamente controlar cambios en la configuración y mantenimiento de la integridad y trazabilidad de la configuración a través del ciclo de vida del sistema.
- Gestión de ingeniería de software:[1][20] La aplicación de las actividades de gestión: planificar, coordinar, medición, monitoreo, control y presentación de informes — para asegurar que el desarrollo y mantenimiento de software es sistemático, disciplinado y cuantificado.
- Proceso de desarrollo de software:[1][20] La definición, implementación, evaluación, medición, gestión, cambio y mejora del proceso de ciclo de vida de software sí mismo.
- Métodos y modelos de ingeniería de software[20] imponer estructura en ingeniería del software con el objetivo de hacer que la actividad sistemática y repetible, y en última instancia más éxito-orientada
- Calidad de software[20]
- Práctica profesional de ingeniería de software[20] se refiere a los conocimientos, habilidades y actitudes que deben poseer ingenieros de software para ingeniería de software de práctica de manera profesional, responsable y de manera ética
- Economía de la ingeniería de software[20] trata de tomar decisiones relacionadas con la ingeniería de software en un contexto de negocios
- Fundamentos de computación[20]
- Fundamentos matemáticos[20]
- Fundamentos de ingeniería[20]
Educación
Conocimiento de la programación informática es un prerrequisito para convertirse en Ingeniero de software. En 2004 el IEEE Computer Society producido el SWEBOK, que ha sido publicado como informe técnico ISO/IEC 1979:2004, describiendo el cuerpo de conocimientos que recomiendan ser dominado por un ingeniero de software graduado con cuatro años de experiencia.[21] Muchos ingenieros de software entran en la profesión por la obtención de un título universitario o de formación en una escuela vocacional. Un currículo internacional estándar para grados de pregrado ingeniería de software fue definido por el CCSEy actualizado en 2004.[22] Varias universidades tienen programas de grado de ingeniería de Software; a partir de 2010[Actualización], hubo 244 Campus Licenciado en ingeniería de Software programas, programas en línea 70, 230 programas de nivel de maestría, 41 programas de doctorado y 69 programas de nivel de certificado en los Estados Unidos.[23]
Para los practicantes que desean ser competentes y reconocidos como ingenieros de software profesional, la IEEE ofrece dos certificaciones que ampliar conocimientos sobre el nivel alcanzado por un grado académico: Asociado de desarrollo de Software certificado y Software desarrollo profesional certificado.
Además de Educación de la Universidad, muchas compañías patrocinan pasantías para los estudiantes que desean perseguir carreras en tecnología de la información. Estas prácticas pueden introducir al alumno a interesantes tareas reales que ingenieros de software típico encuentran todos los días. Experiencia similar puede ser adquirida a través de servicio militar en ingeniería de software.
Profesión
Requisitos legales para el otorgamiento de licencias o certificación de ingenieros de software profesionales varían alrededor del mundo. En el Reino Unido, la British Computer Society Ingenieros de software de licencias y los miembros de la sociedad también pueden convertirse en Ingenieros colegiados (CEng), mientras que en algunas zonas de Canadá como Alberta, Columbia Británica, Ontario,[24] y Quebec, ingenieros de software pueden llevar a cabo la designación del ingeniero (dos) o la designación de profesional de sistemas de información (I.S.P.). En Canadá, hay un requisito legal para tener dos cuando uno quiere usar el título "ingeniero" o practicar "ingeniería de software". En Europa, los ingenieros de Software puede obtener el Ingeniero Europeo Título profesional (EUR ING).
Los Estados Unidos, a partir de 2013 ofrece un NCEES Ingeniero profesional examen para ingeniería de Software, permitiendo a ingenieros de Software con licencia y reconocida.[25] Colegiación obligatoria es todavía en gran parte discutida y percibida como polémico. En algunas partes de los Estados Unidos como Texas, el uso del término Ingeniero es regulado por la ley y reservado sólo para uso por individuos que tienen una Ingeniero profesional licencia. El IEEE informa al profesional no se requiere licencia de Ingeniero a menos que el individuo funcionaría para público en salud de los demás podría estar en riesgo si el ingeniero no fue plenamente cualificado para estándares requeridos por el estado en particular. Licencia de ingeniero profesional es específico al estado que les ha otorgado y debe ser retomado con regularidad.
El IEEE Computer Society y de la BC., las dos principales en Estados Unidos las organizaciones profesionales de ingeniería de software, publicar guías a la profesión de ingeniería de software. El IEEE Guía del ingeniería del Software cuerpo de conocimiento - versión 2004, o SWEBOK, define el campo y el conocimiento de la IEEE espera que el practicante Ingeniero de software que se describe. La v3 SWEBOK más actual es una versión actualizada y fue lanzado en 2014.[26] El IEEE también promulga una "ingeniería de Software de código de ética".[27]
Empleo
En 2004, el U. S. Oficina de estadísticas laborales contó 760.840 ingenieros de software con puestos de trabajo en el U.S.; en el mismo período había algunos profesionales 1,4 millones empleados en los Estados Unidos en todas otras disciplinas de la ingeniería combinada.[28] Debido a su relativa novedad como un campo de estudio, educación formal en ingeniería de software a menudo se enseña como parte de un plan de estudios de Ciencias de computadoras, y muchos ingenieros de software sostienen grados de ciencia de computadora y no alguna experiencia en ingeniería.[29]
Muchos ingenieros de software trabajan como empleados o contratistas. Los ingenieros de software trabajan con empresas, agencias gubernamentales (civiles o militares) y organizaciones sin fines de lucro. Algunos ingenieros de software trabajan para sí mismos como trabajadores independientes. Algunas organizaciones tienen especialistas para realizar cada una de las tareas en el proceso de desarrollo de software. Otras organizaciones necesitan ingenieros de software que muchos o todos de ellos. En grandes proyectos, las personas pueden especializarse en sólo una de las funciones. En proyectos pequeños, la gente puede llenar papeles varios o todos al mismo tiempo. Especializaciones incluyen: en la industria (analistas, arquitectos, desarrolladores de, probadores, soporte técnico, analistas de middleware, gerentes) y en (de la academiaeducadores, investigadores).
Mayoría de los ingenieros de software y programadores trabajan 40 horas a la semana, pero sobre 15 por ciento de los ingenieros de software y 11 por ciento de los programadores trabajaron más de 50 horas a la semana en 2008. Lesiones en estas ocupaciones son raras. Sin embargo, como otros trabajadores que pasan mucho tiempo delante de un terminal de ordenador tecleando en un teclado, ingenieros y programadores son susceptibles a la fatiga visual, molestias y problemas de la mano y la muñeca de nuevo como síndrome del túnel carpiano.[30]
Futuro del campo parece brillante según Revista dinero y Salary.com, que clasificado Ingeniero de Software como el mejor trabajo en los Estados Unidos en 2006.[31] En 2012, ingeniería del software otra vez figuró como el mejor trabajo en los Estados Unidos, esta vez por CareerCast.com.[32]
Certificación
El Instituto de ingeniería de software ofrece certificaciones en temas específicos como seguridad, mejora de procesos y arquitectura de software.[33] Apple, IBM, Microsoft y otras empresas también patrocinan sus propios exámenes de certificación. Muchos IT certificación programas orientados a tecnologías específicas y gestionados por los proveedores de estas tecnologías.[34] Estos programas de certificación se adaptan a las instituciones que emplean a personas que utilizan estas tecnologías.
Más amplia certificación de las competencias generales de ingeniería de software está disponible a través de varias sociedades profesionales. A partir de 2006[Actualización], la IEEE había certificado más de 575 profesionales de software como un Software desarrollo profesional certificado (PCSD).[35] En 2008 agrega una certificación de nivel básica conocida como el certificado Software desarrollo asociado (CSDA).[36] El BC. tenía un programa de certificación profesional en la década de 1980,[citación necesitada] que se suspendió debido a la falta de interés. La ACM examinó la posibilidad de certificación profesional de los ingenieros de software a finales de 1990, pero finalmente decidió que dicha certificación era inadecuado para la práctica industrial profesional de ingeniería de software.[37]
En el Reino Unido el British Computer Society ha desarrollado una certificación profesional legalmente reconocida llamada Colegiado LO profesional (CITP), disponible a miembros completos (MBCS). Ingenieros de software pueden ser elegibles para ser miembro de la Institución de ingeniería y tecnología y así calificar para el estado de Ingeniero Colegiado. En Canadá la Sociedad de procesamiento de la información canadiense ha desarrollado una certificación profesional legalmente reconocida llamada Profesional de sistemas de información (ISP).[38] En Ontario, Canadá, ingenieros que se gradúan de un Ingeniería canadiense Accreditation Board (CEAB) programa acreditado, con éxito completo de PEO (Ingenieros profesionales de Ontario) Examen de práctica profesional (EPI) y por lo menos 48 meses de aceptable experiencia de ingeniería son elegibles para obtener una licencia a través de la Ingenieros profesionales de Ontario y multidisciplinaria de profesionales ingenieros.[39] El PEO no reconocer cualquiera en línea o educación a distancia y no considera los programas de Ciencias de la computación es equivalente a los programas de ingeniería de software a pesar de la enorme superposición entre los dos. Esto ha provocado polémica y una guerra de certificación. También ha ocupado el número de los dos titulares para la profesión de excepcionalmente bajos. La gran mayoría de profesionales en el campo Licenciado en CS, no SE. Teniendo en cuenta la ruta de certificación difícil para los tenedores de títulos de no-SE, más nunca se molestan en perseguir la licencia.
Impacto de la globalización
El impacto inicial de outsourcing y el costo relativamente más bajo de recursos humanos internacionales en el desarrollo de países del tercer mundo condujo a una masiva migración de las actividades de desarrollo de software de las corporaciones en Norteamérica y Europa a la India y más adelante: China, Rusia y otros países en desarrollo. Este planteamiento tenía algunos defectos, principalmente la distancia / diferencia de zona horaria que impidió la interacción humana entre los clientes y los desarrolladores y la transferencia masiva de empleos. Esto tuvo un impacto negativo en muchos aspectos de la profesión de ingeniería de software. Por ejemplo, algunos estudiantes en la mundo desarrollado evitar la educación relacionadas con la ingeniería de software por temor a offshore outsourcing (importación de productos de software o servicios de otros países) y de ser desplazados por trabajadores extranjeros visa.[40] Aunque las estadísticas no muestran actualmente una amenaza a la ingeniería de software una carrera relacionada, programación informática parece que se han visto afectados.[41][42] Sin embargo, la capacidad de aprovechar inteligentemente los recursos offshores y cerca de la costa a través de la Follow-the-sun flujo de trabajo ha mejorado la operatividad en general de muchas organizaciones.[43] Cuando los norteamericanos abandonan el trabajo, los asiáticos sólo llegan a trabajar. Cuando los asiáticos están dejando trabajo, llegan los europeos para trabajar. Esto proporciona una capacidad continua supervisión humana en procesos críticos del negocio 24 horas al día, sin pagar horas extras remuneración o interrumpir un recurso humano clave, dormir patrones.
Mientras que el outsourcing global tiene varias ventajas, el desarrollo global - y generalmente distribuido - puede funcionar en graves dificultades resultantes de la distancia entre los desarrolladores. Esto es debido a los elementos clave de este tipo de distancia que han sido identificados como geográfico, temporal, cultural y de comunicación (que incluye el uso de diferentes idiomas y dialectos del inglés en diferentes lugares).[44] Investigación se ha realizado en el área de desarrollo de software global en los últimos 15 años y un cuerpo extenso del trabajo publicado que destaca los beneficios y los problemas asociados con la actividad compleja. Como con otros aspectos de la ingeniería de software está llevando a cabo en esta investigación y áreas afines.
Campos relacionados
Ingeniería de software es una subespecie directa del de la ingeniería y tiene un compromiso con Ciencias de la computación y Ciencia de la administración[citación necesitada]. También se considera una parte del total Ingeniería de sistemas.
Controversia
Sobre la definición
Definiciones formales típicas de Ingeniería de software son:
- "la aplicación de una sistemática, disciplinada, enfoque cuantificable para el desarrollo, operación y mantenimiento de software".[6]
- "una disciplina de ingeniería que se ocupa de todos los aspectos de producción de software"[7]
- "el establecimiento y uso de sólidos principios de ingeniería para obtener económicamente software es confiable y funciona eficientemente sobre máquinas reales"[8]
El término se ha utilizado menos formalmente:
- como el término contemporáneo informal para la amplia gama de actividades que anteriormente eran llamados programación informática y Análisis de sistemas;[45]
- como el término amplio de todos los aspectos de la práctica de programación, en contraste con la Teoría de la de programación, que se llama Ciencias de la computación;[46]
- como el término que se incorporan los promoción de un enfoque específico de programación, que insta a que debe tratarse como un de la ingeniería disciplina en lugar de un arte o un oficio y la codificación de prácticas recomendadas.[47]
Crítica
Ingeniería de software ve a sus practicantes como personas que siguen enfoques bien definidos de ingeniería para resolver problemas. Estos enfoques se especifican en varios libros de ingeniería de software e investigación papeles, siempre con las connotaciones de previsibilidad, riesgo mitigado, precisión y profesionalismo. Esta perspectiva ha llevado a las solicitudes de licencias, certificación y cuerpo codificado de conocimientos como mecanismos para difundir el conocimiento de ingeniería y el campo de maduración.
Artesanía de software ha sido propuesto por un grupo de desarrolladores de software como una alternativa que enfatiza las habilidades de codificación y rendición de cuentas de los desarrolladores del software ellos mismos sin profesionalismo o cualquier plan de estudios prescrito a ad-hoc para resolver problemas (craftmanship) sin Ingeniería (falta de previsibilidad, precisión, falta de mitigación de riesgos, los métodos son informales y mal definidos). El manifiesto de la artesanía de Software se extiende el manifiesto ágil de Software[48] y dibuja una metáfora entre el desarrollo de software moderno y el modelo de aprendizaje de la Europa medieval.
Ingeniería de software se extiende ingeniería y se basa en el modelo de ingeniería, es decir, proceso de ingeniería, gestión de proyectos de ingeniería, requisitos de la ingeniería, diseño de ingeniería, ingeniería de la construcción y validación de la ingeniería. El concepto es tan nuevo que rara vez se entiende, y es interpretado ampliamente, incluso en libros de texto de ingeniería del software, documentos y entre las comunidades de programadores y artistas.
Una de las principales cuestiones en ingeniería del software es que sus planteamientos no son empíricos suficiente debido a una validación de mundo real de los enfoques es generalmente ausente o muy limitada y por lo tanto, ingeniería de software es a menudo malinterpretada como factible sólo en un "ambiente teórico".
Dijkstra que desarrollaron lenguajes de programación en el siglo pasado desmintió los conceptos de "ingeniería de software", que era frecuente hace treinta años en la década de 1980, argumentando que esos términos eran pobres analogías para lo que él llamó la "radical novedad" Ciencias de la computación:
Un número de estos fenómenos ha sido incluido bajo el nombre de "Ingeniería de Software". Como economía se conoce como "La ciencia triste", ingeniería de software debe ser conocida como "El condenado la disciplina", condenado al fracaso porque aún no se acerca su objetivo puesto que su objetivo es contradictorio. Ingeniería de software, por supuesto, se presenta como otra digna causa, pero que es Lavaojos: si leen su literatura y analizan sus devotos realmente, usted descubrirá que Ingeniería de software ha aceptado como su carta de "Cómo programar si usted no puede".[49]
Véase también
- Licenciatura en tecnología de la información
- Licenciado en ingeniería de Software
- Lista de conferencias de ingeniería de software
- Lista de publicaciones de ingeniería de software
- Artesanía de software
- Instituto de ingeniería de software
Notas
- ^ a b c d e f g h i Abran et al., 2004, págs. 1 – 1
- ^ ACM (2007). «Computación grados y carreras». ACM. 2010-11-23.
- ^ Laplante, Felipe (2007). Lo que todo ingeniero debe saber sobre ingeniería de Software. Boca Raton: CRC. ISBN 978-0-8493-7228-5. 2011-01-21.
- ^ La oficina de estadísticas laborales
- ^ "Sistemas e ingeniería de software - vocabulario" ISO/IEC/IEEE STD 24765:2010(E), 2010.
- ^ a b "Glosario estándar de IEEE de la terminología de la ingeniería de Software" IEEE STD 610.12-1990, 1990.
- ^ a b Sommerville, Ian (2007) [1982]. 1.1.2 ¿Qué es ingeniería de software?". Ingeniería de software (8ª Ed.). Harlow, Inglaterra: Pearson Educación. p. 7. ISBN 0-321-31379-8.
Ingeniería de software es una disciplina de ingeniería que se ocupa de todos los aspectos de producción de software desde las etapas iniciales de la especificación del sistema para mantener el sistema después de ha entrado en uso. En esta definición, hay dos frases claves:
1. Disciplina de ingeniería Ingenieros de hacen las cosas de trabajo. Aplican teorías, métodos y herramientas que son apropiadas [...] Los ingenieros también reconocen que deben trabajar las limitaciones organizacionales y financieros. [. . .]
2. Todos los aspectos de producción de software Ingeniería de software le no preocupa sólo con los procesos técnicos del desarrollo de software pero también con actividades tales como gestión de proyectos y con el desarrollo de herramientas, métodos y teorías para apoyar la producción de software. - ^ a b "Ingeniería de Software". Procesamiento de la información. North-Holland Publishing Co. 71: 530-538. 1972.
- ^ Leondes (2002). sistemas inteligentes: tecnología y aplicaciones. CRC Press. I-6 p.. ISBN 978-0-8493-1121-5.
1.4 computadoras y un primer vistazo Al (años 1940)
- ^ Dijkstra, E. W. (Marzo de 1968). «Ir a la declaración considerado dañoso» (PDF). Comunicaciones del ACM. 11 (3): 147-148. doi:10.1145/362929.362947. 2009-08-10.
- ^ Parnas, David (Diciembre de 1972). "en los criterios a ser utilizados en sistemas de descomposición en módulos". Comunicaciones del ACM. 15 (12): 1053-1058. doi:10.1145/361598.361623. 2008-12-26.
- ^ "Ingeniería de Software" (PDF).
- ^ Tedre, Matti (2014). Ciencia de la computación: formar una disciplina. CRC Press. ISBN 978-1482217698.
- ^ Sommerville 2008, p. 26
- ^ Peter, Naur; Randell, Brian (7 – 11 de octubre de 1968). Ingeniería de software: Informe de una conferencia patrocinada por el Comité de ciencia de la OTAN (PDF). Garmisch, Alemania: División de asuntos científicos la OTAN. 2008-12-26.
- ^ Randell, Brian (10 2001 de agosto de). "la 1968/69 de la OTAN Software Ingeniería de informes". Página principal de la Universidad de Brian Randell. La escuela de las Ciencias de la computación, Universidad de Newcastle. 2008-10-11.
La idea para la primera Conferencia de ingeniería de Software de la OTAN y en particular de la adopción de lo entonces prácticamente desconocido término "ingeniería de software" como su título (deliberadamente provocativa), creo que vino originalmente de profesor Fritz Bauer.
- ^ Boehm (1981). Economía de la ingeniería de software. Prentice-Hall. ISBN 0-13-822122-7.
- ^ Humphrey, Watts S. (1989). Gestión del proceso Software. Addison-Wesley. ISBN 0-201-18095-2.
- ^ "ISO/IEC TR 19759:2005". 2012-04-01.
- ^ a b c d e f g h i j k l m n o p «Software cuerpo de conocimiento (SWEBOK versión 3), la ingeniería 2014» (pdf). www.SWEBOK.org. IEEE Computer Society. 24 de mayo 2016.
- ^ Abran, Alain, ed. (2005) [2004]. "Capítulo 1: Introducción a la guía". Guía del ingeniería del Software cuerpo de conocimiento. Los Alamitos: IEEE Computer Society. ISBN 0-7695-2330-7. 2010-09-13.
El volumen total de literatura citada pretende ser conveniente para el dominio a través de la realización de una enseñanza universitaria más cuatro años de experiencia.
- ^ "SE2004 Curriculum de ingeniería de Software". Sites.Computer.org. 2003-09-30. 2012-03-25.
- ^ [1] Programas de grado en ingeniería de Software
- ^ Williams, N.S.W. (19 – 21 de febrero de 2001). "Enfoque de profesionales ingenieros Ontario para licencias profesionales de ingeniería de software". Ingeniería de software de educación y formación, procedimientos de 2001. 14 conferencia sobre. Charlotte, NC: IEEE. págs. 77 – 78.
- ^ "Especificaciones de examen NCEES ingeniería de Software" (PDF). 2012-04-01.
- ^ "'Versión de la guía SWEBOK 3'". 2015-03-09.
- ^ "'"Ingeniería de Software de código de ética ''" (PDF). 2012-03-25.
- ^ Oficina de estadísticas laborales, los E.E.U.U. Departamento del trabajo, USDL 05-2145: empleo trabajo y salarios, noviembre de 2004, Tabla 1.
- ^ "Ingeniería de Software". 2008-02-01.
- ^ "Ingenieros de Software de computadoras y programadores de computadoras". 2009-12-17.
- ^ Kalwarski, Tara; Mosher de Daphne; Janet Paskin; Donna Rosato (2006). «Mejores empleos en Estados Unidos». Revista DINERO. CNN. 2006-04-20.
- ^ "Mejores y peores trabajos de 2012". online.wsj.com. de 2012. Comprobar los valores de fecha:
fecha de |Access =
(Ayuda) - ^ "Página de certificación SEI". Sei.cmu.edu. 2012-03-25.
- ^ Wyrostek, Warren (14 de marzo de 2008). "Los Top 10 problemas con la certificación de TI en 2008". InformIT. 2009-03-03.
- ^ IEEE Computer Society. «2006 IEEE computer society informe a la Asamblea General de la IFIP» (PDF). 2007-04-10.
- ^ IEEE. "CSDA". 2010-04-20.
- ^ ACM (17 de julio de 2000). "Un resumen de la posición de la ACM sobre ingeniería del Software como una profesión de la ingeniería con licencia" (PDF). Association for Computing Machinery (ACM). Archivado de el original (PDF) en 17 de mayo de 2008. 2009-03-03.
En su reunión de mayo de 2000, el Consejo concluyó más lejos que el marco de un ingeniero profesional con licencia, originalmente desarrollado para ingenieros, no coincide con la práctica industrial profesional de ingeniería de software. Tales licencias prácticas daría falsas garantías de competencia incluso si el cuerpo de conocimiento estaban maduro; y muchos de los más calificados ingenieros de software impide convertirse en licencia.
- ^ Sociedad de procesamiento de información canadienses. "Designación del I.S.P.". 2007-03-15.
- ^ "profesional ingenieros Ontario: Bienvenido al sitio web de PEO". Peo.on.CA. 2012-03-25.
- ^ Thibodaux, Patrick (2006-05-05). "Como outsourcing vapor, ordenador ciencia interés decae". Computerworld.com. 2012-03-25.
- ^ "Programadores". BLS.gov. 2012-03-25.
- ^ Mullins, Robert (2007-03-13). "se desacelera crecimiento de desarrollador de software en América del Norte". InfoWorld. 2012-03-25.
- ^ "Gartner Magic Quadrant" (PDF). Cognizant.com. 2012-03-25.
- ^ Casey, San Valentín (2010-08-20). "virtual equipo gestión de proyectos". Springer. 2013-12-06.
- ^ I. Akram Salah (2002-04-05). "Ingeniería de un programa académico en ingeniería de Software" (PDF). Simposio de informática y 35 instrucción anual de la Midwest. 2006-09-13.: "para algunos, ingeniería de software es sólo un nombre glorificado para la programación. Si eres un programador, puede poner 'Ingeniero' en su tarjeta de visita — nunca 'programador' aunque. "
- ^ Molinos, Harlan D., J. R. Newman y C. B. Engle, Jr., "Un plan de estudios Licenciatura en ingeniería de Software," en Deimel, Lionel E. (1990). Enseñanza de la ingeniería de software: SEI Conferencia 1990, Pittsburgh, Pennsylvania, EEUU, 2-3 de abril.... Springer. ISBN 0-387-97274-9.,p. 26: "como una cuestión práctica, consideramos que Ingeniería de software como la preparación necesaria para la práctica, desarrollo de software y profesionales de mantenimiento. El informático se está preparando para estudios más teóricos..."
- ^ David Budgen; Perla Brereton; Barbara Kitchenham; Linkman Stephen (2004-12-14). "Realización de ingeniería de Software basada en evidencia". 2006-10-18.: «Nosotros creemos que Ingeniería de software sólo puede avanzar como una disciplina de ingeniería por alejarse de su actual dependencia de promoción y análisis de...»
- ^ Cuba de tintura, Kent; et al (2001). "Manifiesto para desarrollo ágil de Software". Agile Alliance. 14 de junio 2010.
- ^ Dijkstra, E. W. (1988). "sobre la crueldad de verdaderamente enseñar ciencias de la computación". 2014-01-10.
Referencias
- Abran, Alain; Moore, James W.; Bourque, Pierre; Dupuis, Robert; Tripp, Leonard L. (2004). Guía del ingeniería del Software cuerpo de conocimiento. IEEE. ISBN 0-7695-2330-7.
- Sommerville, Ian (2008). Ingeniería de software (7 ed.). Pearson Educación. ISBN 978-81-7758-530-8. 10 de enero 2013.
Lectura adicional
- Pressman, Roger S (2009). Ingeniería de software: Enfoque de un practicante (7ª Ed.). Boston, masa: McGraw-Hill. ISBN 978-0073375977.
- Sommerville, Ian (2010) [2010]. Ingeniería de software (9ª Ed.). Harlow, Inglaterra: Pearson Educación. ISBN 978-0137035151.
- Jalote, Pankaj (2005) [1991]. Un enfoque integrado de la ingeniería de Software (3ª Ed.). Springer. ISBN 0-387-20881-X.
- Bruegge, Bernd; Dutoit, Allen (2009). Ingeniería de software orientada a objetos: usando Java, UML y patrones (3ª Ed.). Prentice Hall. ISBN 978-0136061250.
Acoplamientos externos
Campos comunes de Wikimedia tiene medios relacionados con Ingeniería de software. |
Wikilibros tiene un libro sobre el tema de: Introducción a la ingeniería de Software |
Wikiversity tiene materiales de aprendizaje sobre Ingeniería de software |
- Guía del ingeniería del Software cuerpo de conocimiento
- Los sistemas abiertos de ingeniería y marco de ciclo de vida de desarrollo de Software OpenSDLC.org el SDLC de campos comunes creativos integrado
- Instituto de ingeniería de software Carnegie Mellon
- Aprender ingeniería de Software Sociedad de ingeniería de software