Você está na página 1de 16

Engenharia de Software

3° Semestre

Tema: Fundamentos de Software e Gerenciamento de


Projetos.
O software é um produto presente em todos os aspectos da
nossa sociedade atual, desde sistemas web à sistemas de controle
de veículos, aeronaves, refinarias, entre outros. Graças a essa
infinidade de situações em que o software pode ser utilizado,
projetá-lo utilizando-se de das melhores práticas de engenharia é
imprescindível para que o produto atenda as necessidades de
quem o consome. A disciplina Engenharia de Software trata de
aspectos técnicos que permitem a geração do produto software. E
não existe engenharia sem processo. O processo de
desenvolvimento inclui etapas básicas, cuja aplicação depende do
modelo adotado.
As duas grandes áreas de conhecimento que estarão
apoiando a engenharia são o Gerenciamento de Projetos e o
Gerenciamento de Risco.

Reconhecer os conceitos básicos relacionados com o desenvolvimento


de software
O Software consiste em: (1) Instruções que, quando executadas, fornecem
características, funções e desempenhos desejados; (2) Estruturas de dados que
possibilitam aos programas manipular informações adequadamente; e (3)
Informação descritiva, tanto na forma impressa quanto na virtual, descrevendo a
operação e o uso dos programas.
(Pressman, 2016)
*

Gerencia
l
Operaciona
l

*Estratégico

O software tem como uma das principais características a complexidade,


que tem como melhor forma de resolução a aplicação de metodologias que
permitam a decomposição do problema de forma sistemática, cabendo a
engenharia esse papel.
Engenharia de software é a aplicação de uma abordagem sistemática,
disciplinar e quantificável para o desenvolvimento, operação e manutenção de
um software.
Tem-se como camadas as seguintes:
Camada de Qualidade – Garante que os requisitos serão cumpridos.
Camada de Processo – Determina as etapas de desenvolvimento.
Camada de Métodos – Fornece informações técnicas.
Camada de Ferramentas – Fornece suporte às ferramentas CASE.

A base da Engenharia de Software é a Camada de Processo. Processo é


uma sequência de etapas que permite a geração de um produto. Quanto maior a
complexidade de um produto, mais formal deve ser o processo adotado. A
qualidade é a camada base que sustenta o processo.
Planejamento – Destaca-se a área Gerenciamento de Projeto.
Modelagem – Denominados diagramas.

Outros Conceitos: Atividades de Apoio!


Controle e acompanhamento de projeto – Verifica se está tudo de acordo
com o planejado ou se há necessidade de ações corretivas.
Administração de riscos – Com base na Área de Gerenciamento de Risco,
tratar qualquer evento, positivo ou negativo que possa impactar o projeto.
Garantia da qualidade de software – Com base na Área de Gerenciamento
de Qualidade, visa atender os requisitos.
Revisões técnicas – Deve haver o teste de todos os processos, modelos e
códigos.
Medição – Deve ser avaliado a qualidade da atividade durante o
desenvolvimento.
Gerenciamento da configuração de software – Gerencia o versionamento
de código e o efeito da mudança feito no código anterior.
Gerenciamento da capacidade de reutilização – Gerencia a possibilidade
de reuso de código através de paradigmas.
Preparo e produção de artefatos de software – Produção de
documentação.

É imprescindível que o software possua documentação técnica e de


usuário, de forma a especificar o processo e o uso do mesmo.

Descrever as etapas essenciais de um processo de desenvolvimento


de software
Levantamento de Requisitos – Entender o problema a ser resolvido e a
elaboração do Documento de Requisitos.
Requisitos: são descrições dos serviços fornecidos pelo sistema e as suas
restrições operacionais. Esses requisitos refletem as necessidades dos
clientes de um sistema que ajuda a resolver algum problema.
SOMMERVILLE, 2007.
O termo requisito de usuário configura alto nível de abstração enquanto
requisitos de sistema são para especificações detalhadas, ou seja, com
baixo nível de abstração.
Requisitos funcionais: Está ligado ao serviço a ser prestado.
Requisitos não funcionais: São restrições operacionais. Podem ser
ferramentas ou requisitos de qualidade.
Requisitos de domínio: São as regras de negócio.
Análise – É o momento com o maior nível de abstração graças a produção
de modelos para exemplificar a solução do problema que deverá ser
tratado pelo software.
Diagrama de caso de uso

Diagrama de classes
Os modelos deverão ser validados com o cliente.

Projeto – Refinamento do modelo de classes e a construção do modelo de


interação. É o momento de detalhar os componentes, realizar o modelo
lógico de banco de dados e o desenho da arquitetura do sistema.

Implementação – É a codificação de software de acordo com os padrões


de projeto.
Testes – Teste de software ou validação. Inicialmente unitário, passando
por testes de integração e testes de aceitação.
Deve ser feitos testes automatizados.
Implantação – Migração para o ambiente de produção de acordo com o
aval da equipe de qualidade.
Fluxo de Processo
A especificação de um processo de desenvolvimento requer a definição de
quais atividades irão compor o respectivo processo e como as referidas atividades
serão encadeadas, também denominada Fluxo de Processo ou Ciclo de Vida.
Fluxo de Processo Linear

Fluxo de Processo Iterativo

Fluxo de Processo Evolucionário

Fluxo de Processo Paralelo

Fluxo de Processo Paralelo


(Modelo de Ciclo de Vida Iterativo e Incremental)
Relacionar as etapas de um processo de desenvolvimento de software
com as etapas de Gerenciamento de Projeto
Um projeto é um esforço temporário empreendido para criar um produto,
serviço ou resultado único.
+
E Gerenciamento de projetos é a aplicação de conhecimentos, habilidades,
ferramentas e técnicas às atividades do projeto a fim de cumprir os seus
requisitos. O gerenciamento de projetos é realizado através da aplicação e
integração apropriadas dos processos de gerenciamento de projetos identificados
para o projeto. O gerenciamento de projetos permite que as organizações
executem projetos de forma eficaz e eficiente.
(PMI, 2017)
Ciclo de vida do projeto X Grupo de processos
Ciclo de vida

Processo de Gerenciamento de Projeto

Grupo de Processos
Os Grupos de Processos são aplicados a cada etapa do Ciclo de Vida do projeto.

Grupo de Processos de Iniciação – Inclui os processos realizados no início de


um projeto, cabendo destaque ao termo de Abertura do Projeto, termo que
autoriza a alocação de recursos ao projeto.
Grupo de Processos de Planejamento – Inclui os processos para planejar a
execução, com data de início e finalização.
Grupo de Processos de Execução – Executar o projeto de acordo com o
planejado.
Grupo de Processos de Monitoramento e Controle – Monitora e controla o
progresso e desempenho.
Grupo de Processos de Encerramento – Entrega e aceitação do produto,
dispensa de equipe e avaliação de resultados.
Gerenciamento da integração do projeto – Supervisionada pelo gerente
responsável do projeto. Destaca-se o Termo de Abertura do Projeto, documento
que autoriza a alocação de recursos ao projeto.
Gerenciamento de escopo do projeto – Gerencia o Termo de Requisitos de
software e elabora a Estrutura Analítica do Projeto (EAP) – que são os
workpackages, os pacotes de trabalho ou conjuntos de tarefas a serem executados
no projeto.

Gerenciamento do cronograma do projeto – Gerencia a duração de cada


pacote de trabalho e insumos e a elabora o diagrama de rede do cronograma do
projeto, que determina as interdependências entre atividades.

Descrever a importância do Gerenciamento de Risco no projeto de


software
Um risco é um evento ou condição incerta que, se ocorrer, provocará um efeito
positivo ou negativo em um ou mais objetivos do projeto.
(PMI, 2017)
A área de Gerenciamento de Riscos permite a sistematização de tratativas
em forma de plano para lidar com possíveis situações negativas.

COMPONENTES DE UM RISCO
O evento =>
A probabilidade que ele ocorra =>
Impactos decorrentes =>

Riscos De Categoria Genérica de acordo com Pressman (2016)


Tamanho do produto – Associados ao tamanho do software;
Impacto no negócio – Oriundo de restrições impostas pelo cliente ou o mercado;
Características do envolvido – Um exemplo seria comunicação oportuna;
Definição do processo – Relacionados a auditoria de processos por parte da
equipe de qualidade;
Ambiente de desenvolvimento – Associado às ferramentas disponíveis para criar
o software, tais como ferramentas case disponíveis.
Tecnologia a ser criada – Relacionado com as inovações tecnológicas aplicadas
no desenvolvimento do software, tal como, um novo framework de persistência
de dados.
Quantidade de pessoas e experiência – Relacionado ao perfil dos engenheiros,
administradores de banco de dados, web designers e dos outros membros da
equipe.

1. A alta gerência e o cliente estão formalmente comprometidos em apoiar o


projeto?
2. Os usuários estão bastante comprometidos com o projeto e o
sistema/produto a ser criado?
3. Os requisitos são amplamente entendidos pela equipe de engenharia de
software e clientes?
4. Os clientes foram totalmente envolvidos na definição dos requisitos?
5. Os usuários têm expectativas realistas?
6. O escopo do projeto é estável?
7. A equipe de Engenharia de Software tem a combinação de aptidões
adequadas?
8. Os requisitos de projetos são estáveis?
9. A equipe de projeto tem experiência com a tecnologia a ser
implementada?
10. O número de pessoas na equipe de projeto é adequado para o trabalho?
11. Todos os clientes e usuários concordam com a importância do projeto e
com os requisitos do sistema/produto a ser criado?

Análise Qualitativa de Riscos

- Probabilidade

(0.10, 0.25, 0.50, 0.75 ou 0.95)

- Grau de Impacto

(1, 2, 3, 4 ou 5)

- Aplicação

Análise Quantitativa de Riscos


Refere-se a quanto de recurso deverá ser utilizado caso aquele risco se
concretize.

Planejamento de Respostas aos Riscos


Pensar em formas de reduzir as ameaças, de acordo com a prioridade
definida da Análise Qualitativa de Riscos.

Tema: Fases do Desenvolvimento de Software.

Descrever as atividades da Engenharia de Requisitos do processo de


desenvolvimento de software
A referência mundial utilizada é Pressman (2016).
A melhor tratativa para a complexidade é a aplicação de metodologia que
permita a decomposição do problema em menores de forma sistemática.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE


A abstração no desenvolvimento de softwares: Processo é iniciado com
alto nível de abstração e, à medida que o desenvolvimento de software se
aproxima da codificação, o nível de abstração diminui, de modo que o código
representa mais baixo nível de abstração.

Levantamento de requisitos + Análise


ENGENHARIA DE REQUISITOS

Os requisitos de um sistema são descrições dos serviços fornecidos pelo sistema


e as suas restrições operacionais. Esses requisitos refletem as necessidades dos
clientes de um sistema que ajuda a resolver algum problema.
(SOMMERVILLE, 2017)

São propostas de processo na Engenharia de Requisitos:


Concepção – Estabelecimento inicial do problema e a identificação dos
diversos níveis de usuários.
Levantamento – Definido o escopo do projeto e a especificação de
requisitos. É nesse momento feito o documento de requisitos.
Requisitos funcionais: Serviços fornecidos pelo sistema.
Requisitos não funcionais: Restrições operacionais, SGBD, linguagens de
programação a serem utilizados.
Requisitos de domínio: As regras de negócio. Impactam diretamente os
requisitos funcionais.
Elaboração – São criados modelos através de um estudo elaborado dos
requisitos a serem alcançados.
Diagrama de caso de uso

Diagrama de classes da UML


Diagrama de atividades

Negociação – Discussão sobre avaliação de custos, riscos e conflitos e


resolução de conflitos.
Especificação – Geração de um documento de especificação incluindo os
requisitos e modelos gerados nas etapas anteriores.
Validação – Reunião para evidenciar os modelos que refletem as
necessidades dos usuários com relação ao sistema a ser desenvolvido.
Gestão – Finaliza o processo da engenharia de requisitos, e a partir de
agora, a etapa de gestão controla as mudanças dos requisitos à medida que
o projeto evolui.
Reconhecer as atividades do projeto de software do processo de
desenvolvimento de software

PROJETO DE SOFTWARE
Modelos: Caso de uso, classes de análise, modelo de atividades e o modelo de
estados.

REFINAMENTO DOS ASPECTOS ESTÁTICOS E ESTRUTURAIS DO


SISTEMA

O modelo de classes representa os aspectos estáticos e estruturais do


sistema. A partir do modelo de classes gerado na análise (Engenharia de
requisitos – elaboração), é inserido novos elementos que permitirão a
implementação das classes, ou seja, será aplicado refinamentos que possibilitam
reduzir o grau de abstração.

1. Indica uma classe e o respectivo nome;


2. Inclui atributos;
3. Adiciona métodos e funções da classe;
4. Detalha atributos e métodos.

DETALHAMENTO DOS ASPECTOS DINÂMICOS DO SISTEMA


O paradigma dominante é o de orientação a objetos, onde o mundo real é
representado por meio de objetos que se comunicam.
O modelo de interação inclui dois diagramas: de comunicação e de sequência.
O modelo de interação é desenvolvido em paralelo com o modelo de classes, de
modo que os métodos implementados nas classes são identificados a partir das
mensagens definidas no modelo de interação.

Reconhecer as etapas de implementação e testes do processo de


desenvolvimento de software
Descrever as etapas de implementação e manutenção do processo de
desenvolvimento de software

Você também pode gostar