Pc3 Ingenieria Software
Pc3 Ingenieria Software
Pc3 Ingenieria Software
Se refiere a toda la parte �sica de un equipo. Es lo que se conoce como lógica cableada.
SOFTWARE
Es el nuevo elemento que aparece con el microprocesador (uP). Para que un uP trabaje requiere
de un so�ware o programa que le indique que debe de hacer. Existen una gran variedad de
programas: Sistemas opera�vos: Windows, Linux, etc.So�ware de oficina: Word, Excel,
etc.So�ware de diseño: Corel, Autocad, etc. So�ware de programación: C, Java, Python, etc.
FIRMWARE
ROM, EPROM, EEPROM). Dicho programa es el que inicializa al equipo y le dice al procesador
que debe hacer. En las computadoras se le llama BIOS (Sistema Básico de Entrada y Salida).
Informá�ca: Se encarga del procesamiento automá�co de datos. Los sistemas informá�cos esta
formado por tres partes: Entrada: La captación de datos. Proceso: El cálculo con los datos. Salida:
Transmisión de resultados
Computadora: Es un equipo electrónico que sirven para procesar datos. Recibe datos, los
procesa y ob�ene información. Luego: Lo almacena (disco duro).Lo visualiza (pantalla de video).
Lo transmite (red de datos). Se denomina computadora a todo equipo que �ene un procesador
internamente. Al procesador se le debe decir que hacer, eso se denomina programar. Es el área
que se encarga de la aplicación de las computadoras en procesamiento de datos (solución de
problemas). La computación se aplica a diversas áreas. La computación es una parte de la
informá�ca.
Algoritmo: Es un conjunto de pasos o reglas bien definidas, ordenadas y finitas que permite
realizar una ac�vidad mediante pasos sucesivos que no generen dudas a quien debe realizar
dicha ac�vidad. Antes de elaborar un programa es recomendable realizar primero el algoritmo.
Para documentar un algoritmo tenemos dos opciones: Pseudocódigo. Diagramas de Flujo de
Datos. Los Diagramas de Flujo de Datos (DFD), son descripciones gráficas de los algoritmos; usan
símbolos conectados con flechas para indicar la secuencia de instrucciones. Un diagrama de flujo
se puede documentar mediante diversos programas como: Microso� Word y Power Point, con
la opción Insertar - Formas.Microso� Visio.Editores de DFD.
Paradigma: Las matemá�cas son una gran herramienta para abstraer. La abstracción, nos
permite: Entender cómo funciona algo. Simular el comportamiento de un objeto o evento.
Predecir su comportamiento. Paradigmas de Programación: “Un paradigma de programación es
una forma de programar (realizar cómputo), de estructurar los datos (como los represento) y
organizar las tareas que debe llevar a cabo un programa “Los paradigmas de programación están
asociados a determinados modelos de cómputo (basados en transistor y cuán�co). También se
asocian a un determinado es�lo de programación (prog. estructurada y prog. Orientada a
objetos). Los lenguajes de programación suelen implementar uno o varios paradigmas. Ejemplo:
Python y JavaScript. Paradigmas Fundamentales: Los paradigmas fundamentales son:Enfoque
impera�vo: indicar el cómo se debe calcular.Enfoque declara�vo: indicar el qué se debe calcular.
Analogía: En los lenguajes impera�vos se indica la “receta”, mientras que los declara�vos, la
“foto del plato” que se quiere preparar. Paradigmas derivados: Impera�vo: Paradigma orientada
a objetos. Ejemplo: C++.Paradigma orientada a eventos. Ejemplo: Visual Basic.Paradigma
Impera�vo: Describe cómo debe realizarse el cálculo, no el porqué. Impera�vo significa mandar
o dar una orden y es exactamente lo que hace este �po de programación, dar órdenes al
computador. Describe de forma explícita qué pasos deben llevarse a cabo y en qué secuencia
(flujo explícito) para alcanzar la solución deseada.Las variables son posiciones de memoria que
con�enen datos (o referencias), pueden ser modificadas, y representan el estado del programa.
La sentencia principal es la asignación. Es el estándar “de facto”. Asociados al paradigma
impera�vo se encuentran los paradigmas: Modular Procedimental Estructurado. Lenguajes
representa�vos: Fortran, Cobol, Basic, Pascal, C, Java, C++, C#, Eiffel, JavaScript, Python, etc.
Algunos autores denominan “paradigma impera�vo” solo al “paradigma estructurado”.
Paradigma declara�vo: Describe que se debe calcular, sin explicitar el cómo. Declara�vo significa
que explica de manera clara algo dudoso, permi�endo describir los resultados esperados sin
especificar la forma en cómo se llegarán a ellos. No existe un orden de evaluación prefijado. Las
bases de datos son como los bancos: En los Bancos guardamos dinero. En las Base de Datos
guardamos datos. Los bancos y las base de datos son sistemas seguros. Ejemplo: Lenguaje SQL
Ejemplo: Especificación CSS (Cascading Style Sheets) Esta especificación es un lenguaje de diseño
gráfico que se escribe dentro del código HTML de un si�o web. Permite crear páginas de una
manera más exacta y aplicarles es�los (colores, márgenes, formas, �pos de letras, etc.) por lo
que se �ene mayor control de los resultados finales. La especificación CSS, junto con HTML y
JavaScript es una tecnología usada por muchos si�os web para crear páginas con un diseño
agradable. CSS permite “separar” el contenido de la forma de presentación de las páginas web.
Lo que genera múl�ples beneficios, como: Presentar contenido en diferentes formatos. Tener un
si�o web responsivo (adaptarse a diversas resoluciones de pantalla). Se adecua al “aspecto radio
“Definir el es�lo visual de todo un si�o web. Las variables son nombres asociados a definiciones,
y una vez instanciadas son inmutables. No existe sentencia de asignación. El control de flujo suele
estar asociado a la composición funcional, la recursividad y/o técnicas de reescritura y
unificación. Asociados al paradigma declara�vo se encuentran los siguientes paradigmas:
Funcional (Familia LISP) Lógico (Prolog)Reac�vo (Simulink, LabView) Lenguajes descrip�vos.
Programas para hacer Programas: Los programas se crean mediante otros programas
especializados que nos permiten:Escribir o dibujar el programa: se u�liza un editor.Detección de
errores: una sentencia mal escrita, una mala definición del �po de datos para una variable, etc.
A esto se le conoce como depurador (debugger).Conver�r el programa fuente en código
máquina: llamado compilación o interpretación, dependiendo del �po de lenguaje de
programación empleado.Entorno seguro de ejecución del programa: evita que por una mala
programación la computadora se "cuelgue". A todas estas funcionalidades se les conoce como
herramientas de desarrollo o SDK(So�ware Development Kit) que son normalmente
desarrolladas por el propio fabricante del lenguaje de programación.Los SDK traen solo unas
cuantas librerías. Cuando todas estas herramientas se integran en un solo entorno de
programación se le denomina IDE (Integrated Development Environment) y es lo que
normalmente se usa para programar.Los IDE proveen un marco de trabajo amigable para los
lenguajes de programación.Los IDE incluyen algunas librerías.IDE: Existen básicamente dos
entornos de programación:Textual: Las instrucciones del lenguaje de programación se escriben.
Ejemplo: C, C++, Python, etc.Iconográfico: Las instrucciones del lenguaje están representados
por íconos. Los programas “se dibujan”. Ejemplo: Labview, Ladder, etc. Un IDE puede tener uno
o varios compiladores o intérpretes, por lo cual, se le puede usar para programar en dis�ntos
lenguajes de programación.
Direc�vas o pragma: Las direc�vas permiten realizar operaciones preliminares en el código
fuente antes de pasarlo al compilador o definir parámetros para especificar qué �po de
compilación se debe realizar. Las direc�vas son “órdenes” que le damos al compilador.La sintaxis
y el uso de las direc�vas varían significa�vamente de un lenguaje de programación a otro. Las
direc�vas no son instrucciones de un lenguaje de programación, son ordenes que le damos al
compilador.
Aplicaciones Desktop: , es aquella que esta instalada en el computador del usuario y que es
ejecutada directamente por el sistema opera�vo (Windows, Mac OS X, Linux, etc) y cuyo
rendimiento depende de la configuración de hardware del computador (memoria RAM, tamaño
de disco duro, memoria de video, etc)
Aplicaciones Web: son aquellas que están instaladas en un servidor y su ejecución requiere
disponer de acceso a una Intranet y/o Internet, de un navegador (Google Chrome, Internet
Explorer, Opera, etc).Trabajan bajo una arquitectura cliente/servidor.
Aplicaciones Moviles: Aplicaciones móviles son aquellas que están diseñada para ser ejecutada
en teléfonos inteligentes, tabletas y otros disposi�vos móviles (i-watch). Permiten al usuario
efectuar un variado conjunto de tareas en el ámbito profesional, ocio, educa�vas, acceso a
servicios, etc
Framework: Un framework es un entorno de trabajo que �ene como obje�vo facilitar la labor
de programación ofreciendo una serie de caracterís�cas y funciones que aceleran el proceso de
desarrollo, reduce los errores, favorecen el trabajo colabora�vo, consiguiendo con ello obtener
un producto de mayor calidad. Un framework es un entorno de desarrollo completo, que facilita
herramientas tan indispensables como el compilador, el debugger y el editor de código, pero
también cuenta con un poderoso conjunto de bibliotecas, con funciones ú�les ya previamente
implementadas, que ahorran �empo y esfuerzo al desarrollador y cons�tuyen el núcleo del
entorno. Los toolkits de MathLab son bibliotecas. Con�ene librerías y herramientas que nos
permiten construir aplicaciones de una manera rápida.Garan�za la calidad del “producto”
gracias a una metodología y estructura de trabajo bien definidas. Organización predeterminada
del código. Estructura de trabajo para situar los diferentes archivos de la aplicación (recursos,
controladores, vistas, modelos, etc.). Reu�lización del código.Reduce significa�vamente el
�empo de desarrollo de una aplicación.Es más fácil probar y depurar el código incluso para
desarrolladores que no son los creadores del código.Ayuda a establecer las mejores prác�cas de
programación y el uso adecuado de patrones de diseño. Permite a los desarrolladores crear
código más seguro.La mayoría del código y funcionalidades de los frameworks han sido
extensamente probadas y cer�ficadas. Esto hace que el desarrollo de las aplicaciones sea un
proceso más confiable.Ayuda a evitar el código duplicado y redundante.Facilita el trabajo en
tecnologías sofis�cadas.Ejemplo: Inteligencia ar�ficial.
cPanel: (control Panel) es un programa para administrar servidores de alojamiento web y que
provee herramientas de automa�zación y una interfaz gráfica basada en páginas web. Permite:
Administración de archivos: principalmente para la instalación de aplicaciones
PHP.Configuración de los dominios.Ges�ón de cuentas de correo.Ges�ón de bases de datos
MySQL: creación y mantenimiento de bases de bases de datos.Ges�ón de los recursos: espacio
en disco, consumo de ancho de banda mensual, etc.
Framework para Móvil: Fluter: Permite crear aplicaciones na�vas mul�plataforma.Se programa
con el lenguaje Dart (similar a C++, java y javascript).Está escrito en C++Fue creado por Google.
Resumen: SDK, IDE y frameworkSDK trae unas cuantas librerías básicas,IDE trae una mayor
can�dad de librerías.Framework trae bibliotecas, metodología y una estructura de trabajo.
INGENIERIA DE SOFTWARE
Antecedentes de la Ingeniería del So�ware
• La demanda por el so�ware comenzó a crecer debido a la expansión del uso de computadoras
electrónicas en diversas áreas. • Cuando el so�ware empezó a desarrollarse, los primeros
programas eran pequeños y esencialmente artesanales. • Los programadores no contaban con
metodologías y herramientas que le ayudarán en el desarrollo del so�ware ni tampoco en la
ges�ón o control del proyecto. • Esto generó una produc�vidad muy baja y una mala calidad
en los so�wares que se desarrollaban. • Conceptos: – Falla: Defecto dentro de un componente
de HW o SW. – Error: Manifestación de una falla. – Avería: No realización de alguna acción
ante un error. • Gran can�dad de proyectos de so�ware tuvieron diversos problemas, causando
sobrecostos y accidentes que involucraban daños a propiedades, y en el peor de los casos, la
muerte de personas. • Ejemplos de errores de so�ware: – Muertes por el Therac-25 (1985-
1987): El Therac-25 fue una máquina de radioterapia que causó la muerte de varios
pacientes en diversos hospitales de Estados Unidos y Canadá, debido a las radiaciones
aplicadas sin control, las cuales fueron atribuidas a la falta de control de calidad del
so�ware médico. Antecedentes de la Ingeniería del So�ware – Sobrecosto, retraso
y cancelación del sistema del Bank of America (1988): El banco invir�ó inicialmente 23
millones de dólares en un sistema computarizado llamado MasterNet (contabilidad y
reportes de fideicomisos). Para que el sistema funcionará, se tuvo que inver�r 60 millones
de dólares más. Luego fue cancelado. – Desarrollo del sistema opera�vo OS/360: En la década
de 1960, IBM decidió diseñar un único sistema opera�vo para su familia de Mainframes
System/360. Lamentablemente los problemas encontrados en el desarrollo del OS/360
fueron muchos y están descritos por Fred Brooks en The Mythical Man-Month, un libro
considerado un clásico en la Ingeniería de So�ware. • Debido a las diferencias de
rendimiento en la gama de hardware y los retrasos en el desarrollo del so�ware, se
introdujo una familia completa de sistemas opera�vos en lugar de un solo OS/360.– Error
en el sistema de frenos Toyota: En el año 2010, la empresa Toyota re�ró más de 400,000 de
sus vehículos híbridos por un problema so�ware, que provocaba un retraso en el sistema
an�-bloqueo de frenos. Se es�mó que el error costó a Toyota 3 billones de dólares. •
Exis�eron múl�ples causas que originaron la crisis del so�ware: – El desarrollo de un so�ware
era un proceso rela�vamente nuevo, del cual no se tenía personal lo suficientemente
capacitado. • Muchos programadores de la época eran autodidactas. – En muchos casos,
los propios clientes, no tenía muy claro que es lo que requerían y por lo tanto era complicado
hacer un diseño detallado de requerimientos. Antecedentes de la Ingeniería del
So�ware Antecedentes de la Ingeniería del So�ware • Debido a esta situación, la
OTAN (Organización del Tratado del Atlán�co Norte) realizó una conferencia en el año 1968
sobre la “Crisis del So�ware”. • Se propuso crear una nueva disciplina llamada “Ingeniería de
so�ware”, en la cual se generaría modelos, procedimientos, técnicas y herramientas para el
desarrollo de so�ware. – Ingeniería significa adicionar las matemá�cas y ciencias a una
determinada área. Ejemplo: Ingeniería Gastronómica
La Ingeniería
• La Ingeniería del So�ware �ene como obje�vo mejorar el proceso de desarrollo de so�ware.
– La palabra Ingeniería proporciona: métodos, herramientas, procedimientos y técnicas con el
fin de mejorar la calidad del so�ware y reducir el costo de los proyectos. • Ayuda al Ingeniero
de So�ware a desarrollar y mantener sistemas informá�cos asegurando su calidad, su
fiabilidad y su produc�vidad, entre otras caracterís�cas. Definición de la Ingeniería de So�ware
• Las ingenierías tradicionales (mecánica, eléctrica, etc) imitan, aumentan, ayudan, facilitan o
sus�tuyen capacidades �sicas humanas (capacidades procedimentales). • La Ingeniería del
So�ware ayuda a construir elementos que imitan, aumentan, ayudan, facilitan o sus�tuyen
capacidades intelectuales humanas (capacidades cogni�vas). – Por ejemplo: la capacidad de
memoria, la resolución de problemas, la rapidez decisiones o la velocidad de cálculo,entre otras
muchas. • Según la IEEE, la Ingeniería de So�ware se define como: “La aplicación de un
enfoque sistemá�co, disciplinado y cuan�ficable, al desarrollo, operación y evolución del
so�ware”. • El so�ware debe ser confiable, eficiente y que cumpla con las necesidades del
cliente (eficacia). • La palabra sistemá�co es clave ya que implica la u�lización de métodos y
procedimientos. • Al enfoque sistemá�co que se usa en la Ingeniería de So�ware se le conoce
como “proceso de so�ware”. • Un proceso de so�ware los podemos definir de las siguientes
maneras: – Es una secuencia de ac�vidades que conducen a la elaboración de un
“producto” de so�ware. – Conjunto de ac�vidades necesarias para transformar los
requisitos del usuario en un sistema de so�ware. • Otra definición de Ingeniería de So�ware es:
“Es una disciplina de ingeniería que se desarrolla en todos los aspectos de la producción de
so�ware, desde la especificación del sistema hasta el mantenimiento del mismo”. – Hace
énfasis en la “disciplina de la ingeniería”, la cual se vale de teorías, métodos y herramientas
para el desarrollo de una determinada área, incluyendo limitaciones como restricciones
organizacionales y financieras. – Hace énfasis en todos los aspectos de la producción del
so�ware, no solo en los procesos técnicos del desarrollo de so�ware, sino que incluye la
administración, desarrollo de herramientas, métodos y teorías para apoyar la producción de
so�ware. Definición de la Ingeniería de So�ware • La Ingeniería de So�ware busca desarrollar
“productos” de calidad, enmarcados en el �empo y presupuesto establecido, lo cual implica
muchas veces dejar de ser perfeccionistas y ser más prác�cos. • Los Ingenieros de So�ware
deben adoptar un enfoque sistemá�co y organizado para “producir” so�ware de calidad de
forma efec�va. • La Ingeniería de So�ware busca métodos más adecuados en función de ciertos
requerimientos para crear un entorno de desarrollo más crea�vo y menos formal. – Un
ejemplo sería el desarrollo de sistemas basados en la Web, que requieren una mezcla de
habilidades de so�ware y diseño gráfico.
• El término “Ingeniería de So�ware” fue creado por Margaret Heafield Hamilton, cien�fica
informá�ca estadounidense e ingeniera de sistemas, quien fue directora de la División de
Ingeniería de So�ware del Laboratorio de Instrumentación del MIT y que lideró el proyecto
de desarrolló del so�ware de vuelo para el programa espacial Apollo.
Ciencias de la Computación
La Ingeniería de So�ware
• La Ingeniería de So�ware es importante porque su uso se ha masificado, cada vez más, las
personas y la sociedad dependen de sistemas de so�ware avanzados como Internet,
protocolos de comunicación, virtualización, redes sociales, entre otros. • Es por ello que se
requiere producir rápida y económicamente, so�ware de calidad (confiable • Actualmente
resulta más seguro y confiable en el desarrollo de so�ware, emplear métodos y técnicas de
ingeniería, las cuales nos aseguran procesos de análisis, diseño, elaboración, pruebas y
documentación, similares al método cien�fico (enfoque sistémico).
• Existen áreas donde los límites de la libertad en el desarrollo de so�ware no están acotados
por la legislación, sino por la denominada responsabilidad profesional:
Criterio Definición
Confidencialidad Se debe respetar la confidencialidad de empleadores o clientes sin
------------------------------importar si se firmó o no un acuerdo formal sobre la misma.
Competencia No se debe aceptar de manera intencional trabajo que esté fuera de
------------------------------su competencia.
Derechos de Se debe conocer la legislación local que rige el uso de la propiedad
propiedad intelectual, como las patentes y el copyright.
intelectual Se debe garan�zar que se respeta la propiedad intelectual de
----------------------------- empleadores y clientes.
Mal uso de Empleo é�co de las computadoras. El mal uso de computadoras se
computadoras puede referir desde distraerse con juegos hasta diseminación de
-----------------------------virus, publicación de información privada de personas, entre otros.
• Existes organizaciones e ins�tuciones profesionales que establecen estándares é�cos como:
– ACM (Associa�on for Compu�ng Machinery) – IEEE (Ins�tute of Electrical and Electronics
Engineers) – Bri�sh Computer Society. • Estos publican códigos de conducta profesional o
códigos de é�ca y sus miembros se comprometen a seguir dicho código cuando se afilian a las
mismas. Fin !!! Adicional • Ing. Eléctrica – Ing. Electrónica – Ing. Telecomunicaciones
– Ing. de Redes de Datos - Ing. Ciberseguridad. – Matemá�cas y Ciencias (Física, Química,
etc) • Ing. de Sistemas – Ing. de So�ware – Matemá�cas y Ciencias de la Computación