Вы находитесь на странице: 1из 20

Escola de Ciência e

Tecnologia

Fundamentos de
Engenharia de Software
Professor Anderson Nascimento

Disciplina: Sistemas e Métodos

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Fundamentos de Engenharia de Software


 Objetivos da disciplina
 Contextualizar o profissional de TI nas organizações
contemporâneas
 Conscientizar da importância estratégia dos sistemas de Informação
para o desenvolvimento organizacional
 Expor a evolução da Engenharia de Software e conceitos
relacionados ao desenvolvimento de sistemas
 Apresentar os principais modelos de processos da
Engenharia de Software
 Compreender e aplicar algumas técnicas de teste de software.
 Compreender e aplicar alguns métodos e técnicas de garantia
da qualidade e gerência de projetos.
Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 2

1
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

1 - A Organização
O que é uma Organização?
 Suas características, estruturas e o profissional de TI
 A “Sociedade do Conhecimento” e as organizações
contemporâneas
 Sistemas
 Sistema de Informação
 A Engenharia de Software e o desenvolvimento de sistemas
 Modelagem de processo de negócios (business process
management) - BPM

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 3

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Organização
 Entidade com ou sem fins lucrativos que combina
esforços individuais e de grupos para atingir
objetivos coletivos
 Toda organização é regida por uma cultura
organizacional
 Conjunto de valores e crenças adotados pela empresa e que
são utilizados para a tomada de decisões

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 4

2
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura organizacional
 Forma pelo qual as atividades de uma organização
estão divididas, organizadas e coordenadas
 Conjunto ordenado de responsabilidades,
autoridades, comunicação e decisões das unidades
organizacionais de uma empresa

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 5

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura organizacional
 Deve ser delineado de acordo com os objetivos e
estratégias estabelecidos pela empresa
 É uma ferramenta básica para alcançar as situações
almejadas pela empresa
 Pode ser dividida em três níveis hierárquicos:
 Estratégico
 Tático (gerencial)
 Operacional

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 6

3
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura organizacional

Administração
Estratégica

Administração
Tática

Administração
Operacional

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 7

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura organizacional
 Níveis hierárquicos
 Estratégico: define as metas a longo prazo
 Tático: define os procedimentos necessários a médio prazo
para atender as metas
 Operacional: realiza as tarefas
A Estrutura Organizacional tem aspectos formais e
informais
 Formal: planejadas e representadas
 Informal: relacionamentos não documentados

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 8

4
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura Organizacional

 Formal:
 Deliberadamente planejada e formalmente representada, em
alguns aspectos pelo seu organograma.
 Ênfase a posições em termos de autoridades e
responsabilidades.
 É estável.
 Está sujeita a controle.
 Está na estrutura.
 Líder formal.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 9

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura Organizacional

 Informal:
 Surge da interação social das pessoas, o que significa que se
desenvolve espontaneamente quando as pessoas se reúnem.
Representa relações que usualmente não aparecem no
organograma.
 São relacionamentos não-documentados e não-reconhecidos
oficialmente entre os membros de uma organização que
surgem inevitavelmente em decorrência das necessidades
pessoais e grupais dos empregados.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 10

5
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura Organizacional
 Está nas pessoas.
 Sempre existirão.
 A autoridade flui na maioria das vezes na horizontal.
 É instável.
 Não está sujeita a controle.
 Está sujeita aos sentimentos.
 Líder informal.
 Desenvolve sistemas e canais de comunicação.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 11

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura hierárquica: organograma

Estratégico Presidência

Diretoria Diretoria Diretoria


Tático Adm Operac. TI
(gerencial)
P&D

Serv Produçã Suport Desenvol-


Operacional RH
Gerais o e vimento

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 12

6
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura Organizacional
 Funções dos executivos:
 O executivo tem a função de organizar toda a empresa para o
seu perfeito funcionamento, além disso, três outras funções
básicas fazem parte da sua vida. São elas:
 Planejamento da empresa – objetivos esperados.
 Direção da empresa – orientação, coordenação, motivação, liderança
das atividades.
 Controle da empresa – acompanhamento, controle, avaliação dos
resultados.
 Organização – ordem nas coisas.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 13

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura Organizacional

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 14

7
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

A Diretoria de TI
 Divididos em duas áreas:
 Desenvolvimento
 Apoiar as atividades organizacionais através de sistemas que
facilitem o controle, coordenação e tomada de decisão
 Elaborar, especificar, comprar softwares que auxiliem as atividades
organizacionais
 Suporte
 Manter os sistemas computacionais em funcionamento
– Redes, segurança, etc
 Prestar suporte às atividades de TI

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 15

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Estrutura Organizacional

 Benefícios de uma estrutura adequada:


 Identificação das tarefas necessárias;
 Organização das funções e responsabilidades;
 Informações, recursos, e feedback aos empregados;
 Medidas de desempenho compatíveis com os objetivos;
 Condições motivadoras.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 16

8
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Diretoria de TI: Desenvolvimento


 Papéis
 Analista de Sistemas/Negócios
 Definir o que e como o sistema deverá ser implantado
 Analista de requisitos
 Identificar como as atividades são realizadas
 Programador
 Codifica o sistema
 Analista de Testes
 Verificar e validar o sistema, assegurando a qualidade
 Administrador de dados
 Definir as informações que serão usadas no sistema
Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 17

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Diretoria de TI: Suporte


 Papéis
 Analista de suporte
 Manter a estrutura computacional em pleno funcionamento
 Analista de redes
 Manter a rede operacional e com bom desempenho
 Analista de help desk
 Oferecer suporte aos usuários
 Administrador de banco de dados (DBA)
 Definir política de segurança do BD, manter o BD ordenado e
atualizado; garantir bom desempenho

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 18

9
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Sistemas
 Um sistema é um conjunto de elementos
interconectados, de modo a formar um todo
organizado.
 biologia, medicina, informática, administração...

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 19

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Sistema de Informação

Um conjunto de componentes inter-relacionados que


coleta, recupera, processa, armazena e distribui
informações destinadas a apoiar a tomada de decisões,
a coordenação e o controle de uma organização

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 20

10
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

A Sociedade do Conhecimento

 Conhecimento: o principal fator de produção do século XXI

TERRA TRABALHO CAPITAL CONHECIMENTO


Cerca de 55% da riqueza do mundo veio do conhecimento
(OCDE)
“Os grandes ganhos de produtividade, daqui para frente, advirão
das melhorias na gestão do conhecimento”
Peter Drucker
Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 21

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Engenharia de Software: Introdução


 Software e a sociedade do conhecimento
 Organizações: oferecer diferencial competitivo
 Engenharia de Software
 Provê técnicas e ferramentas para:
 Projeto, desenvolvimento e manutenção
 Pessoas envolvidas
 Stakeholders (cliente, dono do projeto), usuários, engenheiros,
analistas, arquitetos, programadores, testadores, ...
 Certificações de qualidade
 ISO, CMM, CMMI, MPS.Br

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 22

11
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Engenharia de Software: Conceitos[1/2]

Aplicação de conhecimentos sobre computadores e


computação para ajudar a resolver problemas
 Dividir e conquistar:
Shari L. Pfleeger, Eng. de Software – Teoria e Prática (2004)
Problema
Solução 4
Solução 1 Solução 2
Solução 3

Subproblema 4
Solução
Subproblema 1 Subproblema 2
Subproblema 3

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 23

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Engenharia de Software: Conceitos[2/2]

Resolvendo problemas:
 métodos, ferramentas, procedimentos e paradigmas
1. Método ou técnica:
procedimento formal para produzir resultado
2. Ferramenta:
instrumento para realizar tarefas da melhor forma
3. Procedimento:
arranjo de ferramentas e técnicas para produzir um resultado
4. Paradigma:
abordagem ou filosofia. Um estilo de trabalhar

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 24

12
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Engenharia de Software

 Engenheiro de software
 Profissional que utiliza a computação como ferramenta
para a implementação de uma solução para um problema
Ciência da
Cliente
Computação

Desenvolver requer criatividade e técnica


Teorias
Funções
computacionais
Problema • Aspectos humanos
• Suscetível a erros
• Difícil estabelecer prazos
Engenharia de
Software

Ferramentas e
técnicas para Shari L. Pfleeger, Eng. de Software – Teoria e Prática (2004)
resolver problemas

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 25

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

O que são processos de software?

 Processos de software são as diversas fases


necessárias para produzir e manter um produto de
software.
 Requerem a organização lógica de diversas atividades
técnicas e gerenciais envolvendo agentes, métodos,
ferramentas, artefatos e restrições que possibilitam
disciplinar, sistematizar e organizar o
desenvolvimento e manutenção de produtos de
software.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 26

13
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

O que são Modelos de Ciclo de Vida de Software?

 Modelos de ciclo de vida descrevem como um software


deve ser desenvolvido.
 Definem a ordem global das atividades envolvidas (disciplinas)
em um contexto de projeto de software e
 Propõe uma estratégia de desenvolvimento que pode ser
aplicada a um determinado contexto de projeto de software.
 Normalmente são vagos nas descrições de detalhes das
condições de início e término de uma atividade, recursos
utilizados, artefatos consumidos ou produzidos, papéis
desempenhados etc.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 27

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software

 Análise e definição dos requisitos


 Projeto
 Implementação do programa (codificação)
 Testes
 Entrega
 Manutenção

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 28

14
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Análise e definição
de requisitos
Analista

Projeto do
Projetista
sistema

Projeto do
programa Programador

Implementação
do programa

Teste de
Unidades Responsável
por testes
Teste de
Integração

Teste do
Sistema

Entrega do
Sistema Instrutor

Manutenção Os papéis da equipe de desenvolvimento

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 29

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software


 Análise e definição dos requisitos
 Identificação das necessidades do cliente para atender o
negócio em estudo
 Funcionais:
– Declarações de serviços que o sistema deve fornecer, como o sistema
deve reagir a entradas específicas e como deve se comportar em
determinadas situações
 Não Funcionais:
– restrições sobre os serviços ou as funções oferecidas pelo sistema

 Proposta de solução
 Interação com usuários e donos do projeto (stakeholders)
 Definição do escopo: fronteiras do sistema
 O que está incluído no sistema e o que não está
Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 30

15
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software


 Análise e definição dos requisitos
 Compreender o que o cliente e o usuário esperam que o
sistema faça
 Documentação dos requisitos: formalização do sistema
que será entregue
 Muitos clientes não sabem o que precisam exatamente. Por
consequência, muitos softwares entregues não atendem às
expectativas.
 A documentação resguarda a equipe de desenvolvimento.

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 31

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software


 Projeto
 Definição das ferramentas e metodologias que serão aplicadas na
construção da solução
 Descrição do sistema em alto nível, especificando o que o
sistema deve fazer
 Negociação com o cliente e definição do produto
 Especificação de hardwares e softwares a serem utilizados
 Especificação técnica de como o software será feito
 Diretrizes de trabalho do programador
 Alguns artefatos produzidos:
– Roteiro de casos de uso
– Descrição de funcionalidades
– Tecnologias a serem aplicadas

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 32

16
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software

 Implementação
 Etapa de programação
 Construção da solução proposta na Análise e definição de
requsitos de acordo com as tecnologias determinadas pela
etapa de Projeto
 Funcionalidades implementadas
 Protótipos

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 33

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software


 Testes
 Assegurar a qualidade do produto
 Verificação e validação do software desenvolvido
 Verificação: atesta se o sw está funcionando conforme especificado
 Validação: atesta se o sw resolve o problema do cliente
 Unitário
 Teste de cada parte do sistema
 Integração
 Teste da interação entre as partes componentes do sistema
 Sistema
 Teste do sistema completo: segurança, recuperação, desempenho

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 34

17
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software


 Entrega do sistema
 Envolve as atividades de treinamento, instalação, integração
com outros sistemas, etc
 Também conhecida como atividade de Implantação
 Tipos de Implantação
 Direta
 Realizada de uma só vez, a partir da desativação do antigo sistema e
ativação do novo
 Paralela
 Realizada após a execução em paralelo dos sistema antigo e novo.
Esta implantação requer alto controle e a execução deve cumprir todos
os ciclos do sistema.
Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 35

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software


 Manutenção
 Adaptar o software às necessidades do cliente. Com o passar
do tempo, as necessidades mudam e exigem alterações no
software
 Surgimento de novas tecnologias, novas demandas, etc
 Treinamento: Habilitar o usuário a utilizar o sistema
implantado
 Tutoriais
 Cursos
 Elaboração de manuais de usuário

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 36

18
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Disciplinas de desenvolvimento de software


 Manutenção
 Correção de falhas do sistema
 Alteração de funcionalidades implementadas (Adequação do
sistema)
 Desenvolvimento de novas funcionalidades
 Disponibilização de versões
 Gerência de configuração
 Manutenção da correspondência entre os requisitos, o projeto, a
implementação e os testes

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 37

EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Wasserman

 Fatores-chave que mudaram a prática da engenharia de


software:
1. Criticidade do tempo de entrega do produto ao mercado (produtos
comerciais)
2. Mudanças na economia da computação: redução de custos de hardware e
aumento nos custos de desenvolvimento e manutenção
3. Disponibilidade de computadores desktops poderosos
4. Aumento das redes locais e remotas
5. Disponibilidade e adoção da tecnologia orientada a objetos
6. O uso de interfaces gráficas utilizando janelas, ícones, menu e ponteiros
7. Imprevisibilidade do modelo de desenvolvimento de software em cascata

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 38

19
EscolaEscola
de Ciência
de Ciência
e e
Tecnologia
Tecnologia

Conclusões do Tópico

 Organizações contemporâneas usam intensamente sistemas de


informação para gerir o negócio e buscar novas oportunidades
 Busca por diferencial competitivo: conhecimento como fator de produção
 A divisão de TI exerce papel estratégico nas organizações
 Engenharia de software: provê ferramentas para o desenvolvimento de
sistemas de informação
 Ciclo de vida de desenvolvimento de software

Disciplina: Fundamentos
NOME DA DISCIPLINA
de Engenharia de Software 39

20

Вам также может понравиться