• Nenhum resultado encontrado

ProcessosdeSoftware

N/A
N/A
Protected

Academic year: 2021

Share "ProcessosdeSoftware"

Copied!
50
0
0

Texto

(1)

Processos de Software

(2)

 Introduzir modelos de processo de software

 Descrever três modelos de processo genérico

e quando estes podem ser utilizados

 Descrever modelos de delineamento de

processos para engenharia de requisitos, desenvolvimento de software, testes e evolução

 Explicar o modelo Rational Unified Process

 Introduzir a tecnologia CASE para apoiar

atividades de processo de software

(3)

 modelos de processo de software

 Iteração do processo

 Atividades do Processo

 O Rational Unified Process

 Computer-Aidade Software Engineering -

CASE

(4)

 Um conjunto estruturado de atividades

necessárias para desenvolver um sistema de software

◦ Especificação;

◦ Design (Projeto);

◦ Validação;

◦ Evolução.

 Um modelo de processo de software é uma

representação abstrata de um processo. Ele apresenta uma descrição de um processo a partir de uma perspectiva particular.

(5)

 O modelo em cascata

◦ Separa as fases distintas de especificação e desenvolvimento.

 desenvolvimento evolucionário

◦ Especificação, desenvolvimento e validação são intercaladas.

 engenharia de software baseada em componentes

◦ O sistema é montado a partir de componentes existentes.

 Existem muitas variantes destes modelos por

exemplo, um desenvolvimento formal onde um

processo em cascata é usado, mas a especificação é uma especificação formal que é refinada através de várias etapas até chegar a um projeto implementável.

(6)

Requirements definition

System and software design

Implementation and unit testing

Integration and system testing

Operation and maintenance

(7)

 Análise dos requisitos e definição

 Design do sistema e do software

 Implementação e teste das unidade

 Integração e testes do sistema

 Operação e manutenção

 A principal desvantagem do modelo cascata

é a dificuldade de acomodar mudanças depois que o processo está em

andamento. Uma fase deve ser concluída antes de passar para a próxima fase.

(8)

 Partição inflexível do projeto em estágios distintos,

torna difícil de atender às novas necessidades do cliente.

 Portanto, este modelo só é apropriado quando os

requisitos são bem compreendidos e as alterações serão bastante limitadas durante o processo de

design.

 Poucos Sistemas de negócios possuem requisitos

estáveis.

 O modelo em cascata é utilizado principalmente para

grandes projetos de engenharia de sistemas em que um sistema é desenvolvido em diversos locais.

(9)

desenvolvimento exploratório

◦ O objetivo é trabalhar com clientes e evoluir para um sistema final a partir da especificação de um primeiro esboço. Deve começar com requisitos bem compreendidos e adicionar novos recursos, na medida em que forem propostos pelo cliente.

Prototipagem descartável

◦ Objetivo é entender os requisitos do

sistema. Deve começar com requisitos mal

entendidos para posterior esclarecimento do que realmente é necessário.

(10)

Concurrent activities

Validation versionFinal Development Intermediateversions

Specification versionInitial

Outline description

(11)

Problemas

◦ Falta de visibilidade do processo;

◦ Os sistemas são muitas vezes mal estruturados;

◦ habilidades especiais (por exemplo, em

linguagens para prototipagem rápida) podem ser necessárias.

Aplicabilidade

◦ Para sistemas interativos pequenos ou médios;

◦ Para pedaços de grandes sistemas (por exemplo,

a interface com o usuário);

◦ Para os sistemas de vida curta.

(12)

 Baseado no reuso sistemático onde sistemas são

integrados a partir de componentes existentes ou Sistemas COTS (Commercial-off-The-Shell).

 fases do processo

◦ análise de componentes;

◦ modificação dos requisitos;

◦ Projeto do Sistema com reutilização;

◦ Desenvolvimento e integração.

 Esta abordagem vem sendo cada vez mais

utilizada na medida em que surgem novos componente.

Engenharia de Software baseada em

componentes

(13)

Desenvolvimento Orientado

à

Reutilização

Requirements specification Component analysis Development and integration

System design with reuse Requirements modification System validation

(14)

Requisitos de sistema SEMPRE evoluem ao

longo do projeto portanto a iteração do

processo onde os estágios iniciais são

retrabalhados, é sempre parte do processo

para sistemas de grande porte.

Iteração pode ser aplicada a qualquer um

dos modelos de processo genéricos.

Duas abordagens (relacionadas)

◦ entrega incremental;

◦ desenvolvimento em espiral.

(15)

 Ao invés de entregar o sistema de uma vez, o

sistema é entregue dividido em incrementos, cada um contendo partes da funcionalidade necessária.

 Requisitos do usuário são priorizados e os

requisitos de prioridade mais alta são incluídos nos incrementos iniciais.

 Uma vez que o desenvolvimento de um

incremento é iniciado, os requisitos são congelados apesar dos requisitos dos

incrementos posteriores continuarem a evoluir.

(16)

Validate increment Develop system increment Design system architecture Integrate increment Validate system Define outline requirements Assign requirements to increments System incomplete Final system

desenvolvimento incremental

(17)

 Respostas do cliente podem ser fornecidas

em cada incremento, assim a

funcionalidade do sistema está disponível mais cedo.

 Incrementos iniciais atuam como um

protótipo para ajudar a obter os requisitos dos incrementos posteriores.

 Menor risco de fracasso do projeto global.

 A prioridade maior é dada para serviços que

tendem a receber mais testes

(18)

 Uma abordagem ao desenvolvimento

baseada no desenvolvimento e entrega de pequenos incrementos funcionais.

 Confia na melhora constante do código,

envolvimento do usuário com a equipe de desenvolvimento e programação em pares.

 Abordados posteriormente

(19)

 O Processo é representado como uma

espiral em vez de uma seqüência de atividades com retorno.

 Cada volta na espiral representa uma fase

do processo.

 Nenhuma fase fixa como especificação ou

projeto – as voltas na espiral são escolhidas dependendo do que for necessário.

 Os riscos são explicitamente avaliados e

resolvidos ao longo do processo.

(20)

Risk analysis Risk analysis Risk analysis Risk analysis Proto-type 1 Prototype 2

Prototype 3 Opera-tional protoype

Concept of Operation

Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unit test Integration test Acceptance test

Service Develop, verify

next-level product Evaluate alternatives, identify, resolve risks Determine objectives,

alternatives and constraints

Plan next phase

Integration and test plan Development

plan Requirements plan

Life-cycle plan REVIEW

(21)

 Definição dos objetivos

◦ Os objetivos específicos para a fase são identificados.

 A avaliação e redução dos riscos

◦ Os riscos são avaliados e as atividades postas em prática para reduzir os principais riscos.

 Desenvolvimento e validação

◦ Um modelo de desenvolvimento para o sistema

escolhido, que pode ser qualquer um dos modelos genéricos.

 Planejamento

◦ O projeto é revisado e a próxima fase da espiral é planejada.

(22)

 Especificação de Software

 Concepção e implementação do software

 Validação de Software

 Evolução do Software

(23)

O processo de estabelecer quais serviços

são necessários e as restrições no sistema

de operação e desenvolvimento.

Processo de engenharia de requisitos

◦ Estudo da viabilidade;

◦ Descoberta e análise dos requisitos; ◦ Especificação de requisitos;

◦ Validação dos requisitos.

(24)

Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation Feasibility report System models

User and system requirements

Requirements document

(25)

 O processo de converter a especificação do

sistema em um sistema executável.

 Projeto de Software

◦ Projetar uma estrutura de software que realiza a especificação;

 Implementação

◦ Traduzir essa estrutura em um programa executável;

 As atividades de projeto e implementação

estão intimamente relacionadas e podem ser intercaladas.

(26)

 A concepção arquitetônica

 especificação abstrata

 Projeto da interface

 Projeto dos componentes

 Projeto das Estruturas de Dados

 Projeto do Algoritmo

(27)

Architectural design Abstract specification Interface design Component design Data structure design Algorithm design System architecture Software specification Interface specification Component specification Data structure specification Algorithm specification Requirements specification

Design activities

Design products

(28)

Abordagens sistemáticas para desenvolver

um projeto de software.

O projeto é geralmente documentadas

como um conjunto de modelos gráficos.

Possíveis modelos

◦ modelo de objeto;

◦ modelo de seqüência;

◦ modelo da transição de estados;

◦ modelo estrutural;

◦ Modelo de fluxo de dados.

(29)

 Traduzir um projeto em um programa e

remover erros do programa.

 A programação é uma atividade pessoal -

não há processo genérico de programação.

 Programadores realizam testes para

descobrir falhas no programa e remover essas falhas no processo de depuração.

(30)

Locate error

Design

error repair Repairerror programRe-test

(31)

 Verificação e validação (V & V) é a intenção

de mostrar que o sistema está de acordo com sua especificação e cumpre os

requisitos do cliente do sistema.

 Envolve verificar e testar processos e o

sistema.

 teste de sistema envolve executar o

sistema com casos de teste que são

derivados da especificação dos dados reais a serem processados pelo sistema.

(32)

Component

testing Systemtesting Acceptancetesting

(33)

 testes de unidades e componentes

◦ Os componentes individuais são testados de forma

independente;

◦ Os componentes podem ser funções ou objetos ou

agrupamentos coerente dessas entidades.

 Teste do Sistema

◦ Teste do sistema como um todo. Os testes das

propriedades emergentes é particularmente importante.

 Os testes de aceitação

◦ Testes com dados do cliente para verificar se o sistema atende as necessidades do cliente.

(34)

Requirements specification System specification System design Detailed design Module and unit code and test Sub-system integration test plan System integration test plan Acceptance test plan Service Acceptance test System integration test Sub-system integration test

fases de testes

(35)

 Um Software é inerentemente flexível e

pode sofrer mudanças.

 Como os requisitos mudam através da

alteração das circunstâncias de negócios, o software utilizado pelo negócio também

deve evoluir e mudar.

 Embora haja uma demarcação entre

desenvolvimento e evolução (manutenção), isto é cada vez mais irrelevante, menos e menos sistemas são completamente novos.

(36)

Assess existing systems Define system requirements Propose system changes Modify systems New system Existing systems

evolução do sistema

(37)

Um modelo moderno de processo

desenvolvido a partir dos trabalhos sobre

a UML outros trabalhos relacionados.

Normalmente descrito a partir de 3

perspectivas

◦ A perspectiva dinâmica que mostra as fases ao longo do tempo;

◦ A perspectiva estática que mostra as atividades do processo;

◦ A perspectiva prática que sugere boas práticas.

(38)

Phase iteration

Inception Elaboration Construction Transition

(39)

Início

◦ Estabelecer o plano de negócios para o sistema.

Elaboração

◦ Desenvolver uma compreensão do domínio do

problema e da arquitetura do sistema.

Construção

◦ Projeto do Sistema, programação e testes.

Transição

◦ Implantar o sistema em seu ambiente

operacional.

(40)

 Desenvolver software iterativamente

 Gerenciar os requisitos

 Uso de arquiteturas baseadas em

componentes

 Modelar visualmente o software

 Verificar a qualidade do software

 controle das mudanças no software

(41)

Workflow Description

Business modelling The business processes are modelled using business use cases. Requirements Actors who interact with the system are identified and use cases are

developed to model the system requirements.

Analysis and design A design model is created and documented using architectural models, component models, object models and sequence models. Implementation The components in the system are implemented and structured into

implementation sub-systems. Automatic code generation from design models helps accelerate this process.

Test Testing is an iterative process that is carried out in conjunction with implementation. System testing follows the completion of the implementation.

Deployment A product release is created, distributed to users and installed in their workplace.

Configuration and change management

This supporting workflow managed changes to the system (see Chapter 29).

Project management This supporting workflow manages the system development (see Chapter 5).

Environment This workflow is concerned with making appropriate software tools available to the software development team.

(42)

 Computer-Aided Software Engineering (CASE) é

um software de apoio ao desenvolvimento de software e de processos de evolução.

 automação de atividades

◦ Editores gráficos para o desenvolvimento do modelo do sistema;

◦ Dicionário de dados para gerenciar entidades do projeto; ◦ Construtor gráfico da para auxílio na construção da

interface do usuário;

◦ Depuradores para auxílio no encontro de erros no programa;

◦ tradutores automáticos para gerar novas versões do programa.

(43)

tecnologia CASE tem levado a melhorias

significativas no processo de software. No

entanto, estas melhorias não são tão

importantes como previstos

◦ A engenharia de software requer pensamento

criativo - este não é facilmente automatizado;

◦ Engenharia de software é uma atividade em

equipe e, para grandes projetos, muito tempo é gasto em interações da equipe. As tecnologias CASE ainda não dão apoio a essas iniciativas.

(44)

 Classificação nos ajuda a entender os diferentes

tipos de ferramentas CASE e seu suporte para o processo de atividades.

 perspectiva funcional

◦ As ferramentas são classificadas de acordo com sua função específica.

 perspectiva dos processos

◦ As ferramentas são classificadas de acordo com o processo de atividades que dão suporte.

 Perspectivas de Integração

◦ As ferramentas são classificadas de acordo com a sua organização em unidades integradas.

(45)

Tool type Examples

Planning tools PERT tools, estimation tools, spreadsheets Editing tools Text editors, diagram editors, word processors

Change management tools Requirements traceability tools, change control systems Configuration management tools Version management systems, system building tools Prototyping tools Very high-level languages, user interface generators Method-support tools Design editors, data dictionaries, code generators Language-processing tools Compilers, interpreters

Program analysis tools Cross reference generators, static analysers, dynamic analysers Testing tools Test data generators, file comparators

Debugging tools Interactive debugging systems

Documentation tools Page layout programs, image editors

Re-engineering tools Cross-reference systems, program re-structuring systems

(46)

Specification Design Implementation Verification and Validation Re-engineering tools Testing tools Debugging tools

Program analysis tools Language-processing tools

Method support tools Prototyping tools Configuration management tools

Change management tools Documentation tools

Editing tools Planning tools

classificação de ferramentas baseada na

atividades

(47)

 Ferramentas

◦ Dão suporte a tarefas isoladas do processo, tais

como verificação de consistência do projeto, edição de texto, etc.

 Bancadas - Workbenches

◦ Apoiam uma fase do processo como especificação

projeto, incluem normalmente um grande número de ferramentas integradas.

 Ambientes

◦ Dão apoio a totalidade ou uma parte substancial de

todo o processo. Normalmente incluem várias bancadas integrada.

(48)

Single-method workbenches General-purpose workbenches Multi-method workbenches Language-specific workbenches Programming Testing Analysis and design Integrated environments Process-centred environments File comparators Compilers Editors Environments Workbenches Tools CASE technology

(49)

 Processos de software são as atividades envolvidas na

produção e evolução de um sistema de software.

 modelos de processos de software são representações

abstratas desses processos.

 As atividades gerais são especificação, projeto e

implementação, validação e evolução.

 modelos de processo genéricos descrevem a

organização dos processos de software. Exemplos incluem o modelo em cascata, desenvolvimento

evolucionário e engenharia de software baseada em componentes.

 modelos de processo iterativos descrevem o processo

de software como um ciclo de atividades.

(50)

 Engenharia de requisitos é o processo de

desenvolvimento de uma especificação de software.

 Projeto e implementação transformam a

especificação em um programa executável.

 A validação envolve verificar se o sistema atende às

suas especificações e necessidades do usuário.

 A Evolução está preocupado com a modificação do

sistema após ele estar em uso.

 O Rational Unified Process é um modelo de processo

genérico que separa as fases das atividades.

 tecnologias CASE dão suporte às atividades de

processo de software.

Referências

Documentos relacionados

Cerimônias de homenagens ao “fundador da República brasileira” realizadas na Escola Agrotécnica Federal de São Cristóvão – SE (1939-1960)... Joaquim Tavares

Sendo assim, este estudo teve como objetivos verificar os níveis de intensidade da AF praticada durante as aulas de Educação Física em escolares de escola pública

Da análise geral dos factores de risco para o desenvolvimento de colonização/infecção por Candida verificou-se que o uso de próteses, o consumo excessivo de álcool e tabaco, a

Para o primeiro período experimental foram utilizadas 54 novilhas mestiças holandês-zebu, de onze a doze meses de idade e com peso médio inicial de 167,4 kg (variação de 167 a

Além dos cursos técnicos, o campus desenvolve projetos artístico-culturais, através de uma abordagem educativa não formal e este trabalho pretende analisar precisamente os

A elaboração da norma jurídica no Brasil é ainda o reflexo de uma interposição imprecisa e mal-sucedida do arquétipo de ordenação ori- ginalmente estabelecido no Liberalismo

percebe-se que, mesmo se tratando de imagens completamente diferentes, como a cor de preenchimento de maior superfície é o vermelho (que representa a atributos

Foi possível estimar parâmetros cinéticos relacionados à reação de hidrólise alcalina dos ésteres acetato de etila, estearina e palmitato de isopropila, também