Fundamentos de Ingeniería de Software
ESTUDIANTE:
Marco Antonio Hernández Alonso
NO. DE CONTROL:
20840143
ASIGNATURA:
Fundamentos de Ingeniería de Software
PERIODO ESCOLAR:
AGOS - DIC 2022
DOCENTE:
María Guadalupe Rivera García
Fundamentos de Ingeniería de Software
ESTUDIANTE:
Marco Antonio Hernández Alonso
NO. DE CONTROL:
20840143
ASIGNATURA:
Fundamentos de Ingeniería de Software
PERIODO ESCOLAR:
AGOS - DIC 2022
DOCENTE:
María Guadalupe Rivera García
El software como tal es un conjunto de instrucciones lógicas que le permite al usuario interactuar con el computador a través de una interfaz, es lo que comúnmente se conoce como los programas del computador y van desde un editor de texto hasta aplicaciones que gestionan a otras. La industria del software avanza a pasos agigantados, un claro ejemplo de eso es la computación en la nube, que si bien antes teníamos que instalar un programa en nuestra computadora para poder acceder a todas las funcionabilidades que tenía ahora se lo puede hacer mediante un navegador donde el programa se encuentra alojado en un servidor a varios kilómetros de distancia, dejando así disponible el hardware que se utilizaría para correr esta aplicación (memoria, disto, procesador).
Identificar la historia del software así como las características de los paradigmas estructurado y orientado a objetos. Conocer e identificar las herramientas CASE. Conocer las diferentes características que tiene el software y las metodologías que utilizan los programadores para crearlo.
1. 1 Conceptos básicos
Análisis
proceso de estudiar las necesidades del usuario para obtener
una definición detallada de los requisitos.
Base de
datos
Una base de
datos o banco de datos (en ocasiones abreviada con la sigla BD o
con la abreviatura b. d.) es un
conjunto de datos pertenecientes a un mismo contexto y almacenados
sistemáticamente para su posterior uso.
CASE
Ayuda
por Computadora a la Ingeniería de Software.
CASE multiplataforma
Estas
herramientas soportan las combinaciones dominantes de diferentes plataformas
físicas, sistemas operativos, interfases gráficas de usuario, sistemas de
gestión de bases de datos, lenguajes de programación y protocolos de red.
Ciclo
de vida
describe el desarrollo de software, desde la fase inicial
hasta la fase final. El propósito de este programa es definir las distintas
fases intermedias que se requieren para validar el desarrollo de la aplicación,
es decir, para garantizar que el software cumpla los requisitos para la
aplicación y verificación de los procedimientos de desarrollo: se asegura de
que los métodos utilizados son apropiados.
Compilador
programa informático que traduce un programa escrito en un
lenguaje de programación a otro lenguaje de programación 1 Usualmente el
segundo lenguaje es lenguaje de máquina, pero también puede ser un código
intermedio (bytecode), o simplemente texto.
Diagrama
entidad relación
Es una descripción conceptual de las estructuras de datos y
sus relaciones.
Diagramas
Diagramas
utilizados durante el diseño de software Estos incluyen diagramas utilizados
durante el diseño de software (arquitectura de software). Por lo general, se
utilizan los diagramas
del Lenguaje Unificado de Modelado (UML).
Hardware
se refiere a todas las partes tangibles de un sistema
informático; sus componentes son: eléctricos, electrónicos, electromecánicos y
mecánicos. Son cables, gabinetes o cajas, periféricos de todo tipo y cualquier
otro elemento físico involucrado; contrariamente, el soporte lógico es
intangible y es llamado software.
Herramientas
CASE
Una
herramienta del software que automatiza (por lo menos en parte) una parte del
ciclo de desarrollo de software.
Herramientas
de bajo nivel, L-CASE
(Lower
CASE - CASE inferior) o back-end, dirigidas a las últimas fases del desarrollo:
construcción e implantación.
Herramientas
de gestión de prototipos
Los
prototipos son utilizados ampliamente en el desarrollo de aplicaciones, para la
evaluación de especificaciones de un sistema de información, o para un mejor
entendimiento de cómo los requisitos de un sistema de información se ajustan a
los objetivos perseguidos.
Herramientas
de planificación y sistemas de gestión
Sirven
para modelizar los requisitos de información estratégica de una organización.
Herramientas
de prototipado
El
objetivo principal de esta herramienta es poder mostrar al usuario, desde los
momentos iniciales del diseño, el aspecto que tendrá la aplicación una vez
desarrollada.
Herramientas
de soporte
Se
engloban en esta categoría las herramientas que recogen las actividades
aplicables en todo el proceso de desarrollo.
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.
Herramientas
de alto nivel, U-CASE
(Upper
CASE - CASE superior) o front-end, orientadas a la automatización y soporte de
las actividades desarrolladas durante las primeras fases del desarrollo:
análisis y diseño.
Herramientas
de integración y prueba
Sirven
de ayuda a la adquisición, medición, simulación y prueba de los equipos lógicos
desarrollados.
Herramientas
de programación
Se
engloban aquí los compiladores, los editores y los depuradores de los lenguajes
de programación convencionales.
Ingeniería
de software
es la aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación y mantenimiento de software, y el
estudio de estos enfoques, es decir, la aplicación de la ingeniería al
software.
Juegos
De Herramientas O TOOL-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.
Kit De
Herramientas CASE
Un
conjunto de herramientas CASE integradas que se han diseñado para trabajar
juntas y automatizar (o proveer ayuda automatizada al ciclo de desarrollo de
software, incluyendo el análisis, diseño, codificación y pruebas.
Plataforma
De Hardware Para CASE
Una
arquitectura de hardware con uno, dos o tres sistemas puestos en línea, que
proveen una plataforma operativa para las Herramientas Case.
Proceso
De Software
un proceso
de desarrollo del software es el proceso de dividir el trabajo de desarrollo del software en
distintas fases para mejorar el diseño, la gestión del producto, y la gestión
de proyecto. Es también conocido como el ciclo de vida del
desarrollo de software.
Programación
Es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas
computacionales. El código fuente es escrito en un lenguaje de programación.
Repositorios
Base de
datos central de una herramienta CASE. El repositorio amplía el concepto de
diccionario de datos para incluir toda la información que se va generando a lo
largo del ciclo de vida del sistema, como, por ejemplo: componentes de análisis
y diseño (diagramas de flujo de datos, diagramas entidad-relación, esquemas de
bases de datos, diseños de pantallas), estructuras de programas, algoritmos,
etc.
Requerimientos
Características que se desea que posea un sistema o un
software.
Sistema
Case
Un
conjunto de herramientas CASE integradas que comparten una interfaz del usuario
común y corren en un ambiente computacional común.
Software
Es el conjunto de los programas de cómputo, procedimientos,
reglas, documentación y datos asociados, que forman parte de las
operaciones de un sistema de computación.
Tecnología
Case
Una tecnología del software que mantiene una disciplina de la ingeniería automatizada para el desarrollo de software, mantenimiento y dirección de proyecto, incluye metodologías estructuradas automatizadas y herramientas automatizadas.
1.2 El Papel Evolutivo del Software
PRIMERA ERA (De 1950 a 1965)
SEGUNDA ERA (De 1965 a 1972)
TERCERA ERA (De 1972 a 1985)
CUARTA ERA (De 1985 a 1995 )
QUINTA ERA (De 2000 hasta hoy en día)
En esta era se utilizan los mismos requisitos de las era pasadas pero con el aumento de la web en todos lados, la reutilización de información y componentes de 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 constitúyanla 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.
Fuentes Bibliográficas
https://sites.google.com/site/10claudia2410/unidad-1-fundamentos-ingenieria-de-software/1-4
Aunque no es fácil y no existe una forma única de clasificarlas, las herramientas CASE se pueden clasificar teniendo en cuenta los siguientes parámetros:
La siguiente clasificación es la más habitual basada en las fases del ciclo de desarrollo que cubren:
Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificación excluyente entre sí, ni con la anterior: