Sie sind auf Seite 1von 29

Universidad Nacional de Ingeniera

Regin Central - Juigalpa

Asignatura : Ingeniera de Software I


Unidad I : Introduccin a la Ingeniera de Software
Contenidos:
Sistemas Organizacionales
Concepto de Ingeniera de Software
Diferencia entre Ingeniera de Sistemas e
Ingeniera de Software
Mtodos de la Ingeniera de Software
Metodologa de la Ingeniera de Software
Herramientas CASE en la Ingeniera de
Software
Atributos de un buen Software

Docente: Elier Rocha Mircoles 02 de Agosto del 2017


Sistemas Organizacionales
A toda organizacin se le considera como un
sistema abierto compuesto de varios
subsistemas. Dicho sistema organizacional
recibe insumos (informacin, materiales,
gente), los transforma y los regresa en forma
de productos (bienes y servicios).
Desde este punto de vista un organismo social
no es simplemente un sistema social. Ms bien,
es la estructuracin e integracin de las
actividades humanas alrededor de distintas
tecnologas. Estas afectan a los diversos tipos
de insumos necesarios para la operacin de la
organizacin, la naturaleza de los procesos de
conversin y los productos obtenidos del
sistema. Sin embargo, el sistema social
determina la eficacia y eficiencia de la
utilizacin de la tecnologa.
Sistemas Organizacionales
Un sistema organizacional no es simplemente la unidad
administrativa contenida en el proceso de conversin. Un
sistema organizacional es la combinacin de la unidad
administrativa, con todos los elementos y los procesos que
interactan con la unidad, es decir:
El entorno en el que opera la unidad administrativa y que
influye en la unidad y es afectado por sta.
Insumos y productos de la unidad, conectados entre s por el
proceso de conversin y los mecanismos de retroalimentacin.
Software y Hardware necesario que se necesita para operar en
la organizacin.
Introduccin a la Ingeniera de Software
En la actualidad, el software tiene un papel dual. Es un producto y al mismo
tiempo es el vehculo para entregar un producto. En su forma de producto,
brinda el potencial de cmputo incorporado en el hardware de cmputo o,
con ms amplitud, en una red de computadoras a las que se accede por
medio de un hardware local. Ya sea que resida en un telfono mvil u opere
en el interior de una computadora central, el software es un transformador
de informacin produce, administra, adquiere, modifica, despliega o
transmite informacin que puede ser tan simple como un solo bit o tan
compleja como una presentacin con multimedios generada a partir de
datos obtenidos de decenas de fuentes independientes.
Como vehculo utilizado para distribuir el producto, el software acta como
la base para el control de la computadora (sistemas operativos), para la
comunicacin de informacin (redes) y para la creacin y control de otros
programas (herramientas y ambientes de software).
Introduccin a la Ingeniera de Software
En la actualidad, la enorme industria del software se ha convertido en un
factor dominante en las economas del mundo industrializado y las mismas
preguntas se sigue haciendo el programador cuando se construyen sistemas
modernos, extensos y complejos.
Por qu se requiere tanto tiempo para terminar el software?
Por qu son tan altos los costos de desarrollo?
Por qu no podemos detectar todos los errores antes de entregar el
software a nuestros clientes?
Por qu dedicamos tanto tiempo y esfuerzo a mantener los programas
existentes?
Por qu seguimos con dificultades para medir el avance mientras se
desarrolla y mantiene el software?
stas y muchas otras preguntas, denotan la preocupacin sobre el software y
la manera en que se desarrolla, preocupacin que ha llevado a la adopcin
de la prctica de la ingeniera del software.
Software
Son varias las definiciones que se le puede dar a la palabra
software, pero se puede decir que algunas de esas
definiciones son:
El software es un conjunto de instrucciones (programas
de cmputo) que cuando se ejecutan proporcionan las
caractersticas, funcin y desempeo buscados.
El software son las estructuras de datos que permiten que
los programas manipulen en forma adecuada la
informacin.
El software es informacin descriptiva tanto en papel
como en formas virtuales que describen la operacin y uso
de los programas.
Categoras de Software

Software de Sistemas
Software de Aplicacin
Software de Ingeniera y Ciencias
Software Incrustado
Software de lneas de Productos
Aplicaciones Web
Software de Inteligencia Artificial
Software de Sistemas
Conjunto de programas escritos para dar servicio a otros
programas. Determinado software de sistemas (por ejemplo,
compiladores, editores y herramientas para administrar
archivos) procesa estructuras de informacin complejas pero
deterministas.

Otras aplicaciones de sistemas (por ejemplo, componentes


de sistemas operativos, manejadores, software de redes,
procesadores de telecomunicaciones) procesan sobre todo
datos indeterminados.
Software de Aplicacin

Son programas aislados que resuelven una necesidad


especfica de negocios. Las aplicaciones en esta rea
procesan datos comerciales o tcnicos en una forma que
facilita las operaciones de negocios o la toma de
decisiones administrativas o tcnicas. Adems de las
aplicaciones convencionales de procesamiento de datos,
el software de aplicacin se usa para controlar funciones
de negocios en tiempo real (por ejemplo, procesamiento
de transacciones en punto de venta, control de procesos
de manufactura en tiempo real).
Software de Ingeniera y Ciencias

Estos sistemas se ha caracterizado por algoritmos


devoradores de nmeros, procesan gran cantidad de
informacin que servir para una investigacin o
elaboracin de un producto o artefacto tecnolgico. Estas
aplicaciones van de la astronoma a la vulcanologa, del
anlisis de tensiones en automviles a la dinmica orbital
del transbordador espacial, y de la biologa molecular a la
manufactura automatizada.
Software Incrustado
Este software reside dentro de un producto o sistema y se
usa para implementar y controlar caractersticas y
funciones para el usuario final y para el sistema en s. El
software incrustado ejecuta funciones limitadas y
particulares (por ejemplo, control del tablero de un horno
de microondas) o provee una capacidad significativa de
funcionamiento y control (funciones digitales en un
automvil, como el control del combustible, del tablero
de control y de los sistemas de frenado).
Software de Lneas de Producto

Este tipo de software es diseado para proporcionar una


capacidad especfica para uso de muchos consumidores
diferentes. El software de lnea de productos se centra en
algn mercado limitado y particular (por ejemplo, control
del inventario de productos) o se dirige a mercados masivos
de consumidores (procesamiento de textos, hojas de clculo,
grficas por computadora, multimedios, entretenimiento,
administracin de base de datos y aplicaciones para finanzas
personales o de negocios).
Aplicaciones Web
Son llamadas webapps, esta categora de software
centrado en redes agrupa una amplia gama de aplicaciones.
En su forma ms sencilla, las webapps son poco ms que un
conjunto de archivos de hipertexto vinculados que presentan
informacin con uso de texto y grficas limitadas. Sin
embargo, desde que surgi Web 2.0, las webapps estn
evolucionando hacia ambientes de cmputo sofisticados que
no slo proveen caractersticas aisladas, funciones de
cmputo y contenido para el usuario final, sino que tambin
estn integradas con bases de datos corporativas y
aplicaciones de negocios
Software de Inteligencia Artificial

Hace uso de algoritmos no numricos para resolver


problemas complejos que no son fciles de tratar
computacionalmente o con el anlisis directo. Las
aplicaciones en esta rea incluyen robtica, sistemas
expertos, reconocimiento de patrones (imagen y voz), redes
neurales artificiales, demostracin de teoremas y juegos.
Ingeniera de Software
Definicin
La ingeniera del software es el proceso formal de desarrollo de software en
el que las necesidades del usuario se traducen en requerimientos, estos se
transforman en diseo que se implementa en cdigo que se prueba,
documenta y se certifica para su uso operativo.
Segn la definicin del IEEE la ingeniera del software se define como la
aplicacin de un mtodo sistemtico, disciplinado y cuantificable al
desarrollo, operacin y mantenimiento de software, esto es, la aplicacin de
la ingeniera al software.
Otra definicin de la ingeniera de Software sera:
Es una disciplina de ingeniera que comprende todos 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
Diferencias entre la Ingeniera de
Software y la Ingeniera de Sistemas
La Ingeniera de Sistemas se refiere a todos los aspectos del
desarrollo de sistemas basados en computadora, tanto del
hardware como del software y los procesos de diseo y
distribucin de sistemas, la Ingeniera de Software es solo
parte de este proceso.
Los ingenieros de sistemas se encargan de especificar el
sistema, definir su arquitectura, integrar sus partes, estn
menos relacionados con la ingeniera de los componentes del
sistema, mientras que los ingenieros de software solo se
relacionan con el software que van a desarrollar.
Mtodos de la Ingeniera de Software

Los mtodos de la ingeniera de software proporcionan la


experiencia tcnica para elaborar software.
Incluyen un conjunto amplio de tareas, como comunicacin,
anlisis de los requerimientos, modelacin del diseo,
construccin del programa, pruebas y apoyo. Los mtodos de
la ingeniera de software se basan en un conjunto de principios
fundamentales que gobiernan cada rea de la tecnologa e
incluyen actividades de modelacin y otras tcnicas
descriptivas.
Mtodos de la Ingeniera de Software
Son Pautas de desarrollo brindado por los modelos de ciclos de vida, los cuales
estn constituidos por las siguientes etapas:
Especificacin de requerimientos: Se realizan entrevistas con el usuario
identificando los requerimientos y necesidades del usuario.
Anlisis: Modela los requerimientos del usuario.
Diseo: Se modela la solucin del sistema, teniendo en cuenta el ambiente de
implementacin a utilizar, por ejemplo, si el sistema es centralizado o
distribuido, la base de datos a utilizar, lenguaje de programacin,
performance deseada, etc.
Implementacin: Dado el lenguaje de programacin elegido se implementa el
sistema.
Testeo: En esta etapa se verifica y valida el sistema teniendo en cuenta
algunos criterios determinados por el grupo correspondiente.
Mantenimiento: Es la etapa ms difcil de desarrollo del sistema, actualiza y
modifica el sistema si surgen nuevos requerimientos.
Metodologas para el desarrollo de la
Ingeniera de Software
Son mtodos que indican cmo hacer ms eficiente el desarrollo de
sistemas de informacin. Para ello suelen estructurar en fases la vida de
dichos sistemas con el fin de facilitar su planificacin, desarrollo y
mantenimiento.
Las metodologas de desarrollo de sistemas deben definir: objetivos,
fases, tareas, productos y responsables, necesarios para la correcta
realizacin del proceso y su seguimiento.

En la Actualidad tenemos 4 tipos de Metodologas que podemos utilizar


para desarrollar software, las cuales son:

Metodologas Estructuradas
Metodologas Orientada a Objetos
Metodologas Agiles
Metodologas tradicionales (No agiles)
Metodologas Estructuradas
Esta metodologa se basa en la estructuracin y
descomposicin funcional de problemas en unidades ms
pequeas interrelacionadas entre s. Representan los
procesos, los flujos y estructuras de datos de una manera
jerrquica y ven el sistema como entrada-proceso-salida.
Esta metodologa realiza una fuerte separacin entre los
datos y los procesos.
Los mtodos estructurados comenzaron a desarrollarse a
fines de los 70s con la Programacin Estructurada, luego a
mediados de los 70s aparecieron tcnicas para el Diseo
(por ejemplo: el diagrama de Estructura) primero y
posteriormente para el Anlisis (por ejemplo: Diagramas de
Flujo de Datos). Estas metodologas son particularmente
apropiadas en proyectos que utilizan para la implementacin
lenguajes de 3ra y 4ta generacin.
Metodologas Orientadas a Objetos
Estas metodologas son cada da ms usadas porque permiten
desarrollar software extensible y reusable, esta metodologa
permite que el software se construya a partir de objetos los cuales
se pueden construir a travs de otros objetos existentes,
pareciendo de esta forma una maquina compleja compuesta de
varias partes y sub partes.
Esta metodologa es la ms implantada y se extiende desde el
anlisis del software a disear hasta la implementacin del
software en el o los equipos de destino.
Su historia va unida a la evolucin de los lenguajes de
programacin orientada a objeto, los ms representativos: a fines
de los 60s SIMULA, a fines de los 70s Smalltalk-80, la primera
versin de C++ por Bjarne Stroustrup en 1981 y actualmente Java
o C# de Microsoft. A fines de los 80s comenzaron a consolidarse
algunos mtodos Orientadas a Objeto.
Metodologas Agiles

Un proceso es gil cuando el desarrollo de software es


incremental (entregas pequeas de software, con ciclos
rpidos), cooperativo (cliente y desarrolladores trabajan
juntos constantemente con una cercana comunicacin),
sencillo (el mtodo en s mismo es fcil de aprender y
modificar, bien documentado), y adaptable (permite realizar
cambios de ltimo momento).
Metodologas Tradicionales-- End

Las metodologas no giles son aquellas que estn guiadas


por una fuerte planificacin durante todo el proceso de
desarrollo; llamadas tambin metodologas tradicionales o
clsicas, donde se realiza una intensa etapa de anlisis y
diseo antes de la construccin del sistema.
Diferencias entre la Ingeniera de
Software y la Ingeniera de Sistemas
La Ingeniera de Sistemas se refiere a todos los aspectos del
desarrollo de sistemas basados en computadora, tanto del
hardware como del software y los procesos de diseo y
distribucin de sistemas, la Ingeniera de Software es solo
parte de este proceso.
Los ingenieros de sistemas se encargan de especificar el
sistema, definir su arquitectura, integrar sus partes, estn
menos relacionados con la ingeniera de los componentes del
sistema, mientras que los ingenieros de software solo se
relacionan con el software que van a desarrollar.
Herramientas CASE
Computer, Assisted, Software, Engineering (Ingeniera de Software
Asistida por Computadoras)

Se puede definir a las Herramientas CASE como un conjunto


de programas y ayudas que dan asistencia a los analistas,
ingenieros de software y desarrolladores, durante todos los
pasos del Ciclo de Vida de desarrollo de un Software
(Investigacin Preliminar, Anlisis, Diseo, Implementacin e
Instalacin.).
CASE es tambin definido como el Conjunto de mtodos,
utilidades y tcnicas que facilitan el mejoramiento del ciclo
de vida del desarrollo de sistemas de informacin,
completamente o en alguna de sus fases.
Clasificacin de las Herramientas CASE

No existe una nica clasificacin de herramientas CASE y,


en ocasiones, es difcil incluirlas en una clase en comn.
Pero podran clasificarse de esta forma:
Las plataformas que soportan.
Las fases del ciclo de vida del desarrollo de sistemas que
abarca.
La arquitectura de las aplicaciones que produce.
Su funcionalidad.
Clasificacin de las Herramientas CASE
Las herramientas CASE, en funcin de las fases del ciclo de vida que
cubre, se pueden agrupar de la forma siguiente:
Herramientas integradas, I-CASE (Integrated CASE, CASE
integrado): abarcan todas las fases del ciclo de vida del desarrollo
de sistemas.
Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior),
orientadas a la automatizacin y soporte de las actividades
desarrolladas durante las primeras fases del desarrollo: anlisis y
diseo.
Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior),
dirigidas a las ltimas fases del desarrollo: construccin e
implantacin.
Juegos de herramientas o Tools-Case, son el tipo ms simple de
Herramientas CASE. Automatizan una fase dentro del ciclo de vida.
Atributos de un buen Software

Hewlett-Packard [Gra87] desarroll un conjunto de atributos de la


calidad del software a los que se dio el acrnimo FURPS:
funcionalidad, usabilidad, confiabilidad, rendimiento y
mantenibilidad. Los atributos de calidad FURPS representan el
objetivo de todo diseo de software:
La funcionalidad se califica de acuerdo con el conjunto de
caractersticas y capacidades del programa, la generalidad de las
funciones que se entregan y la seguridad general del sistema.
La usabilidad se evala tomando en cuenta factores humanos, la
esttica general, la consistencia y la documentacin.
La confiabilidad se evala con la medicin de la frecuencia y
gravedad de las fallas, la exactitud de los resultados que salen, el
tiempo medio para que ocurra una falla (TMPF), la capacidad de
recuperacin ante sta y lo predecible del programa.
Atributos de un buen Software

El rendimiento se mide con base en la velocidad de


procesamiento, el tiempo de respuesta, el uso de
recursos, el conjunto y la eficiencia.
La mantenibilidad combina la capacidad del programa
para ser ampliable (extensibilidad), adaptable y servicial
(estos tres atributos se denotan con un trmino ms
comn: mantenibilidad), y adems que pueda probarse,
ser compatible y configurable (capacidad de organizar y
controlar los elementos de la configuracin del software)
y que cuente con la facilidad para instalarse en el sistema
y para que se detecten los problemas.

Das könnte Ihnen auch gefallen