Solucion Del Caso

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

Ingeniería De Software I

Ana Maria Manrique Duque

Sandra Liliana Urrea Cubillos

Universidad De Cundinamarca

2020
Tabla De Contenido

1. Historia del software


2. Caso
3. Historia de la empresa
4. Metodologías
5. Solución del caso
6. Requerimientos
7. Ciclo de vida del software
1. Historia del software

AÑOS CINCUENTA

Se aplica al desarrollo de software el mismo proceso que al desarrollo de hardware, tipo cascada
rigurosa. Las lecciones aprendidas fueron las siguientes:

Buenos principios

 No ignorar matemáticas, ciencias de la computación, sociales, económicas y


administrativas.
 Usar el método científico para aprender a través de la experiencia.
 No comprometerse demasiado antes de entender la complejidad de un proyecto
Evitar
 Seguir demasiado rigurosamente el proceso de desarrollo secuencial.

AÑOS SESENTA

El desarrollo de software es artesanal. Las propiedades de software, tales como: fácil de


modificar, fácil de copiar, no se gasta, es invisible, fomentaron el proceso de desarrollo tipo
“codifica y corrige” (code and fix). Se inició la cultura del hacker en el buen sentido de la
palabra, es decir experto en programación, y la del vaquero (cowboy) que hace desarrollos
heroicos de última hora.
Buenos principios

 Atreverse a hacer prototipos novedosos, no limitarse a repetir lo que ya se conoce.


 Respetar que el software es diferente. No se puede incrementar la velocidad de su
desarrollo de manera infinita.

Evitar

 Programación al estilo vaquero. Parches de último minuto o trabajo de última noche


pueden traer graves consecuencias.

AÑOS SETENTA

Se identifican las diferentes fases del desarrollo: requerimientos, análisis, diseño,


codificación y pruebas. Se introduce la programación estructurada y métodos formales para
especificar software. Se identifican principios de diseño, como modularidad, encapsulación,
abstracción de tipos de datos, acoplamiento débil y alta cohesión, entre otros. Se publica el
modelo de cascada y se definen los conceptos de verificación y validación.
Buenos principios

 Eliminación temprana de defectos y su prevención a través del análisis de causa.


 Determinación temprana del propósito de sistema para tener una visión compartida
con el cliente.

Evitar

 Desarrollo descendente (top-Down) a toda costa. Los requerimientos emergentes y


los cambios lo hacen poco realista, para la mayoría de los casos.

AÑOS OCHENTA

Se busca la productividad y escalabilidad de sistemas y equipos de desarrollo. La


Orientación a Objetos renace con fuerza a través de las múltiples propuestas de lenguajes
de programación. Se crea el primer modelo de madurez de capacidades de procesos (SW-
CMM) y los primeros estándares. Nace el concepto de Fábricas de Software y se generan
las primeras herramientas para incrementar la productividad a través de la programación
por el usuario, tales como 4GLs.
Buenos principios

 Hay muchos caminos para incrementar la productividad que incluyen la selección


del personal, capacitación, herramientas, reutilización, mejora de procesos, entre
otros.
 Lo que es bueno para el producto es bueno para el proceso, por ejemplo:
arquitectura, composición y adaptación.

Evitar

 Pensar que existe una solución mágica (silver bullet) que aplica a toda clase de
problemas.

AÑOS NOVENTA

La concurrencia (paralelismo y distribución) adquiere mayor importancia con respecto a


procesos secuenciales. La Orientación a Objetos se extiende a las fases de análisis y diseño.
Se acuerda un lenguaje de modelado (UML) y se genera el primer proceso comercial de
desarrollo orientado a objetos (RUP). Los diseñadores y los arquitectos de software
empiezan a recaudar las mejores experiencias a través de patrones de diseño y de
arquitectura. Se define el Modelo Espiral para el desarrollo basado en el análisis de riesgos
y su vertiente conocida como desarrollo iterativo e incremental. El Software Libre toma
fuerza y se crean los primeros ejemplos exitosos. La usabilidad de sistemas se convierte en
el foco de atención e investigación. Software empieza a ocupar la posición crítica en el
mercado competitivo y en la sociedad (web).
Buenos principios

 El tiempo es dinero. La gente invierte en software esperando retorno de inversión,


mientras más rápido se desarrolle el software, más rápido se recupera la inversión,
pero eso pasa sólo en el caso cuando la calidad de software es satisfactoria.
 El software tiene que ser útil para la gente, es la parte crucial de la definición de
Ingeniería.

Evitar

 Hacer las cosas demasiado rápido. Los hitos muy ambiciosos a menudo traen como
consecuencia las especificaciones incompletas, que resultan en mucho re-trabajo.

SITUACIÓN ACTUAL

Los temas nuevos son la agilidad en el desarrollo y el valor para el cliente. Se redacta el
Manifiesto de Agilidad en respuesta al estilo promovido por CMM. Surgen nuevos
dispositivos (PDAs, celulares) que involucran el ciclo: Aprendizaje-Seguridad-Mejorar su
uso. Las cualidades prioritarias de sistemas son: Seguridad/Privacidad, Usabilidad y
Confiabilidad. Se incrementa la propagación de software empaquetado COTS
(Commercial-Off-The_Shelf). Crece el entendimiento de las bondades del código abierto.
El desarrollo dirigido por modelos (MDD, Model Driven Development) toma fuerza. Se
integra el proceso de desarrollo de software con el de sistemas.
Buenos principios

 Cuando los cambios son frecuentes la adaptabilidad del proceso debe ser más
importante que la repetición.
 Primero hay que considerar y satisfacer los asuntos que son de valor para el cliente.

Evitar

 Enamorarse de tus propios lemas. Decir al cliente “no lo vas a necesitar”, no


siempre es cierto.

PROSPECTIVA AÑO 2010 Y 2020


Las tendencias que van a afectar, en el futuro próximo, la forma de desarrollar software son
las siguientes:

 Globalización. La conectividad global proporcionada por el Internet y las


comunicaciones de banda ancha causará la evolución de las principales economías
hacia redes de economías. En consecuencia, se requerirá de nuevos procesos de
desarrollo para la colaboración global exitosa. Los retos claves serán: la
colaboración multicultural, lograr las visiones compartidas y la confianza, definir
mecanismos de contratación, incentivos, entregas y la sincronización de cambios,
que aprovechen múltiples zonas horarias. Algunos problemas relacionados con
diferencias culturales fueron identificados en un estudio sobre la adopción de
procesos. Por ejemplo, SW-CMM que proviene de la cultura
Individualista/Masculina/Corto plazo tuvo muy baja aceptación en la cultura de
Tailandia que es Colectiva/Feminista/Largo plazo.
 Sistemas de sistemas. La habilidad de las organizaciones de competir, adaptarse y
sobrevivir en el mercado y en la sociedad globalizada va a depender, en gran
medida, su habilidad para integrar sistemas de software en sistemas de sistemas
(Systems Of Systems - SOS). Un SOS integra múltiples sistemas desarrollados
independientemente y se caracteriza por su gran tamaño (>10 millones de SLOCs, >
30 tipos de interfaces externas diferentes, > 20 proveedores). Los retos para el
desarrollo de SOS son: lograr acuerdos a tiempo con diversos involucrados, resolver
rápido los conflictos en los requerimientos y coordinar actividades de múltiples
proveedores.
 Abundancia computacional. La Ley de Moore seguirá vigente al menos durante los
próximos veinte años. Con esto, vamos a tener una abundancia de aparatos
pequeños pero con gran poder de procesamiento. La Ingeniería de Software tendrá
que enfrentarse con los problemas de cómo manejar el desarrollo para esta
abundancia computacional, y finalmente, como integrar estos dispositivos a los
SOS. Esto va a requerir de nuevos niveles de abstracción para la programación y
nuevas herramientas con mayor poder basado en el uso del conocimiento.
 Autonomía computacional. Es una visión en la cual la Inteligencia Artificial alcanza
plenamente sus objetivos. Las máquinas se vuelven autónomas, evalúan las
situaciones y determinan la mejor opción para actuar.
Combinación de biología y computación. Aquí habrá una influencia mutua. La
computación basada en biología utiliza fenómenos moleculares o biológicos para
resolver problemas computacionales. Mientras que la biología computacional tratará
de mejorar las capacidades humanas, incorporando dispositivos al cuerpo humano.
2. Caso

Una organización compraba frazadas por cantidades importantes y de diferentes gramajes.


El proveedor sabía que no hacían control de calidad entonces les enviaba frazadas con
menor gramaje de la que se pedía.
3. Historia de la empresa

Empresa: Textiles JJ

Información de la empresa: la empresa Textiles JJ fue creada hacia el año 1992 haciendo
posible el proyecto final y de forma legal hacia el año 1998 gracias a los esfuerzos de toda
una familia que con el conocimiento y la unión inicio distribuyendo mercancías enfocadas
al hogar. Expandió su mercado hacia la dotación de para hoteles, hospitales e instituciones.

Prueba de ellos es que adquisición de mayor conocimiento, la innovación y la constante


aceptación de los clientes que hoy en día confían en la compañía y en nuestra marca.
4. Metodologías
 Modelo cascada

El modelo en cascada es un proceso de desarrollo secuencial, en el que el desarrollo de


software se concibe como  un conjunto de etapas que  se ejecutan una tras otra. Se le
denomina así por las posiciones que ocupan las diferentes fases que componen el proyecto,
colocadas una encima de otra, y siguiendo un flujo de ejecución de arriba hacia abajo,
como una cascada.

 Modelo espiral

El desarrollo en espiral es un modelo de ciclo de vida del software definido por primera vez
por Barry Boehm en 1986, utilizado generalmente en la ingeniería de software. Las
actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración
representa un conjunto de actividades.

 Metodología de prototipo

Es un procedimiento de desarrollo especializado que permite a los desarrolladores la


posibilidad de poder solo hacer la muestra de la resolución para poder validar su esencia
funcional ante los clientes, y hacer los cambios que sean fundamentales antes de crear la
solución final auténtica. De hecho, la mejor parte de esta metodología es que tiende a
resolver un conjunto de problemas de diversificación que ocurren con el método de la
cascada.

Además de esto, la gran ventaja de optar por este enfoque es que da una idea clara sobre el
proceso funcional del software, reduce el riesgo de falla en una funcionalidad de software y
asiste bien en la recolección de requisitos y en el análisis general.

 Metodología de programación Extrema (XP)

Como metodología ágil de ingeniería de software, la metodología de programación extrema


se conoce actualmente como metodología de XP (eXtreme Programming). Esta
metodología, se utiliza principalmente para evitar el desarrollo de funciones que
actualmente no se necesitan, pero sobre todo para atender proyectos complicados. Sin
embargo, sus métodos peculiares pueden tomar más tiempo, así como recursos humanos en
comparación con otros enfoques.  

Estas son solo algunas de las metodologías de Desarrollo de Software que existen, pero lo


importante es que tengas en cuenta que al estar familiarizado con estos populares enfoques
podrás optimizar la eficiencia de tus proyectos utilizando un enfoque puro o combinando
algunos de ellos.
 Metodología Prince2

Es un método estructurado de gestión de proyectos. Es una aproximación a las “buenas


prácticas” para la gestión de todo tipo de proyectos que se ha convertido en el estándar de
facto para la organización, gestión y control de proyectos.
5. Solución del caso

Teniendo en cuenta las definiciones y problemáticas anteriormente planteadas. Partimos


del análisis que hacemos a la “EMPRESA TEXTILES JJ”, para verificar y mejorar la
calidad de sus productos: donde la solución que se diseña es hacer que la organización
implemente ese proceso que permita que la empresa reciba sus insumos con el gramaje
acordado, para ello se desarrollara un software que se encargue del pesaje para
comprobar con el pedido establecido.
6. Requerimientos

Recursos tecnológicos:

 Software: resultados de operaciones, y así observar qué elementos no se están


llevando a cabalidad o qué procesos podemos ir mejorando, para finalmente,
realizar una evaluación general del producto final, en base a estos estos dos,
logrando así llegar a la solución del problema.
 Hardware

Recursos humanos:

 Analista y desarrolladores del software: de acuerdo con la información obtenida


por la empresa se recopilara toda la información y se desarrollara un software
basado en la interpretación que se logre
 Equipo necesario para poder realizar el estudio de la información además de poder
implementar el software, el cual será instalado y supervisado por los desarrolladores
del software.
7. Ciclo de vida del software
1. Análisis
 Alcance: Diseñar un software para la empresa Textiles JJ, el cual ayudara a
mejorar el control de calidad de los productos
 Diseño:

-Modulo de inicio

-Modulo de registro y pesaje de ingreso de frazadas

-Modulo para historial de pe saje de frazadas e impresión de reportes


2. Implementación

Partiendo del desarrollo de software, que se plantea como solución, se describen todos los
pasos y herramientas necesarias; que nos permitirán llevar un desarrollo efectivo. Como
primer paso, se procede a asignar los roles y participantes, los cuales nos permitirán tener
más claro la intervención que cada uno tendrá respecto al tema. En segunda instancia, a
través del cliente, y en conjunto con la aplicación de las herramientas CASE, en este caso
EASYCASE, con la cual se buscará automatizar las fases de análisis y diseño, y así lograr
tener en cuenta, todos los factores presentes en el proceso de control de calidad de las
frazadas frente al gramaje que deben tener. Para manejar, una buena gestión del desarrollo,
aplicaremos el método de PRINCE2, el cual nos permitirá dividir los proyectos en las fases
de gestión y fases técnicas, permitiendo mantener el control eficiente de los recursos, del
control periódico de su evolución, y del desarrollo dentro de los diferentes procesos del
CICLO DE VIDA de este. En este caso, podría ser necesario la utilización de
DIAGRAMAS DE FLUJO, el cual permita ver la secuencia lógica que estructura la
funcionalidad del software. Otro factor, a tener en cuenta es la ARQUITECTURA DEL
SOFTWARE, con las cuales sabremos cómo interactúa el usuario y el sistema en conjunto,
delimitando los requisitos y restricciones que este tendrá. En este caso, el lenguaje de
programación que vamos a utilizar se basará, según el IDE (Entorno de desarrollo), con
los cuales, podremos trabajar, toda la parte de la programación y codificación del software.

3. Pruebas

Para finalizar, con ayuda del ISO – SPICE (Base para realizar evaluaciones del Software),
y con CMM (Modelo de madurez), se podría llegar a realizar evaluaciones cada cierto
tiempo, las cuales permitan obtener criterios de análisis.

También podría gustarte