Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

UNIDAD 2. Fundamentos de La Ingenieria Del Software

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 36

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DE EDUCACIÓN UNIVERSITARIA


UPT DE FALCÓN “ALONSO GAMERO”
PNF EN INFORMÁTICA
II TRAYECTO, I TRIMESTRE
UNIDAD CURRICULAR INGENIERÍA DEL SOFTWARE

INFORME UNIDAD II:

Fundamentos de la Ingeniería del Software

ELABORADO POR:
Douglas Marrufo Olivera
C.I.: 9.600.373
Código: 11319
Sección: 14
DOCENTE:
José Quero

CORO; ABRIL DE 2021


UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

INDICE

INTRODUCCIÓN………………………………………………………………………….3

EL SOFTWARE: Definición………..……………………………………………………..4-5

CUALIDADES DEL SOFTWARE………..……………………………………………...6-7

FACTORES DE CALIDAD DEL SOFTWARE………………………………………...8-10


Factores externos
Factores internos

INGENIERÍA DEL SOFTWARE: Definición……………………………………………11-12

VISIÓN GENERAL DEL PROCESO DE DESARROLLO DE SOFTWARE……….13-15

PARTICIPANTES EN EL PROCESO DE DESARROLLO DE SOFTWARE.….….16-18

CICLO DE VIDA DEL SOFTWARE…………………….……………………………...19-21

FUNDAMENTACIÓN TEÓRICA DE:…………………….………………………….…22-32

Paradigmas de programación.
* Programación Lógica:
* El paradigma funcional:
* Programación Imperativa:
* Programación estructurada:
* Programación Orientada a Objetos:

Métodos de desarrollo de software.

La metodología o procesos de desarrollo del software

Modelado de sistema.

Técnicas y herramientas en el proceso de desarrollo de software

CONCLUSIONES….…………………………………………………………………………33

ANEXO…………………………………………………………………………………….…..34

FUENTES CONSULTADAS………………………………….……………………………35-36

2
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

INTRODUCCIÓN:

El desarrollo de las tecnologías de la información y comunicación y muy especialmente la


Ingeniería del Software, juega un papel fundamental en el desarrollo de la humanidad, a través de
sus aportes tecnológicos de un área que es sumamente vital para la solución de problemas asociados
al entorno de los sistemas informáticos, dado que todo en los procesos y sistemas humanos son
programables y codificados.

Dentro de estos procesos se encuentra el desarrollo del software como herramienta que va a
permitir llevar a la práctica todo el sistema de codificación ya mencionado. El software es un
programa que está llamado a reinventarse, adecuarse e incluso re4usarse en función de mejor los
procesos, de allí que la creación de software, a través de la ingeniería del software marca la pauta en
el futuro promisorio de esta tecnología.

Por medio del presente trabajo se hará un abordaje de todos los elementos que constituyen
los fundamentos de la ingeniería del software y sus partes. Para ello se presentan los conceptos
básicos y las principales características y técnicas a aplicar en las etapas de desarrollo de software:
requisitos, análisis, diseño, implementación y pruebas.

Como resultado de este estudio se espera cumplir con los objetivos exigidos en la Unidad
Curricular Ingeniería de Sistemas y específicamente en la Unidad II que trata sobre los fundamentos
básicos de la ingeniería del software. Por medio de la investigación se espera también capacitar al
estudiante con las habilidades y conocimientos básicos necesarios para trabajar como Ingeniero
Software. Estos conocimientos serán muy útiles en el procesos de formación estudiantil y
profesional, lo que proporcionará el conocimiento necesario para poder desenvolverse en cualquier
organización.

3
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

EL SOFTWARE: Definición.

Para entrar en el tema, es necesario definir el término del software, ya que por medio de esto
se podrá dilucidar un poco más con relación a lo que significa este concepto de la informática. Para
ello se abordarán varias conceptualizaciones acerca del conocimiento de los programas intangibles
de la computación.

Según la Real Academia de la Lengua Española (RAE)1, el anglicismo software es un


conjunto de programas, instrucciones y reglas informáticas que permiten ejecutar distintas tareas en
una computadora. Este concepto da la significación de un programa predeterminado que a través de
códigos realizará las tareas que el usuario le pedirá a la computadora, dado que se considera el
software como el equipamiento lógico e intangible de un ordenador, es entonces entendible que la
definición entraña el funcionamiento interno de la máquina.

FIGURA N° 1. El Software.

Otro concepto es el acuñado por Wikipedia (2010)2, donde se afirma que el software es el
logicial o soporte lógico al sistema formal de un sistema informático, que comprende el conjunto de
los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en
contraposición a los componentes físicos que son llamados hardware.

1https://dle.rae.es/software
2 Diccionario de la lengua española 2005 (2010). wordreference.com, ed. «software» (diccionario). Espasa-Calpe. Consultado el 1 de febrero de
2010.

4
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

El software consiste básicamente en un código con un lenguaje máquina, es decir, una


secuencia de instrucciones ordenadas que cambian el estado del hardware. El concepto de software
engloba todo aquello que es intangible en la computadora, lo que no se puede tocar, como, por
ejemplo, los programas y los sistemas operativos. Para visualizar en el mundo práctico y cotidiano
del término, se pueden nombrar algunos ejemplos de software: Microsoft Office (Word, Excel,
PowerPoint, Outlook), Adobe Reader, Adobe Photoshop, Adobe FrontPage, AutoCAD, Mozilla
Firefox, Google Chrome, Internet Explorer, etc.

5
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

CUALIDADES DEL SOFTWARE.

En cuanto a los caracteres, EcuRed (2015)3, plantea que el concepto direcciona hacia un
“conjunto de cualidades que determina su utilidad. La cualidad del software es el grado en que el
software cumple con los requisitos especificados (eficiencia, flexibilidad, corrección,
mantenimiento seguridad e integridad, entre otros).

La cualidad del software es medible y varía según el tipo de sistema y de programa, por
ejemplo no es lo mismo un software para control de viajes el cual deba ser confiable a un nivel de
cero errores que un software elaborado para la implementación de un sistema de calidad”. Es decir,
los criterios en cuanto a que si el software es bueno en calidad y es el adecuado, dependiendo de su
uso, dicho de otra manera, un sistema es correcto si hace lo que el cliente necesita. si resuelve el
problema real que causó su desarrollo.

Las cualidades de un software pueden ser establecidas en base a los siguientes criterios:

Correcto: Un software es correcto si se comporta de acuerdo a su especificación.


Confiable: El software se comporta de acuerdo con lo esperado por el usuario.
Robusto: Un software es robusto si se comporta en forma razonable aun en situaciones no
anticipadas.
Eficiencia: Es eficiente si usa recursos en forma económica.
Amigable: si el usuario lo encuentra fácil de usar.
Verificable: si sus propiedades pueden ser comprobadas.
Reusable: ya desarrollado se use con pocos o ningún cambio.
Portables: si pueden usarse y ejecutarse en distintos ambientes.
Interoperable: si puede coexistir y cooperar con otros sistemas.
Robustez: Es la capacidad de los productos software de reaccionar apropiadamente ante
condiciones excepcionales. La robustez viene a ser el complemento de la corrección. En
implementación se cuenta con el mecanismo de excepciones el cual garantiza el correcto flujo de
ejecución del código.

3 http://phpteamltap.blogspot.com/2015/05/cualidades-del-software.html

6
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

FIGURA N° 2. Cualidades del Software.

Claridad: la posibilidad de entender el funcionamiento de un sistema, subsistema o una


porción de código cualquiera, su objetivo y la forma de solucionar el problema; en particular por
gente que no es la que lo construyó.

Flexibilidad: la capacidad que tiene un sistema para reflejar cambios percibidos en el


dominio (sea por mejor comprensión del mismo o porque de verdad cambió) de una manera simple
y sencilla.

Mantenibilidad: menor esfuerzo que se requiere para que el sistema siga funcionando en
condiciones distintas a las originales e incluso en las originales.

7
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

FACTORES DE CALIDAD DEL SOFTWARE.

A la hora de emprender un proyecto de desarrollo de software, hay que tomar en cuenta


algunos factores que van a incidir en el resultado final del procesos de producción. Estos factores
van en función de elementos y recursos con los que cuenta la organización para llevar a cabo el
proyecto.

Estos factores de calidad están enmarcados dentro de condiciones internas y externas al


entorno de la organización que le van a permitir realizar la planificación estratégica, la gestión de
recursos (humanos, técnicos, materiales, infraestructura, económicos, etc.) y el diseño tecnológico
del software.

La calidad del software es una noción que puede ser descrita mediante una serie de factores,
que pueden ser externos (observables por los usuarios del producto) o internos (observables por
profesionales de la computación).

Factores externos:

Corrección: capacidad de los productos de software de ejecutar sus tareas tal como están
definidas en su especificación de requerimientos.

Robustez: capacidad de un sistema de software para funcionar en situaciones anormales.

Modificabilidad: facilidad de un producto para adaptarse al cambio de especificaciones.

Reusabilidad: facilidad para ser reutilizado en todo o en parte para nuevas aplicaciones.

Compatibilidad: facilidad de los productos de software para combinarse unos con otros.

Eficiencia: buen uso de los recursos de software y hardware disponibles.

Portabilidad: facilidad para adaptarse a otros entornos de software o hardware.

Verificabilidad: facilidad para preparar procedimientos de aceptación, en particular datos


de prueba, para detectar fallos durante las fases de validación y operación.

Integridad: capacidad de un sistema para proteger sus documentos (programas, datos)


contra accesos y modificaciones no autorizados.

8
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

Facilidad de uso: capacidad de aprender a manejar un sistema de software, operar con él,
preparar datos de entrada, interpretar resultados, etc.

Factores internos

Modularidad: independencia funcional de los componentes del programa.

Legibilidad: facilidad de lectura e interpretación del código del programa.

Por su parte, McCall (1977)4, propone tres perspectivas para agrupar los factores de calidad:

1. Revisión del producto; habilidad para ser cambiado.

2. Transición del producto; adaptabilidad al nuevo ambiente.

3. Operación del producto; características de operación.

Estas tres perspectivas que propone McCall, recogen en gran manera las experiencias que a
nivel de desarrollo de software se han extraído en función de un software de calidad. Un ejemplo
muy cotidiano es observar como a nivel de plataformas de aplicación móviles se observan gran
cantidad de aplicación creadas y que están a disposición en Google Play, pero que una inmensa
mayoría de esas aplicaciones, que han sido creadas por nóveles e inexpertos desarrolladores, no
re4unenh los criterios de calidad y es visible las aspiraciones de cada uno de los clientes, a través de
la interacción con los desarrolladores, por esta causa, se trajo a colación la cita bibliográfica de
McCall.

En síntesis, los factores de calidad del software tienen que ver al trabajo organizacional para
conformar equipos de alto desempeño, basados en su estructura como organización, en la cual estén
claramente definidos los roles, cargos, cultura organizacional y corporativa, los valores de la
organización. Esto dará como resultado una organización sólidamente conformada y cada uno de
los miembros que integran la organización consustanciados con los objetivos, mediante un clima
organizacional favorable.

Por otro lado, los requerimientos de los clientes vienen a ser otro de los factores que inciden
en la producción de proyectos de software. En la medida que hay claridad en cada uno de los

4 https://www.goconqr.com/es/mindmap/2774916/modelo-de-calidad-mccall

9
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

miembros de un equipo desarrollador, en cuanto a lo que necesita el cliente, va a redundar en


beneficios de calidad del software.

Asimismo, estas premisas no servirían de mucho si en cada uno de los integrantes del
equipo desarrollador de software no estén comprometidos, a fin de cumplir con los parámetros
establecidos en los sistemas de calidad que la organización haya establecido. Mediante estas dos
nociones de estructura organizacional y la disposición a cumplir a cabalidad con los lineamientos
establecidos en el manual de procedimientos del desarrollo de software, van a ser factores que van a
contribuir al desarrollo de software de calidad.

FIGURA N° 3. Factores de calidad del Software.

10
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE.

La Ingeniería de Software es una de las ramas de las ciencias de la computación que estudia
la creación de software confiable y de calidad, basándose en métodos y técnicas de ingeniería. Es la
que brinda soporte operacional y de mantenimiento, el campo de estudio de la ingeniería de
software. La integran las ciencias de la computación, las ciencias aplicadas y las ciencias básicas en
las cuales se encuentra apoyada la ingeniería.

A continuación, algunas definiciones más reconocidas, citadas y formuladas por prestigiosos


autores:

Para Bauer (1972), la ingeniería de software trata del establecimiento de los principios y
métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en
máquinas reales (Bauer, 1972). Concepto práctico y claro en función de los objetivos que persiguen
los desarrolladores.

En 1976, Bohem definió a la ingeniería de software como la aplicación práctica del


conocimiento científico al diseño y construcción de programas de computadora y a la
documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como
desarrollo de software o producción de software.

Esta caracterización que hace Bohem da para reflexionar la relación que existe entre los
enfoques paradigmáticos de investigación científica con la apropiación de estos criterios que
esgrimen teóricos del tema para ser utilizados en el área de las tecnologías y en el caso particular ,
en lo que se refiere a los paradigmas de programación y otros aspectos informáticos.

Mientras que Zelkovitz (1978), dijo que la ingeniería de software es el estudio de los
principios y metodologías para el desarrollo y mantenimiento de sistemas software. Este concepto
de Zelkovitz hace juego con las características y formuladas en el punto anterior referente a los
factores de calidad del software, en cuanto a seguir patrones establecidos en las normativas
correspondientes y manuales de procedimientos para el desarrollo de software.

Según la Standard Glossary of Software Engineering Terminology o Glosraio Estandarizado


de Terminologías de la Ingeniería del Software, la ingeniería de software es la aplicación de un
enfoque sistemático, disciplinado y cuantificable al desarrollo, operación, y mantenimiento del

11
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

software. Existe mucha similitud en este concepto con las apreciaciones expresadas en el párrafo
anterior.

12
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

VISIÓN GENERAL DEL PROCESO DE DESARROLLO DE SOFTWARE.


El fin último a la hora de considerar la formulación de un proyecto de desarrollo de
Software tiene que ver con la direccionalidad de prestar un servicio al cliente que satisfaga todas las
necesidades planteadas a nivel del proyecto. Su objetivo fundamental es logar un software eficiente
y eficaz, que cumpla con todas las especificaciones establecidas en los patrones de factores de
calidad del software. El apego ordenado a cada una de las fases del proceso de desarrollo de
software es lo que marcará la diferencia y se traducirá en éxito en la empresa desarrolladora.
Para desarrollar un proceso de software hay que observar las principales tareas de los
procesos software, entre las que se encuentran 1. Entender la naturaleza de la aplicación. 2.
Establecer el plan de trabajo. 3. Generar y gestionar la documentación. 4. Captura de los
requerimientos. 5. Diseñar y construir el producto. 6. Probar y validar el producto. 7. Entregar y
mantener el producto. Estas tareas están a su vez inmersas en las siguientes fases: Definición,
Análisis (sistema del software.), Desarrollo, Diseño, codificación, prueba, Mantenimiento del
cliente.
Análisis del sistema
En este paso los desarrolladores trazan su plan e intentan crear el mejor y más conveniente
modelo de software para el proyecto. El análisis del sistema incluye el entendimiento de las
limitaciones del producto Software; el aprendizaje de los problemas relacionados con el sistema; los
cambios que se requieren en sistemas ya existentes con antelación, identificando y dirigiendo el
impacto del proyecto a la organización y al personal, etc. El equipo del proyecto analiza las
posibilidades del proyecto y planifica la temporalización y los recursos correspondientes.
Diseño de Software
El siguiente paso es diseñar el producto software con la ayuda de toda la información
recogida sobre requisitos y análisis. Los inputs (aportacines) de los usuarios y los resultados de la
recogida de información hecha en la fase anterior serán las aportaciones base de la fase actual. El
output (o resultado) de esta etapa toma la forma de 2 diseños; El diseño lógico y el diseño físico.
Los ingenieros crean meta-data (Metadatos), Diagramas dialógicos, diagramas de flujo de datos, y
en algunos casos pseudocódigos.
Codificación
Esta fase también se puede denominar 'fase de programación'. La implementación del diseño
de software empieza con el lenguaje de programación más conveniente, y desarrollando programas
ejecutables y sin errores de manera eficiente.
13
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

Pruebas
Se estima que el 50% de todos los procesos de desarrollo de software deberían ser
evaluados. Los errores pueden arruinar el software tanto a nivel crítico y hasta el punto de ser
eliminado. Las pruebas de Software se hacen mientras se codifica y suelen hacerlo los
desarrolladores y otros expertos evaluadores a varios niveles. Esto incluye evaluación de módulos,
evaluación del programa, evaluación del producto, evaluación interna y finalmente evaluación con
el consumidor final. Encontrar errores y su remedio a tiempo es la llave para conseguir un software
fiable.
Integración
El Software puede necesitar estar integrado con las bibliotecas, Bases de datos o con otro u
otros programas. Esta fase del SDLC se focaliza en la integración del software con las entidades del
mundo exterior.
Implementación
Aquí se instala el software en máquinas de clientes. A veces, el software necesita instalar
configuraciones para el consumidor final con posterioridad. El Software se evalúa por su
adaptabilidad y su portabilidad, en cuanto a las cuestiones relacionadas con la integración y
conceptos asociados, se resuelven durante la implementación.
Mantenimiento y Funcionamiento
Esta fase confirma el funcionamiento del software en términos de más eficiencia y menos
errores. Si se requiere, los usuarios se forman, o se les presta documentación sobre como operar y
como mantenerlo en funcionamiento. El software se mantiene de forma temprana actualizando el
código en acorde a los cambios que tienen lugar en entornos del usuario o tecnológicos. Esta fase
puede que tenga que encarar retos originados por virus ocultos o problemas no identificados del
mundo real.
Disposición
Con el paso del tiempo, puede que el software falle en su ejecución. Puede que se vuelva
totalmente obsoleto o que necesite actualizaciones. De ahí surge una necesidad urgente de eliminar
una parte importante del sistema. Esta fase incluye archivar datos y componentes software
requerido, cierre del sistema, planificación de la actividad de disposición y terminación de sistema
en el momento final del sistema.

14
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

FIGURA N° 4. Visión general del proceso de desarrollo del Software.

15
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

PARTICIPANTES EN EL PROCESO DE DESARROLLO DE SOFTWARE.


Los roles son necesarios para cubrir todas las especificaciones necesarias para cumplir un
proceso ya que no todos tenemos las mismas cualidades y experiencias. Además al asignar roles, se
definen objetivos y actividades para cada uno; lo anterior evitando que alguna actividad no sea
asignada o que dos personas realicen el mismo trabajo.
El papel del usuario dentro del proceso de desarrollo de software:
El rol que el usuario desempeña dentro del desarrollo de un Sistema de Información es de
suma importancia, ya que los sistemas se construyen para satisfacer las necesidades particulares del
usuario, en función de los objetivos estratégicos de la organización y ninguna otra persona,
incluyendo al analista del sistema, conoce mejor que el usuario mismo, sus propios requerimientos;
razón por la cual se dice que el usuario es el “Dueño del Sistema”. Sin embargo, éste no es su único
papel, ya que existen una serie de funciones que el usuario debe asumir durante todo el desarrollo
del proyecto, las cuales van exigiendo una determinada categorización del usuario de acuerdo a la
responsabilidad que tendrá dentro del proyecto.
Descripción de roles en el Proceso de Desarrollo de Software
El software se construye en equipo y hay muchas metodologías diferentes. Los roles se
asignan de acuerdo a las capacidades de cada persona, así como también su especialización,
experiencia e interés. Los roles más comunes son:
Gerente de proyecto: Tiene por función presentar informes sobre las litigaciones de
riesgos, hacer cumplir los plazos y lleva el control de los costos. También organiza el equipo,
realiza planificación y estima el tiempo de las actividades. En conclusión, resuelve problemas.
Analista de requerimientos: Se encarga del revelamiento de los requerimientos esenciales
para el desarrollo del Software, la documentación de los requerimientos para así el resto del equipo
lo pueda consultar en cualquier momento. Debe ser una persona con capacidad de abstracción y
análisis.
Desarrollador de software o programador: Encargado de la concepción y el diseño,
escribe el código, prueba lo que construye y se encarga de hacer el mantenimiento del código.
Testeador: Diseña y ejecuta las pruebas, para ello requiere conocer el producto a probar
claro está, estudiar funcionalidad del producto y desarrollar las pruebas que revelen incidentes
críticos. Reporta los incidentes y provee información sobre la calidad del sistema.
Arquitecto de software: Determina las estructuras de la aplicación y las tecnologías con las
que se construirá la aplicación. Está encargado del aseguramiento de la calidad, mejorar
16
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

continuamente la arquitectura. Gestiona los requerimientos no funcionales, asume la dirección


técnica para asegurar que todos los aspectos de la arquitectura se estén desarrollando de manera
correcta.
Responsabilidad ética y profesional en Ingeniería del software:
La ingeniería del software se lleva a cabo dentro de un marco legal y social que limita la
libertad de los ingenieros. Los ingenieros de software deben aceptar que su trabajo comprende
responsabilidades más amplias que simplemente la aplicación de habilidades técnicas. Deben
comportarse de una forma ética y moral responsable, no basta con poseer estándares normales de
honestidad e integridad. No debería utilizar su capacidad y sus habilidades para comportarse de
forma deshonesta o de forma que deshonre la profesión de la ingeniería del software.
Existen áreas donde los estándares de comportamiento aceptable no están acotados por las
leyes, sino por la responsabilidad profesional, algunas de estas son:
Confidencialidad: Respetar la confidencialidad de sus empleadores o clientes,
independientemente de que se haya firmado un acuerdo formal de confidencialidad.
Competencia: No debe falsificar su nivel de competencia, ni aceptar conscientemente
trabajos que están fuera de su capacidad.
Derechos de propiedad intelectual: Debe ser consciente de las leyes locales que gobiernan
el uso de la propiedad intelectual, como las patentes el el copyright. Debe asegurarse de que la
propiedad intelectual de los empleadores y clientes está protegida.
Uso inapropiado de las computadoras: No debe emplear sus habilidades técnicas para
utilizar de forma inapropiada las computadoras de otras personas. Desde los relativamente triviales
(utilizar juegos en las maquina de un empleado, por ejemplo) hasta los extremadamente serios
(difusión de virus).
Ciclo de vida del software: al igual que en otros sistemas de ingeniería, los sistemas de
software requieren un tiempo y esfuerzo considerable para su desarrollo y deben permanecer en uso
por un periodo mucho mayor. Durante este tiempo de desarrollo y uso, desde que se detecta la
necesidad de construir un sistema de software hasta que este es retirado, se identifican varias etapas
que en conjunto se denominan el ciclo de vida del software y en cada caso, en función de cuales
sean las características del proyecto, se configurará el ciclo de vida de forma diferente.
Debe ser una persona con un innato sentido de liderazgo, dispuesto a formar a los
integrantes del equipo, dispuesto a recibir y aplicar abiertamente recomendaciones. Los que
trabajan desarrollando software saben que cada unos de las personas que están involucradas en el
17
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

proceso de desarrollo tienen particularidades y su manera de pensar, por lo cual se maneja de la


forma Project manager, marketing manager, auditor.

FIGURA N° 5. Participantes en el proceso de desarrollo del software

FIGURA N° 6. Modelo de actores y participantes en el desarrollo del software.

18
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

CICLO DE VIDA DEL SOFTWARE.


El ciclo de vida del desarrollo Software o SDLC (System Development Life Cicle), por sus
siglas en inglés, es una secuencia estructurada y bien definida de las etapas en Ingeniería de
software para desarrollar el producto software deseado. Es una sucesión de etapas por las que
atraviesa un producto software a lo largo de su desarrollo y existencia.
Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de
software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que
tienen lugar durante el proceso. Algunos autores consideran un modelo de ciclo de vida un término
más general que un determinado proceso para el desarrollo de software.
El Ciclo de Vida del Desarrollo del Software incluye los pasos que veremos a continuación:
Comunicación: Este es el primer paso donde l usuario inicia la petición de un producto
software determinado. Contacta al proveedor de servicios e intenta negociar las condiciones.
Presenta su solicitud al proveedor de servicios aportando la organización por escrito.
Recolección de solicitudes: A partir de este paso y en adelante el equipo de desarrollo
software trabaja para tirar adelante el proyecto. El equipo se reúne con varios depositarios de
dominio del problema, e intentan conseguir la máxima cantidad de información posible sobre lo que
requieren.

FIGURA N° 7. Ciclo de Vida de Desarrollo del Software

Video: Ciclo de vida del software:


https://youtu.be/Z9LNk12ndm4
19
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

Por otra parte, existen distintas formas, paradigmas o modelos de ciclo de vida de software;
por ejemplo: Clásico o cascada, Prototipado, Evolutivo o en espiral, Combinación de estilos, etc.
Alternativamente, a veces se usan los términos “Ciclo de vida”, y “Modelo de ciclo de vida”
Clásico o cascada:
Propuesto por W. Royce a principios de los 70. Aplicación secuencial de una serie de pasos.
Cada paso genera entradas y documentación para la siguiente.
Prototipado:
Prototipear consiste en construir una versión inicial de un producto, el cual se describe la
interacción hombre-máquina sin implementar completamente la funcionalidad del sistema
(prototipo sin funcionalidad). La utilidad es la siguiente:
Ayuda a los analistas a establecer las necesidades del cliente.
Ayuda a los desarrolladores a mejorar los productos.
Clases de prototipos
Vertical: desarrolla completamente algunas de las facetas del producto.
Horizontal: desarrolla parcialmente todas las facetas del producto.
Evolutivo: la versión final es el producto ya construido.
Desechable: se usa solo para la captación de requerimientos y funcionalidad.
Evolutivo o en espiral: El desarrollo en espiral fue definido por primera vez por Barry
Boehm en 1986. Las actividades de este modelo se conforman en una espiral, en la que cada bucle o
iteración representa un conjunto de actividades. Las actividades no están fijadas a ninguna
prioridad, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el
bucle interior.
Estudio de viabilidad
Después de la recolección de requisitos, el equipo idea un plan para procesar el software. En
esta fase, el equipo analiza si el software puede hacerse para cubrir todos los requisitos del usuario
y si hay alguna posibilidad de que el software ya no sea necesario. Se investiga si el proyecto es
viable a nivel financiero, práctico, y a nivel tecnológico para que la organización acepte la oferta.
Hay varios algoritmos disponibles, los cuales ayudan a los desarrolladores a concluir si el proyecto
software es factible o no.

20
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

FIGURA N° 8. Ciclo de vida del Software.

21
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

FUNDAMENTACIÓN TEÓRICA DE:


Paradigmas de programación.
El término paradigma significa «ejemplo» o «modelo». Un paradigma de programación es
una propuesta tecnológica que es adoptada por una comunidad de programadores. El paradigma de
programación está delimitado en el tiempo en cuanto a aceptación y uso.
Los paradigmas de la programación se dividen en:
Programación declarativa.
Esta se divide en funcional, lógica, programación interactiva (en esta se encuentra la
Orientada a Objetos).
Programación Lógica:
El paradigma lógico difiere de forma importante de otros paradigmas. No sólo en su sintaxis
o semántica, sino que en él la lógica representa conocimiento, el cual es manipulado mediante
inferencias. A diferencia de los demás paradigmas, trabajar en este significa especificar qué hacer y
no cómo hacerlo, por ello son llamados lenguajes declarativos. El proceso general de la
programación lógica es que a partir de un conjunto de reglas (axiomas) e inferencias podamos
comprobar nuevas proposiciones que nos sean relevantes. Este proceso está basado en reglas de
lógica de primer orden.
Al ser un paradigma bastante abstracto vale la pena esclarecerlo a través de algunos
ejemplos. Aunque Prolog es el lenguaje más representativo en este paradigma, haré los ejemplos en
Structured Query Language (SQL), un lenguaje para operar bases de datos y el cual representa otra
de las aplicaciones de la programación lógica.

FIGURA N° 9. Paradigmas de programación.

22
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

El paradigma funcional:
Considera al programa como una función matemática, donde el dominio representaría el
conjunto de todas las entradas posibles (inputs) y el rango sería el conjunto de todas las salidas
posibles (outputs). La forma en que una función puede ser entendida como una caja negra:
1. En los lenguajes funcionales no existe el concepto de variables y consecuentemente
tampoco existen operaciones de asignación. Aunque podría parecer que los parámetros de una
función se comportan como una variable (puesto que pueden llevar un nombre y su uso es de hecho
parecido al de las variables), esto es incorrecto: El valor de los parámetros es dado como fijo al
inicio de la función.
2. La existencia de una propiedad llamada transparencia referencial (Referential
transparency), la cual indica que una función sólo depende de sus parámetros y que tendrá efecto
únicamente en su resultado, por lo que podríamos llamar a una función arbitrariamente sin tener
efectos colaterales en el resto de las computaciones. Por último, que una función puede ser utilizada
como parámetros y resultados de cualquier otra función.
Programación Imperativa:
El término imperativo en este caso, no difiere esencialmente del modo gramático imperativo
del español. De forma similar, la programación imperativa consiste en una serie de comandos que
una computadora ejecutará. Estos comandos detallan de forma clara y específica el cómo hacer las
cosas y llevarán al programa a través de distintos estados.
Los elementos más importantes de la programación imperativa son: variables, tipos de datos,
expresiones y estructuras de control.
Programación estructurada:
C, Pascal y Fortran, y lenguajes similares, se conocen como lenguajes procedimentales (por
procedimientos). Es decir, cada sentencia o instrucción señala al compilador para que realice alguna
tarea: obtener una entrada, producir una salida, sumar tres números, dividir por cinco, etc. En
resumen, un programa en un lenguaje procedimental es un conjunto de instrucciones o sentencias.
En el caso de pequeños programas, estos principios de organización (denominados paradigma) se
demuestran eficientes.
El programador sólo tiene que crear esta lista de instrucciones en un lenguaje de
programación, compilar en la computadora y ésta, a su vez, ejecuta estas instrucciones. Cuando los
programas se vuelven más grandes, cosa que lógicamente sucede cuando aumenta la complejidad

23
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

del problema a resolver, la lista de instrucciones aumenta considerablemente, de modo tal que el
programador tiene muchas dificultades para controlar ese gran número de instrucciones.
Los programadores pueden controlar, de modo normal, unos centenares de líneas de
instrucciones. Para resolver este problema los programas se descompusieron en unidades más
pequeñas que adoptaron el nombre de funciones (procedimientos, subprogramas o subrutinas en
otros lenguajes de programación). De este modo en un programa orientado a procedimientos se
divide en funciones, de modo que cada función tiene un propósito bien definido y resuelve una tarea
concreta, y se diseña una interfaz claramente definida (el prototipo o cabecera de la función) para su
comunicación con otras funciones.

Programación Orientada a Objetos:


La programación orientada a Objetos (POO) no es algo nuevo, pues existe desde los años 60
con lenguajes como Smaltalk, Simula, Ada. Se ha hecho más populares en los últimos 10 años con
la aparición de Java y C#. La POO es una extensión de los lenguajes de Alto Nivel Estructurados
que tratan de representar de una forma más sencilla el modelo del mundo real.
El concepto de programación Orientada a Objetos: agrupa un conjunto de técnicas que nos
permiten desarrollar y mantener muchos más fácilmente programas de gran complejidad.
La POO intenta resolver principalmente problemas de la Ingeniería de Software como:
portabilidad, reusabilidad, mantenibilidad, entre otros. Para ello se basa en las características claves
como el encapsulamiento, la herencia, polimorfismo, y el desarrollo orientado primero hacia el que,
y luego hacia el cómo (interfaces).

24
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

MÉTODOS DE DESARROLLO DE SOFTWARE.

FIGURA N° 10. Métodos de desarrollo del Software.

Entre los métodos de desarrollo del software están:


Definición del Problema:
En esta etapa, también conocida como Especificación de Requerimientos, se establece el
problema, aclarándolo lo más posible. Es la parte más crítica de la solución. Amerita un estudio
cuidadoso.
Análisis:
En esta etapa se deben identificar las entradas del problema, los resultados deseados o
salidas y cualquier requerimiento o restricción adicional en la solución.
Diseño:
El diseño consiste básicamente en desarrollar una lista de pasos llamados algoritmo o receta
de la solución, verificando que el problema se resuelve como se desea.
Implementación:
Esta etapa consiste en implementar o escribir el algoritmo como un programa de
computadora en un lenguaje de programación.
Verificación y Prueba:
Esta etapa consiste en probar el programa completo y verificar que trabaja como se
esperaba.

25
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

LA METODOLOGÍA O PROCESOS DE DESARROLLO DEL SOFTWARE


La metodología de desarrollo de software es un marco de trabajo usado para estructurar,
planificar y controlar el proceso de desarrollo en sistemas de información.

FIGURA N° 11. Modelo de Cascada.

1. Modelo en Cascada:
También conocido como modelo clásico, modelo tradicional o modelo lineal secuencial. Él
método de la cascada es considerado como el enfoque clásico para el ciclo de vida del desarrollo de
sistemas, se puede decir que es un método puro que implica un desarrollo rígido.
Es caracterizado por ordenar de manera rigurosa las etapas del ciclo de vida de software,
dado que el comienzo de cada etapa debe esperar a la finalización de la inmediata anterior. Cuando
la revisión determina que el proyecto no está listo para pasar a la siguiente etapa, permanece en la
etapa actual hasta que esté preparado. Y debido a que el proceso está planeado es más fácil
determinar costos y los plazos.
2. Modelo de Espiral:
El modelo en espiral, propuesto originalmente por Bohem, es un modelo de proceso de
software evolutivo que conjuga la naturaleza iterativa de construcción de prototipos con los
aspectos controlados y sistemáticos del modelo lineal secuencial. Proporciona el potencial para el
desarrollo rápido de versiones incrementales del software. En el modelo espiral, el software se
desarrolla en una serie de versión.

26
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

FIGURA N° 12, Modelo en Espiral.

Requiere una considerable habilidad para la evaluación del riesgo, y cuenta con esta
habilidad para el éxito. Si un riesgo importante no es descubierto y gestionado, indudablemente
surgirán problemas.
3. Metodología de Prototipo:
Es un procedimiento de desarrollo especializado que permite a los desarrolladores la
posibilidad de poder solo hacer la muestra de la resolución para poder validar su esencia funcional
ante los clientes, y hacer los cambios que sean fundamentales antes de crear la solución final
auténtica.
La mejor parte de esta metodología es que tiende a resolver un conjunto de problemas de
diversificación que ocurren con el método de la cascada
Este modelo es útil cuando:
El cliente no identifica los requisitos detallados.
El responsable del desarrollo no está seguro de la eficiencia de un algoritmo, sistema
operativo o de la interface hombre-máquina.

FIGURA N° 13. Modelo de prototipos.

27
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

4. Desarrollo Rápido de Aplicaciones (RAD):


Con el objetivo de otorgar resultados rápidos, se trata de un enfoque que está destinado a
proporcionar un excelente procesos de desarrollo con la ayuda de otros enfoques, pero además, está
diseñado para aumentar la viabilidad de todo el procedimiento de desarrollo de software para
resaltar la participación de un usuario activo.
Dicho esto, algunas de las ventajas a destacar de este tipo de desarrollo son las siguientes:
Hace todo el proceso de desarrollo sin esfuerzo.
Asiste al cliente en la realización de revisiones rápidas.
Alienta la retroalimentación de los clientes para su mejora.
5. Metodología de Programación Extrema (XP):
Como metodología ágil de ingeniería de software, la metodología de programación extrema
se conoce actualmente como metodología de XP (eXtreme Programming). Esta metodología, se
utiliza principalmente para evitar el desarrollo de funciones que actualmente no se necesitan, pero
sobre todo para atender proyectos complicados. Sin embargo, sus métodos peculiares pueden tomar
más tiempo, así como recursos humanos en comparación con otros enfoques.

28
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

MODELADO DE SISTEMA.
Se define sistema como un conjunto de partes operativamente interrelacionadas, del que
interesa considerar fundamentalmente su comportamiento global. En el proceso de toma de decisión
se elige una entre varias acciones posibles, teniendo en cuenta el efecto que cada acción vaya a
producir. La relación que liga las posibles acciones con sus efectos es el modelo del sistema. Por lo
tanto, en el proceso de toma de decisiones se está empleando un modelo del sistema.
El modelado de sistemas software es una técnica para tratar con la complejidad inherente a
estos sistemas. El uso de modelos ayuda al ingeniero de software a "visualizar" el sistema a
construir. Además, los modelos de un nivel de abstracción mayor pueden utilizarse para la
comunicación con el cliente. Por último, las herramientas de modelado y las de Ingeniería de
Software Automatizada pueden ayudar a verificar la corrección del modelo.

FIGURA N° 14. Modelado del Sistema.

La ingeniería de sistemas de computadora es un proceso de modelado. Tanto si el punto de


mira está en la visión global o en la visión detallada, el ingeniero crea modelos que:
Definan los procesos que satisfagan las necesidades de la visión en consideración;
Representen el comportamiento de los procesos y los supuestos en los que se basa el
comportamiento;
Definan explícitamente las entradas exógenas y endógenas de información al modelo;
Representen todos las uniones (incluyendo las salidas) que permitan al ingeniero entender
mejor la visión.
Para desarrollar el modelo del sistema, se emplea un esquema del modelado del sistema. El
ingeniero de sistemas asigna elementos a cada una de las cinco regiones de tratamiento del
esquema: (1) interfaz de usuario, (2) entrada, (3) tratamiento y control del sistema, (4) salida y (5)
mantenimiento y auto comprobación.
29
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

TÉCNICAS Y HERRAMIENTAS EN EL PROCESO DE DESARROLLO DE


SOFTWARE.

FIGURA N° 15. Técnicas y herramientas en el proceso de desarrollo del software.

Las técnicas que se podrían utilizar en la elaboración de un software seria el procedimiento o


conjunto de reglas, normas o protocolos, que tienen como objetivo obtener un resultado
determinado para que dicho software sea lo más parecido a las exigencias del cliente, podrían ser:
Técnica de Costo-Beneficios:
El análisis de costo-beneficio es una técnica analítica que enumera y compara el costo neto
de una intervención con los beneficios que surgen como consecuencia de aplicar dicha intervención.
Técnica de Planificación y Control de Proyectos:
La Planificación y Control de Proyectos de Software comprende una serie de
procedimientos, sin embargo, se mencionaran solo los más complejos y/o significativos, los cuales
son: Objeto, Alcance, Entradas, Salidas Desarrollo, Planificación, Programación, Control,
Herramientas:
Las Herramientas dan ayuda al desarrollo de Sistemas de Información, ayudan a solucionar
los problemas que se nos presentan en los proyectos y desarrollos de aplicaciones informáticas.
Tal es el caso que para el desarrollo de software libre se pueden conseguir unas cuantas
herramientas pero todas utilizan la notación UML.
Existen herramientas orientadas a una db en especifico y estas son MySql y PostgreSQL, el
de MySql (MySql WorkBench no es libre).

30
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

También se puede utilizar, Herramientas para Ingeniería de Software Asistida por


Computadora (CASE) Son un conjunto de métodos, utilidades y técnicas que facilitan la
automatización del ciclo de vida del desarrollo de sistemas de información.
Clasificación 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.
Existe al menos 20 herramientas libres para diseñar software totalmente libres, todas utilizan
la notación UML.
El nivel de avance entre una y otra es notable, casi todas ofrecen como funcionalidad.
Diagramas de caso de uso.
Diagramas de clases.
Diagramas de secuencia.
Generación de código en java, c++, python y php.
Algunas entidad-relación (pero ninguna lo suficientemente avanzada).
Pocas herramientas permiten ingeniería reversa, y si lo hacen solo es de lenguajes tipo java o
c++.
Las Herramientas de Ayuda al Desarrollo de Sistemas de Información, surgieron para
intentar dar solución a los problemas inherentes a los proyectos de generación de aplicaciones
informáticas: plazos y presupuestos incumplidos, insatisfacción del usuario, escasa productividad y
baja calidad de los desarrollos.
Algunas de estas herramientas se dirigen principalmente a mejorar la calidad, como es el
caso de las herramientas CASE (Computer Aided Software Engineering-Ingeniería de Software
Asistida por Ordenador). Otras van dirigidas a mejorar la productividad durante la fase de
construcción, como es el caso de los lenguajes de cuarta generación (4GL-Fourth Generation
Language).
Herramientas para diseñar software
• Existe al menos 20 herramientas libres para diseñar software totalmente libres.
• Todas utilizan la notación UML
31
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

• El nivel de avance entre una y otra es notable, casi todas ofrecen como funcionalidad:
Diagramas de caso de uso.
Diagramas de clases.
Diagramas de secuencia.
• Generación de código en java, c++, python y php.
• Algunas entidad-relación (pero ninguna lo suficientemente avanzada)
• Pocas herramientas permiten ingeniería reversa, y si lo hacen solo es de lenguajes tipo java
o c++.

32
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

CONCLUSIONES
Los desarrollos de proyectos de software guardan mucha relación con los sistemas
procedimentales establecidos y diseñados puertas adentro por las mismas organizaciones
desarrolladoras para cumplir a cabalidad en el proceso de creación de software de calidad. Esta
serie de normativas internas y externas van en función de sistematizar, e incluso estandarizar cada
una de las fases en las que está compuesto el desarrollo de software. Estos procesos también van en
función de cumplir con los requerimientos del cliente, que a la postre el que verdaderamente sabe lo
que requiere, necesita y pretende desarrollar aguas abajo su organización.
Como ya se mencionó, desarrollar software, debe ser siguiendo las pautas establecidas para
lograr el fin, pero estas pautas serían imposible poner en práctica si no se cuenta con un buen
equipo, desde el punto de vista del desempeño, en la producción de software que transforme la
realidad de una organización.
Hay que tomar en cuenta que el software tiene un tiempo establecido de vida óptima y es por
eso que en la actualidad, el requerimiento de software se hace en función de prospectivas de
desarrollo de otras tendencias tecnológicas, sin que ello represente un costo adicional al cliente para
adaptarse a los cambios experimentados en el desarrollo de software.
Todas estas consideraciones hacen del software un avance tecnológico interesante a la hora
de evaluar de cuál será el futuro. Mientras tanto el desarrollador de software debe estar consciente
de lo fundamental de su rol dentro de la sociedad y de allí el punto de reflexión a que la calidad del
software no sólo va estar cimentada sobre la base de sus condiciones técnicas y de diseño, sino
también de la calidad de desarrolladores, desde el punto de vista del recurso humano, dado que es
inevitable el avance hacía el dominio de las máquinas sobre el hombre, urge entonces desarrollar
buenos desarrolladores en cuanto a su calidad humana. Es cuestión de tiempo, el tiempo lo dirá.

33
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

ANEXO: Participantes en el proceso de desarrollo del software.

Puesto Responsabilidades

Asignar los recursos, gestionar las prioridades, coordinar las


interacciones con los clientes y usuarios, mantener al equipo
del proyecto enfocado en los objetivos. También establecer un
Jefe de Proyecto conjunto de prácticas que aseguran la integridad y calidad del
proyecto. Supervisará el establecimiento de la arquitectura del
sistema, la gestión de riesgos y la planificación y control del
proyecto.

Capturar, especificar y validar requisitos, interactuando con el


cliente y los usuarios mediante entrevistas. Elaborar el Modelo
Analista de Sistemas
de Análisis y Diseño. Colaborar en la elaboración de las
pruebas funcionales y el modelo de datos.

Construir prototipos. Colaborar en la elaboración de las


Analista -Programador pruebas funcionales, modelo de datos y en las validaciones
con el usuario.

Gestión de requisitos, gestión de configuración y cambios,


elaborar el modelo de datos, preparar las pruebas funcionales,
elaborar la documentación. Elaborar modelos de
Ingeniero de Software implementación y despliegue.

34
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

FUENTES CONSULTADAS:

https://dle.rae.es/software

https://es.wikipedia.org/wiki/Software

https://www.todamateria.com/que-es-software/

https://es.slideshare.net/manuelalfredochaconv/fundamentos-de-ingenieria-del-software-
2?next_slideshow=1

https://www.cavsi.com/preguntasrespuestas/cuales-son-ejemplos-de-software/

https://www.goconqr.com/es/mindmap/2774916/modelo-de-calidad-mccall

https://es.slideshare.net/evewalkiria/2-software-y-sus-cualidades

http://phpteamltap.blogspot.com/2015/05/cualidades-del-software.html

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software

http://ing1-fundamentos.blogspot.com/2012/11/participantes-en-el-proceso-de.html

https://sites.google.com/site/sinformaciondrose/ciclo-de-vida-del-software

https://www.tutorialspoint.com/es/software_engineering/software_development_life_cycle.h
m

http://ing1-fundamentos.blogspot.com/2012/11/paradigmas-de-programacion.html

https://1library.co/document/myj93vkz-fundamentos-teoricos-de-los-paradigmas-de-
programacion.html

https://es.slideshare.net/albertocalatayu/fundamentos-de-la-ingenieria-del-software

https://es.wikipedia.org/wiki/Modelado_del_software#:~:text=El%20modelado%20de%20si
stemas%20software,la%20comunicaci%C3%B3n%20con%20el%20cliente.

35
UNIDAD 2: FUNDAMENTOS DE LA INGENIERÍA DEL SOFTWARE

http://www2.isa.uma.es/C17/Presentaciones%20de%20Clase%20(ppt)/Document%20Librar
y/INTRODUCION%20AL%20MODELADO%20DE%20SISTEMAS.pdf

http://ing1-fundamentos.blogspot.com/2012/11/tecnicas-y-herramientas-en-el-proceso.html

36

También podría gustarte