Você está na página 1de 37

Engenharia de Software (Conceitos)

Definição: Área da computação voltada à especificação,


desenvolvimento e manutenção de sistemas de software, com
aplicação de tecnologias e práticas de gerência de projetos e outras
disciplinas, visando organização, produtividade e qualidade

Friedrich Ludwig Bauer foi o primeiro dizendo: "Engenharia de


Software é a criação e a utilização de sólidos princípios de engenharia
a fim de obter software de maneira econômica, que seja confiável e
que trabalhe em máquinas reais". O próprio significado de engenharia
já traz os conceitos de criação, construção, análise, desenvolvimento
e manutenção.

A Engenharia de Software se concentra nos aspectos práticos da


produção de um sistema de software, enquanto a ciência da
computação estuda os fundamentos teóricos dos aspectos
computacionais.

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 1


Engenharia de Software (Conceitos)
O termo foi criado na década de 1960 e utilizado oficialmente em 1968 na NATO
Science Committee. A sua criação surgiu numa tentativa de contornar a crise do
software e dar um tratamento de engenharia (mais sistemático e controlado) ao
desenvolvimento de sistemas de software complexos. Um sistema de software
complexo caracteriza-se por um conjunto de componentes abstratos de software
(estruturas de dados e algoritmos) encapsulados na forma de procedimentos,
funções, módulos, objetos ou agentes e ligados entre si, compondo a arquitetura do
software, que deverão ser executados em sistemas computacionais.

Os fundamentos científicos envolvem o uso de modelos abstratos e precisos que


permitem ao engenheiro especificar, projetar, implementar e manter sistemas de
software, avaliando e garantindo suas qualidades. Além disto, deve oferecer
mecanismos para se planear e gerir o processo de desenvolvimento. As empresas
que desenvolvem software passaram a empregar esses conceitos sobretudo para
orientar as suas áreas de desenvolvimento, muitas delas organizadas sob a forma
de Fábrica de Software.

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 2


Engenharia de Software
Áreas de Conhecimento
A Engenharia de Software envolve as seguintes áreas de conhecimento:

● Requisitos de software
● Projecto de software

● Construção de software

● Teste de software

● Manutenção de software

● Gestão de configuração de software

● Gestão de engenharia de software

● Processos de Engenharia de Software

● Ferramentas e Métodos de Engenharia de Software

● Qualidade de software

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 3


Processo de Software - Definições
Definição 1
Um conjunto de atividades que recebem requisitos, transformando-os, de
acordo com uma lógica pré-estabelecida e com agregação de valores, em
produtos/serviços para responderem às necessidades dos
clientes/utilizadores.

Definição 2
Processo de software, ou processo de engenharia de software, é uma
sequência coerente de práticas que tem como objectivo o desenvolvimento
ou evolução de sistemas de software.

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 4


Processo de Software – A imagem

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 5


Processo de Software - Definições
Definição 1
Um conjunto de atividades que recebem requisitos, transformando-os, de
acordo com uma lógica pré-estabelecida e com agregação de valores, em
produtos/serviços para responderem às necessidades dos
clientes/utilizadores.

Definição 2
Processo de software, ou processo de engenharia de software, é uma
sequência coerente de práticas que tem como objectivo o desenvolvimento
ou evolução de sistemas de software.

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 6


Processo de Software - Composição
Um Processo de Software é composto pelas seguintes fases:

Especificação
As funcionalidades do software e suas premissas têm que ser definidas

Projecto (Design e Implementação)


Construção do software de acordo com as especificações

Validação
Validação do software para verificar se atende às necessidades dos
utilizadores

Evolução
Evolução do software de modo a atender as modificações das
necessidades dos utilizadores

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 7


Processo de Software - Objectivos
Processos de software visam assegurar o desenvolvimento
de software:
com prazos e necessidade de recursos definidos
com elevada produtividade (de forma económica)
com qualidade assegurada

Processos permitem:
organizar
instrumentar
planear
acompanhar projetos
treinar equipas
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 8
Processo de Software - Componentes

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 9


Conceitos Básicos
Artefacto
É o resultado de uma Actividade. Exemplos:

Documento revisto e aceite

Módulo implementado, testado e aceite

Framework documentada, implementada, testada e aceite

Quando entregue ao utilizador (cliente) o Artefacto é um produto

Insumo
Elemento ou conjunto de elementos para a realização de uma tarefa ou actividade

Pode ser um elemento de saída de outras actividades ou tarefas

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 10


Conceitos Básicos
Tarefa

É uma ação desempenhada por uma pessoa ou equipa (conjunto de pessoas) visando a
realização ou monitorização do projeto

Não representa uma evidência de progresso no desenvolvimento

Ter trabalhado 20 horas não implica ter produzido um artefacto de qualidade, mesmo
que se tenha estimado serem necessárias 20 horas para o seu desenvolvimento

Consome recursos - consumo real

Esforço (tempo de pessoa)

Equipamento

Recursos financeiros

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 11


Conceitos Básicos
Actividade
Conjunto de tarefas que levam a um ou mais artefactos de qualidade
controlada
Representa uma evidência de progresso no desenvolvimento
Documento revisto e aceite
Módulo implementado, testado e aceite
Framework documentada, implementada, testada e aceite
Permite o controle da qualidade do resultado
Num extremo pode ser a mera constatação que o resultado existe
No outro extremo pode envolver técnicas muito avançadas de controle da qualidade
O esforço é medido através das tarefas constituintes
Actividades são “mini-projectos”
Possuem início e fim definidos
Consomem um volume finito de recursos
Produzem artefactos definidos
Possuem critérios de conclusão estabelecidos

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 12


Conceitos Básicos
Ferramentas e Equipamentos
Auxiliam a execução das atividades e tarefas dos processos

Podem automatizar partes da execução das atividades e tarefas

Agilizam a execução dos processos

Papéis
Descrevem como as pessoas se comportam no processo e
quais são as responsabilidades que elas têm

Requerem habilidades específicas

Papéis não são pessoas

Pessoas executam papéis

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 13


Exemplo de Actividades relacionadas com Papel

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 14


Exemplo de Actividade
Actividade: Realizar estimativas para o projeto
Descrição
A partir do âmbito preliminar do projecto, detalhar as atividades necessárias
à sua realização, as estimativas de consumo de recursos, os prazos e
orçamentos.
Papel:
Gestor do Projecto
Artefactos de Entrada:
Âmbito do projecto; Plano do projecto; Acordo de serviço; Estrutura analítica
do projeto (EAP)
Artefactos de Saída:
Estimativas de custo das atividades; Estimativa de esforço das atividades,
Cronograma e Plano do projecto actualizados
Tarefas:
Detalhar as actividades e recursos; Detalhar o cronograma; Detalhar a
estimativa de custo das actividades; Detalhar o orçamento do projecto
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 15
Modelos de Processos de Software
São representações abstractas de Processos de Software;
Representam um Processo de Software de uma perspectiva em
particular;
Fornecem apenas informação parcial do Processo de Software;
Também conhecidos como “Paradigmas de Processo”;
Apresentam uma perspectiva em termo de arquitectura mas não
apresentam os detalhes específicos das diferentes actividades;
Não descrevem definitivamente os Processos de Software,
todavia, são abstrações do processo que pode ser usado para
explicar as diferentes abordagens ao desenvolvimento de
software;
Podemos pensar neles como frameworks que podem ser
extendidas e adaptadas para criar processos de engenharia de
software mais específicos
Também conhecidos como ciclos de vida de Processos de
Software
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 16
Alguns Modelos de Processos de Software
O Modelo em Cascata
Toma as actividades base de processo: Especificação, Desenvolvimento,
Validação e Evolução e apresenta-os como fases separadas como
especificação de requisitos, design de software, implementação, teste e por
aí além
Desenvolvimento Evolucionário
Esta abordagem intercala as actividades de especificação, desenvolvimento
e validação. Um sistema inicial é rapidamente desenvolvido a partir de
especificações abstractas. É depois refinado por intermédio de inputs do
cliente para produzir um sistema melhor que responde às necessidades do
cliente
Engenharia de Software Baseada em Componentes
Esta abordagem é baseada na existência de de um número significativo de
componentes reutilizáveis. O processo de desenvolvimento do sistema foca-
se na interação destes componentes num sistema ao invés de desenvolve-lo
de raíz
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 17
Processo de Desenvolvimento

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 18


Processo de Desenvolvimento

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 19


Modelo em Cascata

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 20


Modelo em Cascata

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 21


Risco de Desenvolvimento

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 22


Modelo em Cascata Revisto

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 23


Modelo em V

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 24


Protótipos

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 25


Modelo de Prototipagem

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 26


Modelo de Prototipagem

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 27


Modelo Incremental

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 28


Modelo Linear

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 29


Características do Desenvolvimento de Software

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 30


Modelo Adaptativo

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 31


Desenvolvimento Cíclico

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 32


Desenvolvimento Cíclico

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 33


Desenvolvimento Cíclico

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 34


Desenvolvimento Evolucionário
Base:

● Desenvolver uma implementação inicial

● Expor resultado ao comentário do utilizador

● Melhoria por meio de muitas versões

Existem 2 tipos de desenvolvimento evolucionário:

● Desenvolvimento exploratório

● O objetivo é trabalhar com os clientes e evoluir um sistema final a partir de


uma especificação genérica inicial. O desenvolvimento se inicia com as
partes do sistema que estão compreendidas.

● Fazer protótipos descartáveis

● O objetivo é compreender os requisitos do sistema. O protótipo se


concentra em fazer experimentos com partes dos requisitos que estejam
mal compreendidas.

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 35


Desenvolvimento Evolucionário

Universidade Óscar Ribas Aires Silvestre – 28/03/2015 36


Desenvolvimento Evolucionário
Vantagens
● Mais eficaz que o modelo em cascata sobretudo quando se trata de corresponder
a necessidades imediatas do cliente
● Neste modelo, a especificação pode ir sendo definida de forma incremental

Desvantagens:
● Falta de visibilidade do processo
● Os sistemas frequentemente são mal estruturados
● Podem ser exigidas habilidades especiais (por exemplo, em linguagens para
desenvolvimento rápido)

Aplicabilidade:
● Para sistemas interativos pequenos ou de médio porte
● Para partes de sistemas grandes (por exemplo, a interface com o usuário)
● Para sistemas de vida curta
Universidade Óscar Ribas Aires Silvestre – 28/03/2015 37

Você também pode gostar