engenharia de software prefácio

36
Engenharia de Software prefácio joa & srlm

Upload: beulah

Post on 20-Feb-2016

27 views

Category:

Documents


0 download

DESCRIPTION

Engenharia de Software prefácio. joa & srlm. Free Software Engineering: A Field to Explore. Gonzáles-Barahona and Robles UPGRADE Vol. IV No. 4 August 2003. Free Software Projects. Nascem como iniciativa isolada e particular Usuários são co-desenvolvedores Divulgação “boca-a-boca” - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Engenharia de Software prefácio

Engenharia de Softwareprefácio

joa & srlm

Page 2: Engenharia de Software prefácio

Free Software Engineering: A Field to Explore

Gonzáles-Barahona and RoblesUPGRADE Vol. IV No. 4 August 2003

Page 3: Engenharia de Software prefácio

Free Software Projects

• Nascem como iniciativa isolada e particular

• Usuários são co-desenvolvedores• Divulgação “boca-a-boca”• Teste massificado pelos usuários• Gerência de versões é complexa e

“bem-definida”

Page 4: Engenharia de Software prefácio

Open Source Projects

• (Sun apr 16 00:10:21 BRT 2006) 133,421 projects!•  Communications (13469)•  Database (5388)•  Desktop Environment (2822)•  Education (3252)•  Formats and Protocols (1292)•  Games/Entertainment (12694)•  Internet (21951)•  Multimedia (11518)•  Office/Business (6136)• Other/Nonlisted Topic (2065) • Printing (417) •  Religion and Philosophy (274)•  Scientific/Engineering (9942)•  Security (2494)•  Sociology (355)•  Software Development (18587)•  System (17790)•  Text Editors (2436)

Page 5: Engenharia de Software prefácio

Causas de Descontinuidade de Projetos SW Livre

• Falta de interesse, tempo ou motivação– mudança de liderança nos projetos impactam

sua continuidade• Code Forking

– cada usuário tem acesso ao código e pode alterá-lo e redistribuí-lo sem o conhecimento do líder do projeto

Page 6: Engenharia de Software prefácio

Free Software EngineeringResume

• “A Field to Explore”• “is still in its infancy” (2003!)• “How to create free software? Issues:

– Classification of free software projects– Creation of a methodology– Methods + classification + models ++

Simulation (intelligent agents) = Free SW Engineering”

Page 7: Engenharia de Software prefácio

Process Implementation

Sarah SheardSoftware Productivity Consortium

Thursday, July 3, 2003

or,We’ve documented all our

processes—what’s left to do?

Page 8: Engenharia de Software prefácio

So what does it take?

1. Manage as a project 2. Obtain management support 3. Establish policy 4. Establish measurement baseline 5. Train employees and managers 6. Tailor processes7. Maintain process assets 8. Ensure processes are being used 9. Learn Lessons 10. Improve Processes 11. Appraise the organization

Page 9: Engenharia de Software prefácio

Process Implementation Requires Everyone!

• Senior management sets the tone and ensures other managers make PI happen

• SEPG drives the process improvement program to its goals

• Projects review processes, tailor standard processes, use their tailored versions, and recommend improvements

• QA audits independently

Page 10: Engenharia de Software prefácio

Funciona para SW Livre?

• Adaptação de Processos de 1990?• 2006! Distributed Development...

• O que fazer?– Ler– Praticar– Montar experimentos reais e avaliar...

Page 11: Engenharia de Software prefácio

A Framework for creating hybrid-open source software

communities

Srinarayan Sharma et. al.

Info Systems (2002), 12.

Page 12: Engenharia de Software prefácio

Introduction

• OSS model is a fundamentally new and revolutionary way to develop software

• organizations are having difficulty building a business model around the open source paradigm

• not all OSS initiatives have been successful

• Framework for creating Hybrid-OSS communities

Page 13: Engenharia de Software prefácio

The OSS model

• Three dimensions:– structure, process and culture

structure culture

process

Eletronic communication

Multicultural community

Values: reciprocity, gift giving, reputation, ideology

Core assumptions

Division of labour

Co-ordination mechanisms

Distribution od decision-making

Organizational boundaries

Informal structure

Political structure

Legitimate basis of authority

Page 14: Engenharia de Software prefácio

OSS development process

• Problem discovery• Finding volunteers• Solution identification• Code development and testing• Code change review• Code commit and documentation• Release management

Page 15: Engenharia de Software prefácio

Framework for creating Hybrid-

OSS communitiesPrinciples:• Community building• Community governance

– Shared governance– Membership management– Incentives and rewards

• Community infrastructure

Page 16: Engenharia de Software prefácio

Discussion

... open source communities versus Software Factories?

• personal time and autonomy... freelancers

... project-oriented

• ... there are several avenues for future research– ... to refine the proposed framework and validate it

empirically

Page 17: Engenharia de Software prefácio

Porto DigitalUFPE/UFRPE – CESAR

IN953 - desenvolvimento distribuído de software em indústria, comunidades acadêmicas e científicasuma fábrica de software livre...

[email protected]@cesar.org.br

Page 18: Engenharia de Software prefácio

linhas-mestrasIN953 – Engenharia de Software

• Process Implementation – Software Factories (Gibeon, Ana Paula, Thayssa)

• F/L/OSS (Alan)

• OSS Business Model (Alan, Ana Paula, Aisa)

• Scientific Relevant Projects (Convidados)

• Business & Humanitas (TODOS!)

Page 19: Engenharia de Software prefácio

fábricas de software

princípiosconceitosilusões

Page 20: Engenharia de Software prefácio

fábrica de sw na prática• Operação profissional• Processo de desenvolvimento transparente• Retorno rápido ao cliente• Alta produtividade

• Ferramentas e processos padronizados

• Alta qualidade• Dados históricos, previsibilidade e análise de risco

• Reusabilidade de código[1968 G&E, R. W. Berner]

[2003 IEEE Computer Vol.36 Num.3, B. Boehm][2005 IEEE Software Vol. 22 Num 2, PostModern SW Design]

Page 21: Engenharia de Software prefácio
Page 22: Engenharia de Software prefácio

Cathedral and Bazaar

e Desenvolvimento de Software segundo Eric Raymond, 1997• Alguns projetos são como Cathedrals– altamente centralizados em

poucas pessoas que decidem projeto e implementação

– para fazer parte deve-se aceitar as definições

http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/

Page 23: Engenharia de Software prefácio

Outros são como Bazaars (sw livre)

• Sem planejamento detalhado mas orientados!• Linux Kernel (www.linux.org): “hierarchical”

– Linus Torvalds, “The Benevolent Dictator”• APACHE Foundation (www.apache.org):

“meritocracy”– Para fazer parte você deve ter colaborado continuamente

em projetos da fundação• GCC (gcc.gnu.org): “steering Commitee”

Page 24: Engenharia de Software prefácio

Conceitos

The factory is an organization inhabited by people engaged in a common effort, work is organized one way or the other, standardization is used for coordination and formalization, and systematization is important, but there will be several options for the design of a particular software factory

[Aaen, Botcher, Mathiassen, Software Factories, 1997]http://www.cin.ufpe.br/~in953/papers/Software_Factories_17.pdf

Page 25: Engenharia de Software prefácio

...considerações...

The four approaches are important contributions towards this goal. At the same time the approaches individually may lead to unfortunate illusions. Learning from the relative strengths and weaknesses between the approaches may help us avoid becoming victims of these illusions

[Aaen, Botcher, Mathiassen, Software Factories, 1997]http://www.cin.ufpe.br/~in953/papers/Software_Factories_17.pdf

Page 26: Engenharia de Software prefácio

...e ilusões...

fábrica de software ≠ produção em massa

padronização, formalização, especialização, controle ≠ produção de software com

qualidade

o que fazer?

Page 27: Engenharia de Software prefácio

building a software factory...[Making the software factory work... 1990-1999]

http://www.cin.ufpe.br/~in953/papers/MakingTheSoftwareFactoryWorkLessonsFromADecadeOfFactory.pdf

1. to define a detailed software development process2. staff members were given extensive training in the new

process3. process specification separated from process execution4. data collection and analysis

1. interviews2. software process assesments3. process attributes for each project4. configuration management system5. project tracking data

Page 28: Engenharia de Software prefácio

o PROCESSO é complexo!

(c) MERX LLC

Page 29: Engenharia de Software prefácio

Elaborado: OJS - Revisão: CAB, JPML, GMR - Aprovado: CAB - Versão 0

Fábrica de Software da Ampla Consultoria em Informação

Prospecção

Execução

PLT

Execução

Proposta

Proposta

Encerramento

Garantia

Execução

PPPP

PC

PCPP PP

PROT

PPF

PT

DR

PC

PC PROTDRPTPPF

MER

DR

PPF

PT

PC

PPF

PP

PT

MER

UC

MER

UC

DR

DRDR

MER

UC

DR

PROT

DR

DRPROT

DR

UC

AR

MER

PROT

N

S

N

S

S

N

OK?

RevisarRequisitos,

interfaces, casosde uso e MER

Gc

Criar PropostaComercial

Líder Equipe 2

Validar requisitos

Criar PropostaTécnica e Plano

de Projeto

Validar interfacese requisitos

Técnicos

Cl

Líder Equipe 1

Gc

Gerente de Projetos

Di

Agendar visitaspara apresentaçãoe/ou elicitação de

requisitos

Diretor

Identificardemandas que

possam seratendidas pelas

áreas deconhecimento

Gp

Projetar interfaces

Técnicos

Gc

Cliente

Requisitos/escopoestão claros?

Gp

Prototiparinterfaces

Projetarinterfaces?

1

Técnicos

De

Gerente ComercialGerente de Tecnologia

Gerente de Processos e Qualidade

Início

Gp

Líder Equipe n

Análise de Pontosde Função

Gc Di

Gc Gp

GcCl Gp

Gp

Gp Gc

Gp

N

S

S Revisões?

Projetoaprovado? C

1

Registrarsuspensão do

projeto

Apresentar PC,PT e DR

Revisar DR, PT,PPF, PC e PROT.

Di GpGc

Gp

N

S Renegociar?

Revisarcronograma

Revisar PropostaComercial

Avaliar riscos

Preparar ambientede

desenvolvimento

Lp

Lp

Reavaliarnecessidades de

treinamento

Lp

Gp

Reavaliar recursoshumanos,software ehardware

LpGp

Lp

Gp GcDi

S

S

N

S

N

S

N

N

S

S N

Fim

PP

OK?

MER MER

DR

Implementar

A

Projetar banco dedados

PT

Apresentarrequisito paradesenvolvedor

PC

DS (o)

BIntegrar?

Corrigir

Preparar Plano deTeste

Lp

B

Solicitação demudanças

PLT

SM

Selecionarrequisito

Cl

Avaliar solicitação

DR

PLT

Problemas naimplementação?

Realizar Teste deUnidade

Comunicar Líderdo Projeto

PC

Revisar requisitos,plano de projeto

De

Realizar casos deuso

De

DI (o) Nãoconformidades?

PP

DS (o)

Agendar reuniãocom cliente

MER

PT

B-1

PC

Aprovarmudanças?

PLT

DR

Lp

PP

A

DI (o)

PP

Revisar requisitose plano de projeto

3

DR

Renegociar

PT

Lp

PT

Pode ser resolvidointernamente?

A-1

B-2

Encerrarsolicitação

DC

B-2

Especif icar casosde teste de

unidade

A-2

PC

RIT

Lp

Gp

DC

GpSM

Início

De

Gc

SM

Lp

Gp Gc

Gp Gc

LpCl

Di

GpLp

Lp

De

De

S

N

S

N

PP

B

Nãoconformidades?

PP

PP

3

RIT

Analisar nãoconformidades e

planejarimplementação

Gp

RIT

DeGq

Analisar nãoconformidades e

planejarimplementação

B

Realizar Teste deSistema

Realizar Teste deIntegração

Nãoconformidades?

NS

N

S

S

N

Iniciar período degarantia(90 dias)

Analisar

Gq

PP

Preparar materialde treinamento

PO

PP

B

DR

De

Agendartreinamento

Gp

B

Realizartreinamento

DRProblema

encontrado?

PT

Gp

PC

Instalar econfigurarsoftware

Aceitação totalou parcial?

Procede?

Analisar

DR

De

AR

Teste deaceitação

(com cliente)

De

DeGp

Realizar pesquisade opinião

C

Reunião deencerramento

(equipe)

RM

KB

De

Gp

AR

Di

Gp

Avaliar resultadosdo projeto

Gq

Lp

Registrarencerramento do

projeto

Fim

PO

Gp

Artefato

Artefato fonte

Artefato produzido

Fluxo do processo

Processo

Ponto de decisão

Responsabilidade

Di DiretorCl ClienteGc Gerente ComercialGt Gerente de TecnologiaGp Gerente de ProjetosGq Gerente de Processos e QualidadeLp Líder do ProjetoDe Desenvolvedor

Atores

Artefatos

AR_<Cód. do Projeto>_<aaaammdd> Ata de ReuniãoDR_<Cód. do Projeto>_V<99>.<99> Documento de RequisitosPT_<Cód. do Projeto>_V<99>.<99> Proposta TécnicaPC_<Cód. do Projeto>_V<99>.<99> Proposta ComercialPP_<Cód. do Projeto>_V<99>.<99> Plano de ProjetoMER_<Cód. do Projeto>_V<99>.<99> Modelo de Entidades e RelacionamentosPLT_<Cód. do Projeto>_V<99><99> Plano de TesteRIT_<Cód. do Projeto>_V<99><99> Relatório de Incidentes de TesteMU_<Cód. do Projeto>_V<99>.<99> Manual do UsuárioPO_<Código do Projeto> Pesquisa de OpiniãoPROT_<aaaammdd> Protótipo (Na pasta I)SM_<Cód. do Projeto>_V<99>.<99> Solicitação de MudançasUC_<Cód. do Projeto>_V<99>.<99> Caso de UsoPPF_<Código do Projeto>_V<99>.<99> Pontos por FunçãoDC_<Código do Projeto>_V<99>.<99> Diagrama de ClassesDS_<Código do Projeto>_V<99>.<99> Diagrama de SequênciaDI_<Código do Projeto>_V<99>.<99> Diagrama de InteraçãoRA_<Código do Projeto>_V<99>.<99> Relatório de AceitaçãoRM_<Código do Projeto>_V<99>.<99> Relatório de Melhorias no ProcessoKB Knowledge Base

(o) = Opcional

Gp DeGq

GpCl

GpGq

Gq

Gq Gp De

Gq

PP

RA

Encerramento

MER

DR

PPF

PT

PC

PPF

PP

PT

MER

UC

MER

UC

DR

DRDR

MER

UC

DR

ReviseRequirements,

interfaces, E-Rand Use Cases

Gc

Build CommercialProposal

Build TechnicalProposal and

Project Plan

DiGc

Gp

1

Gp

Function PointAnalysis

Gp Gc

Gp

Contrato

Execução

Entrega

Prospecção

processo é complexo... Ex.: Amplaprocesso é complexo... Ex.: Ampla

Page 30: Engenharia de Software prefácio
Page 31: Engenharia de Software prefácio

e as pessoas?...

(c) MERX LLC

Page 32: Engenharia de Software prefácio

What is institutionalization?

No, not that kind!

Page 33: Engenharia de Software prefácio

o que “sabemos” aqui?• TODO o pressman ou sommerville (Software

Engineering)• ou seja:

– requisitos, especificações, refinamento, validação e verificação, métodos, técnicas, linguagens e ferramentas, componentes, reutilização, manutenção, modelagem de processos, qualidade, reengenharia,, verificação, validação e teste... além de programação JAVA++!...

– {faltaria o quê?}

Page 34: Engenharia de Software prefácio

o que fazer...• montar uma fábrica de

software livre?• como? em 4 meses?• funciona?

http://200.199.23.162/in953/

Page 35: Engenharia de Software prefácio

para casa...

Leitura de referências desta aula 10 + 8 papers

+Navegação Fábricas Passadas

=1ª NOTA 24.abr.06

Page 36: Engenharia de Software prefácio

Summer of Code 2006: receba US$ 4500,00 para contribuir com

softwares livres• http://code.google.com/soc/Summer of Code • Welcome to the Summer of Code 2006 site. As

organizations begin to sign up for Summer of Code, you will see a list of organizations and links to their ideas for student projects. We are not taking student applications just yet, see the FAQ for more details. You can talk to us in either on Summer-Discuss-2006 or on IRC in #summer-discuss on SlashNET.