Вы находитесь на странице: 1из 33

UFG - Instituto de Informtica

Curso: Sistemas de Informao

Construo de Software
Prof.: Ronen R. S. Filho ronen.@inf.ufg.br Aula 6 Projeto de soft are na !onstruo

O que construo de software?

Projeto de software na construo

Con!eitos Pr"ti!as #$%eis Abordagens !omuns

Projeto de software na construo

&m 'rojetos equenos( muitas ati%idades so !onsideradas !omo 'arte da !onstruo( in!lusi%e o 'rojeto )soft are design*.

Projeto de software na construo

&m geral( o ro!ramador desen%ol%e 'arte do 'rojeto

Como o rojeto se a resenta?

"rtefatos U#$

!lasses e rela!ionamentos entre elas m+todo( antes de des!re%er maiores detalhes resol%a o 'roblema

Pseudoc%di!o

Padro de rojeto &desi!n attern'

(esafios de rojeto

Projetar soft are + um 'roblema ,'er%erso)resol%a o 'roblema 'ara entend./lo( resol%a/o no%amente 'ara !riar uma soluo 0ue fun!iona: 1a!oma Sus'. 2ridge* Projeto + obtido de um 'ro!esso desordenado )uso de heur$sti!as( muitos enganos at+ uma ,soluo-( 'arar3* &0uil$brio de 'rioridades )4 'rojetos( 4 'rioridades 5 desem'enho( 'roduti%idade( manuteno( ...*

(esafios de rojeto

&n%ol%e restri6es )tem'o( !usto( ...* #o determin$sti!o )n 'essoas 5 n 'rojetos 4( mas 7897* Projetos e%oluem

no nas!em 'rontos melhoram !om ins'e6es dis!uss6es e:'eri.n!ia em 'rogramao

Princi ais conceitos de rojeto de software

Princi ais conceitos de rojeto de software

Controle de !om'le:idade Cara!ter$sti!as desej"%eis em um 'rojeto de soft are

Contro)e de com )e*idade


Como )idar com a com )e*idade?

;inimi<ar a 0uantidade de !om'le:idade 0ue o !+rebro tem 0ue lidar em dado momento

=i%idir 'ara !on0uistar )sistemas e subsistemas* Abstrao( 'a!otes( !lasses( m+todos( et!.

Contro)e de com )e*idade


Caracter+sticas desej,eis em um rojeto de software Com )e*idade m+nima: e%ite 'rojetos mirabolantes Faci)idade de manuteno: faa 'rojeto auto/e:'li!ati%o -ai*o aco )amento: m$nima !one:o entre subsistemas .*tensi/i)idade0 mudanas 5 m$nimo im'a!to 1euti)i2ao: 'rojetar 'ara re>so de?em outros sistemas Forte coeso: inter!omuni!ao !ontrolada Porta/i)idade3 $eanness &en*uto'3 444

5+,eis de rojeto

Sistema )todo o soft are* =i%iso em subsistemas )%"rios 'a!otes* =i%iso em !lasses dentro de 'a!otes =i%iso em dados e rotinas )nas !lasses* Projeto interno de rotina )m+todo*

5+,e) 60 Sistemas de software


1odo o sistema &m !asos sim'les( nenhuma subdi%iso + ne!ess"ria antes da definio de !lasses A!onselha/se o 'rogramador a 'ensar em organi<a6es de !lasses de n$%el su'erior )subsistemas ? 'a!otes*

5+,e) 70 Su/sistemas

Regras de neg@!io )!"l!ulos( legisla6es( regras !omo o aluno no 'oder" matri!ular se esti%er em d+bito !om a bibliote!a( ...* Interfa!e !om o usu"rio: 'rojetar de forma isolada A!esso a ban!o de dados: !entrali<ar( redu<ir erros =e'end.n!ias do sistema o'era!ional( hard are es'e!$fi!o( bibliote!as( ...

5+,e) 80 C)asses

Identifi!ar todas as !lasses no sistema

&:.: a!esso ao ban!o de dados

Interfa!e da !lasse 1amanho do 'rojeto

5+,e) 90 1otinas

Projeto neste n$%el !onsiste em di%idir !ada !lasse em rotinas e res'e!ti%os dados =etalham/se as rotinas 'ri%adas da !lasse( 0ue re0uerem ainda mais 'rojeto =efinir !om'letamente as rotinas de uma !lasse resulta em um melhor entendimento da interfa!e da !lasse ;udanas nas rotinas 'odem a!arretar mudanas na interfa!e de sua !lasse

5+,e) :0 Projeto interno de rotinas


=ei:ado 'ara o 'rogramador Consiste de 'rojeto de m+todos:


Algoritmos Pseudo!@digo 8rgani<ao de 'ar"grafos de !@digo em uma rotina Codifi!ao

Ferramenta do rojetista

;eur+sticas

#o e:iste !aminho </em definido= determin$sti!o 'ara ati%idades de 'rojeto Formas de se 'ensar sobre 'rojeto de soft are

ou

.ncontre o/jetos do mundo rea) &mode)a!em do dom+nio'

Identifi0ue os objetos )soft are* !onte>do )m+todos e atributos*

seu

=etermine o 0ue 'ode ser feito !om !ada objeto =etermine o 0ue !ada objeto 'ode fa<er !om os outros Identifi0ue as 'artes de !ada objeto 0ue sero %is$%eis a outros objetos )'artes '>bli!a e 'ri%ada* =efina as interfa!es '>bli!as )e 'rotegidas* de !ada objeto

"/straia com consist>ncia

Ca'a!idade de ignorar detalhes de objetos do mundo real

C"S": agregado de 'aredes( 'ortas( janelas( 'iso( %idros( madeiras( 'regos( et!. CI("(.: agregado de !asas

"/straia com consist>ncia

Programadores 0ue se 'reo!u'am !om os detalhes !onstroem soft are dif$!il de entender e geren!iar =etalhes de um soft are de%em ser abstra$dos e en!a'sulados no 'rojeto de interfa!e de m+todos )ou rotinas*( de !lasses e de 'a!otes

Ocu)tamento de informao

=e!is6es de 'rojeto ou !onstruo o!ultados de todas as outras !lassesA

so

Por e:em'lo( %o!. sabe !omo est" im'lementada a !lasse ja%a.util.ArraBCist3

Ocu)tamento de informao

A interfa!e de uma !lasse de%e re%elar a'enas o m$nimo 'oss$%el sobre seus detalhes internos

Ocu)tamento de informao
-arreiras ara o ocu)tamento

=istribuio e:!essi%a

Dsar !onstantes em %e< de literais( ou seja( ;AEFACD#8SFP8RF1DR;A em %e< de GH Rotina A !hama rotina 2( 0ue !hama rotina A

=e'end.n!ias !ir!ulares

=ados de !lasses )e%itar %ari"%eis?dados globais* Perda de desem'enho )String.toString)*A3A*

Ocu)tamento de informao

O que de,o ocu)tar?

Ocu)tamento de informao
Identificar se arar e iso)ar reas de ro,,e) a)terao

Regras de neg@!io )legislao( ta:as( ...* =e'end.n!ias de hard are )ID %ia tela( som( mouse( ...* &ntrada?Sa$da )formatos de ar0ui%os de &?S* Re!ursos no 'adroni<ados )es'e!ifi!idades de uma dada linguagem de 'rogramao*

#anter /ai*o aco )amento

A!o'lamento determina 0uo forte uma !lasse ou rotina est" rela!ionada a outras !lasses ou rotinas

1amanho )'ou!as !one:6es entre !lasses. Contra/e:em'lo: !lasse !om GI m+todos '>bli!os* Jisibilidade )'ou!a e:'osio( e%itar dados globais* Fle:ibilidade )fa!ilidade de alterar !one:6es*

Uti)i2e adr?es de rojeto

Solu6es 'rontas 'ara 'roblemas !omuns de 'rojeto Redu< !om'le:idade ao forne!er abstra6es 'rontas

Abstra!t Fa!torB Fa!torB ;ethod Publish?Subs!ribe )ou 8bser%er*( ...

Prticas de Projeto

Projeto um rocesso iterati,o: em !ada !i!lo( 'laneje uma soluo( analise/a e es!olha/a )ou no* (i,idir e conquistar0 refinamento in!remental + uma 'oderosa ferramenta 'ara geren!iar !om'le:idade @o -downA/ottom-u : alto?bai:o n$%el de abstrao Prototi a!em e* erimenta) Projeto co)a/orati,o0 K !abeas 'ensam melhor 0ue L

Buanto de rojeto /asta?

=e'ende

da e:'eri.n!ia da e0ui'e do !onhe!imento do dom$nio da rotati%idade da e0ui'e 0uo !r$ti!a + a a'li!ao se o 'rojeto + 'e0ueno do tem'o de %ida do soft are

Buanto de rojeto /asta?

,&u 'referiria usar CDE do trabalho de 'rojeto na criao e e* )orao de alternati%as e 7DE na !riao de documentao menos a'erfeioada-

1e!istro do rojeto

Pr% rio c%di!o: !oment"rios em !abealhos de !lasses FiGi: dis!uss6es !olaborati%as de 'rojeto 1esumos: en%iar 'or email Use uma cHmera di!ita): melhor 0ue desenharAAA (ia!ramas U#$: !lasses( se0u.n!ia( estados( et!.

Вам также может понравиться