1. La ingeniería de software se define como la disciplina que se enfoca en los aspectos prácticos de producir software a través de todo su ciclo de vida, incluyendo la especificación, desarrollo, validación y evolución. 2. Existen diferentes tipos de sistemas de software como aplicaciones independientes, sistemas embebidos, sistemas interactivos y de procesamiento por lotes. 3. El proceso de ingeniería de software incluye actividades como la especificación de requerimientos, desarrollo, pruebas y evolución para
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
IngSoftCap01-Introduccion.pdf
1. INGENIERÍA DE SOFTWARE
El Software y la Ingeniería del Software
CAPÍTULO I
Ian Sommerville, Edición 9na.
2. CONTENIDO
1.1 Objetivos
1.2 Introducción
1.3 Software
1.4 Ingeniería de software
1.5 Diferencia entre ingeniería de software e ingeniería de sistemas
1.6 Retos fundamentales que afronta la I.S
1.7 Procesos de software
1.8 Diversidad de la Ingeniería de software
1.9 Fundamentos de la Ingeniería de software
1.10 El proceso de la Ingeniería de software
1.11 Actividades complementarias en la Ingeniería de software
1.12 La práctica de la Ingeniería de software
1.13 Ética de la ingeniería
1.14 Principios de David Hooke
1.15 Conclusiones
1.16 Referencias Bibliográficas.
3. 1.1 OBJETIVOS
• Conocer qué es la IS y por qué es importante.
• Comprender el desarrollo de diferentes técnicas de IS.
• Conocer el proceso de IS.
• Identificar los principios que se manejan dentro de la IS.
4. •Programas de cómputo y documentación asociada. Los productos de software se desarrollan para un cliente en
particular o para un mercado en general.
¿Qué es software?
•El buen software debe entregar al usuario la funcionalidad y el desempeño requeridos, y debe ser sustentable,
confiable y utilizable.
¿Cuáles son los atributos del buen software?
• La ingeniería de software es una disciplina de la ingeniería que se interesa por todos los aspectos de la
producción de software.
¿Qué es ingeniería de software?
•Especificación, desarrollo, validación y evolución del software.
¿Cuáles son las actividades fundamentales de la ingeniería de software?
•Las ciencias de la computación se enfocan en teoría y fundamentos; mientras la ingeniería de software se
enfoca en el sentido práctico del desarrollo y en la distribución de software.
¿Cuál es la diferencia entre ingeniería de software y ciencias de la computación?
1.2 INTRODUCCIÓN
5. •La I. Software analiza todo el proceso de desarrollo, la Ingeniería de Sistemas todo el entorno.
¿Cuál es la diferencia entre ingeniería de software e ingeniería de sistemas?
•Aproximadamente 60% de los costos del software son de desarrollo, y 40% de prueba. Para el software elaborado
específicamente, los costos de evolución superan con frecuencia los costos de desarrollo
¿Cuáles son los costos de la ingeniería de software?
•Se enfrentan con una diversidad creciente (Pandemia), demandas por tiempos de distribución limitados y
desarrollo de software confiable.
¿Cuáles son los principales retos que enfrenta la ingeniería de software?
•Aun cuando todos los proyectos de software deben gestionarse y desarrollarse de manera profesional, existen
diferentes técnicas que son adecuadas para distintos tipos de sistema. Por ejemplo, los juegos siempre deben
diseñarse usando una serie de prototipos, mientras que los sistemas críticos de control de seguridad requieren de
una especificación completa y analizable para su desarrollo. Por lo tanto, no puede decirse que un método sea
mejor que otro.
¿Cuáles son los mejores métodos y técnicas de la ingeniería de software?
•La Web ha llevado a la disponibilidad de servicios de software y a la posibilidad de desarrollar sistemas basados en
servicios distribuidos ampliamente. El desarrollo de sistemas basados en Web ha conducido a importantes avances
en lenguajes de programación y reutilización de software.
¿Qué diferencias ha marcado la Web a la ingeniería de software?Especificación,
desarrollo, validación y evolución del software.
6. 1.3 ¿QUÉ ES EL SOFTWARE?
“El software no solo son
programas si no también
todos los documentos
asociados y la
configuración de datos
que se necesite para
hacer que estos
programas operen de
manera correcta”
Sommerville
“El software está
compuesto por un conjunto
de programas que son
diseñados para cumplir una
determinada función dentro
de un sistema, ya sean
estos realizados por parte
de los usuarios o por las
mismas corporaciones
dedicadas a la informática”
María Estela Raffino
7. 1.4 ¿QUÉ ES LA INGENIERÍA DE SOFTWARE?
“Es una disciplina de la ingeniería que se enfoca en
aspectos de software, desde las primeras etapas de
la especificación del sistema hasta el mantenimiento
después de que se pone en operación.”
Sommerville
La Ingeniería del Software incluye la aplicación
practica del conocimiento científico en el diseño y
construcción de los programas y la documentación
requerida para su desarrollo, operación y
mantenimiento
B. Boehm 1976
8. 1.5 DIFERENCIAS:
INGENIERÍA DE SOFTWARE E INGENIERÍA DE SISTEMAS
Ingeniería de software
•Se refiere a los
problemas prácticos de
producir software .
Ingeniería de sistemas
•Se refiere a todos los
aspectos del desarrollo
y de la evolución de
sistemas complejos
donde el software
desempeña un papel
principal.
9. 1.6 RETOS FUNDAMENTALES QUE AFRONTA LA I.S
Reto de la Heterogeneidad
• Se refiere a que los sistemas operen como sistemas distribuidos en redes
que incluyan diferentes tipos de computadoras y con diferentes clases de
sistema de soporte
Reto de la entrega
• Reducir los tiempos de entrega para sistemas grandes y complejos sin
comprometer la calidad del sistema
Reto de la confianza
• Desarrollar técnicas que demuestren que los usuarios pueden confiar en el
software
10. 1.7 PROCESO DE SOFTWARE
Es una secuencia de actividades que conducen a la elaboración de un
producto de software:
Especificación
•Clientes e ingenieros definen el software
que se producirá y las restricciones en su
operación
Desarrollo •Se diseña y programa el software
Validación
•Se verifica el software para asegurar que sea lo
que el cliente requiere.
Evolución
•Se modifica el software para reflejar los
requerimientos cambiantes del cliente y del
mercado.
12. 1.8 DIVERSIDAD
Existen muchos tipos de
aplicaciones que se pueden
realizar en la IS:
Aplicaciones independientes
Aplicaciones interactivas basadas
en transacción
Sistemas de control embebido
Sistemas de procesamiento en
lotes
Sistemas de entretenimiento
Sistemas para modelo y simulación.
13. Aplicaciones independientes
•Se trata de sistemas de aplicación que corren en una computadora local, como una PC,
e incluyen toda la funcionalidad necesaria y no requieren conectarse a una red.
Aplicaciones interactivas basadas en transacción
•Aplicaciones que se ejecutan en una computadora remota y a las que los usuarios
acceden desde sus propias PC o terminales. Evidentemente, en ellas se incluyen
aplicaciones Web como las de comercio electrónico
Sistemas de control embebido
•Se trata de sistemas de control de software que regulan y gestionan dispositivos de
hardware. Numéricamente, quizás existen más sistemas embebidos que cualquier otro
tipo de sistema.
Sistemas de procesamiento en lotes
•Son sistemas empresariales que se diseñan para procesar datos en grandes lotes
(batch). Procesan gran cantidad de entradas individuales para crear salidas
correspondientes.
14. Sistemas de entretenimiento
•Son sistemas para uso sobre todo personal, que tienen la intención de entretener
al usuario. La mayoría de estos sistemas son juegos de uno u otro tipo.
Sistemas para modelado y simulación
•Éstos son sistemas que desarrollan científicos e ingenieros para modelar procesos
o situaciones físicas, que incluyen muchos objetos separados interactuantes.
Dichos sistemas a menudo son computacionalmente intensivos y para su
ejecución requieren sistemas paralelos de alto desempeño
Sistemas de adquisición de datos
•Son sistemas que desde su entorno recopilan datos usando un conjunto de
sensores, y envían dichos datos para su procesamiento a otros sistemas.
Sistemas de sistema
•Son sistemas compuestos de un cierto número de sistemas de software. Algunos
de ellos son producto del software genérico, como un programa de hoja de
cálculo.
15. 1. Deben llevarse a cabo usando un proceso de desarrollo
administrado y comprendido.
2. La confiabilidad y el desempeño son importantes para
todos los tipos de sistemas.
3. Es importante comprender y gestionar la especificación y
los requerimientos del software (lo que el software debe
hacer).
4. Tiene que usar de manera tan efectiva como sea posible
los recursos existentes.
1.9 FUNDAMENTOS
16. 1.10 PROCESO DE LA IS
Comunicación
Planeación
Modelado
Construcción
Despliegue
17. 1.11 ACTIVIDADES COMPLEMENTARIAS
Administración de riesgo
Aseguramiento de la calidad de software
Preparación y producción
del producto del trabajo.
Administración de la reutilización
Medición
Seguimiento y Ctrl del Pry de software
18. 1.12 LA PRÁCTICA DE IS
“Los conocimientos y experiencia durante los proyectos software que buscan mejorar sus prácticas
y procesos de desarrollo software. Para capturar y gestionar esos conocimientos y experiencia se
basan en la creación y mantenimiento de repositorios de experiencias pero no prescriben la manera
ni el momento en que los diferentes procesos de gestión del conocimiento deben llevarse a cabo.”
(Maturro,2012)
Entender el problema
Planear la solución
Ejecutar el plan
Examinar la exactitud del resultado
19. Confidencialidad
•Por lo general, debe respetar la confidencialidad de sus empleadores o clientes sin importar si se firmó o
no un acuerdo formal sobre la misma.
Competencia
•No debe desvirtuar su nivel de competencia. Es decir, no hay que aceptar de manera intencional trabajo
que esté fuera de su competencia.
Derechos de propiedad intelectual
•Tiene que conocer las leyes locales que rigen el uso de la propiedad intelectual, como las patentes y el
copyright. Debe ser cuidadoso para garantizar que se protege la propiedad intelectual de empleadores y
clientes.
Mal uso de computadoras
•No debe emplear sus habilidades técnicas para usar incorrectamente las computadoras de otros
individuos. El mal uso de computadoras varía desde lo relativamente trivial (esto es, distraerse con los
juegos de la PC del compañero) hasta lo extremadamente serio (diseminación de virus u otro malware).
1.12 ÉTICA EN LA INGENIERÍA DE SOFTWARE
20. 1.14 PRINCIPIOS DE DAVID HOOKE
Primer Principio
•La razón de que exista todo
Segundo Principio
•MSE(Mantenlo, sencillo, estúpido)
Tercer principio
•Mantener la visión
Cuarto Principio
•Otros consumirán lo que usted produce
Quinto Principio
•Abrirse al futuro
Sexto principio
•Planear por anticipado la reutilización
Séptimo principio
•Pensar
21. 1.15 CONCLUSIONES
Se definió e identifico los conceptos básicos de forma clara y sencilla acerca de
la IS.
Se comprendió la existencia de diferentes tipos de sistemas donde cada uno
necesita su propio desarrollo de herramientas y técnicas.
Se conoció las partes y los factores que forman un procesos dentro de la I.S.
Se identifico que la IS no solo se debe preocupar por temas técnicos sino por
todo lo que ocurre a su alrededor.
Las ideas fundamentales de la ingeniería de software son aplicables a todos los
tipos de sistemas de software. Dichos fundamentos incluyen procesos de
administración de software, confiabilidad y seguridad del software, ingeniería de
requerimientos y reutilización de software
Las sociedades profesionales publican códigos de conducta que establecen los
estándares de comportamiento esperados de sus miembros
22. 1.16 REFERENCIAS BIBLIOGRÁFICAS
Sommerville, Ian. (2011). Ingeniería de Software. México : Pearson.
Pressman, Roger. (2010). Ingeniería de Software. Un enfoque practico
. México : Mc Graw Hill.
Matturro, Gerardo. (2012). Gestión Del Conocimiento Y la Experiencia
en Ingeniería de Software. España : EEA.