2. Objetivo
General
• Aplicar las metodologías más avanzadas de desarrollo de
software que permitan atender los requerimientos
planteados por las necesaidades de los usuarios, mediante
el análisis y diseño de componentes de software, así como
implementando y probando el prototipo de un sistema
para establecer que cumpla con estándares de calidad en
situaciones reales.
3. Actividades de Aprendizaje con
Docente
• Resolver casos específicos para aplicar los criterios que determinan la
factibilidad de desarrollo de un producto de software.
• Analizar casos reales para evaluar las técnicas de análisis de
requerimientos de los usuarios.
• Discutir las técnicas de elaboración de los artefactos del proceso de
desarrollo de software para analizar las diferentes facetas y etapas
que conforman el proceso de desarrollo de software.
• Elaborar un prototipo para aplicar las etapas del proceso de desarrollo
de software.
• Exponer los avances en el proceso del desarrollo del producto de
software para compartir experiencias aprendidas durante el proceso.
5. Contenido
del curso
• 1. Introducción a la ingeniería de software.
• 1.1 El proceso de diseño en ingeniería.
• 1.2 Mitos y realidades en la ingeniería de software.
• 1.3 El producto software y el proceso de desarrollo de software.
• 2. Estudio de factibilidad y planificación.
• 2.1 Objetivos del producto de software.
• 2.2 Análisis del contexto.
• 2.3 Análisis costo-beneficio.
• 2.4 Criterios de decisión.
• 3. El proceso de desarrollo de software.
• 3.1 Ciclos de vida y modelos de procesos.
• 3.2 Modelos clásicos.
• 3.3 Modelos incrementales y evolutivos: RUP (Rational Unified Process).
• 3.4 Modelos ágiles: metodología SCRUM.
• 3.5 Fundamentos de UML (Unified Modeling Language) para el análisis y diseño de software.
• 4. Modelado - Análisis.
• 4.1 Elicitación de los requerimientos: entrevistas, observación del contexto.
• 4.2 Modelado de los requerimientos: escenarios (storyboards), casos de uso, product backlog.
• 4.3 Modelado de los requerimientos: comportamiento, patrones, apps web y móviles.
6. Contenido
del curso
• 5. Modelado - Diseño.
• 5.1 Diseño de la experiencia del usuario.
• 5.2 Diseño de la arquitectura del sistema: diseño de componentes y diseño flujo de la información.
• 5.3 Diseño de la Base de Datos.
• 6. Implementación.
• 6.1 Uso de patrones de diseño.
• 6.2 Ambientes de desarrollo y manejo de versiones.
• 6.3 Buenas prácticas y estándares de programación.
• 7. Estimación de proyectos de software.
• 7.1 Aspectos que afectan a la estimación.
• 7.2 Técnicas de estimación: de descomposición y empíricas.
• 7.3 Planificación del proyecto de software.
• 8. Administración de la calidad.
• 8.1 Conceptos de calidad de software.
• 8.2 Definición y ejecución de pruebas de software.
• 8.3 Modelos de aseguramiento de la calidad del software.
7. Evaluación
Estudio de factibilidad 15%
Exposiciones 10%
Discusiones 5%
Casos 15%
Reporte final 15%
Prototipo 15%
Artefactos 10%
Reportes de avances 15%
8. Referencias
para el curso
•Sommerville, I. (2015). Ingeniería de Software, 10th
ed. Prentice Hall.
•Pressman, R. S. (2014). Software engineering: a
practitioner's approach, 8th ed. McGraw-Hill
Education.
•Laudon, K.C. & Laudon, J.P. (2012).Sistemas de
Información Gerencial. México: Pearson Educación.
•Jalote, P. (2005). An integrated approach to software
engineering. New York: Springer.
10. Louvain Interaction Lab-Belgium
• Lilab is conducting research,
development, and consulting
services in the domain of user
interface engineering.
Juan Manuel Gonzalez Calleros a Ph. D. Researcher at Lilab
•3DUIs, Model-Based modeling, HCI, workflow
18. Think
• Given your current competencies
• How long would it take you to develop a software that
requires 10,000 lines of code (LOC)?
• Based on your answer, now estimate your monthly
productivity.
• Individual For instance, 2000 LOC per month
• TEAM For instance, Avg 1500 LOC per month
19. Facts about LOC
A software
company
produces
• 100 LOC per man/month
embedded systems
1,000 LOC per
man/month
• 10 man/month
10, 000 LOC
requires
22. Software
Crisis
• On 4 June 1996, the first flight
of the new European Aerospace
Agency launched the rocket
Ariane 5, same that failed
shortly after launch, which
resulted in an estimated $ 1.5
billion loss.
23. Loss of money, dissatisfied
users
• In terminal 5 of Heathrow Airport in March 2008, the bugs
with the baggage system caused
• 23,000 pieces of luggage were landed elsewhere.
• Thousands of passengers waiting for their luggage
• The fifth part of the flights had to be cancelled
• British Airways lost 16 million pounds.
• An investigation showed that the lack of testing software,
server capacity, was responsible
Source http://www.computerweekly.com/news/2240085948/Lack-of-software-
testing-to-blame-for-Terminal-5-fiasco-BA-executive-tells-MPs
24. Loss of money, dissatisfied users
• An investigation showed that
the lack of testing software,
server capacity, was
responsible
http://www.computerweekly.com/news/2240085948/Lack-of-software-testing-to-blame-for-Terminal-5-fiasco-BA-executive-tells-MPs
25. Software
• Just as new software systems are introduced every day thus
also emerge many problems due to the errors in them.
26. Failures in software
systems
• A study conducted by the National Institute of
standards and technology find that software
failures have cost about 59.5 billion per year to
the economy of the United States.
27. Course
Motivation
The quality of software
products is a critical attribute
What are the consequences of
the lack of quality in the
software?
28. What are the
consequences
of the lack of
quality in the
software?
dissatisfied users
the loss of money
and above all the situation
more critical, the loss of
human lives.
36. Testing software is hard
Why?
• Many Users
• The software is available to many
people wanting to do their work
effectively and efficiently
• software today affects people and
businesses like never before
38. Exercise
• Design (UML) a solution to the following problem.
• The "Hope" ranch has different barns to store seeds
(maize, wheat, sorghum). The barns have different
shapes and sizes, some are cylindrical, others cubic and
others conical. Knowing the volume of stored seeds is
vital to the livelihood of the region in times of scarcity;
This is why is required to constantly calculate the total
number of seeds stored in barns, regardless of the type
of seed, to prevent shortage. In addition, the system
must show the seed that is stored in each barn.