Você está na página 1de 5

Engenharia de Software – Uma abordagem profissional

Erick Bryhan Tavares Leal

Faculdade de Computação e Engenharia Elétrica – Universidade Federal do Sul e


Sudeste do Pará (UNIFESSPA)
Marabá – PA – Brasil

dhebryhan@yahoo.com.br
Abstract. This article aims to synthesize the first three chapters of the book
"Software Engineering - A Professional Approach" highlighting the most
relevant points, leading the reader to have an insight into the importance of
the processes addressed by software engineering and the need for
implementation of the agile manifesto in their software development teams.

Resumo. O este artigo tem por objetivo sintetizar os três primeiros capítulos
do livro “engenharia de software – uma abordagem profissional” destacando
os pontos mais relevantes, levando o leitor a ter uma visão sobre a
importância dos processos abordados pela engenharia de software e a
necessidade de implementação do manifesto ágil em suas equipes de
desenvolvimentos de software.

1. Resumo dos capítulos 1,2 e 3 do livro engenharia de software – Uma


abordagem Profissional.

2. Capítulo 01 – Software e engenharia de software


O autor começa o capítulo relatando a mudança que os softwares estão passando na
atualidade. Destacando que os software não estão mais nos dispositivos pessoais e sim
nos grandes servidores das empresas que os produzem. Isto facilitou a atualização dos
softwares, onde atualizando os sistemas apenas nos servidores todos os usuários terão as
modificações instantaneamente, porém essa agilidade trouxe um ponto crítico, pois caso
haja um erro todos os usuários serão afetados na mesma velocidade e intensidade. Com
isso há a necessidade de dobrar os cuidados com a engenharia de software para evitar
tais erros.
Há um questionamento sobre se os profissionais da área de tecnologia sabem
realmente o que é um software. O autor exemplifica as características de um software
para melhor entendimento do assunto. No desenvolvimento de software busca, assim
como nos outros modos de produção, alta qualidade por meio de um bom projeto.
O autor faz uma comparação entre o modo de produção do hardware e o
software. Sendo abordado que o hardware se desgasta devido aos fatores externo, tais
como: temperatura, vibração, impactos, entre outros. Já o software não está sujeito aos
mesmos fatores, porém estão suscetíveis as altas taxas de erros no início de sua
utilização, com isso o software não se desgasta mas se deteriora.
A evolucao do processo de padronização passou a ser utilizado na produção de
software para agilizar e reutilizar os componentes em vários programas diferentes. Os
campos de atuação de software são divididos em sete grandes categorias que exigem
muitos conhecimento dos engenheiros de software, esta são: Software de sistema – que
são programas feitos para atender outro programas; Software de aplicação – programas
que solucionam as necessidades especificas de um negocio; Software científico/de
engenharia – as aplicações vão da astronomia à vulcanologia, da análise de tensões na
indústria automotiva à dinâmica orbital de ônibus espaciais, e da biologia molecular à
fabricação automatizada; Software embutido — residente num produto ou sistema é
utilizado para implementar e controlar características e funções para o usuário final e
para o próprio sistema; Software para linha de produtos — projetado para prover
capacidade específica de utilização por muitos clientes diferentes; Aplicações para a
Web — chamadas de “WebApps”, essa categoria de software centralizada em redes
abarca uma vasta gama de aplicações; Software de inteligência artificial — faz uso de
algoritmos não numéricos para solucionar problemas complexos que não são passíveis
de computação ou de análise direta.
O capítulo também aborda os desafios futuros dos engenheiros de software ao
desenvolver sistemas que permitam dispositivos móveis, computadores pessoais e
sistemas corporativos se comuniquem através de extensas redes.
Há também os software que foram desenvolvidos a várias décadas que são
denominados de “software legado” que ainda são muito necessários, porém tais
softwares frequentemente passam por um processo de evolução, devido: necessidades
de adaptação; implementação de novos requisitos; necessidade de torná-los
interoperáveis com outros sistemas modernos; e necessidade de torná-lo viável dentro
de um ambiente de rede.
Com a evolução dos webapps surge algumas necessidades que devem ser
atendidas. O uso intensivo de redes fez surgir a necessidade de atender um grande
diversidade de clientes, do mesmo modo um grande número de usuários podendo ter
acesso aos webapps, assim não há como saber o número de usuários conectados
simultaneamente, necessidade de alto desempenho, apresentação de hipermídias,
qualidade e natureza estética do conteúdo e evolução contínua dos softwares, como
também imediatismo de colocar os sistemas no mercado; segurança é outro fator de
grande importância.
Alguns fatores devem ser observado para desenvolver um software: deve-se
fazer um esforço para compreender o problema antes de desenvolver uma solução de
software; com a complexidade dos novos sistemas é necessário uma maior atenção, o
que torna o projetar uma atividade extremamente necessária; com isso os software deve
apresentar uma uma qualidade mais elevada; conforme ha um aumento da demanda de
adaptação e modificação, é necessário que o software passe a ser possível a sua
manutenção.
O software independente de suas formas e seus campos de aplicação, deve
passar pelos processos de engenharia de software. Dentre as diversas definições de
engenharia de software o autor destaca uma que fala pouco de qualidade software,
satisfação de clientes e entrega do produto dentro do prazo.
A parte primordial da engenharia de software é a camada de processos, que tem
o objetivo de manter a tecnologia coesa e possibilita o desenvolvimento de forma
racional e dentro do prazo. Os métodos aplicados a engenharia de software possibilitam
comunicação, análise de requisitos, modelagem de processos, construção do programa,
teste e suporte.
A utilização de ferramentas fornecem suporte automatizado ou
semiautomatizados. Na engenharia de software um processo é adaptável que possibilita
às pessoas realizar o trabalho de selecionar e escolher o conjunto apropriado de ações e
tarefas. Sempre com a intenção de entregar o produto dentro do prazo e com qualidade.
Em uma metodologia de processo genérica abordaria cinco atividades:
comunicação – fazer levantamento das necessidades e características do software;
planejamento – ajuda a orientar a equipe a alcançar seu objetivo; modelagem – é um
esboço que permite ter uma ideia do todo; construção e emprego – o software e entregue
ao cliente.

Com a prática da engenharia de software adquire-se conhecimento para que possa


planejar a solução de algum problema. Onde o projeto elaborado vai servir como mapa
para se alcançar um objetivo final. Há sete princípios que norteiam a engenharia de
software: a razão de existir; KISS; mantenha a visão; o que um produz outros
consomem; esteja aberto para o futuro; planeje com antecedência, visando a reutilização
e pense.muitas das dificuldades enfrentadas no desenvolvimento de complexos.
Sistemas baseados em computador poderão ser amenizados se forem adotados estes
princípios.

3. Capítulo 02 – Modelos de processos


Uns importantes aspectos do processo de software é o fluxo de processo que descreve
como são organizadas as atividades metodológicas, bem como as acoes e tarefa que
ocorrem dentro de cada atividade. O autor destaca quatro fluxo de processo: fluxo de
processo linear – executa cada uma das cinco atividades metodológicas em sequência,
começando com a de comunicação e culminando com a do emprego; fluxo de processo
iterativo; fluxo de processo evolucionário executa as atividades de uma forma circular;
fluxo de processo paralelo – executa uma ou mais atividades em paralelo com outras
atividades.
Devido a simples existência de um processo de software não garantir que o
produto desenvolvido será entregue dentro do prazo e que estará de acordo com as
necessidades dos clientes surge a necessidade de avaliação e aperfeiçoamento dos
processos de software. O SCAMPI,CBA IPI,SPICE e ISO 9001:2000 para Software;
são alguns padrões de requisitos adotados para avaliação do processo de software.
Os modelos de processos prescritivos trouxeram grande contribuição para o
desenvolvimento de software, porém não foi capaz de solucionar o problema da
engenharia de software. A possível solução apontada pelo autor para resolver o
problema da engenharia de software seria os processos prescritivos.

Os modelos de processo especializados utilizam as características de um ou


vários modelos tradicionais de processos. Buscando aplicar engenharia de software de
forma especializada. O processo unificado é a tentativa de aproveitar os melhores
recursos e características dos modelos de processo de software tradicionais e
implementando do desenvolvimento ágil de software. Proporcionando um fluxo de
processo iterativo e incremental, proporcionando a sensação evolucionária que é
essencial no desenvolvimento de software moderno.
A necessidade de aplicação dos modelos de processos em equipes de
desenvolvimento faz com que haja a necessidade de ferramentas de tecnologia de
processos, para auxiliar a organização e análise de processos, assim como administrar a
qualidade técnica. Quando o processo for fraco o produto final tera consequências
graves. Porem não se pode colocar confiança demasiada no processo para que o produto
não tenha grandes falhas.

4. Capítulo 03 – Desenvolvimento gill


O movimento ágil surge para sanar fraquezas da engenharia de software convencional.
Oferecendo benefícios bastante relevantes e podendo ser implementado para todos as
áreas de desenvolvimento de software. Os modelos de processos mais tradicionais
apresentam grandes falhas ao não levar em consideração as fraquezas humanas. Para
que os modelos de processos funcionem deve fornecer um mecanismo real que estimule
a disciplina necessária para as pessoas realizarem os trabalhos de engenharia de
software.
O movimento ágil não e apenas resposta a mudanças, e sim um incentivo e
atitudes que facilitam a comunicação entre os integrantes da equipe. Os princípios da
agilidade busca criação de um espírito ágil pela equipe de desenvolvedores que é
mantido em cada um do modelos de processos apresentados. Um ponto primordial
defendido pelo ágil é o foco no talento e habilidades do indivíduos, onde o processo e
moldado de acordo com as pessoas e as equipes específicas.
A programação extrema é uma abordagem utilizada para desenvolvimento de
software ágil. XP restringem os desenvolvedores a programarem para necessidades
imediatas, clientes e desenvolvedores trabalham juntos para desenvolver suas histórias
pela equipe XP. Apesar do extreme programmming ser o mais utilizado, muitos outros
modelos de processos ágeis tem sido propostos, tais como: Desenvolvimento de
software adaptativo; Scrum; Método de desenvolvimento de sistemas dinâmicos;
Crystal.

Referencias
Pressman, R.S. (2011), Engenharia de Software – Uma abordagem Profissional, 7ª
edição.