Вы находитесь на странице: 1из 20

UNIDAD I.

CONCEPTOS INTRODUCTORIOS
1.1 Introduccin a los Sistemas.
Conceptos clave:

Se conoce como software
[1]
al equipamiento lgico o soporte lgico de una computadora digital; comprende el
conjunto de los componentes lgicos necesarios que hacen posible la realizacin de tareas especficas, en
contraposicin a los componentes fsicos, que son llamados hardware.

Software
[2]
: Conjunto de programas, instrucciones y reglas informticas para ejecutar ciertas tareas en una
computadora.

El software, como programa, consiste en un cdigo en un lenguaje mquina especfico para un procesador
individual. El cdigo es una secuencia de instrucciones ordenadas que cambian el estado del hardware de una
computadora.






1. Diccionario de la lengua espaola 2005 (2010). wordreference.com (ed.): software (diccionario). Espasa-Calpe. Consultado el 1 de febrero de 2010.

2. Http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=software. Consultado el 18 de agosto de 2011.

UNIDAD I. CONCEPTOS INTRODUCTORIOS
1.1 Introduccin a los Sistemas.
Existen varias definiciones similares aceptadas para software, pero probablemente la ms formal sea la
siguiente:










Considerando esta definicin, el concepto de software va ms all de los programas de computacin en sus
distintos estados: cdigo fuente, binario o ejecutable; tambin su documentacin, los datos a procesar e incluso
la informacin de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo no fsico
relacionado.



3. IEEE Std, IEEE Software Engineering Standard: Glossary of Software Engineering Terminology. IEEE Computer Society Press, 1993


Es el conjunto de los programas de cmputo, procedimientos, reglas,
documentacin y datos asociados que forman parte de las operaciones de un
sistema de computacin
[3]
.
UNIDAD I. CONCEPTOS INTRODUCTORIOS
1.1 Introduccin a los Sistemas.
TIPOS DE SOFTWARE


El software puede aplicarse a numerosas situaciones del mundo real. En primer lugar, a todos aquellos
problemas para los que se haya establecido un conjunto especfico de acciones que lleven a su resolucin
(esto es, un algoritmo). En estos casos, utilizaremos lenguajes de programacin procedimentales para
implementar estos algoritmos. Tambin puede aplicarse a situaciones en las que el problema puede
describirse formalmente, por lo general en forma recursiva. En estos casos no necesitamos describir el
mtodo de resolucin, es decir cmo se resuelve el problema, sino que bastar con describir en problema
en s, indicando cul es la solucin deseada, y utilizaremos lenguajes declarativos para ello. Tambin
puede aplicarse a problemas que los humanos resolvemos utilizando multitud de reglas heursticas
posiblemente contradictorias, para lo cual utilizaremos un sistema experto e incluso para problemas de los
cuales no tenemos una idea clara de cmo se resuelven, pero de los que conocemos cul es la solucin
apropiada para algunos ejemplos de los datos de entrada. En este caso utilizaremos redes neuronales.
UNIDAD I. CONCEPTOS INTRODUCTORIOS
1.1 Introduccin a los Sistemas.
LENGUAJES DECLARATIVOS.

La Programacin Declarativa es un paradigma de programacin que est basado en el desarrollo de
programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones,
restricciones, ecuaciones o transformaciones que describen el problema y detallan su solucin. La solucin
es obtenida mediante mecanismos internos de control, sin especificar exactamente cmo encontrarla (tan
slo se le indica a la computadora que es lo que se desea obtener o que es lo que se est buscando).

En la programacin imperativa se describe paso a paso un conjunto de instrucciones que deben
ejecutarse para variar el estado del programa y hallar la solucin, es decir, un algoritmo en el que se
describen los pasos necesarios para solucionar el problema.

En la programacin declarativa las sentencias que se utilizan lo que hacen es describir el problema que se
quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto ltimo se realizar mediante
mecanismos internos de inferencia de informacin a partir de la descripcin realizada.

Algunos lenguajes declarativos
Lisp (Programacin funcional) Haskell (Programacin funcional)
Prolog (Programacin Lgica) ML (Programacin funcional)
F-Prolog (Programacin Lgica Difusa) Curry (Programacin Lgico-Funcional)
UNIDAD I. CONCEPTOS INTRODUCTORIOS
1.1.3 Clasificacin de Sistemas.
SOFTWARE

Son las instrucciones responsables de que el Hardware realice su tarea. Como concepto general, el
software puede dividirse en varias categoras basadas en el tipo de trabajo realizado.


Se clasifican generalmente en tres grandes rubros:


Sistemas Operativos.



Lenguajes de Programacin.



Programas de Aplicacin.
UNIDAD I. CONCEPTOS INTRODUCTORIOS
1.1.3 Clasificacin de Sistemas.
Sistema Operativo. Software que controla una
computadora. Tiene tres grandes funciones:

Coordina y manipula el hardware de toda la
computadora, como la memoria, las impresoras,
las unidades de disco, etc.


Organiza los archivos en diversos dispositivos
de almacenamiento como discos flexibles, discos
duros, memorias extrables, etc.


Gestiona los errores del hardware y la prdida de
datos.
UNIDAD I. CONCEPTOS INTRODUCTORIOS
1.1.3 Clasificacin de Sistemas.
Lenguajes de Programacin. Software que permite
desarrollar actividades especficas en una computadora.


Permite desarrollar sistemas de aplicacin general.



Permite la administracin de recursos fsicos y lgicos.



Permite la automatizacin de actividades administrativas
Mediante la implementacin de BD.
UNIDAD I. CONCEPTOS INTRODUCTORIOS
1.1.3 Clasificacin de Sistemas.
Programas de Aplicacin: un programa de
aplicacin es un tipo de software diseado para
facilitar al usuario la concrecin de un cierto
trabajo. Esta caracterstica lo diferencia de otros
tipos de programas, como los sistemas operativos
(que son los que hacen funcionar a la
computadora), los lenguajes de programacin (que
permiten crear los programas informticos en
general) y las utilidades (que realizan tareas de
mantenimiento o de uso general).
Es una disciplina que comprende todos los aspectos de la produccin de software, desde las
etapas iniciales de la especificacin del sistema, hasta el mantenimiento de este despus de que se
utiliza.

Segn la definicin del IEEE:

Software es la suma total de los programas de computadora, procedimientos, reglas, la
documentacin asociada y los datos que pertenecen a un sistema de cmputo".

Un producto de software es un producto diseado para un usuario".

Ingeniera de Software Es un enfoque sistemtico del desarrollo, operacin, mantenimiento y
retiro del software.
.
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 1 Definicin de Ingeniera de Software
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 2 Historia de la Ingeniera de Software
As lo explic el
cliente
As lo entendi el
jefe de proyectos
As lo dise el
analista
As lo escribi el
programador
As lo describi el
de marketing
Documentacin
del proyecto
Lo que se instal
Cmo se le
cobr al cliente
Cmo fue
respaldado
Lo que el cliente
necesitaba
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 2 Historia de la Ingeniera de Software
Ingeniera
de Software
Software fuera
de control
Software no
costeable
Mtodos para
desarrollo de sw
El Software es un elemento del sistema que es lgico. Por tanto, tiene unas caractersticas
considerablemente distintas a las del hardware.
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 3 Caractersticas del Software.
El software se desarrolla, no se fabrica.

n
d
i
c
e

d
e

f
a
l
l
o
s

Tiempo
Mortalidad
temprana
Se estropea
Curva de fallos del hardware

n
d
i
c
e

d
e

f
a
l
l
o
s

Tiempo
Incremento del
ndice de fallos
por efectos
laterales
Cambio
Curva real
Curva idealizada
Curvas de fallos real e idealizada del software
El software no se estropea
La mayora del Software se construye a medida.
Mitos de la Administracin
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 4 Mitos del Software.
Si se falla en la planificacin, se puede aadir ms programadores y adelantar el tiempo
perdido

Realidad:
Ley de Brooks:
"Agregar gente a un proyecto atrasado, lo atrasa an mas".
Razn: Crear software no es una tarea particionable.

Mi equipo dispone de las herramientas de desarrollo de software mas avanzadas.

Realidad:
"Agregar mayor tecnologa no garantiza el desarrollo de un software de calidad".
Razn: Si se elige una metodologa incorrecta o en su defecto la planeacin es inadecuada de igual
forma el fracaso inminente independientemente del soporte de hardware que se tenga.



Mitos del Cliente
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 4 Mitos del Software.
Una declaracin general de los objetivos es suficiente para empezar a escribir los
programas. Se pueden especificar los detalles mas adelante.

Realidad:
Una mala definicin inicial es la principal causa del trabajo en vano. Es esencial una descripcin
formal y detallada del mbito de la informacin, funciones, rendimiento, interfaces y criterios de
validacin. Esto solo puede determinarse despus de una exhaustiva comunicacin entre el cliente
y el analista.

Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse
fcilmente ya que el software es flexible.

Realidad:
El impacto del cambio vara segn el momento en el que se introduzca.

Etapa de desarrollo Costo del cambio
Definicin $X
Desarrollo $1.5X hasta $6X
Despus de la entrega $60X hasta $100X

Mitos de los Desarrolladores
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 4 Mitos del Software.
Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha
terminado.

Realidad:
Los datos industriales indican que entre el 50% y el 70% de todo el esfuerzo dedicado a un
programa se realizar despus de que se le haya entregado al cliente por primera vez.

hasta que no tenga el programa ejecutndose, realmente no tengo forma de comprobar su
calidad

Realidad:
Existen tcnicas que se pueden aplicar desde el principio y ese es el objetivo de la Ingeniera de
Software
Nivel 1
Ing. de Software Orientada
hacia la calidad.
Un enfoque de Calidad
Nivel 2
Actividades, mtodos,
prcticas y tecnologas
Proceso
Nivel 3
Pasos necesarios del
ciclo de vida
Mtodos
Herramientas
Nivel 4
Soporte para los
mtodos y procesos.
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2.5 Capas de la Ingeniera de Software.
Un Proceso de Software es un conjunto de actividades y resultados asociados que conducen a
la creacin de un producto de software
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2. 6 El Proceso del Software.
Actividades Fundamentales:
Especificacin del Software.
Se debe definir la funcionalidad del software y las restricciones en sus operaciones
Diseo e Implementacin del Software.
Se debe producir software que cumpla con su especificacin.
Validacin del Software.
Se debe validar el software para asegurar que hace lo que el cliente desea.
Evolucin del Software.
El software debe evolucionar para cumplir los cambios en las necesidades del usuario
La administracin de la calidad del Software se estructura en tres actividades principales:
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2.7 Software de Alta Calidad.
Aseguramiento de la calidad: El establecimiento de un marco de trabajo de procedimientos
y estndares organizacionales que conduce a software de alta calidad.
Planeacin de la calidad: La seleccin de procedimientos y estndares adecuados a partir
de este marco de trabajo y la adaptacin de stos para un proyecto de software especfico.
Control de la calidad: La definicin y promulgacin de los procesos que aseguran que los
procedimientos y estndares para la calidad del proyecto son seguidos por el equipo de
desarrollo de software
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2.8 Factores de Calidad y Productividad.
Caractersticas que debe tener un software de calidad
Es posible medir la calidad del Software.
o Confiabilidad. Pocos errores.
o Flexibilidad. Adaptable a nuevas situaciones.
o Robustez. No falla.
o Comprensin. Es entendible el cdigo?
o Fcil de usar. Ergonmico.
o Reusable. Se pueden usar porciones en otro software.
o Rpido. (medicin objetiva)
o Mantenible. Fcil de hacerle cambios.
UNIDAD II. INTRODUCCIN A LA INGENIERA DE SOFTWARE.
2.8 Factores de Calidad y Productividad.
Calidad del Producto
Calidad del
proceso
Tecnologa de
desarrollo
Calidad del
personal
Costo, tiempo y
duracin

Вам также может понравиться