b`cd,egf h i j k!l mongprqgs t,u2vpw%x! " #%$ & ' (*),+ -.0/ 12+03547678.9808 :<;*=.0:>.?124A@-4 BDCFEHG I J K7L MNPO*NRQ2M7SUT*VWL KAX,YFZ%SU[?Q\O*] ^_K`O?]_a 0RGHORZDQLHLSURMHNWRZDQLH ÿ z!{ 2}~0{ %ƒ 2 ˆ2Š gœ` PŽ!, % Pš, gœ žÿr Ÿ!, g g 2 ž! 2, 2ª2«2 H % P 2± ² ³o «%Ŕ P± µa Ṕ H ŗ¹ ºH» ¼ ½*¾2 À7» Áo \ ½HÃ\Äg Š¹ Æ Ç È É Ê2Ë Ì Í Ë ÎRÏoÐoÍ Ï Ñ Í ÎgÒ Ï ÓÎgÊ2Ë Î Ô ÕÖÉ,ØoÙHÚ Û Ü Ý Þ ß à á â ã þ ÿ ÿ ÿ ÿ Modelowanie (analiza) Celem analizy jest ustalenie wszystkich tych czynników lub warunków w dziedzinie przedmiotowej, w otoczeniu realizatorów projektu, w istniej cych lub planowanych systemach komputerowych, które mog wp yn na decyzje projektowe, na przebieg procesu projektowego i na realizacj wymaga. Wynik: Logiczny model systemu, opisuj cy sposób realizacji przez system postawionych wymaga, lecz abstrahuj cy od szczegó ów implementacyjnych; model staje si podstaw tworzenia projektu Jak system ma dzia a? Projektowanie W odró! nieniu od analizy du!#" rol$ odgrywa % rodowisko implementacji; projektanci musz& wi' c posiada( dobr& znajomo% ( j' zyków, bibliotek, i narz' dzi stosowanych w trakcie implementacji D&*) enie do tego, aby struktura projektu zachowa+ a ogóln& struktur' modelu stworzonego podczas analizy; niewielkie zmiany w dziedzinie problemu nie powinny powodowa( du) ych zmian w projekcie Wynik: szczegó+ owy opis implementacji systemu Jak system ma by, zaimplementowany? ä å æ ç å2è é ê è ërìoíoê ì î ê ëgïöì ðëgå2è ëöñ òöçoó2ôgõ,ö ø ë ù ú û ü û\ý Class-Responsibility-Collaborators = Klasa-Zobowi[ zanie-wspó\praca Klasy przedstawiane s[ na kartach katalogowych (papierowe kartoniki) o okre] lonych wymiarach (4x6 cali) mo^ liwo_ ` a atwego uzupea niania, uka adania, niszczenia,... Karty wypeb niane sc podczas nieformalnego spotkania (burza mózgów) i nastd pnie mogc bye ukb adane w celu modelowania interakcji kaf dy uczesnik mof e odpowiadag za jednh lub wii cej kart Na karcie poza nazwj klasy notowane sj jej zobowij zania i wspók dziak ania a nie atrybuty i metody ew. atrybuty i metody na odwrotnej stronie karty P QRTSVUXWZYW Zobowi zanie - wysokopoziomowy opis zada klasy (kilka punktów) unikanie opisywania fragmentów danych i procesów ograniczony rozmiar karty ma wymusi unikanie zbyt rozbudowanych klas i ewentualnie ich podzia na mniejsze Wspó dzia ania - odnosz si do klas z którymi dana klasa ma wspó pracowa wysokopoziomowe pojš cie o zwi zkach pomiš dzy klasami lnmpo:qrmts#umvv wyx zv{t p{3}~ = Tƒ3 -. / 01.32 4 5 2 687:9:5 71; 5 6=<>7?@6=.32 6>A BC01D E:F*G :ˆp Š 3Œ# Ž ŽV V Ž 6 J K H I F LNM1O ¹ º»¼½V¾ ÁÀ º ÂÃV¾X º» ¼Ä½ÆÅ ÇȺ Éʻ˽nÌ Í Ì Î» ùø úüûäýÿþ VýÄþyþ ú Vû nþ W wielu przypadkach przy definicji klasy naleï y dokð adnie ustaliñ, z jakiego rodzaju abstrakcjò obiektu mamy do czynienia; naleó y zwróciô uwagõ na nastõ pujö ce aspekty (czy mamy do czynienia z...?): konkretnym obiektem w danej chwili czasowej konkretnym obiektem w pewnym odcinku czasu opisem tego obiektu (dokument, metadane) pewnym zbiorem konkretnych obiektów W przypadku klasy samochód obiekt mo e reprezentowaø : konkretny egzemplarz samochodu (unikalny numer nadwozia i silnika) wyprodukowany przez okreù lonú fabrykû model (rodzaj) samochodu oferowany klientom przez znany koncern pozycjû w katalogu samochodów opisujú cy wü asnoù ci modelu historiû stanów pewnego konkretnego samochodu œ ž Ÿ1 3 8 : : 1 = C @ = 3 C ªCŸ:«3 = p ± ² ³ ѵ# Zrozumienie systemu - systemy oprogramowania s du e, skomplikowane i musz spe nia sprzeczne wymagania; architektura zapewnia szkielet rozwi zania, który abstrahuje od szczegó ów implementacyjnych, ale ustawia wzajemnie podstawowe elementy tak aby mo liwe by oby spe nienie wymaga Organizowanie rozwoju oprogramowania - pozwala odseparowa ró ne cz!#" ci, tak aby ich tworzenie by o mo liwie niezale ne; zale no" ci pomi! dzy cz!$" ciami s jasno okre" lone i punkty styku dok adnie wyspecyfikowane Promowanie ponownego wykorzystania - architektura pomaga w zidentyfikowaniu na mo liwie wysokim poziomie analogicznych systemów krytycznych i podsystemów, dzi! ki czemu ponowne wykorzystanie nie ogranicza si! do poziomu klas; wspólne podsystemy mog by przystosowane na etapie rozwoju do pó% niejszego wyk. Promowanie ci& g' ego rozwoju - wi( kszo)+* systemów musi reagowa* na nowe potrzeby i wymagania przed nimi stawiane; dobra architektura pozwala zapanowa* nad ewolucj, systemu w czasie i kontrolowa* jej przebieg; zapoznanie si( z architektur, pozwala na zrozumienie dzia- ania systemu przez przysz- ych twórców i eliminuje potencjalne zagro. enia Ý Þ ß à1þ3á â ã á ä8å:æ:ã å1ç ã ä=è>å é@ä=þ3á ä>ê ëcà1ìpí:î*ï ð ñ ä ò ó ô õnö1ô 1
PRQTSVÜ W XYWZ[ \^]_ `ZQTaY\b[bc \d[ SeS QfXhgic jk\lmjn Q o št œ ž bÿ Ÿ šžm ªš ž5«proces projektowania architektonicznego zalep y od wiedzy o zastosowaniu oraz umiejq tnor ci i intuicji architekta; wspólne czynnor ci dla wszystkich procesów (czynnor ci te zwykle naks adajt siu na siebie): strukturalizacja systemu - system jest dzielony na kilka podstawowych podsystemów (podsystem - niezalev na jednostka oprogramowania, jej uss ugi nie zalev t od uss ug oferowanych przez inne podsystemy); identyfikuje siu komunikacju miu dzy podsystemami podziaw podsystemów na moduw y (moduw jest zwykle komponentem systemu, który oferuje co najmniej jednx usw ugy innym moduw om; zwykle nie jest niezalez ny) modelowanie sterowania - okrer la siu ogólny model zwit zków sterowania miu dzy czufr ciami systemu; uzupes nia uv yty model struktury / 0 1 23054 6 7 4 89+:+7 93; 7 8=<>9?8=054 8>@ A>2+B5C=D#E F G 8 H I J KMLON Repozytorium - wszystkie wspó dzielone dane s umieszczone w centralnej bazie danych, z której mog korzysta wszystkie podsystemy; zwykle generowane przez jeden podsystem a wykorzystywane przez pozosta e systemy sterowania i kontroli, systemy zarz dzania informacjami, systemy CAD, zestawy narz dzi CASE Klient-serwer - model rozproszonego systemu, w którym dane i przetwarzanie s rozdzielone mi dzy zbiór procesorów (samodzielne serwery oferuj ce us ugi + klienci korzystaj cy z us ug oferowanych przez serwery + sie, daj ca dost p klientom do us ug) cienki klient - ca o przetwarzania i zarz dzania danymi na serwerze, zadaniem klienta jest uruchomienie oprogramowania prezentacyjnego gruby klient - serwer odpowiada za zarz dzanie danymi; oprogramowanie klienta implementuje logik programu u± ytkowego i interfejs u± ytkownika maszyna abstrakcyjna (warstwowy) - opisuje sprz ganie podsystemów; uk ada system w ci g warstw, z których ka± da oferuje pewne us ugi { } ~3 5 ƒ+ + ƒ3 = ƒ ˆ = 5 Š>~3 #Œ+ $Ž + O ÍÏÎTÐÑbÒ ÓkÔ ÕÓÖ Îf dõ Ø Ò Ô Ù Ó Ú ÛÜÔÎÝÞÔ Î ûýüþÿ ÿ kÿ fü ² ³ µ3³5 ¹º+»+ º3¼ ¹=½>º ¾¹=³5 ¹> À>µ+Á5Â=Ã#Ä Å Æ ¹ Ç È É$É ÊkË$Ì Sterowanie scentralizowane - jeden z podsystemów jest wybrany do roli sterownika i odpowiada za zarz dzanie dzia aniem innych model wywo anie-powrót - sterowanie zaczyna si na wierzcho ku hierarchii podprogramów i przez wywo ania podprogramów przechodzi do ni szych poziomów; jedynie systemy sekwencyjne model mened era - stosuje si do systemów wspó bie nych; jeden z komponentów systemu jest mened erem i steruje rozpoczynaniem, zatrzymywaniem i koordynacj innych procesów systemu Sterowanie zdarzeniowe - ka dy podsystem musi reagowa na zdarzenia zachodz ce na zewn trz model rozg aszania - zdarzenie jest w zasadzie og oszeniem dla wszystkich podsystemów, ka dy podsystem, który mo e obs u y to zdarzenie, reaguje na nie modele z przerwaniami - u ywane wy cznie w systemach czasu rzeczywistego, gdzie zewn trzne przerwania s wykrywane przez obs ug przerwa ; nast pnie s one przekazywane do innego komponentu, który je przetworzy ß à á â3à5ã ä å ã æç+è+å ç3é å æ=ê ç ëæ=à5ã æ ì í>â3î#ï+ð$ñ ò ó æ ô õ ö+ ø ùoú B CEDCFG CIHKJLNMFOJPHC FEQ R MED SUTVC W R XYM[Z?Q LU\?MEHC FG C ŽV N V š œ ž š Ÿ?? Uszczegó] owienie opracowanego modelu logicznego projekt musi by^ wystarczaj_ co szczegó` owy, aby móg` by^ podstaw_ implementacji, przy czym stopiea szczegó` owob ci zalec y od poziomu zaawansowania programistów (ale np. szczegó` owy projekt jest dobr_ dokumentacja techniczn_ ) Projektowanie sk] adowych systemów, które nie sd zwid zane z dziedzind problemu Optymalizacja systemu Dostosowanie do ograniczee i mof liwog ci g rodowiska implementacji Okreg lenie fizycznej struktury systemu okreh lenie struktury kodu i ródj owego, tj. wyrók nienie plików i ródj owych, zalek nol ci pomim dzy nimi oraz rozmieszczenie skj adowych projektu w plikach i ródj owych podziaj systemu na poszczególne aplikacje fizyczne rozmieszczenie danych i aplikacji na stacjach roboczych i serwerach Wybór sposobu implementacji konstrukcji, które mog by zrealizowane na wiele sposobów (np. zgodnie ze standardami przyj tymi w firmie) Okre lenie poziomów widoczno ci atrybutów i dost pu do nich Podanie regu odwzorowanie notacji w struktury konkretnego j zyka programowania (np. polegaj ce na dok adnym okre leniu typów danych) Jeª eli j zyk implementacji narzuca ograniczenia, wówczas moª liwe jest tworzenie np. nowych klas, które b d jedynie cz ci implementacji (nie naleª do modelu) Podanie nag ówków metod oraz ich parametrów Okre lenie, które z metod b d realizowane jako funkcje wirtualne a które jako zwyczajne funkcje Zast pienie niektórych prostych metod bezpo rednim dost pem do atrybutów Zast pienie niektórych atrybutów redundantnych przez odpowiednie metody, np. Wiek = Bieª cadata - DataUrodzenia;!#" $ % " &('*)*% '!+ % &-,.' /0&-#" &.1 2. *3#4-576 8 9 & : ; <*= >?=A@ n o p q!o#r s t r u(v*w*t v!x t u-yzv {0u-o#r uz }.q!~7* A ƒ u * ˆŠ Œ 2
ÇÉÈ ÊUËUÊ ÌEÍÎ Ï Ð ÑšÒ Ì Ó Ò ÌžÔšÐÕÌ Ö ØAÙ.Ú ( 6 7! #" $%&'" )*#+-,.0/-.21 3-/4.51 8#9;:#<#= >#?A@#B OkreÛ lenie sposobów implementacji zwiü zków (asocjacji), gdyý zwykle moý na je zaimplementowaþ na wiele sposobów, z reguß y poprzez wprowadzenie dodatkowych atrybutów (pól): obiekty powià zanej klasy wskaá niki (referencje) do obiektów powià zanej klasy identyfikatory obiektów powià zanej klasy klucze kandydujà ce obiektów powià zanej klasy W zaleâ noã ci od przyjä tego sposobu oraz od licznoã ci zwià zków (1:1, 1:n, n:1, m:n) moâ liwe sà bardzo róâ ne deklaracje w przyjä tym jä zyku programowania: tablica obiektów lista wskaá ników tablica wskaá ników Okreã lenie dodatkowych reguå przy transformacji schematów obiektowych na relacyjne «! # ± ²(³* *± ³!µ ± ²-.³ 0²- # ². ¹. *º#»-¼7½ ¾ ² À Á Â*à Ä?ÅAÆ SkC adowa zarzd dzania pamie cif operacyjnf (kompilator, syst. operacyjny) SkG adowa zarzf dzania zadaniami (podziai czasu procesora; kompilator, syst. operacyjny) SkG adowa dziedziny problemu æ ç è é!ç#ê ë ì ê í(î*ï*ì î!ð ì í-ñzî ò0í-ç#ê ízó ô.é!õ7ö* Aø SkG adowa interfejsu uh ytkownika (do niedawna nawet do 90% naki adów; obecnie realizowana zwykle poprzez GUI) NarzJ dzia typy RAD SkG adowa zarzf dzania danymi (przechowywanie trwai ych danych, SZBD) ù ú í û ü ý* þšÿ l-mnoprqtsu4vrqxw y z {ns }~m0 s o0 ª«±² ³t µ r«t ª5 ¹ º'» ¼ ½¾r ÀÂÁµ ÄÃ5ÅÆ Æ Ç È¾ÉÄÊË̽0¼ ÉÍ ÎÏ2Ð Za pomoc linii komend (w niektórych sytuacjach szybsza od interfejsu graficznego): niedu e systemy lub prototypy programy typowo obliczeniowe dla zaawansowanych u ytkowników Za pomoc plików skryptowych: celem automatyzacji powtarzanych wielokrotnie tych samych dziaƒ a Przez graficzny interfejs okienkowy: wi ksze systemy doceniane zw aszcza przez pocz tkuj -cych i ˆ rednio zaawansowanych u ytkowników Typowe sposoby wydawania przez uš ytkownika polece : wpisywanie polece w postaci tekstowej (np. w linii komend) wybór opcji z menu lub przycisku w dialogu korzystanie z ikon w paskach narz dziowych lub ze skrótów (kombinacje klawiszy) nawigacja przy u yciu urz dzenia wskazuj cego np. myszy (kursor, przyciski,...) dotykanie aktywnego ekranu g osem... SpójnoÑ;Ò - wygló d oraz obsô uga interfejsu powinna byò podobna podczas korzystania z róõ nych funkcji; poszczególne programy tworzó ce system powinny mieò zbliõ ony interfejs, podobnie powinna wygló daò praca z rozmaitymi dialogami, podobnie powinny byò interpretowane operacje wykonywane przy pomocy myszy; przykô adowe reguô y: umieszczanie etykiet zawsze nad lub obok pól edycyjnych, umieszczanie przycisków zawsze od doö u lub od prawej, spójne tö umaczenie nazw angielskich, spójne oznaczenia pól... Skróty dla doñ wiadczonych uõ ytkowników - moõ liwoñoò zastó pienia komend dost pnych przez menu przez kombinacj klawiszy Potwierdzenie przyj cia polecenia uõ ytkownika - realizacja niektórych operacji moõ e trwaò stosunkowo dô ugo; w takich sytuacjach, aby uõ ytkownik nie byô zdezorientowany, naleõ y potwierdziò przyj cie polecenie, oraz informowaò o przebiegu operacji (np. jakiñ wskaø nik lub najlepiej czas do zakoù czenia) K L M NOL!P Q R P ST;U;R TOV R SXW4T YZSXL!P S4[ \4N;]!^X_a` b c S d e f g hikj Œ Ž O! ; ; O X - Z X! - š4 O aœ; kž Ÿ ; 5 ö ʾ xøí ÅùÍúÈ ûtàµê Ãr té¾5êëí½0¼ Í ¼ ½¾r ÀÂÁµ ÄÃÅÆ Æ Ç È¾ÉÊ Ë~½'¼ ÉÄÍ Îaü#Ð ö ʾ ø ÍÅÍúÈ ûtàµê Ãr té¾5ê Ëͽ'¼ Í ¼ ½¾r ÀÂÁµ ÄÃ5ÅÆ Æ Ç È¾ÉÄÊË̽0¼ ÉÍ ÿ ZrozumiaÔ a terminologia komunikacji - nawet (zwô aszcza) w sytuacjach krytycznych oprogramowanie powinno posô ugiwaò si terminologió zrozumiaô Ó dla uõ ytkownika Eliminacja prostych bô dów edycji - oprogramowanie nie powinno dopuszczaò do wprowadzenia niepoprawnych danych; jeõ eli uõ ytkownik wprowadzi dane, które dopiero po zweryfikowaniu moõ na zakwalifikowaò jako bô dne, wówczas naleõ y zasygnalizowaò rodzaj bô du oraz umoõ liwiò poprawienie wprowadzonych wartoñ ci lub umoõ liwiò powrót do wartoñ ci startowych (poprzednich) OdwoÔ ywanie poprzednio wykonanych operacji - moõ liwoñ;ò cofni cia ostatnio wykonanej operacji lub cofni cie si dowolnie daleko (w granicach rozsó dku) WraÕ enie kontroli nad systemem - nikt nie lubi, kiedy system sam zaczyna robiò coñ, czego uõ ytkownik nie zainicjowaô, lub kiedy akcja systemu nie daje si przerwaò ; system nie powinien inicjowaò dô ugich akcji (np. skô adowania) nie informujó c uõ ytkownika co w tej chwili robi oraz powinien moõ liwie szybko reagowaò na sygnaô y przerwania akcji (Esc, Ctrl+C, Break,...) Ú Û Ü ÝOÛ!Þ ß à Þ áâ;ã;à âoä à áxå4â æzáxû!þ á4ç è4ý;é!êxëaì í î á ï ð ñ;ò óôkõ Dost pno powi zanych informacji - w momencie wype niania konkretnej informacji, u ytkownik powinien zawsze mie mo liwo podejrzenia (lub wyboru z listy) Nieobci anie pami ci krótkotrwa ej u ytkownika - u ytkownik mo e zapomnie o tym po co i z jakimi danymi uruchomi dialog; system powinien w miar mo liwo ci wy wietla stale te informacje, które s niezb dne do tego, aby u ytkownik wiedzia, co aktualnie si dzieje i w którym miejscu interfejsu si znajduje Grupowanie powi zanych operacji -je eli zadanie nie da si zamkn w prostym dialogu lub oknie, wówczas trzeba je rozbi na szereg powi zanych dialogów; u ytkownik powinien by prowadzony przez ten szereg, z mo liwo ci atwego powrotu do wcze nie wprowadzanych informacji Regu a Millera 7(±2) - regu a psychologiczna okre laj ca liczba obiektów nad którymi cz owiek mo e jednocze nie pracowa w sposób efektywny Ograniczenie powy sze mo na prze amywa poprzez grupowanie powi zanych ze sob elementów w wyra nie wydzielone zespo y Ú Û Ü ÝOÛ!Þ ß à Þ áâ;ã;à âoä à áxå-â æzáxû!þ á-ç è4ýoéaê;ëkì í î á ï ð ýkþ ó5ô õ 3
<>=@?BADCFEDG H IJELKNM9EO=QPSRTMSUDVW?!X Optymalizacja (rozumiana jako poprawa efektywnoy ci) moz e by[ dokonana na poziomie: projektu implementacji Kluczowe zagadnienia na etapie projekowania: Zmiana algorytmu przetwarzania - np. zmiana algorytmu sortuj\ cego poprzez wprowadzenie po] redniego pliku zawieraj\ cego tylko klucze i wska^ niki do sortowanych obiektów mo_ e przynie`a nawet 100-krotny zysk. Wykrycie potencjalnych wb skich gardec w przetwarzaniu i staranne ich zaprojektowanie; stosuje sid tutaj twierdzenie, e e 20% kodu jest wykonywane przez 80% czasu; moe liwe jest równiee rozwif zanie polegajf ce na zleceniu implementacji kluczowego przetwarzania na nie szym poziomie g wiadoma denormalizacja relacyjnej bazy danych - wprowadzenie nadmiarowoh ci danych w celu zwii kszenia efektywnoh ci (np. j k czenie dwóch lub wii cej tablic w jednk ) Stosowanie struktur pomocniczych - indeksów, tablic wskal ników,... Analiza mechanizmów buforowania danych w pamii ci operacyjnej i ewentualna zmiana tego mechanizmu (np. zmniejszenie liczby poziomów)! " # %$& '(% &) *& +,%-. / 0 1 2 3 465 798;:,PSOHPHQWDFMD m n o pnq r s q t!u v s uw s t%xnu y(t%nq tnz {&p } ~; t ƒ ; ˆ @ S ª ««O ± ² «³«@ µ & ( ÝßÞ àláãâµäæåqç èlå é ê ëdì íbëqî ísïdðfëlñæï ò ó ï Implementacja ulega znacznej automatyzacji wynikaj cej ze stosowania: Znaczenie niezawodnoô ci: J zyków wysokiego poziomu Rosnõ ce oczekiwania klientów wynikajõ ce m.in. z coraz wiö kszej powszechno ci Gotowych elementów wykorzystania oprogramowania oraz z wysokiej niezawodno ci sprzö tu; w kwestiach niezawodno ci oprogramowanie znacznie ustö puje sprzö towi (byø moù e wynika to z Narz dzi szybkiego wytwarzania aplikacji - RAD (ang. Rapid Application mniejszej powtarzalno ci oraz duù ej zú où ono ci oprogramowania) Development) Potencjalnie duù e koszty bú ö dnych wykonaû (wysokie straty finansowe wynikajü ce z Generatorów kodu - s¹ to najczºb» ciej sk¼ adowe narz½ dzi CASE, które na bý þ dnego dziaý ania funkcji oprogramowania, nawet zagroÿ enie dla ÿ ycia) podstawie opisu projektu automatycznie tworz¾ kod programu; zwykle Nieprzewidywalno efektów oraz trudno usuniþ cia bý þ dów w oprogramowaniu jest to szkielet programu, który nast½ pnie jest uzupe¼ niany przez Czþ sto pojawia siþ konieczno znalezienia kompromisu pomiþ dzy efektywno ciü i niezawodno programistów; typowe elementy kodu: ciü ; teoretycznie ý atwiej jest jednak pokona problemy zbyt maý ej efektywno ci niÿ zbyt maý ej niezawodno ci. skrypty tworz ce relacje w bazie danych Zwiþ kszanie niezawodno ci definicje struktur danych nagà ówki procedur i funkcji Unikanie Wykrywanie i usuwanie Tolerowanie definicje klas bý þ dów bý þ dów bý þ dów nagà ówki metod Š ŒŠ Ž! % & ( %Š & &Œ %š œ ž Ÿ ; 9 ; Á  à ÄÂÅ Æ Ç Å È!É Ê Ç ÉË Ç È%ÌNÉ Í(È%ÂÅ ÈNÎ Ï&ÄÐ Ñ Ò;Ó Ô Õ È Ö Ø;Ù Ú ÛÜ )+*-,.0/1*2,354 6 7 8:9<; k l m n oqprtsvuxwys-z<{1 ~}< y - ƒ} r : 2p ˆ~ Š Œ Ž Mo= na przyj>?,@ e stworzenie bardziej za o@ onego systemu, który nie zawiera bab dów, jest praktycznie niemo@ liwe; trzeba natomiast stara? U ywaj znacz cych oraz unikaj podobnych nazw zmiennych Nie sib zmniejsza? prawdopodobiec stwo wystd pienia bef du dzif u ywaj tych samych zmiennych do ró nych celów ki: Dla unikaniu niebezpiecznych technik (np. programowanie oparte na wskag jednoznaczno ci u ywaj nawiasów nikach) Pisz tylko stosowaniu zasady ograniczonego dosth pu (regui jedn instrukcjš kodu w wierszu i u ywaj wciš$ y zakresu, hermetyzacja,...) Ucz jh zykom z mocnj kontrolj typów i kompilatorom sprawdzajj cych zgodnok L siš i u ywaj prostych cech jš zyka typów Ucz wykorzystaniu jh zyków o wym siš i wykorzystuj dostš pne funkcje biblioteczne i standardowe szym poziomie abstrakcji Dopóki program nie jest poprawny nie doki adnemu i konsekwentnemu specyfikowaniu interfejsów pomih dzy modui my l o jego efektywno ci ami Nie po wiš caj czytelno ci kodu dla (czš sto pozornych) zysków w efektywno ci oprogramowania Unikaj trików zwróceniu szczególnej uwagi na sytuacje skrajne (puste zbiory, ph tle z ilok cij granicznj jš zykowych Nigdy nie ulepszaj programu obiegów, wartok je li nie musisz ci zerowe, niezainicjowane zmienne,...) to co istotne, ale unikaj zbš dnych komentarzy wykorzystaniu gotowych komponentów (np. gotowych bibliotek procedur lub klas) z zastosowaniem zasady ograniczonego zaufania Komentuj c odpowiadaj na pytania czytelnika minimalizowaniu róm nic pomih dzy modelem pojh ciowym i modelem Komentuj wszystkie niebanalne zmienne (pola) implementacyjnym...! "$# %'&$( NO P Q O RS T RUVWT V X T UYZV [UO RUZ\]Q ^_`$a b cude f$` gih j... 4
º¹¼»¾½: -À Á¼ÀÃÂÄ ÅqÆÇ:È ÉÊ -À ¹2˼¹ Â0Ì-À ¹<»0Â0 <¹ ÍÎ$Ï! "$# " %$" & ')( Instrukcje typu goto (skocz do) oraz wykorzystanie etykiet prowadzð zwykle do programów, których dziañ anie jest trudne do zrozumienia i przeò ledzenia Stosowanie liczb ze zmiennym przecinkiem, których dokñ adnoò$ó jest ograniczona i moô e byó przyczynð nieoczekiwanych bñõ dów, najczõ stsze böõ dy pojawiaj siõ podczas porównaø WskaÙ niki i arytmetyka wskaù ników: dajú moû liwoü Ý dowolnej penetracji caþ ej pamiß ci operacyjnej i w przypadku popeþ nienia bþß du prowadziý mogú do zupeþ nie nieoczekiwanych (losowych) zachowaà, które ciß Û ko jest Rekurencja - mo* e prowadzi+ do krytycznego zap, tlenia albo przepe- nienia stosu wywo- a. ; utrudnia / ledzenie programu, Procedury i funkcje, które realizuj0 wyra1 nie odmienne zadania w zale* no/ ci od parametrów lub stanu zewn, trznych zmiennych, Dynamiczna alokacja pami, ci - stosowana bez zapewnienia mechanizmu zwalniana pami, ciu ju* niewykorzystywanej, Zmienne globalne, Niewyspecyfikowane, nieoczekiwane efekty uboczne funkcji i procedur, Przeci0 * anie operatorów - problemy z kolejno/ ci0 wywo- a. operatorów diagnozowaý Obliczenia równolegþ e: mogú prowadziý do zþ oû onych zaleû noü ci czasowych i tzw. pogoni (wynik zaleû y od tego, który z procesów szybciej dojdzie do 235476849!:<;>=?A@B4B9"C D EGF)HBIKJMLONBIKJ>P<Q RSH<TVU7W7UMFGU7I J7XBS!U7P<Q UY[Z \ ]G^ pewnego punktu w obliczeniach); z uwagi m.in. na niedeterminizm zachowania _7`ba cd_ e fb_ g hji k%l<m nmoqp<i n<rbs5t>u v7hkẅ xbvkszyblbh {Ol7h w} V~ jƒ bardzo trudne do testowania; np. wá tki sâ okreã lane jako zatrute jabä ko < bˆb <ŠK zœb Ž < M b < K š> B Przerwania i wyjå tki - wprowadzajå równieæ pewien rodzaj równolegç oè ci; dodatkowo, ryzyko przerwania operacji krytycznych czasowo œ ž Ÿ ªŸ«±² ³ µ' $ éê ë ì ê íî ï íðñòï ñ ó ï ðôzñ õðê íðzö ì øùú$û ü ýðþÿ Ó Ô!ÕÖ ØÙÚ8ÛÜÝ Û Producenta (opisuje szczegóâ owo proces wytwórczy i rozwiþ zania wykorzystane do stworzenia systemu) Uä ytkowa (opisuje system jako produkt, ukierunkowana na uå atwienie korzystania z oprogramowania) 'RNXPHQWRZDQLH Kierownictwo Zespóå projektowy (projektanci, programiæ ci) Uç ytkownicy systemu Administratorzy Dokumentacja jest integralnþ czß à ciþ systemu i powinna powstawaá równolegle z procesem wytwórczym oprogramowania Czß sto jakoàdá dokumentacji jest dobrym miernikiem stopnia dojrzaâ oà ci procesu tworzenia oprogramowania w organizacji Opracowanie dobrej dokumentacji pozwala uniknþ5á wielu problemów na etapie wdroã enia i nastß pnie rzeczywistego wykorzystania systemu œ žoœÿ Ÿ j d d O 7 œÿ 7 ª7žd«z ± ² ³ µ8 ¹ º»O¹¼ ½ ¾ ¼ jàdád¾ ÀO ¾ ÃBÀ Ä ¹¼ BÅ Æ7»OÇzÈdÉ Ê Ë Ì Í Î Ï Ð Ñ Ï5Ò! *+, -. W trakcie trwania przedsi" wzi" cia powstaj# nast" puj# ce dokumenty: dokumentacja procesu produkcji oprogramowania dokumentacja techniczna opisuj$ ca wytworzony produkt Dokumentacja procesu obejmuje: Plany, szacunki, harmonogramy - dokumenty tworzone przez kierownictwo przedsi% wzi% cia jako propozycje; odbiorcami ich s$ przeå oç eni wyç szego szczebla; po zaakceptowaniu dokumenty tego typu peå nia rol% polece& dla wykonawców Raporty - dokumenty (przygotowywane przez kierowników dla przeå oç onych) opisuj$ ce przebieg i rezultaty prac Standardy - dokumenty opisuj$ ce poç $ dany sposób realizacji Dokumenty robocze - rozmaite dokumenty zawieraj$ ce propozycje rozwi$ za& tworzone przez czå onków zespoå u; zaakceptowane mog$ sta' si% standardami, raportami, planami,... Komunikaty - rozmaite, z reguå y krótkie dokumenty så uç $ ce do wymiany informacji pomi% dzy czå onkami zespoå u è é ê ëoéì í î ì ïjðdñdî ðoò î ï ó7ð ôï éì ï7õ ö7ëd ø ùzú û ü ï ý þ ÿ 8ÿ Zawiera dokå adny opis systemu (projekt + kod + testy + oszacowanie niezawodnoæ ci...); przeznaczona jest zwykle wyå $ cznie dla producenta Dokumentacja techniczna przed oddaniem oprogramowania do eksploatacji powinna by' poddana weryfikacji celem wyeliminowania bå % dów i nieæ ciså oæ ci Istotne jest wypracowanie w firmie standardów dokumentacji technicznej: procesów wytwarzania dokumentacji: tworzenia wst% pnej wersji dokumentów, wygå adzania, drukowania, powielania, oprawiania, wprowadzania zmian w istniej$ cych dokumentach, zatwierdzania; konieczne jest æ ciså e okreæ lenie odpowiedzialnych za to osób treæ ci i formy dokumentów: strona tytuå owa, spis treæ ci, budowa rozdziaå ów, podrozdziaå ów i sekcji, indeks, så ownik sposobu dost% pu do dokumentacji: niezb% dne jest stworzenie rodzaju biblioteki dokumentów technicznych, z zapewnieniem sprawnego dost% pu do dowolnego dokumentu è é ê ëoéì í î ì ïjðdñdî ðoò î ï óbð ôï éì ïbõ ö7ëo zødù ú û ü ï ý þ ÿ ( ÿ) 5
RTSUWVXZY[\]^B_]`V a bc:d egfh i d j. šœ žÿz! Opis funkcjonalny - wstk pna czk l3m dokumentacji opisujn ca w sposób zwarty Czynniki wp ywaj ce na postrzeganie i jasno«< wypowiedzi, eliminacja przeznaczenie i go ówne mop liwol ci systemu; mop e bym wykorzystywany do akceptacj dokumentacji przez dwuznaczno«ci (w tekstach pierwszego zapoznania sik z oprogramowaniem u ytkowników: technicznych mo na mniej rygorystycznie przestrzega np. Podrq cznik ur ytkownika - przeznaczony gs ównie dla poczt tkujt cych czytelna struktura dokumentu unikania powtórze ) uu ytkowników; powinien zawierav podstawowe informacje niezbw dne do korzystania z systemu (najlepiej na podstwie przyks adów) oraz odnox niki do bardziej szczegós zachowywanie standardów precyzyjne definicje u ywanych owych terminów (najlepiej zebrane informacji sposób przekazu informacji: dodatkowo w s owniczku) Kompletny opis systemu - przeznaczony gs ównie dla dox wiadczonych stosowanie formy aktywnej i zwracanie powtarzanie trudnych opisów (w uu ytkowników; opisujt cy cas t funkcjonalnox v oraz ograniczenia systemu, zawierajt cy siª bezpo«rednio do u ytkownika przypadku kluczowych kwestii opisy formatów danych, mou liwych bs w dów,... (dyskusyjne w odniesieniu do dopuszczalne jest powtórzenie opisu dokumentacji w j. polskim) Instrukcja instalacji - przeznaczona gs ównie dla administratora, zawiera w kilku miejscach) procedurw instalacyjnt bezwzglª dna poprawno«< gramatyczna i stosowanie tytu ów (podtytu ów) ortograficzna Podrq cznik administratora - opisuje mou liwox ci zmian konfiguracji dostw pne sekcji, wylicze i wyró nie zwiª z a forma (krótkie zdania bez ingerencji twórców systemu oraz sposoby udostw pniania systemu uu ytkownikom zawieraj ce pojedyncze fakty; rozs zrozumia e odwo ania do innych dnej koy cowym; tworzenie kopii zapasowych,... d ugo«ci akapity) z { }3{5~ ~ : <ƒ< 3? B?{5~ czªi«ci ˆ@}3 IŠ< Œ dokumentacji Ž ) / 0 1 23054 6 7 4 8:9<;<7 93= 7 8?>@9 AB8?054 8@C D@2<E5F?GIH J K 8 L M N N OPN Q æ@çgèêéë ì ëwí@îpëïèêðgèêéñ òôó,qvwdodfmdlzgur *HQLD ± ² ³ 3²5µ µ :¹<º< ¹3»?¼@¹ ½B?²5µ @¾ @ <À5Á?ÂIÃ Ä Å Æ Ç È É ÊPÈ Ë Szczególnie istotna w przypadku oprogramowania wykonywaniego na konkretne zamówienie; w jej trakcie nastõ puje przekazanie systemu klientowi, który w momencie zakoö czenia instalacji staje siõ w aø cicielem systemu Podstawowe czynnoø ci podczas instalacji systemu: przygotowanie ù rodowiska pracy: dostarczenie nowego lub wykorzystanie istniejú cego sprzû tu (serwery, stacje, sieü, drukarki,...); odpowiednie skonfigurowanie systemów operacyjnych; instalacja i/lub dostrojenie systemów bazodanowych przeniesienie stworzonych aplikacji (instalacje na serwerach i stacjach) dostosowanie oprogramowania do wymogów konkretnego stanowiska inicjalizacja baz danych (zdefiniowanie reguý postû powania, wypeý nianie sý owników i kartotek, przeniesienie - import danych z funkcjonujú cych systemów,...) zdefiniowanie uþ ytkowników (ew. grup lub ról), przydzielenie im uprawnieÿ i weryfikacja dostû pu do odpowiednich czû ù ci systemu sprawdzenie moþ liwoù ci wykorzystania przynajmniej podstawowej funkcjonalnoù ci systemu Ì Í Î Ï3Í5Ð Ñ Ò Ð Ó:Ô<Õ<Ò Ô3Ö Ò Ó? Ô ØBÓ?Í5Ð ÓÙ Ú@Ï3ÛIÜ<Ý Þ ß à Ó á â ã Ý äã)å %'&)(+*-,.0/2143'(656798;:=<?> @=<BA":C, :'7EDE> o=prq9sut v6w0x yzx {~}0)s v+w0x v WypeF nienie startowe bazy danych jest czg sto bardzo H mudnym procesem, wymagaji cym wprowadzenia danych z róh nych noj ników oraz uzgodnienia ich poprawnoj ci i spójnoj ci. Niekiedy czg JK danych moh e byk dostg pna w formie elektronicznej (np. w postaci zapisów poprzedniego systemu), ale wymaga to przygotowania specjalnych programów konwersji (moh liwe to jest w zasadzie tylko pod warunkiem znajomoj ci struktury bazy) WaH ne jest planowanie i harmonogramowanie prac - pojawia sig szereg problemów, np. koniecznojlk usunig cia bm G dów i wprowadzenia modyfikacji; naleh y doh yk do zarezerwowania odpowiedniego czasu na prace zwii zane z instalacji pamig taji c przy tym, H e uh ytkownicy nie mogi zaniechak wykonywania przez nich bieh I cych prac Opór un ytkowników przed zmiano sposobu pracy - czp sto uq ytkownicy kor cowi systemu ss to osoby mniej zaawansowane i na starcie nieufne do nowego systemu; zwykle nie uczesniczyli bowiem w poprzednich pracach prowadzs cych do powstania systemu; bardzo waq ne jest uzyskanie ich akceptacji Cz $ ƒ wst pna szkole (najcz L ciej w postaci seminarium, bez bezpo redniej pracy u ytkowników z systemem) mo e byƒ przeprowadzona jeszcze przed uko czeniem systemu Szkolenia musz byƒ dostosowane do poziomu u ytkowników (np. odzielnie dla u ytkowników ko cowych i administratorów systemu) i powinny byƒ organizowane w taki sposób, aby osoby uczestnicz ce by y zainteresowane ca o ci zagadnienia Zaleca si, aby szkolenia przeprowadza y (lub przynajmniej je rozpoczyna y) osoby, które by y zaanga owane w prowadzenie przedsi wzi cia; jest im atwiej nawi zaƒ kontakt z przysz ymi u ytkownikami Zwykle stosowane jest tzw. nadzorowane korzystanie z systemu (u ytkownicy pracuj w nowym systemie pod kontrol wdro eniowca), cz sto równoleg e z tradycyjnym sposobem pracy, po którym nast puje weryfikacja rezultatów Usuwanie b dów w oprogramowaniu i dokumentacji u ytkowej!"$# T U V W U X Y Z X [\]Z \ ^ Z [_E\ `[U X [Ea bw cde$f g h [ i j k$l mnkll 6