Buscar

PPt webinar 1 engenharia de software

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de Software
Unidade 1
Prof. Thiago Muniz Barbosa
Introdução
Por muitos anos a Engenharia de Software foi utilizada com o objetivo de criar software de qualidade dentro dos custos e dos prazos estimados pelo cliente, evitando desperdícios de tempo, esforços, direções erradas e atrasos. A criação de software foi subestimada e realizada sem nenhuma metodologia, gerando erros em sistemas, como problemas de cálculos e perdas financeiras e de tempo.
Histórico e conceitos fundamentais da Engenharia de Software
A Engenharia de Software é uma disciplina da Engenharia, mais especificamente da Ciência da Computação, que estuda todos os processos envolvidos no desenvolvimento de software, uma atividade complexa que envolve a realização conjunta de diversas atividades distintas, as quais exigem habilidades multidisciplinares e, por consequência, trabalho colaborativo de um grande grupo de profissionais (SOMMERVILLE, 2011).
A Engenharia de Software é uma área de grande importância, uma vez que as pessoas e a sociedade como um todo estão a cada dia mais dependentes de software. Por isso, faz-se necessário que seja produzido software mais confiável e de forma mais rápida a cada dia
Evolução do desenvolvimento de software
Mudanças tecnológicas
Mudanças de processo
Importância da Engenharia de Software 
Engenharia de Software é uma disciplina de Engenharia cujo foco está em todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até a sua manutenção, quando o sistema já está sendo usado.
Engenharia de Software envolve:
 planejamento. Planejamento diz respeito também a pessoas e cronograma de trabalho.
qualidade do produto. Qualidade, neste contexto, não se refere apenas à entrega de produtos em funcionamento, mas também ao atendimento das necessidades do cliente
Além disso, na fase de desenvolvimento da programação em si, a Engenharia de Software se faz presente, uma vez que a escolha do processo ideal irá influenciar diretamente no trabalho cotidiano de todos os envolvidos, incluindo a programação. Esse fator ganha relevância ainda maior em times que trabalham em horários distintos ou locais geograficamente distribuídos
Modelo de análise de software
A análise estruturada é um dos métodos utilizados e presentes nas camadas da Engenharia de Software. As ferramentas de análise estruturada permitem que um profissional de software crie modelos de dados, modelos de fluxos e modelos comportamentais para possibilitar a análise de consistência, a continuidade, a fácil edição e a extensão. 
A análise estruturada considera os dados e os processos que transformam os dados como entidades separadas na modelagem de um sistema. Os objetos de dados são modelados de maneira a definir seus atributos e relações. Processos que manipulam objetos de dados são modelados para mostrar como transformam os dados à medida que objetos de dados fluem por meio do sistema.
Engenharia de software aplicada à análise estruturada de sistemas
A Engenharia de Software nos traz metodologias que auxiliam no processo de desenvolvimento de um software, porém, só começou a ser vista como algo colaborativo durante este processo no início da década de 1970. Foi entre as décadas de 1970 e 1980 que ocorreram grandes progressos nas técnicas que já estavam sendo utilizados anteriormente. 
Um acontecimento muito relevante para o contexto computacional e do desenvolvimento de software foi o surgimento de um paradigma utilizado na análise de sistemas, que, inicialmente, foi definido como clássico, porém, posteriormente, passou a ser chamado também de estruturado. 
Elementos de modelagem
Um sistema computacional tem três estágios básicos: entrada, processamento e saída de dados. Para isso, o uso de uma análise de software estruturada requer que haja o estudo da viabilidade do projeto e a análise e as especificações dos requisitos e do projeto, para que possa ocorrer a implementação, os testes e a manutenção do sistema que será desenvolvido. 
As metodologias que utilizam este princípio foram desenvolvidas para auxiliar os desenvolvedores neste processo. Para isso, diversas ferramentas e metodologias foram predefinidas. Selecionamos aqui o diagrama de fluxo de dados (DFD) e o dicionário de dados (DD).
DFD e DD
O diagrama de fluxo de dados (DFD), assim como os demais diagramas, tem como função principal expor informações vistas antes como abstratas, tais como os processos que compõem o sistema. É visto como a principal ferramenta utilizada para a análise estruturada, pois deixa em evidência todo o fluxo de entrada e saída de dados. 
Os dicionários de dados (DD), uma lista informatizada de todos os dados definidos no produto. Um produto grande contém dezenas (talvez centenas) de milhares de dados, e o computador é ideal para armazenar informações, como nomes e tipos de variáveis e o local em que cada uma delas é definida, bem como nomes de procedimento e de parâmetros e seus tipos. Uma parte importante de toda a entrada de um dicionário de dados é a descrição do item
Modelo de análise de software
A análise orientada a objetos, diferentemente do enfoque tradicional, sugere que um sistema é uma coletânea de objetos que interagem entre si, com características próprias, representadas por atributos e operações. Neste tipo de análise, os atributos representam os dados de um objeto e servem para expressar características e informações. Já as operações são as ações que podem ser realizadas pelo objeto. O mais interessante é a possibilidade de modelar o sistema usando objetos que representam elementos do mundo real. Isso permite que sistemas complexos sejam facilmente modelados e implementados, além de facilitar o seu crescimento e a manutenção.
Engenharia de software aplicada à análise de software orientada a objetos
A era tecnológica almeja por softwares cada vez mais complexos. Essa complexidade está ligada diretamente à grande quantidade de informações que devem ser processadas simultaneamente. Com o tempo, os recursos tecnológicos passaram por diversas mudanças, tanto em seus dispositivos físicos quanto lógicos. A Engenharia de Software surgiu devido à necessidade de haver técnicas que norteassem o processo de desenvolvimento do software.
Engenharia de software aplicada à análise de software orientada a objetos
A OOA (análise orientada a objetos, em inglês object-oriented analysis,) é uma técnica de análise semiformal para o paradigma de orientação a objetos. A análise orientada a objetos é um componente-chave do paradigma de orientação a objetos. Quando esse fluxo de trabalho é realizado, as classes são extraídas. Os casos de uso e as classes são a base de um produto de software orientado a objetos a ser desenvolvido (SCHACH, 2010, p.395). Dessa forma, “concentra-se na definição de classes e na maneira como colaboram entre si para atender aos requisitos dos clientes” (PRESSMAN; MAXIM, 2016, p. 172). Uma classe traz um conceito do mundo real, representa algum conceito, um objeto, que tem comportamento e características e que executa ações.
Elementos da modelagem orientada a objetos
O modelo de análise de software estruturado faz uso do diagrama de fluxo de dados e do dicionário de dados, não se limitando a nenhum desses elementos, até mesmo porque o uso de uma metodologia ou ferramenta irá depender do contexto ao qual ela será inserida. Dessa forma, para a realização da análise de software orientado a objetos, se faz comum o uso da linguagem de modelagem unificada (do inglês UML – unified modeling language) como elemento de representação gráfica e informacional de dados e informações de um software.
Linguagem de modelagem unificada (UML)
A Linguagem de modelagem unificada (UML) foi criada para estabelecer uma linguagem de modelagem visual comum, semanticamente e sintaticamente rica, para arquitetura, design e implementação de sistemas de software complexos, tanto estruturalmente quanto para comportamentos. Além do desenvolvimento de software, a UML tem aplicações em fluxosdo processo na fabricação.
É análoga aos modelos utilizados em outros campos, e é composta por diferentes tipos de diagramas. De modo geral, diagramas UML descrevem o limite, a estrutura e o comportamento do sistema e os objetos nele contidos.
A UML não é uma linguagem de programação, mas existem ferramentas que podem ser usadas para gerar código em várias linguagens por meio de diagramas UML. A UML tem uma relação direta com a análise e o design orientados a objetos.
Diagrama de classe
Diagrama de classes é uma representação estática utilizada na área da programação para descrever a estrutura de um sistema, apresentando suas classes, atributos, operações e as relações entre os objetos.
Este tipo de representação é bastante útil no desenvolvimento de sistemas e de softwares de computação, pois define todas as classes que o sistema precisa ter e serve de base para a construção de outros diagramas que definem o tipo de comunicação, sequência e estados dos sistemas.
O diagrama de classes é a parte central da Linguagem de Modelagem Unificada (UML – Unfied Modelling Language). Ele representa as principais finalidades da UML, tendo a função de separar os elementos de design da codificação do sistema.
Diagrama de Caso de Uso
Um modelo de caso de uso é um modelo que descreve como diferentes tipos de usuários interagem com o sistema para resolver um problema. Como tal, ele descreve as metas dos usuários, as interações entre os usuários e o sistema, bem como o comportamento necessário do sistema para satisfazer estas metas.
Um modelo de caso de uso consiste em um conjunto de elementos de modelo. Os elementos de modelo mais importantes são: casos de uso, atores e as relações entre eles.
Um diagrama de caso de uso é usado para descrever graficamente um subconjunto do modelo para simplificar a comunicação. Normalmente existirão vários diagramas de caso de uso associados a um determinado modelo, cada um mostrando um subconjunto de elementos de modelo relevantes para um determinado fim.

Outros materiais