SlideShare una empresa de Scribd logo
UNIDAD 1: FUNDAMENTOS DE
INGENIERÍA DE SOFTWARE.
1.1 Conceptos Básicos
La ingeniería de software es una disciplina formada por un conjunto de métodos,
herramientas y técnicas que se utilizan en el desarrollo de los programas
informáticos (software).
Esta disciplina trasciende la actividad de programación, que es la actividad
principal a la hora de crear un software. El ingeniero de software se encarga de
toda la gestión del proyecto para que éste se pueda desarrollar en un plazo
determinado y con el presupuesto previsto.
La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el
diseño del proyecto, el desarrollo del software, las pruebas necesarias para
confirmar su correcto funcionamiento y la implementación del sistema.
Los Ingenieros de Software deben:
• Adoptar un enfoque sistemático para llevar a cabo su trabajo.
• Utilizar las herramientas y técnicas apropiadas para resolver el problema
planteado, de acuerdo a las restricciones de desarrollo y a los recursos
disponibles.
1.2 EL PAPEL EVOLUTIVO DEL SOFTWARE
Hoy en día, el software tiene un papel dual. Es producto y canal de distribución de
este. Como producto, ofrece la potencia de cómputo presentada como hardware
de una computadora o, de manera más global por una red de computadoras
accesible mediante hardware local y de acceso físico. Sin importar el lugar en que
resida el software, ya sea en un celular o dentro de una computadora central, éste
es un transformador de información; realiza la producción, el manejo, la
adquisición, la modificación, el despliegue o la transmisión de la información que
puede ser tan simple como un solo bit o tan compleja como una presentación
multimedia. En su papel de vehículo para la entrega de un producto, el software
actúa como la base para el control de la computadora (Sistemas Operativos), la
comunicación de información (redes), y la relación y el control de otros programas
(utilerías de software y ambientes).
PRIMERA ERA
(1950 – 1965)
• Se trabajaba con la idea de “Codificar y Corregir”.
• No existía un planteamiento previo.
• No existía documentación de ningún tipo.
• Existencia de pocos métodos formales y pocos creyentes en ellos.
• Desarrollo a base de prueba y error.
SEGUNDO ERA
(1965 – 1972)
• Se busca simplificar código.
• Aparición de Multiprogramación y Sistemas Multiusuarios.
• Sistemas de Tiempo Real apoyan la toma de decisiones.
• Aparición de Software como producto. (Casas de Software).
• Se buscan procedimientos para el desarrollo del Software.
TERCERA ERA
(1972 – 1985)
• Nuevo Concepto: Sistemas Distribuidos.
• Complejidad en los Sistemas de Información.
• Aparecen: Redes de área local y global, y Comunicadores Digitales.
• Amplio Uso de Microprocesadores.
CUARTA ERA
(1985 - 1995 )
• Impacto Colectivo de Software.
• Aparecen: Redes de Información, Tecnologías Orientadas a Objetos.
• Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.
• La información como valor preponderante dentro de las Organizaciones.
QUINTA ERA
(2000 hasta hoy en día)
Utiliza algunos requisitos de las eras anteriores solo que aumenta la
omnipresencia de la web, la reutilización de información y componentes de
software
• Codificar: Transformar mediante las reglas de un código la formulación de un
mensaje.
• Hardware: Componente físico de la computadora. Por ejemplo: el monitor, la
impresora o el disco rígido. El hardware por sí mismo no hace que una máquina
funcione.
• Multiprogramación: Se denomina multiprogramación a la técnica que permite que
dos o más procesos ocupen la misma unidad de memoria principal y que sean
ejecutados al "mismo tiempo“.
1.3 ETAPAS DE DESARROLLO DEL SOFTWARE
Etapa de análisis: Es el proceso de investigar un problema que se quiere
resolver. Definir claramente el Problema que se desea resolver o el sistema que
se desea crear. Identificar los componentes principales que integrarán el producto.
Etapa de Diseño: Es el proceso de utilizar la información recolectada en la etapa
de análisis al diseño del producto. La principal tarea de la etapa de diseño es
desarrollar un modelo o las especificaciones para el producto o Componentes del
Sistema.
Etapa de Desarrollo: Consiste en utilizar los modelos creados durante la etapa
de diseño para crear los componentes del sistema.
Etapa de Pruebas o Verificación Prueba : Consiste en asegurar que los
componentes individuales que integran al sistema o producto, cumplen con los
requerimientos de la especificación creada durante la etapa de diseño. Se
recomienda aplicar las etapas: • Análisis • Diseño • Desarrollo • Prueba A cada
uno de los ejercicios de este curso.
Etapa de Implementación o Entrega Implantación: Consiste en poner a
disposición del cliente el producto.
Etapa de Mantenimiento: Consiste en corregir problemas del producto y re-
liberar el producto como una nueva versión o revisión (producto mejorado).
Etapa final EOL (End-of-Life) El fin del ciclo del producto consiste en realizar
todas las tareas necesarias para asegurar que los clientes y los empleados están
conscientes de que el producto ya no será vendido ni soportado.
1.4 CLASIFICACIÓN DE LA TECNOLOGÍA EN EL DESARROLLO DE
SOFTWARE
(TECNOLOGÍA ESTRUCTURADA Y ORIENTADO A OBJETOS).
Tecnologías de desarrollo estructurado
Las tecnologías de desarrollo estructurado son las más convencionales de las
empleadas hoy día. Han surgido de la evolución de las ideas de programación
estructurada (hace más de veinticinco años) hacia las fases iniciales del ciclo de
vida. En su formulación actual, las notaciones empleadas en las primeras fases
del ciclo de vida (especificación de requisitos de usuario y sistema) suelen estar
constituidas por lenguajes gráficos que permiten: identificar el sistema y el
entorno; representar el flujo de información entre los elementos; y, describir los
datos y las actividades del sistema.
La idea base de esta tecnología es que es posible estructurar el modelo de un
sistema de software en base a funciones que procesan información que reciben de
otras funciones (o del exterior) y dirigen la información procesada a otros módulos
funcionales (o al exterior). El enfoque seguido, por tanto, es el de pensar en las
funciones del sistema necesarias (extraídas de los requisitos del sistema) y luego
en los datos que requieren.
Orientado a Objetos
Los métodos de descomposición orientada a objetos constituyenla tendencia más
influyente observada en la ingeniería de sistemas de software en los últimos años.
Con ellos nos referimos a un conjunto de métodos (aún en fase de desarrollo o
evolución) que permiten al analista y diseñador concebir su sistema identificando
clases de objetos, operaciones permitidas y relaciones entre ellos como base para
la estructura del sistema a diseñar.
En ellas, un objeto es un conjunto de datos y funciones de manipulación de los
mismos encapsulados en una unidad que es posible tratar como un todo (crear,
copiar, destruir, etc.). Un objeto posee unas operaciones visibles a otros objetos
aunque éstos no conocen cómo están implementadas. El diseñador reconoce
inicialmente clases de objetos de las que se derivan los objetos concretos que
utilizará en el diseño.
Un objeto puede construirse jerárquicamente empleando, a su vez, a otros objetos
más simples. Una clase implica una generalización del concepto de objeto
(identificando similitudes entre objetos similares) y constituye la base a partir de
las cuales se construye el sistema.
Existen varias tecnologías orientadas a objetos que, aunque similares en su
potencia expresiva, ofrecen algunas diferencias que las hacen más adecuadas
para algún tipo concreto de sistemas.
Podemos mencionar como una de las más representativas a OMT.
OMT está soportada por muchas herramientas CASE comerciales.
Corresponde a una notación gráfica que permite representar las clases de objetos,
sus relaciones y la creación de ejemplares de los mismos. Aunque básicamente
empleada para la fase de análisis de requisitos del sistema puede también
emplearse para las primeras fases del diseño.
1.5 DEFINICIÓN DE LA HISTORIA DE LAS
HERRAMIENTAS CASE.
Se puede definir a las Herramientas CASE como un conjunto de programas y
ayudas que dan asistencia.
a los analistas, ingenieros de software y desarrolladores, durante todos los pasos
del Ciclo de Vida de desarrollo de un Software. Como es sabido, los estados en el
Ciclo de Vida de desarrollo de un Software son: Investigación Preliminar, Análisis,
Diseño, Implementación e Instalación.
CASE: Conjunto de métodos, utilidades y técnicas que facilitan la automatización
del ciclo de vida del desarrollo de sistemas de información, completamente o en
alguna de sus fases.
La realización de un nuevo software requiere que las tareas sean organizadas y
completadas en forma correcta y eficiente. Las Herramientas CASE fueron
desarrolladas para automatizar esos procesos y facilitar las tareas de coordinación
de los eventos que necesitan ser mejorados en el ciclo de desarrollo de software.
La mejor razón para la creación de estas herramientas fue el incremento en la
velocidad de desarrollo de los sistemas. Por esto, las compañías pudieron
desarrollar sistemas sin encarar el problema de tener cambios en las necesidades
del negocio, antes de finalizar el proceso de desarrollo.
También permite a las compañías competir más efectivamente usando estos
sistemas desarrollados nuevamente para compararlos con sus necesidades de
negocio actuales. En un mercado altamente competitivo, esto puede hacer la
diferencia entre el éxito y el fracaso. Las herramientas CASE también permiten a
los analistas tener más tiempo para el análisis y diseño y minimizar el tiempo para
codificar y probar.
La introducción de CASE integradas está comenzando a tener un impacto
significativo en los negocios y sistemas de información de las organizaciones.
Con un CASE integrado, las organizaciones pueden desarrollar rápidamente
sistemas de mejor calidad para soportar procesos críticos del negocio y asistir en
el desarrollo y promoción intensiva de la información de productos y servicios.
Estas herramientas pueden proveer muchos beneficios en todas las etapas del
proceso de desarrollo de software, algunas de ellas son:
• Verificar el uso de todos los elementos en el sistema diseñado.
• Automatizar el dibujo de diagramas.
• Ayudar en la documentación del sistema.
• Ayudar en la creación de relaciones en la Base de Datos.
• Generar estructuras de código.
La principal ventaja de la utilización de una herramienta CASE, es la mejora de la
calidad de los desarrollos realizados y, en segundo término, el aumento de la
productividad. Para conseguir estos dos objetivos es conveniente contar con una
organización y una metodología de trabajo, además de la propia herramienta.
1.6 CLASIFICACION DE LAS HERRAMIENTAS CASE.
No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil
incluirlas en una clase determinada. Podrían clasificarse atendiendo a:
• Las plataformas que soportan.
• Las fases del ciclo de vida del desarrollo de sistemas que cubren.
• La arquitectura de las aplicaciones que producen.
• Su funcionalidad.
Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se
pueden agrupar de la forma siguiente:
1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado):
abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son
llamadas también CASE workbench.
2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) ofront-
end, orientadas a la automatización y soporte de las actividades desarrolladas
durante las primeras fases del desarrollo: análisis y diseño.
3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) oback-
end, dirigidas a las últimas fases del desarrollo: construcción e implantación.
4. Juegos de herramientas o Tools-Case, son el tipo más simple de
herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este
grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de
mantenimiento.

Más contenido relacionado

La actualidad más candente

Etapas del desarrollo de software
Etapas del desarrollo de softwareEtapas del desarrollo de software
Etapas del desarrollo de softwarexinithazangels
 
informática aplicada
informática aplicadainformática aplicada
informática aplicadaeatangel
 
Fundamentos del computado2
Fundamentos del computado2Fundamentos del computado2
Fundamentos del computado2Pedro Torres
 
Desarrollode Sistemas
Desarrollode SistemasDesarrollode Sistemas
Desarrollode Sistemaspaty.alavez
 
Software pps
Software pps Software pps
Software pps ORLA23
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareJesús Molleda
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de SoftwareUacm Lis Slt
 
Unidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareUnidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareMary Carmen
 
Fundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareFundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareNelson Guanipa
 
Plantilla caso prueba
Plantilla caso pruebaPlantilla caso prueba
Plantilla caso pruebaSTBG
 
Software alejandra reyes
Software alejandra reyesSoftware alejandra reyes
Software alejandra reyesvelasquezz
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwaremichellvillegas3
 
Victoria_Isabel_DiseñoDeSoftware
Victoria_Isabel_DiseñoDeSoftwareVictoria_Isabel_DiseñoDeSoftware
Victoria_Isabel_DiseñoDeSoftwareVictoria_isabel
 
Alfonso software
Alfonso softwareAlfonso software
Alfonso softwareismael_2014
 
marco geronzi soy rre piola
marco geronzi soy rre piolamarco geronzi soy rre piola
marco geronzi soy rre piolaMarco Geronzi
 

La actualidad más candente (19)

Etapas del desarrollo de software
Etapas del desarrollo de softwareEtapas del desarrollo de software
Etapas del desarrollo de software
 
informática aplicada
informática aplicadainformática aplicada
informática aplicada
 
Fundamentos del computado2
Fundamentos del computado2Fundamentos del computado2
Fundamentos del computado2
 
Desarrollode Sistemas
Desarrollode SistemasDesarrollode Sistemas
Desarrollode Sistemas
 
Software pps
Software pps Software pps
Software pps
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de Software
 
Unidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de SoftwareUnidad 1 Introducción a la Ingeniería de Software
Unidad 1 Introducción a la Ingeniería de Software
 
Garcia callejas
Garcia callejas Garcia callejas
Garcia callejas
 
introduccion metododologias de analisis y diseño de software
 introduccion metododologias de analisis y diseño de software introduccion metododologias de analisis y diseño de software
introduccion metododologias de analisis y diseño de software
 
Fundamentos del Diseño de Software
Fundamentos del Diseño de SoftwareFundamentos del Diseño de Software
Fundamentos del Diseño de Software
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Plantilla caso prueba
Plantilla caso pruebaPlantilla caso prueba
Plantilla caso prueba
 
Software
SoftwareSoftware
Software
 
Software alejandra reyes
Software alejandra reyesSoftware alejandra reyes
Software alejandra reyes
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
 
Victoria_Isabel_DiseñoDeSoftware
Victoria_Isabel_DiseñoDeSoftwareVictoria_Isabel_DiseñoDeSoftware
Victoria_Isabel_DiseñoDeSoftware
 
Alfonso software
Alfonso softwareAlfonso software
Alfonso software
 
marco geronzi soy rre piola
marco geronzi soy rre piolamarco geronzi soy rre piola
marco geronzi soy rre piola
 

Similar a Fundamentos de ingenieria de software

Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1preciadoag
 
Metodologías de diseño y desarrollo de sistemas de información
Metodologías de diseño y desarrollo de sistemas de informaciónMetodologías de diseño y desarrollo de sistemas de información
Metodologías de diseño y desarrollo de sistemas de informaciónJose Martinez
 
Metodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónMetodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónRafael Brito
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemasMirna Lozano
 
Victoria_Isabel_DiseñoDeSoftware2014
Victoria_Isabel_DiseñoDeSoftware2014Victoria_Isabel_DiseñoDeSoftware2014
Victoria_Isabel_DiseñoDeSoftware2014Victoria_isabel
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremichellchia11
 
Proceso de desarrollo de si
Proceso de desarrollo de siProceso de desarrollo de si
Proceso de desarrollo de siDidier Alexander
 
Diapositiva de analista en sistemas
Diapositiva de analista en sistemasDiapositiva de analista en sistemas
Diapositiva de analista en sistemasDiego Sanchez
 
Articulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasArticulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasMario J Arrieta
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobarEdwin Alexander
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 

Similar a Fundamentos de ingenieria de software (20)

Taller de Programación Distribuida
Taller de Programación DistribuidaTaller de Programación Distribuida
Taller de Programación Distribuida
 
JavierPerez_Ing
JavierPerez_IngJavierPerez_Ing
JavierPerez_Ing
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 
Metodologías de diseño y desarrollo de sistemas de información
Metodologías de diseño y desarrollo de sistemas de informaciónMetodologías de diseño y desarrollo de sistemas de información
Metodologías de diseño y desarrollo de sistemas de información
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Siste deinf
Siste deinfSiste deinf
Siste deinf
 
Metodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónMetodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de Información
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Presentación metodología
Presentación metodologíaPresentación metodología
Presentación metodología
 
Victoria_Isabel_DiseñoDeSoftware2014
Victoria_Isabel_DiseñoDeSoftware2014Victoria_Isabel_DiseñoDeSoftware2014
Victoria_Isabel_DiseñoDeSoftware2014
 
Hcase
HcaseHcase
Hcase
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador
 
Proceso de desarrollo de si
Proceso de desarrollo de siProceso de desarrollo de si
Proceso de desarrollo de si
 
Diapositiva de analista en sistemas
Diapositiva de analista en sistemasDiapositiva de analista en sistemas
Diapositiva de analista en sistemas
 
Articulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasArticulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemas
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Ingeniería en software
Ingeniería en softwareIngeniería en software
Ingeniería en software
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 

Último

El siglo de Asia en pocos datos relevantes (2024).pdf
El siglo de Asia en pocos datos relevantes (2024).pdfEl siglo de Asia en pocos datos relevantes (2024).pdf
El siglo de Asia en pocos datos relevantes (2024).pdfJC Díaz Herrera
 
ENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdf
ENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdfENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdf
ENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdfYADIRARAMOSHUAYTA
 
Bioquímica ilustrada tomo 50- introduccion .pdf
Bioquímica ilustrada tomo 50- introduccion .pdfBioquímica ilustrada tomo 50- introduccion .pdf
Bioquímica ilustrada tomo 50- introduccion .pdfsergio401584
 
Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...
Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...
Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...Emisor Digital
 
REPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdf
REPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdfREPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdf
REPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdfIrapuatoCmovamos
 
Accidentes de tránsito 2DO BIMESTRE 2024.pdf
Accidentes de tránsito 2DO BIMESTRE 2024.pdfAccidentes de tránsito 2DO BIMESTRE 2024.pdf
Accidentes de tránsito 2DO BIMESTRE 2024.pdfIrapuatoCmovamos
 
Pobreza en el Perú en 2023.pdf practicag
Pobreza en el Perú en 2023.pdf practicagPobreza en el Perú en 2023.pdf practicag
Pobreza en el Perú en 2023.pdf practicagjairoperezjpnazca
 
China y sus transacciones comerciales-financieras con el exterior (2024).pdf
China y sus transacciones comerciales-financieras con el exterior (2024).pdfChina y sus transacciones comerciales-financieras con el exterior (2024).pdf
China y sus transacciones comerciales-financieras con el exterior (2024).pdfJC Díaz Herrera
 
REPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdf
REPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdfREPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdf
REPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdfIrapuatoCmovamos
 
biofisica ciencias básicas biología.docx
biofisica ciencias básicas biología.docxbiofisica ciencias básicas biología.docx
biofisica ciencias básicas biología.docxmelissa501795
 
Morfofisiopatologia Humana I________ UCS
Morfofisiopatologia Humana I________ UCSMorfofisiopatologia Humana I________ UCS
Morfofisiopatologia Humana I________ UCSLisaCinnamoroll
 
RESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdf
RESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdfRESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdf
RESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdfObservatorio Vitivinícola Argentino
 
Guia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdf
Guia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdfGuia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdf
Guia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdfFabiolaCastilloCanci
 
Diagnóstico Institucional en psicologia.docx
Diagnóstico  Institucional en psicologia.docxDiagnóstico  Institucional en psicologia.docx
Diagnóstico Institucional en psicologia.docxcabreraelian69
 
Licencias por enfermedad de hijo menor de 2 años chile
Licencias por enfermedad de hijo menor de 2 años chileLicencias por enfermedad de hijo menor de 2 años chile
Licencias por enfermedad de hijo menor de 2 años chilefranciscasalinaspobl
 
Ciencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdf
Ciencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdfCiencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdf
Ciencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdfdanielbazan27
 
Tecnologia de materiales T01- Agregados.docx (1).pdf
Tecnologia de materiales T01- Agregados.docx (1).pdfTecnologia de materiales T01- Agregados.docx (1).pdf
Tecnologia de materiales T01- Agregados.docx (1).pdfuriel132
 
El narcisismo actualmente en el mundo 2024
El narcisismo actualmente en el mundo 2024El narcisismo actualmente en el mundo 2024
El narcisismo actualmente en el mundo 2024pepepinon408
 
Primeros 70 países por IDH ajustado por desigualdad (2024).pdf
Primeros 70 países por IDH ajustado por desigualdad  (2024).pdfPrimeros 70 países por IDH ajustado por desigualdad  (2024).pdf
Primeros 70 países por IDH ajustado por desigualdad (2024).pdfJC Díaz Herrera
 
DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017
DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017
DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017jvasquezdepg23
 

Último (20)

El siglo de Asia en pocos datos relevantes (2024).pdf
El siglo de Asia en pocos datos relevantes (2024).pdfEl siglo de Asia en pocos datos relevantes (2024).pdf
El siglo de Asia en pocos datos relevantes (2024).pdf
 
ENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdf
ENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdfENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdf
ENTREVISTA PERSONAL 1000 2022 preguntas - AGUERRIDOS (1) (1).pdf
 
Bioquímica ilustrada tomo 50- introduccion .pdf
Bioquímica ilustrada tomo 50- introduccion .pdfBioquímica ilustrada tomo 50- introduccion .pdf
Bioquímica ilustrada tomo 50- introduccion .pdf
 
Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...
Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...
Desafíos y Oportunidades de la Educación Media Técnico Profesional en Chil...
 
REPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdf
REPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdfREPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdf
REPORTE 1ER TRIMESTRE EJECUTIVO OBS REGIONAL 2024.pdf
 
Accidentes de tránsito 2DO BIMESTRE 2024.pdf
Accidentes de tránsito 2DO BIMESTRE 2024.pdfAccidentes de tránsito 2DO BIMESTRE 2024.pdf
Accidentes de tránsito 2DO BIMESTRE 2024.pdf
 
Pobreza en el Perú en 2023.pdf practicag
Pobreza en el Perú en 2023.pdf practicagPobreza en el Perú en 2023.pdf practicag
Pobreza en el Perú en 2023.pdf practicag
 
China y sus transacciones comerciales-financieras con el exterior (2024).pdf
China y sus transacciones comerciales-financieras con el exterior (2024).pdfChina y sus transacciones comerciales-financieras con el exterior (2024).pdf
China y sus transacciones comerciales-financieras con el exterior (2024).pdf
 
REPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdf
REPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdfREPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdf
REPORTE DE HOMICIDIO DOLOSO-ABRIL-2024.pdf
 
biofisica ciencias básicas biología.docx
biofisica ciencias básicas biología.docxbiofisica ciencias básicas biología.docx
biofisica ciencias básicas biología.docx
 
Morfofisiopatologia Humana I________ UCS
Morfofisiopatologia Humana I________ UCSMorfofisiopatologia Humana I________ UCS
Morfofisiopatologia Humana I________ UCS
 
RESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdf
RESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdfRESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdf
RESPUESTAS A PREGUNTAS FRECUENTES SOBRE LA VITIVINICULTURA ARGENTINA.pdf
 
Guia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdf
Guia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdfGuia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdf
Guia-de-Preparacion-Oficial_hggffffffffdEGA_II.pdf
 
Diagnóstico Institucional en psicologia.docx
Diagnóstico  Institucional en psicologia.docxDiagnóstico  Institucional en psicologia.docx
Diagnóstico Institucional en psicologia.docx
 
Licencias por enfermedad de hijo menor de 2 años chile
Licencias por enfermedad de hijo menor de 2 años chileLicencias por enfermedad de hijo menor de 2 años chile
Licencias por enfermedad de hijo menor de 2 años chile
 
Ciencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdf
Ciencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdfCiencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdf
Ciencia de datos desde cero. Pr Joel Grus.pdf · 2da edicion español.pdf
 
Tecnologia de materiales T01- Agregados.docx (1).pdf
Tecnologia de materiales T01- Agregados.docx (1).pdfTecnologia de materiales T01- Agregados.docx (1).pdf
Tecnologia de materiales T01- Agregados.docx (1).pdf
 
El narcisismo actualmente en el mundo 2024
El narcisismo actualmente en el mundo 2024El narcisismo actualmente en el mundo 2024
El narcisismo actualmente en el mundo 2024
 
Primeros 70 países por IDH ajustado por desigualdad (2024).pdf
Primeros 70 países por IDH ajustado por desigualdad  (2024).pdfPrimeros 70 países por IDH ajustado por desigualdad  (2024).pdf
Primeros 70 países por IDH ajustado por desigualdad (2024).pdf
 
DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017
DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017
DATOS SOBRE LA VIVIENDA SEGÚN CENSO 2017
 

Fundamentos de ingenieria de software

  • 1. UNIDAD 1: FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. 1.1 Conceptos Básicos La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software). Esta disciplina trasciende la actividad de programación, que es la actividad principal a la hora de crear un software. El ingeniero de software se encarga de toda la gestión del proyecto para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto. La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema. Los Ingenieros de Software deben: • Adoptar un enfoque sistemático para llevar a cabo su trabajo. • Utilizar las herramientas y técnicas apropiadas para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y a los recursos disponibles. 1.2 EL PAPEL EVOLUTIVO DEL SOFTWARE
  • 2. Hoy en día, el software tiene un papel dual. Es producto y canal de distribución de este. Como producto, ofrece la potencia de cómputo presentada como hardware de una computadora o, de manera más global por una red de computadoras accesible mediante hardware local y de acceso físico. Sin importar el lugar en que resida el software, ya sea en un celular o dentro de una computadora central, éste es un transformador de información; realiza la producción, el manejo, la adquisición, la modificación, el despliegue o la transmisión de la información que puede ser tan simple como un solo bit o tan compleja como una presentación multimedia. En su papel de vehículo para la entrega de un producto, el software actúa como la base para el control de la computadora (Sistemas Operativos), la comunicación de información (redes), y la relación y el control de otros programas (utilerías de software y ambientes). PRIMERA ERA (1950 – 1965) • Se trabajaba con la idea de “Codificar y Corregir”. • No existía un planteamiento previo. • No existía documentación de ningún tipo. • Existencia de pocos métodos formales y pocos creyentes en ellos. • Desarrollo a base de prueba y error. SEGUNDO ERA (1965 – 1972)
  • 3. • Se busca simplificar código. • Aparición de Multiprogramación y Sistemas Multiusuarios. • Sistemas de Tiempo Real apoyan la toma de decisiones. • Aparición de Software como producto. (Casas de Software). • Se buscan procedimientos para el desarrollo del Software. TERCERA ERA (1972 – 1985) • Nuevo Concepto: Sistemas Distribuidos. • Complejidad en los Sistemas de Información. • Aparecen: Redes de área local y global, y Comunicadores Digitales. • Amplio Uso de Microprocesadores. CUARTA ERA (1985 - 1995 ) • Impacto Colectivo de Software. • Aparecen: Redes de Información, Tecnologías Orientadas a Objetos. • Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial. • La información como valor preponderante dentro de las Organizaciones.
  • 4. QUINTA ERA (2000 hasta hoy en día) Utiliza algunos requisitos de las eras anteriores solo que aumenta la omnipresencia de la web, la reutilización de información y componentes de software • Codificar: Transformar mediante las reglas de un código la formulación de un mensaje. • Hardware: Componente físico de la computadora. Por ejemplo: el monitor, la impresora o el disco rígido. El hardware por sí mismo no hace que una máquina funcione. • Multiprogramación: Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo“. 1.3 ETAPAS DE DESARROLLO DEL SOFTWARE Etapa de análisis: Es el proceso de investigar un problema que se quiere resolver. Definir claramente el Problema que se desea resolver o el sistema que se desea crear. Identificar los componentes principales que integrarán el producto. Etapa de Diseño: Es el proceso de utilizar la información recolectada en la etapa de análisis al diseño del producto. La principal tarea de la etapa de diseño es desarrollar un modelo o las especificaciones para el producto o Componentes del Sistema. Etapa de Desarrollo: Consiste en utilizar los modelos creados durante la etapa de diseño para crear los componentes del sistema. Etapa de Pruebas o Verificación Prueba : Consiste en asegurar que los componentes individuales que integran al sistema o producto, cumplen con los requerimientos de la especificación creada durante la etapa de diseño. Se recomienda aplicar las etapas: • Análisis • Diseño • Desarrollo • Prueba A cada uno de los ejercicios de este curso.
  • 5. Etapa de Implementación o Entrega Implantación: Consiste en poner a disposición del cliente el producto. Etapa de Mantenimiento: Consiste en corregir problemas del producto y re- liberar el producto como una nueva versión o revisión (producto mejorado). Etapa final EOL (End-of-Life) El fin del ciclo del producto consiste en realizar todas las tareas necesarias para asegurar que los clientes y los empleados están conscientes de que el producto ya no será vendido ni soportado. 1.4 CLASIFICACIÓN DE LA TECNOLOGÍA EN EL DESARROLLO DE SOFTWARE (TECNOLOGÍA ESTRUCTURADA Y ORIENTADO A OBJETOS). Tecnologías de desarrollo estructurado Las tecnologías de desarrollo estructurado son las más convencionales de las empleadas hoy día. Han surgido de la evolución de las ideas de programación estructurada (hace más de veinticinco años) hacia las fases iniciales del ciclo de vida. En su formulación actual, las notaciones empleadas en las primeras fases del ciclo de vida (especificación de requisitos de usuario y sistema) suelen estar constituidas por lenguajes gráficos que permiten: identificar el sistema y el entorno; representar el flujo de información entre los elementos; y, describir los datos y las actividades del sistema. La idea base de esta tecnología es que es posible estructurar el modelo de un sistema de software en base a funciones que procesan información que reciben de otras funciones (o del exterior) y dirigen la información procesada a otros módulos funcionales (o al exterior). El enfoque seguido, por tanto, es el de pensar en las funciones del sistema necesarias (extraídas de los requisitos del sistema) y luego en los datos que requieren. Orientado a Objetos Los métodos de descomposición orientada a objetos constituyenla tendencia más influyente observada en la ingeniería de sistemas de software en los últimos años. Con ellos nos referimos a un conjunto de métodos (aún en fase de desarrollo o evolución) que permiten al analista y diseñador concebir su sistema identificando clases de objetos, operaciones permitidas y relaciones entre ellos como base para la estructura del sistema a diseñar. En ellas, un objeto es un conjunto de datos y funciones de manipulación de los mismos encapsulados en una unidad que es posible tratar como un todo (crear, copiar, destruir, etc.). Un objeto posee unas operaciones visibles a otros objetos aunque éstos no conocen cómo están implementadas. El diseñador reconoce inicialmente clases de objetos de las que se derivan los objetos concretos que utilizará en el diseño.
  • 6. Un objeto puede construirse jerárquicamente empleando, a su vez, a otros objetos más simples. Una clase implica una generalización del concepto de objeto (identificando similitudes entre objetos similares) y constituye la base a partir de las cuales se construye el sistema. Existen varias tecnologías orientadas a objetos que, aunque similares en su potencia expresiva, ofrecen algunas diferencias que las hacen más adecuadas para algún tipo concreto de sistemas. Podemos mencionar como una de las más representativas a OMT. OMT está soportada por muchas herramientas CASE comerciales. Corresponde a una notación gráfica que permite representar las clases de objetos, sus relaciones y la creación de ejemplares de los mismos. Aunque básicamente empleada para la fase de análisis de requisitos del sistema puede también emplearse para las primeras fases del diseño. 1.5 DEFINICIÓN DE LA HISTORIA DE LAS HERRAMIENTAS CASE. Se puede definir a las Herramientas CASE como un conjunto de programas y ayudas que dan asistencia. a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software. Como es sabido, los estados en el Ciclo de Vida de desarrollo de un Software son: Investigación Preliminar, Análisis, Diseño, Implementación e Instalación. CASE: Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases. La realización de un nuevo software requiere que las tareas sean organizadas y completadas en forma correcta y eficiente. Las Herramientas CASE fueron desarrolladas para automatizar esos procesos y facilitar las tareas de coordinación de los eventos que necesitan ser mejorados en el ciclo de desarrollo de software. La mejor razón para la creación de estas herramientas fue el incremento en la velocidad de desarrollo de los sistemas. Por esto, las compañías pudieron desarrollar sistemas sin encarar el problema de tener cambios en las necesidades del negocio, antes de finalizar el proceso de desarrollo. También permite a las compañías competir más efectivamente usando estos sistemas desarrollados nuevamente para compararlos con sus necesidades de negocio actuales. En un mercado altamente competitivo, esto puede hacer la diferencia entre el éxito y el fracaso. Las herramientas CASE también permiten a los analistas tener más tiempo para el análisis y diseño y minimizar el tiempo para codificar y probar. La introducción de CASE integradas está comenzando a tener un impacto significativo en los negocios y sistemas de información de las organizaciones. Con un CASE integrado, las organizaciones pueden desarrollar rápidamente sistemas de mejor calidad para soportar procesos críticos del negocio y asistir en el desarrollo y promoción intensiva de la información de productos y servicios.
  • 7. Estas herramientas pueden proveer muchos beneficios en todas las etapas del proceso de desarrollo de software, algunas de ellas son: • Verificar el uso de todos los elementos en el sistema diseñado. • Automatizar el dibujo de diagramas. • Ayudar en la documentación del sistema. • Ayudar en la creación de relaciones en la Base de Datos. • Generar estructuras de código. La principal ventaja de la utilización de una herramienta CASE, es la mejora de la calidad de los desarrollos realizados y, en segundo término, el aumento de la productividad. Para conseguir estos dos objetivos es conveniente contar con una organización y una metodología de trabajo, además de la propia herramienta. 1.6 CLASIFICACION DE LAS HERRAMIENTAS CASE. No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a: • Las plataformas que soportan. • Las fases del ciclo de vida del desarrollo de sistemas que cubren. • La arquitectura de las aplicaciones que producen. • Su funcionalidad. Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se pueden agrupar de la forma siguiente: 1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench. 2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) ofront- end, orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño. 3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) oback- end, dirigidas a las últimas fases del desarrollo: construcción e implantación. 4. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de mantenimiento.