Engenharia de Software e Sistemas de Informação e Gestão Luís Correia DSAS ENGENHARIA DE SOFTWARE • Engenharia de software é uma área do conhecimento da computação voltada para a especificação, desenvolvimento e manutenção de sistemas de software, objectivando organização, produtividade e qualidade. ENGENHARIA DE SOFTWARE(Cont.) • A Engenharia de Software surge devido a um conjunto de problemas que tornam a criação de um software numa actividade árdua e subjectiva. Alguns problemas na criação de software são, por exemplo: • As estimativas de custo e prazo, sendo frequentemente imprecisas; • A produtividade das pessoas da área de software ser desigual; • A qualidade do software desenvolvido pode não ser o mais adequado; ENGENHARIA DE SOFTWARE(Cont.) • A inexistência de tempo suficiente para recolher dados sobre o processo em desenvolvimento; • A comunicação entre o Analista e o Cliente não ser a desejada; • A falta ou deficiência em técnicas de teste; • A Manutenção abranger a maioria do orçamento destinado ao Software; ENGENHARIA DE SOFTWARE(Cont.) • A Engenharia de software proporciona: – Métodos abrangentes para todas as fases do desenvolvimento; – Ferramentas para automatizar os métodos; – Implementação mais consistente e robusta; – Técnicas para garantir qualidade; – Boa coordenação e Controle Administrativo. ENGENHARIA NECESSÁRIA?! A importância da Engenharia de Software. ETAPAS DA ENGENHARIA DE SOFTWARE • A Engenharia de software tem um conjunto de etapas que envolve ferramentas, métodos, processos e tem como alicerce a tudo isto o controle da qualidade: – Métodos: Proporcionam os detalhes de “como fazer” para construir o software. – Ferramentas: Fornecem suporte automatizado ou semiautomatizado aos métodos. – Processos: É a fundação da engenharia de software, provendo a sustentação e relacionamentos entre as camadas. – Foco na qualidade: Garante toda a qualidade do software gerado. O UML • A UML ou Unified Modeling Language (que nada tem a ver com XML, HTML, XLS, DML, DHTML) é uma linguagem de modelagem não proprietária de terceira geração. Ela foi criada para facilitar e uniformizar a forma de especificação de projectos de desenvolvimento de software. • A UML não é um método, é uma notação. Um método normalmente é composto por uma linguagem de modelagem (notação gráfica) e por um processo (passos para elaboração do projecto). Dessa forma a UML, pode ser usada com qualquer processo já que é independente dele. • A UML permite modelar: Elementos; Relacionamentos; Mecanismos de Extensibilidade; Diagramas. O UML(Cont.) • Elementos: – Estruturais – Classes, interfaces, colaborações, componentes, casos de uso, classes activas, nós; – Comportamentais – Interacções, máquinas de estado; – Grupos de elementos – Pacotes, subsistemas, modelos; – Outros – Notas. O UML(Cont.) • Relacionamentos: – – – – Dependências; Associações; Generalizações; Implementações (realização); • Mecanismos de Extensibilidade: – Estereótipos; – Tagged value; – Regras. UML - Diagramas Estáticos • • • • • • Diagrama de pacotes Diagrama de classes Diagrama de objectos Diagrama de estrutura composta Diagrama de componentes Diagrama de instalação UML - Diagramas Dinâmicos • • • • • • • Diagrama casos de uso Diagrama de actividades Diagrama de máquina de estados Diagrama de comunicação Diagrama de sequência Diagrama de Tempo Diagrama de Interactividade ENGENHARIA DE SOFTWARE E SISTEMAS DE INFORMAÇÃO E GESTÃO • Engenharia de Software está intimamente ligada com Sistemas de Informação e Gestão, devido ao facto de todos os sistemas serem desenhados com base em estudos feitos previamente à estrutura destinada. • Um sistema de informação é composto por todos os componentes que recolhem, manipulam e disseminam dados ou informação. Incluem-se tipicamente hardware, software, pessoas, sistemas de comunicação como linhas telefónicas, e os dados propriamente ditos. • As actividades envolvidas incluem a introdução de dados, processamento dos dados em informação, armazenamento de ambos, e a produção de resultados, como relatórios de gestão. ENGENHARIA DE SOFTWARE E SISTEMAS DE INFORMAÇÃO E GESTÃO • Desta forma a Engenharia de software tem um papel deveras activo na abordagem deste tema, isto é, os Sistemas de Informação e Gestão são sem dúvida indispensáveis para a existência de uma boa comunicação entre empresas e instituições. • Porém é necessário existir software coerente e de fácil manipulação das tecnologias de informação, de forma a melhorar a segurança, a rapidez, e a qualidade de todos os Sistemas. ENGENHARIA DE SOFTWARE E SISTEMAS DE INFORMAÇÃO E GESTÃO • Para tal, tem que existir uma coordenação mútua entre toda a informação, pessoas e meios disponíveis para a criação de um software eficaz, seguro, e de características bem definidas, com base a servir “com perfeição” todo o sistema em si.