Výuka softwarového inženýrství na OAMK Oulu, Finsko Software engineering course at OAMK Oulu, Finland Magdalena Raszková Abstrakt Příspěvek se zabývá koncepcí předmětu Softwarové inženýrství na Oulu University of Applied Sciences (OAMK) ve Finsku, kde autorka absolvovala zahraniční studijní stáž během zimního semestru 2006/2007. Předmět je zařazen jako povinný do II. ročníku studijního programu Informační technologie v podnikání. V příspěvku je podrobně popsána obsahová náplň předmětu, metody výuky a systém hodnocení studenta. Klíčová slova softwarové inženýrství, výuka, e-learning, WebCT, Finsko Abstract The paper is focused on the Software engineering course at Oulu University of Applied Sciences (OAMK) in Finland, where the author took part in the study exchange programme during autumn term 2006/2007. The SWE course is stated as compulsory in the II. year of Degree programme in Business Information Technology. The contents of the course, teaching methods and evaluation system are described more closely in the paper. Key words software engineering, teaching, e-learning, WebCT, Finland Bc. Magdalena Raszková, e-mail: xraszkov@pef.mendelu.cz, Ústav informatiky, Provozně ekonomická fakulta, Mendelova zemědělská a lesnická univerzita v Brně, Zemědělská 1, 613 00 Brno, ČR, tel. +420 545 13 22 37 1
Úvod Předmět Softwarové inženýrství (SWE) je vyučován na Oulu University of Applied Sciences (OAMK) a je dostupný jak pro finské, tak i zahraniční studenty, neboť výukovým jazykem je angličtina. OAMK je jednou z největších univerzit aplikovaných věd ve Finsku s přibližně 8 000 studenty a 700 zaměstnanci. Spadá pod ní sedm fakult, přičemž SWE je vyučováno na Fakultě obchodu a informačního managementu. Předmět je zařazen jako povinný do II. ročníku studijního programu Informační technologie v podnikání. Disponuje dotací 4 výukové hodiny týdně a ohodnocen je 3 ECTS kredity. Semestr je ve Finsku rozdělen na dvě etapy, přičemž rozsah některých předmětů pokrývá pouze jednu etapu (cca 6 výukových týdnů). Předmět SWE je ovšem dvouetapový, tzn. je vyučován po dobu cca 12 týdnů. V předmětu je student seznámen se způsobem vývoje software a obsahem jednotlivých sektorů produkce software. Rovněž je obeznámen s náplní procesu analýzy, návrhu, implementace a testovací fáze vývoje software a získá přehled o obsahu specifikací pro jednotlivé fáze vývoje software. Obsah předmětu Předmět Softwarové inženýrství je zaměřen na následující problematiku: 1. Proces vývoje software 2. Sektory softwarové produkce 3. Modely životního cyklu software 4. Analýza požadavků 5. Fáze návrhu 6. Proces implementace software 7. Testování software 8. Správa a údržba software 9. Podpůrné aktivity softwarového vývoje Největší pozornost je věnována fázi analýzy požadavků, technické specifikaci a návrhu software. V obsahu předmětu nejsou zahrnuty další důležité oblasti produkce software, jako je například programování, projektový management či management kvality, protože jsou náplní dalších samostatných předmětů. 2
Metody výuky Nejen v případě tohoto předmětu se striktně nerozlišuje mezi přednáškou a cvičením, jde spíše o kombinaci obou těchto přístupů. Výuka je rozdělena na tématické bloky a během teoretického výkladu jsou zařazovány ukázky, samostatné i skupinové úkoly a diskuze ve třídě. Tento přístup je podpořen i tím, že předmět celkově studuje cca 20 studentů, což umožňuje uvedený styl výuky. Studijní materiály jsou umístěny v elektronické podobě v systému WebCT, který fakulta používá jako e-learningové prostředí i pro další předměty. V tomto systému vyučující zveřejňuje postupně během semestru i vzorová řešení praktických úkolů (learning tasks), které studenti vypracovávali v hodině či za domácí úkol. Studentům je doporučena další doplňující literatura (Pressman, 2001), která může posloužit pro přípravu na zkoušku. Praktický projekt Významnou součástí celkového hodnocení je závěrečný projekt, který tvoří 50 % z celkového možného bodového zisku studenta. Projekt je zadán v polovině semestru a řešen studenty samostatně či skupinově mimo vlastní výuku, ale samozřejmostí jsou konzultace s vyučujícím v případě potřeby. Náplní projektu je analýza, návrh a implementace webového informačního systému pro půjčovnu aut CarRent Ltd. Požadavky na projekt jsou specifikovány ve dvou úrovních: Základní úroveň Pokud student v projektu splní požadavky z této úrovně, může být ohodnocen známkou 1 (v našem systému hodnocení E) až 4 (v našem systému hodnocení B): Zpracovat specifikační dokumenty, jimiž jsou Specifikace požadavků (analýza), Technická a Modulární specifikace informačního systému pro půjčovnu aut. Rozsah každého specifikačního dokumentu je cca 15 stran. Šablony specifikačních dokumentů jsou předpřipraveny vyučujícím a umístěny v e-learningovém prostředí WebCT, odkud si je studenti mohou stáhnout. Obsah specifikačních dokumentů vychází z požadavků na informační systém, který má zahrnovat následující agendu: Správu vozidel, Správu výpůjček vozidel a Správu zákazníků. 3
Vynikající úroveň Pokud student v projektu splní dokonale požadavky ze základní úrovně a navíc požadavky z úrovně označené jako vynikající, může být ohodnocen známkou 5 (v našem systému hodnocení A): Webové rozhraní pro online výpůjčky aut (technologii si student může volně zvolit, např. PHP, Perl, JAVA, ASP.NET) Systém bonusů. Zákazníkům jsou přiděleny bonusové body za provedené výpůjčky. Na základě počtu bonusových bodů jsou pak zákazníkům nabídnuty výpůjčky zdarma. Bonusový systém by měl být natolik dynamický, aby bylo možné jednoduše provést případné změny pravidel pro udělování bonusů. Nepovinná část projektu Pokročilí studenti mohou dále projekt rozšířit o nepovinnou část, která se ovšem nepromítá do hodnocení. Mohla by snad jen napomoci zlepšit výsledné hodnocení v případě nedostatků v předchozích částech projektu. Zadání nepovinného úkolu zní následovně: Proveďte změnu architektury aplikace tak, aby šlo o aplikaci typu klient-server, tj. programový kód bude jasně rozdělen na část klientskou a část serverovou. Můžete také zkusit použít jiný programovací jazyk a databázový systém bez ohledu na typ aplikace. Volba kombinace technologií je neomezená. Systém hodnocení Do celkového hodnocení studenta se promítá výsledek zkoušky, hodnocení praktického projektu a aktivita studenta. Pojem aktivita studenta jako součásti hodnocení znamená přítomnost studenta ve výuce, kdy pro získání maximálního počtu bodů je vyžadována alespoň 80% docházka. Vyšší absence může být kompenzována tím, že student odevzdá praktický projekt do konce běhu předmětu. Tedy pokud student nechce/nemůže navštěvovat výuku, musí být schopen sám zpracovat projekt a odevzdat jej dříve než ostatní studenti. Standardně je projekt možné odevzdávat i po skončení výukové části semestru do termínu stanoveného vyučujícím. Forma zkoušky je písemná, ústní zkoušení není obecně ve Finsku příliš obvyklé. Student může mít při sobě u zkoušky jeden list A4 vypracovaných poznámek z probrané látky (tj. něco na způsob taháku ), což je poměrně netradiční. Ale již samotné vypracování takového materiálu vede k tomu, že 4
si student problematiku z větší části zapamatuje, což autorka může potvrdit z vlastní zkušenosti. Systém hodnocení je následující: Písemná zkouška Praktický projekt Studijní aktivita Celkem 35 bodů 50 bodů 15 bodů 100 bodů Zkouška i praktický úkol jsou ohodnoceny podle počtu získaných bodů. Aby student získal výslednou známku, musí splnit všechny výše uvedené části. Závěr Uvedená náplň a metody výuky předmětu Softwarové inženýrství na OAMK směřují k hlubšímu pochopení této discipliny, přičemž důraz je kladen především na analytickou fázi. Některé důležité oblasti produkce software nejsou v předmětu zahrnuty, neboť jsou součástí jiných předmětů. Vlastní výklad problematiky je zaměřen spíše teoreticky, neexistují tzv. cvičení. Praktické dovednosti student získává při samostatném zpracování projektu, přičemž je mu umožněno případné problémy konzultovat s vyučujícím. Může se zdát překvapivé, že součástí obsahu předmětu není vlastní programování. Avšak filozofie tohoto přístupu byla taková, že pokud je kvalitně a detailně zpracována analýza a návrh konkrétního systému, stává se pak vlastní fáze implementace v podstatě rutinní záležitostí. Přesto se však u studentů předpokládala alespoň základní znalost programovacích technik a některého programovacího jazyka, protože je nezbytná k pochopení probírané látky a rovněž ke zpracování projektu. Literatura Oulu University of Applied Sciences. About us. 2008 [cit. 2008-01-18]. Dostupné na: http://www.oamk.fi/english/ouas/. Oulu University of Applied Sciences. Description of Curriculum. Software Engineering. 2008 [cit. 2008-01-18]. Dostupné na: http://www.oamk.fi/english/ects/2007-2008/curricula/?page=oj&koodi1= K1020BI&kieli=EN&opas=2007-2008&vuosi=6S8K. Pressman, R. S. Software Engineering: A Practitioner s Approach. 5. vyd. Desoto : McGraw-Hill, 2001. ISBN 978-00-7249-668-0. 5