Conceitos Fundamentais de Software e Engenharia
Classificado em Computação
Escrito em em
português com um tamanho de 7,4 KB
Classificação e Funções do Software
O software pode ser categorizado de acordo com sua função:
- Centro: Software
- Lado Esquerdo: Software de Aplicação - Executa tarefas de processamento de informações de usuários finais.
- Lado Esquerdo/Esquerdo: Programas de Aplicação para Fins Gerais
- Lado Esquerdo/Direito: Programas de Aplicação Específica
- Centro Lado Direito: Software de Sistemas - Gerencia e auxilia operações dos sistemas das redes de computação.
- Lado Direito/Esquerdo: Programas de Gerenciamento de Sistemas
- Lado Direito/Direito: Programas de Desenvolvimento de Sistemas
Fases do Desenvolvimento de Software
As principais fases metodológicas incluem:
- Análise de Software: Método de investigação do problema, definindo o que o sistema deve fazer e como definir uma solução.
- Projeto de Software: Método que enfatiza uma solução lógica, ou seja, como o sistema atenderá aos requisitos.
Abordagem Orientada a Objetos (OO)
- Análise OO: Ênfase na descoberta e na descrição dos objetos ou conceitos do domínio do problema.
- Projeto OO: Ênfase na definição de elementos lógicos de software, os quais serão implementados em uma linguagem de programação orientada a objetos.
Estratégias e Ferramentas
Estratégia para Lidar com a Complexidade de Projetos de Software: Fazer a sua decomposição (dividir para conquistar), ou seja, quebrar o problema em unidades para serem melhor administradas.
Ferramentas CASE (Computer-Aided Software Engineering): Pacotes de engenharia de software auxiliada por computador que assistem gerentes e profissionais em todas as atividades associadas ao processo de software. Automatizam a gestão de projetos, gerenciam produtos de trabalho e auxiliam nas fases de análise, projeto, codificação e testes. Podem focar na definição de métodos de desenvolvimento, suportar métodos particulares ou funcionar de forma isolada.
Definição de Processo de Software
- Definição de Processo de Software - Pressman: Um processo de software consiste em um conjunto de tarefas necessárias para a construção de qualquer software de alta qualidade, fornecendo estabilidade, controle e organização. Os principais indicadores de eficácia são a pontualidade e a viabilidade em longo prazo do produto.
- Definição de Processo de Software - Sommerville: Um processo de software produz produtos de software a partir de um conjunto de atividades e resultados associados.
Tipos de Software e Conceitos Relacionados (Lista Numerada)
- Software de Sistemas: Programas que gerenciam e auxiliam as operações dos computadores.
- Software de Aplicação: Executa tarefas de processamento de informações de usuários finais.
- Sistema Operacional: Sistema de programas que gerencia as operações do computador.
- Ferramentas CASE: Ferramenta de software integrada que auxilia o desenvolvimento de aplicações de software.
- Software COTS: Sigla que significa Commercial-Off-The-Shelf (pronto para comercialização).
- Multitarefa: Capacidade de realizar simultaneamente diversas tarefas de computação.
- HTML (HyperText Markup Language): A linguagem de marcação mais comum usada na web.
- Tradutor: Converte instruções de alto nível em instruções de linguagem de máquina.
- Programas Utilitários: Executam tarefas de manutenção do computador.
- Software de Aplicação com Funções Específicas: Software criado internamente para uso por uma organização específica ou um conjunto de usuários.
- Navegador na Web: Ajuda a navegar na web.
- E-mail: Utiliza o computador conectado em rede para enviar ou receber mensagens.
- Pacote de Planilha Eletrônica: Cria e exibe uma planilha para análise.
- Software de Processamento de Texto: Permite criar e editar documentos.
- Gerenciador de Informações Pessoais: Ajuda a controlar compromissos e tarefas.
- Linguagem de Máquina: Utiliza instruções na forma de sequências codificadas de zeros e uns.
- Linguagem de Alto Nível: Utiliza instruções na forma de sentenças curtas ou de notação padrão de matemática.
- Linguagem Orientada a Objetos: Linguagem que une dados e ações a serem executadas com base nos dados.
- Linguagem Natural: Fácil de utilizar, como a língua materna.
- Ambiente de Programação: Inclui editores, depuradores e geradores de códigos de programação.
- XML (Extensible Markup Language): Linguagem de descrição de conteúdo para documentos da web.
- Java: Linguagem popular orientada a objetos para aplicações baseadas na web.
- Serviços na Web: Liga funções empresariais dentro das aplicações para troca de dados entre companhias pela web.
- UML (Unified Modeling Language): Uma notação (principalmente diagramática) para modelagem de sistemas, usando conceitos orientados a objetos. É uma família de notações gráficas que ajuda na modelagem, descrição e projeto de sistemas de software, particularmente aqueles construídos no estilo orientado a objetos.
Descrição de Diagramas UML
A UML utiliza diversos diagramas para modelagem:
- Atividades: Representa comportamento procedimental e paralelo.
- Classes: Representa classe, características e relacionamentos.
- Comunicação: Representa a interação entre objetos, com ênfase nas ligações.
- Componentes: Representa a estrutura e conexão de componentes.
- Distribuição/Implantação: Representa a distribuição de artefatos nos nós.
- Objetos: Representa exemplo de configurações de instâncias.
- Pacotes: Representa a estrutura hierárquica em tempo de compilação.
- Sequência: Representa a interação entre objetos, com ênfase na sequência temporal.
- Casos de Uso: Representa como os usuários interagem com um sistema.
Estrutura dos Diagramas UML
Os diagramas UML são organizados em categorias:
- Centro: Diagrama
- Lado Esquerdo (Estrutural):
- Diagrama de Classes
- Diagrama de Objetos
- Diagrama de Componentes
- Diagrama de Implantação
- Diagrama de Pacotes
- Lado Direito (Comportamento):
- Diagrama de Atividade
- Diagrama de Casos de Uso
- Diagrama de Interação (Engloba os dois abaixo)
- Diagrama de Sequência
- Diagrama de Colaboração/Comunicação