1.22k likes | 1.32k Views
SISTEMA DE INFORMAÇÃO. Turma ADS 0019. UNIDADE 2. DESIGN E DESENVOLVIMENTO DE SOFTWARE. OBJETIVOS DA UNIDADE 2. Compreender os fundamentos de design de software; Entender aspectos relevantes sobre design de software; E ntender aspectos do desenvolvimento de software;
E N D
SISTEMA DE INFORMAÇÃO Turma ADS 0019
UNIDADE 2 DESIGN E DESENVOLVIMENTO DE SOFTWARE
OBJETIVOS DA UNIDADE 2 • Compreender os fundamentos de design de software; • Entender aspectos relevantes sobre design de software; • Entender aspectos do desenvolvimento de software; • Conhecer boas práticas de gerenciamento de projetos de software. Profº Ricardo luiz
TÓPICO 1 DESIGN DE SOFTWARE
Ao decidir pela construção de algo, seja tangível ou intangível, há uma série de etapas que são comuns. Profº Ricardo luiz
Ao optar por construir uma casa você decide qual será o processo construtivo a ser adotado. Este processo poderá ser linear, incremental ou iterativo. Profº Ricardo luiz
Você também definirá quais são os requisitos da sua construção. (peças). • A etapa seguinte é transformar estes requisitos em uma planta para que uma equipe de obras civis possa realizar a construção. (funcionais ou não funcionais) Profº Ricardo luiz
Na Engenharia de Software a fase de desenho da planta da construção civil corresponde à fase de design de software. Profº Ricardo luiz
O objetivo do design de software é prover uma descrição da estrutura de funcionamento que servirá de base para a construção do software. Profº Ricardo luiz
Também pode ser entendido como a descrição da forma que o sistema terá quando estiver pronto para utilização. Profº Ricardo luiz
O termo descrição pode ser entendido como uma representação, que poderá ser textual ou gráfica. Profº Ricardo luiz
Pfleeger (2004, p. 159) nos ensina que o design de software é o “processo criativo de transformar o problema em uma solução”. Profº Ricardo luiz
TÓPICO 1 TIPOS DE DESIGN
Em determinados momentos do processo de software há necessidade de utilização do design para comunicar como o software será construído para pelo menos dois públicos.(design conceitual e técnico) Profº Ricardo luiz
O modelo conceitual tem a finalidade de esclarecer ao cliente/usuário como o software desempenhará as funções necessárias. Profº Ricardo luiz
O design conceitual descreve os limites, as entidades, atributos e relacionamentos do sistema. Profº Ricardo luiz
Esta descrição poderá responder a questões como (PFLEEGER, 2004): • De onde virão os dados? • O que acontecerá com os dados no sistema? • Qual será a aparência do sistema para os clientes/usuários? • Que opções serão oferecidas para os clientes/usuários? • Qual é a sequência de eventos? • Como será a aparência dos relatórios e das telas? Profº Ricardo luiz
Este modelo de design não deverá utilizar termos técnicos e não se concentra em detalhes técnicos. Profº Ricardo luiz
Este modelo de design não deverá utilizar termos técnicos e não se concentra em detalhes técnicos. • Ser escrito na linguagem do cliente/usuário. • Não conter jargão técnico. • Descrever as funções do sistema. • Ser independente da implementação. • Estar vinculado aos documentos de requisitos. Profº Ricardo luiz
Portanto, o design conceitual deverá possibilitar ao cliente/usuário o entendimento do que o sistema fará, o que oferecerá de resultados e também esclarece as características externas observáveis do sistema. Profº Ricardo luiz
Já o desenho que será utilizado na comunicação com a equipe de desenvolvimento é chamado de design técnico. Profº Ricardo luiz
Este modelo tem a finalidade de explicitar os componentes de software necessários para atender às necessidades do cliente/usuário. Profº Ricardo luiz
O design técnico pode compreender inclusive componentes de hardware que precisam ser considerados na construção da solução proposta. Profº Ricardo luiz
No design técnico devem ser considerados diversos requisitos necessários à solução do problema do cliente/usuário. • Configurações de hardware. • Necessidades de software. • Interfaces de comunicação. • Entradas e saída do sistema. • Arquitetura de rede utilizada. Profº Ricardo luiz
TÓPICO 1 ARQUITETURA DE SOFTWARE
Softwares que possuem grande conjunto de requisitos tipicamente são divididos ou decompostos em diversos subsistemas que oferecem o conjunto de serviços necessários para o software cumprir sua função. Profº Ricardo luiz
O processo de definição de quais serão estes subsistemas, os controles necessários e a comunicação de tais subsistemas são conhecidos como o projeto de arquitetura do software. Profº Ricardo luiz
A arquitetura de software é, portanto, a estrutura de organização e divisão dos módulos que o compõem. Profº Ricardo luiz
Sommerville (2003), indica três vantagens de projetar e documentar explicitamente uma arquitetura de software: Profº Ricardo luiz
TÓPICO 1 MODULARIDADE
No processo de definição do design mais adequado ao software, outra tarefa bastante árdua é a definição da modularidade. Profº Ricardo luiz
É uma tarefa árdua pelo fato de haver diversos fatores envolvidos na decisão da distribuição do software em módulos. Profº Ricardo luiz
Pfleeger (2004), indica que o design de um software seja criado com base em um dos seguintes modos: • Decomposição modular; • Decomposição orientada a dados; • Decomposição orientada a eventos; • Design ‘outside-in’ (de fora para dentro); • Design orientado a objetos; Profº Ricardo luiz
O design de software pode ser elaborado através de uma das abordagens descritas ou a partir da combinação de algumas dessas abordagens. A idéia central é utilizar uma hierarquia, aumentando o detalhamento a cada nível. Profº Ricardo luiz
TÓPICO 1 DESIGN DE INTERFACES COM O USUÁRIO
O design de interface com o usuário pode iniciar na fase de requisitos para os casos em que há necessidade de explicitar algumas interfaces críticas da aplicação. Profº Ricardo luiz
Porém o maior volume de trabalho ocorre na fase de design. É nesta fase que as interfaces com o usuário são desenhadas. Profº Ricardo luiz
Embora possa parecer simples, se considerarmos a importância que as interfaces com o usuários representam para um software, chegaremos à conclusão de que é uma atividade com grau de complexidade relativamente alto. Profº Ricardo luiz
Assumindo a premissa de que o usuário considera que o software é representado principalmente pelas suas partes visíveis, o seu design pode ser crítico para determinados projetos. Profº Ricardo luiz
Uma interface com o usuário deve abordar: • Metáforas: elementos que podem ser reconhecidos e aprendidos. • Modelo mental: organização e representação de elementos. • Regras de navegação para o modelo: como se mover entre os elementos. • Aspecto: aparência do sistema. • Impressão: experiência do usuário. Profº Ricardo luiz
O objetivo de considerar tais elementos é permitir que o usuário obtenha acesso rápido ao conteúdo que necessita, sem que perca a compreensão enquanto navega pelas informações. Profº Ricardo luiz
Duas questões fundamentais devem ser consideradas em seu design: cultura e preferência Profº Ricardo luiz
Quando o software é desenvolvido para uso por uma grande diversidade de usuários que podem abranger o país ou quem sabe o mundo, é necessário que se considere diversos aspectos relacionados a este possível público. Profº Ricardo luiz
Os aspectos que devem ser considerados são as crenças, valores, normas, tradições, hábitos e até mesmo os mitos daqueles que utilizarão o software. Profº Ricardo luiz
As cores também podem ter significados muito relevantes. “Na Inglaterra, a cor púrpura representa a realeza, e, no Japão, púrpura significa dignidade e nobreza. Mas na Grécia antiga, púrpura simboliza a morte e o demônio”. Profº Ricardo luiz
TÓPICO 1 INDEPENDÊNCIA DOS COMPONENTES
É desejado que todo software desenvolvido seja estruturado de forma a facilitar o processo de manutenção. Profº Ricardo luiz
Um design de software para poder ser considerado bom deveria possuir as seguintes características (PFLEEGER, 2004): Profº Ricardo luiz
Facilidade de entendimento. • Facilidade de implementação. • Facilidade de realização de testes. • Facilidade de modificação. • Tradução correta dos requisitos em software. Profº Ricardo luiz
A facilidade para realizar modificações é um aspecto altamente relevante, pois a manutenção é tipicamente de longo prazo. Profº Ricardo luiz