08 Ago

Software e Ingeniería del Software

El SW tiene un papel dual: es producto y vehículo
Producto que transforma información
En su papel de vehículo, el SW actúa como la base para el control de la computadora (SO), la comunicación (redes), y la creación de otros programas (utilerías de sw y ambientes)
El sw entrega el producto más importante de nuestro tiempo: información:
Transforma datos para hacerlos útiles en un contexto
Software
Existen dos tipos de productos de software
:

Productos genéricos


Ejm: procesadores de texto, paquetes de dibujo, etc.
La organización que desarrolla el software controla su especificación.

Productos personalizados


Ejm: sistemas de procesos de negocios específicos, sistemas de control del tráfico aéreo.
La organización que compra el software controla la especificación de los productos personalizados

ERP


Los sistemas de planificación de recursos empresariales es un software que las empresas adoptan como un sistema genérico y lo adaptan a las necesidades de un cliente en particular
Proceso de software
Es un conjunto de actividades y resultados asociados que producen un producto de software.
Existen cuatro actividades fundamentales de procesos del software:
Especificación donde los clientes e ingenieros definen el software a producir y las restricciones sobre su operación.
Desarrollo donde el software se diseña y programa.
Validación donde el software se valida para asegurar que es lo que el cliente requiere.
Evolución donde el software se modifica para adaptarlo a los cambios requeridos por el cliente y el mercado.
CASE (Ingeniería del Software Asistida por Computadora)
Atributos de un buen sw mantenibilidad, confiabilidad, eficiencia,usabilidad

Costos de la Ingeniería de software


La distribución de costos a través de las diferentes actividades en el proceso del software depende del proceso utilizado y del tipo de software que se vaya a desarrollar

Retos fundamentales que afronta la ingeniería de software

 

Heterogeneidad


. Los sistemas operan como sistemas distribuidos en redes

Entrega


. Los negocios de hoy en día deben tener una gran capacidad de respuesta y cambiar con mucha rapidez.

Confianza

. Desarrollar técnicas que demuestren que los usuarios pueden confiar en el software.
Que se requiere para un proyecto desarrollo del SW administrador de proyectos, analista, diseñador, implementador, testar

Modelos Prescriptivos de proceso


En el enfoque prescriptivo, el orden y la consistencia del proyecto son los aspectos dominantes
Marco de trabajo genérico del proceso del SW comunicación, planeación, modelado (análisis y diseño), construcción, despliegue
Modelo cascada sistematico secuenccial Es muy raro un modelo de proceso útil en situaciones donde los requerimientos están fijos.

El Modelo Incremental


Entrega una serie de lanzamientos, llamados incrementos, que proporcionan en forma progresiva, El primer incremento es un producto esencial, requisitos básicos, versiones incompletas

El Modelo DRA (Desarrollo Rápido de Aplicaciones)


Ciclo corto, Es una adaptación a “alta velocidad”de cascada, Permite que un equipo de desarrollo cree un “sistema completamente funcional” dentro de un periodo muy corto (60 a 90 dias)

Algunos Inconvenientes:


Para proyectos grandes, pero escalables, el DRA necesita suficientes recursos humanos para crear el número correcto de equipos DRA
Compromiso por parte de los desarrolladores y clientes con las actividades rápidas necesarias para completar un sistema en un marco de tiempo muy breve.
El DRA sería inapropiado cuando los riesgos técnicos son altos
Cuando se aplican muchas nuevas tecnologías.
Modelos de Proceso Evolutivos
Construcción de Prototipos
Comunicación El ingeniero de sw y el cliente encuentran y definen los objetivos globales para el sw y requisitos
Plan Rápido (de una iteración)
Modelo Diseño Rápido
Por ejemplo, de la interfaz de usuario y de formatos de salida
Construcción del Prototipo
Desarrollo, Entrega y Retroalimentación
Problemas:
El cliente ve lo que parece una versión en funcionamiento del sw, sin saber que el prototipo se va a desechar
Además por la prisa de hacerlo funcionar no se ha considerado la calidad del sw
El cliente no entiende por qué el sistema se debe construir otra vez para incrementar la calidad
El Proceso en Espiral
Conjuga la naturaleza iterativa de la construcción de prototipos con los aspectos controlados y sistemáticos del modelo en cascada El sw se desarrolla en una serie de entregas evolutivas
Es un enfoque realista para el desarrollo de sw y de sistemas a gran escala
El Modelo de Desarrollo Concurrente
Se representa en forma esquemática como una serie de actividades del marco de trabajo, acciones y tareas y sus estados (forma de comportamiento observable desde el exterior) asociados.
Por ejemplo la actividad de modelado en algunos de los estados: ninguno, bajo desarrollo, en espera de cambios, en modificación, etc
Desarrollo Basado en Componentes
Los componentes se pueden emplear cuando el sw está en proceso de construcción
Estos componentes proporcionan funcionalidad dirigida con interfaces bien definidas que permiten que el componente se integre en el sw
Comienza con la identificación de los componentes candidatos
Componentes se pueden diseñar como clases o paquetes de clases orientados a objetos
El modelo de métodos formales

Comprende un conjunto de actividades que conducen a la especificación matemática del software

Permite que se especifique, desarrolle y verifique un sistema basado en computadora al aplicar la notación matematica.

Desarrollo del Software Orientado a Aspectos

– Es un paradigma de la ingeniería del sw relativamente nuevo que proporciona un proceso y enfoque metodológico para definir, especificar, diseñar y construir aspectos
– El DSOA define “aspectos” que expresan los intereses del cliente (seguridad, gestión de memoria, etc…), los cuales afectan muchas funciones, características e información del sistema.
Proceso unidficado Rapido agil

Fases del Proceso Unificado


Inicio


Abarca la comunicación con el cliente y las actividades de planeación

 

Se identifican los requisitos del sistema con la ayuda de casos de uso


Elaboración


Refina y expande los casos de uso preliminares que se desarrollaron como una parte de la fase de inicio

– Incluye la elaboración del modelo de caso de uso, el modelo de análisis, el modelo de diseño, el modelo de implementación y el modelo de despliegue

Construcción


Se desarrollan o adquieren los componentes del sw que harán que cada caso de uso sea operativo


Se ejecutan pruebas de unidad para cada componente


Actividades de integración



Transición

– El sw se entrega a los usuarios finales para realizar pruebas beta, y la retroalimentación del usuario reporta tanto defectos como cambios necesarios
Se crean manuales de usuario, procedimientos de instalación, etc.
Modelos Ágiles de Proceso
Programación extrema

Utiliza un enfoque OO como paradigma preferido


Abarca un conjunto de reglas y prácticas que ocurren en el contexto de 4 actividades del marco de trabajo:


Planeación, diseño, codificación y pruebas

Deja un comentario