- conjunto de dados ou um dado, desde que seja contextualizado em determinada realidade.
- organizações executa tarefas com base em um fluxo de informação,através do qual definem o objetivo da área de negócio onde atuam.
- conjunto de ações, etapas ou tarefas sequenciadas para atingir um determinado objetivo.
- outras definições:
- ordenação específica das atividades de trabalho no tempo e no espaço, com um começo, um fim, inputs e outputs claramente identificados - uma estrutura para ação!
- grupo de tarefas interligadas logicamente, que utilizam os recursos da organização para gerar resultados definidos, para apoiar os seus objetivos.
- grupo de atividades realizadas numa sequência lógica para produzir um bem ou serviço que tem valor para um grupo específico de clientes.
São os processos que recebem, transformam e geram as informações que vamos manipular no software que será desenvolvido.Além disso, o software é construído com base no processo de negócio, que representa a rotina da organização, conforme o fluxo deinformação da área de atuação.
"Combinação de recursos humanos e computacionais que inter-relacionam coleta, armazenamento, recuperação, distribuição e uso de dados, visando à eficiência gerencial (planejamento, controle, comunicação e tomada de decisão) nas organizações. Pode também ajudar os gerentes e os usuários a analisar problemas, criar novos produtos e serviços e visualizar questões complexas".
A) Objetivo: processar e organizar dados para gerar informação como conhecimento.
B) Fluxo de SI:
- input/entrada: captura dados para execução de um processamento.
- processo: ação de conversão dos dados em informações relevantes.
- output/saída: apresentação de resultado conforme objetivo proposto.
C) Componentes do SI:
- pessoas: manipulam informações dos processos.
- organizações/procedimentos: moldam SI conforme fluxo de informação.
- tecnologia: computadores e softwares.
D) Classificação dos SI:
- SI Operacional: transações rotineiras da organização.
- SI Gerencial: agrupam e sintetizam dados das operações para facilitar tomada de decisão pelos gestores.
- SI Estratégicos: integram e sintetizam dados de fontes internas e externas, com ferramentas de análise/comparação, simulação, etc para tomada de decisão da cúpula estratégica da organização.
No início da computação:
- ausência de metodologia, baseado na própria experiência.
- "Modelo Balbúrdia".
- informalidade, sem projeto ou documentação.
- SW entra em ciclos de duas fases: implementação e implantação.
- ajustes com urgência e sob estresse.
- baixa qualidade e confiabilidade.
- difícil manutenção.
Portanto, é necessário definir quais atividades deverão ser executadas ao longo do projeto, além de quando, como e quem as executará!
Não existe um processoque seja o melhor, e sim, o que melhor se aplica à situação de desenvolvimento!
Conceito de times multidisciplinares!
a) Desenvolvedor back-end
:
- trabalha na parte "de trás" da aplicação.
- codificação de grande parte das regras de negócio.
- normalmente atua pouco com a parte visual.
- domina linguagens de programação como java, c#, go, php, python, ruby, etc.
b) Desenvolvedor front-end
:
- trabalha na parte "da frente" da aplicação.
- desenvolve as telas que vão interagir com o usuário.
- JS, Node, CSS, HTML.
c) Desenvolvedor full-stack
:
- desempenha funções de front e back-end.
- difícil, considerando a quantidade de tecnologias a serem dominadas.
d) Analista de Qualidade
(Quality Assurance - QA):
- responsável por realizar testes do SW.
- normalmente domina técnicas de teste unitário, aceitação, integração, carga etc.
e) Scrum Master/Agile Master
:
- responsável pela cultura ágil no time e disseminar práticas do framework Scrum.
- atua como um líder do processo Scrum e facilitador.
- contribui para resolução de conflitos e remoção de impedimentos.
- Agile Master exerce mesmas atividades do Scrum Master, a diferença é que também domina outras metodologias de desenvolvimento ágil, como Kanban ou XP.
Product Owner
(Dono do Produto):
- decide recursos e funcionalidades do produto, e a prioridade de desenvolvimento.
- intersecção entre área de negócio e de desenvolvimento.
(também podem fazer parte de um único time de desenvolvimento)
a) Designer de User Interface (UI)
ou User Experience (UX)
:
- focos:
- na experiência do usuário (melhor usabilidade e interação que o software terá) e
- na interface do software (design que represente identidade visual da empresa e melhores padrões de design que o desenvolver front-end codificará).
b) Analista de Segurança
:
- garante a segurança no projeto e na organização.
- cultura do DevSecOps.
- identifica, protege, detecta, responde e recupera pontos necessários sobre segurança.
c) SysAdmin (Administrador de Sistemas)
:
- responsáveis por instalar, dar apoio e manter servidores e sistema da organização.
- função-chave para disseminação da cultura DevOps na empresa.
d) Analista de Dados (AD)
/ Administrador de Banco de Dados (DBA)
:
- DBA: responsável por gerenciar, instalar, configurar, atualizar e monitorar BD.
- AD: responsável por coletar, compilar, analisar e interpretar os dados do banco.
- DBA atua mais no nível de hardware e software; e o AD, no nível de dados e negócio.
e) Especilista
:
- ponto de referência por atuação, contribuindo para formação dos profissionais e resolução de demandas complexas ou que envolvam diversas áreas da organização.
a) Coordenador
e Gerente
:
- responsáveis por:
- coordenar e gerenciar atividades das equipes de TI;
- avaliar e identificar soluções tecnológicas para otimizar os processos;
- planejar projetos de implantação de sistemas;
- acompanhar necessidades do negócio e dos clientes.
- com relação às pessoas:
- realizar acompanhamento e evolução dos profissionais;
- manter a motivação;
- realizar feedbacks constantes e mentorias.
- a principal ideia é que o Coordenador consiga escalar o trabalho do Gerente.
- dependendo da organização, o Gerente possui algumas funções a mais às quais o Coordenador pode não ter acesso.
- levantamento de dados, onde identificamos as necessidades e/ou problemas dos usuários.
- requer clareza e objetividade (pode causar maior prazo e custo e falta de credibilidade na equipe, caso algum entendimento seja diferente da necessidade).
- fontes de informações: documentação, usuários do sistema, stakeholders e especificações de sistemas.
- interação com os usuários e stakeholders ocorre através de entrevista, observações, brainstorming e workshop, podendo ser usados cenários e protótipos para auxiliar na obtenção de requisitos.
- "Business value": analistas devem verificar o que pode agregar valor ao usuário/cliente no primeiro momento.
-
Estratégico
: visa à informação não estruturada, o entendimento do analista na visão de resultados. -
Tático
: informação é semi estruturada e visa ao resultado entre os níveis operacional e estratégico. -
Operacional
: conhece e executa as rotinas do processo de negócio.
O usuário é chamado
Key-User
. Ele carrega conhecimento sobre o processo e as regras de negócio e desenvolve as atividades operacionais.
(que contribuem para o entendimento e os esclarecimentos do processo de negócio)
A) Especificação de processo de negócio:
- coletada com participação central do usuário.
- normalmente é realizada em processos de levantamento de dados (por analistas de negócios ou Product Owners).
- a partir de documentos e mapas de fluxo de processo sde negócio, podem surgir definições sobre a concepção e a rotina do processo.
- exemplo: diagrama de atividades da Linguagem de Modelagem Unificada (UML), e entendimento por meio de notação visual.
requisitos funcionais
representam as funcionalidades do sistema - é o resultado esperado para o usuário, o principal artefato da fase de levantamento de requisitos!
B) Regras de negócio:
- definem a estrutura e controlam a operação das empresas.
- representam procedimentos, restrições,normas, cláusulas, critérios, políticas, ou seja, “como” executar o processo de negócio.
- representam a relação da informação para a execução do processo de negócio e determina mas condições para que os fatos sejam válidos.
- estão relacionadas aos requisitos funcionais!
- a notação para definição de Regra de Negócio é
RN
, e requisito funcional,RF
.
C) Requisitos que definem as funcionalidades do sistema:
- um Sistema de Gerenciamento de Regras de Negócios (BRMS) permite que políticas organizacionais e decisões operacionais associadas a essas políticas sejam implementadas, monitoradas e mantidas separadamente do código principal de um ap.
- BRMS possibilita definir e manter as decisões que orientam o comportamento de sistemas, reduzindo a quantidade de tempo e esforço necessários para atualizar os sistemas de produção e aumentar a capacidade da organização de responder às mudanças no ambiente de negócios!
- pode ser subdividida em: análise de domínio (ou análise de negócio) e análise da aplicação.
- modela os objetos do mundo real como uma venda que possui um cliente, e o(s) produto(s), que são objetos de negócio, portanto de domínio.
- a modelagem das classes de domínio define a aderência do sistema em relação à necessidade do usuário.
- diagrama e documentação de casos de uso e diagrama de classe de domínio.
- a validação e a verificação dos modelos construídos asseguram que as necessidades do usuário sejam atendidas.
- nessa fase ocorrem as modelagens do sistema e do BD (a princípio devemos desenvolver a modelagem das classes e,posteriormente, a do banco de dado).
- na teoria, há duas atividades: projeto de arquitetura (de alto nível) e projeto detalhado (de baixo nível).
- um dos artefatos é o projeto de arquitetura que, na teoria, é desenvolvido pelo arquiteto de software (ou analista ou programador sênior).
- projeto da arquitetura visa distribuir as classes de objetos relacionados do sistema em subsistemas e componentes, distribuindo esses componentes pelos recursos de hardware disponíveis.
- outro artefato são as interfaces gráficas ou propriamente as telas do sistema!
- fase de desenvolvimento.
- traduz por meio de códigos de programação a modelagem do sistema.
- é o transporte da lógica de funcionamento do sistema para um código de programação.
- garantirão qualidade do produto.
- objetivo é assegurar que o software cumpra com as especificações e atenda à necessidade e à realidade do usuário.
verificação
consiste em um conjunto de atividades que asseguram que o produto será construído de maneira correta.validação
é o conjunto de atividades que garantem que o produto correto está sendo construído.- testes são realizados com base no documento de casos de testes, que, por sua vez, utilizam a documentação dos casos de uso desenvolvidos na fase de análise.
- os principais artefatos são os relatórios de testes, com evidências de erros ou que não foram detectados.
- podem ser divididos em:
Teste de Função/Teste Unitário
(verificação da menor unidade do projeto; previne contra bugs quando os códigos foram mal escritos).Teste de Funcionalidade
.Teste de Módulos
.Teste de Integração
.
Alguns testes são funcionais e operacionais. Os testes operacionais podem ser Alfa (quando ocorrem no ambiente do desenvolvedor) e Beta (quando ocorrem no ambiente do usuário).
Os testes funcionais podem ser de caixa branca e de caixa preta.
- teste caixa branca: os casos de teste devem ser gerados de maneira que, ao serem executados conforme o fluxo, passem por todos os comandos existentes.
- teste caixa preta: os casos de testes gerados a partir da entrada de dados visa ao resultado com base nessas entradas.
- fase em que o sistema irá para ambiente de produção.
- fase em que a equipe de infraestrutura instala o sistema no ambiente real do usuário, onde ele executa suas atividades rotineiras!
- um artefato criado é o manual do usuário!
- com a utilização do sistema, surgem novas necessidades ou detecta-se alguns bugs!
- somente ao final do projeto o sistema será implantado, não existem versões disponibilizadas ao usuário antes da entrega final do projeto!
- define que é possível ter todos os requisitos especificados antes das demais fases do projeto.
- é um dos primeiros modelos de desenvolvimento.
- a espera por um resultado final acabou se tornando inviável!
- a cada nova entrega, é realizado um incremento do software, ou seja, adquire novas funcionalidades (repetição das etapas em ciclos diferentes e incrementais).
- modelo mais utilizado no mercado, devido necessidade do usuário-cliente de receber porções do software antes de sua entrega por completo.
Vantagens:
- permite flexibilidade em ambientes de projeto onde existem indefinições de requisitos iniciais e a determinação do foco nos pontos mais críticos do projeto.
- detecção com agilidade de inconsistências entre os requisitos e a implementação.
- produção de resultados tangíveis a cada iteração.
- identificação de melhorias contínuas no processo.
No primeiro ciclo, pode ser entregue o “Business Value” ao usuário-cliente, a funcionalidade que mais agregue valor ao seu negócio!
No Scrum, as necessidades determinam as prioridades do desenvolvimento de um sistema, e devem ser levantadas pelo Product Owner em conjunto com stakeholders.
Além disso, equipes se auto-organizam para definir a melhor maneira de entregar as funcionalidades de maior prioridade.
As entregas ocorrem a cada uma ou quatro semanas, permitindo um rápido feedback e decidindo se deve ser liberado ou se precisa continuar a ser aprimorado por mais um ciclo, chamado de Sprint.
- requisitos formam o Product Backlog (lista do que precisa ser feito no projeto ou produto).
- evolui em ciclos curtos e de duração fixa chamados de Sprints, cujos conceitos de sustentação são o desenvolvimento iterativo-incremental e o timebox (duração fixa).
- cada equipe utiliza a técnica de desenvolvimento que melhor se adapta ao cenário do projeto.
- equipes se auto-organizam.
- processo de melhoria contínua.
Importante: cerimônias são as reuniões que acontecem durante o ciclo Scrum de desenvolvimento, como as reuniões de planejamento, reuniões diárias, de revisões e de lições aprendidas.
- construção em vários ciclos de entregas constantes de produtos, permitindo identificação de problemas nas fases iniciais e tomadas de ações, para corrigir o curso do desenvolvimento no tempo adequado e de maneira eficiente!
- no Scrum, uma iteração = um Sprint (ciclo de análise, desenvolvimento, teste e entrega, com duração específica).
- no modelo iterativo, a primeira iteração reúne os requisitos principais do produto,que são validados pelo cliente.
- um plano é desenvolvido para a próxima iteração, para satisfazer as necessidades do cliente.
- esse processo é repetido após cada iteração até que o produto completo seja produzido.
O modelo iterativo objetiva a elaboração de um produto a cada iteração!
Vantagens:
- flexibilidade em ambientes de projeto nos quais há indefinições de requisitos iniciais e a determinação do foco nos pontos mais críticos do projeto.
- detecção rápida de inconsistências entre requisitos e a implementação.
- produção de resultados a cada iteração.
- identificação de melhorias contínuas no processo.
Não é obrigatório que, ao fim de cada iteração, o software produzido já seja colocado em produção. Porém, a melhor prática é realizar entregas frequentes para que os usuários já possam ter o benefício de usar o software e validá-lo na prática.
- auxilia a manter o foco nas principais características do produto, evidencia o senso de restrição de tempo à equipe do projeto e reduz o tempo de construção!
- ponto central: enquadrar principais requisitos (definidos pelo cliente e pela equipe do projeto) ao tempo disponível, enquanto demais requisitos são incorporados em outros timeboxes com menor prioridade.
- requer utilização conjunta com a prática de prototipação.
- condições de sucesso dessa prática:
- data final estabelecida para cada timebox não seja alterada.
- cliente esteja de acordo com os requisitos definidos.
- limitação rígida do escopo seja atendida.
No Scrum, o Sprint representa tanto as iterações quanto define o seu timebox, pois tem duração fixa e determina quando deve haver planejamento, desenvolvimento e entrega de um incremento!
1. Considere os seguintes requisitos de uma funcionalidade de software: permitir anexar arquivos; usuário precisa estar logado para anexar arquivos. Qual destes requisitos é funcional e qual é regra de negócio?
Permitir anexar arquivos é requisito funcional, e necessidade do usuário estar logado para acessar funcionalidade é regra de negócio.
2. Qual é o papel responsável por planejar projetos de implantação de sistemas e acompanhar as necessidades do negócio e dos clientes?
Coordenador e/ou gerente.
3. De acordo com boas práticas de gestão ágil (XP), durante o levantamento de requisitos, o que precisa ser identificado inicialmente?
Business value, ou seja, o que pode agregar valor ao usuário/cliente no primeiro momento.
Pessoas, organizações ou procedimentos, tecnologia.
5. Selecione a alternativa que melhor descreve um modelo de desenvolvimento iterativo e incremental de um projeto de software:
Usuário recebe novas versões do produto a cada período. Cada nova versão tem novas funcionalidades, ou melhora funcionalidades já existentes.