Você está na página 1de 17

Profa. Jaqueline F.

Domenciano
Disciplina: Engenharia de Software I
 Processo de Software: O processo oferece estabilidade, controle e
organização para uma atividade que pode, se deixada sem controle, tornar-
se bastante caótica.

 A engenharia de software é uma tecnologia em camadas.


 Foco na qualidade: o processo contínuo de aperfeiçoamento leva ao
desenvolvimento de abordagens cada vez mais efetivas para a engenharia de
software (compromisso organizacional com a qualidade).
 Processo: alicerce da engenharia de software, define a base para a efetiva
utilização da tecnologia e para o controle gerencial de projetos de software.
 Métodos: oferecem técnicas de “como fazer” para construir softwares.
 Ferramentas: apoio automatizado para o processo e métodos.

Ferramentas

Métodos
Processo
Foco na Qualidade
 é praticamente impossível prever como um sistema irá evoluir.
 condições de mercado mudam rapidamente.
 as necessidades dos clientes evoluem.
 a concorrentes surgem sem alertar.

“Os engenheiros de software devem ser tão ágeis quanto o


ambiente em que as aplicações serão inseridas”.
 1ª - é difícil prever quais requisitos vão persistir e quais serão
mudados.
 2ª - em muitos casos as fases de projeto e codificação são
intercalados, um valida o outro.
 3ª - as atividades do processo de software (análise, projeto,
codificação e teste) não são tão previsíveis, portanto, deve-se aceitar
as mudanças.
 4ª - a acelerada mudança tecnológica “atropela” os métodos
clássicos.
 5ª - clientes não conseguem definir os requisitos de forma clara no
início do projeto.

Palavra de ordem: Imprevisibilidade!!!!


(só um processo adaptável poderá ser eficiente).
 Kent Beck e outros 16 desenvolvedores e consultores criaram a
Aliança Ágil (2001).
 Aliança Ágil: organização sem fins lucrativos, para promover
conhecimento e discussões e auxiliar indivíduos e organizações que
utilizam os Métodos Ágeis), publicaram o Manifesto Ágil (2001).
 Informações complementares em: www.agilealliance.org

Kent Beck
 Definição: Manifesto é um gênero textual que consiste numa
espécie de declaração formal, persuasiva e pública para a
transmissão de opiniões, decisões, intenções e ideias.

 Manifesto: movimento político emergente, um ataque a velha


guarda, no caso aos tradicionais processos de software, que não
acompanharam a evolução do mercado de software.

Surgiu como uma reação aos métodos clássicos de


desenvolvimento.

 Metodologias de alta disciplina (tradicionais) são frágeis:


◦ Disciplinas muito rígidas não acomodam diferentes níveis de
habilidade e criatividade das pessoas.
◦ Práticas tolerantes são mais fáceis de serem adotadas e
sustentadas.
1. Nossa maior prioridade é satisfazer o cliente, através da
entrega contínua e adiantada de software de valor.
2. Mudanças nos requisitos são bem-vindas,
mesmo tardiamente no desenvolvimento. Processos ágeis se
adequam a mudanças, para que o cliente possa tirar
vantagens competitivas.
3. Entregar software funcionando frequentemente, na escala de
semanas e até poucos meses, com preferência à menor escala
de tempo.
4. Pessoas de negócio e desenvolvedores devem trabalhar
diariamente em conjunto por todo o projeto.
5. Construir projetos em torno de indivíduos motivados. Dando a
eles o ambiente e o suporte necessário, e confiando neles para
fazer o trabalho.
6. O método mais eficiente e eficaz de transmitir informações
para e entre uma equipe de desenvolvimento é através de
conversa face a face.
7. Software funcionando é a medida primária de progresso.
8. Os processos ágeis promovem desenvolvimento
sustentável. Os patrocinadores, desenvolvedores e usuários
devem ser capazes de manter um ritmo constante
indefinidamente.
9. Contínua atenção a excelência técnica e bom design
aumenta a agilidade.
10. Simplicidade, diminuir a quantidade de trabalho a ser feito,
evitando trabalhos desnecessários.
11. As melhores arquiteturas, requisitos e designs emergem de
times auto organizáveis - autonomia.
12. Em intervalos regulares, a equipe reflete sobre como se
tornar mais eficaz e então refina e ajusta seu
comportamento de acordo.
 Em 2009, começaram os eventos no Brasil, em 2010
aconteceu a primeira Agile Brazil 2010 (Conferência
Brasileira de Métodos Ágeis de Desenvolvimento de Software)
realizada em Porto Alegre.
 Maiores informações:
https://www.agilealliance.org/agilealliancebrazil/
Valoriza-se o trabalho em equipe
e a comunicação eficaz entre os
membros do projeto. Embora
processos e ferramentas sejam
importantes, o foco está nas
pessoas.
O principal indicador de
progresso é o software que
funciona. Isso não significa que a
documentação seja dispensável,
mas o software funcional é a
prioridade.
A colaboração ativa com o cliente
é fundamental. Os requisitos
podem mudar ao longo do
projeto, e a capacidade de
responder a essas mudanças é
crucial.
A capacidade de se adaptar a
mudanças é mais importante do
que seguir um plano rígido. Os
planos podem precisar ser
ajustados à medida que novas
informações e necessidades
surgem.
 Reconhecem a importância dos itens a direita, mas valorizam mais
os itens da esquerda.

“Não eliminam as boas práticas de engenharia de software,


mas as adaptam”.
 Feature Driven Development (FDD)
 eXtreme Programming (XP)
 Test Driven Development (TDD)
 Microsoft Solutions Framework (MSF)
 Dynamic System Development Model (DSDM)
 Adaptative Software Development (ASD)
 Lean Software Development (LSD)
 Família Crystal
 Scrum...
 Com base nos exemplos apresentados, apresente
um seminário que aborde os princípios e práticas
do método definido, destacando como ele se
diferencia de outras metodologias ágeis.
 Apresente sua aplicação em projetos de
desenvolvimento de software e forneça exemplos
reais de casos de sucesso.
 Analise os benefícios e desafios associados ao
seu e identifiquem situações em que esse método
pode ser mais apropriado.
 Apresentação na próxima quinta-feira!

Você também pode gostar