sábado, 17 de octubre de 2015

CAPITULO 2: INTRODUCCION A LA INGENIERIA DE SOFTWARE

ACTIVIDADES DE APRENDIZAJE:

1)  Realiza una síntesis sobre la definición, las características, los elementos  y las capas que conforman a la ingeniería:

Definición:

Es una disciplina  de la ingeniería cuya  meta  es le desarrollo costearle de sistemas de software confiable  que funcionan de modo  eficiente y comprende todos  los aspectos  de la producción del software.

Características:
  • La ingeniería  del software  es un enfoque pragmático para el desarrollo del mantenimiento del software.
  • El software es abstracto y tangible.
Elementos:
  • Los productos y /o algoritmos  para la computadora que al ejecutarse proporciona las características, las funciones  y el grado de desempeño.
  • Las estructuras de datos que permiten que los programas manipulen la información de manera adecuada.
  • Los documentos que describen la operación y el uso de los programas.
Capas de la ingeniería del software




2) Describir la importancia  de usar normas para el aseguramiento de la calidad  durante el proceso  de software.


Ante todo se debe conocer:

Aseguramiento de la calidad: "Conjunto de acciones planificadas y sistemáticas necesarias para proporcionar la confianza adecuada de que un producto o servicio satisfará los requerimientos dados sobre calidad".

Aseguramiento de la calidad de software: Conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza en que el producto (software) satisfará los requisitos dados de calidad. El aseguramiento de calidad del software se diseña para cada aplicación antes de comenzar a desarrollarla. Hay quienes prefieren decir garantía de calidad en vez de aseguramiento. La garantía, puede confundir con garantía de productos, mientras que el aseguramiento pretende dar confianza en que el producto tiene calidad.

El aseguramiento de calidad del software está presente en:
  • Métodos y herramientas de análisis, diseño, programación y prueba.
  • Inspecciones técnicas formales en todos los pasos del proceso de desarrollo del software.
  • Estrategias de prueba multisecular.
  • Control de la documentación del software y de los cambios realizados.
  • Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos).
  • Mecanismos de medida (métricas).
  • Registro de auditorias y realización de informes.
Las actividades para el aseguramiento de calidad del software se detallan en:
  • Métricas de software para el control del proyecto.
  • Verificación y validación del software a lo largo del ciclo de vida (Incluye las pruebas y los procesos de revisión e inspección).
  • La gestión de la configuración del software.
Algunos métodos del aseguramiento:
  • Revisiones técnicas y de gestión (su objetivo es la evaluación).
  • Inspección (su objetivo es la verificación).Estamos construyendo el producto correcto.
  • Pruebas (su objetivo es la validación).Estamos construyendo el producto correctamente.
  • Auditorias (su objetivo es la confirmación del cumplimiento) 
3) ¿cuál es la diferencia  entre la ingeniería del software y la ingeniera  en sistemas?¿que son las ciencias de computación?¿que abarca dentro del software  de la ingeniería del software dentro de las ciencias de la computación? Describe las conclusiones a las que se llegaron.

Diferencia entre la ingeniería del software y ingeniería  en sistemas:


¿Que son las ciencias de computación?
Las ciencias de la computación o ciencias computacionales son aquellas que abarcan las bases teóricas de la información y la computación, así como su aplicación en sistemas computacionales. El cuerpo de conocimiento de las ciencias de la computación es frecuentemente descrito como el estudio sistemático de los procesos algorítmicos que describen y transforman información: su teoría, análisis, diseño, eficiencia, implementación y aplicación.
Es el estudio sistemático de la factibilidadestructuraexpresión y mecanización de procedimientos metódicos (o algoritmos) que subyacen en la adquisición, representaciónprocesamientoalmacenamientocomunicación y acceso a la información si dicha información está codificada en forma de bits en una memoria de computadora o especificada en una estructura de genes y proteínas en una célula biológica.

Existen diversos campos o disciplinas dentro de las ciencias de la computación o ciencias computacionales; algunos resaltan los resultados específicos del cómputo (como los gráficos por computadora), mientras que otros (como la teoría de la complejidad computacional) se relacionan con propiedades de los algoritmos usados al realizar cómputo y otros se enfocan en los problemas que requieren la implementación de sistemas computacionales. Por ejemplo, los estudios de la teoría de lenguajes de programación describen un cómputo, mientras que la programación de computadoras aplica lenguajes de programación específicos para desarrollar una solución a un problema computacional específico. Un científico de la computación se especializa en teoría de la computación y en el diseño e implementación de sistemas de computacionales


¿Que abarca dentro del software  de la ingeniería del software dentro de las ciencias de la computación? 

Ingeniería de software es el estudio del diseño, implantación y modificación de software con la finalidad de asegurarse de que es de alta calidad, asequible, fácil de mantener, y rápido de construir. Es un enfoque sistemático para el diseño de software, que implica la aplicación de prácticas de ingeniería de software. Los ingenieros de software comercian con la organización y análisis de software; no solo lidian con la creación o fabricación de un nuevo software, sino también con su mantenimiento y disposición interna. Se prevé que estén entre las ocupaciones de más rápido crecimiento entre 2008 y 2018. Debido a la novedad de este subcampo, la educación formal en Ingeniería de software generalmente es parte de los planes de estudio de ciencias de la computación, la gran mayoría de ingenieros de software tienen un grado académico en ciencias de la computación sin tener relación con la ingeniería. La relación entre las ciencias de la computación y la ingeniería de software es un tema muy discutido, por disputas sobre lo que realmente significa el término ingeniería de software y sobre cómo se define a las ciencias de la computación. Algunas personas creen que la ingeniería de software sería un subconjunto de las ciencias de la computación. Otras, tomando en cuenta la relación entre otras disciplinas científicas y de la ingeniería, creen que el principal objetivo de las ciencias de la computación sería estudiar las propiedades del cómputo en general, mientras que el objetivo de la ingeniería de software sería diseñar cómputos específicos para lograr objetivos prácticos, con lo que se convertiría en disciplinas diferentes. Este punto de vista es el que sostiene, por ejemplo, Parnas (1998). Incluso hay otros que sostienen que no podría existir una ingeniería de software.

4) Realiza una investigación  sobre el modelo de capacidad de madurez.

El Modelo de Madurez de Capacidades o CMM (Capability Maturity Model), es un modelo de evaluación de los procesos de una organización. Fue desarrollado inicialmente para los procesos relativos al desarrollo e implementación de software por la Universidad Carnegie-Mellon para el SEI (Software Engineering Institute).
 Definidas en un procedimiento documentado
 Provistas (la organización) de los medios y formación necesarios
Ejecutadas de un modo sistemático, universal y uniforme (institucionalizadas).

- Medidas
-   Verificadas

A su vez estas Áreas de Proceso se agrupan en cinco "niveles de madurez", de modo que una organización que tenga institucionalizadas todas las prácticas incluidas en un nivel y sus inferiores, se considera que ha alcanzado ese nivel de madurez.
Los niveles son:
Inicial. Las organizaciones en este nivel no disponen de un ambiente estable para el desarrollo y mantenimiento de software. Aunque se utilicen técnicas correctas de ingeniería, los esfuerzos se ven minados por falta de planificación. El éxito de los proyectos se basa la mayoría de las veces en el esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobrecostes. El resultado de los proyectos es impredecible.


 Repetible. En este nivel las organizaciones disponen de unas prácticas institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable seguimiento de la calidad. La relación con subcontratistas y clientes está gestionada sistemáticamente.

 Definido. Además de una buena gestión de proyectos, a este nivel las organizaciones disponen de correctos procedimientos de coordinación entre grupos, formación del personal, técnicas de ingeniería más detallada y un nivel más avanzado de métricas en los procesos. Se implementan técnicas de revisión por pares (peer reviews).

 Gestionado. Se caracteriza porque las organizaciones disponen de un conjunto de métricas significativas de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la gestión de riesgos. El software resultante es de alta calidad

Optimizado. La organización completa está volcada en la mejora continua de los procesos. Se hace uso intensivo de las métricas y se gestiona el proceso de innovación.

Así es como el modelo CMM establece una medida del progreso, conforme al avance en niveles de madurez. Cada nivel a su vez cuenta con un número de áreas de proceso que deben lograrse. El alcanzar estas áreas o estadios se detecta mediante la satisfacción o insatisfacción de varias metas claras y cuantificables. Con la excepción del primer nivel, cada uno de los restantes Niveles de Madurez está compuesto por un cierto número de Áreas Claves de Proceso, conocidas a través de la documentación del CMM por su sigla inglesa: KPA.



Cada KPA identifica un conjunto de actividades y prácticas interrelacionadas, las cuales cuando son realizadas en forma colectiva permiten alcanzar las metas fundamentales del proceso. Las kpas pueden clasificarse en 3 tipos de proceso: Gestión, Organizacional e Ingeniería.
Las prácticas que deben ser realizadas por cada Área Clave de Proceso están organizadas en 5 Características Comunes, las cuales constituyen propiedades que indican si la implementación y la institucionalización de un proceso clave es efectivo, repetible y duradero.

Estas 5 características son: 
Compromiso de la realización
 La capacidad de realización
 Las actividades realizadas
 Las mediciones y el análisis
 La verificación de la implementación.
Las organizaciones que utilizan CMM para mejorar sus procesos disponen de una guía útil para orientar sus esfuerzos. Además, el SEI proporciona formación a evaluadores certificados (Lead Assesors) capacitados para evaluar y certificar el nivel CMM en el que se encuentra una organización. Esta certificación es requerida por el
Departamento de Defensa de los Estados Unidos, pero también es utilizada por multitud de organizaciones de todo el mundo para valorar a sus subcontratistas de software.
Se considera típico que una organización dedique unos 18 meses para progresar un nivel, aunque algunas consiguen mejorarlo. En cualquier caso requiere un amplio esfuerzo y un compromiso intenso de la dirección.
Como consecuencia, muchas organizaciones que realizan funciones de factoría de software o, en general, outsourcing de procesos de software, adoptan el modelo CMM y se certifican en alguno de sus niveles. Esto explica que uno de los países en el que más organizaciones certificadas existan sea India, donde han florecido las factorías de software que trabajan para clientes estadounidenses y europeos.

6) Realiza una investigación sobre el estándar  ISO 9001:2000 para el desarrollo del software.
El ISO/IEC 15504, también conocido como Software Process Improvement Capability Determinación, abreviado SPICE, en español, «Determinación de la Capacidad de Mejora del Proceso de Software» es un modelo para la mejora, evaluación de los procesos de desarrollo, mantenimiento de sistemas de información y productos de software.
En 1991, dado el número creciente dre). Por tanto, el proyecto SPICE fue creado bajo los auspicios del Comité Internacional de estándares de Ingeniería de Software y Sistemas a través de su Grupo de Trabajo sobre Evaluación de proceso (WG10).
En 1992, el informe del grupo de estudio dijo que: “...la comunidad internacional debería poner recursos para desarrollar un estándar para la evaluación de procesos software, incorporando lo mejor de los métodos de evaluación de procesos existentes.”
ISO decidió entonces se hiciera el desarrollo por pasos de un estándar para la evaluación de procesos. Los pasos fueron los siguientes:
  • Publicación inicial como Informe Técnico ‘Technical Report’ (“borrador de estándar”) para que después de su uso real pasase a
  • Revisión y publicación como estándar internacional IS ISO/IEC 15504 – Tecnologías de la Información – Evaluación de  Procesos (‘ISO/IEC 15504 – Information Technology – Process Assessment’).
  • Las siglas SPICE significan: Software Process Improvement and Capability Determination, es decir, Determinación de la capacidad y mejora de los procesos de software.

El proyecto SPICE tenía tres objetivos principales:
  • Desarrollar un borrador de trabajo para un estándar de evaluación de procesos de software.
  • Llevar a cabo los ensayos de la industria de la norma emergente.
  • Promover la transferencia de tecnología de la evaluación de procesos de software a la industria del software a nivel mundial.


Características
  • Establece un marco y los requisitos para cualquier fase de evaluación de procesos y proporciona requisitos para los modelos de evaluación de estos.
  • Proporciona también requisitos para cualquier modelo de evaluación de organizaciones.
  • Proporciona guías para la definición de las competencias de un evaluador de procesos.
  •  Actualmente tiene 10 partes: de la 1 a la 7 completas y de la 8 a la 10 en fase de desarrollo.
  • Comprende: evaluación de procesos, mejora de procesos, determinación de capacidad.
  • Proporciona, en su parte 5, un Modelo de evaluación de procesos para las fases de ciclo de vida del software definidos en el estándar ISO/IEC 12207 que define los procesos del ciclo de vida del desarrollo, mantenimiento y operación de los sistemas de software.
  • Proporciona, en su parte 6, un Modelo de evaluación de procesos para las etapas de ciclo de vida del sistema, definidos en el estándar ISO/IEC 15288 que define los procesos del ciclo de vida del desarrollo, mantenimiento y operación de sistemas.
  • Proporcionará, en su parte 8, un Modelo de evaluación de procesos para los procesos de servicios TIC que serán definidos en el estándar ISO/IEC 20000-4 que definirá los procesos contenidos en la norma ISO/IEC 20000-
  • Equivalencia y compatibilidad con CMMIISO forma parte del panel elaborador del modelo CMMI y SEI mantiene la compatibilidad y equivalencia de ésta última con 15504.Sin embargo CMMI-DEV aún no es un modelo conforme con esta norma (según lo requiere la norma ISO 15504 para todo modelo de evaluación de procesos).


Características

  • Tiene una arquitectura basada en dos dimensiones: de proceso y de capacidad de proceso. 
  • Define que todo modelo de evaluación de procesos debe definir: - la dimensión de procesos: el modelo de procesos de referencia (dimensión de las abscisas)
  • la dimensión de la capacidad: niveles de capacidad y atributos de los procesos.
  • Los niveles de capacidad para todo modelo de evaluación de procesos pueden tener desde el 0 y al menos hasta el nivel 1 de los siguientes niveles de capacidad estándar
  1. Nivel 0: Incompleto
  2. Nivel 1: Realizado
  3.  Nivel 2: Gestionado
  4. Nivel 3: Establecido
  5.  Nivel 4: Predecible
  6.  Nivel 5: En optimizacion

Para cada nivel existen unos atributos de procesos estándar que ayudan a evaluar los niveles de capacidad.


6) Realiza una investigación sobre el estándar  ISO 9001:2000 para el desarrollo del software.
La ISO / IEC 29110 es un conjunto de normas e informes técnicos que se ha desarrollado para entidades muy pequeñas (VSE – Very Small Entities). Una VSE se define como una entidad (empresasorganizaciones, departamentos o proyectos) que tiene menos de 25 personas. La mayoría de las pymede software pertenecen a la categoría VSE. La industria reconoce el valor de las PYME en la contribución de productos y servicios. Las pequeñas empresas también pueden crear y / o mantener el software que se utiliza en sistemas más grandes, por lo tanto, el reconocimiento de éstas comoproveedores de software de alta calidad es necesario.
Antecedentes.
La ISO 29110 tuvo su origen y desarrollo en México a manos de un pequeño grupo de personas que invertían su tiempo libre en la búsqueda de un estándar que funcionara en el entorno de desarrollo de software en México. Ésta es la historia de Hanna Oktaba, la Asociación Mexicana para la
Calidad en Ingeniería de Software
Cada vez más, la industria del software representa una actividad económica de suma importancia en la mayoría de los países del mundo. En Europarepresenta el 8% del PIB y el 6% de los puestos de trabajo; en España esta importancia está creciendo más aún, por la actual tendencia que se está experimentando hacia modelos de negocio basados en fábricas de software y nearshoring. A nivel mundial, esta industria está formada por micros, pequeñas y medianas empresas desarrolladoras de software –pymes– que suponen cerca del 90% de los negocios formales y que generan entre el 40% y el 50% del empleo total. Estudios muestran que la mejora de procesos de software (SPI) es una actividad que las pequeñas empresas desean implementar para incrementar la calidad y capacidad de sus procesos y, en consecuencia, la calidad de sus productos y servicios.
Este mismo estudio evidencia que, para mejorar sus procesos, las pequeñas empresas están utilizando estándares de procesos de organizaciones como el Software Engineering Institute (SEI) y la International Organization for Standardization (ISO), entre los que destacan CMMI-DEV, ISO 12207, ISO 15504 e ISO 9001. Sin embargo, diversos estudios apuntan a que la aplicación de estos estándares en las pymes es difícil, ya que supone para ellas una gran inversiónen dinero, tiempo y recursos, dado que estos modelos están orientados a las grandes organizaciones.
 Además, las recomendaciones de estos modelos son complejas de aplicar y el retorno de la inversión se da a largo plazo. Asimismo, en las pequeñas empresas la aplicación de estos modelos se agrava aún más, ya que existe un problema "cultural" importante cuando se quiere "importar" y adoptar, sin más, modelos creados para otro tipo de organizaciones; si el proceso no "casa" con la cultura de la organización, será rechazado por el "cuerpo" organizativo, como sucede en los trasplantes de órganos. Un problema parecido se expuso en la investigación, en la que se destacaron la importancia de las diferencias culturales en el éxito de la mejora de procesos de software entre las empresas de EEUU y Europa.Además, las empresas pequeñas necesitan, para la construcción de sus productos, prácticas eficientes de ingeniería del software adaptadas a su tamaño y tipo de negocio.
En este sentido, y para apoyar a las pequeñas empresas en sus esfuerzos de mejora de procesos, ISO ha constituido el grupo de trabajo SC7-WG24, cuyoobjetivo es que sus estándares de procesos de software (o adaptaciones de estos) se puedan aplicar a pequeñas empresas desarrolladoras de software. Este grupo estableció un marco común para describir perfiles evaluables del ciclo de vida de software para su uso en Very Small Enterprises (VSE, unaorganización de menos de 25 empleados). Estos perfiles se publicaron en el año 2010 con el nombre ISO/IEC 29110.
 El grupo de trabajo WG 24.
ISO nació en 1947 para facilitar la coordinación internacional de las normas técnicas en los diferentes campos de la industria. Pueden ser miembros de ISO todos aquellos países del mundo que lo deseen, representados a través de su organismo nacional de normalización, por ejemplo: ANSI (American National Standards Institute) por EEUU o AENOR
(Asociación Española de Normalización y Certificación) por España. Los trabajos de elaboración de normas están encomendados a los Comités Técnicos (TC), que suelen subdividirse en Subcomités (SC) y estos, a su vez, en Grupos de Trabajo (WG) para desarrollar temas específicos.
En algunas áreas, ISO colabora con otras organizaciones; así, en el campo de las tecnologías de la información, forma, junto con la International Electrotechnical Commission (IEC) el Joint Technical Committee 1 (JTC1), que se divide en varios subcomités, entre ellos, el SC7 de Ingeniería del Software y Sistemas, que posee diferentes grupos de trabajo (WG), como el WG 24. El grupo WG 24 nació en la sesión plenaria del SC7 en Finlandia en el año 2005 con el propósito de gestionar y desarrollar el trabajo para alcanzar los siguientes objetivos:
  • Hacer los estándares de ingeniería de software actuales más accesibles a las pequeñas empresas.
  • Proporcionar documentación que requiera un mínimo esfuerzo de adaptación.
  • Proveer documentación armonizada integrando estándares disponibles, tales como estándares de proceso, evaluación, calidad y modelado, y también productos de trabajo, entregables y herramientas.
  • Tener en cuenta, si es preciso, las nociones de niveles de madurez y capacidad presentadas en ISO/IEC 15504 y CMMI.

A partir de los trabajos del grupo WG 24, orientados a satisfacer estos objetivos, se ha desarrollado un conjunto de informes técnicos preliminares que son la base sobre la cual se estructura el estándar ISO/IEC 29110.
La Norma Técnica Peruana (2011), enfatiza que la NTP describe la arquitectura de los procesos del ciclo de vida del software, pero no especifica los detalles de cómo implementar o llevar a cabo las actividades y tareas incluidas en los procesos.
Entonces surge la necesidad de usar un modelo que pueda guiar a las instituciones del Sistema Nacional de Informática el cumplimiento de la Norma Técnica Peruana en sus proyectos de desarrollo de Software.
Casos de exito
Sistemas MIG es la primera empresa es América latina de tecnologías de la información especializada en atender necesidades de las agencias de viaje y Operadoras mayoristas de turismo.
Empresa magia digital recibió oficialmente su Certificado de Conformidad de la certificación sobre Ingeniería de Software, Modelos de procesos y evaluación para desarrollo y mantenimiento de software, tienen la certificación de calidad en sus desarrollos y procesos. Ahora en pinera en desarrollo de sistemas de la información.

Aportes

Innovación: Con la Certificación de esta Norma la empresa llega a innovar con la Calidad, Investigación y Desarrollo de sus procesos en su software. Así mismo son reconocidas por servicios y tener acceso al mercado con mayor facilidad.
Tecnológico: Ayuda a las empresas a tener software de calidad y servicios informáticos, es especialmente formado para los programas de mejora de los procesos de software.
Social: cuando una empresa es certificada con la iso 29110 da seguridad que sus servicios son de calidad y sus productos siguen un estándar.

Espiritual: Pues Mucho nos regocijamos cuando vinieron los hermanos y dieron testimonio de tu verdad y como andar en la verdad.