Programmi liigendamine väiksemateks autonoomseteks osadeks - muudab enamasti programmi ülevaatlikumaks - lihtsam on lugeda kümmet 20-realist kui üht 200-realist programmi - kergendab rühmatööd (eri inimesed võivad tegeleda eraldi alam- programmide loomisega, kooskõlastades vaid andmevahetuse) - lihtsustab programmi muutmist ja uuesti transleerimist jne. Programmi liigendamise võimalusi on mitmeid. Vaatleme esialgu variante, kus programm asub endiselt ühes failis, kuid erinevad alamtegevused on jaotatud erinevate alamprogrammide vahel. Alamprogrammide ja peaprogrammi vaheliseks andmevahetuseks kasutatakse parameetreid. Näiteks on ringi pindala arvutava alamprogrammi sisendparameetriks (algandmeteks) ringi raadius, väljundparameetriks (tulemuseks) aga pindala. Pascalis kasutatakse kaht liiki alamprogramme - protseduure ja funktsioone. Mõlemad deklareeritakse (sisuliselt kirjutatakse valmis) programmi alguses peale var- osa. Seega on alamprogramme sisaldava programmi
paralleelselt või tsükliliselt. Siiski otsustas magistritöö autor suurendada skeemide selgust. See lihtsustab valdkonnast ülevaate saamist. Tegevuste integreeritust tuleb eraldi rõhutada. Tegevusahelate loomiseks kasutati MS Project abi. Joonis 1. Esimese taseme tegevuste ahel. 23 Joonis 2. Planeerimise teise ja osaliselt kolmanda taseme alamtegevused. Joonis 3. Teostuse teise taseme alamtegevused. Paralleelsed tegevuste ahelad kirjeldavad seda, et paljud projektijuhtimise protsessid toimuvad samaaegselt. Näiteks ajakavast, kvaliteedist ja eelarvest kinnipidamist kontrollitakse integreeritult. Sõltuvalt projekti eripärast ja konspekti lugeja vajadustest, võib ebavajalikud tegevuste ahelad vahele jätta. Näiteks väiksemate projektide puhul ei värvata alltöö tegijaid. 2.2.3 Andmed moodulite kirjeldamiseks
lahendamisalgoritm eraldi iga osa jaoks ja siis pärast ühendada need algoritmid. Mitme väiksema osa programmeerimine on alati lihtsam kui süsteemi kirjutamine tervikuna. Ka edaspidi on sellise süsteemi täiendamine ja parandamine lihtsam ja sellega ka odavam. Programmeerimise algusaegadel võeti moodulite väljaeraldamisel aluseks tegevused, ülesande lahendamist vaadeldi tegevuste järjendina, millest püüti välja eraldada alamtegevused. Viimaste jaoks oli võimalik koostada omaette lahendamisalgoritm. Väga sageli esinevateks alamülesanneteks on näiteks järjendi elementide summa leidmine, kahe arvu väärtuste vahetamine, lineaarvõrrandisüsteemi lahendamine jms. Selline lähenemisviis on väga hea siis, kui arvuti lahendab peamiselt arvutuslikke ülesandeid, aga osutub raskepäraseks juhul, kui vaja on töödelda mittearvulist infot