Anda di halaman 1dari 12

1

INSTITUTO TECNOLGICO
De Tuxtepec

UNIDAD II: ING. DE SOFTWARE


CARRERA:
INGENIERA EN INFORMTICA
MATERIA:
FUNDAMENTOS DE SISTEMAS DE INFORMACIN
INTEGRANTES:
URIEL MARTINEZ CLEMENTE
CATEDRTICO:
LIC. MARA ISABEL HERNANDEZ SAGADA

San Juan Bautista Tuxtepec, Oaxaca a 29 De Septiembre del 2014

INTRODUCCIN
El Software representa la vida interna de un computador,
el manejo y aprovechamiento del mismo y todas las
ventajas que se brindan el mundo de las computadoras,
depende

del

software,

facilitando

los

usuarios

el desarrollo de programas que contribuyen con tareas


diarias tanto personales como generales, empresariales y
organizacionales el software en sus diferentes tipos es el
elemento

esencial

como

interfaz

entre

usuario

computador, su historia desde un principio se muestra con poca atencin pero con el paso
del tiempo se ha tornado importante para los programadores y creadores de sistemas tanto de
aplicacin como operativos, todo lo que se ve digitalizado en un computador representa el
software clasificado de alguna forma, las herramientas del men inicio y todas aquellas que se
despliegan al encendido del CPU, el desarrollo de esta herramienta ha permitido innovar en
cuanto a la robtica he inteligencia artificial facilitando el trabajo en determinadas reas laborales
y agilizando las mismas por ejemplo en la fabricacin de vehculos mediante software
de programacin se disean estructuras robticas inmensas y fuertes que realizan tareas que al
brazo

humano

le

tomaran

ms

tiempo.

Pg.
2
Introduccin
4

Actividad 1
1.1 Ensayo sobre la historia y evolucin de la Ing. De

Software
8

Actividad 2
2.1 Investigacin sobre el estado del arte de las prcticas

de Ing. De Software
2.2 mapa conceptual
Reflexin
Bibliografas

10
11
12

Actividad 1: Analizar lecturas de artculos, portales webs y libros que permitan


reflexionar sobre la importancia, historia y evolucin de la Ing. De Software.

El software a nivel mundial se empieza a


desarrollar en la dcada de los 40; El acto de
programar estas mquinas en los aos 40
tena poco de software y mucho de hardware,
dado que se realizaba primero mediante la
manipulacin del propio cableado y luego
mediante instrucciones en tarjetas de cartn
perforado elementos fsicos todos.
En ese momento, el reto mayor era programar
los algoritmos para que los computadores
hicieran los clculos, procesos y reportes que
se requeran para las diferentes funciones.
Fue a mediados de la dcada de los 60 y hasta 1985 que se genera la crisis del software. Esta
crisis se evidencia en el estudio del Standish Group (Reporte del Caos), en donde se muestra
que solo el 16% de los proyectos de software son exitosos. En general, los proyectos de software
tuvieron fuertes sobrecostos y los tiempos fueron varias veces ms altos de los planeados.
Adicionalmente, los errores en el software llevaron a prdidas en las empresas e incluso de vidas.
En este momento, nace la conciencia que desarrollar es mucho ms que codificar: se le hace
nfasis a la calidad. Dentro del concepto de calidad, cabe la definicin intuitiva que el software no
contenga errores, pero tambin incluye el hecho que los proyectos cumplan los tiempos y los
costos planeados.
A este tema hay que sumarle el avance que ha tenido la tecnologa y el concepto de sistemas de
informacin. Inicialmente, los programas eran una cola de programas a ejecutar, uno detrs de
otro, en donde la salida de uno era la entrada del otro.
Actualmente los sistemas de informacin estn orientados a la interaccin con el usuario, con
respuestas en tiempo real y fuerte integracin con otros sistemas, dentro de la misma empresa o
fuera de ella. La interconexin es cada vez mayor, aumentando los riesgos de seguridad, los
caminos posibles de utilizacin del software y por tanto la probabilidad de errores en las
aplicaciones.

La crisis del software lleva a la necesidad de crear e implantar metodologas de software. Se ve


por ejemplo, que las revistas de la ACIS desde 1977 se refieren principalmente a algortmica y
mquinas de cmputo. Es slo hasta 1985, que hay un artculo de Alberto Garca sobre la
Metodologa CIFI Unidades para el desarrollo de sistemas de informacin, en donde se
incluyen las fases basados en la metodologa de Tom de Marco, de Anlisis de la situacin actual,
Diseo lgico, Diseo fsico, Programacin, Implantacin y Operacin y mantenimiento,
bsicamente en un concepto cascada puro (llama la atencin que no existe la fase de Pruebas).
Empiezan a nacer las empresas de desarrollo de software lo que implica adems que se deben
encontrar formas de contratacin de software, sobretodo desarrollos a la medida. Si bien, se crean
varias empresas de software, tambin se encuentran fuertes fracasos en los proyectos y tambin
en las empresas. Estos fracasos se deben a que las contrataciones son a precio fijo, en donde la
mtrica del trabajo a realizar no es clara, adems del problema de la calidad de software hace que
en varias ocasiones la correccin de errores genere ms errores, o que haya errores que
realmente son cambios en requerimientos. Como se tiene un enfoque cascada, los errores slo se
detectan en la ltima fase del desarrollo; estos errores en varias ocasiones se refieren a
problemas de diseo, o imprecisiones de requerimientos. Al ser detectados al final, se debe volver
a hacer mucho del software, e incluso se cancelan los proyectos por la cantidad de trabajo perdido
que habra que desarrollar nuevamente. Esto conlleva a que las empresas de software tengan
fuertes riesgos y en la mayora de las ocasiones se quiebran en menos de 5 aos.
Las metodologa cascada evoluciona al mtodo en V, donde se recalca la importancia de pruebas
e incluye cuatro estados de pruebas: Unitarias, Integracin, Sistema y Aceptacin. Empieza
entonces la especializacin de las tareas: requerimientos, diseo, pruebas. Sin embargo, las
empresas estn dispuestas a asumir la inversin requerida para pruebas? Ya ahora, no slo se
necesitan ingenieros que desarrollen, tambin ahora hay ingenieros que slo se dedican a
pruebas. Se requiere tambin infraestructura y herramientas para efectuar el control de calidad de
forma adecuada.
Cuando los sistemas eran programas a ejecutar uno tras otro, el concepto de requerimientos era
ms claro y controlable, ya que se deba especificar que dadas unas entradas, se realiza un
procesamiento y produce una salida. Por ese motivo, se realizaba un control de calidad en donde
se realiza una verificacin de la produccin de la operadora, de forma aleatoria, como si fuera el
control de calidad de una fbrica de medicamentos.

Actualmente,

el

software

se

refiere
principalmente
a
interaccin con el usuario, con
gran cantidad de caminos y
fuerte integracin con otras
aplicaciones. Esto hace que
haya mayor posibilidad de
funcionalidades, pero tambin
mayor posibilidad de error en las
aplicaciones. Se requieren pruebas de lo nuevo, pruebas para demostrar que no se da lo que
antes funcionaba, y pruebas de lo que ahora se llama No funcional.
No funcional? Qu es esto? Se refiere a las caractersticas del sistema que no son de
procesamiento, validaciones, ni salidas del sistema sino referentes a temas llamados tcnicos.
Estas caractersticas se solucionan a travs de buenos diseos, que cimientan la Arquitectura del
Software.
En resumen, la crisis unida con la evolucin del software genera varios conceptos que se trabajan
ahora en la ingeniera de software: las metodologas, los procesos de software y el software para
desarrollar software. Se incluyen en las formas de desarrollo, disciplinas adicionales a la
codificacin, como lo es Anlisis y especificacin de requerimientos, Pruebas, Gerencia de
proyecto, Arquitectura de Software, despliegue e incluso ahora temas como Arquitectura
Empresarial y Modelamiento de Negocio.
Se crean modelos para medir la madurez del proceso de producir software, como lo son CMM,
CMMI y SPICE. Llama la atencin que CMM nace desde la necesidad de un cliente (el
departamento de defensa de EEUU) sobre el xito de sus proyectos de software. Y es que son
varios los clientes que han tenido grandes prdidas de dinero y de tiempo originados por
proyectos que nunca salen a produccin, o que salen mucho ms tarde de lo planeado (supe
incluso del caso de un proyecto planeado en dos aos, que dur catorce aos en desarrollarse!!).
Nacen procesos y metodologas como Mtrica 3, PSP, TSP, RUP, MSF, EUP entre otros. Estos
procesos tienen como base principal definir las disciplinas que hay que tener en cuenta dentro del
desarrollo de software. Pero al momento de implementarlas, en algunas ocasiones, clientes y
empresas de software los juzgan como muy pesados y llenos de documentacin. Conozco varios
casos en que se contrataron proyectos con RUP, y despus de varios aos lo nico que se
produjo fueron modelos y documentos.

Se genera entonces la corriente de las


metodologas giles, que tienen su base
en el manifiesto gil, en donde se
prefieren:
Individuos
e
interacciones sobre
procesos
y
herramientas,
Software
funcionando sobre
documentacin
extensiva,
Colaboracin
con
el
cliente sobre negociacin contractual,
Respuesta ante el cambio sobre seguir un plan. Esta corriente promete que los desarrollos se
realizan ms rpido y con buena calidad. En estas corrientes se identifican muchos ms sabores
como son Scrum, XP, Kanban, OpenUP, AUP, EssUP, FDD, Lean Software Development, entre
otros.
Sin embargo, tambin se genera una nueva necesidad: debido a la integralidad de las
aplicaciones y el acceso por medio de redes, las nuevas aplicaciones exigen fuertes
requerimientos no funcionales de seguridad, por lo que nace la corriente de Desarrollo Seguro.
El desarrollo seguro consiste en una serie de reglas en el proceso de desarrollo de software para
que el software sea de buena calidad y cumpla los requerimientos de forma adecuada, y reglas a
validar para que la aplicacin tenga buena arquitectura y baja susceptibilidad a ataques de
seguridad por medio de la red.
Son varias las inquietudes que surgen alrededor del tema de ingeniera de software, teniendo en
cuenta la evolucin de la tecnologa, las diferentes corrientes metodolgicas, las nuevas
caractersticas de los usuarios y una demanda de software con un ciclo de desactualizacin cada
vez ms corto:

Son realmente mejores las metodologas giles? Cuando las puedo aplicar?
Todas las metodologas giles son iguales?
Metodologas como RUP que tuvieron tanto auge, funcionan o no? Si no, por qu no
funcionaron? Cuando las puedo aplicar?
Son compatibles las metodologas giles con el esquema de Desarrollo Seguro?
Cmo se debe hacer la contratacin de desarrollo de software para disminuir riesgos?
Cmo se hace la contratacin de software cuando se quiere trabajar con metodologas giles?
Cuantas personas se requieren para hacer software de calidad?, y para desarrollo seguro?
Cmo se hace la estimacin de proyectos de desarrollo de software?

Los clientes deben saber de metodologas de software?

El objetivo de este grupo es compartir experiencias y soluciones a las diferentes inquietudes


actuales, y posiblemente futuras sobre los temas de ingeniera de software y contratacin, por lo
cual les invitamos a su activa participacin.

Actividad 2: realizar una investigacin exploratoria sobre el estado del arte de las
prcticas de Ing. De Software.

Tendencias actuales en la ingeniera de software


La ingeniera de software es una disciplina joven y an est en desarrollo. Las direcciones en que
la ingeniera de software se est desarrollando incluyen:

Aspectos
Los aspectos ayudan a los ingenieros de
software a lidiar con los atributos de calidad al
proporcionar herramientas para aadir o
quitar cdigo repetitivo de muchas reas en el
cdigo fuente. Los aspectos describen cmo
todos los objetos o funciones deben
comportarse en circunstancias particulares. Por ejemplo, los aspectos pueden agregar control
de depuracin, registro o bloqueo en todos los objetos de un tipo particular. Los investigadores
actualmente estn trabajando para comprender cmo utilizar aspectos para disear el cdigo de
propsito general. Conceptos relacionados incluyen programacin generativa y plantillas.
gil
El desarrollo gil de software gua a los proyectos de desarrollo de software que evolucionan
rpidamente con cambiantes expectativas y mercados competitivos. Los proponentes de este
mtodo creen que procesos pesados, dirigidos por documentos (como TickIT, CMM e ISO 9000)
estn desapareciendo en importancia. Algunas personas creen que las empresas y agencias
exportan muchos de los puestos de trabajo que pueden ser guiados por procesos pesados.
Conceptos relacionados incluyen la programacin extrema, Scrum y lean software Development.
Experimental
La ingeniera de software experimental es una rama de la ingeniera de software interesada en la
elaboracin de experimentos sobre el software, en la recoleccin de datos de los experimentos y
en la elaboracin de leyes y teoras desde estos datos. Los proponentes de este mtodo

defienden que la naturaleza del software es tal que podemos hacer avanzar el conocimiento en
software a travs de slo experimentos.
Model-driven
El diseo manejado por modelos desarrolla modelos textuales y grficos como artefactos
primarios de diseo. Hay disponibles herramientas de desarrollo que usan transformacin de
modelo y generacin de cdigo para generar fragmentos de cdigo bien organizado que sirven
como base para producir aplicaciones completas.
Lneas de productos de software
Las lneas de produccin de software es una forma sistemtica para producir familias de sistemas
de software, en lugar de crear una sucesin de productos completamente individuales. Este
mtodo destaca una extensiva, sistemtica, reutilizacin de cdigo formal, para intentar
industrializar el proceso de desarrollo de software.
El futuro de la Conferencia de ingeniera de Software (FOSE), 5 celebrada en ICSE 2000,
documenta el estado del arte de SE en 2000 y lista muchos problemas a resolver en la prxima
dcada. El FOSE sigue la pista de las conferencias ICSE 20006 y el ICSE 20077 y tambin ayudar
a identificar el estado del arte en ingeniera de software.
La ingeniera de software hoy
La profesin est tratando de definir sus lmites y contenido. El Software Engineering Body of
Knowledge SWEBOK ha sido presentado como un estndar ISO durante 2006 (ISO/IEC TR
19759).
En 2006, la revista Money y Salary.com calificaron la ingeniera de software como el mejor trabajo
en Estados Unidos en trminos de crecimiento, paga, niveles de estrs, flexibilidad en horas y
medio ambiente de trabajo, creatividad y lo fcil que es entrar y avanzar en el campo.

10

Actividad 2.2: mapa conceptual acerca de la Ing. De Software.

11

Reflexin:
El software se ha convertido en el elemento clave de la evolucin de los sistemas y productos
informticos. En las pasadas cuatro dcadas, el software ha pasado de ser una resolucin de
problemas especializados y una herramienta de anlisis de informacin, a ser una industria por s
misma. Pero la temprana cultura e historia de la programacin ha creado un conjunto de
problemas que persisten todava. El software se ha convertido en un factor que limita la evolucin
de los sistemas informticos. El software se compone de programas, datos y documentos. Cada
uno de estos elementos compone una configuracin que se crea como parte del proceso de la
Ingeniera del Software. El intento de la Ingeniera del Software es proporcionar un marco de
trabajo para construir software con mayor calidad.

12

Bibliografa:
[1] Revista Sistemas, ACIS. Pedro Bossio de la Espriella. CCLA conformacin, correccin,
liquidacin y auditora de declaraciones en-lnea. Julio 1977.
[2] Revista Sistemas, ACIS. Manuel Dvila Sguerra. Un concepto sobre Sistemas Generales de
Validacin. Octubre 1977.
[3] Revista Sistemas, ACIS. Alberto Garca. CIFI-Unidades. Metodologa CIFI Unidades para el
desarrollo de sistemas de informacin. 1985.
[4] Tom De Marco. Structured Analysis and System Specification.1979.
[5] Kruchten, Philippe. The Rational Unified Process: An Introduction. Object Technology Series.
Second Edition. 2000.