7
ENGENHARIA DE SOFTWARE Cristiano Gley Carvalho Moreira [email protected] Engenharia de Software Prof. Francisco William RESUMO Neste artigo são apresentados os conceitos básicos da Engenharia de Software, definindo os pontos básicos para o seu entendimento. Com uma definição precisa sobre o conceito de Engenharia de Software. Quanto maior o conhecimento sobre as metodologias de elaboração e acompanhamento de um sistema, melhor será a análise a fim de encontrar uma que seja a mais apropriada para o ambiente do projeto que se deseja desenvolver. A Engenharia de Software, por sua vez, engloba características e estratégias simples que tem atendido de forma satisfatória muitas organizações, na atualidade. Palavras Chaves: Organizações, Engenharia de Software, conhecimento, sistema. INTRODUÇÃO Atualmente toda atividade envolvendo desenvolvimento de software vem em uma crescente importância. Muitos programas utilizados nas mais diversas áreas dos mais diversos conhecimentos humano tem gerado uma crescente demanda por soluções na informatização.

Artigo - Engenharia de Software

Embed Size (px)

DESCRIPTION

Artigo sobre Engenharia de Software (Definições, Qualidade, Métodos,...).

Citation preview

  • ENGENHARIA DE SOFTWARE

    Cristiano Gley Carvalho Moreira

    [email protected]

    Engenharia de Software

    Prof. Francisco William

    RESUMO

    Neste artigo so apresentados os conceitos bsicos da Engenharia de Software, definindo os

    pontos bsicos para o seu entendimento. Com uma definio precisa sobre o conceito de Engenharia

    de Software.

    Quanto maior o conhecimento sobre as metodologias de elaborao e acompanhamento de

    um sistema, melhor ser a anlise a fim de encontrar uma que seja a mais apropriada para o

    ambiente do projeto que se deseja desenvolver. A Engenharia de Software, por sua vez, engloba

    caractersticas e estratgias simples que tem atendido de forma satisfatria muitas organizaes, na

    atualidade.

    Palavras Chaves: Organizaes, Engenharia de Software, conhecimento, sistema.

    INTRODUO

    Atualmente toda atividade envolvendo desenvolvimento de software vem em uma crescente

    importncia. Muitos programas utilizados nas mais diversas reas dos mais diversos conhecimentos

    humano tem gerado uma crescente demanda por solues na informatizao.

  • Visando a melhoria e qualidade dos produtos de software aumentando a produtividade no

    processo de desenvolvimento, surgiu a Engenharia de Software. A Engenharia de Software envolve

    em seu processo os mtodos, tcnicas, ferramentas e ambientes de suporte de desenvolvimento de

    software.

    O software agora ultrapassou o hardware como a chave para o sucesso de muitos sistemas

    baseados em computador. Seja o computador usado para dirigir um negcio, controlar um produto

    ou capacitar um sistema, o software um fator que diferencia. O interesse pelas informaes

    oferecidas pelo software (e bancos de dados relacionados) diferencia uma empresa de seus

    concorrentes. O projeto e a capacidade de ser "amigvel ao ser humano" de um produto de software

    diferenciam-no dos produtos concorrentes que tenham funo idntica em outros aspectos. A

    inteligncia e a funo oferecidas pelo software muitas vezes diferenciam dos produtos de consumo

    ou indstrias idnticas. o software que pode fazer a diferena.

    ENGENHARIA DE SOFTWARE DEFINIO

    A engenharia de software uma derivao da engenharia de sistemas e de hardware. Ela

    abrange um conjunto de trs elementos fundamentais - mtodos, ferramentas e procedimentos - que

    possibilita ao gerente o controle do processo de desenvolvimento do software e oferece ao

    profissional uma base para a construo de software de alta qualidade produtivamente.

    Atualmente, essas tecnologias e prticas englobam linguagens de programao, banco de

    dados, ferramentas, plataformas, bibliotecas, padres, processos e a questo da Qualidade de

    Software.

    Os mtodos de engenharia de software proporcionam os detalhes de "como fazer" para

    construir o software. Os mtodos envolvem um amplo conjunto de tarefas que incluem:

    planejamento de projeto, anlise de requisitos de software e de sistemas, projeto da estrutura de

    dados, arquitetura de programa e algoritmo de processamento, codificao, teste e manuteno.

    MTODOS ENGENHARIA DE SOFTWARE

    Um mtodo a maneira de como chegar a uma atividade requerida por um modelo de ciclo

    de vida, visando otimizar a execuo das atividades que foram especificadas.

    Mtodo baseado na Decomposio de Funes: Os tipos de modelos que representam as

    funes so: DFD (Diagrama de Fluxo de Dados) se caracteriza pela decomposio

    hierrquica de processos. MHT (Modelo Hierrquico de Tarefas) se baseia na

    decomposio hierrquica de tarefas.

  • Mtodo baseado na Estrutura de Dados: Abordagem baseada na decomposio de um

    problema a partir dos dados. Exemplos de tipos de modelos dessa classe: MER

    (Modelagem Entidade-Relacionamento).

    Mtodo de Anlise baseado na Orientao a Objeto. Os tipos de modelos que

    representam essa classe so: UML (Unified Process) notao de modelagem,

    independente de processos de desenvolvimento. Cenrios

    A ORGANIZAO EM UM DESENVOLVIMENTO DE SOFTWARE

    PEQUENO CENTRO DE DESENVOLVIMENTO

    A evoluo do hardware e software mudou significativamente o processo de

    desenvolvimento e a estrutura das organizaes. Com a chegada e barateamento dos PCs, muitas

    empresas de pequeno e mdio porte puderam adquirir computadores e contratar pequenas equipes

    para automatizar seus processos. Assim, as funes realizadas de formas distintas e comearam a

    ser fundidas no ambiente de desenvolvimento e produo. Figuras importantes (e que

    posteriormente passaram at mesmo a incorporar carreiras organizacionais) surgiram como o

    programalista (programador + analista) e o anador (analista + programador).

    Sistemas como folha de pagamento, contas a pagar, contabilidade, controle de estoque, entre

    outros, invadiram as pequenas e mdias empresas. A funo supervalorizada de quem produzia

    software tornou-se algo to comum como um escriturrio ou um contador.

    Todavia, qual foi o problema destes pequenos centros de desenvolvimento? Em primeiro

    lugar tinha-se um cliente (usurio) alheio s dificuldades do desenvolvimento de software, que

    acreditava que qualquer programador resolveria a automao de sua empresa. E em segundo lugar,

    um grupo de desenvolvimento imaturo metodologicamente e, em sua maioria, descompromissado

    com o futuro do produto que confeccionavam. Esses dois pontos trouxeram diversos problemas para

    a informtica. Muitas empresas, em pouco tempo, se viram merc de um software inopervel ou

    de difcil/impossvel manuteno. Poucos empresrios passaram a confiar em quem produzia

    software para solucionar os problemas ou melhorar a produtividade de seu negcio. Criou-se uma

    lacuna entre quem precisava do software e quem o produzia.

  • QUALIDADE DE SOFTWARE

    Na viso de um usurio um produto de software boa qualidade se ele satisfizer suas

    necessidades, sendo fcil de usar, eficiente e confivel. Isto uma viso de observao externa do

    produto. Mas para um desenvolvedor, um produto de boa qualidade tem de ser fcil de manter,

    sendo uma observao interna. Para um cliente o produto de software

    J para um cliente, o produto de software deve agregar valor a seu negcio (qualidade em

    uso). Em ltima instncia, podemos perceber que a qualidade um conceito com mltiplas facetas

    (perspectivas de usurio, desenvolvedor e cliente) e que envolve diferentes caractersticas (por

    exemplo, usabilidade, confiabilidade, eficincia, manuteno, portabilidade, segurana,

    produtividade) que devem ser alcanadas em nveis diferentes, dependendo do propsito do

    software. Por exemplo, um sistema de trfego areo tem de ser muito mais eficiente e confivel do

    que um editor de textos. Por outro lado, um software educacional a ser usado por crianas deve

    primar muito mais pela usabilidade do que um sistema de venda de passagens areas a ser operado

    por agentes de turismo especializados.

    O que h de comum nas vrias perspectivas discutidas acima que todas elas esto focadas

    no produto de software. Ou seja, estamos falando de qualidade do produto. Para isto, o produto final

    deve ser avaliado para que no apresente uma abordagem indesejvel para o pessoal de

    desenvolvimento de software, tendo em vista que a constatao do que foi feito anteriormente de

    que o software no apresenta a qualidade desejada pode implicar na necessidade de refazer grande

    parte do trabalho. necessrio, pois, que a qualidade seja incorporada ao produto ao longo de seu

    processo de desenvolvimento. De fato, a qualidade dos produtos de software depende fortemente da

    qualidade dos processos usados para desenvolv-los e mant-los.

    Seguindo uma tendncia de outros setores, a qualidade do processo de software tem sido

    apontada como fundamental para a obteno da qualidade do produto. Abordagens de qualidade de

    processo, tal como a srie de padres ISO 9000, sugerem que melhorando a qualidade do processo

    de software, possvel melhorar a qualidade dos produtos resultantes.

    A premissa por detrs dessa afirmativa a de que processos bem estabelecidos, que

    incorporam mecanismos sistemticos para acompanhar o desenvolvimento e avaliar a qualidade, no

    geral, conduzem a produtos de qualidade.

  • Um processo de software, em uma abordagem de Engenharia de Software, envolve diversas

    atividades que podem ser classificadas quanto ao seu propsito em:

    Atividades de Desenvolvimento (ou Tcnicas ou de Construo): so as atividades

    diretamente relacionadas ao processo de desenvolvimento do software, ou seja, que

    contribuem diretamente para o desenvolvimento do produto de software a ser entregue ao

    cliente. So exemplos de atividades de desenvolvimento: especificao e anlise de

    requisitos, projeto e implementao.

    Atividades de Gerncia: so aquelas relacionadas ao planejamento e acompanhamento

    gerencial do projeto, tais como realizao de estimativas, elaborao de cronogramas,

    anlise dos riscos do projeto etc.

    Atividades de Garantia da Qualidade: so aquelas relacionadas com a garantia da qualidade

    do produto em desenvolvimento e do processo de software utilizado, tais como revises e

    inspees de produtos (intermedirios ou finais) do desenvolvimento.

    As atividades de desenvolvimento formam a espinha dorsal do desenvolvimento e, de maneira

    geral, so realizadas segundo uma ordem estabelecida no planejamento. As atividades de gerncia e

    de controle da qualidade so, muitas vezes, ditas atividades de apoio, pois no esto ligadas

    diretamente construo do produto final: o software a ser entregue para o cliente, incluindo toda a

    documentao necessria. Essas atividades, normalmente, so realizadas ao longo de todo o ciclo de

    vida, sempre que necessrio ou em pontos pr-estabelecidos durante o planejamento, ou pontos de

    controle.

    MODELOS DE CICLO DE VIDA DO PROCESSO DE SOFTWARE

    MODELO CASCATA

    O modelo de ciclo de vida mais antigo e tambm um dos mais usados o chamado modelo

    cascata (ou clssico). Foi derivado de modelos existentes em outras engenharias e considera que o

    processo de desenvolvimento de software composto por vrias etapas que so executadas de

    forma sistemtica e sequencial.

    Durante a etapa de Definio de Requisitos os servios, as metas e as restries impostas ao

    sistema so identificados junto aos usurios do software. Nessa etapa, os requisitos identificados

    tambm so analisados de modo a remover inconsistncias.

  • MODELO DE PROTOTIPAGEM DESCARTVEL

    O objetivo principal desse modelo entender os requisitos do sistema. Tem sido usado com

    sucesso para validar partes do sistema (Interface Grfica e aspectos do sistema relacionados

    arquitetura ex: desempenho, portabilidade etc.). Como na programao exploratria, a primeira

    etapa prev o desenvolvimento de um programa (prottipo) para o usurio experimentar. No

    entanto, ao contrrio da programao exploratria, o prottipo ento descartado e o software deve

    ser reimplementado na etapa seguinte, usando qualquer modelo de ciclo de vida (ex: cascata).

    CONCLUSO

    A Engenharia de Software uma disciplina que est envolvida com todos os aspectos da

    produo de software, desde a sua concepo at a sua entrega, operao e manuteno.

    Vale ressaltar que o objetivo maior da Engenharia de Software produzir software de

    qualidade, dentro do prazo e no custo desejado pelo cliente. Diversos motivos dificultam o uso

    desses padres, dentre eles o fato de que a definio e uso de um processo de software envolve uma

    complexa inter-relao de fatores organizacionais, culturais, tecnolgicos e econmicos.

    No que se refere ao gerenciamento de projetos de software especificamente, pode-se

    concluir que apesar do esforo da comunidade de engenharia de software em definir modelos e

  • padres para a construo de um efetivo processo de gerenciamento de projetos, a maioria ainda

    sente dificuldade em definir os seus processos e no gerenciam os seus projetos de forma

    satisfatria.

    Por fim, conclui-se que impulsionado pelas mudanas tecnolgicas os produtos, seus

    processos associados mudaram no decorrer das ltimas dcadas. Atualmente, as fbricas de

    software so medidas por dois fatores que esto relacionados a qualquer outro tipo de indstria:

    qualidade de seus produtos e capacidade de ser cada vez mais produtiva. Essa a essncia atual

    para a sobrevivncia e sucesso de uma empresa de software. Nesse contexto, a Engenharia de

    Software tem sido cada vez mais considerada pela comunidade de software por oferecer uma

    excelente contribuio.

    REFERNCIAS

    PORTAL ENGENHARIA DE SOFTWARE. Fundamentos da Engenharia de Software.

    Disponvel em: <

    http://portalengenhariadesoftware.blogspot.com.br/search/label/Fundamentos%20da%20Engenharia

    %20de%20Software> Acessado em: 07/05/2015.

    WIJIPDIA. Engenharia de Software. Disponvel em:

    Acessado em: 07/05/2015.