OMG SysML IST – 2006 M6661 - Nuno Rosa SysML - Objectivos Objectivos: Compreender o valor que o SysML trás para o Desenvolvimento de Sistemas Compreender os conceitos básicos do SysML SysML – Sistema Um Sistema disponibiliza um conjunto de serviços (que uma empresa usa para atingir os seus objectivos – missão). São componentes (elementos) de um Sistema: o hardware, o software, os dados, os colaboradores* O processo de desenvolvimento de Sistemas é a abordagem multidisciplinar que permite definir um Sistema (de Sistemas) incluindo componentes de hardware e software que colaboram para atingir os resultados desejados. *Blanchard and Fabrycky, Systems Engineering and Analysis (3rd ed.), Prentice Hall, 1998 SysML - Motivação Alinhamento entre hardware / software Muitas disciplinas Requisitos Contexto (ambiente) Tecnologia Mais Tecnologia Hardware, software, Factores Humanos, logistica, IT, modelação de negócio, dominio, utilizadores/operadores, … Rapida mudança de Agilidade Reutilização Mais compromissos Muito Mais Software Para Desenvolver Para Manter SysML – “Model-Driven” Desenvolvimento de Sistemas Orientados a Modelos (ModelDriven Systems Development (MDSD) ) é uma framework que define um processo para o co-desenvolvimento de hardware e software em sistemas complexos Usa modelos como artefactos (entidades) ao longo do ciclo de vida do processo de desenvolvimento Facilita a comunicação entre os stakeholders na equipa de desenvolvimento Disponibiliza mecanismos e abstrações que permitem tratar complexidade de uma forma disciplinada SysML suporta cada um dos aspectos enunciados do MDSD e é uma parte, importante, no todo de uma abordagem MDSD global SysML - Objectivos Objectivos: Compreender o valor que o SysML trás para o Desenvolvimento de Sistemas Compreender os conceitos básicos do SysML SysML - Introdução Especificações Requisitos de interface Desenho do Sistema Análise Plano de Testes Moving from document centric to model centric SysML - Definição Uma linguagem de modelação gráfica à semelhança do “UML for Systems Engineering RFP” desenvolvido por OMG, INCOSE e AP233 um subconjunto do UML 2 com extensões Suporta a especificação, análise, desenho, verificação e validação de sistemas o que inclui hardware, software, dados, pessoal, processos e infra-estrutura Suporta XMI como forma de partilhar dados e modelos bem como o standard AP233 (em desenvolvimento) SysML – Definição (cont.) É uma linguagem de modelação visual (gráfica) que disponibiliza Semântica = significado Notatção = representação do significado Não é uma metodologia ou uma ferramenta SysML é independente de qualquer metodologia ou ferramenta SysML – Definição (cont.) SysML SysML – Diagarams de Estrutura SysML - Blocos Um conceito único para descrever a estrutura de um qualquer elemento do sistema Hardware Software Dados Procedimento Infra-estrutura Pessoa Os vários compartimentos servem para descrever as características do bloco Propriedades (“part”, referencias, valores) Operações Restrições Alocações ao bloco (e.g. actividades) Requisitos que o bloco satisfaz SysML – Definição Blocos: definição vs utilização Bloco é uma definição/tipo Captura propriedades, etc. Reutilizado em vários contextos Utilização “part” é a utilização num dado contexto Tipificado por um bloco Também conhecido como “papel” SysML - Portos Espsecifica pontos de interacção em blocos e “parts” Suporta integração de comportamento e estrutura Tipos de portos Porto Standard (igual em UML) Especifica um conjunto de operações e/ou recepção de sinais Tipificado pelo elemento Interface de UML Porto de Fluxo (Flow Port) Especifica o que pode fluir de ou para um bloco/”part” Tipificado por uma especificação de bloco ou fluxo SysML - Parametrizações Utilizado para modelar restrições (equações) entre caracteristicas O bloco que define uma restrição captura “equações” (expressões) Disponibiliza suporte para analise (e.g. performance, nivel de confiança) A linguagem que expressa as restrições pode ser formal (e.g., MathML, OCL) ou informal O Motor Computacional que faz análise sobre as restrições definidas é definido pela ferramenta de análise (qualquer que seja) e não pelo SysML Um diagrama Parametrico representa a utilização das restrições definidas num contexto de análise SysML – Diagramas de Comportamento SysML – Diagrama de Actividades Utilizado para especificar o fluxo de inputs/outputs e controlo, incluindo sequências e condições para coordenar actividades Opcionalmente é possivel associar responsibilidades às actividades utilizando “swim lanes” Extensões do SysML às Activitidades Suporte para: “continuous flow modeling” Alinhamento de actividades com: “Enhanced Functional Flow Block Diagram (EFFBD)” SysML – Permite a representação de comportamento baseado em mensagens Diagrama de Sequência representa fluxo de controlo descreve interacções Disponibiliza mecanismos para representar cenários complexos referência de sequências lógica de controlo decomposição de linhas de vida SysML – Máquina de Estados Tipicamente representa o ciclo de vida de um bloco Suporta comportamento baseado em eventos (geralmente assincronos) Um estado tem entrada, saída e execução Pode incluir estados aninhados (sequenciais or concorrentes) Pode enviar/receber sinais para estabelecer comunicação entre blocos durante a transição de estados, etc. SysML – Casos de Uso Permite descrever funcionalidades do sistema em termos de utilização/objectivos pelos/dos actores SysML – “Cross-cutting Constructs” SysML – Representa relações que mapeiam um elemento do modelo noutro Existem vários tipos de “alocações” : “Allocations” de comportamento (i.e. função a componente) de estrutura (i.e., lógico a físico) de Software a Hardware …. “Alocação” explicita de actividades à estrutura via “swim lanes” Existe representação gráfica e tabular SysML O estereótipo «requirement» representa um requisito baseado em texto (definido textualmente) Requisitos Inclui identificador e propriedades Pode ter propriedades definidas pelo utilizador(e.g. método de verificação) Pode ter categorias definidas pelo utilizador (e.g. funcional, de interface, de “performance” Hierarquia de requisitos descreve os requisitos contidos numa especificação Relações entre requisitos incluem: DeriveReqt, Satisfy, Verify, Refine, Trace, Copy SysML – Requisitos (cont.) SysML SysML – Gerir complexidade Linguagens formais como SysML e UML oferecemm notações precisas que deixam menos espaço a erros de interpretação “Cross cutting constructs” (alocações, requisitos) disponibilizam mecanismos que garantem a consistencia e completude do modelo Modelos podem servir de base ao desenho e consequente implementação Entre stakeholders internos/equipas e clientes Reduzir ambiguidade e erros Capacidade de abstrair detalhe. (“drill down for details”) Melhor comunicação Conclusão (benefícios) Elementos SysML podem ser transformados em UML para gerar componentes de software. A rastreabilidade pode ser mantida. Modelos podem ser simulados, documentos não. SysML – Notas Finais OMG – Object Management Group INCOSE – International Council on Systems Engineering AP233 – Application Protocol 233 http://www.omgsysml.org/SysMLTutorial-Baseline-to-INCOSE-060524low_res.pdf