150 likes | 281 Views
Técnicas e Projeto de Sistemas. André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com. Introdução a Engenharia de Software – Parte 1 Técnico Subsequente – Módulo III (22/02/2010). Introdução. Disciplina de Técnicas e Projeto de Sistemas (TPS)
E N D
Técnicas e Projeto de Sistemas André Mesquita Rincon andrerincon@ifto.edu.br andre.rincon@gmail.com Introdução a Engenharia de Software – Parte 1 Técnico Subsequente – Módulo III (22/02/2010)
Introdução • Disciplina de Técnicas e Projeto de Sistemas (TPS) • Aborda elementos da Engenharia de Software (ES) com foco nas práticas relacionadas à análise, design e teste de Software • A disciplina trata-se de um subconjunto da ES • Mas o que é Engenharia de Software? Por que utilizá-la?
Engenharia de Software: conceito • Aplicação disciplinada de técnicas no contexto do desenvolvimento e manutenção de software • Desenvolver software por meio de técnicas que possam garantir que o software atinja seus objetivos • Não desenvolver software de forma artesanal
Engenharia de Software: por que? • Por que toda devemos nos preocupar com o processo de desenvolvimento do SW? • Pressman: SW de computador é a tecnologia mais importante atualmente no mundo • Alterou modelos de negócios (e-commerce) • Aumentou perspectivas da ciência (genética) • Potencializou as telecomunicações • Revolucionou a indústria fonográfica e cinematográfica
Engenharia de Software: por que? • As potências econômicas são dependentes de SW • Como conseqüência, mai$$ e mai$$ empresas dependem de SW para seu sucesso • Além disso, cada vez mais os sistemas mundiais são controlados por SW, incluindo os de “Segurança-Crítica” • Uma falha pode resultar em acidentes, perdas de vidas ou perdas financeiras (ex.: usina nuclear, controle aéreo, etc.) • Se alguns sistemas de uso global deixarem de funcionar, 40% da população sofrerá o impacto (REED, 2000)
Engenharia de Software: por que? • SW é diferente de outros produtos... • Invisibilidade: SW não pode ser representado por estruturas geométricas ou embutido num espaço físico • É visto como um produto de pensamentos e de fácil alteração • Requer boa habilidade dos projetistas para extrair informações dos clientes • Necessita de boa comunicação entre os desenvolvedores para que o “mesmo SW” seja desenvolvido por todos • É diferente, por exemplo, da escalabilidade do hardware • Permite a repetição de elementos • Facilita a interação entre elementos
Engenharia de Software: por que? • SW é diferente de outros produtos... • Tem necessidade de evolução constante • Lei da modificação contínua: software deve ser continuamente adaptado ou eles se tornam progressivamente menos satisfatórios • Lei da complexidade crescente: à medida que o software evolui, sua complexidade aumenta (a menos que seja realizado um esforço para minimizá-la) • Lei da qualidade declinante: a qualidade do software parecerá estar declinando ao longo do tempo • A maioria dos softwares é feita sob medida e é difícil utilizá-lo em contextos semelhantes
Engenharia de Software: por que? • Software é um tipo de sistema??? • O que é sistema??? • “Conjunto de partes interagentes e interdependentes que, conjuntamente, formam um todo unitário com determinado objetivo e efetuam determinada função” OLIVEIRA, Djalma P. R. Sistemas, Organização e Métodos. São Paulo: Atlas, 2001.
Engenharia de Software: por que? • Hierarquia de sistemas • Subsistema x Sistema x Supersistema: • Sistema é o objeto (foco) do estudo • Subsistemas são suas partes componentes • Supersistema: hierarquia imediatamente superior ao sistema estudado
Engenharia de Software: por que? • Relações entre sistemas • Geralmente a saída (output) de um sistema é a entrada (input) de outro sistema • Uma mudança em um sistema provavelmente terá reflexos (reações) nos sistemas relacionados • É necessário o estudo dos sistemas para prever essas reações evitando surpresas • Pode-se dizer que ES provê técnicas que auxiliam nesses estudos de um tipo de sistema que é o software
Engenharia de Software: por que? • Tipos de sistema • Sistemas fechados • Não trocam matéria ou energia com o ambiente em que estão inseridos • Podem ser considerados como uma definição conceitual • Sistemas abertos • Interagem com o ambiente em que estão inseridos • Organizações sociais são sistemas abertos
Engenharia de Software: por que? • Sistemas organizacionais • “Conjunto de partes e funções dinâmicas, interdependentes, com objetivos comuns” MAGALHÃES, A. D. F., LUNKES, I. C. Sistemas Contábeis. São Paulo: Atlas, 2000. • Características • Abertos • Pertencem a sistemas maiores • Contêm sistemas menores • Tem objetivos específicos • Tem estrutura complexa
Engenharia de Software: por que? • Exemplo de um Sistema Organizacional - IFTO • Supersistemas: Reitoria, MEC... • Ambiente externo: • - Político • - Social • - Econômico • Ecológico • Etc...
Engenharia de Software: objetivo • A Engenharia de Software objetiva prover métodos (i.e.: “como fazer”), ferramentas e procedimentos (i.e.: sequência em que os métodos serão aplicados) para o desenvolvimento de SW de maneira que ele atinja seus objetivos dentro de contextos de sistemas complexos • Modelos • Ciclo de Vida Clássico (modelo Cascata) • Prototipagem • Espiral • Técnicas de Quarta Geração
Atividade (Em grupo: Máximo 3) Pressman afirma que “Software de computador é a tecnologia mais importante atualmente no mundo”. Você concorda com essa afirmação? Justifique. Escreva com suas palavras quais são as características que diferenciam o software de outros produtos? Software é um tipo de sistema? Quais são os elementos do supersistema que interagem com o software em uma organização em que ele foi implantado? Descreva com suas palavras o que é um sistema organizacional. Em sua opinião, o que é engenharia de software (ES)? Por que é importante seguir um processo de ES no desenvolvimento de SW?