Pular para o conteúdo principal

Postagens

O que é Arquitetura de Software?

A arquitetura de software é descrição abstrata, na forma de modelos, de diferentes visões do sistema em termos de unidade (partes) que interagem entre si. 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 atividades não tenha sido deliberadamente realizada, vale ressaltar que: Todo software tem uma arquitetura A arquitetura pode ser analisada por diferentes pontos de vista   (visões arquiteturais) A arquitetura deve dar suporte à funcionalidade do sistema (requisitos funcionais) e deve estar em conformidade com a qualidade (requisitos não-funcionais). O design arquitetural é o processo de tomar as decisões que visa definir estrutura e comportamento para atender aos requisitos funcionais e não-funcionais. Um bom arquiteto deve conhecer diferentes modelos e estilos de arquitetura e saber aplica-los de forma a atender aos requisitos. Um dos princípios básicos para orga...

Design de software, de IHC e o Ipad

Já dissemos anteriormente que o desenvolvimento de software deve começar pelo seu design. O design de um software interativo consiste na elaboração do seu modelo conceitual, na representação visual de seus elementos e na forma de interação com as suas funcionalidades. Para entender isso na prática vejamos os vídeos da apresentação do Ipad . O Steve Jobs está falando o tempo todo sobre como humanos podem interagir com programas que já conhecemos há tempos: player de mp3, player de vídeos, leitor de emails, browser de páginas Web, visualizador de fotos, leitor de livros eletronicos (e-reader), e outros. Existem dois aspectos importantes: 1. Jobs está o tempo todo chamando a atenção sobre com podemos interagir com estes programas com os dedos, sentando numa poltrona ou sofá, e ter uma experiência de uso . 2. Os diferentes produtos foram idealizados para uma plataforma única, compartilhando alguns elementos comuns Ou seja, houve um design destes programas, com seus elementos visuais e int...

Diferenças entre engenharia de software e as engenharias de artefatos físicos.

As engenharias mais tradicionais lidam com artefatos materiais onde propriedades físicas estão fundamentadas em teorias das ciências. O software é um artefato intelectual cuja matéria prima é a informação e o conhecimento humanos representados por códigos e linguagens. A sua construção é um processo de transformação e comunicação de representações através de seus códigos e linguagens que envolve todos os stakeholders (clientes, desenvolvedores, usuários). Nenhuma outra engenharia tem estas peculiaridades. Isto torna a ES diferenciada com processos bem particulares. Nas engenharias tradicionais, o design é tratado separadamente pelas disciplinas de desenho industrial e arquitetura (na civil). Na engenharia de software, o design, isto é a transformação de requisitos em solução, ocorre de forma integra à engenharia de requisitos, à arquitetura de software e ao design de interfaces de usuário. Nas engenharias tradicionais, o processo de verificação é quase sempre nas qualidades do artefat...

Qual a melhor linguagem de programação?

Sempre perguntaram-me qual a melhor linguagem de programação. Esta é uma pergunta difícil de responder. Recentemente, participei de uma discussão com colegas sobre quais linguagens deveriam ser ensinadas ao alunos e em qual ordem. Não tenho muita experiência com ensino de programação. Assim, não tive muito como contribuir sobre o aspecto pedagógico desta discussão. Mas dei a minha colaboração com a minha experiência e por considerar a linguagem um instrumento de interação humano-computador. Tenho apenas experiência com o auto-aprendizado de várias linguagens, em diferentes paradigmas. Comecei com Basic, do Bill Gates, e Assembly 6502, em casa. Minha motivação: aprender o que é computador. Fui para a universidade e aprendi Fortran, Pascal, Assembly 8086 e Cobol, durante graduação. Estudei C, sozinho, para meu trabalho de IC. Também auto-aprendi Prolog e LISP, para o mestrado; C++ e Java para o doutorado; e Perl, Javascript, PHP, HTML e CSS para desenvolvimento Web. Não fiz nenhum planej...

Temos seguidores?

Este blog está parado há bastante tempo, mas as estatísticas indicam que ele continua sendo visitado. Que bom! Estou me dedicando bastante na implantanção de um curso de graduacão em Engenharia de Software na UFRN . Além disso, temos projetos e aulas em andamento. Caso você ache que este blog está sendo útil e merece ser continuado, você pode enviar um comentário ou ser um seguidor. Ainda temos muito a falar sobre engenharia de software!

Design Conceitual

O software pode ser considerado como um artefato virtual que compreende as soluções que foram concebidas de acordo com os requisitos. Este artefato virtual é uma entidade abstrata que existe na mente dos usuários quando eles estão interagindo com o software. Esta entidade virtual é o modelo conceitual do software. Este modelo determina quais conceitos (ou objetos virtuais) estão presentes no software, quais as funções (ou tarefas) que o usuário pode utilizar –funcionalidade – e como ele pode interagir com o software – interatividade . Este modelo também é conhecido como metáfora da aplicação. Por exemplo, num editor de texto, como o MS Word, temos diversos conceitos que permitem ao usuário entender como está estruturado um documento e o que ele pode fazer com ele. No Word, encontramos os conceitos de página, bordas de página, margens, parágrafos, recuos de parágrafos, espaçamento entre linhas, distância-da-primeira-linha, distância-antes-do-parágrafo, tamanho da letra, estilo da let...