• O WordPressie
    • WordPress.org
    • Dokumentacja
    • Naucz się WordPressa
    • Pomoc techniczna
    • Uwagi
  • Zaloguj się
Marek Zając Marek Zając
  • contact@zajacmarek.com Zapraszam do kontaktu
  • Strona główna
  • O mnie
  • Kursy
  • Konsultacje
  • Kanał Youtube
  • 13 stycznia 2014
  • Marek Zając
  • 5 Comments

Trudna sztuka projektowania

W tym semestrze trafił nam się sympatyczny przedmiot jakim jest Inżynieria Oprogramowania. Każdy trochę bardziej związany z informatyką/programowaniem wie, że w dużym skrócie jest to dział wiedzy mówiący m.in. o planowaniu i projektowaniu nowo powstających aplikacji. No i właśnie o tym projektowaniu będzie ten mój dzisiejszy post.

W ramach tego przedmiotu odbywają się laboratoria. Zadanie jakie dostaliśmy do wykonania w ciągu całego semestru to stworzenie prostego programu, zaczynając od specyfikacji, diagramów itd., a kończąc na działającym projekcie zawierającym również testy jednostkowe. W tym momencie każdy początkujący programista by stwierdził, że przecież małą apkę to się w góra kilka dni napisze więc dlaczego aż 4 miesiące na to dostaliśmy. No właśnie nie. Przyznać się, kto z was kiedykolwiek do swoich programów pisał specyfikację i robił jakiekolwiek diagramy UML? ;) Ja przyznaję się, że tego nigdy nie robiłem, nie tylko z powodu braku wiedzy, ale też, a może przede wszystkim z lenistwa. I teraz wychodzi to dlaczego mieliśmy na to zadanie aż tyle czasu. Otóż dopiero wczoraj udało mi się zakończyć tworzenie specyfikacji projektu i diagramów klas i sekwencji.

Program, który dla siebie wybrałem to banalna aplikacja, której zadaniem jest pobranie średniego kursu walut dostępnego na stronie NBP w postaci pliku XML, wyświetlenie tego kursu oraz danie możliwość ewentualnego przeliczenia wartości z jednej waluty na inną. Niby nic tak na prawdę tutaj nie ma, ot kilka funkcji. A jednak moja specyfikacja, nie licząc spisu treści i tytułu, zajęła 5 stron A4! Zawarte tam są wszystkie funkcjonalności wymagane w projekcie oraz ogólny zarys systemu. O ile przy tej części zadania uważam, że poszło mi nawet nieźle, zwłaszcza, że nigdy wcześniej nie napisałem nawet linijki specyfikacji, to już jeśli chodzi o diagramy to cóż… Określę to tak, że jeśli ocena jaką za nie dostanę będzie większa niż 3.0 to można powiedzieć, że prowadzący przy sprawdzaniu był bardzo pobłażliwy. Nawet to 3.0 w tym wypadku będzie trochę naciąganą oceną. Dlaczego? Bo to co stworzyłem powinno być raczej wstępną wersją diagramu klas i sekwencji (zwłaszcza tego drugiego), a nie czymś co się oddaje do oceny. Niestety, zabrakło mi czasu, pisanie i sprawdzanie specyfikacji zajęło większość semestru. Nie ma oczywiście co udawać świętego, w jakimś stopniu przyczyniło się do tego moje lenistwo, jednak w tym wypadku nie było ono tak mocne jak niekiedy się zdarza przy innych zadaniach.

No więc mamy 13 stycznia, do tego czasu udało mi się oddać gotową specyfikację projektu i pożal się boże diagramy. Następne, a jednocześnie ostatnie zajęcia będą 27 stycznia, a w tym momencie został mi jeszcze do napisania sam kod i dopisanie do niego testów jednostkowych. Tutaj już na pewno pójdzie szybciej, zwłaszcza jak ma się wszystko dobrze zaprojektowanie :P W tym momencie chciałbym zakończyć tym, że jeśli ktokolwiek uważa, że tworząc programy na poważnie po prostu siada się do klawiatury i pisze to mam tylko jedno stwierdzenie – przed taką osobą jeszcze długa droga zanim uda mu się stworzyć i utrzymać większy projekt, niezależnie od tego jak dobry pomysł będzie miał, zawsze zabraknie tego formalnego opisu wszystkiego co chce się umieścić w naszym dziele. Oczywiście, raczej nie znajdzie się programisty, który do każdego swojego programu, nawet mającego max kilkaset linii kodu będzie pisał całą specyfikację i rysował diagramy UML, jednak próba zrobienia tego, nawet jedynie dla siebie, na pewno pozwoli inaczej spojrzeć na cały proces wytwarzania oprogramowania i pokaże, że klepanie kodu to jedynie niewielki fragment całości.

Jak już tak się rozpisałem, to może na koniec zamieszczę tą specyfikację, o której tyle mówiłem, może komuś się przyda, może ktoś będzie chciał zobaczyć jak taki twór wygląda, albo po prostu będzie miał silną chęć ocenienia jak mi to wyszło :D Diagramów nie zamieszczam, uwierzcie na słowo, że szkoda czasu na ich oglądanie.

Plik znaleźć można tutaj -> specyfikacja

Related Posts
  • Nie lubię TEGO projektu! 15 stycznia 2020
  • Pierwsze portfolio na GitHubie – Przewodnik 14 stycznia 2020
  • Podsumowanie i plany – edycja 2019/2020 6 stycznia 2020
5 komentarzy
  1. Reply
    Emilia 13 stycznia 2014

    No wiesz, tych diagramów byłam najbardziej ciekawa ;) jako że sama mam podobny przedmiot tylko nazywa się on analiza i projektowanie portali korporacyjnych i zamiast napisać aplikację mamy w nim stworzyć portal i jest to jedyna różnica ;) Trzymam kciuki za ocenę wyższą niż 3.0 ;)

  2. Reply
    Marcin 25 stycznia 2014

    A nie musieliście robić żadnych diagramów do tego ? Zależności, diagramów czynności, linii życia itd. itd. … ?

    Bo to bardziej taki opis projektu niż jego dokumentacja w UML-u ?

    W czym piszesz aplikację i jak postępy ? Tak jak wcześniej w c# czy wymóg to Java ?

    Pozdro. ;-)

    • Reply
      Marek Zając 25 stycznia 2014

      Mieliśmy robić do tego diagram klas i sekwencji, ale nie chwaliłem się nimi ponieważ, tak jak zaznaczyłem w tekście, byłby to raczej antyprzykład jak wykonywać takie diagramy :D Aplikację piszę w C#, nie mamy narzuconej technologii, jedyny wymóg jest taki, że ma być to aplikacja desktopowa. W tym momencie jeszcze niewielka część aplikacji istnieje, ale ponieważ jest to prosty program, do którego gotowe fragmenty będę brał z poprzedniej wersji to myślę, że poniedziałkowy deadline jest jak najbardziej wykonalny :)

  3. Reply
    Marcin 27 stycznia 2014

    Zrobione :) ?

    • Reply
      Marek Zając 27 stycznia 2014

      Tak zrobione. O dziwo nawet diagramy się podobały, chociaż sam jestem z nich wybitnie niezadowolony, tak samo jak z kodu programu, który moim zdaniem wymaga zmian i jest po części wynikiem słabej architektury. Teraz zrobiłbym niektóre rzeczy inaczej, no ale właśnie tak się zdobywa doświadczenie.

Leave a Comment Cancel Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Copyright 2020 Bizix, All rights reserved.
  • POLITYKA PRYWATNOŚCI I PLIKÓW COOKIES