UNIDAD 1
Introducción a la ingenieríadel software y sistemas
deinformación.
1.1. Conceptos de Ingeniería del Software:mitos, paradigma, ingeniería de
software,calidad, proceso, método, herramienta,espectro de gestión.
Mitos: Los mitos del software-creencias acerca del software y de los procesos empleados
para construirlo- se pueden rastrear hasta los primeros días de la computación. Los mitos
tienen ciertos atributos que los convierten en insidiosos.
Paradigmas: Un paradigma de programación es un modelo básico de diseño y desarrollo de
programas, que permite producir programas con unas directrices específicas, tales como:
estructura modular, fuerte cohesión, alta rentabilidad, etc.
Ingeniería de Software: es la aplicación de un enfoque sistemático, disciplinado y
cuantificable al desarrollo, operación y mantenimiento de software, y el estudio de estos
enfoques, es decir, la aplicación de la ingeniería al software. Es la aplicación de la ingeniería
al software, ya que integra matemáticas, ciencias de la computación y prácticas cuyos
orígenes se encuentran en la ingeniería.
Calidad: Conjunto de propiedades y de características de un producto o servicio, que le
confieren aptitud para satisfacer una necesidad explícita o implícita.
Proceso: Procedimientos que 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.
Método:Un método de ingeniería del software es un enfoque estructurado para el desarrollo
de software cuyo propósito es facilitar la producción de software de alta calidad de una
forma costeable.
Herramienta: 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 ).
Espectro de Gestión: El desarrollo de software de gran porte requiere una adecuada gestión
del proyecto. Hay presupuestos, establecimiento de tiempos de entrega, un equipo de
profesionales que liderar. Recursos (espacio de oficina, insumos, equipamiento) por adquirir.
Para su administración se debe tener una clara visión y capacitación en Gestión de
Proyectos.
1.2. La importancia de la ingeniería delsoftware.
Actualmente casi todos los paises dependen de sistemas complejos basados en
computadora.
Más y más productos incorporan computadoras y Software en estos sistemas representan
una proposición grande y creciente del costo total del sistema. Por lo tanto, producir software
costeable es esencial para el funcionamiento de la economía nacional e internacional.
La ingeniería de software es una disciplina de la ingeniería cuya meta es el desarrollo
costeable de sistemas de software. Este es abstracto e intangible. No está restringido por
materiales, o gobernado por leyes físicas o por procesos de manufactura. De alguna forma,
esto simplifica la ingeniería de software ya que no existen limitaciones físicas del potencial
del software. Sin embargo, esta falta de restricciones naturales significa que el software
puede llegar a ser extremadamente complejo y, por lo tanto, muy difícil de entender.
1.3. Historia de la Ingeniería del Software.
Desde sus inicios en la década de 1940, escribir software ha evolucionado hasta convertirse
en una profesión que se ocupa de cómo crear software y maximizar su calidad. La calidad
puede referirse a cuán mantenenible es el software, su estabilidad, velocidad, usabilidad,
comprobabilidad, legibilidad, tamaño, costo, seguridad y número de fallas o "bugs", así
como, entre muchos otros atributos, a cualidades menos medibles como elegancia,
concisión y satisfacción del cliente. La mejor manera de crear software de alta calidad es un
problema separado y controvertido cubriendo el diseño de software, principios para escribir
código, llamados "mejores prácticas", así como cuestiones más amplias de gestión como
tamaño óptimo del equipo de trabajo, el proceso, la mejor manera de entregar el software a
tiempo y tan rápidamente como sea posible, la "cultura" del lugar de trabajo, prácticas de
contratación y así sucesivamente. Todo esto cae bajo la rúbrica general de ingeniería de
software.
Hay un número de áreas donde es notable la evolución de la ingeniería de software:
Surgimiento como una profesión: A principios de los 1980,1 la ingeniería del software ya habían
surgido como una genuina profesión, para estar al lado de las ciencias de la computación y la
ingeniería tradicional.
El papel de la mujer: en la década de los años 1940, 1950 y 1960, a menudo los hombres
llenaron los roles más prestigiosos y mejor pagados en la ingeniería de hardware, pero a
menudo delegaron la escritura de software a las mujeres. Grace Murray Hopper, JamieFenton y
muchas otras mujeres anónimas llenaban muchos trabajos de programación durante las
primeras décadas de la ingeniería de software. Hoy en día, menos mujeres trabajan en
ingeniería de software que en otras profesiones, una situación cuya causa no se identifica
claramente. A menudo es atribuido a la discriminación sexual, cibercultura o sesgo en la
educación. Muchas organizaciones académicas y profesionales consideran esta situación
desequilibrada y están tratando de resolverlo.
Procesos: Los procesos se han convertido en una gran parte de la ingeniería de software y son
aclamados por su potencial para mejorar el software y duramente criticados por su potencial
para constreñir a los programadores.
Costo de hardware: el costo relativo del software versus el hardware ha cambiado
sustancialmente en los últimos 50 años. Cuando los mainframes eran costosos y requerían una
gran cantidad de personal se soporte, las pocas organizaciones que los compraban también
tuvieron los recursos para financiar proyectos de ingeniería de software a la medida, grandes y
costosos. Los computadores son ahora mucho más numerosos y mucho más potentes, lo cual
tiene varios efectos en el software. El mercado más grande puede soportar grandes proyectos
para crear software comercialmente, como los hechos por empresas como Microsoft. Las
máquinas baratas permiten a cada programador tener un terminal capaz de una compilación
bastante rápida. Los programas en cuestión pueden usar técnicas como la recolección de
basura, que los hacen más fáciles y rápidos de escribir. Por otro lado, menos organizaciones
están interesadas en emplear programadores para grandes proyectos de software a la medida,
y en su lugar utilizan software comercial tanto como sea posible.
1.4. Los sistemas de información: concepto,características, estructuras,
procesos,clasificación, ERP´s, CRM, SCM.
Concepto:
Un sistema de información (SI) es un conjunto de elementos orientados al tratamiento y
administración dedatos e información, organizados y listos para su uso posterior, generados
para cubrir una necesidad u objetivo. Dichos elementos formarán parte de alguna de las
siguientes categorías:
personas
datos
actividades o técnicas de trabajo
Recursos materiales en general (generalmente recursos informáticos y de
comunicación, aunque no necesariamente).
Todos estos elementos interactúan para procesar los datos (incluidos los procesos manuales
y automáticos) y dan lugar a información más elaborada, que se distribuye de la manera más
adecuada posible en una determinada organización, en función de sus objetivos.
Características:
Propósito: Todos los sistemas buscan un propósito o fin común.
Globalismo o totalidad: Abarcan todas las características del ambiente interno y externo.
La entropía: Movimiento de un sistema hacia el desgaste.
Homeostasis: Características de un sistema abierto para regresar a un estado estable.
Estructuras:
Es simplemente tener los sub-sistemas en orden. Este cabe aclarar es el concepto más
simple que hay de la estructura de los sistemas.
Aunque también hay otro concepto como este, podemos estructurar un Sistema de
Información como una red de centros de información asociados a las unidades funcionales
de la empresa dependiendo de los flujos de datos e información se crea una red de
información entre los diferentes unidades funcionales de la organización lo que nos lleva a la
estructura de un sistema de información.
Clasificación:
Los Sistemas de Información son clasificados de distintas maneras entre ellas la mas común
es la siguiente:
Sistema De información Formal: Basados en un conjunto de normas, estándares y
procedimientos que permiten que la información se genere y llegue a quien la necesita en el
momento deseado.
Sistemas de Información Informal: Están basados en la comunicación no formalizada, ni
predefinida entre las personas de la organización.
Ahora bien para poder ver otras clasificaciones las veremos según M.J. Alexander:
Sistemas de comunicación: Transmiten información entre los diferentes sub-sistemas de
una organización.
Sistemas de información informal: Es una red no estructurada de comunicación informal
entre personas dentro o en el ambiente de la organización.
Sistemas de información organizacional: Formados por los flujos o canales de
información que transmiten mensajes entre los diferentes niveles jerárquicos de la
organización desde los niveles de planificación, pasando por los de control, hasta los
operacionales.
Sistemas de información operativos: Son definidos como sistemas de información que
recogen, mantienen y procesan los datos ocasionados por la realización de operaciones
básicas en la organización.
Sistemas de información gerencial: Es un tipo de sistema que proporciona la información
necesaria para que gerentes o directivos puedan ejecutar los procesos de toma de
decisiones y solución de problemas en una organización.
Sistema de apoyo para la toma de decisiones: Es un tipo muy especial de sistema de
información caracterizado por procesar datos para realizar automáticamente parte o todo el
proceso de toma de decisiones e indicar la acción que se debe tomar para mantener a la
organización dentro de condiciones normales de funcionamiento.
Sistema de procesamiento de datos: el procesamiento de datos es parte fundamental e
implícita de la mayoría de sistemas de información discutidos anteriormente.
ERP’S:
Los sistemas de Planificación de Recursos Empresariales, o ERP (por sus siglas en
inglés, Enterprise ResourcePlanning) son Sistemas de Información Gerenciales que integran
y manejan muchos de los negocios asociados con las operaciones de producción y de los
aspectos de distribución de una compañía en la producción de bienes o servicios.
La Planificación de Recursos Empresariales es un término derivado de la Planificación de
Recursos de Manufactura (MRPII) y seguido de la Planificación de Requerimientos de
Material (MRP); sin embargo los ERP han evolucionado hacia modelos de subscripción por
el uso del servicio (SaaS, cloudcomputing) lo que se denomina [[Sistema Integral de
Operación Empresarial (EOS)]], por sus siglas en inglés Enterprise OperatingSystem.
Los sistemas ERP típicamente manejan la producción, logística, distribución, inventario,
envíos, facturas y contabilidad de la compañía de forma modular. Sin embargo, la
Planificación de Recursos Empresariales o el software ERP pueden intervenir en el control
de muchas actividades de negocios como ventas, entregas, pagos, producción,
administración de inventarios, calidad de administración y la administración de recursos
humanos.
CRM:
CRM (de la sigla del término en inglés «customerrelationshipmanagement»), puede poseer
varios significados:
La administración basada en la relación con los clientes. CRM es un modelo de gestión de
toda la organización, basada en la orientación al cliente (u orientación al mercado según otros
autores), el concepto más cercano es marketing relacional (según se usa en España) y tiene
mucha relación con otros conceptos como: clienting, marketing 1x1, marketing directo de base
de datos, etcétera.
Software para la administración de la relación con los clientes. Sistemas informáticos de
apoyo a la gestión de las relaciones con los clientes, a la venta y al marketing. Con este
significado CRM se refiere al sistema que administra un data warehouse (almacén de datos) con
la información de la gestión de ventas y de los clientes de la empresa.
SCM:
Software Configuration Management (SCM) o en castellano Gestión de configuración
de software es una especialización de la Gestión de configuración a todas las actividades
en el sector del desarrollo de software.
SCM trata y controla:
La elaboración de código fuente por varios desarrolladores simultáneamente,
El seguimiento del estado de las versiones y sus cambios y
la conducción de la integración de las partes del software en un solo producto de software.
Para la realización de SCM hay diferentes herramientas. Pero herramientas que pretenden
ofrecer una solución total al problema a menudo no cumplen con los requisitos técnicos como:
apoyo a diferentes plataformas
iniciar el proceso de build
conexión a los bancos de datos existentes
integración a la organización existente
Por esa razón ofrece una mayor flexibilidad una solución que integre herramientas parciales que
sean más fáciles de integrar en el proceso existente.