Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS Y COMPUTACION
INSTITUTO TECNOLÓGICO DE
TLALNEPANTLA
UNIDAD I
PROFESOR:
DR. ANTONIO NAVARRETE PRIETO
CURSO: 2017
1
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
1.1.1 Mitos
Muchas de las causas de la crisis del software se pueden encontrar en una mitología que
surge durante los primeros años del desarrollo del software. A diferencia de los mitos
antiguos, que ofrecían a los hombres lecciones dignas de tener en cuenta, los mitos del
software propagaron información errónea y confusión. Los mitos del software tienen
varios atributos que los hacen insidiosos, por ejemplo, aparecieron como declaraciones
razonables de hechos; tuvieron un sentido intuitivo y frecuentemente fueron
promulgados por expertos que estaban al día.
Hoy, la mayoría de los profesionales competentes consideran a los mitos por lo que son
actitudes erróneas que han causado serios problemas, tanto a los gestores como a los
técnicos. Sin embargo, las viejas actitudes y hábitos son difíciles de modificar y cuando
vamos hacia la década del software, todavía se cree en algunos restos de los mitos del
software.
A) Mitos de gestión. Los gestores con responsabilidad sobre el software, como los
gestores en la mayoría de las disciplinas están normalmente bajo la presión de cumplir los
presupuestos, hacer que no se retrase el proyecto y mejorar la calidad.
B) Mitos del cliente. Un cliente que solicita una ampliación del software puede ser una
persona del despacho de a lado, un grupo técnico de la sala de abajo, el departamento de
ventas o una compañía exterior que solicita un software bajo contrato. En muchos casos el
cliente cree en los mitos que existen sobre el software, debido a que los gestores y
trabajadores responsables hacen muy poco para corregir la mala información. Los mitos
conducen a que el cliente se cree una falsa expectativa y finalmente, queda insatisfecho
con el que desarrolla el software.
Mito. Los requisitos del proyecto cambian continuamente, pero los cambios
pueden acomodarse fácilmente, ya que el software es flexible.
2
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
Realidad. Es verdad que los requisitos del software cambian, pero el impacto del
cambio varia según el momento en que se introduzca.
C) Mitos de los desarrolladores. Los mitos en los que aún creen muchos desarrolladores
se han ido fomentando durante cuatro décadas de cultura informática. Durante los
primeros días de desarrollo de software, la programación se veía como un arte. Las viejas
formas u actitudes tardan en morir.
Realidad. Desde el principio del proyecto se puede aplicar uno de los mecanismos
más efectivos para garantizar la calidad del software- la revisión técnica formal.
1.1.2 Paradigmas
Reconocer los problemas, causas y demoler los mitos del software son los primeros pasos
a solucionar. Pero las propias soluciones tienen que proporcionar asistencia práctica a la
persona que desarrolla un software, mejorar la calidad del software, por ultimo permitir al
mundo del software mantenerse en paz con le mundo del hardware.
No existe un único enfoque para solucionar el mal del software. Sin embargo, para
solucionar este problema se tendrán que utilizar:
Con esto se puede conseguir una disciplina para el desarrollo del software.
Tipos de paradigmas:
1. Modelo cascada
2. Modelo prototipo
3
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
3. Modelo incremental
4. Modelo espiral
5. Técnicas de 4a. generación
Definiciones:
La calidad del software puede medirse después de elaborado el producto. Pero esto
puede resultar muy costoso si se detectan problemas deriva dos de imperfecciones en el
diseño, por lo que es imprescindible tener en cuenta tanto la obtención de la calidad
como su control durante todas las etapas del ciclo de vida del software.
4
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad,
tanto para la labor de desarrollo como para el control de la calidad del software.
La política establecida debe estar sustentada sobre tres principios básicos: tecnológico,
administrativo y ergonómico.
Para controlar la calidad del software es necesario, ante todo, definir los parámetros,
indicadores o criterios de medición, ya que, como bien plantea Tom De Marco, "usted no
puede controlar lo que no se puede medir".
Las cualidades para medir la calidad del software son definidas por innumerables autores,
los cuales las denominan y agrupan de formas diferentes. Por ejemplo, John Wiley define
métricas de calidad y criterios, donde cada métrica se obtiene a partir de combinaciones
de los diferentes criterios. La Metodología para la evaluación de la calidad de los medios
de programas de la CIC, de Rusia, define indicadores de calidad estructurados en cuatro
niveles jerárquicos: factor, criterio, métrica, elemento de evaluación, donde cada nivel
inferior contiene los indicadores que conforman el nivel precedente. Otros autores
identifican la calidad con el nivel de complejidad del software y definen dos categorías de
métricas: de complejidad de programa o código, y de complejidad de sistema o estructura.
Todos los autores coinciden en que el software posee determinados índices medibles que
son las bases para la calidad, el control y el perfeccionamiento de la productividad.
Una vez seleccionados los índices de calidad, se debe establecer el proceso de control, que
requiere los siguientes pasos:
5
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
Seleccionar una medida que pueda ser aplicada al objeto de control. Para cada
clase de software es necesario definir los indicadores y sus magnitudes.
Crear o determinar los métodos de valoración de los indicadores: métodos
manuales como cuestionarios o encuestas estándares para la medición de criterios
periciales y herramientas automatizadas para medir los criterios de cálculo.
Definir las regulaciones organizativas para realizar el control: quiénes participan
en el control de la calidad, cuándo se realiza, qué documentos deben ser revisados
y elaborados, etc.
6
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
El software resultante fue de órdenes de magnitud más grande y más complejo que los
sistemas de software previos.
Entre más crezca nuestra habilidad para producir software, también lo hará la complejidad
de los sistemas de software solicitados. Las nuevas tecnologías resultantes de la
convergencia de las computadoras y de los sistemas de comunicación impusieron nuevas
demandas a los ingenieros de software. Por esta razón, y debido a que muchas compañías
no aplican de forma efectiva las técnicas de la ingeniería de software, aún tenemos
problemas. Las cosas no están tan mal como los fatalistas sugieren. Sin embargo, existe
mucho por mejorar.
Hemos tenido un gran proceso desde 1968 y que el desarrollo de esta ingeniería ha
mejorado considerablemente nuestro software. Hemos desarrollado métodos efectivos
de especificación, diseño e implementación del software. Las nuevas notaciones y
herramientas reducen el esfuerzo requerido para producir sistemas grandes y complejos.
Los ingenieros de software pueden estar orgullosos de sus logros. Sin software complejo
no habríamos explorado el espacio, no tendríamos Internet y Telecomunicaciones
modernas, y todas las formas de viajar serian más peligrosas y caras. Dicha ingeniería ha
hecho enormes contribuciones en su corto periodo de vida.
Es una disciplina que comprende todos los aspectos de la producción de software desde
las etapas iniciales de la especificación del sistema, hasta el momento de éste, después de
que se utiliza.
7
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
1.- “Disciplina de la Ingeniería” Los ingenieros hacen que las cosas funcionen. Aplican
teorías, métodos y herramientas donde sean convenientes, pero las utilizan de forma
selectiva y siempre tratando de describir soluciones a los problemas, aun cuando no
existan teorías y métodos aplicables para resolverlos.
Los ingenieros, también saben que deben trabajar con restricciones financieras Y
organizacionales, por lo que buscan soluciones tomando en cuenta estas restricciones.
a) METODO
8
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
COMPONENTE DESCRIPCIÓN EJEMPLO
Descripciones del Descripción de los modelos del Sistema Modelos de objetos, de
modelo del sistema que se desarrollará y la notación flujo de datos, de maquinas
utilizada para definir los modelos. de estado, etc.
Reglas Restricciones que siempre aplican a los Cada entidad de un modelo
modelos de sistemas. de sistema debe tener
nombre único.
Recomendaciones Heurística que caracteriza una buena Ningún objeto debe tener
práctica de diseño en este método. más de 7 subobjetos
Seguir estas recomendaciones debe dar asociados a el.
como resultado un modelo del sistema
bien organizado.
Guías en el proceso Descripciones de las actividades que Loa atributos de los objetos
deben seguirse para desarrollar los deben documentarse antes
modelos del sistema y la organización de definir las operaciones
de estas actividades. asociadas a un objeto.
b) TÉCNICA
Técnicas de caja blanca (o caja de vidrio) de QA se aplica a los componentes que forman la
unidad que se esta probando. Encender el televisor, cambiar los canales y luego observar
su calidad equivaldría a la técnica de la caja negra. Probar el aparato de manera que
funcione cada circuito es una técnica de caja blanca, por que involucra los componentes
que conforman el televisor. Los procesos AQ que no son uno de estos dos extremos
suelen llamarse técnicas de caja gris. Verificar la mayor parte de los componentes de su
televisor es una técnica de caja gris. En el sentido estricto, la diferencia entre las técnicas
de caja blanca y caja gris no siempre esta bien definida.
Aunque muchas veces se piensa en las cajas negras y blancas en el contexto de las
pruebas, estos conceptos se aplican a varias actividades de aseguramiento de la calidad.
Las técnicas de caja blanca requieren que el ingeniero piense en la estructura, forma y
propósito del artefacto que examina. Esto incluye usar métodos formales e inspección.
9
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
INTERVENCIÓN DE QA
c) HERRAMIENTA
Los grandes proyectos, sencillamente se pueden manejar sin al menos una de estas
componentes CASE. Por ejemplo en un proyecto grande, las herramientas de
administración de configuración son indispensables.
10
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
11
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
Se suele suponer que para crear un entorno CASE efectivo, debe incluir todas las
categorías de herramientas, pero esto es sencillamente falso. Se puede dar lugar a
confusión (o antagonismos) al situar una herramienta determinada dentro de una
categoría cuando otros podrían pensar que se ha omitido una categoría, eliminando, d
esta forma, un conjunto completo de herramientas de entornos CASE.
Además la categorización simple tiende hacer llena, esto es, no aparece una interacción
jerárquica de las herramientas o de las relaciones entre ellas. Pero aun asumiendo todos
estos riesgos, es necesario crear una taxónoma para comprender mejor el alcance del
CASE y para apreciar mejor donde se pueden aplicar estas herramientas en el proceso de
ingeniería del software.
Las herramientas CASE se pueden clasificar por su función, por su papel como
instrumentos para el personal técnico a los directivos, por la arquitectura del entorno
(Hardware y Software) que los soportan e incluso por su origen y coste.
12
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
13
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
“Una disciplina que comprende todos los aspectos de la producción de software
desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento
de éste después de que se utiliza” (Sommerville 2002).
Sin embargo, dentro de estos cambios, las personas encargadas de la elaboración del
software se han enfrentado a problemas muy comunes: unos debido a la exigencia cada
vez mayor en la capacidad de resultados del software, debido al permanente cambio de
condiciones lo que aumenta su complejidad y obsolescencia; y otros, debido a la carencia
de herramientas adecuadas y estándares de tipo organizacional encaminados al
mejoramiento de los procesos en el desarrollo del software.
Una necesidad sentida en nuestro medio es el hecho de que los productos de software
deben ser desarrollados con base en la implantación de estándares mundiales, modelos ,
sistemas métricos, capacitación del recurso humano y otros principios y técnicas de la
ingeniería software que garanticen la producción de software de calidad y competitividad
a nivel local e internacional.
En los primeros años del software, las actividades de elaboración de programas eran
realizadas por una sola persona utilizando lenguajes de bajo nivel y ajustándose a un
computador en especial, que generaban programas difíciles de entender, aun hasta para
su creador, después de algún tiempo de haberlo producido. Esto implicaba tener que
repetir el mismo proceso para desarrollar el mismo programa para otras máquinas. Por
consiguiente, la confiabilidad, facilidad de mantenimiento y cumplimiento no se
garantizaban y la productividad era muy baja.
14
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
Conforme se incrementaba la tecnología de los computadores, también crecía la demanda
de los productos de software, pero mucho más lentamente, tanto que hacia 1990 se decía
que las posibilidades de software estaban retrasadas respecto a las del hardware en un
mínimo de dos generaciones de procesadores y que la distancia continuaba aumentando.
Durante décadas se ha hablado de una crisis del software. Sin embargo, por crisis
entendemos normalmente un estado pasajero de inestabilidad, que tiene como resultado
un cambio de estado del sistema o una vuelta al estado inicial, en caso de que se tomen
las medidas para superarla. Teniendo en cuenta esto, el software, más que padecer una
crisis podríamos decir que padece una enfermedad crónica. Los problemas que surgieron
cuando se empezó a desarrollar software de una cierta complejidad siguen existiendo
actualmente, sin que se haya avanzado mucho en los intentos de solucionarlos.
Estos problemas son causados por las propias características del software y por los errores
cometidos por quienes intervienen en su producción. Entre ellos podemos citar:
A la hora de abordar un proyecto de una cierta complejidad, sea en el ámbito que sea, es
frecuente que surjan imprevistos que no estaban recogidos en la planificación inicial, y
como consecuencia de estos imprevistos se producirá una desviación en los costes del
proyecto. Sin embargo, en el desarrollo de software lo más frecuente es que la
planificación sea prácticamente inexistente, y que nunca se revise durante el desarrollo
del proyecto. Sin una planificación detallada es totalmente imposible hacer una
estimación de costes que tenga alguna posibilidad de cumplirse, y tampoco se pueden
identificar las tareas conflictivas que pueden desviarnos de los costes previstos.
Los proyectos software tienen, por lo general, una duración mucho mayor a la esperada.
Como consecuencia de esto los costes se disparan y la productividad y los beneficios
disminuyen. Uno de los factores que influyen en esto, es la falta de unos propósitos claros
o realistas a la hora de comenzar el proyecto. La mayoría del software se desarrolla a
partir de unas especificaciones ambiguas o incorrectas, y no existe apenas comunicación
con el cliente hasta la entrega del producto. Debido a esto son muy frecuentes las
modificaciones de las especificaciones sobre la marcha o los cambios de última hora,
después de la entrega al cliente. No se realiza un estudio detallado del impacto de estos
cambios y la complejidad interna de las aplicaciones crece hasta que se hacen
virtualmente imposibles de mantener y cada nueva modificación, por pequeña que sea, es
más costosa, y puede provocar el fallo de todo el sistema.
c) La calidad es mala.
16
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
a) El recurso computacional.
Equipo de soporte: son todas las herramientas que se utilizan para desarrollar y
darle mantenimiento al sistema.
b) El recurso humano.
17
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
Los usuarios son aquellos empleados que interactúan con el sistema como pueden ser los
gerentes y empleados de una organización. El tipo de usuarios depende del grado de
participación que tengan en el sistema.
A. Usuarios primarios: son los que interactúan con el sistema. Ellos alimentan al
sistema con los datos de entrada o reciben salidas por algún medio de salida.
B. Usuarios indirectos: son aquellos que se benefician de los resultados o reportes
generados por los sistemas pero que no interactúan de manera directa con el
hardware o software.
C. Usuarios gerente: son los usuarios que tienen responsabilidades administrativas
dentro de los sistemas de aplicación. Esto usuarios son los que utilizan el sistema
con mayor frecuencia. Si este usuario no utiliza de forma directa o indirecta el
sistema, no tendrán la autoridad para aprobar la creación de un sistema de
información, además de no contar con la responsabilidad ante la organización de la
efectividad de los sistemas, debido a que estos usuarios deben de participar en el
desarrollo de sistema.
D. Usuarios directivos: estos usuarios toman ciertas responsabilidades en el
desarrollo de los sistemas de información. El que este tipo de usuario tome
decisiones sobre la existencia o no de un sistema de información en la organización
es una función de riesgos, ya que en ocasiones los sitemas de información
desarrollados en una forma inadecuada pueden entorpecer e incluso dañar a las
actividades de la organización.
Cabe hacer la consideración de que no todos los usuarios finales tienen la misma
experiencia, algunos nunca han usado una computadora, mientras otros interactúan
cotidianamente con un sistema a de información. Cada grupo debe ser capaz de utilizar el
sistema con facilidad y de manera oportuna cuando sea necesario, aunque su empleo no
forme parte de la rutina cotidiana. Por lo que las características que deberá tener un
sistema de información deberán contemplar la satisfacción de las necesidades de los
usuarios ocasionales. Los cuatro tipos de usuarios son importantes; cada uno de ellos
paseé información esencial sobre las funciones de la organización y hacia dónde se dirige
ésta. Los analistas proporcionan las ideas con respecto a las mejores formas de usar
eficientemente las computadoras.
18
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
c) Datos ó Información
d) Los programas
Dentro de este aspecto el analista deben considerar si el software a utilizar será comprado
a terceros o bien diseñar software de acuerdo a las necesidades del sistema. La elección
en cada caso dependerá del costo de cada una de las alternativas, el tiempo disponible
para el desarrollo y de la disponibilidad de programadores (acción que puede ejercer el
analista como analista programador).
En caso de seleccionar el desarrollo del software se tendrán que realizar todas y cada una
de la técnicas que para el desarrollo de software se conocen y sean adecuadas
dependiendo de la pericia del programador. Y de ahí se debe de seleccionar el lenguaje de
programación.
Por ello el analista junto con el grupo de trabajo deberá elegir y aplicar el lenguaje de
programación más adecuado para la realización del software para desarrollar el sistema.
La elección del software dependerá en gran parte del conocimiento y experiencia del
analista al usar determinados lenguajes; otro tipo de elemento que determinará la
aplicación de un lenguaje será el tipo de sistema a realizar, ya que dependiendo de lo que
se desee en cuestión del sistema, se seleccionará el lenguaje que facilite su creación.
e) La documentación
Estandarizar la documentación.
Facilitar el desarrollo de la misma.
Ahorrar tiempo.
Una vez contemplados los puntos anteriores, es necesario aplicar estas ventajas para
realizar la documentación del sistema, debido a que si se logra una documentación
eficiente del sistema se tendrán las siguientes ventajas:
Características principales:
Ventajas:
20
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
A. La funcionalidad se encuentra dividida en módulos, los cuales
pueden instalarse de acuerdo con los requerimientos del cliente.
Ejemplo: Ventas, Materiales, Finanzas, Control de Almacén, etc.
B. Optimización de procesos empresariales.
C. Acceso a información de forma confiable, verás y a tiempo.
D. La posibilidad de compartir información con las demás área de la
organización buscando integridad y buen desarrollo de los procesos.
E. Eliminación procesos incensarios dentro de la compañía.
Desventajas:
Ventajas:
Desventajas
21
DR. ANTONIO NAVARRETE
INGENIERIA DE SOFTWARE
SISTEMAS Y COMPUTACION
3) Sistemas SCM. Supply Chain Management- Gestión de la Cadena de Suministro.
Ventajas:
Desventajas:
Indicaciones de la Unidad 1:
22
DR. ANTONIO NAVARRETE