Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Definio
Friedrich Ludwig Bauer foi o primeiro a defini-la como sendo: "Engenharia de Software a
criao e a utilizao de slidos princpios de engenharia a fim de obter software de maneira
econmica, que seja confivel e que trabalhe eficientemente em mquinas reais". O prprio
significado de engenharia j traz os conceitos de criao, construo, anlise, desenvolvimento e
manuteno.
O termo foi criado na dcada de 1960 e utilizado oficialmente em 1968 na NATO Conference on
Software Engineering (Conferncia sobre Engenharia de Software da OTAN). Sua criao surgiu
numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais
sistemtico e controlado) ao desenvolvimento de sistemas de software complexos. Um sistema
de software complexo se caracteriza por um conjunto de componentes abstratos de software
(estruturas de dados e algoritmos) encapsulados na forma de procedimentos, funes, mdulos,
objetos ou agentes e interconectados entre si, compondo a arquitetura do software, que devero
ser executados em sistemas computacionais.
reas de Conhecimento
Segundo o SWEBOK (Corpo de Conhecimento da Engenharia de Software), verso 2004, as
reas de conhecimento da Engenharia de Software so:
Processo de Software
Processos de Engenharia de Software
Devido ao uso da palavra projeto em muitos contextos, por questes de clareza, h vezes em que
se prefira usar o original em ingls design.
Modelos de Maturidade
O CMMi pode ser organizado atravs de duas formas, contnua e estagiada. Pelo modelo
estagiado, mais tradicional e mantendo compatibilidade com o CMM, uma organizao pode ter
sua maturidade medida em 5 nveis:
Nvel 1 - Catico;
Nvel 2 - Capacidade de repetir sucessos anteriores pelo acompanhamento de custos,
cronogramas e funcionalidades;
Nvel 3 - O processo de software bem definido, documentado e padronizado;
Nvel 4 - Realiza uma gerncia quantitativa do processo de software e do produto;
Nvel 5 - Usa a informao quantitativa para melhorar continuamente e gerenciar o
processo de software.
Assim teramos, por exemplo, a Metodologia Estruturada, na qual existem vrios mtodos, como
Anlise Estruturada e Projeto Estruturado (muitas vezes denominados SA/SD, e Anlise
Essencial). Tanto a Anlise Estruturada quanto a Anlise Essencial utilizam a ferramenta
Diagrama de Fluxos de Dados para modelar o funcionamento do sistema.
Metodologia Estruturada
o Anlise Estruturada
o Projeto Estruturado
o Programao Estruturada
o Anlise Essencial
o SADT
o DFD - Diagrama de Fluxo de Dados
o MER - Modelo de Entidades e Relacionamentos
Metodologia Orientada a Objetos
o Orientao a Objetos
o Rational Unified Process ( RUP )
Desenvolvimento gil de software
o Feature Driven Development ( FDD )
o Enterprise Unified Process (EUP)
o Scrum (Scrum)
o Crystal (Crystal Clear, Crystal Orange, Crystal Orange Web)
o Programao extrema ( XP )
Outras Metodologias
o Microsoft Solution Framework ( MSF )
Modelagem
A maior dificuldade nesta atividade est no equilbrio (tradeoff) entre simplicidade (favorecendo
a comunicao) e a complexidade (favorecendo a preciso) do modelo.
Programao estruturada
Programao funcional
Programao orientada a objetos
Componentes de Software
Programao orientada a aspecto
Ferramentas
Outro ponto importante o uso de ferramentas CASE (do ingls Computer-Aided Software
Engineering). Essa classificao abrange toda ferramenta baseada em computadores que
auxiliam atividades de engenharia de software, desde a anlise de requisitos e modelagem at
programao e testes.
Editor
Compilador
Debug
Gerao de cdigo
Modelagem
Deploy
Testes no automatizados
Testes automatizados
Refatorao (Refatoring)
Gesto de Riscos nos projectos de Software
Uso da Prototipagem na Eng. de Requisitos
Gerncia de Projetos
A gerncia de projetos se preocupa em entregar o sistema de software no prazo e de acordo com
os requisitos estabelecidos, levando em conta sempre as limitaes de oramento e tempo.
A gerncia de projetos de software se caracteriza por tratar sobre um produto intangvel, muito
flexvel e com processo de desenvolvimento com baixa padronizao.
Planejamento
Alm da prpria identificao dos riscos, h que ter em conta a sua gesto. Seja evitando, seja
resolvendo, os riscos necessitam ser identificados (estimando o seu impacto) e devem ser criados
planos para resoluo de problemas.
Anlise de Requisitos
funcional
no funcional
de usurio
de sistema
comum que o cliente no saiba o que ele realmente deseja, que haja problemas na
comunicao e ainda que haja mudana constante de requisitos. Todos esses fatores so
recrudescidos pela intangibilidade sobre caractersticas de sistemas de software, principalmente
sobre o custo de cada requisito.
O primeiro processo a ser realizado num Sistema novo o Estudo de Viabilidade. Os resultados
deste processo devem ser um relatrio com as recomendaes da viabilidade tcnica ou no da
continuidade no desenvolvimento do Sistema proposto. Basicamente um estudo de viabilidade,
embora seja normalmente rpido, dever abordar fundamentalmente as seguintes questes:
O Sistema proposto contribui para os objetivos gerais da organizao? O Sistema poder ser
implementado com as tecnologias dominadas pela equipe dentro das restries de custo e de
prazo? Ou precisa de treinamentos adicionais? O Sistema pode ser integrado, e compatvel com
os outros sistemas j em operao?
Gesto
Pessoal
Produto
Processo
Projeto
Material
Histrico
A Engenharia de Software (ES) surgiu em meados dos anos 1970 numa tentativa de contornar a
crise do software e dar um tratamento de engenharia (mais sistemtico e controlado) ao
desenvolvimento de sistemas de software complexos. Um sistema de software complexo se
caracteriza por um conjunto de componentes abstratos de software (estruturas de dados e
algoritmos) encapsulados na forma de procedimentos, funes, mdulos, objetos ou agentes
interconectados entre si, compondo a arquitetura do software, que devero ser executados em
sistemas computacionais.
ES no Presente e Tendncias
Atualmente existe um destaque todo especial para a Engenharia de Software na Web. Tambm
utilizado por Presmann a sigla WebE, o processo usado para criar WebApps (aplicaes
baseadas na Web) de alta qualidade. Embora os princpios bsicos da WebE sejam muito
prximos da Engenharia de Software clssica, existem peculiaridades especficas e prprias.
Com o advento do B2B (e-business) e do B2C (e-commerce), e ainda mais com aplicaes para a
Web 2.0, maior importncia ficou sendo esse tipo de engenharia. Normalmente adotam no
desenvolvimento a arquitetura MVC (Model-View-Controller).
Referncias
1. Veja mais detalhes em Metodologia (engenharia de software)
2. HARMAN, M., JONES, B.F., Search-based software engineering, Information and Software
Technology, 2001, pp. 833-839.
3. FREITAS, F.G., MAIA, C.L.B., COUTINHO, D.P., CAMPOS, G.A.L., SOUZA, J.T.,
Aplicao de Metaheursticas em Problemas da Engenharia de Software: Reviso de Literatura, II
Congresso Tecnolgico Infobrasil, 2009,
Bibliografia
MAGELA, Rogerio. Engenharia de Software Aplicada: Princpios (volume 1). Alta
Books. 2006.
MAGELA, Rogerio. Engenharia de Software Aplicada: Fundamentos (volume 2). Alta
Books. 2006.
MOLINARI, Leonardo. Gerncia de Configurao - Tcnicas e Prticas no
Desenvolvimento do Software. Florianpolis: Visual Books, 2007. 85-7502-210-5
PRESSMAN, Roger. Software Engineering: A Practitioner's Approach, 6edio, Mc
Graw Hill, 2005.
ANLISE ECONMICA DE SISTEMAS DE INFORMAES. (ISBN 978-85-909374-7-
0) Editora Ixtlan. Autor : Sergio Kaminski. Comentrio: Mostra todas as etapas de
desenvolvimento do software, relacionando ao lucro,receita e custo.