poniedziałek, 23 czerwca 2014

Dysk SSD przestał działać i nie jest widoczny w BIOS/UEFI

Bohaterem dzisiejszego postu będzie dysk SSD Cruciala, który służył mi jako dysk dla Battlefieldów (zarówno części trzeciej jak i czwartej). 64GB wystarczały idealnie dla obydwu produkcji elektroników, do czasu, gdy podczas aktualizacji czwartej części pola walki komputer zamarzł. Po restarcie długo oglądałem testy przeprowadzane przez UEFI, a następnie mogłem iść zaparzyć herbatę podczas gdy Windows próbował wstać.
Gdy już upłynęła wystarczająca ilość czasu abym ujrzał pulpit systemu, od razu sprawdziłem "Mój Komputer". Dysk SSD był niewidoczny. Dalsza diagnostyka wykazała również, że jest on także niewidoczny w UEFI, jak i jest przyczyną przestojów zarówno na testach UEFI jak i ładowania systemu. Pożegnałem się więc z crucialem i wykręciłem go z obudowy myśląc "No cóż po prostu się ...zepsuł".
 
Jednak jakiś czas później natrafiłem na pewnym forum na wątek opisujący podobny problem. Pomógł mi on w naprawie SSD. Jak to zrobiłem?
 
Zacznijmy od początku:
 
Dokładny model mojego dysku to: Crucial m4 64GB (CT064M4SSD2).
Jego zdjęcie poglądowe prezentuje poniżej.


Czynności które przeprowadziłem w celu naprawy:
 
1. Utworzyłem bootowalny pendrive (jak to uczynić - najlepiej wygooglować - podpowiem program Rufus).
 
2. Ściągnąłem ze strony producenta firmeware do uszkodzonego dysku SSD (ten bootowalny z poziomu DOS'a - http://www.crucial.com/wcsstore/CrucialSAS/firmware/m4/070H/crucial-m4-070h-07-00.zip) - proszę jednak zwrócić uwagę, że link który podaje będzie działał tylko z z tym jednym konkretnym modelem SSD - Crucial m4 64GB (CT064M4SSD2), w przypadku posiadania innego musicie poszukać swojej wersji firmware na stronie producenta.
 
3. Umieściłem pliki na pendrive.
 
4. Włączyłem komputer z podłączonym dyskiem SSD, pendrive oraz wymusiłem rozruch z pendrive.
 
5. Poczekałem na zakończenie testów UEFI (to nic, że BIOS/UEFI nie widzi tego dysku).
 
6. Postępowałem zgodnie z instrukcjami producenta odnośnie aktualizacji firmware SSD.
 
7. Po pomyślnej aktualizacji firmware, zrestartowałem komputer.
 
Ku mojemu zdziwieniu, dysk zaczął być widoczny z powrotem w UEFI oraz w systemie. Nie zarejestrowałem również przestojów zarówno testów UFEI jak i podczas ładowania systemu. Co więcej, po załadowaniu Windowsa, w "Moim Komputerze" dysk był widoczny oraz posiadał wszystkie dane z przed "awarii".
 
Okazało się, że w tej prosty sposób przywróciłem swój SSD z zaświatów do żywych. Warto spróbować tej metody zanim przeznaczymy swój dysk na straty.

środa, 11 czerwca 2014

UML 2.0 w pigułce

Dziś mam przyjemność zebrać w jednym miejscu same najważniejsze teoretyczne aspekty języka UML. Poniżej tekst, który może zarówno pełnić rolę popularnej ściągi jak i całościowego podsumowania UML w celu ugruntowania wiedzy.
 
Dla osób, które pragną więcej polecam książkę:
 
UML czyli Zunifikowany Język Modelowania (z ang. Unified Modeling Language) używany do opisania tworzone systemu.Utworzony grupę trzech specjalistów:  Grandy Boocha, Jamesa Rumbaugham, Ivara Jackobsona. Rozwijany przez OMG (z ang. Object Management Group).
 
Składa się z notacji (elementy graficzne, składnia języka) oraz metamodelu (definicje pojęć języka, istotny przy graficznym programowaniu)
 
UML jako język modelowania obiektowego jest ściśle powiązany z następującymi pojęciami:
  • Obiekt - każdy byt, pojęcie lub rzecz.
  • Komunikat - specyfikacja wymiany informacji między obiektami .
  • Hermetyzacja (enkapsulacja) - dawanie dostępu do obiektu po przez ujawnianie tylko tych informacji, które są niezbędne.
  • Polimorfizm - nadawanie tej samej nazwy atrybutom i operacjom.
  • Dziedziczenie - przyporządkowanie atrybutów i operacji klasom obiektów na podstawie hierarchicznej zależności między nimi .
Zastosowanie podejścia obiektowego wykorzystywane jest w:
  • Metodyce RUP
  • UML
  • Obiektowych językach programowania
  • Bazach danych
Analiza to badanie problemu i wymagań. Analiza obiektowa to badanie i klasyfikacja obiektów pojęciowych, czyli pojęć ze świata rzeczywistego.
Projektowanie - wymyślanie koncepcyjnego rozwiązania (programistycznego i sprzętowego), które realizuje wymagania.
Projektowanie obiektów określa się mianem projektowania obiektowego.
Proces wytwórczy - kaskadowe podejście do procesu wytwórczego nie jest dobrym pomysłem. Lepszym jest podejście iteracyjne. W każdej integracji wykonuje się zarówno analizę, projektowanie jak i kod.
Metodologia - zbiór metod procedur i reguł używanych prze osoby zajmujące się daną dziedziną przedmiotową.
UML jest językiem, nie zawiera opisu procedur, czy metod, więc nie może być użyty wszędzie.
 
Model - wzorzec, przedmiot służący do naśladowania.
Modelowanie - konstruowanie planu według pewnego wzorca.
Model obiektowy opiera się na pojęciach przyjętych w obiektowości.
UML wyróżnia 13 diagramów (graficzna reprezentacjach konstrukcji oraz zależności):
 
  1.  Diagram klas - graficzne przedstawienie statycznych, deklaratywnych elementów oraz związków między nimi.
  2.  Diagram obiektów - wystąpienie diagramu klas odwzorowujące strukturę systemu w wybranym momencie jego działania.
  3.  Diagram pakietów -  graficzne przedstawienie struktury systemu w postaci pakietów połączonych zależnościami i zagnieżdżeniami.
  4.  Diagram struktur połączonych - graficzne przedstawienie wzajemnie współdziałających części dla osiągnięcia pożądanej funkcjonalności współbieżności.
  5.  Diagram komponentów - modelowanie elementów oprogramowania i związków między nimi.
  6.  Diagram rozlokowania - modelowanie rozmieszczenia infrastruktury oraz platform użytkownika systemu.
  7.  Diagram przypadków użycia - graficzna reprezentacja aktorów, przypadków użycia oraz związków między nimi.
  8.  Diagram czynności - graficzne przedstawienie sekwencyjnych i współbieżnych przepływów sterowania oraz danych pomiędzy uporządkowanymi akcjami i czynnościami obiektów.
  9.  Diagram maszyny stanowej - graficzne odzwierciedlenie dyskretnego skokowego zachowania systemów stan-przejście. Przejścia pomiędzy stanami.
  10.  Diagram sekwencji - interakcje między instancjami klasyfikatorów systemu w postaci komunikatów między nimi.
  11.  Diagram komunikacji - specyfikuje strukturalne związki między instancjami klasyfikatorów biorącymi udział w interakcji oraz wymienia komunikaty. Diagram jest izomorficzny (są łatwo przenośne) względem diagramu sekwencji.
  12.  Diagram harmongramowania - reprezentuje dopuszczalne stany jakie może przyjmować instancja klasyfikatora uczestnicząca w interakcji.
  13.  Diagram sterowania interakcją - przepływ sterowania pomiędzy logiczne powiązanymi diagramami i fragmentami interakcji z wykorzystaniem kategorii modelowania diagramu czynności.
  
Diagramy można zgrupować według podziału:
Diagramy struktury, czyli:
  • Diagram klas,
  • Diagram pakietów,
  • Diagram obiektów,
  • Diagram struktur połączonych
Diagramy dynamiki, czyli:
  • Diagram przypadków użycia,
  • Diagram czynności,
  • Diagram maszyny stanowej,
Diagramy wdrożeniowe, czyli:
  • Diagram rozlokowania,
  • Diagram komponentów
Diagramy interakcji, czyli:
  • Diagram sekwencji,
  • Diagram harmonogramowania
  • Diagram komunikacji
  • Diagram sterowania interakcją
Może je także zgrupować według perspektyw które prezentują, czyli:
Perspektywa przypadków użycia:
  • Diagram przypadków użycia, Diagram pakietów.
Perspektywa dynamiczna:
  • Diagram interakcji, Diagram czynności,  Diagram maszyny stanowej, Diagram pakietów
Perspektywa logiczna:
  • Diagram klas, Diagram obiektów, Diagram struktur połączonych, Diagram pakietów
Perspektywa komponentów:
  • Diagram komponentów, Diagram pakietów
Perspektywa rozlokowania:
  • Diagram rozlokowania, Diagram pakietów
Klasyfikator to każdy byt modelu (np. przypadek użycia, klasa, aktor etc.)
Instancją nazywany pojedyńcze wywołanie klasyfikatora.
 
Mechanizmy rozszerzalności, które oferuje UML to:
Stereotyp - tekstowe lub graficzne doprecyzowanie semantyki (np. <<include>> lub <<extend>>). Tekstowo zawsze zawierane w nawiasach << >>
Ograniczenie - wyrażenie formy językiem OCL (ang. Object Constroint Language) - formalne wyrażenie ograniczeń w UML.
Metka - przyporządkowanie nazwie wartości, notatka do elementu.
 
Najpopularniejsze narzędzia CASE (ang. Computer Aided Software Engineering) wspomagające modelowanie w języku UML:
  • ArgoUML
  • IBM Rational Rose
  • Enterprise Architect
  • Modelio
  • Netbeans
  • Eclipse
  • Microsoft Visio