Análise e Projeto de Sistemas
Prof. Ms. Ângelo Lemos Vidal de Negreiros
Ângelo Lemos Vidal de Negreiros
◦ Formação Acadêmica Formado em CC na UFPB e Sistemas para Internet no
IFPB
Especialista em desenvolvimento mobile - Idez Mestrado em Computação UFPB
◦ Profissional
Empresas privadas, laboratórios, etc Técnico de TI na UFPB
Definição
◦ É uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em produção. Sua meta é o desenvolvimento de
sistemas de software com boa relação custo-benefício.
Engenharia de Software X Engenharia de
Sistemas
◦ A engenharia de Sistemas com base em
computadores se ocupa de todos os aspectos do desenvolvimento e evolução dos sistemas
complexos, em que o software desempenha papel principal. Ela se ocupa com:
Desenvolvimento de hardware. Projeto de políticas e processos. Pessoas e outros sistemas.
Engenharia de Software.
◦ Obs. Um sistema é uma coleção significativa de
componentes inter-relacionados, que trabalham em conjunto para atingir algum objetivo.
6
A
Evolução:
Iniciou em 1968: “crise do software”.
Desenvolvimento fora de controle Iniciou como um problema de Custo e
Produtividade.
Mais importante: era um problema de Qualidade Vídeo (caos no desenvolvimento de software):
video_1
Década de 1970: Programação Estruturada e
A
Evolução (década de 60 e 70)
Eu vou aqui em cima e procurar saber o que eles precisam. Vocês ... comecem a codificar
8
A
Evolução:
Década de 1980
Análise Estruturada (DFD, Dicionário de
dados, Diagrama ER, de Estados)
Surgimento de ferramentas CASE
Década de 1990: Análise e Projeto Orientados a
Objetos.
Orientação a objetos (OO) é um termo geral que inclui
qualquer estilo de desenvolvimento de sistemas que seja baseado no conceito de „objeto‟, uma entidade que exibe características e comportamentos. A
estratégia OO pode ser aplicada à programação e a análise e projeto de sistemas.
A
Evolução:
Década de 2000
Flexibilização do desenvolvimento de
software
Novos paradigmas: SOA, Aspectos, MDA, etc.
Metodologias Ágeis
Cloud Computing
Exemplo de evolução tecnológica
Internet das coisas
Video_2:https://www.youtube.com/watch
O objetivo da ES é produzir software: de alta qualidade;
Produtividade no desenvolvimento, operação e
manutenção
que atenda às necessidades e expectativas dos
usuários (satisfação);
dentro de um cronograma, de um orçamento
previsível e níveis de qualidade controlado
Com o melhor custo-benefício entre Qualidade e
12
O processo de produção de software inclui:
Qualidade: é a pedra fundamental que sustenta a
engenharia de software.
Processo: é a base para a engenharia de software.
É a liga que mantém as camadas de tecnologia coesas e possibilita o desenvolvimento de
software de forma racional e dentro do prazo.
Métodos: fornecem as informações técnicas para
desenvolver software (como fazer). Baseiam-se em um conjunto de princípios básicos que
governam cada área da tecnologia e inclui
atividades de modelagem
e outras técnicas descritivas. Ferramentas: fornecem suporte automatizado ou
semi-automatizado para o processo e para os métodos.
14
Definição de Software
São os programas de computador e a
documentação associada.
Tipos de Software
Pode ser para um cliente (customizado) ou vários
clientes (software de prateleira)
Técnicas de desenvolvimento
Novos softwares podem ser criados
desenvolvendo-se novos programas ou reutilizando softwares existentes
Processo de Software
É um conjunto de atividades, cuja meta é o
desenvolvimento ou a evolução do software. Meta: satisfazer um objetivo, no caso de software.
Define quem está fazendo o que, quando e como
para atingir um certo objetivo
16
Atributos de um bom software:
proporcionar funcionalidades e desempenho
requeridos;
passível de manutenção, confiável e de fácil uso. Desafios da Engenharia de SW:
lidar com sistemas legado;
atender à crescente diversidade; prazos reduzidos.
Custos da Engenharia de SW: desenvolvimento 60% testes 40%
Essência de todo software
Entenda o problema: levantamento de requisitos e
análise.
Planeje uma solução: projeto.
Execute o plano: implementação.
Examine o resultado quanto a precisão: teste e
18
Mesmo com toda a evolução da ES, ainda assim
encontra-se problemas.
Problemas no processo de desenvolvimento de
software
◦ Video_3:
Princípios básicos
Razão por que tudo existe: para fornecer valor aos
seus usuários.
Mantenha a coisa simples: todo projeto deve ser
tão simples quanto possível, mas não mais simples.
Mantenha a visão: uma visão clara é essencial para
o sucesso de um projeto de software.
O que você produz os outros vão consumir:
sempre especifique, projete e implemente
sabendo que mais alguém terá de entender o que você está fazendo.
20
Princípios básicos
Esteja aberto para o futuro: nunca projete a si
mesmo em um beco sem saída.
Planeje com antecedência o reuso: reduz custo e
aumenta o valor dos componentes e do sistema ao qual são incorporados.
Pense: raciocinar clara e completamente antes da
É um conjunto de atividades e resultados associados
que levam à produção de um produto de software.
Não há um processo ideal. Diferentes organizações
desenvolveram abordagens diferentes para o desenvolvimento de software.
Característica de software com qualidade: facilidade de manutenção
confiança (segurança, não deve causar danos
físicos, ou econômicos)
eficiência (rapidez da resposta, tempo de
resposta)
22
Atividades fundamentais no desenvolvimento de
software:
Especificação do software.
Projeto e implementação do software. Validação do software.
Exercícios (V ou F)
A engenharia de software está relacionada com
todos os aspectos da produção de software,
desde os estágios iniciais de especificação do
sistema até sua manutenção, depois que este
entrar em operação. A engenharia de sistemas
diz respeito aos aspectos do desenvolvimento e
da evolução de sistemas complexos, nos quais o
software desempenha um papel importante.
24
Exercício
s Segundo Pressman (1995), Engenharia de Software é o
estabelecimento e uso de sólidos princípios de
engenharia para que se possa obter economicamente um software que seja confiável e que funcione
eficientemente em máquinas reais, abrangendo um conjunto de três elementos fundamentais (métodos, ferramentas e procedimentos). Qual a alternativa
incorreta:
A. Métodos de Engenharia de Software proporcionam
os detalhes de “como fazer” para construir o software.
B. As ferramentas proporcionam apoio automatizado
Exercícios
C. Procedimentos constituem o elo de ligação dos
métodos e das ferramentas e possibilitam o
desenvolvimento racional e oportuno de software. É quem ajuda os métodos serem aplicados
corretamente.
D. Métodos de ES pode envolver um amplo conjunto
de tarefas técnicas que incluem: planejamento e estimativa de projeto, análise de requisitos de
software e sistemas com UML, projeto de estrutura de dados, arquitetura de programa e algoritmo de processamento, codificação, teste e manutenção.
E. Ferramentas são roteiros para o desenvolvimento
Sommerville, Ian. Software Engineering.
Editora: Addison Wesley.
Pressman, Roger S. Software Engineering: A
Practiotioner‟s Approach. Editora:
McGraw-Hill.
Boch, Jacobson, Rumbaugh; UML – Guia do
Usuário; Editora: Elsevier; Ano: 2006