Professional Documents
Culture Documents
Ingeniera de software es la aplicacin de un enfoque sistemtico, disciplinado y cuanticable al desarrollo, operacin y mantenimiento de software,[1] y el estudio de estos enfoques, es decir, la aplicacin de la ingeniera al software.[2] Integra matemticas, ciencias de la
computacin y prcticas cuyos orgenes se encuentran en
la ingeniera.[3]
RECURSOS
la impresora.
5.2
3.2
Las siglas UML signican lenguaje unicado de modelado esto quiere decir que no pretende denir un modelo
Son aquellos componentes de un software que son usa- estndar de desarrollo, sino nicamente un lenguaje de
dos en otras aplicaciones de la misma ndole, ya sea para modelado.[14]
reducir costos o tiempo.
Un lenguaje de modelado consiste de vistas, elementos de
modelo y un conjunto de reglas: sintcticas, semnticas y
pragmticas que indican cmo utilizar los elementos.
3.3 Recursos de entorno
Es el entorno de las aplicaciones (software y hardware) el
hardware proporciona el medio fsico para desarrollar las 5.2
aplicaciones (software), este recurso es indispensable.[13]
El objetivo de la notacin para el modelado de procesos de negocios es proporcionar de una manera fcil de
4 Implicaciones socioeconmicas
denir y analizar los procesos de negocios pblicos y privados simulando un diagrama de ujo. La notacin ha
4.1 Econmicamente
sido diseada especcamente para coordinar la secuencia de los procesos y los mensajes que uyen entre los
En los Estados Unidos, el software contribuy a una oc- participantes del mismo, con un conjunto de actividades
tava parte de todo el incremento del PIB durante la d- relacionadas. Caractersticas bsicas de los elementos de
cada de 1990 (alrededor de 90,000 millones de dlares BPMN
por ao), y un noveno de todo el crecimiento de productividad durante los ltimos aos de la dcada (alrededor
Objetos de ujo: eventos, actividades, rombos de
de 33.000 millones de dlares estadounidenses por ao).
control de ujo (gateways).
La ingeniera de software contribuy a US$ 1 billn de
crecimiento econmico y productividad en esa dcada.
Objetos de conexin: ujo de secuencia, ujo de
Alrededor del globo, el software contribuye al crecimienmensaje, asociacin.
to econmico de maneras similares, aunque es difcil de
[cita requerida]
encontrar estadsticas ables.
Swimlanes (carriles de piscina): pool, lane.
Adems, con la industria del lenguaje est hallando cada
vez ms campos de aplicacin a escala global.
Artefactos: objetos de datos, grupo, anotacin.[14]
4.2
Socialmente
5
5.1
Notaciones
Es un lenguaje de modelado muy reconocido y utilizado actualmente que se utiliza para describir o especicar
mtodos. Tambin es aplicable en el desarrollo de software.
Herramientas CASE
Metodologa
7.1
METODOLOGA
El anlisis de requisitos puede parecer una tarea sencilla, pero no lo es debido a que muchas veces los clientes
piensan que saben todo lo que el software necesita para
La ingeniera de software requiere llevar a cabo numerosu buen funcionamiento, sin embargo se requiere la habisas tareas agrupadas en etapas, al conjunto de estas etapas
lidad y experiencia de algn especialista para reconocer
se le denomina ciclo de vida. Las etapas comunes a casi
requisitos incompletos, ambiguos o contradictorios. Estodos los modelos de ciclo de vida son las siguientes:
tos requisitos se determinan tomando en cuenta las necesidades del usuario nal, introduciendo tcnicas que nos
permitan mejorar la calidad de los sistemas sobre los que
se trabaja.[17]
7.1.1 Obtencin de los requisitos
El resultado del anlisis de requisitos con el cliente se
Se debe identicar sobre que se est trabajando, es decir,
el tema principal que motiva el inicio del estudio y creacin del nuevo software o modicacin de uno ya existente. A su vez identicar 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 identicar
adecuadamente los requisitos.
plasma en el documento ERS (especicacin de requisitos del sistema), cuya estructura puede venir denida por
varios estndares, tales como CMMI. Asimismo, se dene un diagrama de entidad/relacin, en el que se plasman
las principales entidades que participarn en el desarrollo
del software.
La captura, anlisis y especicacin de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa
depende en gran medida el logro de los objetivos nales.
Se tiene que tener dominio de la informacin de un Se han ideado modelos y diversos procesos metdicos de
problema, lo cual incluye los datos fuera del softwa- trabajo para estos nes. Aunque an no est formalizada,
re(usuarios nales, otros sistemas o dispositivos exter- ya se habla de la ingeniera de requisitos.
nos), los datos que salen del sistema (por la interfaz de La IEEE Std. 830-1998 normaliza la creacin de las esusuario, interfaces de red, reportes, grcas y otros me- pecicaciones de requisitos de software (Software Requidios) y los almacenamientos de datos que recaban y orga- rements Specication).
nizan objetos persistentes de datos (por ejemplo, aquellos
Finalidades del anlisis de requisitos:
que se conservan de manera permanente).
Tambin hay que ver los puntos crticos, lo que signica 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 denir las funciones que realizara el software ya
que estas ayudan al usuario nal y al funcionamiento del
mismo programa.
Brindar al usuario todo lo necesario para que pueda trabajar en conjunto con el software desarrollado
obteniendo los mejores resultados posibles.
Tener un control ms completo en la etapa creacin
del software, en cuanto a tiempo de desarrollo y costos.
Utilizacin de mtodos ms ecientes que permitan
el mejor aprovechamiento del software segn sea la
nalidad de uso del mismo.
Aumentar la calidad del software desarrollado al disminuir los riesgos de mal funcionamiento.[18]
7.1
dio de viabilidad y/o estimacin de costes. El ms cono- Lo principal en este punto es poner en claro los aspectos
cido de los modelos de estimacin de coste del software lgicos y fsicos de las salidas, modelos de organizacin y
es el modelo COCOMO
representacin de datos, entradas y procesos que componen el sistema, considerando las bondades y limitaciones
de los recursos disponibles en la satisfaccin de las paci7.1.3 Limitaciones[14]
caciones brindadas para el anlisis.
Los software tienen la capacidad de emular inteligencia
creando un modelo de ciertas caractersticas de la inteligencia humana pero slo posee funciones predenidas
que abarcan un conjunto de soluciones que en algunos
campos llega a ser limitado. Aun cuando tiene la capacidad de imitar ciertos comportamientos humanos no es
capaz de emular el pensamiento humano porque acta bajo condiciones.
Otro aspecto limitante de los software proviene del proceso totalmente mecnico que requiere de un mayor esfuerzo y tiempos elevados de ejecucin lo que lleva a tener
que implementar el software en una mquina de mayor
capacidad.
Hay que tener en consideracin la arquitectura del sistema en la cual se va a trabajar, elaborar un plan de trabajo
viendo la prioridad de tiempo y recursos disponibles. En
los diseos de salidas entra los que es la interpretacin de
requerimientos lo cual es el dominio de informacin del
problema, las funciones visibles para el usuario, el comportamiento del sistema y un conjunto de clases de requerimientos que agrupa los objetos del negocio con los
mtodos que les dan servicio.
La arquitectura de software consiste en el diseo de componentes de una aplicacin (entidades del negocio), generalmente utilizando patrones de arquitectura. El diseo arquitectnico debe permitir visualizar la interaccin
entre las entidades del negocio y adems poder ser validado, por ejemplo por medio de diagramas de secuencia.
Un diseo arquitectnico describe en general el cmo se
7.1.4 Especicacin
construir una aplicacin de software. Para ello se docuLa especicacin de requisitos describe el comporta- menta utilizando diagramas, por ejemplo:
miento esperado en el software una vez desarrollado.
Gran parte del xito de un proyecto de software radicar
Diagramas de clases
en la identicacin de las necesidades del negocio (denidas por la alta direccin), as como la interaccin con
Diagramas de base de datos
los usuarios funcionales para la recoleccin, clasicacin,
identicacin, priorizacin y especicacin de los requi Diagrama de despliegue
sitos del software.
Diagrama de secuencia
Entre las tcnicas utilizadas para la especicacin de requisitos se encuentran:
Caso de uso
Historias de usuario
Siendo los dos primeros los mnimos necesarios para describir la arquitectura de un proyecto que iniciar a ser
codicado. Dependiendo del alcance del proyecto, complejidad y necesidades, el arquitecto elegir cuales de los
diagramas se requiere elaborar.
Siendo los primeros ms rigurosas y formales, los segun- Las herramientas para el diseo y modelado de software
das ms giles e informales.
se denominan CASE (Computer Aided Software Engineering) entre las cuales se encuentran:
7.1.5
Arquitectura
Enterprise Architect
7.1.7
Desarrollo de la aplicacin
METODOLOGA
7.1.9
Implementacin
Una Implementacin es la realizacin de una especicacin tcnica o algoritmos con un programa, componente
software, u otro sistema de cmputo. Muchas especicaciones son dadas segn a su especicacin o un estndar. Las especicaciones recomendadas segn el World
Wide Web Consortium, y las herramientas de desarrollo
del software contienen implementaciones de lenguajes de
programacin. El modelo de implementacin es una coleccin de componentes y los subsitemas que contienen.
Componentes tales como: cheros ejecutables, cheros
de cdigo fuente y todo otro tipo de cheros que sean necesarios para la implementacin y despliegue del sistema.
Pruebas de software
8.1
7.1.11 Mantenimiento
Este modelo se encarga principalmente de ayudar al ingeniero de sistemas y al cliente a entender de mejor manera
cul ser el resultado de la construccin cuando los requisitos estn satisfechos.[25]
todo esto en funcin del anlisis de riesgo y las necesidades del cliente. Aunque el modelo espiral representa
ventajas por sobre el desarrollo lineal, el clculo de los
riesgos puede ser muy complicado y por lo cual su uso en
el mbito real es muy escaso.[26]
8.4
Se debe tener en cuenta que el ujo del proceso de cualquier incremento puede incorporar el paradigma de construccin de prototipos, ya que como se mencion anteriormente, este tipo de modelo es iterativo por naturaleza, sin embargo se diferencia en que este busca la entrega
de un producto operacional con cada incremento que se
le realice al software.
8.5
Desarrollo iterativo y creciente (o incremental) es un pro El diagrama de ujo de datos, esta es utilizada princeso de desarrollo de software, creado en respuesta a las
cipalmente para los procesos.[30]
debilidades del modelo tradicional de cascada, es decir,
este modelo aplica secuencias lineales como el modelo en
cascada, pero de una manera iterativa o escalada segn 8.5.2 Modelo orientado a objetos
como avance el proceso de desarrollo y con cada una de
estas secuencias lineales se producen incrementos (mejo- Estos modelos tienen sus races en la programacin orientada a objetos y como consecuencia de ella gira entorno al
ras) del software.[27]
8.8
concepto de clase, tambin lo hacen el anlisis de requisitos y el diseo. Esto adems de introducir nuevas tcnicas, tambin aprovecha las tcnicas y conceptos del desarrollo estructurado, como diagramas de estado y transiciones. El modelo orientado a objetos tiene dos caractersticas principales, las cuales ha favorecido su expansin:
Permite la reutilizacin de software en un grado signicativo.
Su simplicidad facilita el desarrollo de herramientas informticas de ayuda al desarrollo, el cual es fcilmente implementada en una notacin orientada a
objetos llamado UML.[31]
8.6
9
cliente/servidor se compone de un conjunto de componentes funcionales. Cuando se aplica a cliente/servidor,
el modelo de proceso concurrente dene actividades en
dos dimensiones: una divisin de sistemas y una divisin
de componentes. Los aspectos del nivel de sistemas se
afrontan mediante dos actividades: diseo y realizacin.
La concurrencia se logra de dos maneras:
Las actividades del sistema y de componente ocurren simultneamente y pueden modelarse con el enfoque orientado a objetos descrito anteriormente;
Una aplicacin cliente/servidor tpica se implementa
con muchos componentes, cada uno de los cuales se
pueden disear y realizar concurrentemente.
Modelo RAD (rapid application deveEn realidad, el modelo de desarrollo concurrente es aplilopment)
El RAD (rapid application development: desarrollo rpido de aplicaciones), es un modelo de proceso de software
incremental, desarrollado inicialmente por James Maslow en 1980, que resalta principalmente un ciclo corto de
desarrollo.
10
11 PARTICIPANTES Y PAPELES
10 Naturaleza de la Ingeniera de
Software
Producto
10.0.2 Creacin
Los programas son construidos en una secuencia de pasos. El hecho de denir propiamente y llevar a cabo estos pasos, como en una lnea de ensamblaje, es necesario
para mejorar la productividad de los desarrolladores y la
calidad nal de los programas. Este punto de vista inspira
los diferentes procesos y metodologas que se encuentran
en la IS.
11 Participantes y papeles
11.5
vocar confusin; estrictamente, el cliente (persona, empresa u organizacin) es quin especica los requisitos
del sistema,[37] en tanto que el usuario es quien utiliza u
opera nalmente el producto software, pudiendo ser o no
el cliente.
11.2
Desarrolladores
11.3
Gestores
11.4
Usuarios nales
11.5
Un ingeniero de software debe tener un cdigo donde asegura, en la medida posible, que los esfuerzos realizados
se utilizarn para realizar el bien y deben comprometerse
para que la ingeniera de software sea una profesin benca y respetada. Para el cumplimiento de esta norma,
se toman en cuenta ocho principios relacionados con la
conducta y las decisiones tomadas por el ingeniero; donde estos principios identican las relaciones ticamente
responsables de los individuos, grupos y organizaciones
donde participen. Los principios a los que deben sujetarse son sobre la sociedad, cliente y empresario, producto,
juicio, administracin, profesin, colegas y por ltimo el
personal.
Sociedad: Los ingenieros de software deben actuar
de manera congruente con el inters social, aceptando la responsabilidad total de su trabajo, moderando los intereses con el bienestar social, aprobando
el software solamente si se tiene una creencia bien
fundamentada, cooperando en los esfuerzos para solucionar asuntos importantes de inters social, ser
11
justo y veraz en todas las armaciones relativas al
software o documentos asociados.
Cliente y empresario: Se debe actuar de manera tal
que se llegue a conciliar los mejores intereses de los
clientes y empresarios, congruentemente con el inters social. Estos debern prestar servicios en sus
reas de competencia, siendo honestos y francos sobre las limitaciones, no utilizar un software que se
obtenga ilegalmente o sin tica, usar la propiedad
de los clientes o empresarios de manera autorizada,
mantener secreto cualquier documento de informacin condencial.
Producto: Hay que asegurarse que los productos y
sus modicaciones cumplan con los estndares profesionales ms altos posibles, procurando la alta calidad, costos aceptables y una agenda razonable asegurando que los costos y benecios sean claros y
aceptados por el empresario y el cliente. Asegurar
que las metas y objetivos de cualquier proyecto sean
adecuados y alcanzables.
Juicio: Se debe mantener una integridad e independencia en el juicio profesional, moderando todo juicio tcnico por la necesidad de apoyar y mantener
los valores humanos, mantener la objetividad profesional con respecto a cualquier software o documento relacionado, no involucrarse en prcticas nancieras fraudulentas.
Administracin: Se deber asegurar una buena administracin para cualquier proyecto en el cual se
trabaje, utilizando procedimientos efectivos para
promover la calidad y reducir riesgos, asegurndose tambin que se conozcan las polticas y procedimientos del empresario para proteger contraseas,
archivos e informacin condencial.
Profesin: Se debe incrementar la integridad y reputacin de la profesin en conjunto con el inters social, ayudando al desarrollo de un ambiente organizacional favorable para actuar, promoviendo el conocimiento pblico de la ingeniera de software, extendiendo el conocimiento de la ingeniera de software por medio de participaciones en organizaciones, reuniones y publicaciones profesionales.
Colegas: Cada ingeniero deber apoyar y ser justos
con los colegas, motivando a sus colegas sujetndose
al cdigo, ayudando tambin a su desarrollo profesional, reconocer los trabajos de otros y abstenerse
a atribuirse de mritos indebidos, revisar los trabajos de manera objetiva, sincera y propiamente documentada.
Personal: Los ingenieros de software participaran
toda su vida en el aprendizaje con la prctica y pro-
12
14
movern un enfoque tico de la profesin, mejorando su conocimiento de los avances en el anlisis, especicacin, diseo, desarrollo, mantenimiento, pruebas del software y documentos relacionados en conjunto con administracin del proceso de
desarrollo.[41]
REFERENCIAS
12
12.1
Educacin tica
Organizaciones
13
Vase tambin
Ingeniera informtica
Gestin de la conguracin
[16] [http://yaqui.mxl.uabc.mx/~{}molguin/as/IngReq.htm
Mantenimiento de software
[17] [http://www.slideshare.net/marfonline/
analisis-de-requerimientos-ingenieria-de-software
14
Referencias
[18] [http://www.slideshare.net/marfonline/
analisis-de-requerimientos-ingenieria-de-software
[19] Unidad 2: Fundamentos de la ingeniera del software,
artculo en el sitio web Ing Software.
[20]
[21] Pressman, Roger S. (2003). El proceso. Ingeniera del
software, un enfoque prctico. Mxico: Mc Graw Hill,
quinta edicin.
[22] Metodologia de ingeniera de software, artculo en el sitio
web Slide Share.
[23] Ingeniera de software: ciclos de vida y metodologas, artculo publicado en el sitio web de la Facultad de Ingeniera de la Universidad de Los Andes.
[24] Pressman, Roger S.: Ingeniera del software: un enfoque
prctico. Sexta edicin, pg. 50-51.
[25] Lawrence Peleeger, Shari: Ingeniera de software: modelo
de prototipos. Universidad Estatal de Milagro.
[26] Pressman, Roger S.: Ingeniera del software: un enfoque
prctico. Sexta edicin, pg. 58-60.
13
15
Bibliografa
Ingeniera de software (sexta edicin), Ian Sommerville. Addison Wesley. Sitio en Ingls
Pressman, Roger S.: Ingeniera del software: un enfoque prctico (informacin en ingls). McGraw Hill
Higher Education, sexta edicin, pg. 50-51.</ref>
16
Enlaces externos
Wikiversidad alberga proyectos de aprendizaje
sobre Ingeniera de software.Wikiversidad
Is software engineering actually engineering?, artculo publicado en The Iron Warrior, publicacin
de la University of Waterloo Engineering Society.
14
17
17.1
17.2
Imgenes
17.3