Este documento trata sobre los métodos de ingeniería de software. Explica que una metodología de ingeniería de software es un proceso para producir software de forma organizada usando una colección de técnicas y convenciones predefinidas. También describe los componentes clave de un método como las fases del ciclo de vida del software, roles, actividades y artefactos producidos. Además, introduce conceptos como CASE, atributos de un buen software, retos fundamentales de la ingeniería de software y responsabilidad profesional y ética.
1. INTRODUCCIÓN
La Ingeniería del Software ofrece método y técnicas para desarrollar y mantener
software de calidad que resuelven problemas de todo tipo. Hoy día es cada vez
mas frecuente la consideración de la Ingeniería del Software como un nueva área
de la ingeniería, y el Ingeniero del Software comienza a ser una profesión
implantada en el mundo laboral con derechos, deberes y responsabilidades que
cumplir, junto a una, y reconocida consideración social en el mundo empresarial.
TEMA
LOS METODOS DE LA INGENIERIA DE SOFTWARE
DESARROLLO
Una metodología de ingeniería del software es un procesopara producir software
de forma organizada, empleando unacolección de técnicas y convenciones de
notaciónpredefinidas.
Los componentes de un método son:
¿QUE ES CASE?
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.
¿CUALES SON LOS ATRIBUTOS DE UN BUEN SOFTWARE?
Mantenibilidad:- el software debe cumplir las necesidades de cambio de los
clientes y de la empresa.
2. Confiabilidad:- el software debe tener fiabilidad, protección y seguridad, no debe
causar daños físicos ni económicos en caso de una falla del sistema.
Eficiencia:- la eficiencia incluye tiempo de respuesta y de procesamiento.
Usabilidad:- el software debe ser fácil de usar ya que va a ver y no usuarios que
no tengan un conocimiento amplio del sistema.
¿CUALES SON LOS RETOS FUNDAMENTALES PARA AFORNTAR LA
INGENIERIA DE SOFTWARE?
El reto de la heterogeneidad:- es desarrollar técnicas para construir software
confiable que sea lo suficiente flexible.
El reto de la entrega:- reducir los tiempos de entrega para sistemas grandes y
complejos sin comprometer la calidad del sistema.
El reto de la confianza:- desarrollar técnicas que demostré que los usuarios
pueden confiar en el software.
RESPONSABILIDAD PROFESIONAL Y ÉTICA
Confidencialidad:- debe respetar la confidencialidad de sus empleadores o
clientes.
Competencia:- no debe falsificar el nivel de competencia.
Derechos de propiedad intelectual:- tiene que ser consiente de las leyes locales
como las patentes y el copyright.
Uso inapropiado de las computadoras:- no debe utilizar las inapropiadamente las
computadoras de sus compañeros.
Los Ingenieros de software deben adherirse a los siguientes principios.
Publico:- deben actuar con el interés publico.
Cliente y empleador:- deben actuar de forman que respondan a los intereses de
sus clientes y empleadores.
Producto:- deben asegurar que sus productos cumplan los mas altos estándares
profesionales.
Juicio:- deben mantener la integridad e independencia en sus juicios
profesionales.
3. Gestión:- deberán suscribirse y promocionar un enfoque ético en la gestión del
desarrollo y mantenimiento de software.
Profesión:- deberán mantener la integridad y reputación de la profesión.
Colegas:-deberán ser imparciales y apoyar a sus colegas.
Personal:- deberán aprender lo concerniente a la practica de su profesión.
SISTEMAS SOCIO- TÉCNICOS
Sistemas socio técnicos: comprende uno o más sistemas técnicos pero también
incluyen conocimiento de cómo debe usarse el sistema para alcanzar algún
objetivo mas amplio. Esto quiere decir que estos sistemas han definido los
procesos operativos, incluyen personas como parte del sistema, son gobernados
con políticas y reglas organizacionales y pueden verse afectados por restricciones
externas tales como leyes nacionales y políticas reguladoras.
Las características del sistema socio-técnico son:
Tiene propiedades emergentes: que son propiedades del sistemas como un todo
mas que asociadas con partes individuales del sistema. Las propiedades
emergentes dependen tanto de los componentes del sistema como de las
relaciones entre ellos.
Son a menudo no deterministas. Esto significa que no siempre producen la misma
salida. El comportamiento del sistema depende de los operadores humanos y las
personas no siempre actúan de la misma forma.
El grado en que el sistema apoya los objetivos organizacionales no solo depende
del sistema en si mismo, también depende de la estabilidad de los objetivos, de
las relaciones y conflictos entre los objetivos organizaciones y de cómo las
personas en la organización interpretan estos objetivos.
Una característica de los sistemas es que las propiedades y el comportamiento de
los componentes del sistema están inseparablemente entremezclados. El
funcionamiento exitoso de los componentes depende de otros componentes.
Además, por lo general los sistemas son jerárquicos y de este modo incluyen otros
sistemas, subsistemas, que además tienen la propiedad de funcionar de forma
individual.
PROPIEDADES EMERGENTES DE LOS SISTEMAS
Estas propiedades emergentes no se pueden atribuir a ninguna parte específica
del sistema, mas bien, emergen solo cuando los componentes del sistema han
sido integrados.
4. Existen dos tipos de propiedades emergentes:
1- Las propiedades emergentes funcionales: aparecen cuando todas las partes de
un sistema trabajan de forma conjunta para cumplir con algún objetivo. Ej.
Bicicleta propiedad de medio de transporte una vez que unieron todas sus
componente.
2- Las propiedades emergentes no funcionales: se refieren al comportamiento de
los sistemas en su entorno operativo. Ej. Fiabilidad, rendimiento, seguridad y
protección. A menudo son factores críticos para sistemas informáticos, ya que un
fallo mínimo en estas propiedades pueden hacer inutilizable el sistema.
INGENIERÍA DE SISTEMAS
La ingeniería de sistemas es la actividad de especificar, diseñar, implementar,
validar, utilizar y mantener los sistemas socio-técnicos. Los ingenieros de sistemas
no solo tratan con el SW, sino también con el HW y las interacciones del sistema
con los usuarios y su entorno. Deben pensar en los servicios que el sistema
proporciona, las restricciones sobre las que el sistema debe construir y funcionar y
las formas en la que el sistema es usado para cumplir su propósito.
Las fases de la ingeniería de sistemas son: (modelo en V)
Existen diferencias entre los procesos de ing. de sistemas y el proceso de SW.
- Alcance limitado para rehacer el trabajo durante el desarrollo de sistemas. (Ing.
Sistema)
- Implicación interdisciplinaria (ing. Sistema)
La ingeniería de sistemas es una actividad interdisciplinaria que conjuga equipos
de personas con diferentes bases de conocimientos.
5. DEFINICIÓN DE REQUERIMIENTO DEL SISTEMA
Especifica que es lo que el sistema debe hacer (funciones) y sus propiedades
esenciales y deseables. Crea definición de requerimientos que el sistema quiere
consultar con los cliente y con los usuarios finales del sistema. Se derivan tres
tipos de requerimientos en esta fase:
- Requerimientos funcionales abstractos: las funciones básicas que el sistema
debe proporcionar se definen en un nivel abstracto. Una especificación mas
detallada de requerimiento funcional tiene lugar en el nivel de subsistema.
- Propiedades del sistema: estas son propiedades emergentes no funcionales del
sistema, tales como la disponibilidad, el rendimiento y la seguridad. Estas
propiedades no funcionales del sistema afectan a los requerimientos de todos los
subsistemas.
- Características que no debe mostrar el sistema: Se debe dejar en claro todo lo
que el sistema no debe hacer para no generar falsas expectativas.
Se debe establecer un conjunto completo de objetivos que el sistema debe
cumplir, esto no necesariamente debe estar orientado a las funcionalidades del
sistema, pero deben definir para que se realiza el sistema.
DISEÑO DEL SISTEMA
El diseño del sistema se centra en proporcionar la funcionalidad del sistema a
través de sus diferentes componentes. Las actividades que se realizan en este
proceso son:
***Dividir requerimientos: dividir los requerimientos. y agruparlos en grupos afines.
***Identificar subsistemas: identificar los subsistemas que pueden individual o
colectivamente cumplir los requerimientos. Los grupos de requerimientos están
generalmente relacionados con los subsistemas.
***Asignar requerimientos a los sub sistemas: si la división de los requerimientos.
6. fue en función de los subsistemas esta representara una tarea muy simple.
***Especificar la funcionalidad de los subsistemas: enumerar las funciones
específicas asignadas a cada subsistema, también debe especificarse la relación
entre los subsistemas.
***Definir interfaces del sub sistema: interfaces necesarias y requeridas por cada
subsistema.
Todas las etapas mencionadas son bidireccionales, por lo cual es permanente la
retro alimentación e iteración de una etapa con la otra.
El modelo espiral: refleja la realidad de que los requerimientos afectan a las
decisiones de diseño y viceversa, y de esta forma tiene sentido entrelazar estos
procesos. Comenzando en el centro, cada vuelta de la espiral añade algún detalle
a los requerimientos y al diseño. Algunas vueltas se centran en los requerimientos,
otras en el diseño. A veces, nuevo conocimientos recopilado durante los procesos
de requerimientos y diseño significan que la declaración del problema en misma
tiene que se cambiada.
Las intervenciones organizacionales y políticas pueden influir en la elección de la
solución.
MODELADO DE SISTEMAS
Durante la actividad de requerimientos y diseño del sistema, estos pueden ser
modelados como un conjunto de componentes y de relaciones entre estos
componentes. Esto se puede ilustrar en un modelo arquitectónico del sistema.
La arquitectura del sistema puede ser presentada como un diagrama de bloques
que muestra los principales subsistemas y las interconexiones entre ellos.
A este nivel el sistema se descompone en un conjunto de subsistemas que
interactúan entre si. Cada uno de estos debe ser representado de forma similar
hasta que el sistema este dividido en componentes funcionales, componentes que
proporcionan una función única.
7. DESARROLLO DE LOS SUB SISTEMAS
En esta etapa se implementan los subsistemas que hayan sido identificados
durante el diseño del sistema, esto implica comenzar otro proceso de la ingeniería
de sistemas. Los subsistemas pueden se desarrollos que se realizan en esta
etapa o productos comerciales que se agregan a un sistema. Es posible que se
requiera una nueva intervención de la etapa de diseño para garantizar la correcta
integración de subsistemas.
Es común que los subsistemas se desarrollen en paralelo.
INTEGRACIÓN DEL SISTEMA
Durante este proceso se toman los subsistemas desarrollados de forma
independiente y se conjuntan para crear el sistema completo. Sin embargo, a
efectos técnicos y de administración.
Una vez que los componentes han sido integrados, tiene lugar un extenso
programa de pruebas del sistema, estas pruebas pretenden probar las interfaces
entre los componentes y el comportamiento del sistema en su totalidad.
EVOLUCIÓN DEL SISTEMA
Los sistemas grandes y complejos tienen un periodo de vida largo. Durante su
vida se cambian para corregir errores en los requerimientos del sistema original y
para implementar nuevos requisitos que surgen.
La evolución del sistema es inherentemente costosa por:
**Los cambios propuestos tienen que analizarse cuidadosamente desde
perspectivas técnicas y de negocio.
**Un cambio en un subsistema puede alterar todo el sistema.
**Al no registrar las razones del diseño original insume mucho tiempo y diseño
descubrirlo.
**Con el tiempo la estructura se corrompe por cambios y más cambios son mas
costosos de hacer.
La obsolescencia es una de las mayores problemáticas de la evolución del
sistema.
DESMANTELAMIENTO DEL SISTEMA
Significa poner fuera de servicio al sistema después de que termina su periodo de
utilizad operativa.
Ejemplos:
-Desmontajes
-Inserción de SW para desmantelar otro SW
- Conversión de datos con valor para pasar a otro sistema.
8. ORGANIZACIONES, PERSONAS Y SISTEMAS INFORMÁTICOS
Los sistemas socio-técnicos son sistemas empresariales que tienen la intención de
ayudar a conseguir algunos objetivos organizaciones o de negocio. La
consecución, desarrollo y uso de estos sistemas están influenciados por las
políticas y procedimientos de la organización y por su cultura de trabajo. Los
usuarios del sistema son personas que están influenciadas por la forma en la que
es gestionada la organización y por sus relaciones con otras personas dentro y
fuera de esta.
Para entender un sistema socio-técnico es necesario entender el entorno
organizacional, de lo contrario el sistema puede no cumplir con las necesidades
del negocio, y los usuario y sus directivos pueden rechazar el sistema.
Los factores humanos y organizacionales del entorno del sistema que afectan a
sus diseños son:
-Cambios en el proceso: el sistema modificar los procesos de la organización y
del entorno.
- Cambios en el trabajo: el sistema modificación de la forma de trabajo de los
usuarios
- Cambios organizacionales: el sistema cambia la estructura organizativa o el
poder de esta.
Estos factores humanos, sociales y organizacionales son a menudo críticos para
determinar si un sistema cumple con éxito los objetivos.
Sistemas heredados: sistemas de negocio critico, se mantiene por que es
demasiado riesgoso su cambio, por los procesos que maneja, por la información
que contiene y por el tiempo de vida que tienen.
CONCLUSIONES
Cada vez es más necesario que los ingenieros de software desarrollen y le
entreguen al cliente productos de la más alta calidad. Asimismo no deben de
descuidar el compromiso que el ingeniero tiene con el cliente de entregar el
producto puntualmente. Además de que debe de estar consciente que el producto
que va a desarrollar para el cliente, cuente con un presupuesto al alcance del
cliente y que éste no sufra de modificación alguna.
Los ingenieros que no cumplan con estos compromisos, se arriesgan a que
existan penalidades en los contratos y hasta la pérdida misma del cliente. Por lo
tanto, este tipo de ingenieros no tiene un buen futuro y tiende a desaparecer.
Los sistemas de alta calidad requieren que cada parte que lo componen posea
también una alta calidad. Existen circunstancias en las que el desarrollador
individual se esfuerza para realizar un buen trabajo.