Académique Documents
Professionnel Documents
Culture Documents
1) Componentes:
La ingeniera de software basada en componentes (CBSE) (tambin
conocida como desarrollo basado en componentes (CBD)) es una rama de la
ingeniera de software que enfatiza la separacin de asuntos (separation of
concerns (SoC)) por lo que se refiere a la funcionalidad de amplio rango
disponible a travs de un sistema de software dado. Es un acercamiento
basado en la reutilizacin para definir, implementar, y componer componentes
dbilmente acoplados en sistemas. Esta prctica persigue un amplio grado de
beneficios tanto en el corto como el largo plazo, para el software en s mismo y
para las organizaciones que patrocinan tal software.
Los ingenieros de software consideran los componentes como parte de la
plataforma inicial para la orientacin a servicios. Los componentes juegan este
rol, por ejemplo, en servicios de web y, ms recientemente, en las
arquitecturas orientadas a servicios (SOA), por el que un componente es
convertido por el servicio web en un servicio y consiguientemente hereda otras
caractersticas ms all de las de un componente ordinario.
Los componentes pueden producir o consumir eventos y pueden ser usados
para las arquitecturas dirigida por eventos (EDA).
2) Campos
-
Consultor en TICs.
Proveedor de Servicios Profesionales.
Administrador de Redes de Computadoras.
Administrador de Bases de Datos.
Programador de Sistemas.
Gerente de Informtica Organizacional.
Generador de tecnologa innovadora.
Docente de nivel medio y superior.
Miembro de pequeas y medianas industrias.
Lder de Proyectos.
Generador de Incubadoras de Software.
3) Aplicacin
Software de sistemas. El software de sistemas es un conjunto de programas
que han sido escritos para servir a otros programas.
Software de tiempo real. El software que coordina/analiza/controla sucesos
del mundo real conforme ocurren, se denomina de tiempo real.
Software de gestin. El proceso de la informacin comercial constituye la
mayor de las reas de aplicacin del software.
Software de ingeniera y cientfico. El software de ingeniera y cientfico
est caracterizado por los algoritmos de manejo de nmeros. Las
aplicaciones van desde la astronoma a la vulcanologa, desde el anlisis de la
presin de los automotores a la dinmica orbital de las lanzaderas espaciales y
desde la biologa molecular a la fabricacin automtica.
Software empotrado. Los productos inteligentes se han convertido en algo
comn en casi todos los mercados de consumo e industriales. El software
empotrado reside en memoria de slo lectura y se utiliza para controlar
productos y sistemas de los mercados industriales y de consumo.
Software de computadoras personales. El mercado del software de
computadoras personales ha germinado en las pasadas dos dcadas. El
procesamiento de textos, las hojas de clculo, los grficos por computadora,
multimedia, entretenimientos, gestin de bases de datos, aplicaciones
financieras, de negocios y personales y redes o acceso a bases de datos
externas son algunas de los cientos de aplicaciones.
Software basado en Web. Las pginas Web buscadas por un explorador son
software que incorpora instrucciones ejecutables (por ejemplo, CGI, HTML, Perl,
o Java), y datos (por ejemplo, hipertexto y una variedad de formatos de audio y
visuales). En esencia, la red viene a ser una gran computadora que proporciona
un recurso software casi ilimitado que puede ser accedido por cualquiera con
un modem.
Software de inteligencia artificial. El software de inteligencia artificial (IA)
hace uso de algoritmos no numricos para resolver problemas complejos para
los que no son adecuados el clculo o el anlisis directo. Los sistemas expertos,
tambin llamados sistemas basados en el conocimiento, reconocimiento de
patrones (imgenes y voz), redes neuronales artificiales, prueba de teoremas, y
los juegos son representativos de las aplicaciones de esta categora.
4) Procesos
La ingeniera de software requiere llevar a cabo numerosas tareas agrupadas
en etapas, al conjunto de estas etapas se le denomina ciclo de vida. Las etapas
comunes a casi todos los modelos de ciclo de vida son las siguientes:
Obtencin de los requisitos
Se debe identificar sobre que se est trabajando, es decir, el tema principal
que motiva el inicio del estudio y creacin del nuevo software o modificacin
de uno ya existente. A su vez identificar los recursos que se tienen, en esto
entra el conocer los recursos humanos y materiales que participan en el
desarrollo de las actividades. Es importante entender el contexto del negocio
para identificar adecuadamente los requisitos.
Se tiene que tener dominio de la informacin de un problema, lo cual incluye
los datos fuera del software(usuarios finales, otros sistemas o dispositivos
externos), los datos que salen del sistema (por la interfaz de usuario, interfaces
de red, reportes, grficas y otros medios) y los almacenamientos de datos que
recaban y organizan objetos persistentes de datos (por ejemplo, aquellos que
se conservan de manera permanente).
Tambin hay que ver los puntos crticos, lo que significa tener de una manera
clara los aspectos que entorpecen y limitan el buen funcionamiento de los
procedimientos actuales, los problemas ms comunes y relevantes que se
presentan, los motivos que crean insatisfaccin y aquellos que deben ser
cubiertos a plenitud. Por ejemplo: El contenido de los reportes generados,
satisface realmente las necesidades del usuario? Los tiempos de respuesta
ofrecidos, son oportunos?, etc.
Hay que definir las funciones que realizara el software ya que estas ayudan al
usuario final y al funcionamiento del mismo programa.
Se tiene que tener en cuenta como ser el comportamiento del software ante
situaciones inesperadas como lo son por ejemplo una gran cantidad de
usuarios usando el software o una gran cantidad de datos entre otros.
Anlisis de requisitos[editar]
Extraer los requisitos de un producto software es la primera etapa para crearlo.
Durante la fase de anlisis, el cliente plantea las necesidades que se presenta
e intenta explicar lo que debera hacer el software o producto final para
satisfacer dicha necesidad mientras que el desarrollador acta como
interrogador, como la persona que resuelve problemas. Con este anlisis, el
ingeniero de sistemas puede elegir la funcin que debe realizar el software y
establecer o indicar cual es la interfaz ms adecuada para el mismo. 16
Caso de uso
Historias de usuario
Diagramas de clases
Diagrama de despliegue
Diagrama de secuencia
Siendo los dos primeros los mnimos necesarios para describir la arquitectura
de un proyecto que iniciar a ser codificado. Dependiendo del alcance del
proyecto, complejidad y necesidades, el arquitecto elegir cuales de los
diagramas se requiere elaborar.
Las herramientas para el diseo y modelado de software se
denominan CASE (Computer Aided Software Engineering) entre las cuales se
encuentran:
Enterprise Architect
Programacin[editar]
Implementar un diseo en cdigo puede ser la parte ms obvia del trabajo de
ingeniera de software, pero no necesariamente es la que demanda mayor
trabajo y ni la ms complicada. La complejidad y la duracin de esta etapa est
ntimamente relacionada al o a los lenguajes de programacin utilizados, as
como al diseo previamente realizado.
Desarrollo de la aplicacin[editar]
Para el desarrollo de la aplicacin es necesario considerar cinco fases para
tener una aplicacin o programa eficiente, estas son:
computarizados.19
Pruebas de software[editar]
Consiste en comprobar que el software realice correctamente las tareas
indicadas en la especificacin del problema. Una tcnica es probar por
separado cada mdulo del software, y luego probarlo de manera integral, para
as llegar al objetivo. Se considera una buena prctica el que las pruebas sean
efectuadas por alguien distinto al desarrollador que la program, idealmente
un rea de pruebas; sin perjuicio de lo anterior el programador debe hacer sus
propias pruebas. En general hay dos grandes maneras de organizar un rea de
pruebas, la primera es que est compuesta por personal inexperto y que
desconozca el tema de pruebas, de esta manera se evala que la
documentacin entregada sea de calidad, que los procesos descritos son tan
claros que cualquiera puede entenderlos y el software hace las cosas tal y
como estn descritas. El segundo enfoque es tener un rea de pruebas
conformada por programadores con experiencia, personas que saben sin
mayores indicaciones en qu condiciones puede fallar una aplicacin y que
pueden poner atencin en detalles que personal inexperto no considerara.
De acuerdo con Roger S. Pressman, el proceso de pruebas se centra en los
procesos lgicos internos del software, asegurando que todas las sentencias se
han comprobado, y en los procesos externos funcionales, es decir, la
realizacin de pruebas para la deteccin de errores. Se requiere poder probar
5) Administracin de Proyectos
La necesidad de administrar es una distincin importante entre un desarrollo
profesional de software y la programacin no profesional. La administracin de
proyectos de software es necesaria debido a que la ingeniera de software
profesional siempre est sujeta a restricciones de presupuesto y
calendarizacin; a las que debe ajustarse la organizacin que desarrolla el
software. El trabajo del administrador de proyectos de software es asegurar
que stos cumplan dichas restricciones y entregar software que contribuya a
las metas del negocio. Una buena administracin no garantiza el xito del
proyecto, sin embrago la mala siempre asegura el fracaso del mismo.
6) Producto
El software se ha convertido en algo muy necesario en nuestra sociedad actual,
es la mquina que conduce a la toma de decisiones comerciales, sirve para la
investigacin cientfica moderna, es un factor clave que diferencia productos y
servicios modernos, etc. Esto se da porque el software est inmerso en
sistemas de todo tipo alrededor de nosotros.
El software de computadora es el producto que disean y construyen los
ingenieros de software. Esto abarca programas que se ejecutan dentro de una
computadora de cualquier tamao y arquitectura, despus de estar construido
casi cualquier persona en el mundo industrializado, ya sea directa o
indirectamente.
Los productos se pueden clasificar en:
-
Productos genricos: Son los producidos por una organizacin para ser
vendidos al mercado.
Productos hechos a medida: Sistemas que son desarrollados bajo pedido
a un desarrollador especfico.
Simplicidad
Calidad en los procesos de desarrollo
Seguridad y Verificabilidad, estas dos ltimas que se determinan con el sistema
en uso.
Usabilidad. Si bien es cierto que la confiabilidad es un factor muy importante
en la calidad del software tambin lo es el hecho de que es necesario
considerar otros factores como los que se mencionan en esta seccin puesto
que de nada sirve un software que funcione correcta y confiablemente si el
usuario prefiere no utilizarlo.
Exactitud de los procesos
Claridad y exactitud de la documentacin
Completitud
Eficiencia y verificabilidad del software
Claridad y amigabilidad de la interfaz
Mantenibilidad. Este aspecto de calidad involucra los elementos que simplifican
la labor de prevencin, correccin o ampliacin del cdigo del programa.
Retomar un cdigo escrito meses antes es un trabajo dispendioso y agobiante,
en especial cuando las aplicaciones no cuentan con la caracterstica a la cual
aqu se hace referencia. Se pueden considerar como atributos de este aspecto :
Exactitud y claridad en la documentacin
Modularidad acoplamiento
Facilidad de lectura
Simplicidad
Portabilidad. Es la capacidad que posee un sistema de informacin que le
permite funcionar en diferentes plataformas ya sean hardware o de software.