Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingenieria del
sofware
MinTIC - UIS
Yhary Estefania Arias
Indice
TEMARIO - CLASE 1
Sobre la gestión
Sobre el cliente
Sobre los desarrolladores
1. ¿Qué es la
ingeniería del
software?
La ingeniería de software es una disciplina de la
ingeniería que se preocupa de todos los aspectos de la
producción del software.
Diseño
Contrucción
Mantenimiento
Ciclo de vida Fase de
del software desarrollo
Es el proceso de desarrollo que a priori Analisis
podría parecer una tarea simple, consta de Diseño
una serie de pasos de obligado cumplimiento Implementación
que buscan garantizar que los programas Testeo
creados son eficientes, fiables, seguros y
responden a las necesidades de los usuarios
finales.
Requerimientos Requerimientos
funcionales NO funcionales
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.
Cuando se realizan las fases de levantamiento y análisis de requerimientos, los requisitos no funcionales se
pueden registrar en un documento de requerimientos de software.
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 SoapUI aplicada al Software Testing de servicios web.
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 la
db.
El nuevo sistema debe desarrollarse aplicando patrones y recomendaciones de programación que
incrementen la seguridad de 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.
Si se identifican ataques de seguridad o brecha del sistema, el mismo no continuará operando hasta ser
desbloqueado por un administrador de seguridad.
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.
Requerimientos no funcionales
organizacionales
El procedimiento de desarrollo de software a usar debe estar definido explícitamente (en manuales de
procedimientos) y debe cumplir con los estándares ISO 9000.
El sistema debe ser desarrollado utilizando las herramientas CASE.
Debe especificarse un plan de recuperación ante desastres para el sistema a ser desarrollado.
Cada dos semanas deberán producirse reportes gerenciales en los cuales se muestre el esfuerzo
invertido en cada uno de los componentes del nuevo sistema.
Las pruebas de software se gestionaran con una herramienta de gestión de software testing.
Requerimientos no funcionales
externos
Sistemas de datos médicos: El nuevo sistema y sus procedimientos de mantenimiento de datos deben
cumplir con las leyes y reglamentos de protección de datos médicos.
El nuevo sistema se acogerá a las reglas de las licencias generales públicas (GNU), es decir será
gratuito, código abierto en el que cualquiera podrá cambiar el software, sin patentes y sin garantías.
Las páginas web a ser desarrolladas deben cumplir con la ley de tratamiento en condiciones de
igualdad para personas con discapacidad.
El sistema no revelara a sus operadores otros datos personales de los clientes distintos a nombres y
números de referencia.
Actividad
Quiero vender música a través de Internet.
Los usuarios comprarán créditos para adquirir canciones.
Los usuarios buscarán las canciones que deseen y las pagarán con créditos.
Los usuarios tendrán algunos días para descargar en su ordenador las canciones que
hayan adquirido.
Quiero hacer ofertas generales (afectan a todos los usuarios) y particulares (afectan a
usuarios concretos).
¿Qué características debe tener este sistema para satisfacer las necesidades de nuestro
cliente?.
Tipos de
diagramas de la
Ingenieria del
software.
Lenguaje unificado de modelado
El lenguaje unificado de modelado (UML) es el lenguaje de modelado de sistemas de
software más conocido y utilizado en la actualidad; está respaldado por el Object
Management Group (OMG).
Los diagramas de clase son, sin duda, el tipo de diagrama UML más utilizado. Es el
bloque de construcción principal de cualquier solución orientada a objetos. Muestra las
clases en un sistema, atributos y operaciones de cada clase y la relación entre cada
clase. En la mayoría de las herramientas de modelado, una clase tiene tres partes,
nombre en la parte superior, atributos en el centro y operaciones o métodos en la parte
inferior. En sistemas grandes con muchas clases relacionadas, las clases se agrupan
para crear diagramas de clases. Las diferentes relaciones entre las clases se muestran
por diferentes tipos de flechas.
De comportamiento
Diagrama de actividades
Los diagramas de actividad representan los flujos de trabajo de forma gráfica. Pueden
utilizarse para describir el flujo de trabajo empresarial o el flujo de trabajo operativo
de cualquier componente de un sistema. A veces, los diagramas de actividad se utilizan
como una alternativa a los diagramas de máquina del estado.
Diagrama de casos de uso
Como el tipo de diagrama UML más conocido, los diagramas de casos de uso ofrecen
una visión general de los actores involucrados en un sistema, las diferentes funciones
que necesitan esos actores y cómo interactúan estas diferentes funciones. Es un gran
punto de partida para cualquier discusión del proyecto, ya que se pueden identificar
fácilmente los principales actores involucrados y los principales procesos del sistema.
Diagrama de máquina de estados
Los diagramas de secuencia en UML muestran cómo los objetos interactúan entre sí y
el orden en que se producen esas interacciones. Es importante tener en cuenta que
muestran las interacciones para un escenario en particular. Los procesos se representan
verticalmente y las interacciones se muestran como flechas. Los diagramas de
secuencia de UML forman parte de un modelo UML y solo existen dentro de los
proyectos de modelado UML.
Roles en un proyecto de ingenieria del
software
Cliente
El cliente, es en esencia, quien pone en marcha el proyecto, paga las cuentas, o define
el resultado final. Aun si no se tiene literalmente un “cliente”, es bueno entender que
aun así existe un rol “cliente” en su proyecto. Esto puede ayudar a evitar confusiones. Si
hay varias personas diciendo que características se necesitan, hay que asegurarse de
que exista algún responsable de tomar las decisiones cuando estos requisitos sean
contradictorios.
Analista
El analista es alguien que es responsable de entender las necesidades del cliente, y
asegurarse de que la solución que está siendo desarrollada se ajusta a esas
necesidades.