Está en la página 1de 74

Unidad 1

DESARROLLO DE SOFTWARE

Entornos de Desarrollo

Versión: 1.0
Curso 2022/2023
Mónica Amann Ostos
INDICE
00. Introducción
01. Relación Hardware - Software
02. Software y tipos de software
03. Lenguajes de programación
04. Máquinas virtuales
05. Ingeniería del software
06. Ciclos de vida del software
07. Modelos de desarrollo de software

2
0. INTRODUCCIÓN
En esta unidad
nuestro interés se centra en las aplicaciones informáticas:
cómo se desarrollan y cuáles son las fases por las que
necesariamente han de pasar. A lo largo de esta primera
unidad vas a aprender los conceptos fundamentales de
software y las fases del llamado ciclo de vida de una
aplicación informática. También aprenderás a distinguir los
diferentes lenguajes de programación y los procesos que
ocurren hasta que el programa funciona y realiza la acción
deseada.

Conceptos
• Reconocer la relación de los programas con los
componentes del sistema informático.
• Diferenciar código fuente, objeto y ejecutable.
• Clasificar los lenguajes de programación.
• Identificar las fases de desarrollo de una aplicación
informática.
• Diferenciar los distintos modelos de desarrollo.

3
1. RELACIÓN HARDWARE Y SOFTWARE

¿Qué relación hay entre el hardware y el software?

Como sabemos, al conjunto de dispositivos físicos que


conforman un ordenador se le denomina hardware. El
software se ejecutará sobre los dispositivos físicos.

Existe una relación indisoluble entre hardware y software, ya


que necesitan estar instalados y configurados correctamente
para que el equipo funcione.

Desde la aparición de las primeras máquinas computacionales Fuente: https://s3.amazonaws.com/s3.timetoast.com/public/uploads/photos/6910895/von-neumann-1.png

en la década de los 40 (La primera arquitectura hardware con


programa almacenado se estableció en 1946 por John Von
Neumann, pero fue en 1948 cuando por primera vez
una máquina gigantesca llamada 'Manchester Baby' que
ocupaba toda una habitación de la Universidad Victoria de
Manchester ejecutó un programa informático. Hasta la
actualidad, la creación de hardware ha evolucionado para
adaptarse a las nuevas tecnologías y usuarios.

Fuente: https://hipertextual.com/2013/06/historia-de-la-tecnologia-manchester-baby

4
1. RELACIÓN HARDWARE Y SOFTWARE

Esquema funcional arquitectura de Von Neumann

Fuente: Arquitectura de Von Neumann

5
1. RELACIÓN HARDWARE Y SOFTWARE
Estructura de un ordenador
La estructura de un ordenador consta de:

– Unidad central de procesamiento (CPU)


Es el circuito digital que se encarga de ejecutar las instrucciones de un programa. Se le denomina también procesador. La
CPU contiene la ALU, la unidad de control y un conjunto de registros.
• Unidad aritmética lógica
Esta parte de la arquitectura está involucrada únicamente en la realización de operaciones aritméticas y lógicas sobre los
datos.
Estarán disponibles los cálculos habituales de sumar, multiplicar, dividir y restar, pero también estarán disponibles las
comparaciones de datos como ‘mayor que’, ‘menor que’, ‘igual a’.
• Unidad de control
Controla el funcionamiento de la ALU, la memoria y los dispositivos de entrada/salida de la computadora, indicándoles
cómo actuar ante las instrucciones del programa que acaba de leer desde la memoria.
La unidad de control gestionará el proceso de mover los datos y programas desde y hacia la memoria. También se ocupará
de ejecutar las instrucciones del programa, una a la vez o secuencialmente. Esto incluye la idea de un registro para contener
los valores intermedios.
• Registros
Son áreas de almacenamiento de alta velocidad en la CPU. Todos los datos deben almacenarse en un registro antes de
poder procesarse.
El registro de direcciones de memoria contiene la ubicación de memoria de los datos a los que se debe acceder. El registro
de datos de memoria contiene los datos que se transfieren a la memoria.

6
1. RELACIÓN HARDWARE Y SOFTWARE
Estructura de un ordenador
– Memoria
La computadora tendrá una memoria que puede contener datos, así como el programa que procesa esos datos. En las
computadoras modernas esta memoria es la RAM o memoria principal. Esta memoria es rápida y accesible directamente
por la CPU.
La RAM se divide en celdas. Cada celda consta de una dirección y su contenido. La dirección identificará de forma única
cada ubicación en la memoria.

– Entrada-salida
Esta arquitectura permite la comunicación del ordenador con el exterior gracias a la conexión de los periféricos
(dispositivos de entrada-salida) con esta unidad.

– Bus
Los diversos elementos del hardware de un ordenador se conectan por medio de unas líneas llamadas buses por las que
circulan los bits.
La información debe fluir entre las diferentes partes de la computadora. En una computadora con la arquitectura von
Neumann, la información se transmite de un dispositivo a otro a lo largo de un bus, conectando todas las unidades de la
CPU a la memoria principal.

El bus de direcciones transporta las direcciones de los datos, pero no los datos, entre el procesador y la memoria.
El bus de datos transporta los datos entre el procesador, la memoria y los dispositivos de entrada-salida.
El bus de control emite señales de arbitraje entre los dispositivos.

Video: El procesador
7
1. RELACIÓN HARDWARE Y SOFTWARE
Autoevaluación
¿A qué hace referencia el software? El software hace referencia al conjunto de instrucciones que debe ejecutar el ordenador para
resolver un problema, a partir de una serie de datos de entrada, con el fin de obtener determinados resultados.

¿Dónde deben residir los datos y las instrucciones para que el software los pueda ejecutar? Tanto esas instrucciones como los
datos sobre los que estas operan deben residir en la memoria principal o memoria RAM.

¿Quién controla todas las instrucciones? Estas instrucciones son tomadas por la unidad de control.

¿De dónde recibe las órdenes la ALU? La UC envía las órdenes necesarias con el fin de que la ALU realice las operaciones para dar
respuesta a esas instrucciones.

¿De dónde se obtienen los datos que maneja el ordenador? Los datos de entrada para resolver el problema pueden ser
suministrados al ordenador por medio de una serie de periféricos de entrada, como el teclado y el ratón, y los resultados se pueden
mostrar mediante los periféricos de salida, como la pantalla y la impresora.

¿Dónde se almacena finalmente la información? La información que se requiere guardar de manera permanente se almacena en
periféricos de entrada a la salida como el disco duro o una memoria flash.

Video: Simulación de la arquitectura de Von Newmann

8
1. RELACIÓN HARDWARE Y SOFTWARE
Clasificación del hardware
El hardware se clasifica en 6 categorías, según el desempeño de sus componentes.

Hardware de procesamiento

Corresponde a la Unidad Central de Procesamiento o CPU, el centro de operaciones lógicas de la computadora, en donde se
interpretan y ejecutan las tareas necesarias para el funcionamiento del resto de los componentes.

Hardware de almacenamiento

Como indica su nombre, hace referencia a todos los componentes cuya función es resguardar la información para que el usuario
pueda acceder a ella en cualquier momento. El dispositivo principal en este caso es la memoria RAM (Random Access Memory),
pero también está conformada por memorias secundarias, como los discos duros o las memorias SSD o USB.

Hardware gráfico

Está compuesto principalmente por las tarjetas gráficas que poseen memoria y CPU propios, y son las encargadas de interpretar
y ejecutar las señales dedicadas a la construcción de imágenes. El hecho de que esta función no recaiga en el CPU tiene que ver
con la eficiencia, ya que al liberar de esas funciones a la memoria principal, el sistema funciona de manera óptima.

9
1. RELACIÓN HARDWARE Y SOFTWARE
Dispositivos periféricos
Es todo el hardware que permite que la información pueda acceder al
interior del ordenador (input), o salir al exterior (output). Se subdividen en
tres categorías.

• Periféricos de entrada: son los que permiten el acceso de datos a la


computadora. Por ejemplo, el teclado, el micrófono, la cámara web, etc.

• Periféricos de salida: a través de ellos, el usuario puede extraer la


información, como los escáneres, las impresoras, las consolas y los
parlantes o altavoces.

• Periféricos de entrada y salida o mixtos: son capaces de introducir o


extraer la información. Las pantallas táctiles entran en esta categoría, al
igual que los lectores de DVD o BlueRay y las memorias flash. Estas
últimas, son esencialmente memorias secundarias, pero se usan como
periféricos mixtos.

Fuente: https://www.pinterest.es/pin/294000681938422890/

10
1. RELACIÓN HARDWARE Y SOFTWARE

¿Qué relación hay entre el hardware y el software?


Esta relación software-hardware la podemos poner de manifiesto desde dos puntos de vista:

Desde el punto de vista del sistema operativo

El sistema operativo es el encargado de coordinar al hardware durante el funcionamiento del ordenador, actuando como
intermediario entre éste y las aplicaciones que están corriendo en un momento dado. Todas las aplicaciones necesitan recursos
hardware durante su ejecución (tiempo de CPU, espacio en memoria RAM, tratamiento de interrupciones, gestión de los dispositivos
de Entrada/Salida, etc.). Será siempre el sistema operativo el encargado de controlar todos estos aspectos de manera "oculta" para
las aplicaciones (y para el usuario).

Desde el punto de vista de las aplicaciones

Ya hemos dicho que una aplicación no es otra cosa que un conjunto de programas, y que éstos están escritos en algún lenguaje de
programación que el hardware del equipo debe interpretar y ejecutar. Hay multitud de lenguajes de programación diferentes (como
ya veremos en su momento). Sin embargo, todos tienen algo en común: estar escritos con sentencias de un idioma que el ser
humano puede aprender y usar fácilmente. Por otra parte, el hardware de un ordenador sólo es capaz de interpretar señales
eléctricas (ausencias o presencias de tensión) que en informática, se traducen en secuencias de 0 y 1 (código binario).

11
1. RELACIÓN HARDWARE Y SOFTWARE
¿Qué es el código binario?
Como ya se ha comentado, el hardware de un
ordenador sólo es capaz de interpretar señales
eléctricas (ausencias o presencias de tensión) que, en
informática, se traducen en secuencias de 0 y 1.

Es decir, el código binario es un sistema de


numeración que posee únicamente los números cero
(0) y uno (1), también conocidos cómo Bits.

Con tan solo estos dos números se pueden


representar infinidad de códigos: otros números,
palabras, archivos… En este sistema numérico
el 0 significa cerrado o sin impulso eléctrico y
el 1 abierto o con impulso eléctrico.

Vamos a ver este video explicativo:

https://www.youtube.com/watch?v=VW-HXvlVOII

12
1. RELACIÓN HARDWARE Y SOFTWARE
¿ Te atreverías a escribir tu nombre?

13
1. RELACIÓN HARDWARE Y SOFTWARE
Actividad propuesta (1.1)
El hardware y el software de un ordenador

Relaciona los elementos de hardware o software de un ordenador que aparecen en la columna de la izquierda con el tipo de
hardware o de software correspondiente de la columna de la derecha.

Procesador de textos Periférico de entrada

Impresora Periférico de salida

Ratón Periférico de
entrada/salida
Compilador
Software de sistemas
Sistema
operativo Software de
programación
Memoria flash
Software de aplicación
14
1. RELACIÓN HARDWARE Y SOFTWARE
Para saber más
Podéis profundizar más sobre los componentes de hardware:

https://www.youtube.com/watch?v=f_aTdPkrFGo

¿Cuáles son las partes de una computadora?/

Unidades funcionales de un ordenador/

Diferencia entre un sistema de 32-BITS y uno de 64-BITS

Megabyte, Gigabyte, Terabyte, Petabyte: cuáles son las


diferencias

https://hugepdf.com/download/esquema-funcional-de-un-
ordenador_pdf

Reflexionar

¿Cómo será capaz el ordenador de "entender" algo escrito en


un lenguaje que no es el suyo?

15
2. SOFTWARE Y TIPOS DE SOFTWARE
El ordenador se compone de dos partes: hardware y software.
El Hardware es la parte física de un ordenador o sistema informático. Está formado por los componentes eléctricos, electrónicos,
electromecánicos y mecánicos, tales como circuitos de cables y luz, placas, memorias, discos duros, dispositivos periféricos y
cualquier otro material en estado físico que sea necesario para hacer que el equipo funcione.

El software es el conjunto de programas informáticos que actúan sobre el hardware para ejecutar lo que el usuario desee.

Fuente: https://1.bp.blogspot.com/-i32cVT-XnIc/VYXoL7Zqi7I/AAAAAAAAADc/YUyts3kkHhs/s1600/harsof.png
16
2. SOFTWARE Y TIPOS DE SOFTWARE
Tipos de software
Según su función se distinguen varios tipos de software:

De sistema (sistema operativo, drivers): El sistema


operativo es el software base que ha de estar instalado y
configurado en nuestro ordenador para que las
aplicaciones puedan ejecutarse y funcionar. Son ejemplos
de sistemas operativos: Windows, Linux, Mac OS X ...
Drivers o controladores es el software que controla los
dispositivos de un PC.

De aplicación (Suite ofimática, Navegador, Edición de


imagen, ...). Las aplicaciones informáticas son un conjunto
de programas que tienen una finalidad más o menos
concreta. Son ejemplos de aplicaciones: un procesador de
textos, una hoja de cálculo, el software para reproducir
música, un videojuego, etc.

De desarrollo o programación (Editores, compiladores,


interpretes, ...) El software de programación es el
conjunto de herramientas que nos permiten desarrollar
programas informáticos. Fuente: TemarioDAW/ED1.pdf at master · statickidz/TemarioDAW · GitHub

17
2. SOFTWARE Y TIPOS DE SOFTWARE

Tipos de software
En función del alojamiento, los podemos clasificar:

On premise: Es el software de la empresa, almacenado en su propia estructura interna a nivel local, lo que implica la creación de
una red de servidores que requieren mantenimiento, pero existe mayor seguridad física. Pero, éste modelo de almacenamiento
está dando paso al software basado en el cloud o en la nube: Software almacenado en un repositorio externos a la empresa, al
que se accede en todo momento de forma remota y desde cualquier parte del mundo. Lo que implica, menor inversión en
infraestructuras (servidores), y pago a proveedores de servicios en la nube.

Fuente: https://mike.miracomosehace.com/uploads/images/content/image_1590770897.jpg

18
Actividad para saber más
¿Qué ordenador te comprarías?

Vamos a buscar en internet, cada uno de los componentes de un ordenador, y configura el tuyo propio.
Justifica el por qué de cada componente.

Fuente: https://www.mediamarkt.es/es/product/_porttil-gaming-msi-9s7-17k424-053-173--in-94417723.html

19
2. SOFTWARE Y TIPOS DE SOFTWARE
Para saber más

En el siguiente enlace encontrarás más


información de los tipos de software
existente, así como ejemplos de cada uno
que te ayudarán a profundizar sobre el
tema.

http://www.tiposdesoftware.com/

Reflexionar

¿Cuáles son los sistemas


operativos más utilizados en los
ordenadores y en los móviles?

20
3. LENGUAJES DE PROGRAMACIÓN
¿Qué es un lenguaje de programación?

En informática, se conoce como lenguaje de programación a un programa destinado a la construcción de programas informáticos.
Los lenguajes de programación son los que nos permiten comunicarnos con el hardware del ordenador.

👌 ¿QUÉ es un LENGUAJE de PROGRAMACIÓN? [Diccionario del PROGRAMADOR] - YouTube

21
3. LENGUAJES DE PROGRAMACIÓN

Tipos de lenguajes de programación


El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de instrucciones que llegan al procesador
consistentes en una serie de datos binarios (ceros y unos).

El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes
intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que
el procesador pueda interpretarlo.

El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero solo los desarrolladores
pueden comprenderlo. A pesar de su parecido con lenguaje máquina, depende estrictamente del tipo de procesador utilizado (cada
tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser "portado"
a otro tipo de equipo. El término portabilidad describe la capacidad de usar un programa de software en diferentes tipos de
equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será
necesario volver a escribir todo el programa!

Por lo tanto, un lenguaje de programación tiene varias ventajas: es mucho más fácil de comprender para el humano que un
lenguaje máquina, y permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de
equipos.

22
3. LENGUAJES DE PROGRAMACIÓN

Las instrucciones en lenguaje ensamblador están escritas empleando códigos


mnemotécnicos (add indica sumar; mov, mover; etc.) y cada instrucción corresponde a una
instrucción en lenguaje máquina. Para pasar del lenguaje ensamblador al lenguaje máquina
se usa un traductor llamado ensamblador.
3. LENGUAJES DE PROGRAMACIÓN
Tipos de lenguajes de programación
Características de los Lenguajes de Programación

Lenguaje máquina:
Sus instrucciones son combinaciones de unos y ceros.
Es el único lenguaje que entiende directamente el ordenador. (No necesita traducción).
Fue el primer lenguaje utilizado.
Es único para cada procesador (no es portable de un equipo a otro).
Hoy día nadie programa en este lenguaje.

Lenguaje ensamblador:
Sustituyó al lenguaje máquina para facilitar la labor de programación.
En lugar de unos y ceros se programa usando mnemotécnicos (instrucciones complejas).
Necesita traducción al lenguaje máquina para poder ejecutarse.
Sus instrucciones son sentencias que hacen referencia a la ubicación física de los archivos en el equipo.
Es difícil de utilizar.

Lenguaje de alto nivel basados en código:


Sustituyeron al lenguaje ensamblador para facilitar más la labor de programación.
En lugar de mnemotécnicos, se utilizan sentencias y órdenes derivadas del idioma inglés. (Necesita traducción al lenguaje máquina).
Son más cercanos al razonamiento humano.
Son utilizados hoy día.

24
3. LENGUAJES DE PROGRAMACIÓN
Clasificación de lenguajes de programación
• Según lo cerca que esté del lenguaje humano

o Lenguajes de Programación De alto nivel: por su Definición de lenguaje de programación


esencia, están más próximos al razonamiento
humano.
o Lenguajes de Programación De bajo nivel: están
más próximos al funcionamiento interno de la
computadora:
▪ Lenguaje Ensamblador.
▪ Lenguaje Máquina.
Elementos básicos

• Según la técnica de programación utilizada Identificadores Constantes Operadores Instrucciones Comentarios

o Lenguajes de Programación Estructurados: Usan la


técnica de programación estructurada. Ejemplos:
Pascal, C, etc.
o Lenguajes de Programación Orientados a Objetos Tipos de lenguajes según su cercanía al lenguaje natural
(POO): Usan la técnica de programación orientada a
objetos. Ejemplos: C++, Java, Ada, Delphi, etc. Lenguajes de bajo nivel
o máquina
Lenguajes intermedios
o ensambladores
Lenguajes de alto nivel
o evolucionados
o Lenguajes de Programación Visuales o gráficos:
Basados en las técnicas anteriores, permiten
programar gráficamente, siendo el código
correspondiente generado de forma automática.
Ejemplos: Scratch, Visual Basic.Net, Borland Delphi,
25 etc.
3. LENGUAJES DE PROGRAMACIÓN
Clasificación de lenguajes de programación de alto nivel más destacados
Java: se trata de un lenguaje de programación creado en 1995 por Sun Microsystems. Muchas webs y aplicaciones no
funcionarán sin tener instalado el Java. Java se utiliza para crear elementos interactivos en páginas web. Funciona en compañía
de otros códigos de programación como el HTML y el CSS. Si te interesa el mundo de la informática, la clasificación de Java es
sin duda algo que debes controlar.
Go: es un lenguaje de programación desarrollado por Google. Está pensado para implementar tareas con poca interacción con
los usuarios.
Ruby on Rails: este lenguaje de programación es de código abierto que se ha utilizado para la creación de grandes aplicaciones
como Twitter, Basecamp o Hulu, entre otras.
Python: se utiliza principalmente para el desarrollo de Inteligencia Artificial y aplicaciones centradas en el análisis masivo de
datos. Python es un lenguaje multiplataforma, muy enfocado en la legibilidad de su código.
C: es el segundo lenguaje de programación más usado en todo el mundo. Es muy útil ya que permite su utilización en la
mayoría de sistemas operativos.
C++: este lenguaje de programación permite programar tanto a nivel alto como a nivel bajo. Perfecto al adaptarse a diferentes
proyectos.
C#: también se conoce como C Sharp y se trata de una evolución del código C y C++. Se utiliza principalmente para la
programación de objetos.
SQL: permite interactuar con una base de datos.
PHP: se trata de un lenguaje de programación interpretado utilizado para la generación de páginas web de forma dinámica.
Para funcionar se incrusta dentro del código HTML.
Swift: dentro de la clasificación de los lenguajes de programación, Swift está enfocado al desarrollo para aplicaciones iOs y
MacOS. Es decir, para el universo Apple.

26
3. LENGUAJES DE PROGRAMACIÓN

¿Qué es la programación estructurada o procedimental?


La programación estructurada es una técnica que utiliza la metodología de desarrollo de programas, esta orientada a mejorar la
calidad, claridad y tiempo de desarrollo de los programas, y que sean mucho más fáciles de comprender.

La característica principal de esta técnica de programación es que está compuesto por segmentos de códigos, los cuales
pueden estar constituidos desde una instrucción hasta varias páginas de estas, y cada uno de estos segmentos debe
tener únicamente un punto entrada y un punto de salida de datos; esto hará que puedan ser leídos secuencialmente de inicio
a fin, sin que se pierda la continuidad.

A finales de los años 1970, Böhm-Jacopini demuestra que utilizando el teorema de la programación estructurada se puede
presentar programas más confiables y eficientes, y para ello cada programa puede escribirse usando solamente 3 tipos de
estructuras de control:

Secuencial: Es el orden en que las instrucciones deben ser ejecutadas, consta de dos o más operaciones.
Alternativa (Instrucción Condicional o Selección): Es la posibilidad de poder elegir entre dos instrucciones (o más) y la decisión
se tomará en base a una evaluación, a la cual se le llama condición. (if cond then ;else)
Repetitiva (Iteración): Es la repetición de una instrucción o grupo de instrucciones mientras se cumple una condición. (while
cond)

27
3. LENGUAJES DE PROGRAMACIÓN

¿Qué es la programación estructurada o procedimental?


Además, en la metodología estructurada, para la que se emplean los lenguajes estructurados, las aplicaciones informáticas
integran diversos componentes de software llamados módulos.

Un módulo realiza determinadas tareas de procesamiento, para lo que requiere utilizar determinados datos. Por lo tanto, una
aplicación informática se compone de diversos módulos que realizan pequeñas tareas.

Los módulos se combinan entre sí, realizándose llamadas de unos a otros. En estas llamadas, los módulos se pasan datos
(llamados parámetros) y a veces devuelven resultados.

Los módulos pueden ser de 2 tipos: procedimientos o funciones. La diferencia entre estos es que las funciones devuelven
algún dato como resultado de su ejecución, mientras que los procedimientos no lo hace.

En algunos lenguajes de programación, cómo C, no se realiza de manera explícita la distinción entre procedimiento y función,
sino que se llama función a cualquier módulo. En estos lenguajes, una función puede devolver un resultado o no devolver nada,
de forma que se puede considerar que, conceptualmente, las funciones que no devuelven ningún resultado son en realidad
procedimientos.

28
3. LENGUAJES DE PROGRAMACIÓN

Ventajas de la Programación Estructurada


• Como la programación estructurada está compuesta por segmentos bien definidos, los programas son más simples, rápidos y
fáciles de entender, pueden ser leídos de forma secuencial y se pueden hacer las correcciones o modificaciones después de
haber concluido.

• La estructura de los programas es clara debido a que las instrucciones están más relacionadas entre sí.

• Los códigos son reutilizables para futuras aplicaciones.

• Se pueden hacer las modificaciones o correcciones de los programas de manera más sencilla.

• Reducción del esfuerzo en las pruebas y depuración de errores; ya que se puede encontrar y leer las secuencias más
fácilmente y así se reducen también los costos durante el mantenimiento.

• Permite escribir los códigos más fácil y rápidamente incrementando así la eficiencia de los programadores.

29
3. LENGUAJES DE PROGRAMACIÓN
Programación estructurada: Tipos de módulos

• Los parámetros por valor → funciones

30
3. LENGUAJES DE PROGRAMACIÓN
Programación estructurada: Tipos de módulos

• Los parámetros por referencia → procedimientos

31
3. LENGUAJES DE PROGRAMACIÓN
¿Qué es la programación orientada a objetos (POO)?

La Programación Orientada a Objetos (POO también del inglés OOP = Object Oriented Programming) es un paradigma (palabra
que proviene del griego del griego parádeigma.= Modelo, tipo, Ejemplo) de programación que define los programas en
términos de “clases de objetos”. VIDEO https://youtu.be/r0KjrzbSRec

¿Qué es un Objeto?
Cualquier cosa es un objeto, si miramos a nuestro alrededor podemos encontrar muchos objetos. La computadora, el carro, la
casa todo es un objeto. Cada objeto tiene dos cosas, sus propiedades y sus comportamientos. Por ejemplo, un coche tiene
propiedades (color, modelo, tamaño) y comportamientos (se mueve hacia adelante y hacia atrás, toca una bocina). De esta
manera podemos relacionar todo con la POO.

En el mundo real cada objeto tiene diferentes comportamientos y propiedades. Por ejemplo, podemos tener varios objetos
televisores, pero cada uno tendrá un tamaño, marca y funciones diferentes, aunque al final todos se encienden y apagan. Esto
quiere decir a veces los objetos comparten funciones y a eso se le llama herencia, lo cual veremos mas adelante con detalle.

Los objetos en programación son muy parecidos a los de la vida real. Todo objeto en programación puede tener propiedades
(atributos) y comportamientos (que en el caso de la programación estructurada serían las funciones y procedimientos, y en POO
se le llama métodos).

32
3. LENGUAJES DE PROGRAMACIÓN
Actividad propuesta (1.2)
Lenguajes de programación estructurados y orientados a objetos

Cómo sabes, se puede realizar una clasificación de los lenguajes de programación de alto nivel en función de si permite o no
realizar programación orientada a objetos. Así, los que no la permiten se llaman lenguajes estructurados, y los que sí, lenguajes
orientados.

Investiga si los siguientes lenguajes de programación son estructurados u orientados a objetos: Python, Ruby, PHP, Pascal, Swift,
Smalltalk, Scala, Unity, C++, Java, JavaScript, C#, .Net. Escribe sobre su origen, y su utilidad en el mundo de las tecnologías de la
información. Y si conoces algún otro que puedas compartir, será agradable saber de él.

Para el caso de los lenguajes estructurados, investiga cuáles de ellos han incorporado la programación orientada a objetos dando
lugar a un lenguaje orientado a objetos, tal y como ocurrió con el lenguaje orientado a objetos C++, que surgió como extensión
del lenguaje estructurado C.

Actividad CANVAS: Lenguajes de programación estructurados y orientados a objetos

Redactar un documento PDF, con las siguientes normas: “Normas para la realización de entrega de actividades en formato PDF”.
Ver documento del aula virtual.

33
3. LENGUAJES DE PROGRAMACIÓN
Evolución de lenguajes de programación

Fuente Evolución De Los Lenguajes De Programacion Timeline | Preceden


Lenguajes de programación más usados en el 2022

Mejores lenguajes de programación para este año 2022 - Profesional Online


34
¿Quieres saber más?

Evolución de lenguajes de programación

Fuente Evolución De Los Lenguajes De Programacion Timeline | Preceden

Lenguajes de programación más usados en el 2022


Mejores lenguajes de programación para este año 2022 -
Profesional Online

35
4. MAQUINAS VIRTUALES

¿Qué es una máquina virtual?

Una máquina virtual es una aplicación que ejecuta los programas como si fuese una máquina real, aunque no lo sea. Existen dos
tipos de maquinas virtuales:

Máquina virtual de sistema. Máquina virtual de proceso.


Aplicaciones: VMware Workstation, Máquina virtual de Java (JVM).
Virtual Box.

36
4. MAQUINAS VIRTUALES

37
4. MAQUINAS VIRTUALES
Máquinas virtuales de sistema

Uso del programa VMware Workstation para poder utilizar, dentro de un


equipo, otro equipo que tiene incorporado su propio sistema operativo y
disco duro, entre otras tecnologías.
38
4. MAQUINAS VIRTUALES

39
4. MAQUINAS VIRTUALES

Máquinas virtuales de proceso

40
4. MAQUINAS VIRTUALES

Máquinas virtuales de proceso

Proceso de obtención del código ejecutable de un programa escrito en Java: se parte


del código fuente, que se plasma en un archivo con extensión .java por cada clase; con
el compilador javac se transforma en un archivo con extensión .class escrito en código
bytecode; finalmente, la JVM transforma este archivo en código ejecutable.

41
5. INGENIERÍA DEL SOFTWARE
¿Qué es la ingeniería del software?
Disciplina que estudia los principios y metodologías para el desarrollo y mantenimiento de sistemas software.

La ingeniería de software es un campo de estudio que abarca las estructuras, instrumentos y los métodos utilizados en el
desarrollo de programas informáticos.

Etapas de la Ingeniería de Software

Dentro de la ingeniería de software entendemos que también se encuentra todo el proceso de elaboración del software, que se
denomina ciclo de vida (SDLC). Está formado por cuatro etapas:

• Concepción. En esta primera fase se desarrolla el modelo de negocio. Es decir, conocemos las necesidades que debe de
tener un software y empezamos a buscar las herramientas para cubrirlas.
• Elaboración. Se detalla las características de la estructura del software.
• Construcción. Tal y como su nombre indica en este paso empezamos a elaborar de forma tangible todo aquello que, de
momento, solo hemos plasmado en forma de ideas.
• Transición. Es el momento de la implementación y el desarrollo para los clientes o usuarios. Deben tener tiempo para
familiarizarse con el nuevo software.
• Una vez se realiza todo este ciclo, entramos en otra fase conocida como mantenimiento. Es una de las etapas más
importantes ya que se solucionan los problemas o errores que puedan surgir durante su implementación y también su
posterior puesta en marcha. Además, se incorporan actualizaciones teniendo en cuenta los requisitos del cliente con el
objetivo de que puedan cumplir la mayor cantidad de tareas.

42
5. INGENIERÍA DEL SOFTWARE

43 Fuente: https://coggle-downloads-production.s3.eu-west-1.amazonaws.com/
6. CICLO DE VIDA DEL SOFTWARE
Desarrollo de software
Entendemos por Desarrollo de Software todo el proceso que ocurre desde que se concibe una idea hasta que un programa está
implementado en el ordenador y funcionando. Según Piattini et al (2007) el ciclo de vida del software es la descripción de las
distintas formas de desarrollo de un proyecto o aplicación informática, es decir, la orientación que debe seguirse para obtener
coma a partir de los requerimientos del cliente, sistemas que puedan ser utilizados por dicho cliente.

Un ciclo de vida determina el orden en el que se deben llevar a cabo las tareas en el proceso de desarrollo de software y los
criterios que se deben cumplir para realizar el paso de una tarea a la siguiente. Estos criterios consisten en la obtención de ciertos
1.
productos intermedios y, también, en indicar las características que deben satisfacer los productos para la fase posterior. Por
ejemplo, como resultado de la tarea de análisis, se debe obtener una ERS y se puede establecer qué condiciones debe cumplir
ésta para poder avanzar a la fase de diseño.

De todo ello se deduce que la selección del ciclo de vida para un proyecto es una tarea muy relevante que puede influir de
manera decisiva en su éxito o fracaso.

El ciclo de vida que surgió en primer lugar es el llamado ciclo de vida clásico o modelo en cascada. Posteriormente, se
desarrollaron otros modelos: de proceso incremental, de proceso evolutivo y de desarrollo ágil.

44
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo del software / ciclo de vida (SDLC)

1.

45
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS

• Se determina y define claramente las necesidades del cliente y se especifica los requisitos que debe cumplir el software a
desarrollar.

• El análisis de requerimientos consiste en aplicar una serie de técnicas para desglosar y analizar los requisitos y sus partes,
algunas de estas técnicas son: Modelado de procesos, modelado de dominio, casos de uso, inspecciones, listas de
chequeo y prototipos.

• La especificación de requisitos debe:

o Ser completa y sin omisiones.


o Ser concisa y sin trivialidades.
o Evitar ambigüedades. Utilizar lenguaje formal.
o Evitar detalles de diseño o implementación.
o Ser entendible por el cliente.
o Separar requisitos funcionales y no funcionales.
o Dividir y jerarquizar el modelo.
o Fijar criterios de validación.

46
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS

El objetivo de esta tarea es analizar las necesidades de los usuarios potenciales del software para determinar qué debe hacer la
aplicación y, de acuerdo con ello, escribir una especificación precisa de dicho sistema.

Durante esta fase se pretende responder a las siguientes preguntas: qué información se va a procesar, qué función y rendimiento
se desean, qué interfaces deben establecerse, qué restricciones de diseño existen y qué criterios de validación se necesitan para
definir un sistema correcto. Para ello, como es obvio, es necesario realizar una actividad inicial de comunicación con el cliente
que ha encargado el desarrollo de aplicación, y una vez obtenida la información necesaria, se podrá modelar el sistema. Dicha
información puede ser obtenida con el cliente a través de entrevistas, a través de un equipo de analistas y usuarios que se
reúnen para trabajar conjuntamente en la determinación de las necesidades de usuarios, y a través del desarrollo de un prototipo
que permita al usuario conocer las características del sistema que desea obtener. Finalmente dicho prototipo puede ser
desechado o reutilizado para convertirlo en producto final.

Como resultado, se obtendrá una especificación de requisitos del sistema, qué consistirá en una argumentación que describe lo
que tiene que hacer el software, pero no cómo.

Es primordial que esta documentación sea entendible por el cliente utilizando un lenguaje formal, concisa, completa y sin
omisiones evitando detalles de diseño e implementación, fácil de validar y de modificar para facilitar todo el trabajo posterior.

47
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS - Requerimientos de software

Los requerimientos de un sistema, los podemos clasificar en requerimientos funcionales y no funcionales. Ambos
requerimientos de software se suelen registrar en la matriz de trazabilidad de requerimientos y en la especificación de
requerimientos de software o Software Requirement Specification (SRS), quien documenta las operaciones y actividades que
el sistema debe poder desempeñar.

48
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS - Requerimientos funcionales

Los requerimientos funcionales de un sistema, son aquellos que describen cualquier actividad que este deba realizar, en otras
palabras, el comportamiento o función particular de un sistema o software cuando se cumplen ciertas condiciones.

Entre los posibles requerimientos funcionales de un sistema, se incluyen:

o Descripciones de los datos a ser ingresados en el sistema.


o Descripciones de las operaciones a ser realizadas por cada pantalla.
o Descripción de los flujos de trabajo realizados por el sistema.
o Descripción de los reportes del sistema y otras salidas.
o Definición de quien puede ingresar datos en el sistema.
o Como el sistema cumplirá los reglamentos y regulaciones de sector o generales que le sean aplicables.

Al igual que otros tipos de requerimientos de software, como por ejemplo los requerimientos no funcionales, los
requerimientos funcionales se pueden clasificar según su finalidad, como por ejemplo requerimientos de negocio,
requerimientos originados en aspectos regulatorios, de seguridad, entre otros.

49
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS - Requerimientos funcionales

Ejemplos de requerimientos funcionales de proceso o área de negocio

• El sistema enviará un correo electrónico cuando se registre alguna de las siguientes transacciones: pedido de venta de
cliente, despacho de mercancía al cliente, emisión de factura a cliente y registro de pago de cliente.
• Se permitirá el registro de pedidos de compra con datos obligatorios incompletos, los cuales podrán completarse
posteriormente modificando el pedido. Antes de poder aprobarse los datos del pedido deben estar completos.
• Al aprobar un pedido, la solicitud pasará al siguiente paso del flujo de trabajo (workflow) de aprobación configurado en el
sistema.
• El sistema también permitirá el registro de facturas manuales no asociadas a pedidos, sin embargo, estas requerirán
autorización por parte del grupo de Gerentes antes de ser contabilizadas.

Ejemplos de requerimientos funcionales de interfaz gráfica

• La solución validara automáticamente el cliente asociado a una orden con el sistema de gestión de contactos.
• El campo de monto acepta únicamente valores numéricos con dos decimales.
• El campo fecha de transacción acepta únicamente fechas anteriores al día de hoy (día actual).
• El campo nombre acepta caracteres alfabéticos únicamente.
• El campo dirección acepta caracteres alfabéticos, numéricos y especiales.
• El campo país consistirá en una lista de preselección. El país asociado a una dirección debe ser previamente registrado en el
sistema.

50
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS - Requerimientos funcionales

Ejemplos de requerimientos de seguridad

• El sistema controlará el acceso y lo permitirá solamente a usuarios autorizados. Los usuarios deben ingresar al sistema con
un nombre de usuario y contraseña.
• El sistema enviará una alerta al administrador del sistema cuando ocurra alguno de los siguientes eventos: Registro de
nueva cuenta, ingreso al sistema por parte del cliente, 2 o más intentos fallidos en el ingreso de la contraseña de usuario y
cambio de contraseña de usuario.

Ejemplos de requerimientos de interfaces externas (Hardware y Software)

• El software podrá ser utilizado en los sistemas operativos Windows, Linux y OSX.
• La aplicación debe poder utilizarse sin necesidad de instalar ningún software adicional además de un navegador web.
• La aplicación debe poder utilizarse con los navegadores web Chrome, Firefox e Internet Explorer.

51
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS - Requerimientos no funcionales

Todos los Servicios de Tecnología de Información (TI) en algún punto de su ciclo de vida, necesitan considerar los
requerimientos no funcionales y las pruebas asociadas a los mismos.

Para algunos proyectos, estos requerimientos implican una cantidad considerable de trabajo y esfuerzos, mientras que para
otros no.

Con frecuencia, los requerimientos no funcionales son ignorados o subestimados en la fase de análisis de requerimientos.
El error o las posibles consecuencias de no definirlos en la fase de diseño, termina identificándose en la fase de implementación
cuando remediarlos implica más trabajo y costo, pudiendo ocasionar que no sean aceptados por los usuarios y clientes.

Los requerimientos no funcionales son los que especifican criterios para evaluar la operación de un servicio de TI,
en contraste con los requerimientos funcionales que especifican los comportamientos específicos.

Como analista de sistemas o Ingeniero de requerimientos, es de extremada utilidad contar con una clasificación de
requerimientos no funcionales para identificar los que te puedes encontrar.

52
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS – Requerimientos no funcionales

Ejemplos de requerimientos no funcionales de producto

Eficiencia

• El sistema debe ser capaz de procesar N transacciones por segundo. Esto se medirá por medio de la herramienta de testing.
• Toda funcionalidad del sistema y transacción de negocio debe responder al usuario en menos de 5 segundos.
• El sistema debe ser capaz de operar adecuadamente con hasta 100.000 usuarios con sesiones concurrentes.
• Los datos modificados en la base de datos deben ser actualizados para todos los usuarios que acceden en menos de 2
segundos.

Seguridad lógica y de datos

• Los permisos de acceso al sistema podrán ser cambiados solamente por el administrador de acceso a datos.
• Todos los sistemas deben respaldarse cada 24 horas. Los respaldos deben ser almacenados en una localidad segura ubicada
en un edificio distinto al que reside el sistema.
• Todas las comunicaciones externas entre servidores de datos, aplicación y cliente del sistema deben estar encriptadas
utilizando el algoritmo RSA.
• Si se identifican ataques de seguridad o brecha del sistema, el mismo no continuará operando hasta ser desbloqueado por
un administrador de seguridad.

53
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
ANÁLISIS – Requerimientos no funcionales

Ejemplos de requerimientos no funcionales de producto

Seguridad industrial

• El sistema no continuará operando si la temperatura externa es menor a 4 grados Celsius.


• El sistema no continuará operando en caso de fuego. (Ej. Un ascensor).

Usabilidad

• El tiempo de aprendizaje del sistema por un usuario deberá ser menor a 4 horas.
• La tasa de errores cometidos por el usuario deberá ser menor del 1% de las transacciones totales ejecutadas en el sistema.
• El sistema debe contar con manuales de usuario estructurados adecuadamente.
• El sistema debe proporcionar mensajes de error que sean informativos y orientados a usuario final.
• El sistema debe contar con un módulo de ayuda en línea.
• La aplicación web debe poseer un diseño “Responsive” a fin de garantizar la adecuada visualización en múltiples
computadores personales, dispositivos tableta y teléfonos inteligentes.
• El sistema debe poseer interfaces gráficas bien formadas.

54
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
DISEÑO

Si bien el objetivo de la fase de análisis es


determinar qué debe hacer el sistema, una vez se
sabe esto, es preciso establecer cómo se va a
resolver el problema planteado.

Durante esta fase, se traducen los requisitos o


resultados de la fase de análisis en componentes
de software y se especifica la interrelación y
funcionalidad de los elementos componentes
(tablas de un base de datos, programas con
procedimientos o funciones, clases con atributos y
métodos, interfaces de usuario, etc. Se trata de un
refinamiento de la fase anterior.

Por ejemplo, en esta fase, una de las decisiones


que habrá que tomar es decidir qué sistema gestor
de base de datos (SGBD) se va a emplear para
gestionar la información que debe ser usada o
generada por la aplicación: Oracle, My SQL, SQL
Server, etc.

55
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software

DISEÑO

56
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
Programación

Consiste en traducir los resultados de fase de diseño en una forma legible sobre la
máquina, es decir, se escribe el código fuente de cada componente del software
empleando un determinado lenguaje de programación. El resultado de esta etapa
es el código ejecutable.

Las características deseables de todo código son:

• Modularidad: que esté dividido en trozos más pequeños.


• Corrección: que haga lo que se le pide realmente.
• Fácil de leer: para facilitar su desarrollo y mantenimiento futuro.
• Eficiencia: que haga un buen uso de los recursos.
• Portabilidad: que se pueda implementar en cualquier equipo.

Durante esta fase, el código pasa por diferentes estados:

• Código fuente
• Código objeto
• Código ejecutable
Fuente https://www.monografias.com/trabajos104/fundamentos-programacion-ii/img23.png

57
6. CICLO DE VIDA DEL SOFTWARE
Tipos de código
Los códigos son la esencia del lenguaje que manejan las computadoras. Los diversos lenguajes informáticos están expresados con
base en un código. Comprender un lenguaje de este tipo es labor de programadores e implica un nivel de abstracción importante.
El código php, el ASCII y el html son ejemplos de códigos informáticos.

Códigos fuente, objeto y ejecutable

Código fuente: es el escrito por los programadores en algún editor de texto. Se escribe usando algún lenguaje de programación de
alto nivel, entendibles por el programador, y contiene el conjunto de instrucciones necesarias. Suele estar almacenado en un
fichero del tipo texto como los que se pueden abrir por ejemplo, con el bloc de notas o Wordpad en los entornos Windows.

El código fuente estará escrito, en un editor de texto, en un lenguaje de programación de alto nivel y contiene el conjunto de
instrucciones necesarias. Dicho lenguaje, debe ser elegido por el programador, como pueden ser: Basic, C, C++, C#, Java, Perl,
Python, PHP.

Código objeto: es el código binario o máquina resultado de compilar el código fuente. La compilación es la traducción de una sola
vez del programa, y se realiza utilizando un compilador. La interpretación es la traducción y ejecución simultánea del programa
línea a línea.

58
6. CICLO DE VIDA DEL SOFTWARE
Tipos de código
El código objeto no es directamente inteligible por el ser humano, pero tampoco por la computadora. Es un código intermedio
entre el código fuente y el ejecutable y sólo existe si el programa se compila, ya que si se interpreta (traducción línea a línea del
código) se traduce y se ejecuta en un solo paso.

Los programas interpretados no producen código objeto. El paso de fuente a ejecutable es directo.

El código objeto en Java se denomina ByteCode.

Código ejecutable: Reúne un conjunto de instrucciones compiladas y enlazadas (código binario), listas para ser ejecutadas por el
ordenador. También es conocido como código máquina y ya sí es directamente inteligible por la computadora.

El sistema operativo será el encargado de cargar el código ejecutable en memoria RAM y proceder a ejecutarlo. Por ejemplo, en
Windows los programas se ejecutan mediante el archivo .exe. o archivo.cmd. Si es un libro Kindle, la extensión que ejecuta es el
libro.epub.

59
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
PRUEBAS

Las pruebas son la forma en que se puede estar seguro acerca de la


funcionalidad, el rendimiento y la experiencia del usuario.

El objetivo de las pruebas es doble: verificar y validar el software.


en otras palabras:

• Por medio de la verificación, se determina si el software se ha


construido correctamente, es decir, si las tareas que realiza las
lleva a cabo de manera adecuada.

• La validación consiste en comprobar si el software es realmente


lo que desea el usuario, es decir, si el sistema cubre las
necesidades del cliente.

El principal objetivo de las pruebas debe ser conseguir que el


programa funcione incorrectamente y que se descubran defectos.
Deberemos someter al programa al máximo número de situaciones
diferentes.

60
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software

Tipos de pruebas de software

Las pruebas de caja blanca o pruebas estructurales: se examinan los detalles de cada módulo, para lo que se debe disponer del
código fuente. Así, se prueban los diferentes caminos a través de este código, como bucles, variables etc.

Las pruebas de caja negra o pruebas funcionales: el software se considera como una caja negra que recibe una serie de entradas
y proporciona una serie de salidas. El objetivo es validar los requisitos funcionales.

Pruebas no funcionales: Verifican los requisitos basados en la operativa del software, y no en su funcionalidad. El objetivo es
validar los requisitos no funcionales.

61
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software
EXPLOTACIÓN
En esta etapa se lleva a cabo la instalación y puesta en marcha del software en el entorno de trabajo del cliente.
TRANSICIÓN
Durante este fase, puede que sea necesario realizar pequeños cambios en la aplicación, y para ello hay que rehacer parte del
trabajo realizado en las fases previas.
MANTENIMIENTO
El software sufrirá cambios después de que se entregue el cliente por diversos motivos. La tarea de mantenimiento consiste en
realizar cambios sobre el software, para lo que se aplicará al programa existente, cada una de las actividades precedentes del
ciclo de vida.
➢ Tipos de mantenimiento:
o Correctivo: se corrigen defectos.

o Perfectivo: se mejora la funcionalidad.

o Evolutivo: se añade funcionalidades nuevas.

o Adaptativo: se adapta a nuevos entornos.

62
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software - Documentación
GUÍA TÉCNICA GUÍA DE USUARIO GUÍA DE INSTALACIÓN

Descripción de la
funcionalidad de la
aplicación.

Forma de comenzar a
El diseño de la Toda la información necesaria para:
ejecutar la aplicación.
aplicación.
• Puesta en marcha
Ejemplos de uso del
Documentación La codificación de los
programa.
programas. • Explotación

Requerimientos software
Las pruebas realizadas. • Seguridad del sistema
de la aplicación.

Solución de los posibles


problemas que se
pueden presentar.

Al personal técnico en A los usuarios que van a Al personal informático responsable de la


informática usar la aplicación instalación, en colaboración con los usuarios
Destinatario
(programadores). (clientes). que van a usar la aplicación (clientes).

Facilitar un correcto
Dar a los usuarios finales
desarrollo, realizar Dar toda la información necesaria para
toda la información
correcciones en los garantizar que la implantación de la aplicación
necesaria para utilizar la
Objetivo programas y permitir un se realice de forma segura, confiable y precisa.
aplicación.
mantenimiento futuro.

63
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo de software

RESULTADO DE DOCUMENTOS DE CADA FASE

• Ingeniería de sistemas: Especificación del sistema

• ANÁLISIS: Especificación de requisitos del software

• DISEÑO arquitectónico: Documento de arquitectura del software

• DISEÑO detallado: Especificación de módulos y funciones

• CODIFICACIÓN: Código fuente

• PRUEBAS de unidades: Módulos utilizables

• PRUEBAS de integración: Sistema utilizable

• PRUEBAS del sistema: Sistema aceptado

• Documentación: Documentación técnica, de usuario y de instalación

• MANTENIMIENTO: Informes de errores y control de cambios

64
6. CICLO DE VIDA DEL SOFTWARE
Desarrollo de software
¿Quién elabora cada parte del ciclo de vida de desarrollo del software?

1.

Fuente https://medium.com/@stephanylantigua/f%C3%A1brica-de-software-intec-9c14058738af

65
6. CICLO DE VIDA DEL SOFTWARE
Roles que intervienen en el proceso de desarrollo de software

1.

66
6. CICLO DE VIDA DEL SOFTWARE
Roles que intervienen en el proceso de desarrollo de software

1.

67
6. CICLO DE VIDA DEL SOFTWARE
Roles que intervienen en el proceso de desarrollo de software

1.

68
6. CICLO DE VIDA DEL SOFTWARE
Roles que intervienen en el proceso de desarrollo de software

1.

69
7. MODELOS DE DESARROLLO DE SOFTWARE
¿Qué es un modelo de software y para qué sirve?
Modelos de desarrollo de software son una colección de técnicas y sistemas organizacionales para crear software de
computadora.

El objetivo de los diversos enfoques es estructurar equipos de trabajo para que puedan construir las funcionalidades del
programa de la manera más eficiente posible.

Los Modelos de desarrollo de software proporcionan un marco para controlar el desarrollo de los sistemas de información. Desde
la planificación hasta el mantenimiento, un modelo de ciclo de vida de desarrollo de software (SDLC) describe todos los
procesos en un proyecto de desarrollo de software.

Estos marcos incluyen el desarrollo de programas, así como las herramientas necesarias para ayudar en el proceso de
desarrollo.

Pero, ¿cómo determina cuál es el adecuado para su proyecto?.

70
7. MODELOS DE DESARROLLO DE SOFTWARE
Tipos de modelos del ciclo de vida de desarrollo de software (SDLC)
Modelos clásicos (predictivos)
➢ Modelo en cascada
➢ Modelo en V

Modelo de proceso incremental

Modelos evolutivos
➢ Modelo de construcción de prototipos
➢ Modelo en espiral (iterativos)

Metodologías de desarrollo del software


➢ RUP (Proceso Unificado de Rational)
➢ Modelos de desarrollo ágil (https://agilemanifesto.org/)
❑ Scrum
❑ Kanban
❑ Programación extrema (XP)

Actividad de Canvas → Presentación

71
BIBLIOGRAFÍA
Referencias bibliográficas

1. PIÑEIRO GOMEZ, J. O. S. E. (2022). Entornos de desarrollo. Editorial Paraninfo.

2. González, J., Del Moral, L., Vélez de Guevara, L (2020) Apuntes y materiales de FP de
Informática y comunicaciones. https://apuntesfpinformatica.es/index.html

72
¡GRACIAS!

También podría gustarte