Kategorier: Alle - patrones - modularidad - coherencia - principios

af ARACELI BECERRA HERNANDEZ 3 år siden

316

Actividad Integradora: La Ingenieria del Software.

La práctica de la ingeniería de software se guía por principios que buscan entregar software operativo de alta calidad y a tiempo. Entre estos principios destacan la división de problemas grandes en partes más manejables, el entendimiento de la abstracción para simplificar elementos complejos, y la búsqueda de coherencia para facilitar el uso del software.

Actividad Integradora: La Ingenieria del Software.

Actividad Integradora: La Ingenieria del Software.

Practica y principios de la ingeniería de software

PRINCIPIOS QUE GUIAN LA PRÁCTICA.- Tiene un objetivo general: Entregar a tiempo software operativo de alta calidad. Entregar A tiempo Alta Calidad 2 1. Divide y vencerás.- Un problema grande es más fácil de resolver si se divide. 2. Entender el uso de la abstracción.- Abstracción (simplificación de algún elemento complejo) eliminar la necesidad de comunicar detalles; según Joel Spolsky, sin la comprensión de los detalles, no puede diagnosticarse con facilidad la causa de un problema. 3. Buscar la coherencia.- El principio de coherencia sugiere que un contexto familiar hace que el software sea más fácil de usar. 4. Centrarse en la transferencia de información.- ejm de una base de datos a un usuario final de un usuario final a una interfaz gráfica de usuario, la información fluye a través de una interfaz. Este principio implica que debe ponerse atención especial al análisis, diseño, construcción y prueba de las interfaces. 5. Construir software que tenga modularidad eficaz. - Separación de entidades, cualquier sistema complejo puede dividirse en módulos (componentes) y debe ser eficaz (cada módulo centrarse en un aspecto delimitado, cohesivo en su función) los módulos deben estar interconectados en forma relativamente sencilla. 6. Buscar Patrones. - Crear una bibliografía que ayude a los desarrolladores de software para resolver problemas recurrentes, los patrones ayudan para comunicar experiencias ya vividas y dar soluciones al caso. 7. Cuando sea posible, representar el problema y su solución desde varias perspectivas diferentes. - Un problema y su solución se estudian desde varias perspectivas. 8. Tener en mente que alguien dará mantenimiento al software. - El software será corregido en el largo del plazo, cuando se descubran sus defectos, se adapte a los cambios de su ambiente y para esto debe aplicarse una práctica sólida de IS (ingeniería de software).
PRINCIPIOS QUE GUIAN TODA ACTIVIDAD ESTRUCTURAL • PRINCIPIOS DE COMUNICACIÓN.- Un cliente tiene un problema que parece abordable mediante una solución basada en computadora. La comunicación efectiva entre colegas técnicos, con el cliente y otros participantes, y con los gerentes del proyecto se encuentran entre las actividades más difíciles que deben enfrentarse. 1. Escuchar.- Si algo no está claro pregunte para aclararlo, pero evite las interrupciones constantes, si una persona habla, nunca parezca beligerante (giros de los ojos, movimientos de la cabeza) en sus palabras o actos. 2. Antes de comunicarse prepararse.- Haga algunas investigaciones para entender el vocabulario propio del negocio, prepare una agenda antes de la reunión . 3. Alguien debe facilitar la actividad.- Toda reunión de comunicación debe tener un líder (facilitador) que: a. Mantenga la conversación en movimiento hacia una dirección positiva. b. Sea un mediador en cualquier conflicto que ocurra c. Garantice que se sigan otros principios. 3 4. Es mejor la comunicación cara a cara.- Es mejor cuando está presente alguna otra representación de la información relevante, ejm. Dibujos, bosquejos, documentos en que se centre la discusión. 5. Tomar notas y documentar las decisiones.- Alguien que participe en la reunión debe de servir como secretario y escribir los temas y decisiones importantes. 6. Perseguir la colaboración.- Aceptar la colaboración y llegar a un consenso en equipo para describir las características del producto o sistema, cada colaboración sirve para generar confianza entre los miembros del equipo. 7. Permanecer centrado; hacer módulos con la discusión.- De haber un facilitador para formar módulos de conversación y abandonar el tema solo cuando se haya concluido con el mismo. 8. Si algo no está claro hacer un dibujo.- Con frecuencia un dibujo o bosquejo da la claridad cuando las palabras no alcanzan. 9. a) Una vez que se acuerde algo avanzar. b) Si no es posible ponerse de acuerdo en algo, avanzar c) Si una característica o función no está clara o no puede aclararse en el momento, avanzar.- La comunicación como cualquier otra actividad requiere tiempo, en vez de hacer iteraciones sin fin, las personas que participan deben reconocer que hay muchos temas que requieren análisis (véase el principio 2) a veces “avanzar” es la mejor forma de tener agilidad en la comunicación. 10. La negociación no es un concurso o un juego. Funciona mejor cuando las dos partes ganan.- Negociar características, funciones, tiempo de entrega, etc. Si el equipo ha colaborado bien, todo tendrán un objetivo en común, aún la negociación demandará del compromiso de todas las partes e. Debajo de tu organizador gráfico agrega una línea de tiempo que muestre con claridad los antecedentes de la Ingeniería de Software.
La práctica de la Ingeniería de Software está guiada por un conjunto de principios fundamentales que ayudan en la aplicación del proceso de software significativo y en la ejecución de métodos eficaces de IS. iterativo, prescriptivo o ágil, estos principios son aplicables a todos los modelos de proceso. PRINCIPIOS FUNDAMENTALES La práctica de la Ingeniería de Software está guiada por un conjunto de principios fundamentales que ayudan en la aplicación del proceso de software significativo y en la ejecución de métodos eficaces de IS. • PRINCIPIOS QUE GUIAN EL PROCESO.- Sin importar el modelo si es lineal o iterativo, prescriptivo o ágil, estos principios son aplicables a todos los modelos de proceso. 1. Ser Ágil.- Poner énfasis en la economía de acción, mantener el enfoque técnico tan sencillo como sea posible y generar resultados sencillos. 2. En cada etapa, centrarse en la calidad.- Calidad en el producto de trabajo (resultados) que se ha generado. 3. Estar listo para adaptar.- Adapte su enfoque a las restricciones impuestas por el problema, la gente y el proyecto en sí. 4. Formar un equipo eficaz.- El objetivo son las personas, forme un quipo donde haya confianza y respeto mutuo. 5. Establecer mecanismos para la comunicación y coordinación.- Los proyectos suelen fallar porque los participantes no coordinan sus esfuerzos para crear un producto final exitoso. 6. Administrar el cambio.- Mecanismos o formas de administrar la forma en que los cambios de solicitan, evalúan, aprueban e implementa. 7. Evaluar el riesgo.- Tener un Plan de contingencia 8. Crear producto del trabajo (resultados) que agreguen valor para otros.- Es una cadena de resultados que van a ser entregados para que sigan agregando su trabajo o desarrollo del mismo y a su vez pasará a otras manos que también añadirán su codificación etc.

Importancia de la ingeniería de software

Un proceso de desarrollo de software es la descripción de una secuencia de actividades que deben ser seguida por un equipo de trabajadores para generar un conjunto coherente de productos, uno de los cuales en el programa del sistema deseado. d. Practica y principios de la ingeniería de software e. Debajo de tu organizador gráfico agrega una línea de tiempo que muestre con claridad los antecedentes de la Ingeniería de Software.
 En la construcción y desarrollo de proyectos se aplican métodos y técnicas para resolver los problemas, la informática aporta herramientas y procedimientos sobre los que se apoya la ingeniería de software.  Mejorar la calidad de los productos de software.  Aumentar la productividad y trabajo de los ingenieros del software.  Facilitar el control del proceso de desarrollo de software.  Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente.  Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado
La ingeniería de software es muy importante ya que con ella se puede analizar, diseñar, programar y aplicar un software de manera correcta y organizada, cumpliendo con todas las especificaciones del cliente y el usuario final. ... Facilitar el control del proceso de desarrollo de software.

Fases del proceso de desarrollo de software

Diseño y arquitectura Se refiere a determinar cómo funcionará de forma general sin entrar en detalles. Consiste en incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc. Se definen los casos de uso para cubrir las funciones que realizará el sistema, y se transforman las entidades definidas en el análisis de requisitos en clases de diseño, obteniendo un modelo cercano a la programación orientada a objetos. Programación Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no es necesariamente la porción más larga. La complejidad y la duración de esta etapa está íntimamente ligada al o a los lenguajes de programación utilizados. Pruebas Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral, para así llegar al objetivo. Se considera una buena práctica 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 formas de organizar un área de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación]entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un área de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en que condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría. Documentación Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema. Mantenimiento Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la Ingeniería civil, Arquitectura y trabajo de construcción es dar mantenimiento. Se puede decir que con la mejora continua garantiza la calidad del producto, ya que el estarla aplicando día con día es la mejor decisión que puede llegar a tener cualquier empresa, porque de esta manera evita grandes problemas en la elaboración o desarrollo de los productos. Esto es fundamental para todas las empresas ya que se vuelven competitivas, con mayor productividad y eficiencia. No hay que olvidar que la mejora se da porque el cliente es el rey y hay que satisfacer todas y cada una de sus necesidades siempre garantizando la calidad
Análisis de requisitos Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniería de software para reconocer requisitos incompletos, ambiguos o contradictorios. El resultado del análisis de requisitos con el cliente se plasma en el documento ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMM-I. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software. La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aún no está formalizada, ya se habla de la Ingeniería de Requisitos. La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requisitos Software (Software Requirements Specification).

Conceptos básicos de ingeniería de software

Cabe destacar que el proceso de desarrollo de software implica lo que se conoce como ciclo de vida del software, que está formado por cuatro etapas: concepción, elaboración, construcción y transición. La concepción fija el alcance del proyecto y desarrolla el modelo de negocio; la elaboración define el plan del proyecto, detalla las características y fundamenta la arquitectura; la construcción es el desarrollo del producto; y la transición es la transferencia del producto terminado a los usuarios. Una vez que se completa este ciclo, entra en juego el mantenimiento del software. Se trata de una fase de esta ingeniería donde se solucionan los errores descubiertos (muchas veces advertidos por los propios usuarios) y se incorporan actualizaciones para hacer frente a los nuevos requisitos. El proceso de mantenimiento incorpora además nuevos desarrollos, para permitir que el software pueda cumplir con una mayor cantidad de tareas. Los Ingenieros de Software deben: • Adoptar un enfoque sistemático para llevar a cabo su trabajo. • Utilizar las herramientas y técnicas apropiadas para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y a los recursos disponibles.
La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software). Esta disciplina trasciende la actividad de programación, que es la actividad principal a la hora de crear un software. El ingeniero de software se encarga de toda la gestión del proyecto para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto. La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema.