Está en la página 1de 19

INGENIERIA DEL SOFTWARE

1
Cap. 1 Visión General

Conceptos generales
 Software: Programa para computadora de índole intangible.
 Sistema de Software: Diversidad de programas independientes y
relacionados a la vez para cumplir con un mismo objetivo, configurados para
una normal ejecución, con una adecuada documentación y con sitios web para
la descarga de productos recientes.
 Productos de software: Programas desarrollados que se vende a los
clientes., ya sea para un cliente en particular o para un mercado en general, es
decir pueden ser productos personalizados, genéricos o mixtos.
 Ingeniería de Software: Disciplina de ingeniería que comprende todos los
aspectos de la producción del software. La ciencia de la computación
comprende la teoría y la ingeniería comprende las formas prácticas para
desarrollar y entregar un software útil.
 Proceso de software: Un conjunto de actividades cuya meta es el desarrollo
o la evolución del software.
2
Cap. 1 Visión General
EL SOFTWARE
 Es intangible, desde el punto de vista de propiedad intelectual es el fruto del
intelecto de una o varias personas.
 Características:
 Es inmaterial e invisible.
 El software se desarrolla, no se fabrica.
 Es integrado, complejo y muy maleable.
 Debe ser útil y satisfacer las necesidades del comprador.
 Visión de Servicio:
 Crear un producto para comercializar (genérico)
 Servicio personalizado
 Servicio personalizado para comercializar (mixto).
 Visión interna de una empresa:
 Para soportar una necesidad específica.
 Para soportar una necesidad interna y comercializarlo.
3
Cap. 1 Visión General
EL SOFTWARE
 Según la utilización:
 De gestión.
 Producción y control de procesos.
 Robótica.
 De Ingeniería y científico.
 Ofimático. (Oficinas)
 De formación y divulgación.
 Domótico. (Automatización y seguridad de hogares).
 Ocio y Juegos

 Según su funcionalidad:
 Software de sistemas (empresas y usuario)
 Comunicaciones
 Empotrado.
4
Cap. 1 Visión General

EL SOFTWARE

 El alcance del software debe ser limitado y claro, basado en los


requerimientos y posibilidades de desarrollo.
 El alcance del software describe: Función, Rendimiento, Restricciones,
Interfaces y Confiabilidad
 Visión General:
Estimación de Recursos:
Personal
Costo US$
Tiempo
Requiere:
Experiencia
Información histórica
Medidas cuantitativas de datos cualitativos
5
Cap. 1 Visión General

Conceptos generales
 Modelo de Proceso de software: Una representación simplificada y gráfica
del proceso desde una perspectiva específica (Modelamientos).
 Costos de la Ingeniería de Software: El 60% del costo en recursos se va en
la fase de desarrollo. Un software personalizado proyectado a largo plazo (5
años) y que está en uso, sus costos de evolución exceden a los de costos de
desarrollo de 3 a 4 veces.
 CASE (Computer Aided Software Engineering ó Ingeniería del Software
asistida por el ordenador): Sistemas de software que intentan proporcionar
ayuda automatizada a las actividades del proceso de software, especialmente
en la fase de diseño.
 Atributos de un buen software: El software debe tener la funcionalidad y el
rendimiento requerido por el usuario, además de ser mantenible, confiable y
fácil de usar.
 Retos a enfrentar: Los clientes demandan a los ingenieros de sistemas, 2
retos fundamentales: que cumplan los tiempos de entrega y que el desarrollo
6
del software sea fiable para obtener un producto de calidad.
Cap. 1 Visión General

Conceptos generales
• MISION DE LA INGENIERIA DE SOFTWARE: LIDERAR EL
DESARROLLO DE PROYECTOS DE SOFTWARE CON EL FIN DE OBTENER
UN PRODUCTO DE CALIDAD QUE SATISFAGA LOS PROPOSITOS PARA LOS
CUALES FUE CREADO.
PERSPECTIVAS SOBRE LA CALIDAD
• La visión trascendental, según la cual la calidad es algo que se puede
reconocer pero no se puede definir, abstracto y subjetivo.
• La visión del usuario, para la cual la calidad es adecuada a sus propósitos y
necesidades, cumple con los requerimientos planteados por el usuario.
• La visión de manufactura, donde la calidad es conforme a las
especificaciones técnicas de diseño y programación.
• La visión del producto, donde la calidad está vinculada a las características
funcionales, operativas y de eficiencia, inherentes en el producto.
• La visión basada en valor, según la cual la calidad depende únicamente de
la cantidad de dinero que el usuario está dispuesto a pagar por el producto.7
Cap. 1 Visión General

Atributos de un buen software.


 Mantenibilidad: El software debe escribirse para que pueda evolucionar ante
las necesidades de cambio de los clientes. El cambio en un software es una
consecuencia inevitable por el cambio en el entorno del negocio.
 Confiabilidad: Contempla las características de fiabilidad, protección y
seguridad. El software confiable no debe causar daños físicos o económicos
en el caso de una falla del sistema; los cálculos deben estar correctos.
 Eficiencia: El Software no debe hacer que se malgasten los recursos del
sistema como la memoria y los ciclos de procesamiento, para obtener así
aplicaciones con un adecuado tiempo de respuesta. Básicamente la eficiencia
hace referencia en la mejor utilización de los recursos, en tanto que la eficacia
hace referencia en la capacidad para alcanzar un objetivo.
 Usabilidad: El software debe ser fácil de utilizar, sin esfuerzo adicional, es
decir debe tener una interfaz adecuada y amigable para el usuario y con una
documentación adecuada.
8
Cap. 1 Visión General

Responsabilidad profesional y ética


 Confidencialidad: Se debe respetar la confidencialidad del empleador o del
cliente sobre sus datos, información, aplicaciones y negocio en general,
independientemente de que se haya firmado un acuerdo de confidencialidad.
 Competencia: No se debe falsificar el nivel de competencia, ni aceptar
conscientemente trabajos que están fuera de la capacidad técnica.
 Derechos de propiedad intelectual: Se debe estar consciente de las leyes
locales que gobiernan el uso de la propiedad intelectual como las patentes y el
copyright. Debe asegurarse de que la propiedad intelectual esté protegida en
los equipos dentro de la empresa y en los clientes.
 Uso inapropiado de las computadoras: No se debe emplear las habilidades
técnicas para utilizar de forma inapropiada las computadoras de otras
personas. Estos usos inapropiados pueden ir desde utilizar juegos en una
computadora hasta la difusión de virus.

9
Cap. 1 Visión General

Principios de Código de Ética


 Público: Los ingenieros de software deberán actuar en consonancia con el
interés público, crear algo útil.
 Cliente y empleador: Los ingenieros deben responder al interés del cliente
como empresarios y al interés del empleador como empleados, siempre que
sean consecuentes al interés público.
 Producto: Asegurar que los productos desarrollados y las modificaciones
asociadas cumplan con los más altos estándares de calidad profesional.
 Juicio: Mantener siempre la integridad e independencia en sus juicios
profesionales y no responder a manipulaciones.
 Gestión: Suscribir y promocionar un enfoque ético en la gestión del
desarrollo y mantenimiento del software.
 Profesión: Mantener la integridad y reputación de la profesión.
 Colegas: Ser imparciales y apoyar en lo posible a sus colegas.
 Personal: Practicar su profesión con un enfoque ético, acompañado siempre
de honradez, sencillez y respeto. 10
Cap. 1 Sistemas Socio-Técnicos

Conceptos Generales
 Sistemas Socio-Técnicos: Son sistemas que incluyen hardware, software,
políticas y personas (componentes) que se sitúan dentro de una organización
y están diseñados para ayudar a la organización y a cumplir algún objetivo
amplio a nivel empresarial.
 Propiedades emergentes de un sistema: Son características adicionales de
los sistemas que emergen sólo cuando sus componentes básicos han sido
integrados, éstas propiedades son el volumen, el rendimiento, la fiabilidad, la
usabilidad, la reparabilidad, la seguridad y la protección. El éxito o fracaso
de un sistema depende a menudo de éstas propiedades emergentes.
 Ingeniería de Sistemas: Es la actividad profesional para especificar, diseñar,
implementar, validar, utilizar y mantener los sistemas socio-técnicos.
 Ingeniero de Sistemas: Profesional que no sólo tratan con el software, sino
también con el hardware y las interacciones del sistema con los usuarios, el
negocio y su entorno. Maneja una actividad interdisciplinaria ya que agrupa
personas con diferentes bases de conocimientos. 11
Cap. 1 Sistemas Socio-Técnicos

La Evolución y su entorno
 Evolución de Sistemas: Los sistemas evolucionan de acuerdo a las nuevas
perspectivas técnicas o de modelo de negocio. Por lo general son costosos ya
que son sistema que han permanecido por muchos años funcionando y a
menudo no registran razones o documentación del diseño original.
 Sistemas Heredados: Son sistemas informáticos socio-técnicos antiguos que
fueron desarrollados en el pasado y que aún se mantienen porque
proporcionan servicios esenciales del negocio. Es demasiado arriesgado
reemplazarlos ya que habría un serio riesgo de negocio en el caso que el
sistema de recambio no funcionara adecuadamente. Estos sistemas incluyen
procesos de negocio, software de aplicación, software de apoyo y sistema de
hardware. Ej. Contabilización de las transacciones de clientes en los Bancos.
 La Organización y las personas: Dentro de una organización existen
complejas relaciones entre los procesos de adquisición, desarrollo y operación
del sistema. Factores humanos y organizacionales como la estructura y las
políticas organizacionales influyen en los sistemas socio-técnicos. 12
Cap. 1 Sistemas Socio-Técnicos

Propiedades Emergentes
 Volumen: El espacio total ocupado varía dependiendo de cómo están
ordenados y conectados los montajes de los componentes de hardware,
software, políticas y personas.
 Fiabilidad: Depende de la confianza que exista en la funcionalidad de los
componentes, interacciones inesperadas en los procesos pueden causar
nuevos tipos de fallos y afectar la fiabilidad.
 Protección: Es la capacidad para resistir ataques, es una propiedad compleja
que no se puede medir fácilmente. Los ataques pueden ser ideados de forma
que no fueron previstos por los diseñadores y así vencer las protecciones
incorporadas.
 Reparabilidad: Poder arreglar un problema con el sistema una vez que haya
sido descubierto. Depende de la posibilidad de diagnosticar el problema,
acceder a los componentes defectuosos y modificarlos o reemplazarlos.
 Usabilidad: Refleja cómo es de fácil usar el sistema, dependiendo de los
componentes técnicos del sistema, sus operarios y su entorno. 13
Cap. 1 Sistemas Críticos

Conceptos Generales.
 Sistemas Críticos: Son aquellos sistemas en donde un fallo de
funcionamiento puede provocar pérdidas económicas importantes, daños
físicos o amenazas a la vida humana.
 Clases de Sistemas Críticos:
 A) Sistemas de seguridad crítico: Sistemas cuyo fallo de funcionamiento
puede provocar perjuicio, pérdidas de vida, o daños al medio ambiente. Ej:
Planta de fabricación de productos químicos o armamento militar.
 B) Sistemas de misión críticos: Sistemas cuyo fallo de funcionamiento puede
provocar errores en actividades dirigidas por objetivos. Ej: Sistema de
navegación para los aviones o naves espaciales.
 C) Sistemas de negocios críticos: Sistemas cuyo fallo de funcionamiento
puede provocar costos muy elevados para el negocio que los utiliza, ya sea
por errores en los cálculos o manejo de dinero electrónico. Ej: Sistema de
manejo de cuentas bancarias de miles de clientes, facturación de servicios
públicos a miles de usuarios. 14
Cap. 1 Sistemas Críticos

Confiabilidad de Sistemas Críticos.

 Confiabilidad: Propiedad que refleja el grado de confianza que el usuario


tiene sobre el sistema. Los atributos más importante de la confiabilidad son la
disponibilidad, fiabilidad, seguridad y protección.
 Ejemplos de confiabilidad:
 Un servidor de internet proporcionado por un ISP con miles de clientes.
Quality of service (calidad de servicio).
 Un escalpelo controlado por computadora usada para practicar incisiones en
operaciones quirúrgicas.
 Un sistema de control direccional usada en el lanzamiento de un vehículo
espacial.
 Un sistema de gestión de finanzas personales, a través de internet.

15
Cap. 1 Sistemas Críticos

Atributos de la Confiabilidad en los Sistemas Críticos.

 Disponibilidad: Atributo que el sistema posee para poder entregar los


servicios a los usuarios cuando se le soliciten en cualquier momento. Ej: Los
sistemas que utilizan las entidades públicas y privadas para el cobro de
facturas de acuerdo al horario. Los servicios de internet, cajeros automáticos
y telefónicos con horarios 24x7.
 Fiabilidad: Atributo del sistema para entregar los servicios de acuerdo a lo
especificado, de forma correcta, sin fallas o caídas. Si un sistema no es fiable
es difícil asegurar su seguridad o protección.
 Seguridad: Atributo que refleja la capacidad del sistema para funcionar
normalmente, sin amenazar o provocar daños a las personas, al negocio o al
entorno del sistema, aún si éste fallase.
 Protección: Atributo que refleja la capacidad para protegerse o resistir
ataques externos que pueden ser accidentales, negligentes o provocados.
16
Cap. 1 Sistemas Críticos

Terminología de la Fiabilidad.
 Fallo del Sistema (System Failure) : Evento que tiene lugar en algún
instante cuando el sistema no funciona como esperan sus usuarios.
Generalmente provocados por problemas de hardware. Ej: Fallo en los
procesos de telecomunicaciones ya sea por el servidor web, router o switch.
 Error del Sistema (System Error): Estado erróneo del sistema que puede
dar lugar a un comportamiento inesperado y transitorio del sistema operativo.
Ej: Al tratar de realizar un retiro de un cajero automático, el sistema se
reinicia sin ningún motivo.
 Defecto del Sistema (System Fault): Acción provocada por programas del
sistema que puede dar lugar a un error por defecto del sistema, especialmente
en aquellas opciones que no muy utilizadas por los usuarios. Ej: Al iniciar de
forma incorrecta una variable y al ser utilizada ésta provoque un error.
 Error Humano o Equivocación: Comportamiento humano que tiene como
consecuencia la introducción de datos defectuosos en el sistema.
17
Cap. 1 Sistemas Críticos

Terminología sobre Seguridad


 Accidente o percance : Evento o secuencia de eventos no planificados que
pueden causar daños físico o lesionar a su operador.
 Contingencia: Condición existente que posee el potencial de causar daño o
contribuir a un accidente, por lo tanto debe medirse la gravedad de las
contingencias y evitarse la existencia de las mismas Ej: Posible falla de un
sensor de obstáculos o trabajadores que manejan maquinarias con cuchillas.
 Probabilidad de la Contingencia: Probabilidad de la ocurrencia de eventos
que provocan una contingencia. Los valores de la probabilidad tienden a ser
arbitrarios, Ej: Se puede medir desde 1/100 hasta improbables.
 Riesgo: Medida de la probabilidad que el sistema provoque un accidente. Se
mide de acuerdo a la probabilidad y a la gravedad de la contingencia, para
determinar si el sistema utilizado es riesgoso.
 Daño: Medida de la pérdida resultante de un percance. Varía de un menor a
un mayor daño. Ej: El daño puede ir desde personas lesionadas y daños a la
propiedad hasta personas muertas por un accidente. 18
Cap. 1 Sistemas Críticos

Terminología sobre Protección


 Exposición: Posibles eventos de pérdida o daño que nace de un sistema
informático existente o en producción y que provocaría pérdida o daño de
datos, pérdida de tiempo y esfuerzo de recuperación.
 Vulnerabilidad: Debilidad de un sistema informático que se puede
aprovechar para provocar pérdidas o daños, Hay que evitar la vulnerabilidad
con permisos y claves adecuadas, ahora si un sistema no está conectado a la
red pública obviamente no podrá ser vulnerado por un ataque externo.
 Amenazas: Circunstancias generalmente ajenas o externas que
potencialmente pueden provocar pérdidas o daño, es decir es una
vulnerabilidad expuesta a un ataque.
 Ataque: Aprovechamiento de la vulnerabilidad de un sistema. Generalmente
se produce desde fuera de la empresa y con una intención deliberada de
causar algún daño.
 Control: Medida de protección que reduce la vulnerabilidad del sistema. La
encriptación podría ser un ejemplo de control que reduce la vulnerabilidad19

También podría gustarte