Prévia do material em texto
-Arquitetura A arquitetura de software de um sistema consiste na definição dos componentes de software, suas propriedades externas, e seus relacionamentos com outros softwares. O termo também se refere à documentação da arquitetura de software do sistema. A documentação da arquitetura do software facilita: a comunicação entre a parte interessada, registra as decisões iniciais acerca do projeto de alto-nível, e permite o reuso do projeto dos componentes e padrões entre projetos. Arquitetura não é uma fase do desenvolvimento, mas o resultado das decisões de design sobre a estrutura e o comportamento do software. Mesmo que esta atividade não tenha sido deliberadamente realizada, vale ressaltar que todo software tem uma arquitetura, e a arquitetura pode ser analisada por diferentes pontos de vista. A parte externa compreende o modelo conceitual e a interface de usuário. A parte interna compreende a arquitetura de software e os algoritmos e estruturas de dados que implementam estes componentes. -Estudos de Usabilidade A disciplina de desenho abrange também aspectos de desenho externo que compreendem elementos estáticos, como os componentes das interfaces do produto, e elemento dinâmicos, como o comportamento funcional detalhado do produto. -Desenhos Os principais desenhos que foram abordados no livro são: Desenho externo: Definição da interface do produto com os elementos do seu ambiente, como os humanos e sistemas. Desenho interno: Divisão do produto em partes e especificação dos seus relacionamentos. Desenho da persistência: mecanismos físicos de persistência e mapeamento entre eles e as entidades de informação (Banco de dados). Desenho da integração: Define como partes dos produtos serão construídas, integradas e validadas. Desenhos dos testes: Deve ser planejado para captar parte significativa dos defeitos sem resultar em custo excessivo. Desenho das entidades é um modelo de dados para descrever os dados ou aspectos de informação de um domínio de negócio ou seus requisitos de processo, de uma maneira abstrata que em última análise se presta a ser implementada em um banco de dados, como um banco de dados relacional. - Desenho centrado no Usuário Conhecimentos dos Usuários, o desenho por exemplo de interfaces de uso fácil é difícil. E necessita de um maior esforço para a implementação de suas interfaces de usuário. Geralmente é necessário desenhar as interfaces de forma interativa, submetendo as soluções encontradas a vários ciclos de avaliação por parte do usuário. - Participação dos Usuários no desenho Os usuários devem participar dos desenhos de interfaces, através de técnicas de desenho participativo; podem-se empregar reuniões semelhantes as oficinas de requisito (JAD). O desenho participativo ajuda a compreender, quais são as tarefas que os usuários precisam executar, com que frequência eles executam essas tarefas e em que condições eles executam essas tarefas. -Conhecimento Semântico O conhecimento semântico de computação e geralmente transmitida por meio de estruturas conceituais, por exemplo de uso de analogias com outros conhecimentos. Ele é independente de sintaxe e é de retenção mais fácil que o conhecimento sintático. Além disso, ela é organizada hierarquicamente, a informação armazenada em um sistema de computação geralmente e vista pelo usuário como um conjunto de pastas que contém arquivos, sendo que eles são divididos por em objetos menores dependentes do tipo, por exemplo arquivos de textos. Sendo que, o conhecimento sobre tarefas também pode ser organizado de forma hierárquica, as ações para realizar uma tarefa complexa são decompostas em ações mais simples. - Planejamento das liberações O desenho deve usar uma abordagem progressiva e iterativa, através da construção de versões operacionais parciais que sirvam como pontos de controles e permitam a avaliação por parte dos usuários e essas versões parciais são as liberações. A ordem das liberações deve procurar reduzir os riscos do desenvolvimento, a área de risco que devem ser postas a provas nas primeiras liberações são: o desenvolvimento ou primeira utilização de componentes reutilizáveis, unidades, mecanismos que exercitem novas tecnologias, os requisitos funcionais mais importantes do produto, as interfaces de usuários mais complexas oi menos entendidas, e os requisitos não-funcionais mais críticos, e também as colaborações mais importantes ou exemplares quanto a utilização de mecanismos. E um outro objetivo importante das liberações é possibilitar a validação que precoce, por parte de grupos de funções do produto, com a realização de testes funcionais e de sistema. - Processos Um processo de Engenharia de Software é formado por um conjunto de passos de processo parcialmente ordenados, relacionados com artefatos, pessoas, recursos, estruturas organizacionais e restrições, tendo como objetivo produzir e manter os produtos de software finais requeridos. Os processos são divididos em atividades ou tarefas. Uma atividade é um passo de processo que produz mudanças de estado visíveis externamente no produto de software. Atividades incorporam e implementam procedimentos, regras e políticas, e têm como objetivo gerar ou modificar um dado conjunto de artefatos. Um artefato é um produto criado ou modificado durante um processo. Tal produto é resultado de uma atividade e pode ser utilizado posteriormente como matéria prima para a mesma ou para outra atividade a fim de gerar novos produtos. Uma atividade aloca recursos (por exemplo, computadores, impressoras e material de expediente), é escalonada, monitorada e atribuída a desenvolvedores (agentes), que podem utilizar ferramentas para executá-la. Toda atividade possui uma descrição, a qual pode especificar os artefatos necessários, as relações de dependência com outras atividades, as datas de início e fim planejadas, os recursos a serem alocados e os agentes responsáveis pela mesma. O agente pode ser uma pessoa ou uma ferramenta automatizada (quando a atividade é automática) e relaciona-se com as atividades de um processo. Os agentes podem estar organizados em cargos, aos quais podem ser definidas diferentes responsabilidades. A realização do processo é afetada pelas restrições, que podem atingir atividades, agentes, recursos, artefatos, papéis e seus relacionamentos. Uma restrição é uma condição definida que um passo de processo deve satisfazer antes ou depois de ser executado.