Está en la página 1de 13

Tema 1: Introduccin del Software 1.

1 La crisis del software


La crisis del software se fundament en el tiempo de creacin de software, ya que en la creacin del mismo no se obtenan los resultados deseados, adems de un gran costo y poca flexibilidad. Bsicamente, la crisis del software se refiere a la dificultad en escribir programas libres de defectos, fcilmente comprensibles, y que sean verificables. Las causas son, entre otras, la complejidad que supone la tarea de programar, y los cambios a los que se tiene que ver sometido un programa para ser continuamente adaptado a las necesidades de los usuarios. Englob a una serie de sucesos que se venan observando en los proyectos de desarrollo de software:

Los proyectos no terminaban en plazo. Los proyectos no se ajustaban al presupuesto inicial. Baja calidad del software generado. Software que no cumpla las especificaciones. Cdigo inmantenible que dificultaba la gestin y evolucin del proyecto.

Todava hoy no existe ningn mtodo que haya permitido estimar de manera fiable el coste y duracin de un proyecto antes de su comienzo.

1.2 La Evolucin del Software


El trmino evolucin del software se utiliza para denominar la dinmica de crecimiento del software. El software se diseaba a medida para cada aplicacin y tena una distribucin relativamente pequea. La segunda era en la evolucin de los sistemas de computadora se caracterizo por el establecimiento del software como producto y la llegada de las "casas del software". En la tercera era en la evolucin el sistema era distribuido, mltiples computadoras, cada una ejecutando funciones concurrentes y comunicndose con alguna otra. La cuarta era de la evolucin de los sistemas informticos se aleja de las computadoras individuales y de los programas de computadoras, dirigindose al impacto colectivo de las computadoras y del software. La industria del software ya es la cuna de la economa del mundo.

1.3 El Proceso Software


Un proceso de desarrollo de software tiene como propsito la produccin eficaz y eficiente de un producto software que rena los requisitos del cliente. Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucradas El proceso de desarrollo de software no es nico. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades fundamentales que se encuentran presentes en todos ellos: 1. Especificacin de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software. 2. Diseo e Implementacin: Se disea y construye el software de acuerdo a la especificacin. 3. Validacin: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente. 4. Evolucin: El software debe evolucionar, para adaptarse a las necesidades del cliente. Otros elementos involucrados son: Un marco comn del proceso, definiendo un pequeo nmero de actividades del marco de trabajo que son aplicables a todos los proyectos de software, con independencia del tamao o complejidad. Un conjunto de tareas, cada uno es una coleccin de tareas de ingeniera del software, hitos de proyectos, entregas y productos de trabajo del software, y puntos de garanta de calidad, que permiten que las actividades del marco de trabajo se adapten a las caractersticas del proyecto de software y los requisitos del equipo del proyecto. Las actividades de proteccin, tales como garanta de calidad del software, gestin de configuracin del software y medicin, abarcan el modelo del proceso. Las actividades de proteccin son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso.

1.4 Modelos de procesos de Software


Se define modelo de proceso de software como Una representacin simplificada de un proceso de software, representada desde una perspectiva especfica. Por su naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del software es una abstraccin de un proceso real. Algunos modelos son: Codificar y corregir: Este es el modelo bsico utilizado en los inicios del desarrollo de software. Se trata de primero implementar algo de cdigo y luego pensar acerca de requisitos, diseo, validacin, y mantenimiento. Modelo en cascada: El primer modelo de desarrollo de software que se public. Se deriv de otros procesos de ingeniera. ste toma las actividades fundamentales del proceso de especificacin, desarrollo, validacin y evolucin y las representa como fases separadas del proceso. Desarrollo evolutivo: La idea detrs de este modelo es el desarrollo de una implantacin del sistema inicial, exponerla a los comentarios del usuario, refinarla en N versiones hasta que se desarrolle el sistema adecuado. Desarrollo formal de sistemas: Este modelo se basa en transformaciones formales de los requisitos hasta llegar a un programa ejecutable. Desarrollo basado en reutilizacin: Como su nombre lo indica, es un modelo fuertemente orientado a la reutilizacin. Este modelo consta de 4 fases. Desarrollo incremental: Reduce el rehacer trabajo durante el proceso de desarrollo y da oportunidad para retrasar las decisiones hasta tener experiencia en el sistema. Desarrollo en espiral: El modelo de desarrollo en espiral es actualmente uno de los ms conocidos. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una actividad a otra.

Modelos de procesos: En espiral

En cascada

1.5 Metodologas software


Un proceso de software detallado y completo suele denominarse Metodologa. Las metodologas se basan en una combinacin de los modelos de proceso genricos (cascada, evolutivo, incremental, etc.). Adicionalmente una metodologa debera definir con precisin los artefactos, roles y actividades involucrados, junto con prcticas y tcnicas recomendadas, guas de adaptacin de la metodologa al proyecto, guas para uso de herramientas de apoyo, etc. Metodologas estructuradas 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 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 Java11 o C# de Microsoft. A fines de los 80s comenzaron a consolidarse algunos mtodos Orientadas a Objeto. Metodologas tradicionales (no giles) 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. Metodologas giles 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).

1.6 Organizacin del personal


Al crear un software se necesita de personal capaz para hacerlo y que puedan cumplir con todo lo que se necesario para su creacin. Entre algunos Se pueden mencionar: Administrador de proyecto El administrador de proyecto es la persona que administra y controla los recursos asignados a un proyecto, con el propsito de que se cumplan correctamente los planes definidos. Analistas La palabra anlisis se refiere a una caracterstica tpicamente relacionada con la inteligencia humana. Esta se refiere a la habilidad de poder estudiar un problema de una complejidad determinada, descomponiendo el problema en subproblemas de menor complejidad. Diseadores Es el encargado de generar el diseo del sistema. Entre sus funciones est: Generar el diseo arquitectnico y diseo detallado del sistema Generar prototipos rpidos del sistema Programadores Los programadores deben convertir la especificacin del sistema en cdigo fuente ejecutable utilizando uno o ms lenguajes de programacin, as como herramientas de software de apoyo a la programacin. Tster El desarrollo de un sistema de software requiere la realizacin de una serie de actividades de produccin. En dichas actividades existe la posibilidad de que aparezcan errores humanos Aseguradores de calidad Su tarea es asegurarse que la especificacin de requisitos es una representacin correcta y completa de las expectativas del cliente. Administrador de configuracin La administracin de la configuracin de software corresponde a la administracin de la configuracin aplicada a un sistema, o a partes de un sistema, predominantemente correspondiente a software.

1.7 Estimacin del coste del software


La estimacin es ms arte que ciencia; tambin es parte de la etapa de la planificacin y algunas actividades de la ingeniera. Existen tcnicas para la estimacin de costos, pero para ello se requiere experiencia, acceso a una buena informacin histrica y coraje para confiar en medidas cuantitativas cuando todo lo que existe son datos cualitativos. El manejador de costo principal para un proyecto de desarrollo de software es sin duda el tamao del producto. La medida del tamao debe ser tal que est en relacin directa con el esfuerzo de desarrollo, por lo que las mtricas de tamao tratan de considerar todos los aspectos que influyen en el costo, como tecnologa, tipos de recursos y complejidad. Para realizar estimaciones seguras de coste y esfuerzo surge un numero de posible de opciones como: Retrasar la estimacin mas adelante en el proyecto (obviamente se puede hacer una estimacin cien por ciento fiable despus de completar el proyecto) Utilizar "tcnicas de descomposicin " relativamente simples para generar las estimaciones del proyecto de software (por ej. Estimacin LDC y PF) Desarrollar un modelo emprico para el coste y el esfuerzo de software. Adquirir una o ms herramientas automticas de estimacin.

1.8 La calidad de software


La calidad del software es una preocupacin a la que se dedican muchos esfuerzos. Sin embargo, el software casi nunca es perfecto. Todo proyecto tiene como objetivo producir software de la mejor calidad posible, que cumpla, y si puede supere las expectativas de los usuarios. Calidad es es la aptitud de un producto o servicio para satisfacer las necesidades del usuario. Es la cualidad de todos los productos, no solamente de equipos sino tambin de programas. Son las caractersticas propias del software aquellas que tu quieres controlar y asegurar, el software es un producto inmaterial que no se fabrica, tampoco se degradan fsicamente, sino que se desarrolla. El software puede tener errores, incidencias pero no son similares a lo que cualquier equipo de carcter fsico. La calidad del software se encuentra casi a la par de la calidad tradicional, ligeramente detrs debido a que la calidad tradicional tiene varias dcadas de historia, mientras que la calidad de software tiene entre 50 y 30 aos de haber surgido.

Tema 2: Gestin de proyectos 2.1 Actividades de gestin de proyectos


Gestin son todas las actividades y tareas ejecutadas por una o ms personas con el propsito de planificar y controlar las actividades de otros para alcanzar un objetivo o completar una actividad que no puede ser realizada por otros actuando independientemente. Las actividades son: Planificacin: Predeterminacin de un curso de accin para alcanzar los objetivos organizacionales. Organizacin: Arreglo de las relaciones entre las unidades de trabajo para el cumplimiento de objetivos y el otorgamiento de responsabilidad y autoridad para obtener esos objetivos. Staffing: Seleccin y entrenamiento de personas para puestos en la organizacin. Direccin: Creacin de una atmsfera que apoye y motive a la gente para alcanzar los resultados finales deseados. Control: Establecimiento, medicin y evaluacin del desempeo de las actividades a travs de los objetivos planeados.

2.2 Planificacin de proyectos


La planificacin involucra la especificacin de objetivos y metas para un proyecto y las estrategias, polticas, planes y procedimientos para alcanzarlos.. La planificacin es necesaria por la existencia de incertezas sobre el ambiente del proyecto software y sobre fuentes externas. La planificacin enfoca su atencin en las metas del proyecto, riesgos potenciales y problemas que puedan interferir con el cumplimiento de esas metas. Algunas de las actividades en la planificacin de proyectos son: Fijar los objetivos y metas Desarrollar estrategias Desarrollar polticas Anticipar futuras situaciones Conducir un establecimiento de riesgos Determinar posibles cursos de accin Tomar decisiones de planificacin Fijar procedimientos y reglas Desarrollar los planes del proyecto Preparar presupuestos

2.3 Temporizacin
En la mayor parte de los programas, resulta necesario controlar el tiempo que tardan en ejecutarse algunas acciones o bien establecer una duracin determinada para un estado del sistema digital que se quiere realizar. En la temporizacin software el microcontrolador est ocupado ejecutando esa zona de cdigo y no podra realizar otras acciones salvo que se activen interrupciones que podran ser prioritarias ante la temporizacin en curso. Con el microcontrolador en modo de bajo consumo (SLEEP), no se podran realizar este tipo de temporizaciones En las Temporizaciones software Se debe evaluar la duracin de la ejecucin de una zona de cdigo (contarciclos de instruccin) destinada a la temporizacin PIC: arquitectura pipeline con ejecucin y bsqueda simultnea de la siguiente instruccin presente en la memoria de programa. Todas las instrucciones se ejecutan en un ciclo de instruccin salvo las que impliquen la no ejecucin de la instruccin que sigue a la que est en curso actualmente (saltos y llamadas a subprogramas). Siempre dependen de la frecuencia del oscilador de que disponga el microcontrolador: 1 ciclo de instruccin = 4 ciclos de oscilador.

2.4 Gestin de riesgos


Gestin de Riesgos es un enfoque estructurado para manejar la incertidumbre relativa a una amenaza, a travs de una secuencia de actividades humanas, las cuales son: Identificacin de Riesgos Estimacin de Riesgos. Plan de Riesgos. Estrategias frente al Riesgo Reactivas: Evaluar las consecuencias del riesgo cuando este ya se ha producido (ya no es un riesgo) Actuar en consecuencia. Consecuencias: Se pone en peligro el proyecto. Proactivas: Evaluacin previa y sistemtica de riesgos. Evaluacin de consecuencias. Plan de evitacin y minimizacin de consecuencias. Plan de contingencias. Consecuencias Evasin del riesgo. Menor tiempo de reaccin.

Colegio Bilinge Saint John

Materia Informtica

Tema El Software y sus funciones

Profesor Ismael Tenorio

Integrantes Arturo De Arriba Andrea Herldez

Fecha de Entrega 17/5/13

ndice

Tema 1: Introduccin Software


1.1 La crisis del software 1.2 La evolucin del software 1.3 El proceso software 1.4 Modelos de proceso software 1.5 Metodologas software 1.6 Organizacin del personal 1.7 Estimacin del coste del software 1.8 La calidad del software

Tema 2: Gestin de proyectos


2.1 Actividades de gestin de proyecto 2.2 Planificacin de proyectos 2.3 Temporizacin 2.4 Gestin de riesgos

Tema 3: Gestin de configuraciones


3.1 La configuracin software 3.2 Lnea base de configuracin 3.4 El proceso de gestin de configuraciones software 3.5 Control de versiones 3.6 Gestin de peticiones 3.7 Revisiones formales 3.8 Control de cambios 3.9 Auditoria

Tema 4: Pruebas de software


4.1 Tipos de Prueba 4.2 Mtodos de prueba 4.3 Principios de las pruebas 4.5 Estrategias de prueba 4.6 Planes de Pruebas 4.7 Casos de prueba 4.8 El proceso de depuracin

Bibliografa y Referencias

http://es.wikipedia.org/wiki/Crisis_del_software http://cnx.org/content/m17405/latest/ http://ldc.usb.ve/~abianc/materias/ci4712/ProcesoSW-Letelier.pdf http://www.ganimides.ucm.cl/ygomez/descargas/Sist_inf2/apuntes/2009/Roles_desarrollo_s oftware.pdf http://www.inf.udec.cl/~mvaras/gpis/apunteGPDS.pdf http://es.wikipedia.org/wiki/Calidad_de_software http://www.unioviedo.es/ate/alberto/TEMA5-Temporizaciones%20soft.pdf

También podría gustarte