Sunteți pe pagina 1din 31

UFCD 5407 Sistemas de Informao

fundamentos
Tpicos sumrio

1. Introduo
2. Processos e Metodologias
3. Modelos e Modelao
4. Boas Prticas no Desenvolvimento de Software
5. Fases do processo de Desenvolvimento de software
6. Processos de Desenvolvimento de Software
7. Concluso
8. Exerccios
1- Introduo
A produo de software frequentemente uma atividade no
estruturada, por vezes catica, sem orientao de natureza
estratgica e sem planos de gesto e controlo. Assim, chegou-se
denominao build and fix (programar e corrigir).

Os problemas podem ser de tal dimenso que fundamental a


definio e aplicao de princpios, regras e estratgias que
conduzam a melhorias em todos o processo de desenvolvimento de
software. Este devero ser os princpios orientadores dos
informticos envolvidos na implementao de um SI.

No processo de desenvolvimento de SI necessrio definir a


interveno e conjugar corretamente as interaes entre Pessoas, o
Processo aplicado, as caractersticas do Produto e o Projeto que
orienta as atividades a desenvolver.
1- Introduo
Pessoas (informticos, gestores e utilizadores) motivadas e comprometidas com o
projeto garante o respetivo sucesso;

Processo, com tcnicas e regras bem definidas permite atingir os objetivos


propostos;

Produto de qualidade s se consegue produzir se se compreender as necessidades


reais dos utilizadores;

Projeto, s com um projeto credvel e controlado possvel cumprir prazos e


custos propostos.

Segundo (Pressman, 2006, p.349): Qualidade de software a satisfao de requisitos

funcionais e de desempenho explicitamente declarados, normas de desenvolvimento

explicitamente documentadas e caractersticas implcitas que so esperadas em todo

software desenvolvido profissionalmente.


1- Introduo
Em 1996, Barry Boehm identificou 7 questes que qualquer
projeto de SI dever responder, so frequentemente agrupadas
no designado principio W5H2:
Porque que o sistema vais ser desenvolvido (Why)?

O que vai/deve ser feito (What)?

Quando que vai ser feito (When)?

Quem o responsvel (Who)?

Onde que as responsabilidades esto localizadas (where)?

Como que vai ser feito (How)?

Quando vai custar em termos de recursos (How much)?


2- Processos e Metodologias (conceitos)
Processo de desenvolvimento de Software, designa a sequencia de
atividades normalmente agrupadas em tarefas e fases e executadas de
forma sistemtica e uniformizada, realizadas por intervenientes com
responsabilidades bem definidas e que a partir de um conjunto de
entradas produzem um conjunto de sadas.

Segundo [Booch 94], o processo de desenvolvimento de software pretende atingir 4


objetivos fundamentais:
Providenciar orientao sobre a sequencia de realizao das atividades
envolvidas;
Especificar os modelos descritivos do sistema que devem ser desenvolvidos;
Dirigir as tarefas dos participantes e da equipa como um todo;
Providenciar critrios para monitorizao e avaliao dos modelos e atividades
do projeto.
2- Processos e Metodologias (conceitos)
Metodologia, alm da sequncia de etapas e procedimentos
recomendados acrescenta a utilizao de um conjunto de ferramentas,
tcnicas e notaes, bem como, referncias a diversos princpios e regras
cujo objetivo concretizar na prtica as orientaes tericas. Segundo
[Booch94]Devemos incluir:
Regras de elaborao de estimativas (custos, prazos);
Tcnicas para efetuar medies;
Procedimentos a seguir de forma a garantir a qualidade;
Programas de formao;
Modelos de documentao a produzir, vulgarmente designados por
Templates;
Exerccios prticos detalhados;
Tcnicas para a configurao da metodologia, que podero ser aplicadas de
modo a possibilitar a sua adaptao a realidades especificas.
2- Processos e Metodologias (conceitos)
Ciclo de vida, pode ser encarado como um sinnimo de processo.
2- Processos e Metodologias
3- Modelos e Modelao
Conceitos
Modelo Consiste na interpretao de um dado domnio do problema (fragmento do
mundo real sobre o qual as tarefas de modelaes e construo do sistema de
informao incidem) segundo uma determinada estrutura de conceitos.
Um modelo sempre uma interpretao simplificada da realidade.
Um modelo apresenta apenas uma viso.
Esquema a especificao do modelo usando uma determinada linguagem
Diagrama Representao grfica do esquema (ex. esquema relacional do modelo de
dados de um sistema de crdito bancrio ou um diagrama de classes de um sistema
de faturao)
Um modelo apresenta apenas uma viso de um fragmento do mundo real,
necessrio a produo de vrios modelos para representar e compreender o sistema
correspondente.
3.1- Princpios da modelao

4 princpios bsicos:

P1 - A escolha dos modelos.

P2 Cada modelo deve poder ser expresso em diferentes nveis


de preciso/abstrao.

P3 Os melhores modelos refletem a realidade.

P4 Nenhum modelo suficiente por si s.


4 Boas Prticas no Desenvolvimento de Software
A complexidade uma caracterstica inerente ao software.
Segundo [Booch 94], esta complexidade tem origem em 4
fatores:
A complexidade do domnio do problema
A dificuldade de gerir o processo de desenvolvimento
A flexibilidade que possvel (ou no)implementar atravs de
software.
Os problemas de caracterizao do comportamento de sistemas
discretos.

[Courtois85] identificou outros vrios atributos de um sistema complexo


4 Boas Prticas no Desenvolvimento de Software
Existe uma limitao natural da capacidade humana em lidar com a
complexidade, pois no conseguimos estar em dois stios ao mesmo tempo.

Dijkstra sugeriu a aplicao do principio da Decomposio hierrquica,


tambm conhecida por divide and conquer (dividir para conquistar),
atravs do qual um sistema dividido em sub-sistemas mais elementares
e assim sucessivamente, at que a sua resoluo seja mais simples.

Mecanismo de abstrao, favorece a eliminao da complexidade


optando por esquecer os detalhes menos importantes e focar a ateno
nos mais relevantes lidando com modelos simplificados, mas considerados
suficientes para entender e solucionar o problema em anlise.
4.1 Princpios fundamentais para a produo de
software de qualidade
O desenvolvimento deve ser efetuado de forma iterativa, repetindo as
mesma atividade em momentos temporais desfasados, mas detalhando o
mbito das funcionalidade do sistema.

Efetuar uma gesto integrada dos requisitos, permitindo a verificao da


rastreabilidade dos mesmos desde o momento da sua identificao at
respetiva implementao, facilitando todo o processo de gesto de
alteraes.

Utilizar arquiteturas baseadas em componentes reutilizveis, como


forma de diminuir o esforo de desenvolvimento e posterior manuteno
4.1 Princpios fundamentais para a produo de
software de qualidade
Modelar o software atravs de diagramas, mais facilmente
compreensveis e menos sujeitos a interpretaes subjetivas.

Efetuar sistematicamente a verificao da qualidade, e no apenas no


processo de desenvolvimento.

Implementar um processo sistemtico de controlo de alteraes.


4.1 Princpios fundamentais para a produo de
software de qualidade
Existem ainda outros princpios que garantem o sucesso no
desenvolvimento de software:
Conseguir e promover o envolvimento dos utilizadores

Utilizar uma abordagem orientada para a resoluo de problemas.

Definir e utilizar normas para o desenvolvimento e documentao

Justificar o desenvolvimento de software como uma atividade


estratgica e como investimento financeiro.

Conceber sistemas de modo a facilitar a sua expanso e alterao.

Podero consultar o Software Engineering Institute, http://www.sei.cmu.edu


5 Fases do Processo de Desenvolvimento de
Software
5 Fases do Processo de Desenvolvimento de
Software
Do problema para a soluo

Problema

Anlise
Domnio da
Realizao
Desenho
Pro
Dom
Domnio da
soluo
Implementao

Domnio do
problema
5.1 Tarefas Transversais
Tarefas importantes que agrupam atividades repetidas sistematicamente ao
longo de todo o processo.

Gesto do Projeto, agrupa um conjunto de atividades relacionadas com a


gesto de RH, recursos financeiros e o controlo dos prazos de execuo
das vrias tarefas. caracterizado por 4 grandes grupos de atividades:
planeamento, controlo e monitorizao da execuo, interveno e
realizao de medidas corretivas.

Gesto de alteraes, fundamental que estejam previstos mecanismos


de controlo de alteraes num processo em curso.
5.2 Planeamento
Esta fase descreve uma viso global sobre o mbito do trabalho a
realizar, do modo a elaborar um plano e a efetuar uma anlise de
viabilidade do projeto.

Tarefas de um planeamento:
Elaborar o caderno de encargos e a avaliao de propostas a englobar
nesta tarefa;

Recolha de informao para identificar o problema ou oportunidade


determinar se a situao atual justifica o desenvolvimento de uma
nova soluo suportada por um SI.
5.3 Anlise
Estudo detalhado do domnio do problema. composto por 2 grandes momentos ou
sub-tarefas:
Levantamento de requisitos, requisito uma afirmao sobre uma
funcionalidade ou condio que o sistema dever possuir[Kotonya98]. Para os
identificar adequadamente, aplicado um conjunto de tcnicas de modo a obter a
perceo detalhada daquilo que o sistema dever efetuar. Deve ter-se a
preocupao de encontrar a melhor soluo, pois nem sempre o que o cliente
pede o que necessita, deve tambm considerar-se no s as funcionalidades
atuais, mas determinar a situao futura a atingir.
Especificao do sistema/Especificao de Requisitos, conjunto de todos os
requisitos e funcionalidades reunidos num documento. Rene tambm outro tipo
de informao como os fluxos de informao que ocorrero no sistema, a
identificao dos componentes das relaes e restries do sistrema, as reas
internas e externas da organizao afetadas.
5.4 Desenho
efetuada a definio do domnio da soluo, com base nos resultados
produzidos pela anlise.

Procede-se a especificao das caractersticas que a implementao do


sistema dever apresentar, bem como a realizao de otimizaes de
acordo com a infraestrutura tecnolgica de suporte (arquitetura de
computadores, tecnologias de BD, sistemas de execuo, infraestrutura de
objetos e/ou componentes).

tambm definido o ambiente e as linguagens a utilizar no


desenvolvimento do sistema.

Fase da especificao tcnica com definio de componentes


aplicacionais, tecnolgicos e dados.
5.5 Implementao
Concretizao do modelo de desenho

As atividades desta tarefas devem ser apoiadas por ferramentas capazes


de produzir automaticamente diversos componentes do sistema
concretizada por ferramentas e ambientes de desenvolvimento e
integrados.

Sistemas de informao cliente/servidor, ambientes de desenvolvimento


bastante produtivos, baseados em infraestruturas de
objetos/componentes evoludos, complexos e providenciando tcnicas de
prototipagem e de desenvolvimento visual, exemplo:
IDE (Integrated Development Environment)
5.6 Testes
Segundo as caractersticas do sistema (Analista/controlo de
qualidade):

Testes de desempenho
Testes de carga
Testes de usabilidade
Testes funcionais

Segundo o mbito dos componentes a verificar:


Testes unitrios ( programador)
Testes de integrao (Analista/controlo de qualidade)
Testes de sistema (Analista/controlo de qualidade)
Testes de aceitao (utilizador)
5.7 Instalao
Esta tarefa consiste na preparao e instalao do sistema na infraestrutura
computacional destino e na sua subsequente operao regular.

Tarefas envolvidas:
Configurao e parametrizao do sistema implementado e dos sistemas de
suporte requeridos (ex. SGBD, servidores aplicacionais, etc.)

Instalao dos componentes aplicacionais necessrios;

Definio de perfis, de utilizadores e de nveis de segurana

Formao dos utilizadores no sistema;

Definio e implementao de politicas de segurana (ex. criao de backup)

Elaborao de documentos de operao, administrao e utilizao do


sistema.
5.8 Manuteno
O objetivo desta tarefa garantir que a ocorrncia de novos requisitos,
erros, melhorias tcnicas ou questes de desempenho do sistema que
apenas se tornam percetveis com a crescente utilizao do sistema.

Em complemento manuteno so realizadas outras atividades que


garantem o bom funcionamento do sistema segundo diversos critrios, e
que tm uma interveno a nvel tecnolgico. So um conjunto de
atividades genericamente designadas por operao do sistema, e que
incluem a realizao de cpias de segurana, a verificao dos parmetros
de desempenho, a definio de novos utilizadores, etc.
6 Processos de Desenvolvimento de Software
6.1 Modelo em cascata
As atividades so agrupadas em tarefas, executadas sequencialmente, de forma que
uma tarefa s tem inicio quando a tarefa anterior estiver terminada. Para se tronar
mais eficiente utiliza as tcnicas de prototipagem rpida logo no inicio do processo
permitindo que o cliente veja e valide um modelo de interface e das respetivas
funcionalidades que ir ter disponvel, minimizando problemas inerentes da
comunicao.
6.2 Processos iterativos e incrementais
O processo iterativo corresponde ideia de refinar o mbito e a concretizao do
sistema pouco-a-pouco. O mbito do sistema no alterado, mas o seu detalhe vai
aumentando em iteraes sucessivas.
Processo incremental, corresponde ideia de aumentar, pouco-a-pouco o mbito do
sistema.
6.1 Modelo em Cascata
6.1 Modelo em Cascata
6.2 Processos Iterativos e Incrementais
7 Concluso

Este capitulo pretendeu dar realce a importncia da aplicao de


mtodos e tcnicas que contribuam para a melhoria do processo
de desenvolvimento de software, nomeadamente com a
aplicao dos princpios da abstrao e da decomposio
hierrquica face complexidade e dimenso crescentes do
software e a utilizao de um processo de desenvolvimento
uniformizado.

S-ar putea să vă placă și