Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Fuente: https://hipertextual.com/2013/06/historia-de-la-tecnologia-manchester-baby
4
1. RELACIÓN HARDWARE Y SOFTWARE
5
1. RELACIÓN HARDWARE Y SOFTWARE
Estructura de un ordenador
La estructura de un ordenador consta de:
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.
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.
Fuente: https://www.pinterest.es/pin/294000681938422890/
10
1. RELACIÓN HARDWARE Y SOFTWARE
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).
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.
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.
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
https://hugepdf.com/download/esquema-funcional-de-un-
ordenador_pdf
Reflexionar
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:
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
http://www.tiposdesoftware.com/
Reflexionar
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.
21
3. LENGUAJES DE PROGRAMACIÓN
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
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.
24
3. LENGUAJES DE PROGRAMACIÓN
Clasificación de lenguajes de programación
• Según lo cerca que esté del lenguaje humano
26
3. LENGUAJES DE PROGRAMACIÓN
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
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
• La estructura de los programas es clara debido a que las instrucciones están más relacionadas entre sí.
• 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
30
3. LENGUAJES DE PROGRAMACIÓN
Programación estructurada: Tipos de módulos
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.
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
35
4. MAQUINAS VIRTUALES
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:
36
4. MAQUINAS VIRTUALES
37
4. MAQUINAS VIRTUALES
Máquinas virtuales de sistema
39
4. MAQUINAS VIRTUALES
40
4. MAQUINAS VIRTUALES
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.
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.
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.
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
• 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.
• 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
• 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.
• 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
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.
• 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
Seguridad industrial
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
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.
• 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ó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.
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
60
6. CICLO DE VIDA DEL SOFTWARE
Fases del desarrollo 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.
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.
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
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.
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
Modelos evolutivos
➢ Modelo de construcción de prototipos
➢ Modelo en espiral (iterativos)
71
BIBLIOGRAFÍA
Referencias bibliográficas
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!