Análise e Concepção de Sistemas de Informação Introdução José Borbinha [email protected] Enquadramento e Conceitos Gerais Enquadramento e Conceitos Gerais – – – – – Processo de Desenvolvimento de Sistemas – – – – Discussão inicial Processos de Negócio Objectivos dos de Sistemas de Informação Tipos de Sistemas de Informação Sobre Arquitecturas de Sistemas de Informação Conceitos Introdutórios Processos e Metodologias Modelos e Modelação Modelos do Processo de Desenvolvimento Notas Finais – Problemas Típicos – Boas Práticas – Questões para Discussão ACSI/Introdução © Alberto Silva / José Borbinha 2 Enquadramento e Conceitos Gerais O Negócio... ...Os Processos... Processo A Processo B Processo C Processo D Requisitos para o Sistema de Informação ! !! !!! !! ! Sistema x Componente 1 Sistema y Sistema Z Componente 3 ...O Sistema de Informação ACSI/Introdução © Alberto Silva / José Borbinha 3 Enquadramento e Conceitos Gerais Discussão Inicial Análise e Concepção de Sistemas de Informação? Informação ? Sistema ? ACSI/Introdução © Alberto Silva / José Borbinha 4 Enquadramento e Conceitos Gerais Informação? Discussão Inicial – ... – Informação como mensagem (teoria da comunicação de Shannon...) é o estado de um sistema... é a qualidade de uma mensagem... – ... – Informação Informação são dados com valor e significado para um determinado actor Informação pode ter de ser interpretada, logo a sua percepção e valor podem ser subjectivos – Dados Dados são elementos brutos de representação de informação Dados devem ter representações formais, logo devem ser objectivos – ... – http://en.wikipedia.org/wiki/Information – ... ACSI/Introdução © Alberto Silva / José Borbinha 5 Enquadramento e Conceitos Gerais Discussão Inicial Informação? – – ... Informação como mensagem (teoria da comunicação de Shannon...) – é o estado de um sistema... é a qualidade de uma mensagem... ... – Informação e Dados Informação são dados com valor e significado para um determinado actor Informação pode ter de ser interpretada, logo a sua percepção e valor podem ser subjectivos – Dados Dados são elementos brutos de representação de informação Dados devem ter representações formais, logo devem ser objectivos – ... – – http://en.wikipedia.org/wiki/Information ... Curto Intervalo para Discussão: Sistema de Informação versus Base de Dados ACSI/Introdução © Alberto Silva / José Borbinha 6 Enquadramento e Conceitos Gerais Discussão Inicial Sistema de Informação (uma definição de “fora para dentro”): – Um sistema, automatizado ou manual, que compreende pessoas, máquinas e métodos organizados para recolher, processar, transmitir e disseminar dados que representam informação para os seus utilizadores! (http://en.wikipedia.org/wiki/Information_system) Sistema de Informação (uma definição de “dentro para fora”)? – Um conjunto integrado de entidades (humanas e tecnológicas) cujo objectivo é o de satisfazer adequadamente as necessidades de informação de uma organização e dos respectivos processos de negócio! ACSI/Introdução © Alberto Silva / José Borbinha 7 Enquadramento e Conceitos Gerais Discussão Inicial A propósito, então se calhar... DADOS + PROCESSOS = INFORMAÇÃO ACSI/Introdução © Alberto Silva / José Borbinha 8 Enquadramento e Conceitos Gerais Processos de Negócio Processo de negócio... Pretende representar uma sequência de actividades, que processam vários inputs e produzem vários outputs e que possuem objectivos. – Pode ser realizado por pessoas e/ou de forma automática. – Exemplos de processos de negócio incluem • as compras de matérias-primas, • a contratação de um empregado ou • a distribuição de produtos acabados. ACSI/Introdução © Alberto Silva / José Borbinha 9 Enquadramento e Conceitos Gerais Processos de Negócio Information may come from external sources, from customers, from internal organisational units and may even be the product of other processes. A resource is an input to a business process, and, unlike information, is typically consumed during the processing. An event is the receipt of some object, a time or date reached, a notification or some other trigger that initiates the business process. The event may be consumed and transformed (for example a customer order) or simply act as a catalyst (e.g. nightly batch job). An output may be a physical object (such as a report or invoice), a transformation of raw resources into a new arrangement (a daily schedule or roster) or an overall business result such as completing a customer order. (a goal) is the reason the organization does (a process), and should be defined in terms of the benefits this process has for the organization as a whole and in satisfying the business needs. http://www.sparxsystems.com/EAUserGuide/index.html?businessmodelling.htm ACSI/Introdução © Alberto Silva / José Borbinha 10 Enquadramento e Conceitos Gerais Objectivos dos Sistemas de Informação Suporte à produção – Reduzir custos operacionais, através da automatização e reformulação dos processos de negócio – melhorar o desempenho de pessoas e máquinas Suporte táctico – Satisfazer requisitos de informação dos utilizadores – Melhorar o nível de serviço prestado aos clientes actuais e facilitar a aquisição de novos clientes. Suporte estratégico – Contribuir para a criação de novos produtos e serviços – Melhorar e automatizar (integrar) a relação com os parceiros de negócio. ... ACSI/Introdução © Alberto Silva / José Borbinha 11 Enquadramento e Conceitos Gerais Objectivos dos de Sistemas de Informação Planeamento Estratégico de Sistemas de Informação processo cuja finalidade é garantir o alinhamento dos sistemas de informação com os objectivos do negócio ou "o processo de decidir os objectivos para a organização informática e identificar as aplicações informáticas potenciais que a organização deve implementar” [Lederer88 ] ACSI/Introdução © Alberto Silva / José Borbinha 12 Enquadramento e Conceitos Gerais Objectivos dos de Sistemas de Informação Metodologia do Planeamento Estratégico de Sistemas de Informação ACSI/Introdução © Alberto Silva / José Borbinha 13 Enquadramento e Conceitos Gerais Tipos de Sistemas de Informação SI segundo a classificação de R. Anthony… Tipo de Sistemas Exemplos Operacionais Facturação, Controle de encomendas, Contabilidade geral, Controle de Stocks, Salários Tácticos Análise de vendas, Controle orçamental, Contabilidade analitica, Gestão do inventário, Análise da qualidade Estratégicos Previsão de vendas, Planeamento da alocação da produção, Planeamento recursos humanos, Previsão de receitas e custos, Modelização financeira ACSI/Introdução © Alberto Silva / José Borbinha 14 Laudon (Management Information Systems 8/e Chapter 2 Information Systems in the Enterprise) Tipos de Sistemas de Informação Mais em SIE/AOSIE ... ACSI/Introdução © Alberto Silva / José Borbinha © 2004 PRATICE HALL 15 Enquadramento e Conceitos Gerais Arquitectura de um Sistema de Informação ... “conjunto de representações descritivas (modelos) relevantes para a descrição de um objecto de forma a que este possa ser elaborado de acordo com os requisitos (de qualidade) e mantido ao longo da sua vida útil” Sobre Arquitecturas de Sistemas de Informação Zachman, 87. Definição genérica... Mas, refere-se quer aos sistemas de informação quer à empresa, uma vez que o mesmo modelo apresenta relativamente a cada conceito a perspectiva do negócio e dos sistemas de informação. O Framework de Zachman é uma estrutura lógica de classificação e apresentação dos modelos –de uma organização relevantes para a respectiva gestão –desenvolvimento dos seus sistemas ACSI/Introdução © Alberto Silva / José Borbinha 16 Enquadramento e Conceitos Gerais Framework de Zachman... Sobre Arquitecturas de Sistemas de Informação Mais em ATSI ... ACSI/Introdução © Alberto Silva / José Borbinha 17 Processo de Desenvolvimento de Sistemas Conceitos Introdutórios Engenharia de Software é a aplicação de um processo sistemático, disciplinado, e quantificado ao desenvolvimento, operação e manutenção de software; ou seja, a aplicação de técnicas de engenharia ao software (IEEE, 93) As actividades associadas à Engenharia de Software podem ser agrupadas em três grandes fases: concepção, implementação e manutenção (cada uma destas fases pode ainda ser dividida em outras mais elementares) Ao longo de cada fase existem tarefas, subprodutos a desenvolver, pontos de verificação e intervenientes. Existe também um conjunto de actividades de suporte contínuas: gestão de projecto, controle de qualidade, gestão da configuração, elaboração de documentação, elaboração de estimativas, gestão do risco, ... ACSI/Introdução © Alberto Silva / José Borbinha 18 Processo de Desenvolvimento de Sistemas Conceitos Introdutórios Do Problema até à Solução... Concepção de Sistemas de Informação Especificação de Requisitos: descrição do problema na óptica do cliente. Análise: descrição do problema na óptica do engº de sistema Desenho: especificação da solução em termos da plataforma e tecnologia computacional usada. Implementação e Manutenção de Sistemas de Informação Concretização da solução desenhada... Testes ... Aceitação ... Manutenção ... ACSI/Introdução © Alberto Silva / José Borbinha 19 Processo de Desenvolvimento de Sistemas Conceitos Introdutórios Universo do Discurso (UoD) É o fragmento do mundo real sobre o qual a tarefa de modelação e construção do sistema de informação é focada. A identificação do UoD pressupõe a identificação da fronteira do sistema e das entidades do mundo real (EMR). – Exemplos de UoD: sistema de crédito bancário do Banco de Portugal sistema das bibliotecas nacionais sistema de controlo de tráfego aéreo do espaço Europeu Estrutura de Conceitos – É o conjunto de abstracções básicas que permitem identificar e caracterizar as Entidades do Mundo Real (EMR) – Exemplos de conceitos “entidade”, “classe”, “agregação”, “evento”, “relação”. ACSI/Introdução © Alberto Silva / José Borbinha 20 Processo de Desenvolvimento de Sistemas Conceitos Introdutórios Modelo – É uma interpretação de um sistema segundo um determinado ponto de vista, e envolve a sua especificação a um certo nível de abstracção e de detalhe. – Exemplos de modelos : o modelo de objectos da linguagem UML especificado em UML o modelo de classes, ao nível da análise o modelo de classes, ao nível do desenho/implementação Linguagem de Modelação É a estruturação e especificação da estrutura de conceitos segundo uma ou mais linguagens. Linguagens podem ser formais ou informais, textuais ou gráficas. No caso de linguagens de modelação gráficas importa referir a notação, que consiste na apresentação visual dos diferentes elementos da estrutura de conceitos subjacente. ACSI/Introdução © Alberto Silva / José Borbinha 21 Processo de Desenvolvimento de Sistemas Conceitos Introdutórios Esquema É a especificação de um modelo usando uma determinada linguagem, a qual pode ser formal, informal (e.g., linguagem natural); de texto, gráfica, ... Quando a representação do esquema é gráfica designa-se usualmente por diagrama. Exemplos de esquemas: – esquema relacional de um sistema de crédito – diagrama de classes do sistema de facturação – diagrama de colaboração do processo de emissão de factura ACSI/Introdução © Alberto Silva / José Borbinha 22 Processo de Desenvolvimento de Sistemas Conceitos Introdutórios Do UoD e EMR aos Modelos e Esquemas UoD (Sistema) EMR ACSI/Introdução © Alberto Silva / José Borbinha Estrutura de Conceitos (Linguagem de Modelação) Modelo(s) Esquemas/Diagramas 23 Processo de Desenvolvimento de Sistemas Conceitos Introdutórios UoD e EMR vs. Modelos e Esquemas Modelo Mundo Real gap semântico dono homem lar carro casa Estrutura de Conceitos Esquema textual Esquema gráfico ACSI/Introdução © Alberto Silva / José Borbinha 24 Processo de Desenvolvimento de Sistemas Processos e Metodologias Processos de desenvolvimento: um conjunto de actividades, normalmente agrupadas em fases e tarefas, que são executadas de forma sistemática e uniformizada, que são realizadas por intervenientes com responsabilidades bem definidas, e que a partir de um conjunto de inputs produzem um conjunto de outputs. Metodologia: A aplicação de um processo através da utilização de um conjunto concreto de ferramentas, técnicas e notações [Booch94] ACSI/Introdução © Alberto Silva / José Borbinha 25 Processo de Desenvolvimento de Sistemas Processos e Metodologias Metodologia... inclui ainda referências a diversos princípios e regras cujo objectivo é concretizar na prática as orientações mais teóricas que são expressas no processo, e nas quais podemos incluir: – Regras de elaboração de estimativas (custos, prazos). – Técnicas para efectuar medições e regras de elaboração de estimativas. – Procedimentos a seguir de forma a garantir a qualidade. – Programas de formação. – Referência sobre a utilização de ferramentas de apoio ao longo de todo o processo. – Modelos da documentação a produzir, vulgarmente designados por templates. – Exemplos práticos detalhados. – Técnicas para customização da metodologia, que poderão ser aplicadas para a adaptar a realidades específicas. ACSI/Introdução © Alberto Silva / José Borbinha 26 Processo de Desenvolvimento de Sistemas Modelos e Modelação A Importância da Modelação Modelação é uma técnica de engenharia bem aceite e provada (e.g., engª civil, mecânica), ... Permite partilhar conhecimento entre utilizadores e técnicos, e entre diferentes tipos de técnicos, ... Permite gerir melhor os projectos, as equipas, ... Permite prever custos e prazos; permite minimizar os riscos e os custos ... ACSI/Introdução © Alberto Silva / José Borbinha 27 Processo de Desenvolvimento de Sistemas Modelos e Modelação Benefícios da Modelação Os modelos ajudam a visualizar um sistema, quer seja a sua situação no passado, no presente ou no futuro. Os modelos permitem especificar a estrutura ou o comportamento de um sistema Os modelos permitem controlar e guiar o processo de construção do sistema. Os modelos documentam as tomadas de decisão realizadas. ACSI/Introdução © Alberto Silva / José Borbinha 28 Processo de Desenvolvimento de Sistemas Modelos e Modelação Princípios de Modelação (Booch) P1 -A escolha dos modelos a criar tem uma profunda influência no modo como o problema é atacado e consequentemente como a solução é tratada P2 -Cada modelo pode ser expresso em diferentes níveis de precisão/abstracção P3 -Os melhores modelos reflectem a realidade P4 -Nenhum modelo único é suficiente. Qualquer sistema nãotrivial é melhor representado através de pequeno número de modelos razoavelmente independentes (relembrar o Framework de Zachman...) ACSI/Introdução © Alberto Silva / José Borbinha 29 Processo de Desenvolvimento de Sistemas Modelos do Processo Independentemente das particularidades de cada processo, pode-se distingui-los genericamente segundo duas grandes aproximações: – aproximação em cascata – aproximação iterativa Note-se que esta distinção é ortogonal ao facto do processo usar uma abordagem estruturada ou baseada em objectos ... ACSI/Introdução © Alberto Silva / José Borbinha 30 Processo de Desenvolvimento de Sistemas Aproximação em Cascata Modelos do Processo As actividades a executar são agrupadas em tarefas, executadas sequencialmente, de forma que uma tarefa só tem início quando a tarefa anterior tiver terminado. Positivo • só se avança para a tarefa seguinte quando o cliente valida e aceita os produtos finais (documentos, modelos, programas) da tarefa actual – uma garantia “formal” para o fornecedor que fica mais “descansado”... • pressupõe que o cliente participa activamente no projecto e que sabe bem o que quer Negativo • promove compartimentação dos esforços ao longo das diferentes tarefas, desencorajando a comunicação e partilha de visões entre todos os intervenientes do projecto (analistas, arquitectos, programadores, utilizadores, ...). • minimiza o impacto da compreensão adquirida no decurso de um projecto, pois se um processo não pode voltar atrás de modo a alterar os modelos e as conclusões das tarefas anteriores, é normal que as novas ideias sobre o sistema não sejam aproveitadas. ACSI/Introdução © Alberto Silva / José Borbinha 31 Processo de Desenvolvimento de Sistemas Aproximação em Cascata Revista Modelos do Processo Vantagens – prevê a possibilidade de a partir de qualquer tarefa do ciclo se poder regressar a uma tarefa anterior de forma a contemplar alterações funcionais e/ou técnicas que entretanto tenham surgido, em virtude de um maior conhecimento que se tenha obtido. Desvantagens – risco desta aproximação é que, na ausência de um processo de gestão do projecto e de controle das alterações bem definido, podemos passar o tempo num ciclo sem fim, sem nunca se atingir o objectivo final que é disponibilizar um sistema a funcionar. ACSI/Introdução © Alberto Silva / José Borbinha 32 Processo de Desenvolvimento de Sistemas Modelos do Processo Aproximação Iterativa e Incremental Baseia-se no princípio que a equipa envolvida possa refinar e alargar pouco-a-pouco a qualidade, detalhe e âmbito do sistema envolvido A principal consequência da aproximação iterativa é que os produtos finais de todo o processo vão sendo amadurecidos e completados ao longo do tempo, mas cada iteração produz sempre um conjunto de produtos finais. Requer processos ágeis! ACSI/Introdução © Alberto Silva / José Borbinha 33 Processo de Desenvolvimento de Sistemas Aproximação em Espiral Modelos do Processo Variante do modelo iterativo e incremental. Foi proposto por Barry Boehm [Boehm88] como resposta às críticas que os processos existentes não favoreciam a utilização de prototipagem e reutilização de software. Para além das tarefas e actividades previstas pelos outros processos, propõe logo de seguida à tarefa de planeamento a realização de uma tarefa de prototipagem e de análise do risco, como forma de eliminar os principais problemas e identificar os requisitos do sistema XP (Extreme Programming) pode ser considerado um exemplo de um processo de desenvolvimento ágil em espiral... ACSI/Introdução © Alberto Silva / José Borbinha 34 Notas Finais Problemas Típicos em Desenvolvimento de Sistemas de Informação Problemas Típicos (falta de) Qualidade, traduzida na satisfação incompleta dos requisitos, nos problemas que se verificam após a instalação do produto. (desvios dos) Prazos previamente estabelecidos para o desenvolvimento de software. (controlo dos) Custos previamente definidos para o desenvolvimento de software largamente ultrapassados. ACSI/Introdução © Alberto Silva / José Borbinha 35 Notas Finais Causas Típicas dos Problemas no Desenvolvimento de Sistemas de Informação Problemas Típicos Falta de empenhamento dos órgãos de topo das organizações. Falta de comprometimento e empenhamento dos utilizadores. Incompreensão do valor dos sistemas de informação. Falta de entendimento e de sintonia entre informáticos e clientes utilizadores do sistema, no âmbito e requisitos do mesmo. Deficiências várias no processo de desenvolvimento. Falhas na coordenação do projecto, nomeadamente ao nível dos objectivos, prioridades, estimativas. Falta de qualidade e inadequação dos recursos envolvidos. Mudanças frequentes dos requisitos do negócio e incapacidade de lidar com esta situação. Dificuldades na integração de componentes. Qualidade e desempenho do software deficiente, muito relacionados com problemas ao nível do controle de qualidade. Incapacidade de identificar e controlar os riscos do projecto. ACSI/Introdução © Alberto Silva / José Borbinha 36 Notas Finais Causa Comum a TODOS os Problemas no Desenvolvimento de Sistemas de Informação Problemas Típicos Falta de comunicação, ou comunicação desadequada entre os intervenientes: – No levantamento dos requisitos (resultando em expectativas erradas ou irrealistas) – Na análise (causado resultando em certezas erradas) – No desenho (resultando em soluções impraticáveis ou erradas) – No desenvolvimento (resultando em funções desajustadas) – Nos testes (resultando em conflitos entre diferentes classes de actores) – Na gestão de projecto (resultando no descontrolo dos custos) As razões para a falta de comunicação resulta geralmente de: – Intimidação hierárquica (medo de fazer perguntas básicas ao chefe ou ao cliente...) – Ignorância, arrogância ou falta de respeito pelo “outro” (“eles disseram que querem isso assim, mas nós sabemos que não é assim que deve ser...”) – Falta de rigor (“Mas porque é que não nos disseram isso antes? Porque vocês não perguntaram antes...”) ACSI/Introdução © Alberto Silva / José Borbinha 37 Notas Finais Boas Práticas Decomposição hierárquica – também conhecido por divide and conquer ("dividir para conquistar") – um problema é dividido em sub-problemas mais elementares e assim sucessivamente até serem simples de resolver. Abstracção – favorece a eliminação da complexidade: já que não é possível lidar com toda a realidade dos sistemas complexos, o ser humano opta por "esquecer" os detalhes menos importantes e focar a sua atenção nos mais relevantes, lidando com um modelo simplificado da realidade, mas considerado suficiente para entender e solucionar correctamente o problema em questão. ACSI/Introdução © Alberto Silva / José Borbinha 38 Notas Finais Boas Práticas Outras... O desenvolvimento deve ser efectuado de forma iterativa, repetindo as mesmas actividades em momentos temporais desfasados, mas detalhando o âmbito das funcionalidades do sistema. Efectuar uma gestão integrada dos requisitos, permitindo a verificação da rastreabilidade dos mesmos desde a sua identificação até à implementação, e facilitando todo o processo de gestão de alterações. Utilizar arquitecturas baseadas em componentes reutilizáveis, como forma de diminuir o esforço de desenvolvimento e posterior manutenção. Modelar o software através de diagramas gráficos, mais facilmente compreensíveis e menos sujeitos a interpretações subjectivas. Efectuar a verificação sistemática da qualidade, e não apenas no final do desenvolvimento. ACSI/Introdução © Alberto Silva / José Borbinha 39 Notas Finais Boas Práticas Outras, ainda... Conseguir e promover o envolvimento dos utilizadores. Utilizar uma abordagem orientada para a resolução de problemas. Definir e utilizar standards para o desenvolvimento e documentação. Justificar o desenvolvimento de software como uma actividade estratégica e como investimento financeiro. Não ter receio de alterar ou mesmo cancelar o projecto ou parte dele. Conceber sistemas que sejam fáceis de expandir e alterar. ACSI/Introdução © Alberto Silva / José Borbinha 40 Notas Finais Questões para discussão... Quais os elementos estruturais comuns nos processos de desenvolvimento de sistemas? Quais os “stakeholders” nos processos comuns de desenvolvimento de sistemas? Que diferenças significativas existem entre projectos de eng.ª civil (ou mecânica) e de eng.ª informática? ACSI/Introdução © Alberto Silva / José Borbinha 41