0% encontró este documento útil (0 votos)
13 vistas31 páginas

UT1. 01-Parte1

El documento aborda el desarrollo de software, incluyendo la relación entre hardware y software, tipos de software, y el ciclo de vida del desarrollo de software. Se describen las fases del desarrollo, desde el análisis hasta el mantenimiento, y se presentan diferentes modelos de ciclo de vida, como el modelo en cascada y el modelo en espiral. Además, se mencionan herramientas de apoyo al desarrollo, como las herramientas CASE, que ayudan a automatizar tareas y mejorar la productividad.

Cargado por

j
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas31 páginas

UT1. 01-Parte1

El documento aborda el desarrollo de software, incluyendo la relación entre hardware y software, tipos de software, y el ciclo de vida del desarrollo de software. Se describen las fases del desarrollo, desde el análisis hasta el mantenimiento, y se presentan diferentes modelos de ciclo de vida, como el modelo en cascada y el modelo en espiral. Además, se mencionan herramientas de apoyo al desarrollo, como las herramientas CASE, que ayudan a automatizar tareas y mejorar la productividad.

Cargado por

j
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UT01.

DESARROLLO DEL
SOFTWARE.
Entornos de Desarrollo
1DAM – IES Alfonso X el Sabio
Índice
 Software y programa
informático. Tipos de software.  Concepto de programa
Relación hardware-software.


 • Programa y
Desarrollo de software:

componentes del sistema
Ciclos de vida del software

informático
Herramientas de apoyo al
desarrollo del software.
 Fases en el desarrollo y ejecución

• Lenguajes de
de software: 
Análisis.
programación Obtención

 Diseño de código
 Codificación: 
 Pruebas • ejecutable

 Documentación
 Explotación • Máquinas virtuales.
 Mantenimiento

• Herramientas utilizadas en
• programación

• Ejemplos.
1. Software de ordenador.
Software.
 El ordenador se compone de dos partes bien
diferenciadas: hardware y software.
 “Conjunto de programas, instrucciones y reglas
informáticas para ejecutar ciertas tareas en una
computadora” (RAE)
 “Conjunto de programas de cómputo de,
procedimientos, reglas, documentación y datos
asociados que forman parte de las operaciones de un
sistema de computación” (estándar 729 IEEE)
Tipos de software. Según el tipo de
tarea

Software

De Sistema De programación De Aplicación

Permite que el hardware Conjunto de programas


funcione. Software que que tienen una finalidad
permite la administración Conjunto de herramientas más o menos concreta.
de la parte física o los que nos permiten desarrollar
programas informáticos. Ayudan a realiza tareas
recursos del ordenador e específicas en cualquier
interactúa entre el campo
usuario y el hardware.
Tipos de software. Según el tipo de
tarea.
 Programa es un conjunto de instrucciones escritas en un lenguaje de programación.
Tipos de Software.

De Sistemas De Programación De Aplicación

Librar al usuario de los


detalles del hardware que se
usa y de su gestión. Proporcionar herramientas al Permitir al usuario realizar una
Proporciona una interfaz de usuario para el desarrollo de o varias tareas específicas
alto nivel, cómoda para el sistemas informáticos
usuario.

Sistemas operativos. Aplicaciones Ofimáticas.


Editores de texto. Software educativo. Bases de
Controladores de dispositivos. Compiladores. Intérpretes. datos. Videojuegos. Software
Utilidades. Enlazadores. Depuradores. de diseño asistido (CAD)
Entornos integrados (IDE)
Tipos de sw. Según el método de
distribución
Software

Software Software de
Shareware Freeware Adware
multimedia uso específico

Licencia que
requiere pago Distribución sin
(aunque existe cargo. A veces se Shareware que Utilizados para
precio cero). EL incluye el fuente. descarga presentar de un
usuario puede Puede tener publicidad de forma Se desarrolla
evaluar de restricciones de forma integrada para resolver
forma gratuita distribución 8n automática. Al textos, gráficos, un problema
modificar la comprar la
el producto aplicación). sonidos, … específico
especificado. Licencia que licencia, se Enciclopedias
Winzip, Paint autoriza su uso, elimina la multimedia
Shop Pro, PC- modificación y publicidad
Tools, Virus redistribución con
Scan, … o sin cambios
Actividad 1
 Investiga sobre Licencias de Software. Software
libre y propietario y de dominio público.
[Link]
Reflexiona
Hay varios sistemas operativos en el mercado: Linux, Windows,
Mac OS X etc. El más conocido es Windows. A pesar de eso,
¿por qué utilizamos cada vez más Linux?
2. Relación Hardware – Software
Relación Hardware – Software
 Relación indisoluble entre hardware y el software.
 El software se ejecutará sobre los dispositivos físicos.
 La primera arquitectura hardware con programa almacenado se estableció en
1946 por John Von Neumann:
 Relación software-hardware desde dos puntos de vista:
 Desde el punto de vista del sistema operativo
 Encargado de coordinar al hardware
 Intermediario entre éste y las aplicaciones.
 Encargado de gestionar los 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
 Desde el punto de vista de las aplicaciones
 Multitud de lenguajes de programación diferentes con sentencias en lenguaje natural
 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).
 ¿Cómo será capaz el ordenador de "entender" algo escrito en un lenguaje que no es el suyo?.
Arquitectura Von Neumann
Autoevaluación

Para fabricar un programa informático que se ejecuta en una computadora:

• Hay que escribir las instrucciones en código binario para que las entienda el
hardware.

• Sólo es necesario escribir el programa en algún lenguaje de programación y


se ejecuta directamente.

• Hay que escribir el programa en algún Lenguaje de Programación y


contar con herramientas software que lo traduzcan a código binario.

• Los programas informáticos no se pueden escribir: forman parte de


los sistemas operativos.
3. Desarrollo de software.
Desarrollo del 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.
 Proceso de desarrollo, que en un principio puede parecer una
tarea simple, consta de una serie de pasos de obligado
cumplimiento, pues sólo así podremos garantizar que los
programas creados son eficientes, fiables, seguros y
responden a las necesidades de los usuarios finales (aquellos
que van a utilizar el programa ).
Desarrollo del Software.
La construcción de software es un proceso que puede llegar a
ser muy complejo y que exige gran coordinación y disciplina del
grupo de trabajo que lo desarrolle.

Reflexion
Según estimaciones, el 26% de los grandes proyectos de
software fracasan, el 48% deben modificarse drásticamente y
sólo el 26% tienen rotundo éxito. La principal causa del fracaso
de un proyecto es la falta de una buena planificación de las
etapas y mala gestión de los pasos a seguir. ¿Por qué el
porcentaje de fracaso es tan grande? ¿Por qué piensas que
estas causas son tan determinantes?
Ciclo de vida del software.
 Ciclo de vida del software
 IEEE 1074: “una aproximación lógica a la adquisición, el
suministro, el desarrollo, la explotación y el mantenimiento
del software”.
 ISO 12207-1: “actividades y las tareas involucradas en el
desarrollo, la explotación y el mantenimiento de un
producto software, abarcando la vida del sistema desde al
definición de los requisitos hasta la finalización de su uso.
 Ciclo de desarrollo
 Subconjunto del anterior que empieza en el análisis y
termina en con la entrega del sistema al usuario
Ciclo de vida del software.
 Etapas.
 Análisis. Construye un modelo de requisitos. Se trata de
entender y comprender de forma detallada el problema a
resolver. Documentación entendible, completa u fácil de verificar
y modificar. Qué hacer
 Diseño. Cómo hay que hacerlo. Estructuras de los datos,
arquitectura del software, interfaz de usuario y procedimientos.
PE. Seleccionar el lenguaje de programación, SGBD, etc
 Codificación. Traducir lo escrito en el diseño a un forma legible
por la máquina. Salida: código ejecutable
 Pruebas. Comprobar que se cumplen criterios de corrección y
calidad. Garantizan el correcto funcionamiento del sistema
 Mantenimiento. Después de la entrega del software. Adaptarse
a los cambios. Cambios por errores. Adaptación al entorno (pe
cambio de SO), mejoras funcionales.
Ciclo de vida del software
 Siempre se debe aplicar un modelo de ciclo de vida al
desarrollo de cualquier proyecto software.
 Según el orden y la forma en que se lleven a cabo las
etapas hablaremos de diferentes ciclos de vida del
software

 Documentación. Cada etapa tiene como entrada


los documentos de la etapa anterior y obtiene
nuevos documentos.
Modelos de ciclo de vida I
 Modelo en cascada clásico
 Propuesta por Royce [ROYCE, 1970] con variaciones a lo largo del
tiempo, Sommerville, Boehm, …
 Tiene que finalizar una fase para pasar a la siguiente (previa revisión)
 Fases variables.

Análisis

Diseño

Codificación.

Pruebas.

Explotación

Mantenimiento
Modelos de ciclo de vida II
 Modelo en cascada
 Características
 Imposible de utilizar.
 Requiere conocer de antemano todos los requisitos del
sistema
 Para desarrollos pequeños.
 No permite retroalimentación (no refleja el mundo real)
 Se tarda mucho en pasar por todo el ciclo puesto que no
se puede pasar a una etapa sin terminar la anterior
Modelos de ciclo de vida III
 Modelo en cascada con retroalimentación
 Uno de los modelos más utilizados.
 Proviene del anterior con retroalimentación entre
etapas.
 Vuelta atrás para corregir, modificar distintos aspectos
 Modelo adecuado para proyectos con pocos cambios
y requisitos claros.
Modelos de ciclo de vida IV
 Modelo en cascada con retroalimentación

Análisis

Diseño

Codificación.

Pruebas.

Explotación

Mantenimiento
Modelos de ciclo de vida
 Modelo en cascada
 Ventajas
 Fácil de comprender, planificar y seguir
 La calidad del producto resultante es alta
 Permite trabajar con personal poco cualificado
 Inconvenientes
 La necesidad de tener todos los requisitos definidos desde el
principio
 Difícil volver atrás si se comenten errores en una etapa
 Producto no disponible para su uso hasta que no está terminado
 Se recomienda su uso cuando:
 El proyecto es similar a alguno que se haya realizado con éxito
anteriormente
 Los requisitos son estables y están bien comprendidos
Modelos de ciclo de vida

 Modelos evolutivos.
 Software que evoluciona con el tiempo.
 Versiones cada vez más completas hasta el
producto final
 Los más conocidos
 Modelo iterativo incremental
 Modelo en espiral
Modelos de ciclo de vida
 Modelo iterativo incremental.
 Basado en el modelo en cascada con realimentación
 Varios ciclos en cascada que se repiten y refinan en cada incremento.
 Las versiones son cada vez más completas hasta llegar al producto final.
 P.e.- un procesador de textos. 1 inc: funciones básicas de gestión de archivos y producción de
documentos. 2 inc: desarrollo de funciones gramaticales y de corrección ortográfica. 3 inc:
desarrollo de funciones avanzadas de paginación
Primer incremento

Análisis Diseño Codificación Pruebas Explotación Mantenimiento

Segundo incremento

Análisis Diseño Codificación Pruebas Explotación Mantenimiento

Tercer incremento

Análisis Diseño Codificación Pruebas Explotación Mantenimiento


Modelos de ciclo de vida
 Modelo en iterativo incremental
 Ventajas
 No se necesitan conocer todos los requisitos al comienzo
 Permite la entrega temprana al cliente de partes operativas del software
 Las entregas facilitan la realimentación de los siguientes entregables
 Inconvenientes
 Difícil estimación del esfuerzo y el coste final necesario
 Riesgo de no acabar nunca
 No recomendable para desarrollo de sistemas de tiempo real, de alto nivel de
seguridad, de procesamiento distribuido, y/o de alto índice de riesgos
 Se recomienda su uso cuando:
 El proyecto es similar a alguno que se haya realizado con éxito anteriormente
 Los requisitos o el diseño no están completamente definidos y es posible que
haya grandes cambios
Modelos de ciclo de vida
 Modelos evolutivos
 Modelo en espiral.
 El software se va
construyendo
repetidamente en
sucesivas versiones que
son cada vez mejores
por incrementar la
funcionalidad de cada
versión
 Reduce riesgos.
Modelos de ciclo de vida
 Modelos evolutivos. Modelo en espiral
 Podría maquetar en papel, modelos de pantalla.
 En el último ciclo se tendría un prototipo operacional.
 Fases.
 Determinar objetivos.
 Análisis de riesgos. Un riesgo puede ser: requisitos no comprendidos,
mal diseño, errores en la implementación
 Desarrollar y probar
 Planificación. Revisar y evaluar lo hecho y decidir si se continua,
planificando las fases del ciclo siguientes
Modelos de ciclo de vida
 Modelo en espiral
 Ventajas
 No se requiere una definición completa de los requisitos al comienzo
 Análisis de riesgos en todas las etapas
 Reduce riesgos del proyecto
 Incorpora requisitos de calidad
 Inconvenientes
 Costo del proyecto aumenta a medida que la espiral pasa por
sucesivas iteraciones
 El éxito del proyecto depende de la fase de análisis de riesgos
 Se recomienda su uso en:
 Proyectos de gran tamaño y que necesitan constantes cambios
 Proyectos donde sea importante el factor de riesgo
 Muy utilizado en sistemas orientados a objetos
Herramientas de apoyo al
desarrollo del software.
 [Link]
 Automatizar las tareas y ganar fiabilidad y tiempo.
 Centrarnos en los requerimientos del sistema y el análisis del mismo, principales de los fallos del
software.
 Herramientas CASE
 Conjunto de aplicaciones que se utilizan en el desarrollo de software con el objetivo de reducir costes
y tiempo del proceso, mejorando por tanto la productividad del proceso.
 RAD- Desarrollo rápido de aplicaciones = Desarrollo iterativo + construcción de prototipos + CASE.

 La tecnología CASE = automatizar las fases del desarrollo de software


 Mejorar la planificación del proyecto.
 Darle agilidad al proceso.
 Poder reutilizar partes del software en proyectos futuros.
 Hacer que las aplicaciones respondan a estándares.
 Mejorar la tarea del mantenimiento de los programas.
 Mejorar el proceso de desarrollo, al permitir visualizar las fases de forma gráfica.
Herramientas de apoyo al
desarrollo del software.
 CLASIFICACIÓN
 U-CASE: ofrece ayuda en las fases de planificación y

análisis de requisitos.
 M-CASE: ofrece ayuda en análisis y diseño.

 L-CASE: ayuda en la programación del software, detección

de errores del código, depuración de programas y pruebas


y en la generación de la documentación del proyecto.
 Ejemplos de herramientas CASE libres son: ArgoUML, Use Case
Maker, ObjectBuilder…

También podría gustarte