Buscar

Análise de Programação - Modelagem de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Análise de Programação
Função: Introdução à análise e projeto de sistemas 
Competências:
Interpretar e analisar modelos de dados,
Interpretar e avaliar documentação de analise e projeto de sistemas;
Identificar e utilizar técnicas de modelagem de dados;
Habilidades
Utilizar técnicas de modelagem de dados;
Utilizar técnicas de analise e projetos de sistemas; 
Aplicar técnicas de modularização especificação e verificação de software.
Utilizar ferramentas de apoio ao desenvolvimento de softwares;
Aplicar a orientação a objetos na construção de hierarquias de classes do sistema; 
Definir junto ao cliente os requisitos de software.
BasesTecnológicas
Modelagem de dados;
Metodologias de analises e projetos de sistema utilizando linguagem de modelagem unificada (UML);
Metodologia de projeto de sistemas com UML
Diagrama de casos de uso, de classes e de objetos;
Diagrama de interação-sequencia e colaboração;
Diagrama de gráfico de estados e atividades;
Por que fazer a Modelagem?
Uma empresa de software bem sucedida é aquela que oferece software de qualidade e capaz de atender as necessidades dos respectivos usuários. Uma empresa que consiga desenvolver esse software de maneira previsível em determinado período, com utilização eficiente e eficaz de recursos, será uma empresa com um negocio viável.
Existe uma implicação importante nessa mensagem: o principal produto de uma equipe de desenvolvimento não são documentos bonitos, reuniões sofisticadas, ótimos slogans ou linhas de código fonte merecedoras de prêmio.
O principal produto é um bom software capaz de satisfazer as necessidades de seus usuários e respectivos negócios,tudo ou mais é secundário.
Infelizmente, muitas empresas de software confundem “secundárias” com “irrelevante”. Para entregar um software que satisfaça ao proposito pretendido será preciso reunir-se e interagir com os usuários de uma maneira disciplinar, com a finalidade de expor os requisitos reais do sistema. Para desenvolver software de qualidade duradoura, será necessário criar uma arquitetura de fundação sólida que aceite modificações. Para desenvolver software de forma rápida, eficiente e efetiva,com o mínimo de desperdício e de retrabalho, será preciso dispor das pessoas certas, das ferramentas adequadas e do enfoque correto. Para fazer tudo isso de maneira previsível e consistente, com uma avaliação dos custos reais do sistema, você precisará de um processo seguro de desenvolvimento que possa ser adaptado as novas necessidadesde seu negocio e de sua tecnologia.
A modelagem e uma parte c central de todas as atividades que levam a implantação de um bom software. Construímos modelos para comunicar a estrutura e o comportamento desejado do sistema. Construímos modelos para visualizar e controlar a arquitetura do sistema. Construímos modelos para compreender melhor o sistema que estamos elaborando, muitas vezes expondo oportunidades de simplificação e reaproveitamento. Construímos modelos para gerenciar os riscos.
A importância da Modelagem
Para construir uma casa para seu cachorro, você poderá começar juntando uma pilha de tabuas, alguns pregos e algumas ferramentas básica, como martelo, serrote e metro. Em poucas horas com um pequeno planejamento prévio, provavelmente, a casa de seu cachorro estará pronta, razoavelmente funcional e certamente você será capaz tudo isso sem precisar da ajuda de alguém. Desde que a nova casa seja suficientemente grande e não haja muitas goteiras, seu cão ficara feliz, se não der certo, sempre será possível fazer tudo de novo ou arrumar um cachorro menos exigente.
Para construir uma casa para sua família, você poderá começar juntando umas pilhas de tábua alguns pregos e algumas ferramentas básicas, mas precisara de um tempo muito maior e com certeza sua família será mais exigente que o seu cachorro. Neste caso, a menos que tenha construído varias casas, será melhor fazer um planejamento detalhado antes de prender o primeiro prego ou iniciar a fundação. Pelo menos, você fara alguns desenhos rápidos da aparência desejada para sua futura casa. Se quiser construir uma casa de qualidade, que atenda as necessidades de sua família e respeite os códigos de edificação da região, também será preciso desenhar alguns emboços de projeto, com a finalidade de pensar sobre o uso pretendido para cada cômodo e detalhes práticos de energia, circulação e encanamento. A partir desses planos, você poderá começar a fazer uma estimativa razoável da quantidade de tempo e de material necessários para esta tarefa. Embora seja humanamente possível construir uma casa sozinha, você logo descobrira que será mais eficiente trabalhar com outras pessoas, talvez terceirizando vários serviços básicos ou comprando material pré-fabricado. Desde que você se mantenha fiel aos planos e permaneça dentro dos limites de tempo e custos , provavelmente, sua família ficara satisfeita. Se não der certo, a solução não será trocar de família. Portanto, será melhor definir as expectativas desde o inicio e gerenciar qualquer modificação com muita cautela.
Para construir um prédio comercial com vários andares, não será uma boa ideia começar com uma pilha de tabua, alguns pregos e algumas ferramentas básicas. Como provavelmente você estará usando o dinheiro de outras pessoas, como os acionistas da empresa, ela exigirão saber o tamanho, a forma e o estilo do futuro pré. Muitas vezes, essas pessoas mudarão de ideias e mesmo depois de iniciada a construção. Valera a pena fazer um planejamento rigoroso, pois os custos de qualquer erro serão altos. Você será apenas uma parte de um grupo bem maior, responsável pelo desenvolvimento e pela entrega d prédio. Assim, a equipe precisara de todos os modelos e esboços do projeto para poderem se comunicar entre si.
Desde que você consiga as pessoas certas e as ferramentas adequadas, além de gerenciar de maneira ativa o processo de transformação de um concerto de arquitetura em realidade, provavelmente acabara obtendo um prédio que satisfará seus futuros ocupantes. Caso pretenda continuar construindo prédios, você tentara encontrar o equilíbrio entre os desejos dos futuros ocupantes e a realidade das tecnologias e da construção, além de manter o relacionamento profissional com os demais integrantes de sua equipe, nunca colocando os em risco, nem exigindo tanto que eles acabam exaustos. 
Curiosamente muitas empresas de desenvolvimento de software começam a construir prédios altos, como se estivessem fazendo uma casinha de cachorro.
De vez em quando, a sorte ajuda. Com as pessoas certas em momento adequado, talvez, e apenas você consiga fazer com que sua equipe crie um produto de software capas de encantar seus usuários. Tipicamente você não conseguirá todas as pessoas certas, um momento adequado. 
Se você realmente quiser construir softwares equivalentes a uma casa ou a um prédio o problema não se restringira a uma questão de escrever uma grande quantidade de códigos – de fato, o segredo estará em criar o código correto e pensar em como será possível elaborar menos software. Isso faz com que o desenvolvimento de software de qualidade se torne uma questão de arquitetura, processo e ferramenta. Ainda assim muitos projetos são iniciados parecendo uma casa de cachorro, mas crescem com a grandeza de um prédio simplesmente porque são vitimas de seu próprio sucesso. Chega a um momento em que caso não tenham sido considerado questões diferentes a arquitetura a processos e a ferramenta, a casa de cachorro, agora ampliada para um grande prédio, sucumbira ao seu próprio peso. Qualquer erro na casa de cachorro poderá deixar seu cão insatisfeito. A falha de na construção de um grande prédio afetara materialmente seus ocupantes.
Os engenheiros civis constroem vários tipos de modelos. Com maior frequência, encontram-se modelos estruturais que ajudam as pessoas a visualizar e a especificar parte de sistemas e os relacionamentos existentes entre essas partes. Dependendo de ser mais importante o interesse comercial ou a questão de engenharia, os engenheirostambém poderão elaborar modelos dinâmicos, por exemplo, com a finalidade de ajuda-los a estudar o comportamento de determinada estrutura em relação a tremores de terra. Cada tipo de modelo é organizado de modo diferente e cada um tem seu próprio foco.
No caso de software, existem varias maneiras de definir um modelo. As duas maneiras mais comuns são provenientes da perspectiva de algoritmo ou da perspectiva orientada a objeto.
A visão tradicional no desenvolvimento de software adota a perspectiva de um algoritmo. Nessa visão, o principal bloco de construção do software é o procedimento ou a função. Essa perspectiva conduz os desenvolvedores a voltar o seu foco de atenção para questões referentes ao controle e a decomposição de algoritmos maiores em outros menores .
Não existe nenhuma grande desvantagem nessa solução, com exceção da tendência a permitir sistemas instáveis, a medida que os requisitos se modificam (e isso certamente ocorrerá) e o sistema cresce ( o que também acontecerá), será difícil fazer a manutenção desses sistemas construídos a partir do foco elalgoritimo
A visão contemporânea o desenvolvimento de software adota uma perspectiva orientada a objetos. Nessa visão, o principal bloco de construção de todos os sistemas de software é o objeto ou a classe. Explicando de uma maneira simples, um objeto é alguma coisa geralmente estruturada a partir do vocabulário do espaço do problema ou do espaço da solução; uma classe é a descrição de um conjunto de objetos comuns. Todos os objetos tem uma identidade (você pode atribuir-lhes nomes ou diferencia-los dos demais objetos de alguma maneira), um estado (costuma haver dados a eles associados) e um comportamento (você poderá fazer algo com o objeto ou ele poderá fazer algo com outros objetos). Considere uma estrutura simples para um sistema de cobrança, incluindo a interface para o usuário , uma camada intermediaria e um banco de dados. Na interface para o usuário você encontrará objetos concretos, como botões, menus e caixas de diálogos. No banco de dados, haverá objetos concretos como tabela que representam entidades provenientes do domínio do problema, incluindo clientes, produtos e pedido. Na camada intermediaria, você encontrará objetos como transações e regras de negócios alem de visões de alto nível relacionadas às entidades do problema, como clientes, produtos e pedidos 
UML
A UML (UnifedModeliongLanguage) é uma linguagem padrão para elaboração da estrutura de projetos de software. A UML poderá ser empregada para a visualização, a especificação, a construção e a documentação de artefatos que façam uso de sistemas completos de software.
A UML é adequada para a modelagem de sistemas, cuja abrangência poderá incluir sistemas de informação corporativos a serem distribuídas aplicações baseadas web e ate sistemas completos embutidos em tempo real. É uma linguagem muito expressiva, abrangendo todas as funções necessárias ao desenvolvimento e implantação desses sistemas. Apesar de sua expressividade, não é difícil compreender ou usar a UML. Aprender a aplicar a UML de maneira efetiva tem inicio com a formação de um modelo conceitual da linguagem, o que pressupõe o entendimento de três principais elementos: os blocos básicos de construção da UML, as regras que determinam como esses blocos de construção deverão ser combinados e alguns mecanismos básicos que se aplicam a toda a linguagem.
A UML é apenas uma linguagem, portanto, é somente uma parte de um método para desenvolvimento de software. A UML é independente do processo, apesar de ser perfeitamente utilizada em processo orientado a casos de uso, centrado na arquitetura, interativo e incremental.
Uma visão geral da UML
A UML é uma linguagem destinada a: visualizar; especificar; construir; e documentar. 
A UML é uma linguagem para visualização
Para muitos programadores, não existe diferença entre pensar em uma implementação e transforma-la em código. Pensar em algo é criar o código correspondente. De fato alguns aspectos podem ser mais bem delineados diretamente no código. O texto é uma forma mínima e direta para escrever expressões e algoritmos.
Nesses casos, o programador ainda estará realizando algum tipo de modelagem, apesar de inteiramente no plano mental ele ate poderá rabiscar algumas ideias em um quadro ou em um caderno. Entre tanto esse procedimento apresenta alguns problemas, primeiro a comunicação desse modelo conceitual a outras pessoas estará sujeita a erros amenos que todos os envolvidos usam a mesma linguagem. Tipicamente, empresa e projetos desenvolvem suas próprias linguagens e acaba se tornando difícil compreender o que ta se passando, se você não pertencer ao grupo ou for um novo participante. Segundo existem aspectos nos sistemas de software que não podem ser perfeitamente compreendidos amenos que você construa modelos capasses de transcender a linguagem de programa textual. Terceiro se desenvolvedor decidiu fazer uma remoção no código, mais nunca escreveu os modelos existentes em sua mente, essas informações. estarão perdidas para sempre ou na melhor das hipóteses, serão recriadas parcialmente da própria implementação uma vez que o desenvolvedor não esta mais a disposição.

Outros materiais