Engenharia de Software 2013/2

Documentos relacionados
Engenharia de Software

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Fundamentos de Engenharia de Software. Josino Rodrigues

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software

Planejamento e Gerenciamento de Projeto de Software

Uma Introdução à Engenharia de Software

Introdução à Engenharia de Software

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

ENGENHARIA DE SOFTWARE

Introdução à Computação

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Administração de Sistemas de Informação Gerenciais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

Processos de Desenvolvimento de Software

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

ENG1000 Introdução à Engenharia

1.1. Organização de um Sistema Computacional

PROCESSOS DE GERENCIAMENTO DE PROJETOS SEGUNDO O PMBOK. Faculdade PITÁGORAS Unidade Raja Prof. Valéria valeriapitagoras@gmail.

Implantação de um Processo de Medições de Software

Engenharia de Software Unidade I Visão Geral

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

ALESSANDRO PEREIRA DOS REIS PAULO CESAR CASTRO DE ALMEIDA ENGENHARIA DE SOFTWARE - CAPABILITY MATURITY MODEL INTEGRATION (CMMI)

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Apresentação Inspetor de Solda MIPS Sistemas Ltda.

Gerenciamento de Dados e Informação Fernando Castor

Introdução a Computação

Introdução ao CMM (CapabilityMaturityModel) e CMMI (Capability Maturity Model Integration)

Padrões de Qualidade de Software e Métricas de Software

Gestão da Qualidade por Processos

Melhorias de Processos de Engenharia de Software

Tópicos. Engenharia de Software: Uma Visão Geral

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Gestão da Tecnologia da Informação

GARANTIA DA QUALIDADE DE SOFTWARE

ENGENHARIA DE SOFTWARE I

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 3 O QUE É PLANEJAMENTO DE VENDAS E OPERAÇÕES?

Tecnologia e Sistemas de Informações Tipos de SI

Sistemas de Informação I

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Governança de TI. ITIL v.2&3. parte 1

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

ANÁLISE E PROJETO DE SISTEMAS

Engenharia de Requisitos Estudo de Caso

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Universidade Paulista

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Introdução A Engenharia Da Computação

Engenharia de Software 1

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

21/03/2012. WorkFlow. Gestão Eletrônica de Documentos. Workflow HISTÓRICO

Fábrica de Software 29/04/2015

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Tipos de teste de software

Conceitos ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO. Comunicação; Formas de escritas; Processo de contagem primitivo;

UNOCHAPECÓ - ÁREA DE CIÊNCIAS EXATAS E AMBIENTAIS ENGENHARIA MECÂNICA - P.I. PROF. EDERSON MOREIRA PAZ

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Década de 80, o Instituto de Engenharia de Software (SEI) foi criado.

Prof. Me. Marcos Echevarria

Algoritmos. Cláudio Barbosa

Prof. JUBRAN. Aula 1 - Conceitos Básicos de Sistemas de Informação

Pós Graduação Engenharia de Software

MODELO CMM MATURIDADE DE SOFTWARE

Introdução aos Fundamentos de Sistemas de Informação

Dicionário da EAP - Software FarmaInfor

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Requisitos. Sistemas de Informações

GESTÃO DO CONHECIMENTO NA INDÚSTRIA QUÍMICA

Engenharia de Software

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

Qualidade de Processo de Software Normas ISO e 15504

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Princípios de Linhas de Produtos de Software. Prof. Alberto Costa Neto

1. NÍVEL CONVENCIONAL DE MÁQUINA

Introdução. Toda organização executa basicamente dois tipos de atividade: Projeto; e. Operação (execução).

Processo de Desenvolvimento de Software

Engenharia de Software III

Engenharia de Software

Projeto de Monitoração e Melhoria Contínua com Six-Sigma, IoT e Big Data

Engenharia de Software

Engenharia de Software

Audiência Pública AP008/2003

UNIVERSIDADE DE SÃO PAULO E S C O L A D E A R T E S, C I Ê N C I A S E H U M A N I D A D E

Projeto Você pede, eu registro.

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO As Normas da família ISO 9000

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza

Transcrição:

2013/2 Thiago P. da Silva thiagosilva@ufmt.br

Agenda Software Sistema Engenharia de Sistemas 2

Importância do Software no mundo moderno Infraestrutura e serviços são controlados por sistemas computacionais. Ex. Produtos elétricos possuem um hardware e um software que o controla. Sistemas de software são abstratos, intangíveis, e não são restringidos pelas propriedades dos materiais, nem governadas pelas leis da física ou pelos processos de manufatura. Não há limites naturais para o potencial do software. Entretanto sistemas de software podem se tornar extremamente complexos. Criar software é uma tarefa puramente intelectual Então!?!?!? Como criar algo intangível? Dar valor($$)? Evoluir? Perguntas que deverão ser respondidas pela disciplina!!! 3

Importância do Software no mundo moderno Vários sistemas são controlados por software[1]: O sistema de aviação dos caças F-22 Raptor, da força aérea americana, consiste de aproximadamente 1.7 milhão de linhas de código. O Boeing 787 Dreamliner contém 6.5 milhão de linhas de código de software. Um simples celular contém cerca de 2 milhões de linhas de código de software(imagine um smarthphone!!!) Exemplos de componentes de carros em que há software embutido: Sistema Air-bag; controle de alarme; sistema de entretenimento; ABS, sistema de navegação; monitoramento da pressão dos pneus; sistema ignição; sistema de comunicação; sistema eletrônico de estabilidade; sistema de navegação; controle da temperatura; etc. 4

Definição de software Programas de computador, documentação associada e dados de configuração [4]. Pode ser criado de várias formas diferentes: Pelo desenvolvimento de novos programas Pela configuração de sistemas de software genéricos Pelo reuso de software existente Fato: Podemos construir uma casa sem um projeto! Mas e o software? A abordagem "codificar e testar" (code & test) é suficiente? Vocês já criaram software? 5

Importância do Software no mundo moderno Softwares representam custos nos produtos: No caso de carros, por exemplo, os custos de software e eletrônicos foram de 5% em 1970 para 15% em 2005. Em alguns carros atualmente estes custos chegam a 45%. Estima-se que em 10 anos estes custos subam para 80% [1] Quem custa mais, software ou hardware?: Licença do AutoCAD 2012 [2] $4.195 ~ R$ 8.000 Notebook Lojas MM.com [3] R$ 999,87 6

Atributos de Software Atributos essenciais: Manutenibilidade: software evolui, os requisitos mudam. Confiança e Proteção: software não deve causar prejuízos e deve ser seguro. Eficiência: capacidade de resposta, tempo de processamento e memória. Aceitabilidade: compreensível, usável e compatível com outros sistemas. Atributos de qualidade diferenciam o desenvolvimento de software profissional do amador: Adequação ao propósito; Zero defeito (É possível?); Conformidade e segurança; Atendimento à necessidade definida e implícita do cliente Atributos podem conflitar! Ex. Eficiência x Segurança 7

Tipos de Software (alguns tipos) Software básico dão apoio a outros programas Software de tempo real monitora, analisa e controla eventos, sob restrição de tempo Software comercial propósitos comerciais e tomadas de decisões administrativas Software científico e de engenharia propósitos científicos Software embarcado projetado para um determinado hardware Software aplicativo ou de uso pessoal pessoal, gedit, paciência, LibreOffice Software de IA uso de técnicas da IA Software para Web (WebApps) utilizam a infraestrutura da Internet Como construir cada um dos tipos de software? Pode-se usar o mesmo processo de desenvolvimento? 8

Evolução do Software [7] 9

Evolução do Software [7] 10

Evolução do Software [7] Estimativas imprecisas Insatisfação do cliente Baixa Qualidade 11

Evolução do Software [7] 12

Evolução do Software [7] DSOA, MDD, Nuvem, Computação Ubíqua, etc 13

Guerra dos Software [8] 14

Definição de É uma disciplina (abordagem sistemática) de engenharia cujo foco está em todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até a sua manutenção, quando o sistema já está sendo usado. [4] (1) The application of a systematic, disciplined and quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software [5] (2) The study of approaches as in (1) [5] 15

Processo de Software A abordagem sistemática é, às vezes, chamada de processo de software. Processo de software é uma sequência de de atividades que leva à produção de um produto de software. Atividades são definíveis, repetíveis e mensuráveis que levam a um resultado útil. Existem vários modelos de processos, pois existem formas diferentes de se fazer a mesma coisa! Existem tipos diferentes de software. 16

Processo de Software Não existe um processo de software que se aplique a todos os software! Existem quatro atividades fundamentais comuns a todos os processo de software [4]: Especificação - necessidades do usuário são reunidas e convertidas em requisitos de software Desenvolvimento projeto, codificação e teste Validação o software atende a necessidade do cliente? Evolução refletir a mudanças nos requisitos do usuário e do mercado 17

Motivação 18

Motivação Hall da vergonha de Software [6] FBI Início do projeto em 2001: Base de dados com suspeitos de terrorismo. Em Janeiro de 2005: Gastos de US$ 170 milhões: not even close to having a working system McDonald's Início em 1999: Projeto Innovate, com orçamento previsto de US$ 1 bilhão Cancelado em 2002, após gastos de US$ 170 milhões Windows :P 19

, Ciência da Computação e Engenharia de Sistemas Ciência da Computação - Teorias e métodos que sustentam sistemas computacionais e de software. Aplicáveis para programas relativamente pequenos. (Ex. BD, estrutura de dados, linguagens de programação) Engenharia de Software - Se preocupa com os problemas práticos de produção de software útil. (Ex. Cronogramas, requisitos) Engenharia de Sistemas foco em todos os aspectos do desenvolvimento e evolução de sistemas complexos em que o software tem o papel principal. (Ex. Hardware, software, processos e pessoas) 20

Definição de Sistema Coleção de componentes inter-relacionados que trabalham em conjunto para atingir um objetivo 21

Sistema Técnicos Baseado em Computador (SBC) Arranjo de elementos organizados para atingir, através do processamento de informações, uma meta predefinida. Incluem componentes de Hardware e Software, mas não procedimentos e processos. 22

Sistemas Sociotécnicos Incluem um ou mais sistemas técnicos, mas, principalmente, também pessoas que entendem o propósito do software dentro do sistema. Processos e pessoas são partes inerentes do sistema, regulados por políticas e regras organizacionais. São sistemas corporativos destinados a contribuir para o cumprimento de uma meta de negócio. Ex. Aumentar as vendas, arrecadar impostos, segurança do espaço aéreo. 23

Processo de desenvolvimento de sistemas 24

Engenharia de Sistemas Engloba todas as atividades envolvidas na aquisição, especificação, projeto, implementação, validação, implantação, operação e manutenção dos sistemas sociotécnicos. O Engenheiro de Sistemas define a organização e interação dos elementos (hardware, pessoas, softwares e procedimentos) de um sistema baseado em computador. Deve-se enxergar a floresta, pois não se vê as florestas pelas árvores. Inicia-se com a clara compreensão do contexto! 25

Leitura complementar Capítulo 1. Sommerville Introdução à engenharia de software Capítulo 10. Sommerville Sistemas Sociotécnicos No silver bullet: Essence and accidents of software engineering. Brooks, F. P. Problemas da engenharia de software. Hall da Vergonha de Software. http://spectrum.ieee.org/computing/software/why-software-fails - Casos de fracassos em projetos de desenvolvimento de sistemas. 26

Referências [1] - This Car Runs on Code. Último acesso em Abril de 2013. http://www.spectrum.ieee.org/feb09/7649 [2] - AutoDesk AutoCAD. Último acesso em Abril de 2013. http://www.autodesk.com/products/autodesk-autocad/buy [3] - Lojas MM.com. Último acesso em Abril de 2013. http://www.lojasmm.com [4] Ian Sommerville. 9. ed. 2011.. [5] - IEEE 610.12 (1990) IEEE Standard Glossary of Software Engineering Terminology. [6] Hall da Vergonha de Software. Último acesso em Abril de 2013. http://spectrum.ieee.org/computing/software/why-software-fails [7]. Prof. Ricardo Argenton. Último acesso em Abril de 2013. www.univasf.edu.br/~ricardo.aramos/disciplinas [8] Software Wars. Último acesso em Abril de 2013. http://www.mshiltonj.com/software_wars/current/ 27