Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstract. The software engineering was born with the proposal to organize the
software’s development area, that until 1990, was met in an immature period,
without practical boarding for the resolution of problems commonly found
inside the companies that develops software: blown up stated periods,
expensive costs with the maintenance of software, low quality and unsatisfied
users. This article presents the software´s engineering to the reader,
approaching its knowledge´s areas, and illustrating a possible solution for the
pointed problems.
1. Introdução
Atualmente, as empresas produtoras de software têm perseguido um objetivo em
comum: produzir software com alto nível de qualidade. Segundo Cortês e Chiossi
[COR01], “a preocupação com a qualidade deixou de ser um diferencial competitivo e
passou a ser um pré-requisito básico para participação ativa no mercado”. É exatamente
neste contexto, que a engenharia de software tem ganhado espaço dentro das
organizações, contribuindo com métodos, ferramentas e metodologias avançadas para a
obtenção de tal nível de qualidade. O IEEE Computer Society [SWE04] define a
engenharia de software como: “A aplicação de uma metodologia sistemática,
disciplinada e quantificável para o desenvolvimento, a operação e a manutenção do
software”.
Este artigo tem como principal objetivo apresentar ao leitor os fundamentos da
engenharia de software, descrevendo suas áreas de conhecimento, para que ao final, o
leitor consiga assimilar a necessidade de utilizar o conjunto de práticas engenharia de
software em seus projetos de software.
2. Áreas de conhecimento da engenharia de software
O IEEE Computer Society, através do guia do conjunto de conhecimentos da engenharia
de software [SWE04], define que a engenharia de software possui dez áreas de
conhecimento e seis disciplinas relacionadas, conforme ilustrado nas figuras abaixo:
Para Fowler & Scott, não existe um único processo para o desenvolvimento de
software. Vários fatores associados com o desenvolvimento de software levam a vários
tipos de processos. As equipes devem criar seus próprios processos, utilizando
processos publicados como orientação e não como padrões a serem seguidos (Fowler &
Scott, 2000 p.30).
Portanto, o não existe um processo ou ciclo de vida que possa ser eleito como o
melhor. Existe o modelo de ciclo de vida que melhor se adequará ao desenvolvimento
de determinado software, levando em consideração as características do projeto, como
equipes disponíveis, ferramentas a serem utilizadas, aplicação de padrões existentes,
infra-estrutura e etc.
3. Conclusão
Os softwares e sistemas computacionais afetam profundamente o desenvolvimento
econômico das nações. A aplicação dos conceitos de engenharia às atividades de
desenvolvimento de software é o alicerce para projetos de sistemas complexos, a custos
viáveis e previsíveis.
Dessa forma, a especialização de profissionais nessa área tornou-se necessária
para se alcançar o nível de excelência exigido. Nesse contexto, a elaboração de um
estudo onde o conhecimento da engenharia de software foi compilado (SWEBOK 2004)
por uma comunidade científica reconhecida mundialmente (IEEE Computer Society)
exerce um papel fundamental para a organização. Este conhecimento da engenharia de
software deve ser aplicado através de suas metodologias, práticas e processos existentes.
Este trabalho procurou apresentar uma visão geral sobre a engenharia de
software e suas dez áreas de conhecimento, bem como relacioná-las com obras atuais de
especialistas da área. Dessa forma, este artigo serve como ponto de partida para a
compreensão inicial dos problemas ligados ao desenvolvimento de software, e das
medidas necessárias para torná-lo uma atividade menos imprevisível e mais gerenciável.
Referências
[SWE04] The Institute of Electrical and Electronics Engineers (2004). Guide to the
Software Engineering Body of Knowledge. Los Alamitos, Califórnia.
[PRE06] Pressman, Roger S. (2006). Engenharia de Software. McGraw-Hill. 6ª Edição.
[SOM03] Sommerville, Ian (2003). Engenharia de Software. Addison Wesley. 6ª
Edição.
[PET01] Peters, F. James; Pedrycz, Witold (2001). Engenharia de Software, Teoria e
prática. 3ª Triagem. Editora Campus.
[ADA02] Adam, Rosangela Aguiar, (2002). Abordando o problema de análise de
requisitos não funcionais em engenharia de software. Florianópolis, Universidade
Federal de Santa Catarina.
[COS05] Reis, Adalberto Faria; Costa, Ivanir da, (2005). Proposta de integração da
Engenharia de Software nas estratégias empresarias. Revista Produção v.15, n. 3, p.
448-455. Universidade Paulista.
[COR01] Cortês, M. L.; Chiossi, T. C. S (2001). Modelos de qualidade de software.
Unicamp, Campinas.
[IEEE610.12-90] IEEE Standard Glossary of Software Engineering Terminology, 1990.
[PMB04] Project Management Institute (2004). Um Guia do Conjunto de
Conhecimentos em Gerenciamento de Projetos. 3ª Edição.
[MCC04] McConnell, S. (2004). Code Complete: A Practical Handbook of Software
Construction, Microsoft Press, second edition.
[KER99] Kerninghan, B. W., Pike, R. (1999), The Practice of Programming, Addison-
Wesley.
[DIA06] Dias, A. P., Dalcin, S. B., D’Ornellas, M. C. (2006), Aplicando Testes em XP
com o Framework JUnit, em InfoComp – Journal of Computer Science, Vol.5 N.2.
[MYE04] Myers, G. J. (2004), The Art of Software Testing, John Wiley & Sons, second
edition.
[GUS02] Gustafson, D. A. (2002), Theory and Problems of Software Engineering,
McGraw-Hill Companies.
[PRE01] Pressman, R. S. (2001), Software Engineering – A Practitioner’s Approach,
McGraw-Hill Companies, fifth edition.
[LEH96] Lehman, M. M. (1996), Laws of Software Evolution Revisited, European
Workshop on Software Process Technology.
[NAD02] Naddeo, C. Paulo (2002). Uma taxonomia da pesquisa na área de engenharia
de requisitos. São Paulo, Universidade de São Paulo.