@PSI W10a Proces strukturalnego tworzenia oprogramowania
Metody strukturalne Opr. na podstawie : Krzysztof Sacha Inżynieria oprogramowania PWN 2010 PodstawÄ… procesu wytwórczego, wyksztaÅ‚conego przez metodykÄ™ strukturalnÄ…, jest dostrzeżenie i uznanie potrzeby zbudowania przed implementacjÄ… dwóch różnych modeli oprogramowania: ·ð abstrakcyjnego modelu analitycznego (essential model), opisujÄ…cego przebieg przetwarzania danych w sposób niezależny od technologii realizacyjnej, ·ð oraz konkretnego modelu projektowego (implementation model), pokazujÄ…cego sposób wykonania tego przetwarzania w wybranej technologii realizacyjnej. Dopiero nastÄ™pnym krokiem procesu wytwórczego jest implementacja programów oraz integracja caÅ‚oÅ›ci oprogramowania, dokonywana w sposób opisany w modelu projektowym. Takie wieloetapowe podejÅ›cie uÅ‚atwia zapanowanie nad zÅ‚ożonoÅ›ciÄ… problemu dziÄ™ki rozdzieleniu zagadnieÅ„ rozważanych na różnych etapach przedsiÄ™wziÄ™cia. Opracowanie kolejnych modeli, opisujÄ…cych budowane programy z coraz wiÄ™kszÄ… dokÅ‚adnoÅ›ciÄ…, wyznacza podziaÅ‚ caÅ‚oÅ›ci prac na sekwencyjne, kolejno wykonywane fazy, wpisujÄ…ce siÄ™ w kaskadowy model wytwarzania oprogramowania !!!! Najważniejsze elementy metodyki strukturalnej okreÅ›lajÄ… zestaw modeli przedstawiajÄ…cych istotne cechy oprogramowania na różnych poziomach szczegółowoÅ›ci, techniki modelowania wskazujÄ…ce sposób i kolejność budowania modeli oraz metody weryfikacji poprawnoÅ›ci i spójnoÅ›ci kolejno powstajÄ…cych modeli. WspólnÄ… cechÄ… modeli strukturalnych jest sposób opisywania przetwarzania, wyraznie rozróżniajÄ…cy pasywne dane i aktywne dziaÅ‚ania, opisywane zgodnie z zasadÄ… dekompozycji funkcjonalnej. Tak zorganizowany model dobrze odpowiada naturze strukturalnych jÄ™zyków programowania (C, Fortran, Cobol itp), w których podstawowymi jednostkami syntaktycznymi sÄ… definicje danych (zmiennych) i dziaÅ‚ajÄ…ce na tych danych podprogramy. 1 1. NarzÄ™dzia modelowania Koncepcyjne narzÄ™dzia modelowania strukturalnego obejmujÄ… szereg diagramów odwzorowujÄ…cych strukturÄ™ i relacje zachodzÄ…ce miÄ™dzy jednostkami danych oraz zależnoÅ›ci zachodzÄ…ce miÄ™dzy procesami realizujÄ…cymi wymagane przez użytkownika przetwarzanie. Podstawowymi rodzajami modeli, budowanymi w kolejnych krokach procesu wytwarzania oprogramowania, sÄ…: ·ð hierarchia funkcji, przedstawiajÄ…ca wymagania użytkownika zapisane w postaci listy funkcji do wykonania; ·ð diagram przepÅ‚ywu danych, pokazujÄ…cy funkcje oprogramowania oraz dane przepÅ‚ywajÄ…ce miÄ™dzy tymi funkcjami w czasie realizacji przetwarzania; ·ð diagram encji, obrazujÄ…cy najważniejsze struktury danych podlegajÄ…ce przetwarzaniu oraz relacje istniejÄ…ce miÄ™dzy tymi strukturami; ·ð schemat struktury programu, pokazujÄ…cy podprogramy realizujÄ…ce funkcje oraz definiujÄ…cy sposób wywoÅ‚ywania i przekazywania danych miÄ™dzy podprogramami. Wszystkie budowane modele majÄ… czytelnÄ… postać graficznÄ… i dobrze okreÅ›lone znaczenie odwoÅ‚ujÄ…ce siÄ™ do formalnych koncepcji matematycznych. 1.1. Hierarchia funkcji Każdy, nawet bardzo zÅ‚ożony, proces przetwarzania danych można przedstawić w postaci zestawu funkcji, wykonywanych na opisujÄ…cych ten proces danych. Jeżeli funkcje wchodzÄ…ce w skÅ‚ad tego zestawu sÄ… nadal zÅ‚ożone, to można je dalej rozbić na kolejny zbiór funkcji prostszych. Na przykÅ‚ad, dziaÅ‚anie dużej firmy ubezpieczeniowej można opisać jako zÅ‚ożenie funkcji wykonywanych przez poszczególne jej dziaÅ‚y: 1. Prowadzenie dziaÅ‚alnoÅ›ci ubezpieczeniowej 2. Prowadzenie dziaÅ‚alnoÅ›ci ekonomicznej 3. ZarzÄ…dzanie 4. ... 2 KażdÄ… z tych funkcji można opisać dokÅ‚adniej w postaci zÅ‚ożenia prostszych funkcji wykonywanych przez różne komórki dziaÅ‚u. Na przykÅ‚ad, prowadzenie dziaÅ‚alnoÅ›ci ekonomicznej zawiera w sobie kilka rodzajów dziaÅ‚aÅ„: 1. ObsÅ‚uga inwestycji 2. ObsÅ‚uga inwestycji kapitaÅ‚owych 3. ObsÅ‚uga finansowo-ksiÄ™gowa DekompozycjÄ™ funkcji można kontynuować dowolnie dÅ‚ugo, opisujÄ…c dziaÅ‚anie przedsiÄ™biorstwa w coraz drobniejszych szczegółach. Na przykÅ‚ad, obsÅ‚uga inwestycji kapitaÅ‚owych może siÄ™ skÅ‚adać z nastÄ™pujÄ…cych elementów: 1. PrzeglÄ…d możliwoÅ›ci inwestowania 2. Przygotowanie zleceÅ„ inwestycyjnych 3. Okresowa ocena wyników inwestowania 4. ... Kresem dekompozycji staje siÄ™ osiÄ…gniÄ™cie poziomu funkcji elementarnych, tzn. takich, których wykonanie jest czynnoÅ›ciÄ… niepodzielnÄ…. Inaczej mówiÄ…c, funkcja elementarna może być wykonana lub nie, ale nie może być wykonana częściowo. Na przykÅ‚ad, zlecenie inwestycyjne może być prawie przygotowane - przygotowanie zleceÅ„ nie jest wiÄ™c funkcjÄ… elementarnÄ…. Ale gotowe zlecenie zakupu akcji może być albo zÅ‚ożone na gieÅ‚dzie, albo nie. Nie można go zÅ‚ożyć częściowo. ZÅ‚ożenie zlecenia na gieÅ‚dzie jest wiÄ™c funkcjÄ… elementarnÄ…. Wynikiem takiej systematycznej, zstÄ™pujÄ…cej coraz niżej, dekompozycji dziaÅ‚aÅ„ jest hierarchia funkcji (hierarchy of functions), przedstawiajÄ…ca rozważany proces przetwarzania danych na wybranym poziomie szczegółowoÅ›ci. HierarchiÄ™ funkcji można zapisać w sposób tekstowy, w formie przypominajÄ…cej spis treÅ›ci książki, albo graficznie, w postaci schematycznego rysunku (rys. 1). ZaletÄ… opisu tekstowego jest brak ograniczeÅ„ na rozmiar modelu oraz możliwość uzupeÅ‚nienia nazw funkcji krótkimi, jednozdaniowymi komentarzami wyjaÅ›niajÄ…cymi ich zakres i przeznaczenie. ZaletÄ… modelu graficznego jest możliwość zwartego przedstawienia caÅ‚oÅ›ci przetwarzania na jednej kartce, możliwej do ogarniÄ™cia jednym spojrzeniem. Na ogół wygodnie jest przygotować obydwie formy modelu. 3 Rysunek 1. Hierarchia funkcji firmy ubezpieczeniowej Warto podkreÅ›lić, że hierarchia funkcji jest modelem przedsiÄ™biorstwa, a nie menu systemu informatycznego. Model powstaje w fazie strategicznej, gdy nie jest jeszcze przesÄ…dzone, które funkcje bÄ™dÄ… w przyszÅ‚oÅ›ci wykonywane automatycznie, a które pozostanÄ… przy realizacji rÄ™cznej. Kluczowe decyzje dotyczÄ…ce zakresu funkcjonalnoÅ›ci budowanego oprogramowania wyraża siÄ™ w tym modelu przez dodanie lub usuniÄ™cie wybranych funkcji. Podstawowe dane, na których majÄ… dziaÅ‚ać funkcje, można opisać osobno, w formie tekstowej lub w postaci diagramu encji. Po podjÄ™ciu decyzji o realizacji systemu i jego zakresie hierarchia funkcji staje siÄ™ naturalnÄ… częściÄ… umowy realizacyjnej, opisujÄ…cÄ… wymagania funkcjonalne. Zaletami hierarchii funkcji sÄ… prostota, czytelność i przydatność podczas formuÅ‚owania zapisów umowy. Ze wzglÄ™du na swÄ… prostotÄ™ model ma też ograniczenia, którymi sÄ…: brak pokazania zależnoÅ›ci miÄ™dzy funkcjami oraz brak pokazania danych, na których dziaÅ‚ajÄ… funkcje. 1.2. Diagram przepÅ‚ywu danych Diagram przepÅ‚ywu danych (data flow diagram) jest znacznie dokÅ‚adniejszym modelem przetwarzania, pokazujÄ…cym nie tylko funkcje, ale także dane, które muszÄ… przepÅ‚ywać w okreÅ›lonym porzÄ…dku miÄ™dzy funkcjami w celu wytworzenia pożądanych wyników. Model ma postać grafu (rys. 2), którego wÄ™zÅ‚y reprezentujÄ… procesy przetwarzajÄ…ce (funkcje) oraz magazyny danych (zbiory), a Å‚uki skierowane 4 pokazujÄ… przepÅ‚ywy danych miÄ™dzy procesami i magazynami danych. Procesy, rysowane na diagramie w postaci okrÄ™gów, sÄ… elementami aktywnymi, które mogÄ… pobierać dane z magazynów lub odbierać je od innych procesów, przetwarzać i przekazywać wyniki do magazynów lub do innych procesów. Magazyny, rysowane jako niedomkniÄ™te prostokÄ…ty, sÄ… elementami pasywnymi, które mogÄ… tylko przechowywać dane. Rys 2. Diagram przepÅ‚ywu danych Przetwarzanie obrazowane przez diagram zaczyna siÄ™ w chwili pojawienia siÄ™ danych przenoszonych przez przepÅ‚ywy wejÅ›ciowe. DostÄ™pność danych wejÅ›ciowych umożliwia wykonanie procesu, który realizuje przypisanÄ… do niego funkcjÄ™ i wytwarza wyniki przenoszone przez przepÅ‚ywy wyjÅ›ciowe do magazynów lub do kolejnych procesów. W ten sposób kolejne porcje danych przepÅ‚ywajÄ… przez diagram aż do momentu, w którym opuszczÄ… system w postaci finalnych wyników przetwarzania. Semantyka diagramu nie okreÅ›la kolejnoÅ›ci wykonania procesów, które mogÄ… wykonać siÄ™ natychmiast, gdy tylko otrzymajÄ… wszystkie niezbÄ™dne do ich wykonania dane wejÅ›ciowe. Na przykÅ‚ad, proces Rejestracja zamówienia na rys. 2 wykonuje siÄ™ w chwili pojawienia siÄ™ przepÅ‚ywu wejÅ›ciowego Zamówienie. Wynikiem wykonania procesu jest zapisanie zarejestrowanego zamówienia w magazynie Zamówienia do realizacji. Ponieważ dane znajdujÄ…ce siÄ™ w magazynach sÄ… zawsze dostÄ™pne dla siÄ™gajÄ…cych po nie procesów, wiÄ™c proces Planowanie wykonania może wykonać siÄ™ w dowolnej chwili, niezwiÄ…zanej z tempem zapeÅ‚niania magazynu. Procesy Wykonanie produktu i Wystawienie faktury mogÄ… wykonać siÄ™ dopiero po pojawieniu siÄ™ wyników procesu Planowanie wykonania, ale porzÄ…dek ich wykonania - 5 równolegle lub jeden po drugim w dowolnej kolejnoÅ›ci - pozostaje nieokreÅ›lony. NieokreÅ›lony jest także mechanizm realizacji przepÅ‚ywów danych. Procesy wystÄ™pujÄ…ce na diagramie przepÅ‚ywu danych mogÄ… realizować funkcje proste lub zÅ‚ożone, podobnie jak funkcje wystÄ™pujÄ…ce w hierarchii funkcji. Istotnym elementem opisu, którego diagram nie zawiera, jest specyfikacja przetwarzania procesu, czyli okreÅ›lenie sposobu przeksztaÅ‚cania danych wejÅ›ciowych w dane wyjÅ›ciowe. Koniecznego uzupeÅ‚nienia tego braku można dokonać na dwa sposoby: przez dekompozycjÄ™ zÅ‚ożonego procesu i pokazanie jego wewnÄ™trznej struktury na bardziej szczegółowym diagramie przepÅ‚ywu danych, przez opisanie dziaÅ‚ania prostego procesu w jÄ™zyku naturalnym (np. polskim), w postaci graficznej (np. sieci dziaÅ‚aÅ„), w pseudokodzie lub w notacji matematycznej. elementów czynnoÅ›ci Rysunek 3. Diagram 2: Planowanie wykonania PrzykÅ‚adem dekompozycji może być rozbicie procesu Planowanie wykonania z rys. 2 na bardziej szczegółowe czynnoÅ›ci opisane za pomocÄ… diagramu pokazanego na rys. 3. Warto zauważyć, że na diagramie obrazujÄ…cym strukturÄ™ procesu mogÄ… pojawić siÄ™ nie tylko procesy skÅ‚adowe, ale także wewnÄ™trzne magazyny danych. Elementarnym warunkiem poprawnoÅ›ci takiej dekompozycji jest zgodność przepÅ‚ywów wejÅ›ciowych i wyjÅ›ciowych dekomponowanego procesu z przepÅ‚ywami wejÅ›ciowymi i wyjÅ›ciowymi opisujÄ…cego ten proces diagramu. DekompozycjÄ™ procesów można powtórzyć wielokrotnie, budujÄ…c wielopoziomowÄ… hierarchiÄ™ diagramów, w której na najwyższym poziomie znajduje siÄ™ diagram numer 0, przedstawiajÄ…cy caÅ‚ość przetwarzania (w naszym przykÅ‚adzie jest to rys. 2), a na niższych poziomach wystÄ™pujÄ… diagramy modelujÄ…ce poszczególne procesy z rysunku wyższego poziomu (rys. 4). Numer diagramu niższego poziomu odpowiada 6 zawsze numerowi procesu na diagramie wyższego poziomu. RozwijajÄ…c hierarchiÄ™ diagramów, należy dbać o spójność tego rozwiniÄ™cia - wszystkie przepÅ‚ywy Å‚Ä…czÄ…ce siÄ™ z procesem na diagramie wyższego poziomu muszÄ… mieć swoje odpowiedniki w przepÅ‚ywach wchodzÄ…cych lub wychodzÄ…cych z diagramu rozwijajÄ…cego ten proces na niższym poziomie. Proces dekompozycji można kontynuować dowolnie dÅ‚ugo, aż do osiÄ…gniÄ™cia takiego poziomu szczegółowoÅ›ci, na którym bez trudu można opisać dziaÅ‚anie wszystkich procesów skÅ‚adowych. Opisy procesów znajdujÄ…cych siÄ™ na diagramach najniższego poziomu, zwykle zajmujÄ…ce co najwyżej jednÄ… stronÄ™ papieru, nazywa siÄ™ minispecyfikacjami. Rysunek 4. Hierarchiczna organizacja diagramów przepÅ‚ywu danych Diagram przepÅ‚ywu danych jest modelem analitycznym, niezależnym od technologii realizacji przetwarzania. Można go wykorzystać do modelowania zarówno dziaÅ‚aÅ„ przedsiÄ™biorstwa, jak i oprogramowania. ZasadniczÄ… wartoÅ›ciÄ… modelu jest dekompozycja caÅ‚oÅ›ci przetwarzania na dobrze okreÅ›lone jednostki (procesy i magazyny danych) oraz pokazanie wzajemnych powiÄ…zaÅ„ tych jednostek. Model jest intuicyjny i zrozumiaÅ‚y dla czytelnika bez specjalistycznego przygotowania. 1.3. Diagram encji Funkcje realizowane przez oprogramowanie systemu informatycznego dziaÅ‚ajÄ… na danych, które opisujÄ… fragmenty Å›wiata objÄ™te dziaÅ‚aniem systemu. W tym Å›wiecie wystÄ™pujÄ… rozmaite obiekty, np. klienci, towary i zamówienia w przedsiÄ™biorstwie handlowym, które można opisać wedÅ‚ug pewnego schematu. Na przykÅ‚ad, każdy 7 klient przedsiÄ™biorstwa ma nazwÄ™ i adres, każdy towar jest charakteryzowany przez nazwÄ™, nazwÄ™ producenta i cenÄ™, a każde zamówienie ma datÄ™ wystawienia i adres dostawy. Pojedyncze elementy opisu, takie jak nazwa, adres lub cena, sÄ… nazywane atrybutami obiektu. Kategoria obiektów opisywanych za pomocÄ… tego samego zbioru atrybutów jest nazywana encjÄ… (entity). W ten sposób każda encja opisuje pewien rodzaj obiektów, charakteryzowanych w dziedzinie zastosowania przez ustalony zestaw atrybutów. Obiekty różnego rodzaju sÄ… na ogół opisywane przez różne zestawy atrybutów (tzn. tworzÄ… różne encje), natomiast obiekty tego samego rodzaju sÄ… opisywane przez te same atrybuty. Zbiór atrybutów obiektu powinien być tak dobrany, aby różnym obiektom danego rodzaju odpowiadaÅ‚y różne wartoÅ›ci atrybutów - obiekty o tych samych wartoÅ›ciach atrybutów sÄ… niemożliwe do odróżnienia. PrzykÅ‚adowy opis towarów sprzedawanych w sklepie z oponami samochodowymi jest pokazany na rys. 5. Można zauważyć, że wartoÅ›ci atrybutów nie pokrywajÄ… siÄ™ dla żadnych dwóch rodzajów opon. Mimo to żaden atrybut nie identyfikuje jednoznacznie towaru i aby wskazać pożądany typ opony, trzeba podać wartoÅ›ci trzech różnych atrybutów. Nie jest to wygodne w praktyce, dlatego w tabeli opon dodany zostaÅ‚ dodatkowy atrybut - numer katalogowy, który jednoznacznie identyfikuje konkretny typ opony. Atrybut, którego wartość jednoznacznie wskazuje obiekt encji, jest nazywany kluczem. Numer Producent Nazwa Rozmiar Cena 1 Michelin Alpin A3 175/65 R14 315,00 2 Michelin Alpin A3 195/60 R15 416,00 3 Kleber Krisalp Hp 195/65 R15 315,00 4 Pirelli W190 Snowsport 195/60 R15 392,84 5 Uniroyal MS Plus 55 215/65 R15 424,56 Rysunek 5. Lista towarów sklepu i model opisu tych danych w postaci encji Towar Opisanie sposobu dziaÅ‚ania, a pózniej zbudowanie oprogramowania wymaga zdefiniowania nie tylko wszystkich encji i ich atrybutów, lecz także zależnoÅ›ci istniejÄ…cych miÄ™dzy obiektami poszczególnych encji. We wspomnianym wyżej 8 przedsiÄ™biorstwie handlowym zamówienia nie biorÄ… siÄ™ z powietrza, lecz sÄ… skÅ‚adane przez konkretnych klientów. Z kolei celem zÅ‚ożenia zamówienia jest wskazanie pewnych towarów, które dany klient ma zamiar zakupić. MiÄ™dzy klientami, zamówieniami i towarami istniejÄ… wiÄ™c zależnoÅ›ci, które nadajÄ… sens ich istnieniu. Modelem danych obrazujÄ…cym encje i ich powiÄ…zania jest diagram encji (entity- -relationship diagram), zwany też diagramem encja-zwiÄ…zek bÄ…dz diagramem zwiÄ…zków encji, pokazany przykÅ‚adowo na rys. 6. Podstawowymi elementami diagramu sÄ… encje, rysowane w postaci prostokÄ…tów z wpisanÄ… wewnÄ…trz nazwÄ… encji i listÄ… atrybutów, oraz zwiÄ…zki (relacje) wystÄ™pujÄ…ce miÄ™dzy encjami, przedstawiane jako linie Å‚Ä…czÄ…ce encje. Fakt istnienia zwiÄ…zku miÄ™dzy dwoma encjami oznacza, że pewne obiekty jednej encji sÄ… w jakiÅ› sposób powiÄ…zane z pewnymi obiektami drugiej encji. Na przykÅ‚ad, każde zamówienie zostaÅ‚o wystawione przez jakiegoÅ› klienta - tym samym każde konkretne zamówienie (każdy obiekt encji Zamówienie) jest jednoznacznie zwiÄ…zane z konkretnym klientem, który to zamówienie wystawiÅ‚. Podobnie, każde zamówienie jest jednoznacznie zwiÄ…zane z zestawem towarów, których to zamówienie dotyczy. Rysunek 6. Diagram encji przedstawiajÄ…cy zwiÄ…zki Å‚Ä…czÄ…ce różne obiekty w systemie sprzedaży Charakter zwiÄ…zku Å‚Ä…czÄ…cego dwie encje można opisać na diagramie za pomocÄ… nazwy, wyjaÅ›niajÄ…cej rolÄ™ tego zwiÄ…zku w rzeczywistym Å›wiecie. NazwÄ™ umieszcza siÄ™ na ogół w pobliżu encji (blisko koÅ„ca linii) i interpretuje z jej punktu widzenia. Taka konwencja zapisu umożliwia opisywanie zależnoÅ›ci miÄ™dzy danymi w zrozumiaÅ‚ym jÄ™zyku naturalnym, np.: Klient skÅ‚ada Zamówienie, Zamówienie wskazuje Towar, co bardzo uÅ‚atwia analitykom komunikacjÄ™ z użytkownikami i znaczÄ…co podnosi wiarygodność dokonywanej przez nich weryfikacji modelu. Niektóre narzÄ™dzia wspomagajÄ…ce proces opracowania oprogramowania mogÄ… generować opisy w jÄ™zyku naturalnym automatycznie, na podstawie diagramu encji. 9 Inne symbole, jakie mogÄ… wystÄ…pić przy koÅ„cach linii oznaczajÄ…cej zwiÄ…zek, tzn. poprzeczna kreska, kurza Å‚apka" i kółko, okreÅ›lajÄ… liczbÄ™ obiektów danej encji, które mogÄ… być zwiÄ…zane z każdym obiektem encji znajdujÄ…cej siÄ™ na drugim koÅ„cu linii. W wiÄ™kszoÅ›ci przypadków na koÅ„cu linii wystÄ™pujÄ… dwa symbole, okreÅ›lajÄ…ce najmniejszÄ… i najwiÄ™kszÄ… dozwolonÄ… liczbÄ™ obiektów. W przyjÄ™tej konwencji oznaczeÅ„ kółko oznacza 0, poprzeczna kreska 1, a kurza Å‚apka" wskazuje, że w zwiÄ…zku może uczestniczyć wiele obiektów. W ten sposób, zgodnie z modelem przedstawionym na rys. 6, każde Zamówienie jest zÅ‚ożone przez jednego Klienta. Nie ma zamówieÅ„, których nikt nie zÅ‚ożyÅ‚, nie ma też zamówieÅ„ zÅ‚ożonych Å‚Ä…cznie przez kilku klientów. Natomiast każdy klient mógÅ‚ zÅ‚ożyć wiele zamówieÅ„, ale mógÅ‚ też jeszcze nie zÅ‚ożyć żadnego. Z kolei każde Zamówienie może wskazywać wiele Towarów, jednak nie mniej niż jeden (nie ma zamówieÅ„, które nie wskazujÄ… żadnego towaru). Podobnie, każdy Towar może być wskazany w wielu Zamówieniach. Natomiast tego, czy mogÄ… istnieć towary, które nie sÄ… wskazane w żadnym zamówieniu, model nie mówi - być może na tym etapie prac jeszcze tego nie wiemy. Podczas budowy modelu danych mogÄ… pojawić siÄ™ encje, które nie sÄ… zupeÅ‚nie jednorodne. Na przykÅ‚ad, wÅ›ród towarów sklepu motoryzacyjnego - charakteryzowanych zawsze przez nazwÄ™, nazwÄ™ producenta i cenÄ™ - mogÄ… siÄ™ znalezć opony charakteryzowane dodatkowo przez rozmiar, foteliki dzieciÄ™ce charakteryzowane przez wagÄ™ dziecka i dodatkowy opis oraz różne drobne akcesoria, takie jak kamizelki odblaskowe, które poza opisem tekstowym żadnych innych atrybutów nie majÄ…. Różne listy atrybutów oznaczajÄ…, że w istocie mamy do czynienia z różnymi encjami, które opisujÄ… różne szczególne przypadki Towaru: Opony, Foteliki, Pokrowce itd. Takie sytuacje opisuje siÄ™ w modelu za pomocÄ… specjalnej notacji pokazanej na rys. 7. Aatwo zauważyć, że encja Towar grupuje atrybuty wspólne dla caÅ‚ej kategorii produktów, podczas gdy pozostaÅ‚e encje zawierajÄ… wyÅ‚Ä…cznie atrybuty wyróżniajÄ…ce produkty konkretnego rodzaju. W ten sposób encja Towar jest uogólnieniem wszystkich konkretnych rodzajów towaru. Semantyka zwiÄ…zku uogólnienia zawiera w sobie reguÅ‚Ä™ dziedziczenia: każdy obiekt typu szczegółowego, np. Opona lub Fotelik, jest szczególnym przypadkiem typu ogólnego, po którym dziedziczy wszystkie atrybuty i wszystkie zwiÄ…zki. Zatem, 10 zgodnie z rys. 6 i 7, każda opona i każdy fotelik mogÄ… być wskazane w zamówieniu jakiegoÅ› klienta. Rysunek 7. Modelowanie zwiÄ…zku uogólnienia (towar i jego szczególne przykÅ‚ady) Diagram encji nie ma reprezentacji hierarchicznej. Jeżeli rysunek staje siÄ™ zbyt duży, można go po prostu podzielić na części, tworzÄ…c np. odrÄ™bne diagramy danych wykorzystywanych przez różne dziaÅ‚y przedsiÄ™biorstwa. Bardzo czÄ™sto dla oszczÄ™dnoÅ›ci miejsca pokazuje siÄ™ na diagramie tylko nazwy encji, bez wyliczania ich atrybutów (które w takim przypadku trzeba udokumentować osobno). 1.4. Schemat struktury Analityczne modele przetwarzania, takie jak hierarchia funkcji i diagram przepÅ‚ywu danych, opisujÄ… dokÅ‚adnie, co ma być zrobione, nie wyjaÅ›niajÄ… jednak wcale, jak ma być zbudowany program, który to przetwarzanie wykona. Schemat struktury programu (structure chart) jest modelem projektowym, który przedstawia budowÄ™ programu. Najważniejszymi elementami modelu sÄ…: podprogramy, rysowane jako prostokÄ…ty; wywoÅ‚ania podprogramów, rysowane jako strzaÅ‚ki z zaznaczonymi obok argumentami i wynikami wywoÅ‚aÅ„; zbiory i wspólne struktury danych, rysowane jako skoÅ›ne równolegÅ‚oboki lub prostokÄ…ty przylegajÄ…ce do podprogramów. PrzykÅ‚adowy schemat struktury programu ustawiajÄ…cego przebieg wjazdowy (tzn. drogÄ™ wjazdu pociÄ…gu) na komputerowo sterowanej stacji kolejowej jest pokazany na rys. 8. Widoczny na rysunku Å‚Ä…cznik ERR umożliwia kontynuowanie schematu na innym rysunku. 11 Rysunek 8. Schemat struktury programu ustawiajÄ…cego drogÄ™ wjazdu pociÄ…gu na stacjÄ™ Nietrudno zauważyć, że postać schematu struktury jest dopasowana do skÅ‚adni strukturalnych jÄ™zyków programowania, takich jak C, Pascal lub Fortran, których podstawowe jednostki syntaktyczne odpowiadajÄ… bezpoÅ›rednio elementom modelu. Zgodnie ze schematem program Ustawienie przebiegu wjazdowego wywoÅ‚uje trzy podprogramy: Odczytanie poÅ‚ożenia pociÄ…gu, Odczytanie rozkÅ‚adu jazdy i Ustawienie przebiegu. Pierwszy z tych podprogramów zwraca w wyniku numer i pozycjÄ™ wjeżdżajÄ…cego pociÄ…gu, drugi odczytuje ze zbioru RozkÅ‚ad jazdy numer przebiegu przewidzianego dla pociÄ…gu o podanym numerze, a trzeci ustawia zwrotnice wchodzÄ…ce w skÅ‚ad wybranego przebiegu. Argumenty i wyniki wywoÅ‚aÅ„, wyróżnione zaczernionym kółeczkiem, peÅ‚niÄ… rolÄ™ sterujÄ…cÄ… - od ich wartoÅ›ci zależy rodzaj dziaÅ‚aÅ„, które bÄ™dÄ… dalej podjÄ™te. Na przykÅ‚ad, bÅ‚Ä…d weryfikacji poÅ‚ożenia pociÄ…gu może spowodować wywoÅ‚anie przez podprogram Odczytanie poÅ‚ożenia pociÄ…gu jakichÅ› funkcji korekcyjnych (opisanych na odrÄ™bnym schemacie wskazanym przez Å‚Ä…cznik ERR). Warto zauważyć, że chociaż podprogram Przestawienie zwrotnicy może być wielokrotnie wywoÅ‚any wewnÄ…trz programu Ustawienie przebiegu, to na schemacie rysuje siÄ™ tylko jednÄ… strzaÅ‚kÄ™ wywoÅ‚ania. Niektóre metody przewidujÄ… jednak 12 umieszczanie na schematach struktury dodatkowych wyróżnieÅ„ oznaczajÄ…cych wywoÅ‚ania warunkowe lub wielokrotne. Schemat struktury jest modelem graficznym obrazujÄ…cym najważniejsze jednostki programowe oraz sposób ich wzajemnej współpracy. Koniecznym uzupeÅ‚nieniem schematu, niezbÄ™dnym dla implementacji programu, jest opis algorytmów dziaÅ‚ania podprogramów, tzn. opis sposobu przeksztaÅ‚cania danych wejÅ›ciowych, otrzymywanych podczas wywoÅ‚ania podprogramu, w wyniki. yródÅ‚em informacji niezbÄ™dnych do opracowania takich specyfikacji jednostek sÄ… minispecyfikacje procesów przeniesione tu z modelu analitycznego. 2. Techniki analizy strategicznej Pierwszym krokiem prac, poprzedzajÄ…cym przystÄ…pienie do opracowania oprogramowania systemu informatycznego, jest okreÅ›lenie roli i zakresu dziaÅ‚ania systemu, zdefiniowanie zadaÅ„, jakie ma on wypeÅ‚niać na rzecz otoczenia, oraz okreÅ›lenie wielkoÅ›ci i wydajnoÅ›ci przetwarzania. Zebranie i udokumentowanie tych informacji umożliwia ocenÄ™ kosztów opracowania systemu, analizÄ™ opÅ‚acalnoÅ›ci i podjÄ™cie decyzji o realizacji przedsiÄ™wziÄ™cia (podpisanie umowy) lub jego zaniechaniu. W wiÄ™kszoÅ›ci przypadków, z jakimi mamy do czynienia w biznesie, administracji i innych dziedzinach dziaÅ‚alnoÅ›ci czÅ‚owieka, systemy informatyczne sÄ… budowane w celu usprawnienia, rozszerzenia lub zastÄ…pienia części dziaÅ‚aÅ„ wykonywanych dotychczas w inny sposób. Taka sytuacja wystÄ™puje podczas informatyzacji banków, przedsiÄ™biorstw produkcyjnych, organów administracji publicznej, a także przy opracowaniu np. kolejnych wersji gier fabularnych, w które można grać z komputerem albo z innymi osobami. DokÅ‚adny zakres dziaÅ‚aÅ„ systemu w nowej strukturze organizacji nie jest czÄ™sto na poczÄ…tku prac przesÄ…dzony. Racjonalne podejÅ›cie analizy strategicznej polega na ustaleniu wszystkich czynnoÅ›ci, jakie wystÄ™pujÄ… w organizacji, a nastÄ™pnie okreÅ›leniu, które z nich majÄ… znalezć siÄ™ w zakresie dziaÅ‚ania nowego systemu, a które majÄ… pozostać na zewnÄ…trz. Odpowiedz na tak postawione pytanie wyznacza granice przyszÅ‚ej aplikacji i wskazuje wymagane funkcje 13 oprogramowania. Kolejnym krokiem może być okreÅ›lenie niezbÄ™dnej wydajnoÅ›ci przetwarzania oraz innych wymagaÅ„ niefunkcjonalnych i na tej podstawie oszacowanie pracochÅ‚onnoÅ›ci oraz kosztu opracowania oprogramowania speÅ‚niajÄ…cego wszystkie tak okreÅ›lone wymagania. Podstawowe modele tworzone podczas analizy strategicznej obejmujÄ… hierarchiÄ™ funkcji, opisujÄ…cÄ… wymagany zakres przetwarzania, oraz diagramy encji, przedstawiajÄ…ce strukturÄ™ przetwarzanych danych. Hierarchia funkcji powstaje w wyniku dekompozycji opisu caÅ‚oÅ›ci przetwarzania i wyodrÄ™bnienia poszczególnych funkcji. Diagram encji jest wynikiem ustalenia najważniejszych rodzajów danych oraz opisania ich struktury wewnÄ™trznej i istniejÄ…cych miÄ™dzy nimi powiÄ…zaÅ„. Obydwa modele powstajÄ… stopniowo i na każdym etapie pracy odzwierciedlajÄ… bieżącÄ… wiedzÄ™ analityków na temat sposobu rozwiÄ…zania problemu. Dalsza część rozdziaÅ‚u opisuje sposób tworzenia i wykorzystania modeli strukturalnych w kolejnych fazach procesu wytwarzania oprogramowania dla przykÅ‚adowego przedsiÄ™biorstwa handlowego, którym jest firma zajmujÄ…ca siÄ™ wysyÅ‚kowÄ… sprzedażą akcesoriów samochodowych, takich jak opony, felgi, bagażniki itp. PeÅ‚ny katalog oferowanych towarów jest dostÄ™pny w witrynie internetowej. Firma przyjmuje zamówienia klientów nadsyÅ‚ane pocztÄ… elektronicznÄ… i wysyÅ‚a zamówione towary pocztÄ… kurierskÄ…. Każde przyjÄ™te zamówienie jest potwierdzane e-mailem, którego treść okreÅ›la również formÄ™ pÅ‚atnoÅ›ci. Zamówienia o wartoÅ›ci nieprzekraczajÄ…cej pewnej sumy sÄ… opÅ‚acane przez klienta przy odbiorze. Zamówienia o wiÄ™kszej wartoÅ›ci klient opÅ‚aca przelewem, przed wysÅ‚aniem towaru, na podstawie wystawionej przez firmÄ™ faktury pro forma. W przypadku zamówieÅ„ maÅ‚ych, lecz dotyczÄ…cych towarów nietypowych wymagane jest wpÅ‚acenie zaliczki. Firma ma nowy i wydajny system ksiÄ™gowy oraz starÄ… aplikacjÄ™ magazynowÄ…. CaÅ‚y proces obsÅ‚ugi zamówieÅ„ jest realizowany rÄ™cznie. Ogromny wzrost sprzedaży zmusiÅ‚ kierownictwo firmy do unowoczeÅ›nienia jej struktury i wsparcia dziaÅ‚aÅ„ pracowników narzÄ™dziami informatycznymi. Przy okazji postanowiono dopuÅ›cić możliwość skÅ‚adania zamówieÅ„ na formularzach internetowych, choć nie zdecydowano siÄ™ na prowadzenie typowej sprzedaży przez Internet - dla zmniejszenia ryzyka reklamacji sklep zachÄ™ca do podawania w zamówieniu typu pojazdu klienta, co umożliwia 14 pracownikom weryfikacjÄ™ zgodnoÅ›ci zamówienia Z intencjami klienta. Biznesowym celem przedsiÄ™wziÄ™cia jest redukcja kosztów (spadek zatrudnienia i wzrost wydajnoÅ›ci pracy) oraz zwiÄ™kszenie obrotów dziÄ™ki uÅ‚atwieniu komunikacji z klientami. 2.1. Modelowanie przetwarzania Głównym problemem analizy strategicznej jest pozyskanie i uporzÄ…dkowanie wiedzy na temat dziedziny zastosowania i wymagaÅ„ przyszÅ‚ych użytkowników oprogramowania. Podstawowe metody pozyskiwania wiedzy obejmujÄ… lekturÄ™ dostÄ™pnych dokumentów oraz rozmowy z użytkownikami i sponsorami projektu. Sposobem porzÄ…dkowania stopniowo gromadzonej wiedzy jest modelowanie wymagaÅ„ w postaci hierarchii funkcji. Dobra hierarchia funkcji nie powstaje od razu. WrÄ™cz przeciwnie, model jest rozwijany stopniowo i doskonalony w miarÄ™ postÄ™pów analizy i wzrostu wiedzy o rozważanym zadaniu. PrzykÅ‚ad wstÄ™pnego, jeszcze niekompletnego, modelu dziaÅ‚ania przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej przedstawia rys. 9. CaÅ‚ość dziaÅ‚aÅ„ zwiÄ…zanych z prowadzeniem przedsiÄ™biorstwa wysyÅ‚kowego jest tu rozbita na pięć głównych funkcji, wykonywanych przez różne dziaÅ‚y firmy: reklamy, zaopatrzenia, obsÅ‚ugi magazynu towarów, sprzedaży i zarzÄ…dzania finansami. Ta ostatnia funkcja obejmuje ważne czynnoÅ›ci rozliczenia z dostawcami i klientami. Rysunek 9. WstÄ™pna hierarchia funkcji przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej Taki model może powstać już pierwszego dnia analizy, po zapoznaniu siÄ™ ze schematem organizacyjnym przedsiÄ™biorstwa i rozmowie z jego szefem. Model nie jest jeszcze kompletny - przerywane linie na diagramie sugerujÄ… potrzebÄ™ dalszej 15 dekompozycji funkcji - jednak tworzy dobrÄ… podstawÄ™ do dalszych dziaÅ‚aÅ„. Hierarchia funkcji jest modelem bardzo intuicyjnym i zrozumiaÅ‚ym dla każdego, bez wielu dodatkowych wyjaÅ›nieÅ„. PrzystÄ™pujÄ…c do przeprowadzenia kolejnych wywiadów, można posÅ‚użyć siÄ™ tym modelem w celu uÅ›ciÅ›lenia rozmowy i uzyskania od rozmówcy potwierdzenia swojej wizji przedsiÄ™biorstwa. Kolejne wywiady z użytkownikiem i obserwacja przedsiÄ™biorstwa mogÄ… korygować pierwotne wyobrażenia o jego funkcjonowaniu. Co wiÄ™cej, może siÄ™ okazać, że wbrew dotychczasowej tradycji i organizacji przedsiÄ™biorstwa pewne funkcje sÄ… tak powiÄ…zane, że nie ma powodu, by traktować je oddzielnie. W takim przypadku można zmodyfikować model, Å‚Ä…czÄ…c ze sobÄ… pokrewne funkcje - koÅ„cowym celem analizy nie jest przecież wierne odwzorowanie istniejÄ…cego systemu przetwarzania, lecz zbudowanie takiego systemu, który najlepiej pasuje do profilu dziaÅ‚ania przedsiÄ™biorstwa. Podobnie, może siÄ™ też okazać, że nie od razu dostrzeżemy wszystkie funkcje przedsiÄ™biorstwa i obecność oraz znaczenie niektórych funkcji odkryjemy dopiero po pewnym czasie. Na przykÅ‚ad, w modelu z rys. 9 brakuje zapewne funkcji zwiÄ…zanych z zarzÄ…dzaniem personelem - rekrutacjÄ… pracowników, rozliczaniem wynagrodzeÅ„, planowaniem urlopów i dni wolnych itp. Po zebraniu wiÄ™kszej liczby danych, pochodzÄ…cych z obserwacji i wywiadów przeprowadzonych z kierownikami działów firmy, można zbudować kolejny model przetwarzania, zawierajÄ…cy dokÅ‚adniejszÄ… hierarchiÄ™ funkcji. W tym miejscu trzeba jednak podkreÅ›lić, że budowany model nie powinien stać siÄ™ nadmiernie szczegółowy. Celem analizy strategicznej nie jest zebranie i opisanie wszystkich szczegółów przetwarzania, lecz uchwycenie i skonstruowanie syntetycznego obrazu, który umożliwi zdefiniowanie zakresu pracy oraz oszacowanie jej pracochÅ‚onnoÅ›ci i kosztu. Nie ma sztywnych reguÅ‚, ale w wiÄ™kszoÅ›ci przypadków wystarczy rozwiniÄ™cie hierarchii funkcji do trzech lub co najwyżej czterech poziomów. Model trzeba jednak uzupeÅ‚nić opisem sÅ‚ownym okreÅ›lajÄ…cym sposób wykonania funkcji. W tym celu dla każdej funkcji na najniższym poziomie hierarchii można podać np.: ·ð zdarzenie inicjujÄ…ce i szacunkowÄ… czÄ™stość wykonania funkcji, ·ð sÅ‚owny opis sposobu wykonania, ·ð kluczowe dane wprowadzane lub wytwarzane przez tÄ™ funkcjÄ™. 16 Rysunek 10. Ostateczna hierarchia funkcji przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej Hierarchia funkcji przedstawiona na rys. 10 modeluje dziaÅ‚anie przedsiÄ™biorstwa wystarczajÄ…co dokÅ‚adnie, aby na jej podstawie sformuÅ‚ować strategiÄ™ dziaÅ‚ania. Można w tym celu naÅ‚ożyć na tÄ™ hierarchiÄ™ obszary objÄ™te dziaÅ‚aniem już istniejÄ…cych systemów i w ten sposób znalezć istniejÄ…ce miÄ™dzy nimi luki i ewentualne redundancje. PorównujÄ…c wyniki tej analizy z priorytetami i możliwoÅ›ciami firmy, można podjąć decyzjÄ™ o pozostawieniu pewnych czynnoÅ›ci do realizacji rÄ™cznej i - ostatecznie - wytyczyć zakres nowego projektu. Na przykÅ‚ad, jeÅ›li w rozważanym przedsiÄ™biorstwie sprzedaży wysyÅ‚kowej istnieje dobrze dziaÅ‚ajÄ…ca aplikacja ksiÄ™gowa, to kierownictwo firmy prawdopodobnie nie uzna tego obszaru dziaÅ‚ania za priorytetowy kierunek zmian. Również rÄ™czna organizacja zaÅ‚atwiania spraw pracowniczych może - zdaniem kierownictwa firmy - nie wymagać jakichkolwiek udoskonaleÅ„, podobnie jak proces wybierania nowych towarów i wyszukiwania dostawców. Priorytetowym polem dziaÅ‚ania firmy jest sprzedaż i jej najbliższe otoczenie, które wymagajÄ… pilnego unowoczeÅ›nienia. Zakres zmian obejmie wiÄ™c peÅ‚nÄ… automatyzacjÄ™ obiegu zwiÄ…zanych z tym procesem dokumentów oraz wprowadzenie możliwoÅ›ci przyjmowania zamówieÅ„ skÅ‚adanych przez Internet. Ze wzglÄ™du na niskÄ… stopÄ™ zwrotów i reklamacji zdecydowano także o wyÅ‚Ä…czeniu 17 obsÅ‚ugi tego procesu z zasiÄ™gu planowanego systemu. WynikajÄ…cy z tych decyzji zakres budowanego systemu jest pokazany na rys.10. PodjÄ™cie decyzji dotyczÄ…cych zakresu dziaÅ‚aÅ„ przedsiÄ™biorstwa objÄ™tych dziaÅ‚aniem systemu umożliwia sformuÅ‚owanie wymagaÅ„ funkcjonalnych, które zostanÄ… zapisane w umowie na opracowanie oprogramowania: 1. ObsÅ‚uga przepÅ‚ywu towarów a. Zamawianie towarów u dostawców b. Przyjmowanie dostaw towarów c. SkÅ‚adowanie towarów d. WysyÅ‚anie towarów klientom 2. ObsÅ‚uga klientów a. Przyjmowanie zamówieÅ„ b. OkreÅ›lenie sposobu pÅ‚atnoÅ›ci 2.2. Modelowanie danych Funkcje sÄ… elementami procesu przetwarzania danych. Równie ważnym elementem tego procesu sÄ… dane, których wartoÅ›ci - ustalone w wyniku dziaÅ‚ania funkcji - opisujÄ… stan dziedziny zastosowania: banku, przedsiÄ™biorstwa produkcyjnego albo gry komputerowej. Dlatego podczas analizy strategicznej nie należy koncentrować siÄ™ tylko na definiowaniu funkcji, ale równolegle z odkrywaniem funkcji starać siÄ™ odnajdywać i klasyfikować dane oraz dokumentować istniejÄ…ce miÄ™dzy tymi danymi powiÄ…zania. Sposobem porzÄ…dkowania stopniowo gromadzonej wiedzy jest modelowanie danych w postaci diagramów encji. Odnalezienie najważniejszych encji nastÄ™puje czÄ™sto podczas analizy obiegu dokumentów w realnym Å›wiecie. Niektóre encje wprost odpowiadajÄ… dokumentom krążącym w przedsiÄ™biorstwie. MogÄ… to być np. zamówienia, faktury, noty magazynowe, opisy klientów i dostawców. Inne ważne encje można znalezć, analizujÄ…c treść wywiadów, przeprowadzonych z użytkownikami, zgodnie z prostÄ… zasadÄ…: rzeczowniki pojawiajÄ…ce siÄ™ w opisach dziaÅ‚ania mogÄ… okazać siÄ™ nazwami encji, a czasowniki odnoszÄ…ce siÄ™ do encji mogÄ… okazać siÄ™ nazwami zwiÄ…zków encji. 18 Podobnie jak hierarchia funkcji, diagram encji nie powstaje od razu. Jest rozwijany stopniowo i doskonalony w miarÄ™ postÄ™pów analizy i odkrywania nowych encji i nowych zwiÄ…zków. Trzeba jednak pamiÄ™tać, że osiÄ…gniÄ™cie celów analizy strategicznej nie wymaga zbudowania diagramu encji pokazujÄ…cego strukturÄ™ wszystkich przetwarzanych danych. Przeciwnie, model powinien pokazać tylko najważniejsze encje, których obecność jest niezbÄ™dna dla zrozumienia logiki dziaÅ‚ania systemu i które w najwiÄ™kszym stopniu wpÅ‚ywajÄ… na ilość danych gromadzonych i przetwarzanych przez oprogramowanie. Model może nie uwzglÄ™dniać części atrybutów, a niektóre encje mogÄ… być narysowane w ogóle bez wyliczenia atrybutów. Na tym etapie pracy nie ma też potrzeby budowania jednego spójnego diagramu obejmujÄ…cego wszystkie znalezione encje. Bardzo czÄ™sto buduje siÄ™ odrÄ™bne modele danych funkcjonujÄ…cych w różnych dziaÅ‚ach przedsiÄ™biorstwa. Takie podejÅ›cie może uÅ‚atwić proces weryfikacji, gdyż użytkownicy pracujÄ…cy w różnych dziaÅ‚ach najlepiej znajÄ… te rodzaje danych, z którymi majÄ… do czynienia w swojej codziennej pracy. PrzykÅ‚adowy diagram encji, opisujÄ…cy dane podlegajÄ…ce przetwarzaniu w przedsiÄ™biorstwie sprzedaży wysyÅ‚kowej, jest przedstawiony na rys. 11. Model jest dość zgrubny, ale obrazuje strukturÄ™ danych wystarczajÄ…co dokÅ‚adnie, aby na jego podstawie ocenić stopieÅ„ zÅ‚ożonoÅ›ci oraz rozmiar danych niezbÄ™dnych dla prawidÅ‚owego wykonania funkcji wchodzÄ…cych w skÅ‚ad procesu obsÅ‚ugi sprzedaży. W tym celu trzeba jednak uzupeÅ‚nić diagram dodatkowym opisem sÅ‚ownym, okreÅ›lajÄ…cym przeznaczenie i rozmiar poszczególnych encji. Dla każdej encji można podać np.: 19 Rysunek 3.11. Diagram encji obrazujÄ…cy dane funkcji obsÅ‚ugi magazynu i sprzedaży (model fazy strategicznej) ·ð spodziewanÄ… liczbÄ™ obiektów encji, jakie mogÄ… pojawić siÄ™ w systemie, oraz rozmiar pojedynczego obiektu; ·ð wymagany okres przechowywania obiektów oraz dodatkowe wymagania dotyczÄ…ce archiwizacji obiektów historycznych; ·ð tempo napÅ‚ywu obiektów encji do systemu, mierzone liczbÄ… obiektów w jednostce czasu (Å›rednie, maksymalne). Hierarchia funkcji i diagram encji opisujÄ… dwa aspekty oprogramowania - wykonywane dziaÅ‚ania i przetwarzane dane. Obydwa modele odnoszÄ… siÄ™ do tego samego systemu i powinny być ze sobÄ… zgodne. Weryfikacja zgodnoÅ›ci, możliwa na tym etapie prac, polega na sprawdzeniu, czy funkcje wystÄ™pujÄ…ce w hierarchii realizujÄ… wszystkie podstawowe operacje dotyczÄ…ce danych, tzn.: ·ð tworzenie obiektów encji (create), ·ð odczytywanie wartoÅ›ci atrybutów (read), ·ð zmienianie wartoÅ›ci atrybutów (update) i ·ð usuwanie obiektów encji (delete). Wygodnym narzÄ™dziem takiej weryfikacji jest macierz koincydencji, której wiersze odpowiadajÄ… encjom, kolumny funkcjom, a kratki - odpowiadajÄ…ce parom zÅ‚ożonym z funkcji i encji - pokazujÄ… operacje wykonywane przez tÄ™ funkcjÄ™ na danej encji. Weryfikacja polega na sprawdzeniu, czy każda encja jest potrzebna do wykonania jakiejÅ› funkcji, czy każda funkcja przetwarza dane zapisane w jakiejÅ› encji oraz czy 20 Å‚Ä…czny zbiór operacji wpisanych w każdym wierszu zawiera wszystkie cztery operacje realizujÄ…ce peÅ‚ny cykl życia encji. Ponieważ do kratek macierzy koincydencji wpisuje siÄ™ zazwyczaj pierwsze litery angielskich nazw operacji, macierz ta jest czÄ™sto nazywana macierzÄ… CRUD. Macierz CRUD modelu przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej jest pokazana w tab. 1. Jak wynika z tabeli, model nie speÅ‚nia wszystkich kryteriów weryfikacji, gdyż nie ma w nim żadnej funkcji usuwajÄ…cej opisy klientów, żadnej funkcji usuwajÄ…cej opisy dostaw ani funkcji tworzÄ…cej i usuwajÄ…cej opisy dostawców. Nie znaczy to jeszcze, że model jest bÅ‚Ä™dny - jednak każda z tych sytuacji wymaga wyjaÅ›nienia. W tym przykÅ‚adzie wszystkie wymienione braki można Å‚atwo wyjaÅ›nić, gdyż operacje usuniÄ™cia opisu klienta oraz utworzenia i usuniÄ™cia opisu dostawcy mogÄ… być wykonane wyÅ‚Ä…cznie w trybie operacji rÄ™cznej, natomiast opisy dostaw sÄ… tworzone w chwili przyjÄ™cia dostawy, nigdy nie podlegajÄ… modyfikacji, a ich usuniÄ™cie nastÄ™puje w innym trybie, po upÅ‚ywie 2 lat od daty przyjÄ™cia dostawy. Zweryfikowane i uzgodnione z użytkownikiem modele hierarchii funkcji i diagramów encji okreÅ›lajÄ… Å‚Ä…cznie zakres przetwarzania wymaganego od budowanego oprogramowania. Zawarta w tych modelach informacja, uzupeÅ‚niona opisem rozmiaru danych i sposobu wykonania funkcji, umożliwia oszacowanie rozmiarów przyszÅ‚ego systemu, zaproponowanie jego architektury sprzÄ™towej i okreÅ›lenie pracochÅ‚onnoÅ›ci wykonania. W wiÄ™kszoÅ›ci przypadków taki zestaw danych pozwala na podjÄ™cie decyzji o rozpoczÄ™ciu lub zaniechaniu przedsiÄ™wziÄ™cia. Tabela 3.1. Macierz CRUD kojarzÄ…ca funkcje z encjami modelu danych Zamawianie Przyjmowanie SkÅ‚adowanie WysyÅ‚anie Przyjmowani OkreÅ›lanie towarów dostaw towarów towarów e zamówieÅ„ pÅ‚atnoÅ›ci Towar CRD RU RU RU R Katalog CRUD R R R R Zamówienie RUD CR RU PrzesyÅ‚ka CRUD Klient R CRU Zamówienie CRUD R zaopatrzeniowe Dostawa CR R Dostawca RU R 21 2.3. Schemat kontekstu OkreÅ›lenie funkcji i danych przetwarzanych przez oprogramowanie pozwala wyznaczyć granicÄ™ oddzielajÄ…cÄ… to, co dzieje siÄ™ wewnÄ…trz budowanego systemu, od zewnÄ™trznego otoczenia, w którym znajdujÄ… siÄ™ użytkownicy oraz inne systemy współpracujÄ…ce. Wyrazne zdefiniowanie tej granicy i wyjaÅ›nienie, jakie dane wpÅ‚ywajÄ… do budowanego systemu i w jaki sposób system ma na te dane odpowiadać, jest ważnym czynnikiem okreÅ›lenia wymagaÅ„ wyznaczajÄ…cych sposób dziaÅ‚ania oprogramowania. Graficznym modelem opisujÄ…cym zewnÄ™trzne otoczenie systemu jest schemat kontekstu (context diagram). Elementami modelu sÄ…: ·ð caÅ‚y budowany system, przedstawiany na ogół w postaci okrÄ™gu; ·ð obiekty współpracujÄ…ce, tzn. ludzie i inne systemy, przedstawiane w postaci prostokÄ…tnych terminatorów (nazywanych też encjami zewnÄ™trznymi); ·ð przepÅ‚ywy danych przekraczajÄ…ce granicÄ™ systemu, przedstawiane za pomocÄ… strzaÅ‚ek Å‚Ä…czÄ…cych system z terminatorami. Kierunki strzaÅ‚ek obrazujÄ…cych przepÅ‚ywy danych miÄ™dzy systemem a terminatorami pokazujÄ… relacjÄ™ producent-konsument, przy czym zakÅ‚ada siÄ™, że konsument jest zawsze gotowy do przyjÄ™cia danych - nie ma ukrytych magazynów zwiÄ…zanych ze strzaÅ‚kami. Mimo koncepcyjnej prostoty modelu jego budowa - w tym zwÅ‚aszcza wybór terminatorów - nie zawsze jest oczywista. System budowany dla przykÅ‚adowego przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej na pewno musi obsÅ‚ugiwać klientów. Niektórzy z nich bÄ™dÄ… skÅ‚adać zamówienia przez Internet. Czy wÅ‚aÅ›ciwym terminatorem systemu bÄ™dzie w tym wypadku Klient, czy raczej PrzeglÄ…darka internetowa, która jest urzÄ…dzeniem bezpoÅ›rednio współpracujÄ…cym z systemem? W wiÄ™kszoÅ›ci przypadków lepszym wyborem jest pokazanie w modelu użytkownika koÅ„cowego, tzn. czÅ‚owieka, a nie urzÄ…dzenia lub programu sprzÄ™gajÄ…cego system z tym użytkownikiem. Wyeksponowanie urzÄ…dzenia uzależnia model od konkretnej techniki realizacji sprzÄ™gu systemu z otoczeniem. OdsuniÄ™cie tych szczegółów realizacyjnych prowadzi do stabilnego modelu analitycznego, niewrażliwego na zmiany technologii realizacyjnej. 22 Kolejna wÄ…tpliwość dotyczy operatorów systemu. Klienci przysyÅ‚ajÄ…cy zamówienia pocztÄ… elektronicznÄ… nie majÄ… bezpoÅ›redniego kontaktu z systemem. W komunikacji poÅ›redniczy Operator, który odbiera e-maile i wpisuje zamówienia do systemu. Czy należy uwzglÄ™dnić jego obecność w modelu? Odpowiedz na to pytanie jest podobna do poprzedniej. Model analizy strategicznej reprezentuje biznesowy punkt widzenia budowanego systemu. Z tej perspektywy operator systemu jest tylko elementem realizacji sprzÄ™gu systemu z użytkownikiem biznesowym. Jego obecność w modelu analitycznym uzależniÅ‚aby ten model od konkretnej organizacji sprzÄ™gu. DziÄ™ki przyjÄ™ciu takich reguÅ‚ budowy modelu schemat kontekstu może stać siÄ™ caÅ‚kowicie niezależny od konkretnej techniki realizacji sprzÄ™gu systemu z otoczeniem. Rzeczywista technologia realizacji sprzÄ™gu zostanie pokazana dopiero na pózniejszych etapach projektu. W przykÅ‚adowym przedsiÄ™biorstwie sprzedaży wysyÅ‚kowej można wyróżnić dwa terminatory: Klient i Dostawca. Schemat kontekstu systemu jest pokazany na rys. 12. Rysunek 3.12. Schemat kontekstu przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej Podobnie jak w przypadku diagramów encji, niezbÄ™dnym uzupeÅ‚nieniem schematu kontekstu jest opis tekstowy obejmujÄ…cy przede wszystkim: ·ð narracyjny opis przeznaczenia i celu budowy systemu; ·ð opis przepÅ‚ywów danych, z podaniem wszystkich znanych szczegółów struktury danych i oszacowaÅ„ ich rozmiaru; ·ð lista atrybutów systemu (wymagaÅ„ niefunkcjonalnych), takich jak szybkość dziaÅ‚ania, wydajność i niezawodność. Jeżeli schemat kontekstu jest bardzo duży, to można go podzielić na fragmenty zawierajÄ…ce segmenty koÅ‚a obrazujÄ…cego opisywany system. NotacjÄ™ schematu kontekstu można też wykorzystać do przedstawienia przepÅ‚ywów materiaÅ‚u, energii lub informacji. Rysunek taki może stanowić pierwszy krok analizy, uÅ‚atwiajÄ…cy budowÄ™ modelu przetwarzania. 23 Schemat kontekstu można uważać za dodatkowy poziom modelu diagramów przepÅ‚ywu danych, usytuowany powyżej caÅ‚ej hierarchii diagramów. 3. Techniki analizy strukturalnej ZakoÅ„czenie analizy strategicznej, podjÄ™cie decyzji i podpisanie umowy rozpoczyna realizacjÄ™ przedsiÄ™wziÄ™cia. Przedmiotem prac w fazie analizy (szczegółowej) jest ten fragment przedsiÄ™biorstwa, który znajduje siÄ™ w zakresie dziaÅ‚ania budowanego systemu. Głównym zadaniem jest teraz dokÅ‚adne opisanie sposobu dziaÅ‚ania oprogramowania. Analiza strukturalna dostarcza w tym celu dwa rodzaje modeli. ·ð LogikÄ™ dziaÅ‚ania opisuje diagram przepÅ‚ywu danych. ·ð Modelem struktury danych pozostaje diagram encji, który podlega jednak daleko idÄ…cym zmianom. Obydwie czynnoÅ›ci - budowa diagramu przepÅ‚ywu danych i przebudowa diagramu encji - mogÄ… być wykonywane równolegle. Warunkiem powodzenia pracy jest zebranie i udokumentowanie dokÅ‚adniejszych danych na temat zakresu i sposobu dziaÅ‚ania oprogramowania. Metody pozyskiwania informacji pozostajÄ… podobne do metod z poprzedniej fazy prac i obejmujÄ… studiowanie dokumentów opisujÄ…cych dziedzinÄ™ zastosowania oraz przeprowadzanie wywiadów z użytkownikami. Na tym etapie analizy wywiady muszÄ… stać siÄ™ bardziej szczegółowe, co wymaga zejÅ›cia w dół, z poziomu kierownictwa przedsiÄ™biorstwa do poziomu szeregowych pracowników wykonujÄ…cych zadania na stanowiskach pracy. Celem tych dziaÅ‚aÅ„ jest stworzenie modelu analitycznego, który obrazuje sposób dziaÅ‚ania oprogramowania, ale nie okreÅ›la jego budowy. Podstawowymi narzÄ™dziami modelowania wykorzystywanymi w fazie analizy sÄ… diagramy przepÅ‚ywu danych, obrazujÄ…ce procesy przetwarzania danych i wystÄ™pujÄ…ce miÄ™dzy nimi sprzężenia, oraz diagramy encji, opisujÄ…ce strukturÄ™ przetwarzanych danych. Model jest budowany stopniowo w kilku krokach, których rezultaty sÄ… przedstawiane klientowi celem uzgodnienia sposobu rozumienia problemu i uzyskania aprobaty dla proponowanych rozwiÄ…zaÅ„. 24 W wiÄ™kszoÅ›ci przypadków systemy informatyczne powstajÄ… w celu usprawnienia dziaÅ‚ania przedsiÄ™biorstw lub innych organizacji, które już majÄ… zorganizowany jakiÅ› system przetwarzania danych (np. rÄ™czny). IstniejÄ…cy system odzwierciedla potrzeby firmy, a jednoczeÅ›nie ma ograniczenia wynikajÄ…ce z dotychczasowej technologii realizacji. Zamodelowanie istniejÄ…cego systemu jest dobrym punktem wyjÅ›cia do dalszej analizy, której celem bÄ™dzie zachowanie potrzebnych dziaÅ‚aÅ„, z jednoczesnym uwolnieniem siÄ™ od ograniczeÅ„ technologicznych. DodatkowÄ… zaletÄ… takiego podejÅ›cia jest Å‚atwość uzyskania od użytkowników informacji o sposobie dziaÅ‚ania systemu, który znajÄ… i którego używajÄ… na co dzieÅ„, oraz możliwość wiarygodnej weryfikacji sposobu rozumienia problemu przez obie strony umowy. Dlatego typowy przebieg procesu modelowania zachowania obejmuje nastÄ™pujÄ…ce kroki: ·ð BudowÄ™ modelu fizycznego, który przedstawia sposób przetwarzania danych w obecnie dziaÅ‚ajÄ…cym systemie. ·ð BudowÄ™ modelu logicznego, który usuwa ograniczenia dotychczas stosowanej technologii realizacyjnej i obrazuje sposób przetwarzania w idealnej" technologii. ·ð BudowÄ™ nowego modelu fizycznego, który przedstawia sposób dziaÅ‚ania oprogramowania nowego systemu. Dotychczasowy model fizyczny pokazuje sposób realizacji procesów biznesowych przedsiÄ™biorstwa. PrzeksztaÅ‚cenie modelu fizycznego w model logiczny może oznaczać zmianÄ™ tych procesów, prowadzÄ…cÄ… do zmiany sposobu dziaÅ‚ania firmy. W tym miejscu metodyka strukturalna wykracza poza obszar inżynierii oprogramowania, a nawet poza obszar techniki, i staje siÄ™ narzÄ™dziem znanej w naukach o zarzÄ…dzaniu koncepcji restrukturyzacji procesów biznesowych {Business Process Re-engineering - BPR) w celu poprawy wydajnoÅ›ci dziaÅ‚ania przedsiÄ™biorstwa. Trzeba jednak zaznaczyć, że budowa dotychczasowego modelu fizycznego jest krokiem opcjonalnym, który może być pominiÄ™ty ze wzglÄ™du na koszty lub w przypadku budowania caÅ‚kiem nowego systemu, który nie miaÅ‚ żadnego poprzednika. Taka sytuacja wystÄ™puje czÄ™sto podczas wytwarzania oprogramowania systemów sterujÄ…cych, które otwierajÄ… nowe możliwoÅ›ci lub zastÄ™pujÄ… wczeÅ›niejsze urzÄ…dzenia 25 oparte na zupeÅ‚nie innych zasadach dziaÅ‚ania. Dlatego metody zorientowane na projektowanie oprogramowania sterujÄ…cego nie obejmujÄ… na ogół tego kroku. 3.1. Budowa modelu fizycznego Podstawowymi zródÅ‚ami informacji sÄ… dla analityków wywiady z użytkownikami oraz bieżące dokumenty firmy, takie jak statut, opis struktury organizacyjnej, regulamin, instrukcje stanowiskowe. Wszystkie te zródÅ‚a opisujÄ… stan bieżący, a nie przyszÅ‚y, który powstanie po zbudowaniu nowego systemu informatycznego. Dlatego pierwszy model zbudowany przez analityków niemal zawsze w wiÄ™kszym lub mniejszym stopniu odzwierciedla obecnÄ… strukturÄ™ i organizacjÄ™ pracy, które - być może - ulegnÄ… zmianie w wyniku wprowadzenia nowego systemu. Powróćmy do przykÅ‚adu przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej. Punktem wyjÅ›cia analizy jest hierarchia funkcji (rys. 10), opisujÄ…ca zadania do wykonania, oraz schemat kontekstu (rys. 12), pokazujÄ…cy granice systemu i zewnÄ™trzne obiekty współpracujÄ…ce. Pierwszy krok, obejmujÄ…cy wywiady z pracownikami oraz obserwacjÄ™ obiegu dokumentów i sposobu dziaÅ‚ania przedsiÄ™biorstwa, może prowadzić do zbudowania modelu pokazujÄ…cego zasadnicze procesy systemu oraz przepÅ‚ywy danych miÄ™dzy tymi procesami (rys. 13). Aatwo zauważyć, że procesy odpowiadajÄ… dość dobrze funkcjom znajdujÄ…cym siÄ™ na najwyższym poziomie hierarchii funkcji. Nie powinno to być zaskoczeniem, gdyż zarówno funkcje hierarchii, jak i procesy modelu fizycznego odpowiadajÄ… czÄ™sto komórkom organizacyjnym przedsiÄ™biorstwa. 26 Rysunek 13. Diagram 0: System sprzedaży wysyÅ‚kowej Diagram przepÅ‚ywu danych opisuje wymagane przetwarzanie znacznie dokÅ‚adniej niż hierarchia funkcji. PrzepÅ‚ywy Å‚Ä…czÄ…ce funkcje umożliwiajÄ… pokazanie ich współdziaÅ‚ania oraz wymiany danych nastÄ™pujÄ…cej podczas realizacji procesów biznesowych. Najważniejszy proces biznesowy przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej, jakim jest obsÅ‚uga zamówieÅ„ klientów, rozpoczyna siÄ™ w chwili wpÅ‚yniÄ™cia zamówienia od klienta (1). Pracownicy dziaÅ‚u sprzedaży rejestrujÄ… wpÅ‚ywajÄ…ce zamówienia i dzielÄ… je na dwie grupy: ·ð zamówienia, które powinny zostać opÅ‚acone przelewem przed realizacjÄ…, sÄ… odkÅ‚adane na stos zamówieÅ„ czekajÄ…cych (2a); ·ð zamówienia pÅ‚atne przy odbiorze sÄ… odkÅ‚adane na stos zamówieÅ„ do realizacji (2). RealizacjÄ™ przelewów kontroluje dziaÅ‚ ksiÄ™gowoÅ›ci, którego pracownicy przenoszÄ… opÅ‚acone zamówienia ze stosu zamówieÅ„ czekajÄ…cych na stos zamówieÅ„ do realizacji (2b, 2c). Wykonaniem zamówieÅ„ (3) zajmuje siÄ™ dziaÅ‚ obsÅ‚ugi magazynu. Jeżeli wszystkie towary wymienione w zamówieniu sÄ… dostÄ™pne w magazynie, to sÄ… one 27 pakowane i przygotowywane do wysÅ‚ania do klienta, a druk zamówienia jest odkÅ‚adany na stos zamówieÅ„ wykonanych (4). Stos tych zamówieÅ„ jest kilka razy dziennie zanoszony do dziaÅ‚u ksiÄ™gowoÅ›ci (4a), którego pracownicy wystawiajÄ… faktury i odkÅ‚adajÄ… je na stos faktur klientów (5). Pod koniec dnia faktury sÄ… doÅ‚Ä…czane do przygotowanych przesyÅ‚ek (5a) i wysyÅ‚ane do klientów (6). Jeżeli zamówionych towarów w magazynie nie ma, to niemożliwe do zrealizowania zamówienia sÄ… odkÅ‚adane na stos zamówieÅ„ zalegÅ‚ych (7). Po odebraniu nowej dostawy pracownicy magazynu przeglÄ…dajÄ… stos zamówieÅ„ zalegÅ‚ych i realizujÄ… je w normalny sposób. W podobny sposób można opisać przebieg procesu zakupu towarów od dostawców. Stos zamówieÅ„ zalegÅ‚ych jest regularnie przeglÄ…dany przez pracowników dziaÅ‚u zaopatrzenia (8), którzy zamawiajÄ… brakujÄ…ce towary u dostawców (9), pozostawiajÄ…c zalegÅ‚e zamówienia na stosie. Kopie zamówieÅ„ zÅ‚ożonych u dostawców oczekujÄ… na stosie zamówieÅ„ zaopatrzeniowych do chwili, w której obsÅ‚uga magazynu potwierdzi odebranie dostawy (10). Potwierdzone zamówienia zaopatrzeniowe sÄ… przekazywane do dziaÅ‚u ksiÄ™gowoÅ›ci (11), który opÅ‚aca zwiÄ…zane z tymi zamówieniami faktury dostawców (12). Opis przetwarzania, jaki można przedstawić na pojedynczym diagramie, jest z koniecznoÅ›ci dość ogólny. Podstawowym ograniczeniem jest rozmiar i stopieÅ„ skomplikowania rysunku - pokazanie wszystkich szczegółów dziaÅ‚ania przedsiÄ™biorstwa wymagaÅ‚oby zbudowania bardzo dużego diagramu, zagmatwanego i trudnego do objÄ™cia ludzkim umysÅ‚em. Taki sposób postÄ™powania stanowiÅ‚by zaprzeczenie idei posÅ‚ugiwania siÄ™ modelami graficznymi, które sÄ… tworzone dla uzyskania przejrzystoÅ›ci i zrozumiaÅ‚oÅ›ci opisu wiÄ™kszej, niż jest to możliwe do uzyskania za pomocÄ… opisów tekstowych. Badania psychofizyczne wykonane jeszcze w latach pięćdziesiÄ…tych XX wieku pokazaÅ‚y, że optymalnÄ… dla naszej zdolnoÅ›ci pojmowania jest dekompozycja problemu na ok. 7 elementów. StÄ…d zwykle przyjmuje siÄ™ tÄ™ wartość jako wskazanie zalecanej liczby procesów na diagramie. 28 Bardziej szczegółowy opis przetwarzania wymaga zbudowania hierarchii diagramów, w której struktura poszczególnych procesów diagramu wyższego poziomu jest przedstawiona na odrÄ™bnych diagramach niższego poziomu. Na przykÅ‚ad, proces 1: ObsÅ‚uga zamówieÅ„ można opisać za pomocÄ… diagramu pokazanego na rys. 14, a proces 2: ObsÅ‚uga magazynu - przy użyciu diagramu pokazanego na rys. 15. KoÅ„cowa hierarchia diagramów opisuje caÅ‚ość przetwarzania zgodnie z zasadÄ… zstÄ™pujÄ…cej dekompozycji funkcji. Nie znaczy to jednak, że tak wÅ‚aÅ›nie przebiega proces budowania modelu przez analityka. W rzeczywistoÅ›ci czÄ™stym punktem startowym jest zgrubny, jednopoziomowy model obrazujÄ…cy tÄ™ część przetwarzania, która jest najlepiej rozumiana przez analityka na danym etapie pracy. W miarÄ™ postÄ™pów analizy diagram zaczyna przekraczać rozsÄ…dne rozmiary, co zmusza 29 analityka do uporzÄ…dkowania modelu i przejÅ›cia na opis hierarchiczny - powiÄ…zane grupy procesów sÄ… Å‚Ä…czone w pojedyncze procesy wyższego poziomu, a drobne szczegóły przetwarzania sÄ… przenoszone na diagramy poziomu niższego. Na ogół budowÄ™ hierarchii diagramów przepÅ‚ywu danych prowadzi siÄ™ do takiego poziomu, na którym procesy stanÄ… siÄ™ na tyle proste, aby ich specyfikacje mieÅ›ciÅ‚y siÄ™ na jednej stronie. PrzykÅ‚ad takiej minispecyfikacji, zapisanej w pseudokodzie, jest pokazany na rys. 16. Proces 2.1: Sprawdzenie stanu magazynu Dla każdego wybranego zamówienia wykonaj PrzeglÄ…daj pozycje zamówienia i dla każdej pozycji wykonaj Znajdz opis towaru w magazynie JeÅ›li towar dostÄ™pny, to Zaznacz pobranie towaru Zaznacz pozycjÄ™ zrealizowanÄ… w przeciwnym przypadku Przerwij przeglÄ…danie pozycji zamówienia JeÅ›li wszystkie pozycje zrealizowane, to Przekaż zamówienie do wysyÅ‚ki W przeciwnym przypadku Dla każdej pozycji zamówienia Cofnij pobranie towaru Przekaż zamówienie do zbioru zamówieÅ„ zalegÅ‚ych Koniec obsÅ‚ugi zamówienia Rysunek 16. Specyfikacja procesu 2.1: Sprawdzenie stanu magazynu 3.2. Budowa modelu logicznego Model fizyczny pokazuje przebieg procesów przetwarzania danych, realizowanych w konkretnej technologii implementacyjnej. W systemie rÄ™cznego przetwarzania danych przepÅ‚ywy w modelu obrazujÄ… ruch fizycznie istniejÄ…cych obiektów. Na przykÅ‚ad, widoczny na rys. 13 zbiór Zamówienia czekajÄ…ce może mieć postać segregatora, z którego część dokumentów jest przenoszona przez pracowników dziaÅ‚u ksiÄ™gowoÅ›ci do innego segregatora ZamówieÅ„ do realizacji. Fizyczne przemieszczenie zamówieÅ„ 30 do osobnego zbioru jest niezbÄ™dne dla uÅ‚atwienia pracy ludzi obsÅ‚ugujÄ…cych magazyn i unikniÄ™cia pomyÅ‚ek polegajÄ…cych na realizacji zamówieÅ„, które nie zostaÅ‚y wÅ‚aÅ›ciwie opÅ‚acone. OdrÄ™bne segregatory ZamówieÅ„ czekajÄ…cych i ZamówieÅ„ do realizacji oraz konieczność przekÅ‚adania kartek zamówieÅ„ z jednego segregatora do drugiego sÄ… przykÅ‚adami zależnoÅ›ci procesu przetwarzania od technologii realizacyjnej (realizacja rÄ™czna). W innej technologii realizacyjnej - takiej, w której nie grozi pomylenie zamówieÅ„ różnego rodzaju - odrÄ™bne segregatory stajÄ… siÄ™ zbÄ™dne. Zamiast nich wystarczy jeden wspólny zbiór zamówieÅ„, rozróżnianych za pomocÄ… dodatkowego oznaczenia czekajÄ…ce, do realizacji lub wykonane. Każda zmiana technologii realizacyjnej, np. wprowadzenie komputerów, skanerów dokumentów, oznakowanie zamówieÅ„ kodem kreskowym itp. może prowadzić do daleko idÄ…cych zmian modelu. W rezultacie model fizyczny jest niestabilny i podlega czÄ™stym zmianom. Celem budowy modelu logicznego jest pokazanie wewnÄ™trznej logiki procesów przetwarzania danych, nieobarczonych naleciaÅ‚oÅ›ciami konkretnej technologii implementacyjnej. Niezależność od zmieniajÄ…cej siÄ™ technologii zapewnia stabilność modelu, który powinien zachować aktualność pomimo nieuchronnych zmian technologicznych. Hierarchiczna struktura modelu fizycznego odzwierciedla na ogół obecnÄ… strukturÄ™ organizacyjnÄ… przedsiÄ™biorstwa, którego dziaÅ‚y odpowiadajÄ… procesom pokazanym na diagramie najwyższego poziomu. Dlatego przeksztaÅ‚cenie modelu fizycznego w model logiczny rozpoczyna siÄ™ zwykle od usuniÄ™cia hierarchii i poÅ‚Ä…czenia diagramów przepÅ‚ywu danych znajdujÄ…cych siÄ™ na niższym poziomie. Procesy wystÄ™pujÄ…ce na diagramach niższego poziomu odzwierciedlajÄ… czynnoÅ›ci, które muszÄ… być wykonane niezależnie od przypisania ich do tego czy innego dziaÅ‚u firmy. PoÅ‚Ä…czony, zwykle bardzo duży, model przedstawia przebieg obecnych procesów przetwarzania, oderwany od konkretnej struktury organizacyjnej przedsiÄ™biorstwa. Dalszym krokiem budowania modelu logicznego jest usuniÄ™cie wszystkich elementów modelu fizycznego wynikajÄ…cych z obecnie stosowanej technologii realizacyjnej. Należą do nich: 31 ·ð procesy transportowe (przenoszenie danych, zmiana noÅ›nika, kontrola bÅ‚Ä™dów, ...), ·ð procesy wsadowe (gromadzenie danych), ·ð przepÅ‚ywy przemieszczajÄ…ce fizyczne obiekty, ·ð wsadowe magazyny danych, ·ð magazyny bez wejść lub wyjść. Powróćmy do przykÅ‚adu przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej. Diagram 0, pokazany na rys. 13, przedstawia caÅ‚ość przetwarzania danych wykonywanego w przedsiÄ™biorstwie, diagramy 1 i 2, pokazane na rys. 14 i 15, przedstawiajÄ… dokÅ‚adniej interesujÄ…ce nas procesy ObsÅ‚uga zamówieÅ„ i ObsÅ‚uga magazynu. UsuniÄ™cie hierarchizacji polega na poÅ‚Ä…czeniu diagramów 1 i 2, co prowadzi do zbiorczego modelu przetwarzania pokazanego na rys. 17. AnalizujÄ…c poÅ‚Ä…czony model fizyczny, można zauważyć, że elementami Å›ciÅ›le zwiÄ…zanymi z obecnÄ… (rÄ™cznÄ…) technologiÄ… realizacji przetwarzania sÄ… w nim: ·ð wsadowe magazyny danych: Zamówienia czekajÄ…ce, Zamówienia do realizacji., Zamówienia zalegÅ‚e i Zamówienia wykonane, które można poÅ‚Ä…czyć w jeden magazyn Zamówienia; ·ð procesy i magazyny opisujÄ…ce fizyczne przemieszczenia towarów: Pakowanie przesyÅ‚ki i SkÅ‚adowanie towarów, które zostanÄ… z modelu usuniÄ™te. Wynikiem tych zmian jest model logiczny aplikacji obsÅ‚ugi sprzedaży pokazany na rys. 18. Aatwo zauważyć znaczne uproszczenie modelu, w którym wyraznie wyodrÄ™bniajÄ… siÄ™ drogi przepÅ‚ywu zamówieÅ„ i towarów. 32 Rysunek 3.17. PoÅ‚Ä…czony model fizyczny Rysunek 3.18. Model logiczny aplikacji obsÅ‚ugi sprzedaży Budowanie modelu logicznego wymagaÅ‚o szeregu dziaÅ‚aÅ„, podczas których istniaÅ‚a możliwość popeÅ‚nienia bÅ‚Ä™du, np. pominiÄ™cia jakiejÅ› funkcji lub jakiegoÅ› poÅ‚Ä…czenia funkcji z magazynem danych. Dlatego opracowany model logiczny powinien być przed zatwierdzeniem poddany weryfikacji polegajÄ…cej na próbie odnalezienia wÅ›ród procesów modelu wszystkich funkcji elementarnych, które wystÄ™pujÄ… w hierarchii 33 funkcji i w modelu fizycznym, oraz zbudowaniu macierzy CRUD, sprawdzajÄ…cej korelacjÄ™ modelu zachowania z modelem danych. 3.3. Modelowanie danych Model danych utworzony podczas analizy strategicznej nie jest zbyt szczegółowy. Nie ma on przecież opisywać caÅ‚oÅ›ci danych podlegajÄ…cych przetwarzaniu, a jedynie wyjaÅ›niać sposób dziaÅ‚ania funkcji wymienionych w hierarchii funkcji. Dlatego model ten zawiera tylko najważniejsze encje, których obecność jest oczywista, najważniejsze atrybuty, które sÄ… niezbÄ™dne do scharakteryzowania encji, oraz podstawowe zwiÄ…zki miÄ™dzy encjami. Celem prac wykonywanych w fazie analizy szczegółowej jest zbudowanie modelu dokÅ‚adnego. Metody pracy analityka oraz zródÅ‚a wykorzystywanej przez niego informacji nie ulegajÄ… zasadniczej zmianie, jednak poziom szczegółowoÅ›ci opisu wzrasta, a praca obejmuje swym zasiÄ™giem wszystkie obszary dziedziny problemu, a nie tylko te najważniejsze. Konieczność poznania szczegółów wymaganego przetwarzania zmienia zakres wywiadów - obejmujÄ… one teraz pracowników niższych szczebli, którzy wiedzÄ…, jak pracuje firma, a w przyszÅ‚oÅ›ci bÄ™dÄ… bezpoÅ›rednimi użytkownikami tworzonego oprogramowania. Istotnym elementem budowania kompletnego modelu danych jest uzupeÅ‚nianie i porzÄ…dkowanie atrybutów encji, nazywane normalizacjÄ… modelu. Celem tego procesu jest unikniÄ™cie redundancji danych i doprowadzenie modelu do postaci, która jest wymagana do utworzenia tabel relacyjnej bazy danych. Proces normalizacji przebiega w kilku krokach, których wynikiem sÄ… kolejno numerowane postacie normalne". Na ogół wymaga siÄ™ normalizacji siÄ™gajÄ…cej trzeciej postaci normalnej. 1. Pierwsza postać normalna - atrybuty encji sÄ… wartoÅ›ciami niepodzielnymi. Na przykÅ‚ad, jeÅ›li w czasie przetwarzania danych klienta pojawia siÄ™ potrzeba wyodrÄ™bniania z jego adresu nazwy miejscowoÅ›ci, to adres nie bÄ™dzie prawidÅ‚owym atrybutem encji Klient. Normalizacja wymaga rozbicia adresu na części skÅ‚adowe. 34 2. Druga postać normalna - każda wartość klucza jednoznacznie wyznacza wartoÅ›ci wszystkich atrybutów encji. Na przykÅ‚ad, atrybut nazwisko nie bÄ™dzie poprawnym kluczem encji Klient, ponieważ może pojawić siÄ™ kilku klientów o tym samym nazwisku. RozwiÄ…zaniem problemu może być nadanie klientom unikalnych identyfikatorów lub posÅ‚użenie siÄ™ numerami PESEL. 3. Trzecia postać normalna - atrybut, który nie jest kluczem, nie wyznacza jednoznacznie wartoÅ›ci innych atrybutów encji. Na przykÅ‚ad, gdyby encja Zamówienie zawieraÅ‚a identyfikator klienta i adres klienta, to atrybut identyfikator klienta jednoznacznie wyznaczaÅ‚by adres klienta. Przechowywanie adresu w tej encji byÅ‚oby nadmiarowe, gdyż znajÄ…c identyfikator klienta, można zawsze odszukać jego adres w treÅ›ci encji Klient. DokÅ‚adny opis wszystkich postaci normalnych oraz sformalizowanego procesu ich osiÄ…gania można znalezć w podrÄ™cznikach projektowania baz danych. RozwijajÄ…c wstÄ™pny diagram encji, opracowany podczas analizy strategicznej, trzeba poÅ›wiÄ™cić szczególnÄ… uwagÄ™ takim zwiÄ…zkom, które po obu stronach mogÄ… dotyczyć wielu obiektów. Tego typu zwiÄ…zki wiele-do-wielu, których przykÅ‚adem może być zwiÄ…zek Å‚Ä…czÄ…cy encje Towar i Zamówienie na rys. 6, utrudniajÄ… czÅ‚owiekowi uchwycenie natury powiÄ…zaÅ„ istniejÄ…cych miÄ™dzy konkretnymi obiektami w dziedzinie zastosowania. Dlatego w wiÄ™kszoÅ›ci praktycznie realizowanych systemów przetwarzania danych wprowadza siÄ™ jakieÅ› encje poÅ›redniczÄ…ce, których obecność umożliwia zdefiniowanie powiÄ…zaÅ„ miÄ™dzy przetwarzanymi obiektami za pomocÄ… bardziej jednoznacznych zwiÄ…zków typu jeden-do-wielu. Na przykÅ‚ad, w niemal wszystkich systemach przetwarzajÄ…cych zamówienia wystÄ™puje pojÄ™cie pozycji zamówienia", czyli samodzielnej części zamówienia okreÅ›lajÄ…cej zapotrzebowanie na jeden konkretny towar. W ogromnej wiÄ™kszoÅ›ci przypadków każda pozycja zamówienia może być przedmiotem odrÄ™bnej dostawy i ksiÄ™gowania, niezależnie od losu pozostaÅ‚ych pozycji tego samego zamówienia. Sposób powiÄ…zania wielu obiektów jednego rodzaju z wieloma obiektami innego rodzaju poprzez encjÄ™ poÅ›redniczÄ…cÄ… jest pokazany na rys. 19. 35 Rysunek 19. Jednoznaczne powiÄ…zanie towarów i zamówieÅ„ poprzez pozycje zamówienia Obecność zwiÄ…zku wiele-do-wielu w modelu danych wskazuje najczęściej na pominiÄ™cie jakiegoÅ› ważnego pojÄ™cia wystÄ™pujÄ…cego w realnym Å›wiecie i konieczność przeprowadzenia bardziej wnikliwej analizy tego fragmentu dziedziny zastosowania. PrzykÅ‚adowy model uporzÄ…dkowanego modelu danych przedsiÄ™biorstwa sprzedaży wysyÅ‚kowej, pozbawiony zwiÄ…zków wiele-do-wielu, jest pokazany na rys. 20. Rysunek 3.20. Diagram encji obrazujÄ…cy dane funkcji obsÅ‚ugi magazynu i sprzedaży (model analizy szczegółowej) 3.4. Budowa nowego modelu fizycznego Celem dziaÅ‚ania na tym etapie pracy jest okreÅ›lenie mechanizmów realizacji przetwarzania opisanego w modelu logicznym. Na razie nie wiadomo nawet, jak bÄ™dÄ… wprowadzane do systemu zamówienia nadsyÅ‚ane pocztÄ… elektronicznÄ…, jak bÄ™dzie wyglÄ…dać współpraca systemu z pracownikami pakujÄ…cymi towary i wysyÅ‚ajÄ…cymi przesyÅ‚ki ani jak bÄ™dÄ… przyjmowane nowe dostawy. 36 Zajmijmy siÄ™ tym ostatnim problemem. Przenoszenie towarów i rozmieszczanie ich w magazynie bÄ™dzie zapewne wykonywane rÄ™cznie. System komputerowy może jednak wspomagać ten proces, odnajdujÄ…c zamówienia odpowiadajÄ…ce zawartoÅ›ci dostawy, sprawdzajÄ…c zgodność dokumentów dostawy z treÅ›ciÄ… zamówienia, aktualizujÄ…c automatycznie opis stanu magazynu i drukujÄ…c dokumenty przyjÄ™cia towarów do magazynu (dokument PZ). Dalsze możliwoÅ›ci automatyzacji procesu przyjmowania dostaw zależą istotnie od wyposażenia magazynu. JeÅ›li dostarczane towary majÄ… oznaczenia w postaci kodu kreskowego, a magazyn zostanie wyposażony w odpowiednie czytniki, to komputer może automatycznie sprawdzać zawartość i kompletność przyjmowanej dostawy. CaÅ‚ość zwiÄ…zanego z tym procesem przetwarzania jest pokazana na rys. 21. PrzyjÄ™cie dostawy rozpoczyna siÄ™ od skanowania czytnikiem wszystkich dostarczonych towarów. System rozpoznaje odczytany kod towaru (proces 5.1), zlicza poszczególne pozycje towarowe i znajduje odpowiadajÄ…ce im zamówienia w zbiorze Zamówienia zaopatrzeniowe (proces 5.2). Pracownik magazynu widzi na terminalu treść zamówienia oraz liczbÄ™ dostarczonych sztuk towaru i na tej podstawie podejmuje decyzjÄ™ o przyjÄ™ciu lub odrzuceniu każdej pozycji dostawy. Pozycje odrzucone sÄ… zwracane dostawcy. Pozycje przyjÄ™te sÄ… wciÄ…gane na stan magazynu (proces 5.3), a ich opis jest zapisywany w zbiorze Pozycje przyjÄ™te. Po zakoÅ„czeniu procesu przyjmowania dostawy system drukuje dokument przyjÄ™cia zewnÄ™trznego (PZ) potwierdzajÄ…cy przyjÄ™cie towarów do magazynu. Rysunek 21. Diagram 5: PrzyjÄ™cie dostawy 37 W rzeczywistoÅ›ci nowy model fizyczny nie jest wynikiem decyzji podjÄ™tych arbitralnie przez analityków. Decyzja co do sposobu wprowadzania i wyprowadzania danych wiąże siÄ™ Å›ciÅ›le z opracowaniem nowych procedur biznesowych, zgodnie z którymi bÄ™dzie dziaÅ‚ać przedsiÄ™biorstwo, i jest podejmowana zawsze w Å›cisÅ‚ej współpracy z użytkownikiem, który ma w tym wzglÄ™dzie gÅ‚os decydujÄ…cy. Opracowanie tych procedur wymaga oceny wielu czynników biznesowych, takich jak zakres koniecznego szkolenia personelu, możliwość wystÄ…pienia zakłóceÅ„ pracy firmy na etapie wdrożenia oraz niezbÄ™dne wydatki inwestycyjne (np. na zakup czytników kodu kreskowego). Dlatego wynikiem analizy szczegółowej jest nie tylko model systemu docelowego, ale także plan przejÅ›cia na nowy system, obejmujÄ…cy co najmniej trzy elementy: ·ð plan testowania akceptacyjnego, okreÅ›lajÄ…cy czas, miejsce i zakres odpowiedzialnoÅ›ci stron podczas zatwierdzania systemu (np. kto dostarczy Å›rodowisko testowe, jakÄ… metodÄ… bÄ™dÄ… sprawdzane wymagania, jak bÄ™dÄ… zgÅ‚aszane bÅ‚Ä™dy, jak bÄ™dzie przebiegaÅ‚ proces poprawiania bÅ‚Ä™dów itp.); ·ð plan szkoleÅ„, okreÅ›lajÄ…cy czas, miejsce i zakres szkoleÅ„ niezbÄ™dnych dla poszczególnych stanowisk pracy (także: metodÄ™ szkolenia, liczebność grup treningowych, dostÄ™pność systemu szkoleniowego i podrÄ™czników) oraz sposób zapewnienia ciÄ…gÅ‚oÅ›ci pracy firmy podczas szkolenia części pracowników; ·ð plan wdrożenia, okreÅ›lajÄ…cy m.in. sposób przenoszenia danych miÄ™dzy starym a nowym systemem, kolejność wÅ‚Ä…czania do eksploatacji modułów nowego systemu i wyÅ‚Ä…czania starego (może obydwa systemy bÄ™dÄ… przez pewien czas pracować równolegle) oraz liczbÄ™ pracowników niezbÄ™dnych na poszczególnych stanowiskach pracy. 4. Techniki projektowania aplikacji Model analityczny, w skÅ‚ad którego wchodzi hierarchia diagramów przepÅ‚ywu danych i diagram encji, opisuje reguÅ‚y przetwarzania oraz zakres danych niezbÄ™dnych do realizacji tego przetwarzania. JednoczeÅ›nie model ten nie zawiera szczegółów technologii realizacyjnej ani nie okreÅ›la budowy programu. Te wÅ‚aÅ›nie elementy sÄ… dodawane podczas budowania modelu projektowego. 38 PierwszÄ… decyzjÄ…, jakÄ… musi podjąć projektant, jest podziaÅ‚ caÅ‚ego systemu na odrÄ™bne programy (aplikacje), wykonywane niezależnie - i być może równolegle z pozostaÅ‚ymi programami. Z punktu widzenia użytkownika program może odpowiadać funkcji w głównym menu systemu. Na poziomie wielozadaniowego systemu operacyjnego program może być odrÄ™bnym procesem wykonywanym równolegle z innymi procesami. Na przykÅ‚ad, w systemie wspomagajÄ…cym pracÄ™ przedsiÄ™biorstwa jednym programem może być funkcja realizacji zamówienia, a drugim - funkcja przyjmowania dostawy towarów do magazynu. Obie funkcje nie sÄ… caÅ‚kiem niezależne, gdyż współdzielÄ… zbiór (encjÄ™) opisujÄ…cy stan magazynu. MogÄ… jednak być wykonywane niezależnie przez dwóch lub wiÄ™cej użytkowników (kilku pracowników może w tym samym czasie realizować różne zamówienia). Innym przykÅ‚adem może być system pokÅ‚adowy samolotu, w którym jeden program może obliczać pozycjÄ™ i prÄ™dkość samolotu na podstawie wskazaÅ„ inercyjnego systemu pomiarowego (żyroskopu), drugi okresowo korygować poÅ‚ożenie na podstawie wskazaÅ„ GPS, a trzeci - wyÅ›wietlać obliczone wartoÅ›ci dla pilota. Wszystkie te programy dziaÅ‚ajÄ… równolegle i permanentnie, współdziaÅ‚ajÄ…c z sobÄ… za pomocÄ… usÅ‚ug udostÄ™pnianych przez system operacyjny komputera pokÅ‚adowego. OkreÅ›lenie granic programów polega na logicznym pogrupowaniu funkcji pokazanych na diagramie przepÅ‚ywu danych. Kryteria, jakie można zastosować podczas tej czynnoÅ›ci, Å‚atwiej podać, niż stosować w praktyce: ·ð Å‚Ä…czyć razem funkcje powiÄ…zane przepÅ‚ywami bezpoÅ›rednimi - wykonanie jednej z tych funkcji niejako wymusza wykonanie drugiej; powstajÄ…cy program stanie siÄ™ dla użytkownika narzÄ™dziem umożliwiajÄ…cym Å‚atwÄ… realizacjÄ™ obu zadaÅ„; ·ð Å‚Ä…czyć razem funkcje siÄ™gajÄ…ce do Å›ciÅ›le powiÄ…zanych encji - jest wysoce prawdopodobne, że modyfikacja jednej encji bÄ™dzie wymagaÅ‚a jednoczesnej zmiany drugiej; ·ð Å‚Ä…czyć razem funkcje wykonywane w tym samym miejscu i czasie - zapewne bÄ™dzie je wykonywaÅ‚ ten sam użytkownik. StosujÄ…c te reguÅ‚y do przykÅ‚adu pokazanego na rys. 18, można wyodrÄ™bnić trzy programy: przyjmowanie zamówieÅ„, realizacja zamówienia i przyjÄ™cie nowej dostawy. 39 Programy te mogÄ… stać siÄ™ niezależnymi aplikacjami, wywoÅ‚ywanymi oddzielnie przez różnych pracowników przedsiÄ™biorstwa, albo mogÄ… być zintegrowane w jednej aplikacji, w której stanÄ… siÄ™ funkcjami dostÄ™pnymi w głównym menu aplikacji. Po zdefiniowaniu granic programów kolejnym krokiem jest okreÅ›lenie sposobu budowy każdego programu i zaprojektowanie bazy danych. DziaÅ‚ania te wymagajÄ… użycia różnych technologii implementacyjnych i sÄ… czÄ™sto wykonywane przez różnych ludzi. Trzeba też zaprojektować interfejs użytkownika, obejmujÄ…cy raporty i formularze ekranowe. DziaÅ‚ania te, zwÅ‚aszcza implementacja bazy danych i interfejsu użytkownika, sÄ… bardzo silnie wspierane przez dostÄ™pne narzÄ™dzia wspomagajÄ…ce. 4.1. Projektowanie struktury programu Zaprojektowanie programu wymaga wskazania podstawowych modułów tego programu (podprogramów, funkcji, struktur danych), okreÅ›lenia sposobu współpracy każdego moduÅ‚u z innymi moduÅ‚ami, zbiorami danych i urzÄ…dzeniami oraz zdefiniowania algorytmów dziaÅ‚ania wszystkich modułów. Punktem wyjÅ›cia tego etapu budowy oprogramowania sÄ… diagramy przepÅ‚ywu danych, pokazujÄ…ce podstawowe funkcje do wykonania i wystÄ™pujÄ…ce miÄ™dzy nimi zależnoÅ›ci, oraz diagramy encji, okreÅ›lajÄ…ce strukturÄ™ danych trwaÅ‚ych. Wynikiem powinien być schemat struktury programu oraz algorytmiczne specyfikacje pokazanych na schemacie podprogramów. Oczywistym kryterium poprawnoÅ›ci projektu jest wierne odwzorowanie caÅ‚oÅ›ci przetwarzania, przedstawionego w modelu analitycznym, w strukturze programu. Dobrym sposobem zapewnienia zgodnoÅ›ci modeli jest budowanie schematu struktury przez stopniowe przeksztaÅ‚canie diagramu przepÅ‚ywu danych tak, aby możliwe byÅ‚o wskazanie odpowiadajÄ…cych sobie elementów obydwu modeli. Jedna z najczęściej stosowanych metod tego przeksztaÅ‚cania polega na hierarchicznym budowaniu kolejnych piÄ™ter schematu struktury, poczynajÄ…c od programu głównego, poprzez bezpoÅ›rednio wywoÅ‚ywane podprogramy, aż do podprogramów i zbiorów znajdujÄ…cych siÄ™ na najniższym poziomie hierarchii wywoÅ‚aÅ„. Procedura przeksztaÅ‚cania zaczyna siÄ™ od wybrania centralnej funkcji diagramu, realizujÄ…cej zasadniczÄ… część przetwarzania aplikacji i poÅ‚ożonej zazwyczaj w centralnym miejscu diagramu. Wybór tej funkcji jest dość subiektywny i zależy od punktu widzenia projektanta. W nastÄ™pnym kroku powstaje górna część schematu struktury, zÅ‚ożona z 40 programu głównego aplikacji oraz podprogramów odpowiadajÄ…cych kolejno: przepÅ‚ywom doprowadzajÄ…cym dane wejÅ›ciowe do funkcji centralnej, samej funkcji centralnej i przepÅ‚ywom wyprowadzajÄ…cym wyniki wykonania funkcji centralnej. PrzeÅ›ledzmy ten proces na przykÅ‚adzie aplikacji przyjÄ™cia dostawy, pokazanej na rys. 21. Centralne miejsce diagramu zajmuje funkcja Sprawdzenie pozycji dostawy, która przetwarza opisy kolejnych Pozycji dostawy dostarczane z czytnika kodu kreskowego przez funkcjÄ™ Rozpoznanie tekstu i przekazuje opisy Pozycji przyjÄ™tych do funkcji Aktualizacja stanu magazynu. PozostaÅ‚e dziaÅ‚ania, polegajÄ…ce na odczytaniu zamówienia z magazynu ZamówieÅ„ zaopatrzeniowych i zatwierdzeniu przyjÄ™cia pozycji przez pracownika na Terminalu magazynu, można uznać za wewnÄ™trzne operacje funkcji centralnej. W ten sposób powstaje górne piÄ™tro schematu struktury programu, zawierajÄ…ce podprogramy: Odczytanie pozycji dostawy, Sprawdzenie pozycji dostawy i ObsÅ‚uga pozycji przyjÄ™tej (rys. 22). Dodatkowa strzaÅ‚ka, obejmujÄ…ca na rysunku wywoÅ‚ania tych trzech podprogramów, symbolizuje wielokrotne wywoÅ‚ania w pÄ™tli przetwarzania kolejnych pozycji dostawy. Romb u nasady wywoÅ‚ania ostatniej funkcji podkreÅ›la warunkowość tego wywoÅ‚ania, dokonywanego nie dla wszystkich pozycji dostawy, a jedynie dla pozycji przyjÄ™tych. Czwarta funkcja diagramu przepÅ‚ywu danych, tzn. Drukowanie dokumentu PZ, nie jest bezpoÅ›rednio zwiÄ…zana z wykonaniem funkcji centralnej. Funkcja ta przetwarza zbiór wyników powstaÅ‚y po sprawdzeniu wszystkich pozycji dostawy - jest wiÄ™c wykonywana w innym momencie i w innym rytmie czasowym aniżeli funkcja centralna. W tej sytuacji funkcja ta może być wyodrÄ™bniona jako oddzielna aplikacja lub doÅ‚Ä…czona jako dodatkowy podprogram wywoÅ‚ywany z menu moduÅ‚u PrzyjÄ™cia dostawy. W kolejnych krokach procedury przeksztaÅ‚cania diagramu przepÅ‚ywu danych w schemat struktury programu powstajÄ… niższe warstwy schematu. Operacje uznane za wewnÄ™trzne w funkcji centralnej stajÄ… siÄ™ podprogramami wywoÅ‚ywanymi przez tÄ™ funkcjÄ™. W ten sposób na rys. 22 pojawiajÄ… siÄ™ podprogramy: Znalezienie zamówienia, Potwierdzenie pozycji i Akceptacja pozycji. Funkcje dostarczajÄ…ce przepÅ‚ywy do funkcji centralnej, takie jak Rozpoznanie tekstu na rys. 21, sÄ… przeksztaÅ‚cane na podprogramy niższej warstwy. Funkcja i jej 41 przepÅ‚ywy wejÅ›ciowe stajÄ… siÄ™ podprogramami wywoÅ‚ywanymi przez podprogram odpowiadajÄ…cy w górnej warstwie schematu przepÅ‚ywowi wejÅ›ciowemu funkcji centralnej. W ten sposób na rys. 22 pojawiajÄ… siÄ™ podprogramy: Odczyt kodu kreskowego i Rozpoznanie tekstu. Gdyby na diagramie przepÅ‚ywu danych istniaÅ‚y dalsze funkcje dostarczajÄ…ce przepÅ‚ywy do funkcji Rozpoznanie tekstu, to zostaÅ‚yby przeksztaÅ‚cone na kolejnÄ…, jeszcze niższÄ… warstwÄ™. Rysunek 3.22. Schemat struktury moduÅ‚u PrzyjÄ™cie dostawy W analogiczny sposób sÄ… przeksztaÅ‚cane funkcje odbierajÄ…ce wyniki funkcji centralnej, takie jak Aktualizacja stanu magazynu na rys. 21. Funkcje te oraz ich przepÅ‚ywy wyjÅ›ciowe stajÄ… siÄ™ podprogramami wywoÅ‚ywanymi przez podprogramy odpowiadajÄ…ce w górnej warstwie schematu przepÅ‚ywom wyjÅ›ciowym funkcji centralnej. W ten sposób na rys. 22 powstaÅ‚y podprogramy Aktualizacja magazynu i Zapis pozycji przyjÄ™tej. Schemat struktury dokÅ‚adnie przedstawia budowÄ™ programu, pokazujÄ…c wszystkie zasadnicze podprogramy, hierarchiÄ™ wywoÅ‚aÅ„ wraz z argumentami przekazywanymi podczas wywoÅ‚ania oraz wspólne struktury danych, takie jak Pozycje przyjÄ™te na rys. 22. BrakujÄ…cym elementem projektu sÄ… algorytmy przetwarzania, których jednak nie trzeba wymyÅ›lać od nowa, lecz które sÄ… niemal bez zmian przejmowane z minispecyfikacji procesów diagramu przepÅ‚ywu danych. Przeniesienie specyfikacji 42 algorytmów dziaÅ‚ania miÄ™dzy obydwoma modelami wydatnie pomaga w zapewnieniu zgodnoÅ›ci projektu z wynikami analizy. DrugÄ… zaletÄ… sformalizowanej procedury przeksztaÅ‚cania diagramu przepÅ‚ywu danych w schemat struktury jest możliwość Å‚atwej weryfikacji kompletnoÅ›ci projektu. W tym celu należy zestawić tabelÄ™, której wiersze zawierajÄ… w pierwszej kolumnie elementy diagramu przepÅ‚ywu danych, tzn. funkcje, magazyny i przepÅ‚ywy, a w drugiej - realizujÄ…ce te elementy podprogramy, zbiory i urzÄ…dzenia ze schematu struktury. PrzykÅ‚ad takiego odwzorowania jest pokazany w tab. 3.2. Niemożliwość wskazania realizacji jakichkolwiek elementów modelu analitycznego Å›wiadczy o niekompletnoÅ›ci projektu. Tabela 2. Tabela powiÄ…zaÅ„ diagramu PrzyjÄ™cie dostawy (rys. 21) ze schematem struktury programu (rys. 22) Lp- Diagram przepÅ‚ywu danych Schemat struktury 1 Funkcja - Rozpoznanie tekstu Podprogram - Rozpoznanie tekstu 2 Funkcja - Sprawdzenie pozycji Podprogram - Sprawdzenie pozycji dostawy dostawy 3 Funkcja - Aktualizacja stanu Podprogram - Aktualizacja magazynu magazynu 4 Funkcja - Drukowanie dokumentu PZ Podprogram - Drukowanie dokumentu PZ 5 PrzepÅ‚yw - Kod kreskowy Podprogram - Odczyt kodu kreskowego 6 PrzepÅ‚yw - Zamówienie + pozycja Podprogram - Akceptacja pozycji dostawy 7 PrzepÅ‚yw - Decyzja Podprogram - Akceptacja pozycji 8 Magazyn - Zamówienia Tabela - Zamówienia zaopatrzeniowe zaopatrzeniowe W wielu przypadkach przydatna jest również tabela pokazujÄ…ca odwzorowanie odwrotne, tzn. przyporzÄ…dkowujÄ…ca elementom schematu struktury realizowane przez nie elementy diagramu przepÅ‚ywu danych. Zawartość takiej tabeli wskazuje zródÅ‚a 43 pochodzenia wszystkich elementów projektu i dowodzi, że projekt realizuje tylko te zachowania, które zostaÅ‚y zatwierdzone podczas analizy. Posiadanie obydwu rodzajów tabel może znaczÄ…co uÅ‚atwić przyszÅ‚Ä… konserwacjÄ™ programu. Po zmianie wymagaÅ„ użytkownika można Å‚atwo wskazać elementy diagramu przepÅ‚ywu danych opisujÄ…ce tÄ™ część wymagaÅ„, których zmiana dotyczy, a nastÄ™pnie zlokalizować moduÅ‚y programu odpowiadajÄ…ce za ich realizacjÄ™. Co wiÄ™cej, po okreÅ›leniu obszaru zmian w kodzie można znalezć wszystkie elementy diagramu przepÅ‚ywu danych, które ten fragment programu realizuje, i w ten sposób ocenić potencjalny wpÅ‚yw zmian na inne zachowania aplikacji. 4.2. Projektowanie bazy danych Zaprojektowanie bazy danych wymaga zdefiniowania tabel przechowujÄ…cych encje modelu danych, okreÅ›lenia dla każdej tabeli zestawu indeksów gwarantujÄ…cych szybkie wyszukiwanie potrzebnych danych w tabeli oraz wskazania sposobu rozmieszczenia tabel i indeksów w plikach systemu operacyjnego. Na ogół konieczne jest też opracowanie planów archiwizacji i odtwarzania danych po awarii. Punktem wyjÅ›cia tego etapu projektu sÄ… diagramy encji, okreÅ›lajÄ…ce strukturÄ™ danych i wystÄ™pujÄ…ce miÄ™dzy nimi zależnoÅ›ci, oraz wymagania użytkownika dotyczÄ…ce wydajnoÅ›ci przetwarzania i niezawodnoÅ›ci przechowywania danych. Wynikiem jest dokumentacja umożliwiajÄ…ca wcielenie projektu w życie - tzn. utworzenie potrzebnych plików oraz dostarczenie elementarnych operacji zapisania, odczytania i wyszukania danych w tabeli przez dostÄ™pne na rynku systemy relacyjnych baz danych (Relational Data-base Management System - RDBMS), takie jak Oracle, MS SQL, DB2, MySQL lub podobne. Operacja przeksztaÅ‚cenia diagramu encji w projekt tabel jest na ogół bezpoÅ›rednia: każda encja staje siÄ™ tabelÄ…, której wiersze przechowujÄ… dane opisujÄ…ce pojedynczy obiekt encji, a kolumny odpowiadajÄ… atrybutom encji. PrzykÅ‚ad odwzorowania encji pokazanych na rys. 19 na tabele ilustruje rys. 23. Kolumny tabel wyróżnione pogrubionym drukiem zawierajÄ… klucze wÅ‚asne, jednoznacznie identyfikujÄ…ce poszczególne obiekty encji, a kolumny wyróżnione kursywÄ… zawierajÄ… klucze obce, wskazujÄ…ce powiÄ…zane obiekty innej encji. 44 Rysunek 3.23. Schemat tabel odpowiadajÄ…cych diagramowi encji pokazanemu na rys. 19. Niektóre konstrukcje wystÄ™pujÄ…ce na diagramach encji Å‚amiÄ… jednak zasadÄ™ bezpoÅ›rednioÅ›ci przeksztaÅ‚cenia i wymagajÄ… wiÄ™kszego namysÅ‚u. PrzykÅ‚adem może być odwzorowanie relacji uogólnienia pokazanej na rys. 7. PrzeksztaÅ‚cenie każdej encji modelu w odrÄ™bnÄ… tabelÄ™ bazy danych prowadzi do sytuacji, w której znalezienie wszystkich atrybutów jakiegoÅ› towaru, np. opony, wymaga przeszukania dwóch tabel: Towar i Opona, co zajmuje znacznie wiÄ™cej czasu niż przeszukanie jednej tabeli. Innym rozwiÄ…zaniem jest odwzorowanie wszystkich encji w jednÄ… tabelÄ™, zawierajÄ…cÄ… kolumny dla atrybutów wszystkich encji - w tym przykÅ‚adzie byÅ‚yby to kolumny: nazwa, producent, cena, rozmiar, waga_dziecka, opis, kolor. UjemnÄ… stronÄ… takiego odwzorowania jest jednak nieekonomiczne wykorzystanie pamiÄ™ci, gdyż część każdego wiersza tabeli pozostaÅ‚aby niewykorzystana (np. waga_dziecka w wierszu opisujÄ…cym oponÄ™). Jeszcze innym wariantem jest zaniechanie wyodrÄ™bniania atrybutów wspólnych i wprowadzenie odrÄ™bnych tabel dla każdego rodzaju towaru. To rozwiÄ…zanie jest pozbawione wad dwóch poprzednich, jednak utrzymanie możliwoÅ›ci jednolitego traktowania wszystkich towarów wymaga utrzymania identycznego ukÅ‚adu kolumn odpowiadajÄ…cych wspólnym atrybutom we wszystkich tabelach, co może utrudnić pózniejsze modyfikacje systemu. Nie ma jednoznacznie najlepszego rozwiÄ…zania przedstawionego problemu. Ocena zależy od charakteru aplikacji i postawionych jej wymagaÅ„, liczby uogólnionych encji 45 oraz liczby atrybutów wspólnych i atrybutów specyficznych. Wybór wariantu jest decyzjÄ… projektowÄ…, która musi być podjÄ™ta przez projektanta na podstawie jego wiedzy i doÅ›wiadczenia. W praktyce wytwarzania oprogramowania przeksztaÅ‚cenie diagramu encji w schemat tabel bazy danych jest zwykle wykonywane automatycznie przez odpowiednie narzÄ™dzia CASE. W przypadkach wÄ…tpliwych, takich jak opisany w poprzednim akapicie przypadek relacji uogólnienia, projektant ma na ogół możliwość wyboru odpowiedniego wariantu przeksztaÅ‚cenia. Wraz z utworzeniem tabel narzÄ™dzie wspomagajÄ…ce tworzy automatycznie potrzebne indeksy - przeważnie potrzebne sÄ… co najmniej indeksy dla każdego klucza wÅ‚asnego tabeli i dla każdego klucza obcego. W razie potrzeby specyficznego przeszukiwania tabel projektant może utworzyć indeksy dodatkowe, których obecność przyspieszy najczęściej wystÄ™pujÄ…ce operacje. Projektowanie tabel i indeksów, nazywane czÄ™sto projektowaniem logicznym, jest zwykle pierwszym etapem projektu bazy danych. Drugi etap, nazywany projektowaniem implementacji fizycznej, obejmuje rozmieszczenie tabel na dyskach i opracowanie planów archiwizacji i odtwarzania po awarii. Zasadniczym elementem projektu implementacji fizycznej jest okreÅ›lenie przestrzeni tabel. W najprostszym ujÄ™ciu pojedyncza przestrzeÅ„ tabel obejmuje obszar jednego lub grupy fizycznych dysków systemu. Tabele przypisane do tej samej przestrzeni tabel bÄ™dÄ… wiÄ™c przechowywane w plikach znajdujÄ…cych siÄ™ na tym samym dysku, a tabele przypisane do różnych przestrzeni tabel bÄ™dÄ… przechowywane w plikach znajdujÄ…cych siÄ™ na różnych dyskach systemu. Konsekwencje wyboru przestrzeni tabel sÄ… wielorakie. ·ð Różne dyski systemu mogÄ… pracować równolegle - oznacza to, że operacje dostÄ™pu do tabel przypisanych do różnych przestrzeni mogÄ… przebiegać równoczeÅ›nie, co może znacznie poprawić wydajność. ·ð Awarie sprzÄ™tu dotykajÄ… na ogół pojedynczych urzÄ…dzeÅ„ - ewentualna awaria dysku wyÅ‚Ä…czy wiÄ™c z użycia tylko tabele przypisane do tej wÅ‚aÅ›nie przestrzeni. Odpowiednie przypisane przestrzeni tabel może pozwolić na utrzymanie pracy 46 części aplikacji niekorzystajÄ…cej z utraconych tabel, pomimo wystÄ…pienia awarii. ·ð Przestrzenie tabel mogÄ… być zwykle niezależnie doÅ‚Ä…czane i wyÅ‚Ä…czane z systemu - dziÄ™ki temu operacje archiwizacji i konserwacji mogÄ… być wykonywane bez wyÅ‚Ä…czania z użytku caÅ‚oÅ›ci pracujÄ…cej aplikacji. Zaprojektowanie dużej i wydajnej bazy danych jest zadaniem skomplikowanym. DokÅ‚adniejszy opis naszkicowanych tu zagadnieÅ„ można znalezć w podrÄ™cznikach projektowania baz danych. 4.3. Projektowanie interfejsu użytkownika WiÄ™kszość programów jest tworzona z myÅ›lÄ… o bezpoÅ›rednim wykorzystaniu przez czÅ‚owieka w pracy, przy zaÅ‚atwianiu spraw finansowych lub urzÄ™dowych, albo po prostu dla rozrywki. Dlatego znacznÄ… część każdego oprogramowania stanowi interfejs użytkownika, czyli ta jego część, która odpowiada za komunikacjÄ™ z czÅ‚owiekiem. We współczesnych systemach komputerowych używany interfejs ma najczęściej postać graficznÄ… (Graphical User Interface - GUI) i obejmuje formularze ekranowe, za poÅ›rednictwem których użytkownik wprowadza dane i odczytuje wyniki, okienka dialogowe oraz raporty - wyÅ›wietlane, drukowane na papierze lub wysyÅ‚ane do innych systemów w postaci plików tekstowych. Zaprojektowanie interfejsu użytkownika wymaga okreÅ›lenia dwóch różnych elementów. Pierwszym jest sekwencja komunikacji, czyli treść i kolejność wyÅ›wietlania nastÄ™pujÄ…cych po sobie ekranów i okienek dialogowych. Drugim jest format danych oraz ksztaÅ‚t graficzny wszystkich widocznych dla czÅ‚owieka elementów interfejsu. SekwencjÄ™ komunikacji można wyrazić sÅ‚ownie, np. w postaci scenariusza opisujÄ…cego punkt po punkcie wszystkie kolejno wyÅ›wietlane ekrany. Dla każdego ekranu trzeba zdefiniować jego treść oraz wyliczyć zdarzenia powodujÄ…ce przejÅ›cie do nastÄ™pnych ekranów. Takim zdarzeniem jest zazwyczaj naciÅ›niÄ™cie klawisza Enter, naciÅ›niÄ™cie przycisku wyboru lub wskazanie kursorem i klikniÄ™cie kreÅ›lonego elementu ekranu. Na przykÅ‚ad, podczas wyÅ›wietlania na ekranie listy zamówieÅ„, jakie nadeszÅ‚y od rana do sklepu sprzedaży wysyÅ‚kowej, klikniÄ™cie numeru zamówienia w jednym z wierszy może prowadzić do nowego ekranu pokazujÄ…cego to wybrane 47 zamówienie. Zbiór scenariuszy można zorganizować wokół typowych procedur biznesowych wykonywanych na ogół przez użytkowników. Alternatywnym sposobem opisania sekwencji komunikacji może być narysowanie diagramu stanów, na którym każdy stan okreÅ›la treść ekranu, a każde przejÅ›cie odpowiada zmianie treÅ›ci wyÅ›wietlonej na ekranie. GraficznÄ… formÄ™ elementów interfejsu można przedstawić w postaci makiety (prototypu). W najprostszym przypadku może to być rysunek symulujÄ…cy zrzuty z ekranu, w bardziej zÅ‚ożonym - dziaÅ‚ajÄ…cy prototyp interfejsu użytkownika. DziaÅ‚ajÄ…cy prototyp jest oczywiÅ›cie rozwiÄ…zaniem lepszym, które może pokazać nie tylko wyglÄ…d interfejsu, ale także sekwencjÄ™ komunikacji. Opracowanie prototypu interfejsu użytkownika jest przykÅ‚adem zastosowania techniki prototypowania. Raporty i moduÅ‚y raportujÄ…ce TypowÄ… częściÄ… niemal każdej aplikacji biznesowej jest moduÅ‚ tworzÄ…cy raporty, których treść opisuje wyniki już wykonanego przetwarzania. Dane wchodzÄ…ce w skÅ‚ad raportu sÄ… wybierane z bazy danych i po sformatowaniu prezentowane użytkownikowi w czytelnej postaci na ekranie, drukowane w postaci trwaÅ‚ego dokumentu papierowego lub udostÄ™pniane na portalu informacyjnym w Internecie. Przeznaczeniem modułów raportujÄ…cych jest wyÅ‚Ä…cznie informowanie użytkownika - zawartość bazy danych nie ulega w czasie tworzenia raportu żadnej zmianie. PrzykÅ‚adem moduÅ‚u raportujÄ…cego w aplikacji obsÅ‚ugujÄ…cej wysyÅ‚kowÄ… sprzedaż towarów może być podprogram Drukowanie dokumentu PZ na rys. 22. Treść tego dokumentu jest typowym raportem, potwierdzajÄ…cym dostawÄ™ i wyliczajÄ…cym przyjÄ™te do magazynu towary. Ani treść zamówieÅ„, ani stan magazynu nie ulegajÄ… podczas tworzenia dokumentu PZ żadnym zmianom. Postać dokumentu PZ, pokazana na rys. 24, jest przykÅ‚adem raportu tabelarycznego, którego kolejne wiersze odpowiadajÄ… zawartoÅ›ci kolejnych wierszy wybranych z jednej lub kilku tabel bazy danych. Oprócz wartoÅ›ci odczytanych z bazy danych raport zawiera staÅ‚y nagłówek, napisany przez użytkownika podczas definiowania raportu, oraz wartość ogólnÄ… obliczonÄ… podczas 48 generowania raportu zgodnie z algorytmem okreÅ›lonym podczas definiowania raportu. Rysunek 24. PrzykÅ‚ad raportu tabelarycznego InnÄ…, czÄ™sto spotykanÄ… postaciÄ… raportu jest raport macierzowy, w którym zarówno wiersze, jak i kolumny odpowiadajÄ… różnym kategoriom obiektów, a komórki opisujÄ… relacje Å‚Ä…czÄ…ce te obiekty. PrzykÅ‚adem takiego raportu mógÅ‚by być raport sprzedaży, którego kratki pokazujÄ… sprzedaż różnych rodzajów opon (kolumny) w różnych województwach kraju (wiersze). Formularze ekranowe PrzeważajÄ…ca wiÄ™kszość aplikacji biznesowych umożliwia interaktywnÄ… komunikacjÄ™ z użytkownikiem, który wprowadza do systemu dane (np. zamówienia, zapytania stan pozycji magazynowych) i na bieżąco otrzymuje odpowiedzi systemu (np. okreÅ›lenie dostÄ™pnoÅ›ci towaru). Zasadniczym narzÄ™dziem takiej komunikacji sÄ… formularze ekranowe zawierajÄ…ce pola danych do wprowadzenia, przyciski wyboru, pola danych pokazujÄ…ce obliczone wyniki, staÅ‚e objaÅ›nienia itd. Specyfikacja formularzy obejmuje zdefiniowanie pól danych i innych elementów, wskazanie rozmieszczenia tych elementów na powierzchni ekranu, okreÅ›lenie menu operacji dostÄ™pnych w formularzu i zdefiniowanie reguÅ‚ nawigacji miÄ™dzy ekranami. PrzykÅ‚adem prostego dialogu z użytkownikiem może być podprogram Akceptacja pozycji na rys. 22, który przyjmuje decyzjÄ™ użytkownika dotyczÄ…cÄ… przyjÄ™cia lub odrzucenia pozycji dostawy. W tym celu podprogram wyÅ›wietli formularz zawierajÄ…cy: pole danych zamówienia, wyszukanego wczeÅ›niej w tabeli Zamówienia 49 zaopatrzeniowe, pole danych pozycji dostawy, która zostaÅ‚a zeskanowana czytnikiem kodu kreskowego, oraz pole wyboru decyzji o akceptacji lub odrzuceniu. Wiersz zamówienia odpowiadajÄ…cy przyjmowanej pozycji zostanie zapewne podÅ›wietlony. 4.4. Technologie wspomagajÄ…ce Metody strukturalne dostarczajÄ… narzÄ™dzi koncepcyjnych (modeli) umożliwiajÄ…cych analizÄ™ problemu oraz przeksztaÅ‚cenie modelu analitycznego w model projektowy, pokazujÄ…cy budowÄ™ programu i bazy danych. Metody sÄ… wspierane przez technologie, które dostarczajÄ… narzÄ™dzi fizycznych (oprogramowanie wspomagajÄ…ce) umożliwiajÄ…cych automatyzacjÄ™ znacznej części prac projektowych i implementacyjnych. Prace analityczne, które wymagajÄ… twórczego wysiÅ‚ku czÅ‚owieka, sÄ… znacznie mniej podatne na automatyzacjÄ™. Podstawowe technologie implementacyjne obejmujÄ… relacyjne bazy danych (RDBMS), systemy wspomagajÄ…ce projektowanie (CASE) oraz jÄ™zyki czwartej generacji (4GL). NoÅ›nikiem automatyzacji projektowania sÄ… jÄ™zyki czwartej generacji, które można okreÅ›lić jako jÄ™zyki problemowe, zorientowane na niezwykle wydajne programowanie komercyjnych aplikacji biznesowych. CharakterystycznÄ… cechÄ… tego obszaru zastosowaÅ„ jest konieczność gromadzenia i manipulowania dużymi zbiorami danych, przy jednoczesnej prostocie wymaganych obliczeÅ„. Podstawowe zadania aplikacji ograniczajÄ… siÄ™ tu czÄ™sto do komunikacji z użytkownikiem, zapisywania i wyszukiwania potrzebnych danych oraz przygotowania wymaganych przez użytkownika raportów. Powróćmy raz jeszcze do przykÅ‚adu aplikacji przyjÄ™cia dostawy, pokazanej na rys. 24. Przestawione tam rozwiÄ…zanie, w którym interfejs użytkownika reprezentuje podprogram Akceptacja pozycji, jest mocno uproszczone. Implementacja interfejsu użytkownika jest zÅ‚ożona i rzadko udaje siÄ™ skupić te funkcje w jednym podprogramie. W tym przykÅ‚adzie w skÅ‚ad interfejsu użytkownika wejdzie zapewne dosyć dużo ekranów obsÅ‚ugujÄ…cych sytuacje wyjÄ…tkowe, np. takie, w których nie uda siÄ™ rozpoznać etykiety towaru i konieczne bÄ™dzie wprowadzenie tych danych rÄ™cznie (ekran wprowadzania towaru), lub takie, w których okaże siÄ™, że brakuje zamówienia, gdyż towary dostarczono na zamówienie telefoniczne (ekran edycji zamówienia). W rezultacie struktura aplikacji zostanie zdominowana przez ukÅ‚ad interfejsu 50 użytkownika, z instrukcjami siÄ™gajÄ…cymi do tabel bazy danych lub modyfikujÄ…cymi zawartość tych tabel, wplecionymi wprost w obsÅ‚ugÄ™ poszczególnych pól danych i przycisków wyboru. Program aplikacji biznesowej, realizujÄ…cy zarówno funkcje interfejsu użytkownika, jak i dostÄ™pu do danych, można zaprogramować rÄ™cznie w wybranym jÄ™zyku programowania, np. C. AlternatywÄ… rÄ™cznego budowania programu jest siÄ™gniÄ™cie do technologii wspomagajÄ…cych projektowanie i wykorzystanie narzÄ™dzi automatycznego generowania aplikacji, dostarczonych przez producenta bazy danych lub innego, niezależnego wytwórcÄ™ oprogramowania. Drugie rozwiÄ…zanie jest szybsze i mniej narażone na bÅ‚Ä™dy. Wygenerowanie aplikacji wymaga zdefiniowania interfejsu (formularze i raporty), wskazania tabel bazy danych, z lub do których majÄ… być przesÅ‚ane wartoÅ›ci, podania kryteriów wybierania danych oraz okreÅ›lenia algorytmów obliczania wartoÅ›ci pochodnych. Program w jÄ™zyku czwartej generacji zostanie wygenerowany automatycznie, a jego interpretator (run-time module) może być wÅ‚Ä…czony w skÅ‚ad aplikacji jako jeden z jej podprogramów. Technologia jÄ™zyków 4GL jest w peÅ‚ni dojrzaÅ‚a. Generatory formularzy i generatory raportów, wchodzÄ…ce w skÅ‚ad systemów wspomagajÄ…cych CASE, umożliwiajÄ… definiowanie różnych wariantów interfejsu, różnych typów dostÄ™pu do baz danych oraz prostych obliczeÅ„. Z kolei narzÄ™dzia interpretujÄ…ce programy 4GL mogÄ… nie tylko współpracować z różnymi bazami danych, ale także oferujÄ… możliwość zdalnego dostÄ™pu wielu stacji roboczych użytkownika do odlegÅ‚ych baz danych poprzez Å‚Ä…cza sieciowe. 5. Uwagi bibliograficzne Dobry opis dojrzaÅ‚ego już stanu rozwoju metodyki strukturalnej podajÄ… monografie [49, 45]. PrzeglÄ…d konkretnych metod strukturalnych, pokazujÄ…cy zarówno ich cechy wspólne, jak i dzielÄ…ce je różnice, można znalezć w książce [39]. 51 Metodyka strukturalna. Metodyka strukturalna opiera siÄ™ na zasadzie modelowania i systematycznego dekomponowania problemu w dwóch wymiarach: w dziedzinie funkcji (procesów przetwarzania) oraz w dziedzinie danych. W ramach tej metodyki powstaÅ‚o szereg metod przypisujÄ…cych różne znaczenie dziaÅ‚aniom podejmowanym w obu tych dziedzinach. Klasyczne metody strukturalne, których rozwój zapoczÄ…tkowaÅ‚y prace Yourdona i DeMarco [50, 40, 46], przypisywaÅ‚y wiÄ™ksze znaczenie dekompozycji i modelowaniu w dziedzinie funkcji. Odmienne podejÅ›cie przyjmowaÅ‚y rozwijajÄ…ce siÄ™ równolegle metody uznajÄ…ce strukturÄ™ danych za najbardziej stabilny element problemu, do którego powinna zostać dopasowana struktura powstajÄ…cego programu [48, 44]. W ten nurt wpisywaÅ‚y siÄ™ też prace nad modelami danych [211, 210], których trwaÅ‚ym wynikiem koncepcyjnym byÅ‚ diagram encji oraz rozwój relacyjnych baz danych, które na dÅ‚ugie lata okreÅ›liÅ‚y sposób przechowywania dużych iloÅ›ci danych w systemach komputerowych. Wraz z rozwojem metod powstawaÅ‚y komputerowe narzÄ™dzia wspomagajÄ…ce, oferujÄ…ce możliwość tworzenia diagramów i sprawdzania ich spójnoÅ›ci, prowadzenia sÅ‚ownika projektu, a z czasem także generowania prototypów. Rozwój tych narzÄ™dzi oraz jÄ™zyków 4GL [14] doprowadziÅ‚ do powstania systemów wspomagajÄ…cych zdolnych do wygenerowania z modelu niemal gotowej aplikacji biznesowej. Ten nurt rozwoju zyskaÅ‚ nieco pózniej nazwÄ™ RAD (Rapid Application Development) i wykroczyÅ‚ daleko poza metodykÄ™ strukturalnÄ…. Metodyka strukturalna dojrzaÅ‚a i poczÄ…wszy od lat dziewięćdziesiÄ…tych XX wieku nie rozwija siÄ™ dalej. Intensywnie rozwijajÄ… siÄ™ natomiast zwiÄ…zane z tÄ… metodykÄ… technologie - systemy relacyjnych baz danych (RDBMS) i narzÄ™dzia wspomagajÄ…ce (CASE). DziÄ™ki temu metodyka strukturalna wciąż utrzymuje dominujÄ…cy udziaÅ‚ w rynku IT. Drugim segmentem rynku, który stanowi domenÄ™ zastosowania metod strukturalnych, jest wytwarzanie systemów wbudowanych. Metody strukturalne. Rozwojowi koncepcji zwiÄ…zanych z modelowaniem i projektowaniem oprogramowania towarzyszyÅ‚ wymuszany potrzebami praktycznymi rozwój metod prowadzenia wielkich projektów informatycznych. Na przeciÄ™ciu tych dwóch nurtów rozwojowych powstaÅ‚y kompletne metody projektowe, oferujÄ…ce 52 modele, narzÄ™dzia i techniki zarzÄ…dzania projektami. PrzykÅ‚adami takich metod - stosowanych z powodzeniem do dnia dzisiejszego - mogÄ… być: ·ð klasyczne metody Yourdona [50, 40,49], ·ð metoda SSADM (Structured Systems Analysis and Design Method) [41] opracowana i promowana przez brytyjskie agendy rzÄ…dowe, ·ð metoda CDM (Custom Development Method), znana wczeÅ›niej jako CASE*Method [203], opracowana i promowana przez firmÄ™ Oracle. W Polsce szczególnie popularna jest metoda CDM (Oracle) i jej mutacje, silnie wspierana przez potężne narzÄ™dzia wspomagajÄ…ce oferowane przez dominujÄ…cego w naszym kraju producenta baz danych. Bardzo dobry opis technik analizy i projektowania strukturalnego, stosowanych w tej metodzie, można znalezć w [207]. Relacyjne bazy danych patrz odpowiedni wykÅ‚ad 53