You are on page 1of 41

Desarrollo de software

:
procesos y estándares
02: Desarrollo de software: técnicas y métodos
Eugenio Jacobo Hernández Valdelamar
201
2014 EJHV - Desarrollo sw P y E 2
!ontenido

"oftware # $royecto%s&

"oftware # $roducto%s&

!onocimientos del desarrollo de 'roductos ada'tados al
desarrollo de software

Es'ecificaci(n) dise*o) 'rototi'ado) manufactura) 'ruebas)
administraci(n y ciclo de +ida

,ngenier-a de software

Demasiados conocimientos 'ara uno. re'artamos /0 123E"

4 a5n faltan 6detalles6

!omentarios finales
2014 EJHV - Desarrollo sw P y E 3
7emario
"ituaci(n nacional e internacional
$rocesos de
desarrollo de
software
8odelos de
me9ora del
'roceso /
$ersonal)
ad:uisici(n)
desarrollo)
ser+icio
Desarrollo de
software
%:ué es)
:uién lo ;ace)
c(mo lo ;ace
:ué ;ace&
t
,ndustrializaci(n
del
desarrollo
de software
%fábricas y
colaboraci(n&
!alidad
2014 EJHV - Desarrollo sw P y E 4
Desarrollo de software
3engua9e%s& de
'rogramaci(n
,dea < 'roblema < necesidad
Herramienta%s&
$rograma
2014 EJHV - Desarrollo sw P y E 5
=uenas y malas e>'eriencias

El 6'uro conocimiento6 'uede o no bastar 'ara
sacar a+ante un com'romiso?

1eceta: si ;aces algo y te resulta bien) re'-telo.
sino) @2 lo +uel+as a ;acer?

El 'roblema es la +agAedad del 6;acer algo6?

,nclusi+e) 'uede 'reguntarse: Bcuál es el fin de
todo eso :ue ;acesC
2014 EJHV - Desarrollo sw P y E 6
$royecto

Dn 'royecto es un conjunto de acciones :ue se
'lanifican a fin de conseguir una meta 're+iamente
establecida) 'ara lo :ue se cuenta con una determinada
cantidad de recursos %0&?

Dn 'royecto es un esfuerzo :ue se lle+a a cabo 'ara
crear un producto, servicio o resultado único) y tiene la
caracter-stica de ser naturalmente tem'oral) es decir) :ue
tiene un inicio y un final establecidos) y :ue el final se
alcanza cuando se logran los ob9eti+os del 'royecto o
cuando se termina el 'royecto 'or:ue sus ob9eti+os no se
cum'lirán o no 'ueden ser cum'lidos) o cuando ya no
e>iste la necesidad :ue dio origen al 'royecto %$8=2E0&?
2014 EJHV - Desarrollo sw P y E 7
@o siem're sale todo bien
201F "tandis; !;aos 8anifesto? 7;e !;aos re'ort di+ides 'ro9ects into t;ree classes: successful)
c;allenged) and failed? 2nly about 2G 'ercent of t;e 200 'ro9ects e+aluated in t;e 200 study
were classified as successful? Hifty/t;ree 'ercent were deli+ered but wit; significant o+erruns in
cost and sc;edule w;ile deli+ering an a+erage of only I 'ercent of t;e features of t;e original
re:uirements %c;allenged&? 7;e o+erruns a+eraged about J 'ercent in sc;edule and KI 'ercent
in cost? 7;e remaining 1J 'ercent were cancelled before deli+ery %failed&?
2014 EJHV - Desarrollo sw P y E 8
"oftware # $roducto

En los 'rinci'ios de la informática lo 5nico im'ortante)
lo 5nico con +alor econ(mico era el ;ardware.
a:uellas instrucciones :ue le dec-an a la com'utadora
:ué deb-a ;acer) no eran muy +aloradas?

En los LJ0s a'arecieron em'resas :ue sosten-an :ue
el software s- era im'ortante) era un 'roducto :ue
deb-a ser elaborado meticulosamente) 'roducido y
'resentado? El software no era ya una receta de
cocina sino un ob9eto :ue 'od-a ser +endido en los
su'ermercados y tiendas es'ecializadas %0&?
2014 EJHV - Desarrollo sw P y E 9
3ibre +s $ro'ietario

Ml mismo tiem'o se gestaba un mo+imiento de 'ersonas
:ue e>tra*aban esas é'ocas en las :ue el c(digo fuente
era considerado una receta :ue los interesados en
utilizarla 'od-an com'artir libremente de forma :ue todos
se beneficiaran del traba9o mutuo en comunidad) e+itando
rein+entar la rueda cada +ez :ue se necesitaba una?

Dnos acusaban a los otros) los 'artidarios del software
como 'roducto acusaban a los otros de 6locos6 'or no
'ensar c(mo ganar dinero con su labor) y los segundos
llamaban a los 'rimeros 6escla+istas de usuarios6 'or no
'ermitir :ue éste eligiera libremente c(mo y 'ara :ué
:uer-a usar el 'roducto? 3a guerra entre 6"oftware 3ibre6 y
6"oftware $ri+ati+o6 ;ab-a comenzado?
2014 EJHV - Desarrollo sw P y E 10
!iclo de +ida de un 'roducto
%mercado&
El software es un
'roducto reciente) 'or lo
:ue 'ara 'roducirlo
como otros 'roductos)
se tomaron ideas de
otras industrias?
;tt's:<<'eo'le?;ofstra?edu<geotrans<eng<c;Ken<concKen<'roductlifecycle?;tml
2014 EJHV - Desarrollo sw P y E 11
!iclo de +ida del desarrollo de
'roductos
;tt':<<www?asiatrading'artners?com<w'/content<u'loads<2010<10<'roductNde+elo'ment?9'g
3os 'rinci'ales t('icos
:ue ado't( la industria
del software son:
1? Es'ecificaci(n
2? Dise*o
F? $rototi'ado
? $ruebas
K? 8anufactura
4 no se diga el
conce'to de Ociclo de
+idaP
2014 EJHV - Desarrollo sw P y E 12
Es'ecificaci(n
;tt':<<l;K?gg';t?com</K@IiQ@3dGJo<7'RiVdNHcG,<MMMMMMMMMJw<S4V>;Ebzg:w<imageNt;umbT2K2KK=2T2K2KKD?'ngCimgma>#J00
2014 EJHV - Desarrollo sw P y E 13
Es'ecificaci(n de software

3engua9es<idiomas

3engua9e natural

3engua9es formales %matemáticas discretas) l(gica) álgebra&?

Diagramas %D83&

7écnicas

Entre+istas) talleres %enfo:ue social&

$rototi'os %enfo:ue interacti+o&

!asos de uso) Historias de usuario %enfo:ue documental&

8étodos

Es'ecificaci(n de com'ortamiento %0&

,ngenier-a de re:uisitos %0&
2014 EJHV - Desarrollo sw P y E 14
Dise*o
2014 EJHV - Desarrollo sw P y E 15
Mnálisis<Dise*o

3engua9es<idiomas

3engua9e natural

3engua9es formales %matemáticas discretas) l(gica) álgebra&?

Diagramas %D83&

7écnicas

8odelado estructural y de com'ortamiento

$atrones %dise*o) ar:uitectura) D,???&

8étodos

8étodos formales

Mnálisis<Dise*o %estructurado) orientado a ob9etos ???&

Dise*o dirigido 'or??? modelos %8DD&) dominio %DDD&) 'ruebas %7DD&
2014 EJHV - Desarrollo sw P y E 16
$rototi'ado
;tt':<<dt;sg?com<w'/content<u'loads<2011<01<'rototy'ing2?'ng
2014 EJHV - Desarrollo sw P y E 17
$rototi'ado

1ecursos

3engua9es de 'rogramaci(n

Editores gráficos %genéricos o es'ecializados&

Hardware ob9eti+o

7écnicas %0&

$rototi'ado de ba9a fidelidad %bocetos) wireframes) ma:uetas)
storyboard&

$rototi'o no funcional %storyboard interacti+o&

$rototi'o funcional %'ruebas de conce'to&

8étodos

"imulaci(n %discreta<continua& de 'rocesos
2014 EJHV - Desarrollo sw P y E 18
8anufactura
;tt':<<1?b'?blogs'ot?com<N!yw!MDH21s<7,H/>wUD",<MMMMMMMMMJs<uUVmeGue>d0<s1I00<,f!arsUere8ade3iWe"oftware/color?9'g
2014 EJHV - Desarrollo sw P y E 19
Detalle im'ortante

6Ruiero ;acer una bicicleta6? Es lo mismo:

Hacer un 'rototi'o de un dise*o no+edoso

!onstruir toda la bicicleta

!om'rar las 'iezas nue+as y ensamblar la bicicleta

!onseguir 'iezas usadas y armar la bicicleta

$ersonalizar una bicicleta %tunning&

8odificar una bicicleta 'ara cierto uso diferente del
original
2014 EJHV - Desarrollo sw P y E 20
8anufactura

1ecursos

3engua9es de 'rogramaci(n) =ibliotecas) frameworWs) Herramientas 1MD

1e'ositorios de c(digo %+ersionamiento&

$ersistencia %V83) =DLs relacionales) @o"R3&

7écnicas

$rogramaci(n %estructurada) orientada a ob9etos&) de'uraci(n) 'ruebas unitarias

$air 'rogramming) ,ntegraci(n continua

1eestructuraci(n de c(digo %code refactoring&

8étodos

!iclos de +ida? $rocesos de desarrollo?

E>treme 'rogramming %V$&) "!1D8) Eanban %0&
2014 EJHV - Desarrollo sw P y E 21
!iclo de +ida del software

7odo 'royecto de ingenier-a tiene unos fines ligados a la obtenci(n
de un 'roducto) 'roceso o ser+icio :ue es necesario generar a tra+és
de di+ersas acti+idades?

Mlgunas de estas acti+idades 'ueden agru'arse en fases 'or:ue
globalmente contribuyen a obtener un 'roducto intermedio) necesario
'ara continuar ;acia el 'roducto final y facilitar la gesti(n del
'royecto? Ml con9unto de las fases em'leadas se le denomina Ociclo
de +idaP?

"in embargo) la forma de agru'ar las acti+idades) los ob9eti+os de
cada fase) los ti'os de 'roductos intermedios :ue se generan) etc?
'ueden ser muy diferentes de'endiendo del ti'o de 'roducto o
'roceso a generar y de las tecnolog-as em'leadas? %0&
2014 EJHV - Desarrollo sw P y E 22
Elementos

Hases? Dna fase es un con9unto de acti+idades relacionadas con un
ob9eti+o en el desarrollo del 'royecto? "e construye agru'ando tareas
%acti+idades elementales& :ue 'ueden com'artir un tramo
determinado del tiem'o de +ida de un 'royecto? 3a agru'aci(n
tem'oral de tareas im'one re:uisitos tem'orales corres'ondientes a
la asignaci(n de recursos %;umanos) financieros o materiales&?

Entregables %6deli+erables6&? "on los 'roductos intermedios :ue
generan las fases? $ueden ser materiales %com'onentes) e:ui'os& o
inmateriales %documentos) software&? 3os entregables 'ermiten
e+aluar la marc;a del 'royecto mediante com'robaciones de su
adecuaci(n o no a los re:uisitos funcionales y de condiciones de
realizaci(n 're+iamente establecidos? %0&
2014 EJHV - Desarrollo sw P y E 23
1ectas) cur+as) escaleras y bucles

Dn ciclo de +ida 'ara un 'royecto se com'one de fases
sucesi+as com'uestas 'or tareas 'lanificables? "eg5n el
modelo de ciclo de +ida) la sucesi(n de fases 'uede am'liarse
con bucles de realimentaci(n) de manera :ue lo :ue
conce'tualmente se considera una misma fase se 'ueda
e9ecutar más de una +ez a lo largo de un 'royecto) recibiendo
en cada 'asada de e9ecuci(n a'ortaciones de los resultados
intermedios :ue se +an 'roduciendo %realimentaci(n&?

$ara un adecuado control de la 'rogresi(n de las fases de un
'royecto se ;ace necesario es'ecificar con suficiente 'recisi(n
los resultados e+aluables) o sea) 'roductos intermedios :ue
deben resultar de las tareas incluidas en cada fase?
@ormalmente estos 'roductos marcan los ;itos entre fases?
2014 EJHV - Desarrollo sw P y E 24
8odelos de ciclo de +ida
2014 EJHV - Desarrollo sw P y E 25
$ruebas
;tt':<<as;is;:a?blogs'ot?m><2012<12<;istory/of/software/testing?;tml
¿El arte de la destrucción?
2014 EJHV - Desarrollo sw P y E 26
$ruebas

1ecursos

Mmbiente de 'ruebas %M'licaci(n X Hardware ob9eti+o %o emulador& X Datos&

Herramientas de automatizaci(n de 'ruebas

7écnicas %0& %Y&

$ruebas de ca9a negra %re:uerimientos y funcionalidad& y ca9a blanca %l(gica interna de la
a'licaci(n&

$ruebas de integraci(n %funcionalidad de modulos integrados&

$ruebas de regresi(n %'rueba 72DM la a'licaci(n ante una modificaci(n&

$ruebas de ace'taci(n %+erifica el sistema +s re:uerimientos del usuario&

$ruebas de carga %com'ortamiento del sistema ante 6cargas6&

$ruebas de usabilidad %c;e:ueo de na+egaci(n y mane9o amistoso&

8étodos

7est dri+en de+elo'ment %7DD&) 1a'id testing frameworW %0&) "'ira7est %0&

,ngenier-a de 'ruebas
2014 EJHV - Desarrollo sw P y E 27
!iclo de +ida de 'ruebas
;tt':<<softwaretestingfundamentals?com<software/testing/life/cycle<
2014 EJHV - Desarrollo sw P y E 28
!om'onentes de una metodolog-a
de 'ruebas
;tt':<<www?inflectra?com<,deas<7o'ic<7esting/8et;odologies?as'>
2014 EJHV - Desarrollo sw P y E 29
Mdministraci(n

8étodos

$8=2E %administraci(n de cual:uier ti'o de
'royecto. es el estándar& %0&

"!1D8 %orientado a la administraci(n de
desarrollo de 'roductos& %0&
2014 EJHV - Desarrollo sw P y E 30
,ngenier-a de software

3a ,ngenier-a del software es una disci'lina o área de
la ,nformática o !iencias de la !om'utaci(n) :ue
ofrece métodos y técnicas 'ara desarrollar y mantener
software de calidad :ue resuel+en 'roblemas de todo
ti'o?

6la ,ngenier-a de "oftware es la rama de la ingenier-a
:ue a'lica los 'rinci'ios de la ciencia de la
com'utaci(n y las matemáticas 'ara lograr soluciones
costo/efecti+as %eficaces en costo o econ(micas& a los
'roblemas de desarrollo de software6) es decir)
6'ermite elaborar consistentemente 'roductos
correctos) utilizables y costo/efecti+os6 Z!ota 1GG[?
2014 EJHV - Desarrollo sw P y E 31
!on lo :ue se traba9a
2014 EJHV - Desarrollo sw P y E 32
3o :ue se ;ace
2014 EJHV - Desarrollo sw P y E 33
;tt':<<www?yourdonre'ort?com<w'/content<u'loads<200S<10<to'tenseideas?'ng
2014 EJHV - Desarrollo sw P y E 34
BDemasiados conocimientosC

3o anteriormente e>'uesto ser-a re:uerido 'ara
nuestro desarrollador de 'roducto) 'ero en
realidad es demasiado 'ara una 'ersona) 'or
eso e>isten e:ui'os de desarrollo de software)
donde cada 'ersona se ocu'a de ;acer tareas
es'ec-ficas?

"in embargo esto @2 e>ime a ning5n
colaborador de conocer RDE se debe ;acer?
2014 EJHV - Desarrollo sw P y E 35
@i+eles de interfaz silla/teclado
;tt':<<stacWo+erflow?com<:uestions<2SK1I<w;ats/t;e/difference/between/'rogrammer/and/software/engineer
;tt':<<www?code'ro9ect?com<Mrticles<I0JJS1<$rogramming/Vs/"oftware/De+elo'ment
2014 EJHV - Desarrollo sw P y E 36
Dn e:ui'o de roles
M +iew of software de+elo'ment 'ro9ects 0
2014 EJHV - Desarrollo sw P y E 37
\anancia en 'roducti+idad
;tt':<<www?informit?com<articles<article?as'>C'#22I0F]U7?mcNid#,7N@3N!ontentN201NGN
3as me9oras tecnol(gicas
y metodol(gicas ayudan)
'ero no son una garant-a
de é>ito?
2014 EJHV - Desarrollo sw P y E 38
Desarrollo de 'roductos / 'anorámica
;tt's:<<su''ort?ca?com<cadocs<0<!MT20!larityT20$$8T2012T201T200/E@D<=ooWs;elfNHiles<H783<@$DT20Mccelerator
<inde>?;tmCtoc?;tmCISIJF2?;tml

2014 EJHV - Desarrollo sw P y E 39
!omentarios finales

$roducto /0 software /0 técnicas y métodos /0
ingenier-a de software

$ero) el software @2 solo es un 'roducto. 'uede ser
un ser+icio?

3os conocimientos y ;abilidades in+olucradas son
muc;as) y no siem're se conocen o se tienen todas o
se e9ecutan todas?

!ambia de la foto de una 'ersona a una ca9a negra?

"E =D"!M /0 E:ui'o de desarrollo
2014 EJHV - Desarrollo sw P y E 40
7area

,n+estigar los re:uisitos :ue debe cum'lir un desarrollador de software) seg5n las
ofertas de em'leo en 8é>ico) D"M y algun 'a-s de Euro'a?

!onsiderar ni+el J1 y "1

B!uál es tu o'ini(n de estas ofertas con res'ecto a un recién egresadoC

BRué 'roductos de software ;ec;os en 8é>ico ;ay en el mercadoC %K& B:ué ;acenC

B!uáles son los K 'roductos de software más +endidos a ni+el mundialC B:ué
;acenC

BRué ser+icios de software e>istenC %K& B:ué ;acenC

B!on :ué rol %o roles& de un e:ui'o de desarrollo de software te identificasC

De todo lo e>'uesto Bt5 :ué sabesC B;ay algo :ue falte en la 6foto6C

B!rees :ue el desarrollo de software en tu em'resa cubre las áreas de conocimiento
mencionadasC B$or :uéC
2014 EJHV - Desarrollo sw P y E 41
1eferencias

U;y Do Ue "till Ha+e "oftware De+elo'ment $roblemsC %0&

7;e Essence of "oftware Engineering: 7;e "E8M7 Eernel %0&

BRué es la ingenier-a de softwareC %0&

Mnti'atrones %0&

M +iew of software de+elo'mnt 'ro9ects %0&

\ame 'rogramming 'atterns %0&

"w de+ ';iloso';ies %0&