Vous êtes sur la page 1sur 8

Engenharia de Software

1. Definio

Segundo Fritz Bauer, "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.

A engenharia de software se concentra nos aspectos prticos da produo de um sistema de software, enquanto a cincia da computao estuda os fundamentos tericos dos aspectos computacionais.

A Engenharia de Software surgiu em meados dos anos 70 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.

Os fundamentos cientficos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantido suas qualidades. Alm disto, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento. Empresas desenvolvedoras de software passaram a empregar os conceitos de Engenharia de Software sobretudo para orientar suas reas de desenvolvimento, muitas delas organizadas sob a forma de Fbrica de Software.

A engenharia de sistemas uma rea mais ampla por tratar de todos os aspectos de sistemas baseados em computadores, incluindo hardware e engenharia de processos alm do software.

2. Processo de Software

http://www.concursospublicosonline.com - Concursos Publicos Online

Provido por Mambo

Gerado em:12 July, 2011, 19:03

Processo de software uma sequencia coerente de prticas que objetiva o desenvolvimento ou evoluo de sistemas de software. Estas prticas englobam as atividades de especificao, projeto, implementao e testes e caracterizam-se pela interao de ferramentas, pessoas e mtodos.

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.

2.1 Modelos

* Sequencial ou Cascata (do ingls waterfall) - com fases distintas de especificao, projeto e desenvolvimento.

* Evolucional - especificao, projeto e desenvolvimento so entrelaados.

* V-Model Parecido com o modelo cascata, mas com uma organizao melhor, que permite que se compare com outros modelos mais modernos.

* Espiral evoluo atravs de vrios ciclos completos de especificao, projeto e desenvolvimento.

* Componentizado - reuso atravs de montagem de componentes j existentes.

* Formal implementao a partir de modelo matemtico formal.

* gil

http://www.concursospublicosonline.com - Concursos Publicos Online

Provido por Mambo

Gerado em:12 July, 2011, 19:03

* RAD

* Quarta gerao

2.2 Metodologias

* Rational Unified Process ( RUP )

* Programao extrema ( XP )

* Microsoft Solution Framework ( MSF )

* Feature Driven Development ( FDD )

2.3 Modelos de Maturidade

Os modelos de maturidade surgiram para avaliar a qualidade dos processos de software aplicados em uma organizao (empresa ou instituio). O mais conhecido o Capability Maturity Model Integration (CMMi), do Software Engineering Institute - SEI.

Atravs do CMMi, 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
http://www.concursospublicosonline.com - Concursos Publicos Online Provido por Mambo Gerado em:12 July, 2011, 19:03

* 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

CMMi um novo modelo de maturidade surgido recentemente com o fim de agrupar as diferentes usabilidades que o CMM estava sendo utilizado. No Brasil temos 3 empresas que contam com a certificao CMMi-5: Accenture Technology Solutions(ATS), IBM, TCS - Tata Consulting and Services.

3. 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 caracterizam por tratar sobre um produto intangvel, muito flexvel e com processo de desenvolvimento com baixa padronizao.

3.1 Planejamento

O planejamento de um projeto de desenvolvimento de software inclui:

* organizao do projeto (incluindo equipes e responsabilidades)

http://www.concursospublicosonline.com - Concursos Publicos Online

Provido por Mambo

Gerado em:12 July, 2011, 19:03

* estruturao das tarefas (do ingls work breakdown structure)

* cronograma do projeto (do ingls project schedule)

* anlise de risco

Essas atividades sofrem com dificuldades tpicas de desenvolvimento de software. A produtividade no linear em relao ao tamanho da equipe e o aumento de produtividade no imediato devido custos de aprendizado de novos membros. A diminuio de qualidade para acelerar o desenvolvimento constantemente prejudica futuramente a produtividade.

A estimativa de dificuldades e custos de desenvolvimentos so muito difceis, alm do surgimento de problemas tcnicos. Esses fatores requerem uma anlise de riscos cuidadosa.

3.2 Anlise

As atividades de anlise concentram-se na identificao, especificao e descrio dos requisitos do sistema de software. Em resumo, requisito uma necessidade que o software deve cumprir.

H vrias interpretaes e classificaes sobre requisitos, entre elas:

* funcional ou no funcional

* de usurio ou de sistema

comum que o cliente no saiba o que ele realmente


http://www.concursospublicosonline.com - Concursos Publicos Online Provido por Mambo Gerado em:12 July, 2011, 19:03

deseja, que haja problemas na comunicao e ainda que haja mudana constante de requisitos. Todos esses fatores so recrudescidos pela intangibilidade sobre caractersticos de sistemas de software, principalmente sobre o custo de cada requisito.

3.3 Modelagem

A abstrao do sistema de software atravs de modelos que o descrevem um poderoso instrumento para o entendimento e comunicao do produto final que ser desenvolvido.

A maior dificuldade nesta atividade est no equilbrio (tradeoff) entre simplicidade (favorecendo a comunicao) e a complexidade (favorecendo a preciso) do modelo. comum a utilizao de linguagens para modelagem como UML.

3.4 Gesto

* Pessoal

* Produto

* Processo

* Projeto

4. Tecnologias e Prticas

A engenharia de software aborda uma srie de prticas e tecnologias, principalmente estudadas pela cincia da computao, enfocando seu impacto na produtividade e qualidade de software.

Destacam-se o estudo de linguagem de programao, banco de dados e paradigmas de programao, como:

http://www.concursospublicosonline.com - Concursos Publicos Online

Provido por Mambo

Gerado em:12 July, 2011, 19:03

* Programao estruturada

* Programao funcional

* Programao orientada a objetos

* Componentes de Software

* Programao orientada a aspecto

4.1 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 de anlise de requisitos e modelagem at programao e testes.

Os ambientes de desenvolvimento integrado (IDEs) tm maior destaque e suportam:

* Editor

* Compilador

* Debug

* Gerao de cdigo
http://www.concursospublicosonline.com - Concursos Publicos Online Provido por Mambo Gerado em:12 July, 2011, 19:03

* Modelagem

* Deploy

* Testes automatizados

* Refatorao

http://www.concursospublicosonline.com - Concursos Publicos Online

Provido por Mambo

Gerado em:12 July, 2011, 19:03

Vous aimerez peut-être aussi