João Saraiva: Aulas teóricas
José Nuno Macedo: Aulas laboratoriais
Sumários
Aula 1 (14/10)
(T + PL) Apresentação da disciplina. Combinadores de Parsing. "Embedded Domain Specific Languages". Gramáticas (BNF) como uma EDSL em Haskell: Combinadores de Parsing.
Material
Combinadores de Parser - Slides: Slides-Parsing.pdf
Combinadores de Parsing - Library: Parser.hs
Parser para a linguage Let: Parser_Let.hs
Combinadores de Parsing - Exercícios:
*Parsing.pdf*
Aula 2 (21/10)
T: Métricas de Software e Smells de Código.
PL: O Sistema SonarQube.
Material
Software Metrics - Slides: SoftwareMetrics.pdf
Code Smells - Slides: CodeSmells.pdf
Sonarqube - Slides: SonarQube.pdf
Aula 3 (28/10)
T: Catálogo de Smells de Código e Program Refactoring.
PL: Program Refactoring em intelliJ.
Material
Program Refactoring - Slides: ProgramRefactoring.pdf
Program Refactoring - _ Exercícios_: Refactoring.pdf
Exemplos de Programas: Contactos.zip, Poligono.zip
Regime de Avaliação
A avaliação consiste em duas componentes: prova individual (PI) (teste ou exame escritos) e Projeto em Grupo (PG) (a resolver durante o semestre). As provas escritas são de consulta de material impresso, apenas.
A Nota final é calcula de acordo com a seguinte fórmula: 50% PI + 50% PG, com nota mínima de 8 valores em todas as componentes de avaliação.
O projeto em grupo será desnvolvido por grupos de 3 alunos.
Datas da Avaliação
Prova Individual:06/01/2021(última aula do semestre)Entrega do Projeto em Grupo:06/01/2021Exame:: 27/01/2021(a confirmar)
30 Out - CSI: módulo RelCalc.als já está disponível.
27 Out - EM: o servidor do alloy4fun já está a funcionar.
24 Out - CSI: preparação para as aulas #03: ler secções 5.6 a 5.8 de Program Design by Calculation.
23 Out - CSI: aconselha-se os alunos a prestar atenção às FAQs que já começaram a sair na página da disciplina.
20 Out - CSI: foi enviado um e-mail aos alunos que estão listados na página de CSI. Quem porventura o não tiver recebido deve pf entrar em contacto com o docente.
17 Out - CSI: preparação para as aulas #02: ler secções 5.2 a 5.5 de Program Design by Calculation.
17 Out - CSI: como preparação para as aulas ver os sumários previstos e seguir as indicações semanais aqui nestes avisos. (Em CSI segue-se o método 'Flipped Classroom')
12 Out - As aulas iniciam-se esta semana.
17 Set - Vídeo de apresentação da edição 2020/21 de MFES.
Métodos formais e qualidade de software. Conceitos básicos: modelo, especificação, verificação e prova.
As relações binárias polimórficas como linguagem de especificação formal universal. Setas e diagramas. Estudo do cálculo relacional 'pointfree'. Conexões de Galois. Polimorfismo paramétrico.
O papel das funções na taxonomia das relações binárias. Teorema grátis de uma função polimórfica.
Atributos e dependências funcionais. O modelo de dados 'pares valores-chave' construído com relações simples, emparelhamentos e coprodutos. Integridade referencial.
Preservação de invariantes e satisfação. Cálculo da precondição mais fraca 'wp (f, p)' para uma dada função 'f' e invariante 'p'. Relações (invariantes) como tipos.
'Design by contract' por cálculo apoiado por model-checking.
Breve estudo da interpretação abstracta. Funções invariantes. Simulação relacional. Propriedades de segurança e de animação. Redução do espaço de estados por interpretação abstrata.
Formal methods for software quality. Basic concepts: model, specification, verification and proof.
Polymorphically typed binary relations as a universal formal specification language. Arrows and diagrams. Binary relations in Alloy. Study of the pointfree relational calculus. Galois connections. Parametricity.
The role of functions in the taxonomy of binary relations. Relations as types, inc. data type invariants. Theorems for free.
Attributes and functional dependencies. Key-value-pair data model = relational simplicity + pairing + coproducts. Referential integrity.
Data type invariants: preservation and satisfiability. Calculation of weakest preconditions for invariant preservation.
'Design by contract': combining model-checking with algebraic calculation. Refinement ordering on relations.
Brief study of abstract interpretation. Invariant functions. Relational simulation. Safety and liveness properties relationally. Reducing the state space by abstract interpretation.
Regime de avaliação | Assessment
Duas provas escritas de avaliação (mini-teste + teste) e exame de recurso. | 2 written exams
As provas escritas são de consulta de material impresso. | The exams are open-book
O mini-teste é eliminatório de matéria para o teste e vale 50%. | The first exam amounts to 50% of the final mark
Bibliografia | Bibliography
J.N. Oliveira. Program Design by Calculation (, 2.4Mb), Departamento de Informática, Universidade do Minho. Textbook in preparation. Chapters relevant for this course: 5, 6, 7 (and possibly 8, time permitting).
Módulo Alloy: RelCalc.als - Cálculo relacional básico em Alloy.
Módulo Alloy: kerimg.als - o que é o núcleo (kernel) e a imagem (image) de uma relação? Experimentem e observem variando a cláusula run.
Atendimento electrónico | FAQs
Q01 - Eu resolvi o exercício 5.1 mas não precisei de usar a lei (5.17). Porque é que essa regra é sugerida?R: O uso da lei (5.17), para f=sq e o resto identidades, poupa passos na resolução, que fica praticamente imediata.
TWiki's Education/MFES webThe Education/MFES web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/MFESCopyright 2020 by contributing authors2020-10-31T08:08:32ZCSIhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/CSI2020-10-31T08:08:32ZCálculo de Sistemas de Informação Information Systems by Calculation (H507R1) Horário Timetable Docente Foto Horário Sala Nuno Oliveira ... (last changed by JoseNunoOliveira)JoseNunoOliveiraATShttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/ATS2020-10-30T22:14:28ZAnálise e Teste de Software (H507O9) Equipa Docente Saraiva: Aulas teóricas José Nuno Macedo: Aulas laboratoriais Sumários Aula 1 (14/10) (T PL) Apresenta ... (last changed by JoaoSaraiva)JoaoSaraivaAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Avisos2020-10-30T08:45:10Z30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEMhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EM2020-10-29T12:53:46ZEspecificação e Modelação (H507O2) Programa Lógicas para especificação e modelação Lógica de primeira ordem Lógica relacional Lógica ... (last changed by AlcinoCunha)AlcinoCunhaWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSideBar2020-10-21T16:39:16ZTópicos Bem vindo a MFES anteriores Sumários Docentes OC Análise e Teste de Software UC1 Especificação e Modelação UC2 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebHome2020-10-17T10:43:15ZBem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EquipaDocente2020-09-22T15:25:15ZEquipa docente Soares Barbosa Alcino Cunha João Frade Nuno Macedo Nuno Oliveira Sousa Pinto Alexandre ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Calendario2020-09-22T15:02:11ZCalendarização / Sumários Actualização contínua no calendário: JoseNunoOliveira 22 Sep 2020 (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebPreferences2020-09-22T14:32:58ZEducation/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebStatistics2011-09-10T18:37:19ZStatistics for Education/MFES Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ... (last changed by TWikiGuest)TWikiGuestWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopicActions2009-09-29T16:53:07Z (last changed by AlcinoCunha)AlcinoCunhaWebCsshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebCss2007-05-03T08:33:47Z.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)AlcinoCunhaWebTopBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopBar2007-02-13T14:43:04Z (last changed by AlcinoCunha)AlcinoCunhaWebLeftBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebLeftBar2007-02-13T10:35:33ZApresentação Sumários Projectos Material (last changed by AlcinoCunha)AlcinoCunhaWebTopicListhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopicList2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebSearchAdvancedhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSearchAdvanced2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributor
30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ...
Bem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ...
Education/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ...
Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software. Para uma primeira impressão sobre o perfil sugere-se a visualização do seguinte vídeo de apresentação da edição de 2020/21.
Este perfil de especialização do MiEI conta com uma equipa de docentes altamente qualificados na investigação e ensino de métodos formais aplicados ao desenvolvimento de software.
Todos fazemos parte do Laboratório HASLab/U.Minho
(Formal Methods for High-Assurance Software),
em que se vem consolidando know-how em métodos formais desde há mais de 30 anos.
As unidades curriculares que compoem MFES corporizam os principais vectores de que depende o projecto de aplicações fiáveis, à escala industrial.
Na sua componente teórica, a visão é a de abordar problemas de software segundo uma autêntica perspectiva de engenharia, que permite - através da modelos sobre os quais é possível raciocinar e calcular - prever o comportamento dos programas antes de serem escritos. Uma vez escritos, MFES ensina como fazer a sua análise e teste, dois ingredientes essenciais à qualidade do software.
O HASLab/U.Minho orgulha-se de ter sido convidado a organizar o 3º congresso mundial de MF, que teve lugar no Porto em Outubro de 2019.
In late 1967 the Study Group recommended the holding of a working conference
on Software Engineering. The phrase `software engineering' was deliberately
chosen as being provocative, in implying the need for software manufacture
to be based on the types of theoretical foundations and practical disciplines,
that are traditional in the established branches of engineering.
There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ...
Bem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ...
Education/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Education/MFES web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Natural Skin configuration
Set SKIN=nat
Set SKINSTYLE = Plain
Set STYLEBORDER = thin
Set STYLEBUTTONS = off
Set STYLESIDEBAR = left
Set STYLEVARIATION = none
Set STYLESEARCHBOX = off
Set PAGETITLE = Métodos Formais em Engenharia de Software
Set NATWEBLOGO = Métodos Formais em Engenharia de Software
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
Set WEBLOGOALT = Métodos Formais em Engenharia de Software
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Education/MFES.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Métodos Formais em Engenharia de Software
Set SITEMAPUSETO = Mestrado Integrado em Engenharia Informática - MFES 2020/2021
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Education/MFES web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES
The Education/MFES web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Education/MFES
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES
/twiki/pub/Main/LocalLogos/um_eengP.jpgCSI
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/CSI
Cálculo de Sistemas de Informação Information Systems by Calculation (H507R1) Horário Timetable Docente Foto Horário Sala Nuno Oliveira ... (last changed by JoseNunoOliveira)2020-10-31T08:08:32ZJoseNunoOliveiraATS
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/ATS
Análise e Teste de Software (H507O9) Equipa Docente Saraiva: Aulas teóricas José Nuno Macedo: Aulas laboratoriais Sumários Aula 1 (14/10) (T PL) Apresenta ... (last changed by JoaoSaraiva)2020-10-30T22:14:28ZJoaoSaraivaAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Avisos
30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ... (last changed by JoseNunoOliveira)2020-10-30T08:45:10ZJoseNunoOliveiraEM
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EM
Especificação e Modelação (H507O2) Programa Lógicas para especificação e modelação Lógica de primeira ordem Lógica relacional Lógica ... (last changed by AlcinoCunha)2020-10-29T12:53:46ZAlcinoCunhaWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSideBar
Tópicos Bem vindo a MFES anteriores Sumários Docentes OC Análise e Teste de Software UC1 Especificação e Modelação UC2 ... (last changed by JoseNunoOliveira)2020-10-21T16:39:16ZJoseNunoOliveiraWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebHome
Bem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ... (last changed by JoseNunoOliveira)2020-10-17T10:43:15ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EquipaDocente
Equipa docente Soares Barbosa Alcino Cunha João Frade Nuno Macedo Nuno Oliveira Sousa Pinto Alexandre ... (last changed by JoseNunoOliveira)2020-09-22T15:25:15ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Calendario
Calendarização / Sumários Actualização contínua no calendário: JoseNunoOliveira 22 Sep 2020 (last changed by JoseNunoOliveira)2020-09-22T15:02:11ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebPreferences
Education/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2020-09-22T14:32:58ZAlcinoCunhaWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopicActions
(last changed by AlcinoCunha)2009-09-29T16:53:07ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebCss
.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)2007-05-03T08:33:47ZAlcinoCunhaWebTopBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopBar
(last changed by AlcinoCunha)2007-02-13T14:43:04ZAlcinoCunhaWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebLeftBar
Apresentação Sumários Projectos Material (last changed by AlcinoCunha)2007-02-13T10:35:33ZAlcinoCunhaWebChanges
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebChanges
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebIndex
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebIndex
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebSearch
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSearch
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributor
João Saraiva: Aulas teóricas
José Nuno Macedo: Aulas laboratoriais
Sumários
Aula 1 (14/10)
(T + PL) Apresentação da disciplina. Combinadores de Parsing. "Embedded Domain Specific Languages". Gramáticas (BNF) como uma EDSL em Haskell: Combinadores de Parsing.
Material
Combinadores de Parser - Slides: Slides-Parsing.pdf
Combinadores de Parsing - Library: Parser.hs
Parser para a linguage Let: Parser_Let.hs
Combinadores de Parsing - Exercícios:
*Parsing.pdf*
Aula 2 (21/10)
T: Métricas de Software e Smells de Código.
PL: O Sistema SonarQube.
Material
Software Metrics - Slides: SoftwareMetrics.pdf
Code Smells - Slides: CodeSmells.pdf
Sonarqube - Slides: SonarQube.pdf
Aula 3 (28/10)
T: Catálogo de Smells de Código e Program Refactoring.
PL: Program Refactoring em intelliJ.
Material
Program Refactoring - Slides: ProgramRefactoring.pdf
Program Refactoring - _ Exercícios_: Refactoring.pdf
Exemplos de Programas: Contactos.zip, Poligono.zip
Regime de Avaliação
A avaliação consiste em duas componentes: prova individual (PI) (teste ou exame escritos) e Projeto em Grupo (PG) (a resolver durante o semestre). As provas escritas são de consulta de material impresso, apenas.
A Nota final é calcula de acordo com a seguinte fórmula: 50% PI + 50% PG, com nota mínima de 8 valores em todas as componentes de avaliação.
O projeto em grupo será desnvolvido por grupos de 3 alunos.
Datas da Avaliação
Prova Individual:06/01/2021(última aula do semestre)Entrega do Projeto em Grupo:06/01/2021Exame:: 27/01/2021(a confirmar)
30 Out - CSI: módulo RelCalc.als já está disponível.
27 Out - EM: o servidor do alloy4fun já está a funcionar.
24 Out - CSI: preparação para as aulas #03: ler secções 5.6 a 5.8 de Program Design by Calculation.
23 Out - CSI: aconselha-se os alunos a prestar atenção às FAQs que já começaram a sair na página da disciplina.
20 Out - CSI: foi enviado um e-mail aos alunos que estão listados na página de CSI. Quem porventura o não tiver recebido deve pf entrar em contacto com o docente.
17 Out - CSI: preparação para as aulas #02: ler secções 5.2 a 5.5 de Program Design by Calculation.
17 Out - CSI: como preparação para as aulas ver os sumários previstos e seguir as indicações semanais aqui nestes avisos. (Em CSI segue-se o método 'Flipped Classroom')
12 Out - As aulas iniciam-se esta semana.
17 Set - Vídeo de apresentação da edição 2020/21 de MFES.
Métodos formais e qualidade de software. Conceitos básicos: modelo, especificação, verificação e prova.
As relações binárias polimórficas como linguagem de especificação formal universal. Setas e diagramas. Estudo do cálculo relacional 'pointfree'. Conexões de Galois. Polimorfismo paramétrico.
O papel das funções na taxonomia das relações binárias. Teorema grátis de uma função polimórfica.
Atributos e dependências funcionais. O modelo de dados 'pares valores-chave' construído com relações simples, emparelhamentos e coprodutos. Integridade referencial.
Preservação de invariantes e satisfação. Cálculo da precondição mais fraca 'wp (f, p)' para uma dada função 'f' e invariante 'p'. Relações (invariantes) como tipos.
'Design by contract' por cálculo apoiado por model-checking.
Breve estudo da interpretação abstracta. Funções invariantes. Simulação relacional. Propriedades de segurança e de animação. Redução do espaço de estados por interpretação abstrata.
Formal methods for software quality. Basic concepts: model, specification, verification and proof.
Polymorphically typed binary relations as a universal formal specification language. Arrows and diagrams. Binary relations in Alloy. Study of the pointfree relational calculus. Galois connections. Parametricity.
The role of functions in the taxonomy of binary relations. Relations as types, inc. data type invariants. Theorems for free.
Attributes and functional dependencies. Key-value-pair data model = relational simplicity + pairing + coproducts. Referential integrity.
Data type invariants: preservation and satisfiability. Calculation of weakest preconditions for invariant preservation.
'Design by contract': combining model-checking with algebraic calculation. Refinement ordering on relations.
Brief study of abstract interpretation. Invariant functions. Relational simulation. Safety and liveness properties relationally. Reducing the state space by abstract interpretation.
Regime de avaliação | Assessment
Duas provas escritas de avaliação (mini-teste + teste) e exame de recurso. | 2 written exams
As provas escritas são de consulta de material impresso. | The exams are open-book
O mini-teste é eliminatório de matéria para o teste e vale 50%. | The first exam amounts to 50% of the final mark
Bibliografia | Bibliography
J.N. Oliveira. Program Design by Calculation (, 2.4Mb), Departamento de Informática, Universidade do Minho. Textbook in preparation. Chapters relevant for this course: 5, 6, 7 (and possibly 8, time permitting).
Módulo Alloy: RelCalc.als - Cálculo relacional básico em Alloy.
Módulo Alloy: kerimg.als - o que é o núcleo (kernel) e a imagem (image) de uma relação? Experimentem e observem variando a cláusula run.
Atendimento electrónico | FAQs
Q01 - Eu resolvi o exercício 5.1 mas não precisei de usar a lei (5.17). Porque é que essa regra é sugerida?R: O uso da lei (5.17), para f=sq e o resto identidades, poupa passos na resolução, que fica praticamente imediata.
TWiki's Education/MFES webThe Education/MFES web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/MFESCopyright 2020 by contributing authors2020-10-31T08:08:32ZCSIhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/CSI2020-10-31T08:08:32ZCálculo de Sistemas de Informação Information Systems by Calculation (H507R1) Horário Timetable Docente Foto Horário Sala Nuno Oliveira ... (last changed by JoseNunoOliveira)JoseNunoOliveiraATShttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/ATS2020-10-30T22:14:28ZAnálise e Teste de Software (H507O9) Equipa Docente Saraiva: Aulas teóricas José Nuno Macedo: Aulas laboratoriais Sumários Aula 1 (14/10) (T PL) Apresenta ... (last changed by JoaoSaraiva)JoaoSaraivaAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Avisos2020-10-30T08:45:10Z30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEMhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EM2020-10-29T12:53:46ZEspecificação e Modelação (H507O2) Programa Lógicas para especificação e modelação Lógica de primeira ordem Lógica relacional Lógica ... (last changed by AlcinoCunha)AlcinoCunhaWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSideBar2020-10-21T16:39:16ZTópicos Bem vindo a MFES anteriores Sumários Docentes OC Análise e Teste de Software UC1 Especificação e Modelação UC2 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebHome2020-10-17T10:43:15ZBem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EquipaDocente2020-09-22T15:25:15ZEquipa docente Soares Barbosa Alcino Cunha João Frade Nuno Macedo Nuno Oliveira Sousa Pinto Alexandre ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Calendario2020-09-22T15:02:11ZCalendarização / Sumários Actualização contínua no calendário: JoseNunoOliveira 22 Sep 2020 (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebPreferences2020-09-22T14:32:58ZEducation/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebStatistics2011-09-10T18:37:19ZStatistics for Education/MFES Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ... (last changed by TWikiGuest)TWikiGuestWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopicActions2009-09-29T16:53:07Z (last changed by AlcinoCunha)AlcinoCunhaWebCsshttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebCss2007-05-03T08:33:47Z.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)AlcinoCunhaWebTopBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopBar2007-02-13T14:43:04Z (last changed by AlcinoCunha)AlcinoCunhaWebLeftBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebLeftBar2007-02-13T10:35:33ZApresentação Sumários Projectos Material (last changed by AlcinoCunha)AlcinoCunhaWebTopicListhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopicList2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebSearchAdvancedhttp://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSearchAdvanced2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributor
30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ...
Bem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ...
Education/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ...
Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software. Para uma primeira impressão sobre o perfil sugere-se a visualização do seguinte vídeo de apresentação da edição de 2020/21.
Este perfil de especialização do MiEI conta com uma equipa de docentes altamente qualificados na investigação e ensino de métodos formais aplicados ao desenvolvimento de software.
Todos fazemos parte do Laboratório HASLab/U.Minho
(Formal Methods for High-Assurance Software),
em que se vem consolidando know-how em métodos formais desde há mais de 30 anos.
As unidades curriculares que compoem MFES corporizam os principais vectores de que depende o projecto de aplicações fiáveis, à escala industrial.
Na sua componente teórica, a visão é a de abordar problemas de software segundo uma autêntica perspectiva de engenharia, que permite - através da modelos sobre os quais é possível raciocinar e calcular - prever o comportamento dos programas antes de serem escritos. Uma vez escritos, MFES ensina como fazer a sua análise e teste, dois ingredientes essenciais à qualidade do software.
O HASLab/U.Minho orgulha-se de ter sido convidado a organizar o 3º congresso mundial de MF, que teve lugar no Porto em Outubro de 2019.
In late 1967 the Study Group recommended the holding of a working conference
on Software Engineering. The phrase `software engineering' was deliberately
chosen as being provocative, in implying the need for software manufacture
to be based on the types of theoretical foundations and practical disciplines,
that are traditional in the established branches of engineering.
There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ...
Bem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ...
Education/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Education/MFES web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Natural Skin configuration
Set SKIN=nat
Set SKINSTYLE = Plain
Set STYLEBORDER = thin
Set STYLEBUTTONS = off
Set STYLESIDEBAR = left
Set STYLEVARIATION = none
Set STYLESEARCHBOX = off
Set PAGETITLE = Métodos Formais em Engenharia de Software
Set NATWEBLOGO = Métodos Formais em Engenharia de Software
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
Set WEBLOGOALT = Métodos Formais em Engenharia de Software
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Education/MFES.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Métodos Formais em Engenharia de Software
Set SITEMAPUSETO = Mestrado Integrado em Engenharia Informática - MFES 2020/2021
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Education/MFES web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES
The Education/MFES web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Education/MFES
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES
/twiki/pub/Main/LocalLogos/um_eengP.jpgCSI
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/CSI
Cálculo de Sistemas de Informação Information Systems by Calculation (H507R1) Horário Timetable Docente Foto Horário Sala Nuno Oliveira ... (last changed by JoseNunoOliveira)2020-10-31T08:08:32ZJoseNunoOliveiraATS
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/ATS
Análise e Teste de Software (H507O9) Equipa Docente Saraiva: Aulas teóricas José Nuno Macedo: Aulas laboratoriais Sumários Aula 1 (14/10) (T PL) Apresenta ... (last changed by JoaoSaraiva)2020-10-30T22:14:28ZJoaoSaraivaAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Avisos
30 Out CSI: módulo RelCalc.als já está disponível. 27 Out EM: o servidor do alloy4fun já está a funcionar. 24 Out CSI: preparação para as aulas #03: ... (last changed by JoseNunoOliveira)2020-10-30T08:45:10ZJoseNunoOliveiraEM
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EM
Especificação e Modelação (H507O2) Programa Lógicas para especificação e modelação Lógica de primeira ordem Lógica relacional Lógica ... (last changed by AlcinoCunha)2020-10-29T12:53:46ZAlcinoCunhaWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSideBar
Tópicos Bem vindo a MFES anteriores Sumários Docentes OC Análise e Teste de Software UC1 Especificação e Modelação UC2 ... (last changed by JoseNunoOliveira)2020-10-21T16:39:16ZJoseNunoOliveiraWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebHome
Bem vindo ao Perfil de MFES Bem vindo à página da edição de 2020/21 do perfil de Métodos Formais em Engenharia de Software . Para uma primeira impressão sobre o perfil ... (last changed by JoseNunoOliveira)2020-10-17T10:43:15ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/EquipaDocente
Equipa docente Soares Barbosa Alcino Cunha João Frade Nuno Macedo Nuno Oliveira Sousa Pinto Alexandre ... (last changed by JoseNunoOliveira)2020-09-22T15:25:15ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/Calendario
Calendarização / Sumários Actualização contínua no calendário: JoseNunoOliveira 22 Sep 2020 (last changed by JoseNunoOliveira)2020-09-22T15:02:11ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebPreferences
Education/MFES Web Preferences The following settings are web preferences of the Education/MFES web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2020-09-22T14:32:58ZAlcinoCunhaWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopicActions
(last changed by AlcinoCunha)2009-09-29T16:53:07ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebCss
.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)2007-05-03T08:33:47ZAlcinoCunhaWebTopBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebTopBar
(last changed by AlcinoCunha)2007-02-13T14:43:04ZAlcinoCunhaWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebLeftBar
Apresentação Sumários Projectos Material (last changed by AlcinoCunha)2007-02-13T10:35:33ZAlcinoCunhaWebChanges
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebChanges
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebIndex
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebIndex
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebSearch
http://wiki.di.uminho.pt/twiki/bin/view/Education/MFES/WebSearch
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributor
30 Out - CSI: módulo RelCalc.als já está disponível.
27 Out - EM: o servidor do alloy4fun já está a funcionar.
24 Out - CSI: preparação para as aulas #03: ler secções 5.6 a 5.8 de Program Design by Calculation.
23 Out - CSI: aconselha-se os alunos a prestar atenção às FAQs que já começaram a sair na página da disciplina.
20 Out - CSI: foi enviado um e-mail aos alunos que estão listados na página de CSI. Quem porventura o não tiver recebido deve pf entrar em contacto com o docente.
17 Out - CSI: preparação para as aulas #02: ler secções 5.2 a 5.5 de Program Design by Calculation.
17 Out - CSI: como preparação para as aulas ver os sumários previstos e seguir as indicações semanais aqui nestes avisos. (Em CSI segue-se o método 'Flipped Classroom')
12 Out - As aulas iniciam-se esta semana.
17 Set - Vídeo de apresentação da edição 2020/21 de MFES.
30 Out - CSI: módulo RelCalc.als já está disponível.
27 Out - EM: o servidor do alloy4fun já está a funcionar.
24 Out - CSI: preparação para as aulas #03: ler secções 5.6 a 5.8 de Program Design by Calculation.
23 Out - CSI: aconselha-se os alunos a prestar atenção às FAQs que já começaram a sair na página da disciplina.
20 Out - CSI: foi enviado um e-mail aos alunos que estão listados na página de CSI. Quem porventura o não tiver recebido deve pf entrar em contacto com o docente.
17 Out - CSI: preparação para as aulas #02: ler secções 5.2 a 5.5 de Program Design by Calculation.
17 Out - CSI: como preparação para as aulas ver os sumários previstos e seguir as indicações semanais aqui nestes avisos. (Em CSI segue-se o método 'Flipped Classroom')
12 Out - As aulas iniciam-se esta semana.
17 Set - Vídeo de apresentação da edição 2020/21 de MFES.