Note de lecture : Real-Time UML, par Bruce Powel Douglass

Note : 6 ; Beaucoup d’UML classique avec un peu de spécifique « temps réel ».

Les 50 premières pages de ce livre ne nous laissent pas vraiment penser que celui-ci traite spécifiquement de temps-réel : elles exposent les principes généraux d’UML.

Il faut attendre le chapitre 2 et le traitement des exigences temps-réel pour aborder des éléments spécifiques. Ici, on parle surtout de messages, d’évènements et de réponses, mais aussi de cas d’utilisation (curieusement ils utilisent un formalisme « pré-UML » avec les relations « uses », entre autres choses). Sinon, l’approche proposée se calque sur la structure en « peau d’oignons » de John Ellis.

Le chapitre 3 est consacré à l’analyse objet. Ici, ce sont les techniques de découverte des objets (qu’ils soient du domaine, visuels ou utilitaires), des associations et des attributs qui sont détaillés. Curieusement, l’étape du « problem statement » prends place ici, alors que je l’aurais plutôt vu au chapitre précédant. La particularité des modèles « temps réels » est d’utiliser une structure de classes composites, à l’image des diagrammes de blocs proposés par UML 2.

Le chapitre 4, consacré à l’aspect comportemental des objets est, comme on peut s’y attendre dans le domaine du temps réel, essentiellement consacré aux automates d’état. Les « timing diagrams » apparus ultérieurement avec UML2 y sont aussi évoqués.

Le chapitre 5 dédié à l’architectural design s’appuie sur une approche à 3 niveaux (Architectural design, mechanistic design et detailed design). Les 2 niveaux suivants seront étudiés aux 2 chapitres suivants. L’architectural design se focalise sur la structure en couche et en package, la définition des protocoles d’échanges et le modèle de concurrence. Outre l’utilisation classique des diagrammes de dépendances entre packages, on a aussi droit à l’utilisation moins courante des diagrammes de déploiement. Les protocoles sont fort logiquement décrits à l’aide de collaborations et de diagrammes de séquence. Ce chapitre est également l’occasion de développer certains patterns architecturaux tels que : Monitor-Actuator, Watchdog, Safety executive, Diverse redundancy, Homogenous redundancy, ainsi que les plus classiques Proxy et Broker. La description de la concurrence s’appuie sur des diagrammes de déploiement où figurent les instances de tâches : non standard mais diablement clairs et utiles !

Comme on pouvait s’y attendre, le chapitre 6 traite du « mechanistic design ». Ceux-ci exposent les choix tactiques de conception, à savoir les design patterns mis en œuvre. Quelques patterns viennent étoffer les très classiques patterns du GoF (Rendez-vous, Transaction,…), ils sont très logiquement documentés à l’aide de Collaborations UML.

Le chapitre 7 « detailed design » traite du troisième niveau de l’approche architecturale. Ici, ce sont les structures de donnée, les complexités algorithmiques et la gestion des exceptions qui sont abordées.

Ce livre est sommes toutes complet sur l’usage d’UML dans le domaine du temps-réel. Il commence assez doucement et plutôt classiquement (voir faiblement) sur l’expression du besoin, mais surprend en couvrant l’ensemble du cycle de développement, y compris la conception détaillée avec UML, ce que l’on n’est pas forcément habitué à voir. Le public est aussi clairement visé : les ingénieurs travaillant dans le temps réel. Les autres seront peu ou pas concernés…

real-time-UML

Référence complète : Real-Time UML, Developing efficient objects for embedded systems – Bruce Powel Douglass – Addison Wesley / O.T. series 1998 – ISBN : 0-201-32579-9

Real-Time UML: Developing Efficient Objects for Embedded Systems

http://www.goodreads.com/book/add_to_books_widget_frame/0201325799?atmb_widget%5Bbutton%5D=atmb_widget_1.png

businesscraftsmanship:

Deming is a man who does not mince his words. The performance review system is a disease indeed—and it’s spreading. I guess it’s a disease of the brain, as it causes executives and HR departments to continue doing exactly the same thing while expecting different results. Utter insanity.

Note de lecture : Le Datawarehouse, guide de conduite de projet par Ralph Kimball & al.

Note: 3 ; Ennuyeux et obsolète

Ralph Kimball est le grand prêtre du DataWarehouse, il était donc logique que je me dirige vers l’un de ses ouvrages. Prendre une version française était alors le gage d’un certain « confort » par rapport à un sujet où je suis loin d’être à l’aise ! Finalement j’ai été déçu à plusieurs points de vue.

Tout d’abord ce volume est apparu comme assez ancien, âgé de 12 ans environ ! Le sérieux de l’éditeur français lançant une 4ème réimpression d’un ouvrage aussi démodé est en cause, alors même qu’une seconde édition américaine est sortie (la date de millésime de l’ouvrage d’origine n’apparait pas) ! De nombreux points relatifs à la technologie s’avèrent de fait sujets à caution. Sans remettre la totalité du livre en cause, cela relativise au moins 25% de son contenu.

Le second point à trait au contenu lui-même. Si le volume compte 550 pages, on n’a guère l’impression que le contenu utile le justifie. La moitié aurait suffit ! Notons quand même qu’il s’agit d’un guide de conduite de projet. On y collecte matière utile assez largement sur divers sujets : modélisation, recueil des besoins, architecture, modélisation et approche des extractions. On est assez loin des processus agiles avec une organisation assez rigide, mais j’ai quand même été assez surpris de voir une tendance en ce sens tout au long de ma lecture.

Le dernier point de déception fut d’apprendre rapidement qu’en fait cet ouvrage constituait la suite d’un précédant livre. Pour le moins, cela n’apparaissait pas évident et cela s’avère maladroit par rapport au lecteur. On est ainsi frustré de manière répétitive, surtout sur les parties traitant de la modélisation, par les renvois incessants au précédant ouvrage !

Au final, si le livre dispense d’excellents conseils sur la façon de mener un projet datawarehouse, il ne justifie guère le temps investi dans sa lecture. Sa dépendance par rapport à un livre précédant le rend d’autant moins plaisant à lire. Bref, hélas pas une lecture indispensable !

datawarehous-guide-conduite-projet

Référence complète : Le Datawarehouse, guide de conduite de projet – Ralph Kimball, Laura Reeves, Margy Ross & Warren Thornthwaite – Eyrolles 2005 (V.O. The Datawarehouse Lifecycle Toolkit, Expert methods for designing, developping and deploying Data Warehouses ; John Wiley & sons ; ISBN: 0471255475) – EAN: 978 2 212 11600 7

Le Datawarehouse, guide de conduite de projet


http://www.goodreads.com/book/add_to_books_widget_frame/18280882?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

The inspiring heroism of Aaron Swartz

5secondsofmayhem:

The internet freedom activist committed suicide on Friday at age 26, but his life was driven by courage and passion

image

The internet activist Aaron Swartz, seen here in January 2009, has died at the age of 26. Photograph: Michael Francis Mcelroy/AP

(updated below)

Aaron Swartz, the computer programmer and internet freedom activist, committed suicide on Friday in New York at the age of 26. As the incredibly moving remembrances from his friends such as Cory Doctorow and Larry Lessig attest, he was unquestionably brilliant but also – like most everyone – a complex human being plagued by demons and flaws. For many reasons, I don’t believe in whitewashing someone’s life or beatifying them upon death. But, to me, much of Swartz’s tragically short life was filled with acts that are genuinely and, in the most literal and noble sense, heroic. I think that’s really worth thinking about today.

At the age of 14, Swartz played a key role in developing the RSS software that is still widely used to enable people to manage what they read on the internet. As a teenager, he also played a vital role in the creation of Reddit, the wildly popular social networking news site. When Conde Nast purchased Reddit, Swartz received a substantial sum of money at a very young age. He became something of a legend in the internet and programming world before he was 18. His path to internet mogul status and the great riches it entails was clear, easy and virtually guaranteed: a path which so many other young internet entrepreneurs have found irresistible, monomaniacally devoting themselves to making more and more money long after they have more than they could ever hope to spend.

But rather obviously, Swartz had little interest in devoting his life to his own material enrichment, despite how easy it would have been for him. As Lessig wrote: “Aaron had literally done nothing in his life ‘to make money’ … Aaron was always and only working for (at least his conception of) the public good.”

Specifically, he committed himself to the causes in which he so passionately believed: internet freedom, civil liberties, making information and knowledge as available as possible. Here he is in his May, 2012 keynote address at the Freedom To Connect conference discussing the role he played in stopping SOPA, the movie-industry-demanded legislation that would have vested the government with dangerous censorship powers over the internet.

Critically, Swartz didn’t commit himself to these causes merely by talking about them or advocating for them. He repeatedly sacrificed his own interests, even his liberty, in order to defend these values and challenge and subvert the most powerful factions that were their enemies. That’s what makes him, in my view, so consummately heroic.

In 2008, Swartz targeted Pacer, the online service that provides access to court documents for a per-page fee. What offended Swartz and others was that people were forced to pay for access to public court documents that were created at public expense. Along with a friend, Swartz created a program to download millions of those documents and then, as Doctorow wrote, “spent a small fortune fetching a titanic amount of data and putting it into the public domain.” For that act of civil disobedience, he was investigated and harassed by the FBI, but never charged.

But in July 2011, Swartz was arrested for allegedly targeting JSTOR, the online publishing company that digitizes and distributes scholarly articles written by academics and then sells them, often at a high price, to subscribers. As Maria Bustillos detailed, none of the money goes to the actual writers (usually professors) who wrote the scholarly articles – they are usually not paid for writing them – but instead goes to the publishers.

This system offended Swartz (and many other free-data activists) for two reasons: it charged large fees for access to these articles but did not compensate the authors, and worse, it ensured that huge numbers of people are denied access to the scholarship produced by America’s colleges and universities. The indictment filed against Swartz alleged that he used his access as a Harvard fellow to the JSTOR system to download millions of articles with the intent to distribute them online for free; when he was detected and his access was cut off, the indictment claims he then trespassed into an MIT computer-wiring closet in order to physically download the data directly onto his laptop.

Read More

Note de lecture : Wicket in Action, par Martijn Dashorst & Eelco Hillenius

Note : 7 ; Un apprentissage progressif, classique et sans surprise mais efficace d’un framework Web à la sauce client riche.

Wicket est un Framework de présentation Web vraiment à part. En effet, c’est à ma connaissance le seul à être statefull. En cela et par sa séparation HTML / Java, il me rappelle beaucoup les frameworks d’IHM Windows avec lesquels j’ai longtemps travaillé (OWL et MFC). C’est sans doute pour cela que je me sens à l’aise avec.

Wicket in action est sans nul doute un très bon tutorial pour comprendre et rentrer dans Wicket, par la pratique.

Le premier chapitre nous présente un incontournable « Hello, World » à la sauce Wicket. C’est très bien … à l’exception de mon incapacité à faire fonctionner cela par moi-même ! En fait, certains ingrédients nécessaires viennent plus tard, beaucoup plus tard ! C’est l’un de mes seuls reproches par rapport à ce livre par ailleurs excellent.

Le second chapitre fait le tour du Framework, une excellent idée, même si au final l’ensemble est un peu lourd à digérer pour un début. Mais les chapitres suivants vont revenir sur chacun des éléments.

Une application web, ça commence par une page, puis deux, puis trois. Avec le troisième chapitre les choses sérieuses commencent et on y construit une vraie amorce d’application Web, avec du HTML et des pages Wicket mappant des composants, une redirection de page, etc… C’est aussi le début de l’application d’exemple du livre. S’il n’y avait qu’un seul chapitre à lire, ce serait celui-ci.

On se plaint parfois de la complexité des modèles Wicket, mais ceux-ci sont admirablement expliqués au chapitre 4, en avançant progressivement sur les types de modèles de plus en plus complexes. Bravo !

Le chapitre 5 sur les liens, labels et répéteurs nous donne l’impression de revisiter une partie du chapitre 3. C’est une impression assez bizarre. Mais la qualité pédagogique est toujours au rendez-vous.

Même long de presque 40 pages, le chapitre 6 sur les formulaires explique clairement les composants de saisie, mais aussi la cinématique de fonctionnement du formulaire, c’est à dire son cycle de vie.

Le chapitre 7 conclut la seconde partie de ce livre en présentant la composition des pages, la manière de modulariser celles-ci et d’améliorer ce faisant la réutilisabilité.

La troisième partie s’attache aux usages avancés de Wicket. Le chapitre 8 ouvre le bal avec le développement de composants réutilisables. Pas franchement facile à suivre.

Plus important (on aurait pu mettre ça en seconde partie), l’utilisation des CSS et des ressources est au cœur du chapitre 9. Un contenu finalement indispensable.

Le chapitre 10 conclut cette 3ème partie, et c’est avec l’inévitable volet Ajax de Wicket. Je ne suis pas franchement sûr que celle-ci soit toujours d’actualité avec l’avancée des librairies Ajax modernes, dont JQuery, pour laquelle une adaptation Wicket existe : WiQuery.

La quatrième partie évoque la mise en production des applications Wicket. On commence au chapitre 11 par évoquer la sécurité et l’usage des contextes de session. Le chapitre 12 parle d’internationalisation. Nécessaire mais ennuyeux.

Le  chapitre 13 s’intéresse à l’intégration avec Spring et Hibernate. C’est un sujet important, mais hélas pas très bien traité ici.

Le dernier chapitre (la mise en production) nous réserve une étonnante surprise : il débute par l’évocation des tests unitaires ! Franchement on aurait pu débuter le livre par ça, ou presque ! Puis on évoque un reste à faire de petits sujets : configuration, logging, monitoring (avec JMX), etc..

Le livre est vraiment excellent. Je le conseille (presque) sans réserve aux personnes souhaitant se mettre à Wicket. Mes réserves, les voici :

Quelques bizarreries dans l’ordonnancement des sujets, mais rien de grave.

Un contenu qui commence à dater : il s’agit de la version 1.3 de Wicket, antérieure à Java 1.5 ; la version courante fait un usage abondant des génériques et rend légèrement obsolète certaines parties de code. Le texte mériterait un rafraichissement !

wicket-inaction-manning

Référence complète : Wicket in Action – Martijn Dashorst & Eelco Hillenius – Manning 2008 – ISBN: 1932394982 ; EAN: 978 1932394986

Wicket in Action


http://www.goodreads.com/book/add_to_books_widget_frame/1932394982?atmb_widget%5Bbutton%5D=atmb_widget_1.png