Engenharia de Software e Sistemas Exame Escrito Final
Paulo Borba Centro de Inform´atica
Universidade Federal de Pernambuco 23 de fevereiro de 2015
Quest˜ao 1 OInterface Segregation Principle ´e resumido da seguinte forma: “Many client specific inter- faces are better than one general purpose interface”. Responda as seguintes perguntas: (a) Vocˆe concorda com isso? (b) Por que? Explique de forma direta e breve. 2
Quest˜ao 2 Responda brevemente as seguintes perguntas: (a) Cite um “mau cheiro” associado `a refa- tora¸c˜ao extract method? (b) Qual a mudan¸ca sugerida por essa refatora¸c˜ao? (c) Por que comportamento
´
e preservado por essa refatora¸c˜ao? (d) Como vocˆe verificaria isso na pr´atica? 2
Quest˜ao 3 Responda as seguintes perguntas: (a) Qual o principal problema do m´etodo a seguir? (b) Que tipo de ferramenta poderia levar `a identifica¸c˜ao desse problema? (c) Com que configura¸c˜ao e estrat´egia isso poderia acontecer? Mostre (d) a solu¸c˜ao que vocˆe daria para resolver o problema, e (e) explique porque vocˆe acha que ela ´e adequada.
static def findCitations(List<Publication> publications) { for (publication in publications) {
String publicationTitle = (publication.title).replace(" ", "+") String result
def http = new HTTPBuilder()
http.request(’http://scholar.google.com.br/’, Method.GET, ContentType.TEXT) { req ->
uri.path = ’/scholar’
.. .
response.’404’ = { println ’Not found’ } }
String citations = ""
try {
def allCitations = result.split("Citado por") String wantedCitation = allCitations[1]
citations = (wantedCitation.split("<"))[0]
} catch (e) { citations = "N/E" }
Publication.metaClass.citations = citations }
}
Seja breve e direto. Algumas linhas da solu¸c˜ao podem ser abreviadas caso sejam iguais `as acima. 2 Quest˜ao 4 Escreva, no formato visto no curso, um cen´ario de GUI do Facebook para adicionar amigos ao seu perfil. Siga as recomenda¸c˜oes para escrita de cen´arios com qualidade. 2
Boa sorte e boas f´erias!