670 likes | 845 Views
Breve Histórico de Linguagens e Metodologias de Modelagem de Software. Linguagens de Modelagem de SW. Formais , Informais , Semi- formais Algébricas , Visuais. Algumas linguagens / processos apresentados brevemente. Fluxograma Análise Estruturada e suas extensões IDEFs Z VDM
E N D
BreveHistórico de Linguagens e Metodologias de Modelagem de Software
Linguagens de Modelagem de SW • Formais, Informais, Semi-formais • Algébricas, Visuais
Algumaslinguagens/processosapresentadosbrevemente • Fluxograma • AnáliseEstruturada e suasextensões • IDEFs • Z • VDM • B • Modelica • Alloy • Statecharts • SDL • Álgebra de Processos (ACP, CCS, CSP) • Redes de Petri • SysML • UML
Fluxogramas • Usadodesde a década de 1940 paraespecificar software • Muitousadonasdécadas de 1960 e 1970 • Flowchrating techniques (IBM 1969): http://www.fh-jena.de/~kleine/history/software/IBM-FlowchartingTechniques-GC20-8152-1.pdf
Fluxogramas • Caiuemdesuso com as técnicasestruturadas • Masainda é usadoparaespecificação de processos e software.
AnáliseEstruturada • Diversosautores • Larry Constantine and Ed Yourdon (1975). Structured Design. Yourdon Press. • Chris Gane and Trish Sarson. Structured Systems Analysis: Tools and Techniques. McDonnell Douglas Systems Integration Company, 1977 • Tom DeMarco (1979). Structured Analysis and System Specification. Prentice Hall. • Edward Yourdon (1989). Modern Structured Analysis, Yourdon Press Computing Series, 1989
AnáliseEstruturada • Idéias estruturadas de 1960 e 1970’s • Structured program theorem (Böhm-Jacopini theorem - 1966) – “Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules" (May 1966). Comm. ACM, 9(5):366-371 • Any algorithm can be expressed using only three control structures. They are • Executing one subprogram, and then another subprogram (sequence) • Executing one of two subprograms according to the value of a boolean expression (selection) • Executing a subprogram until a boolean expression is true (iteration)
AnáliseEstruturada • Programaçãoestruturada • Go To Statement Considered Harmful (Dijsktra, 1968) "The go to statement as it stands is just too primitive, it is too much an invitation to make a mess of one's program." • O.-J. Dahl, E. W. Dijkstra, C. A. R. Hoare Structured Programming, Academic Press, London, 1972 • Algol, Pascal, C
AnáliseEstruturadaparaSistemas de Tempo de Real • Inclusão de diagrama de fluxo de controle • Derek J. Hatley, Imtiaz A. Pirbhai (1988). Strategies for Real Time System Specification. John Wiley and Sons Ltd. • Stephen J. Mellor und Paul T. Ward (1986). Structured Development for Real-Time Systems: Implementation Modeling Techniques: 003. Prentice Hall.
FerramentasdaAnáliseEstruturada • Diagrama de Fluxo de Dados • Dicionário de Dados • Pseudo-código/Linguagemestruturada • Árvores de decisão • Tabelas de Decisão • DiagramaEntidade-Relacionamento
Diagrama de Fluxo de Dados • Modelo lógico do software • Independente de hardware, software, estrutura de dados... • Pode ser particionado em diversos níveis de abstração (Contexto ou nível 0, nível 1, ...) • 4 elementos básicos • Entidade externa (origem/destino) • Processo • Depósito de dados • Fluxo de dados
Entidade Externa • Define a origem ou o destino dos dados • Normalmente é uma pessoa ou grupo de pessoas, uma organização, ou parte dela, um hardware ou software • Produz e recebe informação
Processo • Transforma dados • Pode representar um software, vários softwares, um módulo, ... • Geralmente provoca mudança de estado, estrutura ou conteúdo • A numeração não indica sequência de ações • Geralmente são verbos na especificação
Depósito de dados • Pode ser um arquivo, uma tabela, ou parte de um banco de dados • Independente de unidade de armazenamento • Pode receber o nome do fluxo de dados • Normalmente está no plural
Fluxo de Dados • Insere e retira dados de processos, depósitos de dados e entidades externas • Deve ter um nome único • Deve ser descrito no dicionário de dados
DFD de Contexto • DFD de nível mais alto (DFD de nível 0) • Apresenta a visão das principais funções do sistema • Contém um processo, entidades externas e fluxos de dados
Níveis de DFD • Seguem DFD's de nível 1, 2, ... • A quantidade de níveis depende da complexidade do software • Quantos níveis são necessários? • O suficiente :) • Experiência dos desenvolvedores • Numerações: 1 -> 1.1 -> 1.1.1 -> ...
Explosão de DFD’s • Uma vez identificadas as funções principais, pode-se explodir cada função para níveis mais detalhados • A explosão é uma decomposição hierárquica • 7+-2 processos por nível
Dicionário de dados • Descrição de dados do software • Ajuda a melhorar a comunicação usuário/analista • Usado na base de dados • Significado de fluxos e depósitos de dados • Composição de dados agregados (endereço, identificação, ...)
Dicionário de Dados – Esquema de Documentação • = é composto de • + Concatenação • {}n repetição • [ | || ] escolha de alternativas • () opcional • Ex.: nome = [Sr.| Sra.|Srta.] + família + nome
Linguagem Estruturada • Notação algoritmica para especificar o comportamento dos processos • Sequência: • fazer, calcular, ler, gravar, ... • Decisão: • se então • se então senão • Repetição: • repetir até • enquanto faça
Criação de DFD’s a partir de especificações • Verbos geralmente originam processos • Substantivos são entidades externas, dados ou depósitos de dados • O refinamento deve seguir até o processo realizar uma única função
Diagrama Entidade-Relacionamento • Modela os dados identificados, juntamente com seus atributos e relacionamentos • Foco da disciplina Banco de Dados
Vantagens • Análise top-down • Múltiplosníveis de detalhe • Múltiplasvisões (fluxo de dados, pseudo-código, dados, tabelas de decisão)
Problemas • “Bolhasnãotravam” • Não mostra • Tempo de execução de processos • Tempo de transferência de dados nos fluxos • Paralelismo de execução de processos • Necessariamente sequencia • Caiu em desuso com a orientação a objetos e os sistemas on-line • Ainda é usada em novos sistemas • Existe muita documentação em sistemas legados
IDEF • Família de linguagens de modelagem (Algumasaindaemdesenvolvimento) • IDEF0 : Function modeling • IDEF1 : Information Modeling • IDEF1X : Data Modeling • IDEF2 : Simulation Model Design • IDEF3 : Process Description Capture • IDEF4 : Object-Oriented Design • IDEF5 : Ontology Description Capture • IDEF6 : Design Rationale Capture • IDEF7 : Information System Auditing • IDEF8 : User Interface Modeling • IDEF9 : Business Constraint Discovery • IDEF10 : Implementation Architecture Modeling • IDEF11 : Information ArtifactModeling • IDEF12 : Organization Modeling • IDEF13 : Three Schema Mapping Design • IDEF14 : Network Design • http://www.idef.com/Home.htm
IDEF0 • Linguagem de modelagemfuncionalpara • Análise • Desenvolvimento • Reengenharia • Integração
IDEF1X • Modelagem de dados
Notação Z • Baseado na teoria de Zermelo–Fraenkel e na lógica de predicados • Final da década de 1970, em Oxford • Jean-Raymond Abrial • Z usa muitos símbolos não ASCII • uso de ferramentas/LATEX
Z naprática • IBM CICS • servidor de transações • Middleware quesuporta alto volume de transações • Criadoparapossibilitarprocessamento on-line • 30 billion+ transactions a day • $1 trillion in transactions each day • 30 million users worldwide • 900,000 concurrent users supported • 90% + of the Fortune 500
Z naprática • Parte do IBM CICS foiformalizadousando Z nasdécadas de 1980s e 1990s emcolaboração com o Oxford University Computing Laboratory • Sir Tony Hoare • Quicksort • Hoare Logic • CSP (Communicating Sequential Processes)
Z e Orientação a objetos • Z++ • Lano, K.C., Z++, an Object-Oriented Extension to Z. Z User Workshop, Oxford 1990 • Object Z • Graeme Smith. The Object-Z Specification Language. Kluwer Academic Publishers, 2000 • Roger Duke and Gordon Rose. Formal Object-Oriented Specification Using Object-Z. MacMillan, 2000.
Vienna Development Method (VDM) • Originadona IBM de Vienna, nadécada de 1970. Envolve: • Técnicas • Ferramentas • Linguagem • "Systematic Software Development using VDM" by Cliff Jones, 2nd edn., Prentice Hall 1990. • VDM++
B method • Jean-Raymond Abrial • The B-Book: Assigning Programs to Meanings, Jean-Raymond Abrial, Cambridge University Press, 1996 • Usadoemsistemas de missãocrítica • Menorabstraçãoque Z
Modelica • Linguagem de modelagem para sistemas complexos (1997) • componentes eletrônicos, mecânicos, hidráulicos, de controle, ... • Modelo parecido com POO • equações diferenciais, algébricas e discretas • Chamadas de C, FORTRAN, Java • Engine de simulação • https://www.modelica.org/
Modelica • https://www.modelica.org/documents/ModelicaSpec33.pdf • Usada por: Audi, BMW, Daimler, Ford, Toyota, VW ABB, EDF, Siemens.
Alloy • Software Design Groupat MIT lead by Professor Daniel Jackson (1997) • Linguagem de especificação declarativa • Comportamento estrutural e dinâmico • Baseado em lógica de predicados • Sintaxe baseada em Z • AlloyAnalyzer
Statecharts • Harel, D. (1987). A Visual Formalism for Complex Systems. Science of Computer Programming , 231–274. • Extensão das máquinas de estado • Foco: especificação de sistemas complexos a eventos discretos • Base para o diagrama de estados da UML
Statecharts - Características • Extensão das máquinas de estado • noção de hierarquia • concorrência e paralelismo • comunicação • Compactos • Possibilidade de composição • Modular • Descrição em diferentes níveis de abstração
Statecharts • statecharts = state-diagrams + depth + orthogonality + broadcast-communication
SDL • Specification and Description Language (SDL) • Foco: especificaçãonãoambigua e descrição do comportamento de sistemasdistribuídos de tempo real • Origemnossistemas de telecomunicações • Gráfica e algébrica • http://www.sdl-forum.org/
Álgebra de Processos • Process Algebra • Process Calculus • Família de linguagens para modelar formalmente sistemas concorrentes • Principais: CSP, CCS, ACP • Histórico: http://www.informatik.hs-mannheim.de/~schramm/CSP/files/historyProcessAlgebra.pdf
Conceitos • Processo: comportamento de um sistema • Algebra: conceitosalgébricosparamodelarcomportamento • Process algebra: the study of the behaviour of parallel or distributed systems by algebraic means • Possibilidades de verificação: • Estabelecer se um sistemasatisfazdeterminadapropriedade.
CCS • CCS - Calculus of Communicating Systems • Robin Milner: A Calculus of Communicating Systems, Springer Verlag, 1980. • Desenvolvido entre 1973 e 1980
CSP • CSP - Communicating Sequential Processes • Tony Hoare - Communicating sequential processes. Communications of the ACM, 21(8):666–677, 1978 • Knighthood (for services to Computing Science). March 7, 2000.
ACP • ACP - Algebra of Communicating Processes • 1982 • Jan Bergstra e Jan Willem Klop. Fixed point semantics in process algebra. Technical Report IW 208, Mathematical Centre, Amsterdam