Este documento presenta los fundamentos de la ingeniería de software. Define el software, sus cualidades y factores de calidad. Explica que la ingeniería de software usa métodos para garantizar que el software se desarrolle a tiempo y cumpla las expectativas. También describe metodologías como Scrum, modelos de sistemas usando UML, y técnicas y herramientas para el desarrollo de software.
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
Guia unidad ii fundamentacion de ingenieria del software
1. REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN
UNIVERSITARIA, CIENCIAS Y TECNOLOGÍA
UNIVERSIDAD POLITÉCNICA TERRITORIAL DEL ESTADO LARA
“ANDRÉS ELOY BLANCO”
PROGRAMA NACIONAL DE FORMACIÓN EN INFORMÁTICA
Guía Didáctica Unidad II: Fundamentos de la Ingeniería del Software
Material con fines didácticos
Facilitador: Ing. Sullin Santaella
Barquisimeto, 2020
2. Contenido
El software.
Cualidades del software.
Factores de calidad del software.
Ingeniería del software.
Visión general del Proceso de desarrollo de software.
Fundamentación teórica de:
o Métodos de desarrollo de software.
o Metodologías o procesos de desarrollo de software.
o Modelado de sistema.
o Técnicas y Herramientas en el proceso de desarrollo de software.
Objetivos
Definir qué es la ingeniería de software y explicar su importancia
Presentar las cualidades y los factores de calidad del Software
Definir el concepto de Ingeniería del software
Enumerar las Metodologías de desarrollo de software
Describir las técnicas y herramientas aplicadas en el proceso de desarrollo de
software
3. Software
Se conoce como software al equipamiento lógico o soporte lógico de un sistema
informático. El software es un plan de funcionamiento para un tipo especial de
máquina, una máquina “virtual”' o “abstracta”'. Una vez escrito mediante algún
lenguaje de programación, el software se hace funcionar en computadores, que
temporalmente se convierten en esa máquina para la que el programa sirve de plan. El
software permite poner en relación al ser humano y a la máquina y también a las
máquinas entre sí.
Existen varias definiciones similares aceptadas para software, pero
probablemente la más formal sea la siguiente: Es el conjunto de los programas de
cómputo, procedimientos, reglas, documentación y datos asociados que forman parte
de las operaciones de un sistema de computación.
Cualidades del software
Las cualidades de un software pueden ser nombrados:
Correcto: Un software es correcto si se comporta de acuerdo a su especificación.
Confiable: El software se comporta de acuerdo con lo esperado por el usuario.
Robusto: Un software es robusto si se comporta en forma razonable aun en situaciones
no anticipadas.
Eficiencia: Es eficiente si usa recursos en forma económica.
Amigable: si el usuario lo encuentra fácil de usar.
Verificable: si sus propiedades pueden ser comprobadas.
Reusable: ya desarrollado se use con pocos o ningún cambio.
Portables: si pueden usarse y ejecutarse en distintos ambientes.
Interoperable: si puede coexistir y cooperar con otros sistemas.
4. Factores de calidad del software
El desarrollo de software debe estar basado en estándares con la funcionalidad y
rendimiento total que satisfacen los requerimientos del cliente.
Los procesos de desarrollo, artefactos, gestión de proyectos, análisis y diseño,
especificación de requerimientos, arquitectura, son solo algunos de los componentes
para conformar la Ingeniería de Software como disciplina para la creación y
mantenimiento de software. Dentro de ésta, existe un subconjunto de teorías,
herramientas y métodos orientados a lo que se denomina la calidad del software.
Una idea general sobre un software de calidad es aquel que debiera cumplir con
los requerimientos funcionales y de performance además de ser mantenible, confiable
Características
del SoftwareRobusto
Reutilizable
Eficiente
Utilizable
Mantenible
Evolutivo
Confiable Portable
5. y aceptable. Veamos cada uno de las principales características que hacen a un software
de calidad.
Mantenibilidad: el software debe ser diseñado de tal manera, que permita ajustarlo a
los cambios en los requerimientos del cliente. Esta característica es crucial, debido al
inevitable cambio del contexto en el que se desempeña un software.
Confiabilidad: incluye varias características además de la confiabilidad, como la
seguridad, control de fallos, entre otros.
Eficiencia: tiene que ver con el uso eficiente de los recursos que necesita un sistema
para su funcionamiento.
Usabilidad: el software debiera ser utilizado sin un gran esfuerzo por los usuarios para
os que fue diseñado, documentado, entre otros.
Como puede observarse, las diversas características con las que se desea que
cumpla un software de calidad varían ampliamente. Algunas tienen que ver con el
usuario que interactúa con el sistema, otras con el líder de proyecto y diseñadores, otras
características parecen muy abstractas y hasta indefinidas.
Ingeniería del software
La ingeniería de software provee metodologías y técnicas que ayudan a desarrollar
sistemas de software a tiempo
La ingeniería de software asegura que el desarrollador cumpla con las expectativas
de calidad y presupuesto
Las metodologías de la ingeniería de software fomentan un enfoque sistemático a lo
largo del ciclo de vida del software
Se usa Ingeniería del Software para construir un producto de alta calidad de una
manera oportuna, pues representa un proceso formal que incorpora una serie de
métodos bien definidos para el análisis, diseño, implementación y pruebas del software
y sistemas. Además, abarca una amplia colección de métodos y técnicas de gestión de
proyectos para el aseguramiento de la calidad y la gestión de la configuración del
software.
6. Fases del Proceso de Desarrollo de Software
• Fase de Definición:
- Ingeniería de información
- Planeamiento del proyecto de Software
- Análisis de requerimientos
• Fase de Desarrollo:
- Diseño de Software
- Codificación
- Prueba
• Fase de Mantenimiento
Metodologías o procesos de desarrollo de software
Las metodologías son un de trabajo usado para estructurar, planificar y controlar
el proceso de desarrollo en sistemas de información y consiste en herramientas,
modelos y métodos para asistir al proceso de desarrollo de software
Algunas metodologías:
1970s
Programación estructurada sol desde 1969
Programación estructurada Jackson desde 1975
1980s
Structured Systems Analysis and Design Methodology (SSADM) des de 1980
Structured Analysis and Design Technique (SADT) des de 1980
Ingeniería de la información (IE/IEM) desde 1981
1990s
Rapid application development (RAD) des de 1991.
Programación orientada a objetos (OOP) a lo largo de la década de los 90's
Virtual finite state machine (VFSM) des de 1990s
Dynamic Systems Development Method desarrollado en UK des de 1995.
Scrum (desarrollo), en la última parte de los 90's
7. Rational Unified Process (RUP) des de 1999.
Nuevo milenio
Extreme Programming(XP) desde 1999
Enterprise Unified Process (EUP) extensiones RUP desde 2002
Constructionist design methodology (CDM) des de 2004 por Kristinn R. Thórisson
Agile Unified Process (AUP) des de 2005 por Scott Ambler.
Modelado de sistema
EL modelado de sistemas no es más que el intercambio de información de diseño
e ideas usando entre cliente y diseñador utilizando los medios que siempre han sido
populares: pizarras, cuadernos y trozos de papel por nombrar algunos. Pero
actualmente se puede leer que es mucho más fácil darle el moldeado a un sistema por
medio de la notación UML, sirve mejor por lo cual puede ser usada para capturar,
guardar, rechazar, integrar automáticamente información, y diseño de documentación.
Técnicas y Herramientas en el proceso de desarrollo de software
Las técnicas que se podrían utilizar en la elaboración de un software seria el
procedimiento o conjunto de reglas, normas o protocolos, que tienen como objetivo
obtener un resultado determinado para que dicho software sea lo más parecido a
las exigencias del cliente, podrían ser:
Técnica para la Recopilación de Datos
La recolección de datos se refiere al uso de una gran diversidad de técnicas y
herramientas que pueden ser utilizadas por el analista para desarrollar los sistemas de
información, los cuales pueden ser;
Las entrevistas: Es una técnica de obtención de información mediante el diálogo
mantenido en un encuentro formal y planeado.
8. La encuesta: estudio en el cual el investigador obtiene los datos a partir de realizar un
conjunto de preguntas normalizadas dirigidas a una muestra representativa o al
conjunto total de la población.
El cuestionario: es un conjunto de preguntas sobre los hechos o aspectos que interesan
en una investigación y son contestados por los encuestados.
La observación: Es una técnica que consiste en observar atentamente el fenómeno,
hecho o caso, tomar información y registrarla para su posterior análisis.
Herramientas
Las Herramientas dan ayuda al desarrollo de Sistemas de Información, ayudan
a solucionar los problemas que se nos presentan en los proyectos y desarrollos de
aplicaciones informáticas.
Tal es el caso que para el desarrollo de software libre se pueden conseguir unas
cuantas herramientas pero todas utilizan la notación UML.
Existen herramientas orientadas a una BD en específico y estas son MySql y
PostgreSQL, el de MySql (MySql WorkBench no es libre).
También se puede utilizar, Herramientas para Ingeniería de Software Asistida
por Computadora (CASE) Son un conjunto de métodos, utilidades y técnicas que
facilitan la automatización del ciclo de vida del desarrollo de sistemas de información.
Clasificación de las herramientas CASE
No existe una única clasificación de herramientas CASE y, en ocasiones, es
difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a:
• Las plataformas que soportan.
• Las fases del ciclo de vida del desarrollo de sistemas que cubren.
• La arquitectura de las aplicaciones que producen.
• Su funcionalidad.