PARADIGMAS
DE INGENIERÍA DE SOFTWARE
Esta ingeniería trata con
áreas muy diversas de la informática y de las Ciencias de la Computación, tales
como construcción de compiladores, Sistemas Operativos, o desarrollos
Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo
de cualquier tipo de Sistema de Información y aplicables a infinidad de áreas
(negocios, investigación científica, medicina, producción, logística, banca,
control de tráfico, meteorología, derecho, Internet Intranet, etc.).
Una definición precisa aun
no ha sido contemplada en los diccionarios, sin embargo se pueden citar las
enunciadas por algunos de los más prestigiosos autores:
• 1 - Ingeniería de Software
es el estudio de los principios y metodologías para el desarrollo y
mantenimiento de sistemas software (Zelkovitz, 1978)
• 2 - Ingeniería de software
es la aplicación práctica del conocimiento científico al diseño y construcción
de programas de computadora y a la documentación asociada requerida para
desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de
Software o Producción de Software ( Bohem, 1976).
• 3 - Ingeniería de Software
trata del establecimiento de los principios y métodos de la ingeniería a fin de
obtener software de modo rentable, que sea fiable y trabaje en máquinas reales
(Bauer, 1972).
• 4 - Es la aplicación de un
enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y
mantenimiento del software; es decir, la aplicación de la ingeniería al
software (IEEE, 1993).
La ingeniería de software abarca un conjunto de tres elementos que
facilitan el control sobre el proceso de desarrollo de software y suministran
las bases para construir software de calidad de una forma productiva:
2. Herramientas: (automáticas y semiautomáticas) que apoyan a la aplicación de los métodos. Cuando se integran las herramientas de forma que la información creada por una herramienta puede ser usada por otra, se establece un sistema para el soporte del desarrollo de software, llamado Ingeniería de Software Asistida por Computadora (CASE).
3. Procedimientos: Definen la secuencia en la que se aplican los métodos, las entregas, los controles de calidad y guías para evaluación del progreso.
La Ingeniería de Software está compuesta por una serie de pasos que abarcan los métodos, herramientas y procedimientos mencionados, a los que se denominan Paradigmas de la Ingeniería de Software.
1. Métodos: Indican cómo construir
el software técnicamente e incluyen un amplio espectro de métodos para la
planificación, la estimación, el análisis, el diseño, codificación, prueba y
mantenimiento.
ENFOQUE
ESTRUCTURADO
ANÁLISIS ESTRUCTURADO
El
Análisis Estructurado es un método para el análisis de sistemas manuales o
automatizados, que conduce al desarrollo de especificaciones para sistemas
nuevos o para efectuar modificaciones a los ya existentes. El objetivo que
persigue el análisis estructurado es organizar las tareas asociadas con la
determinación de requerimientos para obtener la comprensión completa y exacta
de una situación dada.
Componentes:
- Símbolos gráficos: Son los iconos y
convenciones para identificar y describir los componentes de un sistema y las
relaciones entre estos.
- Diccionarios de datos: Descripciones de todos los
datos utilizados en el sistema. Puede ser manual o automatizado.
- Descripciones de procesos y
procedimientos: Declaraciones
formales que emplean técnicas y lenguajes que permiten describir actividades
importantes que forman parte del sistema.
- Reglas: Estándares par describir y
documentar el sistema en forma correcta y completa.
DISEÑO ESTRUCTURADO
El Diseño Estructurado es una técnica específica
que busca crear programas formados por módulos independientes unos de otros
desde el punto de vista funcional y no mostrar la lógica de los programas.
La herramienta fundamental del diseño estructurado
es el diagrama estructurado, el cual describe la interacción entre módulos
independientes junto con los datos que un módulo pasa a otro cuando
interacciona con él.
EL
ENFOQUE ESTRUCTURADO A OBJETOS
ANÁLISIS
Y DISEÑO ORIENTADO A OBJETOS
La Orientación a Objetos puede describirse
como el conjunto de disciplinas que desarrollan
y modelizan software que facilitan la construcción de sistemas complejos
a partir de componentes.
El atractivo intuitivo de la orientación a objetos
es que proporciona conceptos y herramientas con las cuales se modela y
representa el mundo real tan fielmente como sea posible.
Las técnicas orientadas a objetos proporcionan
mejoras y metodologías para construir sistemas de software complejos a partir
de unidades de software modularizado y reutilizable. La orientación a
objetos trata de cubrir las necesidades de los usuarios finales, así como las
propias de los desarrolladores de productos software. Estas tareas se realizan
mediante la modelización del mundo real. El soporte fundamental es
el modelo objeto.
El
Análisis Orientado a Objetos y su Diseño se enfoca en los objetos. Los objetos tienen
ciertos comportamientos y atributos que determinan la manera en que interactúan
y funcionan. No se intenta proporcionar un orden para las acciones al momento
del diseño debido a que los objetos funcionan basados en la manera en que
funcionan otros objetos.
Características
Principales del Enfoque Orientado a Objetos
- Identidad: Los
datos se organizan en entidades discretas y distinguibles llamadas objetos.
Estos objetos pueden ser concretos o abstractos, pero cada objeto tiene su
propia identidad.
- Clasificación: Los
objetos que tengan los mismos atributos y comportamiento se agrupan en clases.
Una clase es una abstracción que describe propiedades (atributos y
comportamiento) relevantes para una aplicación determinada, ignorando el resto.
- Polimorfismo: El
polimorfismo permite que una misma operación pueda llevarse a cabo de forma
diferente en clases diferentes.
- Herencia: El
concepto de herencia se refiere al compartir de atributos y operaciones basadas
en una relación jerárquica entre varias clases. Una clase puede definirse de
forma general y luego refinarse en sucesivas subclases. Cada clase hereda todas
las propiedades (atributos y operaciones) de su superclase y añade sus
propiedades particulares.
|
Análisis y Diseño Estructurado
|
Análisis y diseño Orientado a Objetos
|
|
El
análisis estructurado se basa fundamentalmente en la descomposición funcional
del sistema que se desea construir, lo cual requiere comprender primero el
dominio del problema y a continuación documentar las funciones y subfunciones
que debe proporcionar el sistema.
|
El
enfoque Orientado a Objetos invierte el método estructurado, se centra en
primer lugar en identificar los objetos del dominio de aplicación y después
en establecer procedimientos que los manejen.
|
|
El
software desarrollado con métodos estructurados suele ser más frágil ante los
cambios de requisitos; pues si estos cambian, un sistema basado en
descomposición funcional puede requerir una reestructuración masiva.
|
El
software Orientado a Objetos se mantiene mejor ante los cambios de requisitos,
porque se basa en la estructura subyacente del dominio de aplicación por lo
que las modificaciones necesarias pueden ser más fácilmente localizables.
|
|
El
Análisis Estructurado modela los sistemas desde un punto de vista más próximo
a su implementación en un ordenador (entrada/proceso/salida).
|
El
Análisis Orientado a Objetos se basa en modelar el sistema mediante los
objetos que forman parte de él y las relaciones estáticas (herencia y
composición) o dinámicas (uso) entre estos objetos. Este enfoque pretende
conseguir modelos que se ajusten mejor al problema real.
|
|
El
análisis estructurado incorpora modelos de datos, de procesos y de
comportamiento.
|
El
enfoque Orientado a Objetos, utiliza los mismos modelos que el análisis
estructurado. Las diferencias principales consisten en la mayor importancia
que se da al modelo de datos, por encima de los otros dos, y en el enfoque
orientado a objetos de este modelo.
|
|
El
modelado de datos mediante el enfoque estructurado, está más orientado al
diseño de bases de datos y se centra exclusivamente en la identificación de
los datos que maneja un sistema y en las relaciones estáticas que
se establecen entre esos datos.
|
En el
AOO, los objetos encapsulan tanto atributos como procedimientos (operaciones
que se realizan sobre los objetos), e incorpora además conceptos como el
polimorfismo o la herencia que facilitan la reutilización de código. El uso
de AOO puede facilitar mucho la creación de prototipos, y las técnicas de
desarrollo evolutivo de software.
|
GESTION DE PROYECTOS DE SISTEMAS DE
INFORMACION.
Proyecto se refiere a todas las acciones que
deben realizarse para cumplir con una necesidad definida dentro de los plazos.
Así, ya que el proyecto es una acción temporaria que tiene principio y fin, que
utiliza recursos identificados (humanos y materiales) durante su ejecución, y
que tiene un costo, deberá tener recursos presupuestados y una hoja de balance
independiente a la de la compañía. "Productos finales" se refiere a
los resultados esperados del proyecto.
En un sistema de información con calidad
está desarrollado con una adecuada organización; es por eso que es necesario
dar importancia a la administración de proyectos de sistemas información como
herramienta dentro de las empresas para el desarrollo de sistemas de
información.
Las empresas con sistemas de información de
calidad son aquellas que tiene una cultura organizacional flexible y no
ortodoxa, es decir, hacen cambios en su forma de hacer las cosas, hacen uso de
la tecnología para el bien de la empresa.
Dentro de unos pocos años aquellas empresas
que no cambien sus viejos sistemas por sistemas de información computacionales,
sean capaces de desarrollar dentro de ellas sistemas de información de calidad
con la ayuda de una buena administración de proyectos de sistemas de
información, hagan uso adecuado de la información y tengan una apertura hacia
nuevas ideas y uso de nuevas tecnologías simplemente serán aplastadas por la
tecnologías y por su misma ignorancia al cambio.
IMPORTANCIA DE LA GESTION DE PROYECTOS DE
SISTEMAS DE INFORMACION.
Antes que nada debemos de definir que es
administración y que es un proyecto: "Administración es el proceso de
planear, organizar, dirigir y controlar el uso de recursos para lograr
objetivos".
Otra definición es la de koontz "La
administración es el proceso de diseñar y mantener un ambiente en el cual las
personas, trabajando juntas en grupos, alcanzan con eficiencia metas
seleccionadas".
Entonces podemos definir a la administración
como el proceso de organizar, planear,
Dirigir y controlar; actividades y recursos
con el fin de lograr un objetivo.
Ahora definimos que es un proyecto "un
proyecto es una organización de gente dedicada a un propósito u objetivo
específico".
Habiendo definido los conceptos de
administración y de proyecto podemos decir que "La administración de
proyectos es la aplicación del enfoque de sistemas para la administración de
tareas tecnológicas complejas o de proyectos cuyos objetivos se establecen
explícitamente en términos de tiempo, costos y parámetros de realización".
Después de haber visto la definición de
administración de proyectos podemos dar nuestro punto de vista acerca de que es
la administración de proyectos; La administración de proyectos es la forma de
planear, organizar, dirigir y controlar una serie de actividades realizadas por
un grupo de personas que tienen un objetivo específico; el cual puede ser
(crear, diseñar, elaborar, mejorar, analizar, etc.) un problema o cosa.