Está en la página 1de 41

Ingenieria

del
Software
TEMA 2
¿Qué es el ciclo de vida del 'software' y cuáles son sus
etapas?

El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase
final.
Ciclo de vida del 'software'
El propósito de este programa es definir las distintas fases intermedias que se requieren para
validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los
requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de
que los métodos utilizados son apropiados.
El ciclo de vida básico de un software consta de los siguientes procedimientos:
•Definición de objetivos: define la finalidad del proyecto y su papel en la estrategia global.

•Análisis de los requisitos y su viabilidad: recopila, examina y formula los requisitos del cliente
y examina cualquier restricción que se pueda aplicar.
•Diseño general: requisitos generales de la arquitectura de la aplicación.
Diseño en detalle: definición precisa de cada subconjunto de la aplicación.

Programación (programación e implementación): implementación de un lenguaje de


programación para crear las funciones definidas durante la etapa de diseño.

Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que
se implementaron de acuerdo con las especificaciones.

Integración: garantiza que los diferentes módulos se integren con la aplicación. Este es el
propósito de la prueba de integración que está cuidadosamente documentada.
•Prueba beta (o validación): garantiza que el software cumple con las especificaciones originales.

•Documentación: sirve para documentar información necesaria para los usuarios del software y
para desarrollos futuros.
•Implementación

•Mantenimiento: comprende todos los procedimientos correctivos (mantenimiento correctivo) y


las actualizaciones secundarias del software (mantenimiento continuo).
Modelos de ciclo de vida del 'software'
Para facilitar una metodología común entre el cliente y la compañía de software, los modelos de
ciclo de vida se han actualizado para reflejar las etapas de desarrollo involucradas y la
documentación requerida, de manera que cada etapa se valide antes de continuar con la siguiente.
Modelo en
cascada
El modelo de ciclo de vida en
cascada se comenzó a diseñar en
1966 y se terminó alrededor de
1970. Se define como una
secuencia de fases donde al final
de cada una de ellas se reúne la
documentación para garantizar
que cumple las especificaciones
y los requisitos antes de pasar a
la fase siguiente:
Modelo V
El modelo de ciclo de vida V
proviene del principio que
establece que los
procedimientos utilizados para
probar si la aplicación cumple
las especificaciones ya deben
haberse creado en la fase de
diseño.
Se caracterizan por hacer énfasis en la
comunicación cara a cara, es decir, se basan en
una fuerte y constante interacción, donde
clientes desarrolladores y desarrolladores
trabajan constantemente juntos,
Las estableciéndose así una estrecha comunicación.
metodologías Estas metodologías están orientadas al
resultado del producto y no a la
ágiles documentación; exige que el proceso sea
adaptable, permitiendo realizar cambios de
último momento. Se puede hacer mención
dentro de las metodologías ágiles a: XP (por
sus siglas en inglés Extreme Programming),
Scrum y Crystal Methodologies.
Lograr la construcción de un sistema informático eficiente, que

Las mejores cumpla con los requerimientos planteados, es una tarea realmente
intensa y sobre todo difícil de cumplir.
metodologías
de desarrollo No existe una metodología de software universal, ya que toda

de software metodología debe ser adaptada a las características de cada


proyecto (equipo de desarrollo, recursos, etc.) exigiéndose así
que el proceso sea configurable.
Extreme Programming (XP)
Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el
éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el
aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en
realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre
todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los
cambios.
Scrum
Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un marco para la gestión
de proyectos, que se ha utilizado con éxito durante los últimos 10 años. Está especialmente
indicada para proyectos con un rápido cambio de requisitos. Sus principales características se
pueden resumir en dos. El desarrollo de software se realiza mediante iteraciones, denominadas
sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que
se muestra al cliente. La segunda característica importante son las reuniones a lo largo proyecto.
Éstas son las verdaderas protagonistas, especialmente la reunión diaria de 15 minutos del equipo
de desarrollo para coordinación e integración.
Crystal Methodologies
Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar
centradas en las personas que componen el equipo (de ellas depende el éxito del proyecto) y la
reducción al máximo del número de artefactos producidos. Han sido desarrolladas por Alistair
Cockburn. El desarrollo de software se considera un juego cooperativo de invención y
comunicación, limitado por los recursos a utilizar.
Las metodologías robustas o
tradicionales
Están guiadas por una fuerte planificación. Centran su atención en llevar una documentación
exhaustiva de todo el proceso de desarrollo y en cumplir con un plan de proyecto, definido en la
fase inicial del mismo. Entre las metodologías robustas se encuentran: MSF (por sus siglas en
inglés Microsoft Solution Framework), MÉTRICA 3 y RUP (siglas de Rational Unified Process).
Microsoft Solution Framework (MSF)

Esta es una metodología flexible e interrelacionada con una serie de conceptos, modelos y
prácticas de uso, que controlan la planificación, el desarrollo y la gestión de proyectos
tecnológicos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano
las elecciones tecnológicas. Dentro de sus principales características se tiene que es:
•Adaptable: es parecido a un compás, usado en cualquier parte como un mapa, del cual su uso es
limitado a un específico lugar.
•Escalable: puede organizar equipos tan pequeños entre 3 o 4 personas, así como también,
proyectos que requieren 50 personas a más.
•Flexible: es utilizada en el ambiente de desarrollo de cualquier cliente.

•Tecnología Agnóstica: porque puede ser usada para desarrollar soluciones basadas sobre
cualquier tecnología.
Métrica 3
Es una metodología de planificación, desarrollo y mantenimiento de sistemas de información.
Ofrece a las Organizaciones un instrumento útil para la sistematización de las actividades que
dan soporte al ciclo de vida del software dentro del marco que permite alcanzar los siguientes
objetivos:
•Proporcionar o definir Sistemas de Información que ayuden a conseguir los fines de la Organización mediante la
definición de un marco estratégico para el desarrollo de los mismos.
•Dotar a la Organización de productos software que satisfagan las necesidades de los usuarios dando una mayor
importancia al análisis de requisitos.
•Mejorar la productividad de los departamentos de Sistemas y Tecnologías de la Información y las Comunicaciones,
permitiendo una mayor capacidad de adaptación a los cambios y teniendo en cuenta la reutilización en la medida de lo
posible.
•Facilitar la comunicación y entendimiento entre los distintos participantes en la producción de software a lo largo del
ciclo de vida del proyecto, teniendo en cuenta su papel y responsabilidad, así como las necesidades de todos y cada
uno de ellos.
•Facilitar la operación, mantenimiento y uso de los productos software obtenido.
Proceso Unificado de Desarrollo (RUP)
RUP es un proceso para el desarrollo de un proyecto de software que define claramente quien,
cómo, cuándo y qué debe hacerse en el proyecto. La versión de RUP que se ha estandarizado vio
la luz en 1998 y se conoció en sus inicios como Proceso Unificado de Rational 5.0; de ahí las
siglas con las que se identifica a este proceso de desarrollo.

Es iterativo e incremental, divide el proyecto en mini proyectos donde los casos de usos y la
arquitectura cumplen sus objetivos de manera más depurada. RUP se encarga de unificar todo el
equipo de desarrollo de software, además de optimizar su comunicación.
Se recomienda la utilización de RUP como metodología de desarrollo de software para guiar el
proceso de desarrollo cuándo se está en presencia de proyectos complejos y de larga duración.
Además cuándo el equipo de desarrollo del proyecto tiene experiencia en su aplicación, se
obtienen resultados positivos con su uso.
Las herramientas CASE (Computer Aided
Software Engineering, Ingeniería de Software
Asistida por Computadora) son diversas

Herramientas aplicaciones informáticas o programas


informáticos destinadas a aumentar el balance
CASE en el desarrollo de software reduciendo el costo
de las mismas en términos de tiempo y de
dinero.
Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del
software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos,
implementación de parte del código automáticamente con el diseño dado, compilación
automática, documentación o detección de errores entre otras. Ya en los años 70 un proyecto
llamado ISDOS diseñó un lenguaje y por lo tanto un producto que analizaba la relación existente
entre los requisitos de un problema y las necesidades que estos generaban, el lenguaje en
cuestión se denominaba PSL (Problem Statement Language) y la aplicación que ayudaba a
buscar las necesidades de los diseñadores PSA (Problem Statement Analyzer).
Objetivos
1.Mejorar la productividad del software.

2.Aumentar la calidad del software.

3.Reducir el tiempo y costo de desarrollo y mantenimiento de los sistemas informáticos.

4.Mejorar la planificación de un proyecto.

5.Aumentar la biblioteca de conocimiento informático de una empresa ayudando a la búsqueda de soluciones para los requisitos.

6.Automatizar el desarrollo del software, la documentación, la generación de código, las pruebas de errores y la gestión del proyecto.

7.Ayuda a la reutilización del software, portabilidad y estandarización de la documentación.

8.Gestión global en todas las fases de desarrollo de software con una misma herramienta.

9.Facilitar el uso de las distintas metodologías propias de la ingeniería del software.


Según fases del ciclo de vida del
desarrollo
La siguiente clasificación es la más habitual basada en las fases del ciclo de desarrollo que cubren:

Upper CASE (U-CASE), herramientas que ayudan en las fases de planificación, análisis de
requisitos y estrategia del desarrollo, usando, entre otros diagramas UML.

Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y diseño de la


aplicación.

Lower CASE (L-CASE), herramientas que semi-automatizan la generación de código, crean


programas de detección de errores, soportan la depuración de programas y pruebas. Además
automatizan la documentación completa de la aplicación. Aquí pueden incluirse las herramientas de
desarrollo rápido de aplicaciones.
Según funcionalidad
Por funcionalidad se pueden diferenciar algunas como:

Herramientas de generación semiautomática de código.

Editores UML.

Herramientas de refactorización de código.

Herramientas de mantenimiento como los sistemas de control de versiones·


implica revisar y auditar los productos y
actividades de software para verificar que se
cumplen los procedimientos y los estándares,
SQA además de proveer a las gerencias apropiadas
(Aseguramient (incluyendo a la de proyectos) con los

o de la resultados de estas revisiones. Por lo tanto,


SQA envuelve al PROCESO de desarrollo de
Calidad del software completo: monitoreando y mejorando
el proceso; asegurándose que cualquier
Software) estándar y procedimientos adoptados sean
seguidos; y, asegurándose que los problemas
sean encontrados y tratados.
Definición
SQA es un set de actividades sistemáticas que aseguran que el proceso del software y productos
conformados por requerimientos, estándares, y procedimientos. Los procesos incluyen todas las
actividades involucradas en el diseño, codificación, pruebas y mantenimiento; Los productos
incluyen software, datos asociados, documentación, y toda la documentación para soporte y
reportes.
Propósito
Proporcionar visibilidad sobre los procesos utilizados por el proyecto de software y sobre los
productos que genera.
Objetivos
1.Planificar las actividades de aseguramiento de la calidad.

2.Revisar y auditar objetivamente los productos y las actividades para verificar que están
conformes con los procedimientos y estándares aplicables.

3.Proporcionar los resultados de estas revisiones o auditorías informando a la dirección cuando


sea necesaria su mediación.
Metas
•Planificar las actividades de SQA

•Verificar la adherencia de los productos y actividades de software a los estándares, a los


procedimientos y a los requisitos aplicables.
•Los grupos y los individuos afectados son informados de las actividades y de los resultados de la
SQA.
•Las tareas que no cumplen con los estándares o procedimientos y que no se pueden resolver
dentro del proyecto del software son tratadas por la gerencia general.
Actividades Principales
•Un plan de SQA es preparado para el proyecto de software de acuerdo a procedimientos documentados.

•Las actividades del grupo de SQA son realizadas de acuerdo a los planes de SQA

•El grupo de SQA participa en la preparación y revisión de los planes de desarrollo, estándares y procedimientos del proyecto.

•El grupo de SQA revisa las actividades de Ingeniería de Software para verificar el cumplimiento de lo anterior

•El grupo de SQA audita los productos del trabajo designado para verificar el cumplimiento de lo anterior.

•El grupo de SQA periódicamente reporta los resultados de sus actividades al grupo de ingeniería de software.

•Las desviaciones detectadas en las actividades del software y en los productos del trabajo de software son documentadas y
manejadas de acuerdo a procedimientos previamente documentados.
•El grupo de SQA conduce periódicamente revisiones de sus actividades y reuniones con el personal de SQA del cliente,
según sea necesario.
Rol de SQA
El rol para SQA es brindar a Metodología de Desarrollo de Software la administración la seguranza
de que procesos oficialmente establecidos están siendo implementados. Y asegura que:

1.Una  apropiada este establecida

2.Que los proyectos utilicen estándares y procedimientos en su trabajo

3.Que la documentación sea creada para mantenimiento y mejoramiento

4.La administración de configuración de software este adecuada para controlar cambios

5.Se realicen pruebas y que se aprueben

6.Cualquier deficiencia y desviaciones sean identificadas y llevadas con atención a la administración.


UX y UI son acrónimos cada vez más comunes, pero ¿cuál es
el significado de estos términos?, ¿por qué van de la mano?,
¿qué diferencias existen entre ellos?
UX se refiere a User Experience, mientras que UI significa User Interface Desing. Muchas
personas cometemos el grave error de separar una de la otra; sin embargo, ambos elementos son
indispensables para una página web o el diseño de una App. Debemos de entender que existen
diferencias entre estos y que cada uno tiene roles diferentes .
User Experience
El diseño de experiencia del usuario (UXD o UED) es el proceso de mejorar la satisfacción del
cliente. Esto se logra al mejorar su uso y otorgar placer en la interacción entre el cliente y el producto.

Este término  se le debe a  Don Norman, científico cognitivo y cofundador de Nielsen Norman Group
Design Consultancy. Se le atribuye haber inventado el término a fines de la década de 1990
declarando que “la experiencia del usuario abarca todos los aspectos de la interacción del usuario
final con la compañía, sus servicios y sus productos.”
Podemos concluir que UX Design es todo aquello que un usuario percibe al interactuar con un
producto o servicio que tiene por objetivo resolver las necesidades de los usuarios finales,
consiguiendo de esta forma la satisfacción y experiencia de uso.
UI, User Interface Desing
El diseño de interfaz de usuario o ingeniería de la interfaz es el diseño de computadoras,
aplicaciones, máquinas, dispositivos de comunicación móvil, aplicaciones de software, y sitios
web enfocado en la experiencia de usuario y la interacción.

UI (por sus siglas en inglés User Interface o en español Interfaz del Usuario) es el complemento,
la apariencia, la presentación y la interactividad de un producto.  Es la suma de una arquitectura
de información + elementos visuales + patrones de interacción.
Dentro de las actividades que se realizan en UI, están:
•Diseño de interacción (cómo responde el sistema)

•Guías de interacción (estados del sistema)

•Diseño de elementos (botones, formularios)

•Diseño visual (iconos, imágenes)

•Guías de estilo (paletas de color, fonts)


UX vs UI, ¿cuál es más importante?
El tema de la importancia se basa en la balanza de que debería ser mejor y por que?, según las
necesidades en ocasiones ambiguas por parte de los usuarios finales, en conclusión uno no puede
convivir sin el otro, es casi pretender que en algún momento serian únicos, sin embargo se
necesitan día a día y sin saberlo hacemos uso de ellos diariamente en todos los entornos que nos
rodean…

También podría gustarte