01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción...

16
Introducción al curso CONTENIDOS Y REGLAS

Transcript of 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción...

Page 1: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Introducción al cursoCONTENIDOS  Y  REGLAS

Page 2: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

AgendaContexto  del  curso◦ Objetivos◦ Motivación

Modus  operandi◦ Contenido  del  curso◦ Evaluación

Page 3: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Contexto del curso1. SOBRE  EL  SOFTWARE

2. MOTIVACIÓN  PROFESIONAL

Page 4: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Qué  es  el  software?Definición básica◦ Una  secuencia  de  instrucciones  relativas  a  un  ambiente  de  ejecución.◦ El  ambiente  de  ejecución  establece  el  conjunto  de  funciones   disponibles.◦ El  software  utiliza  las  funciones  para  conformar  un  programa.

Para  qué  sirve?◦ Inicialmente  su  espíritu  es  el  de  realizar  cálculos.◦ Apoyar  los  procesos  y  actividades  de  las  organizaciones  que  requieren  realizar  cálculos  masivos.

◦ Hoy  en  día  no  sólo  realizan  cálculo,  sino  también  apoyan  las  operaciones  de  las  organizaciones.

Contexto del curso

Page 5: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Tipos  de  SoftwarePrograma  auto-­‐contenido◦ Una  secuencia  de  instrucciones  en  el  lenguaje  de  máquina,  ejecutado  en  un  ambiente  de  ejecución.

◦ No  posee  dependencias  con  otros  programas.

Programa  con  dependencias◦ Requiere  de  funciones  que  se  obtienen  a  través  del  ambiente  de  ejecución.◦ Programas  en  Windows  que  requieren   librerías  (DLL)  que  provee  el  sistema  operativo.

◦ Programas  iOS  que  poseen  dependencias  de  módulos.

Contexto del curso

Page 6: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Tipos  de  SoftwarePrograma  complejo  (sistema)◦ Es  una  abstracción  constituida  por  varios  programas,  con  dependencias  entre  ellos.

◦ Cada  programa  se  encuentra  en  el  mismo  ambiente  de  ejecución

Programa  distribuido◦ Es  un  programa  complejo,  pero  donde  una  o  más  programas  se  ejecutan  en  ambientes  de  ejecución  diferentes.

◦ La  localización  geográfica  no  es  exactamente  relevante  para  la  definición.

Contexto del curso

Page 7: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Programación  de  SoftwareQué  es  la  programación?◦ El  mecanismo  con  el  cual  se  puede  obtener  una  pieza  de  software  (secuencia  de  instrucciones  relativas  a  un  ambiente  de  ejecución).

Cómo  se  programa?◦ No  en  lenguaje  de  máquina  (generalmente).◦ Lenguajes  de  alto  nivel  (o  de  altas  generaciones).◦ Usando  paradigmas  de  programación:◦ Establece  un  marco  de  modelamiento.◦ Usa  entidades  que   representan  unidades  de  programación.◦ Ejemplos:  Procedurales,  funcionales,   orientado  a  objetos,  orientado  a  componentes,   orientados  a  servicios.

Contexto del curso

Page 8: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Qué  hace  el  Ingeniero  de  Software?

La  Ingeniería  de  Software

El  Software

Contexto del curso

DesarrollarSoftware

Gestionar el  Software

Apoyar unaorganización Investigación

Page 9: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Arquitecto  de  Software¿Qué  es  un  Arquitecto de Software?◦ Es  quien  establece  la  anatomía de  un  programa  complejo,  determinando  la  mejor  manera  en  que  sus  partes  pueden  trabajar  en  conjunto.

◦ Entiende  el  rol  del  área  de  TI  en  el  negocio.

Las  cualidades  deseadas:◦ Nivel  de  conocimiento  técnico  (abstracto)  de  nivel  Experto.◦ Es  muy  creativo:    inventa  soluciones.◦ Conoce  bien  la  infraestructura  tecnológica de  su  organización.

◦ Entiende  los  requerimientos  no  funcionales  transversales  a  su  organización.

Introducción al curso

Page 10: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Valor  del  profesional  de  TI  en  el  mercadoProgramador  $[350K-­‐1.2MM]◦ Visual  Basic  /  ASP◦ MVC:  Spring  /  Struts    /  JSF:   +$[100K-­‐200K]◦ HTML  /  JavaScript:  +$[50K-­‐100K]◦ J2EE:  +$[300K-­‐500K]

De  responsabilidad  ◦ Jefe  de  proyecto:  $[600K-­‐2.4MM]◦ Arquitecto:  $[1400K-­‐2.4MM]

Motivación

Page 11: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Sobre el curso1. OBJETIVOS

2. CONTENIDOS  DEL  CURSO

3. SISTEMA  DE  EVALUACIÓN

Page 12: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Objetivos1. Desarrollo  de  Aplicaciones  

empresariales◦ TI  en  la  vida  real◦ Comprender   las  necesidades   de  las  

organizaciones◦ Qué  esperan  las  organizaciones  de los  sistemas  

que  apoyan  sus  procesos?

◦ Aplicaciones  Empresariales◦ Conocer   los  aspectos  no  funcionales   de  los  

sistemas.◦ Aprender  a  diseñar  arquitecturas  para  

aplicaciones   empresariales.

2. Conocimientos  teóricos◦ Diseño  de  aplicaciones  basadas  en  componentes   /  servicios.

◦ UML  aplicado  al  diseño.◦ Estándares  XML.◦ Patrones  de  diseño  empresariales

3. Conocimientos  técnicos◦ Desarrollo  de  aplicaciones◦ Usando   el  estándar  JEE.◦ Patrones  de  diseño.◦ Desarrollo  de  componentes.

◦ Interacción  con  COTS◦ Bases  de  datos  empresariales.◦ LDAP’s.◦ Servidores   de  aplicaciones.

Introducción al curso

Page 13: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Contenido  del  cursoIntroducción◦ Programación  por  componentes.◦ Introducción   Java  Enterprise  Edition◦ Patrones  Arquitecturales◦ El  protocolo  HTTP.

Aplicaciones  web  JEE◦ Lenguaje  HTML,  CSS  &  JavaScript.◦ Servlets.◦ JSP,  JCT  &  JSTL.◦ Struts /  JSF  (MVC).◦ JDB.C

Componentes  JEE◦ Session Beans◦ Message  driven  Beans◦ Entity  Beans◦ Patrones de  Diseño  JEE◦ Servicios  Web

Servicios  JEE◦ Seguridad◦ Timer◦ Transacciones

Sobre el curso

Page 14: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

EvaluacionesControles  y  Exámenes  (40%)◦ 3  Controles  (60%)◦ Carácter  técnico,  aunque  sin  programación.◦ Orientados  a  medir  conceptos  generales,  de  

base.◦ SIN  apuntes.

◦ Examen  (40%)◦ Toda  la  materia.

◦ Exención:  5.5.

Lecturas  (Bonus)◦ Bonus  para  nota  de  control.◦ 100%  Opcionales.◦ Evaluación  binaria:  

◦ 1pto  si  nota  >  80%  correcto.◦ 0pto  en  otro  caso.

Proyecto  (60%)◦ Proyecto  en  etapas  incrementales  de  conocimiento   técnico.

◦ Grupos  de  n  >  3  alumnos.◦ Cada  etapa  tendrá  un  peso  ponderador  distinto.

◦ La  nota  final  del  proyecto  se  calcula  como  el  promedio   ponderado  de  cada  una  de  las  etapas.

Sobre el curso

Page 15: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

RequisitosConocimientos:◦ Generales  de  Programación  orientada  a  objetos.◦ Sólidos  de  programación  en  Java (1.4  al  menos).◦ Generales  de  HTML /  XML.

Hardware  &  Software◦ Una  buena  CPU  (ojalá  i5)◦ 4GB  de  memoria  disponibles  

Sobre el curso

Page 16: 01.01 - Introducción al curso · Introducción al curso. Contenido)del) curso Introducción Programación’por’componentes. Introducción’Java’Enterprise’Edition Patrones’Arquitecturales

Gracias  por  la  atención