Szoftveripar és üzleti modellek
Szoftver-technológia I.
Irodalom
Szoftver-technológia I.
• Michael A. Cusumano: The business of software
• Michael Hiltzik: Dealers of lightning • Eric Raymond: A katedrális és a bazár
Szoftver-technológia I.
Szoftver technológia
• Software engineering • A szoftver fejlesztés, üzemeltetés, karbantartás szisztematikus, fegyelmezett, mérhet! megközelítése
• Mérnöki eljárások alkalmazása • 1968 NATO Software Engineering Conference
Szoftver-technológia I.
Szoftver technológia (folyt.)
• Tudás, módszerek, eszközök • Érintett tevékenységek, területek • követelmények meghatározása • szoftvertervezés és implementáció • szoftver tesztelés • szoftver karbantartás • konfiguráció menedzsment • szoftver folyamat kialakítása • szoftver fejleszt! eszközök
Szoftver-technológia I.
Szoftver technológia (folyt.)
• Kapcsolódó tudományterületek • computer engineering • számítástudomány • menedzsment tudomány • projekt menedzsment • matematika • rendszerelmélet
Szoftver-technológia I.
Problémák a szoftverfejlesztés területén
• Kezelhetetlen komplexitás • Túl nagy kód • Túl sok programozó • Projektek kis hányada sikeres csak • Be nem fejez!d! projektek • Túllépett határid!k • Túllépett költségvetések
Célok
Szoftver-technológia I.
• Szoftver termékek min!ségének javítása
• Felhasználói elégedettség növelése • Termelékenység fokozása • Jobb munkafeltételek kialakítása
Szoftver-technológia I.
Történet (hw)
• Lyukkártya válogató gépek • Mechanikus számológépek • Els! generációs gépek: elektro-
mechanikus számológépek (relék, rádiócsövek) analóg digitális
• •
Szoftver-technológia I.
Történet (hw folyt.)
• Második generációs gépek: tranzisztor • Harmadik generációs gépek: integrált áramkörök • Negyedik generációs gépek: mikroprocesszor
Szoftver-technológia I.
Történet (hw folyt.)
• Mainframe • terminálok • Mini • terminálok, munkaállomások • Personal Computer
Szoftver-technológia I.
Szoftver-technológia I.
Moore-törvény
Történet (sw)
• 1940-es évek: Közvetlen gépi kódú programozás • 1950-es évek: Korai eszközök, gépikódú programozás. • 1960-as évek: Magasszint" programozási nyelvek. Mainframek kereskedelmi forgalomban. Operációs r. • 1970-es évek Kollaborativ szoftverek, mini számítógépek. • 1980-as évek: Személyi számítógépek, végfelhasználói programok • 1990-es évek: Objektum orientált programozás. Hálózati technológiák • 2000-es évek: Menedzselt kód, interpretált script nyelvek.
Szoftver-technológia I.
Történet (fejleszt!i felh. felület)
• Lyukkártyák, konzol, írógép • Karakteres terminálok • Grafikus megjelenít!k • GUI
Szoftver-technológia I.
Szoftver-jellemz!k
• A szoftvert fejlesztik, nem gyártják • nem gyártási folyamat • lényegében szellemi termék (tervezési folyamat)
• A szoftver nem használódik el • A legtöbb szoftver egyedi fejlesztés"
Szoftver-technológia I.
Szoftverfejlesztés
• Új szoftver kifejlesztése • Kibocsátás utáni sw-karbantartás Költségek
1976-81
Szoftver-technológia I.
1992-98
Szoftverfejlesztés
• Kritikus tevékenység • szoftver fejleszt! cégek • szoftverre épül! technológiai ipar • e-business, telekom szektor, pénzügyi szektor
• rövidtávú profit • hosszútávon ügyfél bizalom • változékony piaci helyzet
Szoftver-technológia I.
Szoftver (fejlesztési) folyamat tevékenységei
• Követemény meghatározás • Elemzés,tervezés • Implementáció • Tesztelés • Karbantartás
Szoftver-technológia I.
Kihívások
• Programozó, menedzser struktúra • irányíthatóság ~ kreativitás, rugalmasság • Követelmények • megrendel! vs fejleszt! • (El!zetes) költségbecslés • Programozói hatékonyság szórása • Tervezés és gyártás átfedése • Alacsony újra felhasználás
Okok
Szoftver-technológia I.
• Átfogó fejlesztési stratégia hiánya • Nem elég fegyelmezett funkcionális tervezés, követelmény meghatározás
• Termék tervek stabilizálási vagy módosítási nehézsége
• Nem világos termék koncepció vagy architektúra • Rossz változás kezelési megoldás • Elégtelen megrendel!i visszacsatolás • Tudás és munkaer! menedzsment problémák
Szoftver-technológia I.
A szoftver-folyamat rétegei
• Folyamat réteg • keret, kontextus • Módszererek, módszertan réteg • tevékenységek irányítása • Eszköz réteg • (fél)automatikus támogatás • CASE
Folyamat Módszer 2
Módszer 1 Eszköz 1
Eszköz 2
Eszköz 3
Szoftver-technológia I.
Programozási elvárások
• Kifejez! képesség • komplexitás csökkentése • Integráltság • tudás kiterjeszthet!sége • Er!forrás igény • Méretezhet!ség • Flexibilitás
Szoftver-technológia I.
Programozási nyelvek generációi
• 1GL • közvetlen gépi kód • 2GL • assembly • 3GL • magas szint" nyelvek • compiler • 4GL • spec. (általában adatbázis alk.) célú magas szint" nyelvek • 5GL • vizuális, komponens alapú eszközök
Szoftver-technológia I.
Programozási paradigmák
• Programozási stílus • Imperatív programozás • Procedurális nyelvek • Objektum orientált nyelvek • Deklaratív programozás • Funkcionális nyelvek • Logikai nyelvek • Kevert nyelvek
Szoftver-technológia I.
Fejlesztési módszertanok
• Szoftver fejlesztési folyamat irányítása, struktúrálása • Struktúrált rendszer elemzés • OOD, OOP • RAD • Agilis fejlesztés • XP • RUP
Szoftver-technológia I.
Szoftver ipar
• Üzleti szervezetek (vállalkozások) • Szoftver fejlesztés • Karbantartás • Kiadás, kereskedelem • Szolgáltatások • képzés • dokumentálás • tanácsadás
Szoftver-technológia I.
Az iparág változása
• Szoftver fogalma ~ 1950-es évek • Els! sw cég 1955 (Computer Usage Co.) • 1960-as évek komputerek "tömeg"termelése
• sw-ek iránti kereslet megjelenése • HW gyártók - op.r., programozási környezetek
• "házon belüli" és kereskedelmi sw gyártás
Szoftver-technológia I.
Az iparág változása (folyt.)
• Relatív alacsony árú mini és micro gépek (DEC, IBM AS400)
• sw fejlesztés egyetemeken, sw cégekben
• Személyi számítógépek (PC) • irodai alkalmazások • növekv! alkalmazás piac • domináns op.r-ek
Szoftver-technológia I.
Az iparág változása (folyt.)
• Internet, World Wide Web • "Content is king" • Open source • Mobile computing • Open innovation
Szoftver-technológia I.
Szektorok
• Infrastruktúra szoftverek • op.r., adatbáziskezel!k, middlewarek • Vállalati szoftverek • pénzügy, gyártás, kereskedelem, marketing
• Szakterület specifikus szoftverek • bank, telekom, oktatás • Egyedi fejlesztés" szoftverek, testreszabás
Szoftver-technológia I.
Üzleti modellek
• Mit? (termék), Kinek? (piac), Hogyan? (tevékenység)
• Üzleti modellek elemei • Értékteremt! folyamat • Piaci lehet!ségek • Bevételi csatornák • Tevékenységek, folyamatok, tranzakciók
Üzleti modellek (folyt.)
Szoftver-technológia I.
Termék stratégia
Implementációs model
Ügyfél kapcsolatok
Kulcs partnerek
Kulcs tevékenységek
Ügyfél szegmensek
Megfogalmazott érték
Kulcs er!források Disztribúciós csatornák
Költség struktúra
Bevétel folyamok Bevételi logika
Szoftver-technológia I.
Üzleti modellek (folyt.)
• Befolyásoló tényez!k • versenyhelyzet, ügyfelek, er!forrás helyzet, financiális környezet
• cég stratégia • termékvonal, termék vs
szolgáltatás orientáció, piacépítés, K+F politika
A szoftver, mint termék
Szoftver-technológia I.
• Információ intenzív termék • drága el!állítani • olcsó reprodukálni • Kapcsolódó lényeges szolgáltatások • használati érték, eladási érték elengedhetetlen része
• Értékesítési csatornák, értékesítési ciklus
Üzleti lehet!ségek
Szoftver-technológia I.
• •
Teljes, holisztikus megoldás szemlélet
•
pl. korai IBM
Piaci szegmensek, rések, ahová a domináns cégek nem léptek be
• •
Horizontális alkalmazások
•
adatbázis kezel!k (Oracle), általános ERP rendszerek (SAP), félegyedi megoldások
Sz"k, vertikális piacok
• •
egyedi fejlesztés" szoftverek egyszeri "nagy dobások"
Szoftver-technológia I.
Üzleti lehet!ségek (folyt.)
• PC-k • tömeges, fogyasztói piac • szabványos platformok, relatív nyílt technológiák
• "dobozos szoftverek"
• Szolgáltatások • fejleszt! eszközök, support, integrálás (open
source támogatás, middleware, alk. szerverek)
• on-demand computing
Szoftver-technológia I.
Üzleti lehet!ségek (folyt.)
• Internet • infrastruktúra szoftverek (böngész!k, szerverek, middlewarek)
• webalkalmazások • tartalom - tranzakciók • new services for old businesses • new businesses • e-business (e-commerce, ads) • Web 2
Üzleti stratégiák
Szoftver-technológia I.
Egyen szoftverek ("mindenkinek egy méret")
Teljesen egyedi szoftverek
1960-1980
kapcsolva (pl. HWhez, csomagban)
teljesen egyedi
1980-
tömeg (fogyasztói) piac
iparág egyedi
2000-
alkalmazás szolgáltatás
tömeg testreszabás
Szoftver-technológia I.
Egyedi vs tömeg termelés
Teljesen egyedi szoftverek
Egyen szoftverek ("mindenkinek egy méret")
Kevés ügyfél
Sok ügyfél
Specifikus funkcionalitás
Standard funkcionalitás
Alacsony befektetési kockázat
Magas befektetési kockázat
Változtatási igények adott ügyfélt!l
Változtatási igény a piactól, versenytársaktól
Szoftver-technológia I.
Alkalmazás szolgáltatás
• Szoftverek megosztott távoli végrehajtással
• Internet/intranet alapú hozzáférés • Hozzáférés vagy el!fizetéses árazás • Integrált szolgáltatások • Vékony kliens alkalmazások, webservice-k
Szoftver-technológia I.
Tömeg testreszabás
• Koherens piacokra rászabható termékek
• Tömeg piaci és egyedi termék hibridje
• Termék vonalak, családok • Ügyfelenként kicsit eltér! megoldások
Szoftver-technológia I.
Értékesítési stratégiák
• Önálló szoftver eladások • Kiegészít! eladás • értékesítés szoftver/szolgáltatás csomagokban
• El!fizetéses értékesítés • használati id!szakhoz vagy
tranzakciószámhoz kötött fizetés
• Hírdetés szponzorált szoftverek
Szoftver-technológia I.
Cég üzleti modellek
• Szoftver termék cég • bevétel 60-80% szoftver termék értékesítésb!l és karbantartásból
• Szolgáltató cég • bevétel nagyrésze szoftverekhez kapcsolódó szolgáltatásokból (support, tanácsadás, üzemeltetés)
• Hibrid cég • szoftver termék fejlesztés és szolgáltatások nyújtása
Szoftver-technológia I.
Szoftver-technológia I.
IBM nyereségek
Szoftvertermék vs szolgáltatás
Open source
Szoftver-technológia I.
• Hozzáférhet!, felhasználható
(módosítható), redisztributálható forráskód
• UNIX, ARPANET hagyományok • fejleszt! közösségek (fejleszt!k elosztott hálózata)
• hozzáférés, hozzájárulás • lazán koordinált innováció
• ingyenes, nyílt techológiák
Szoftver-technológia I.
Open innovation
• Nyílt rendszerek • technológia mellett tudás disszemináció • nyílt API-k, support 3rd party fejleszt!knek (dokumentáció, min!ség biztosítás), kereskedelmi csatorna megosztása
• Küls! fejlesztések, ötletek (a bels! mellett) • Költség csökkentés, fejlesztés, piacra kerülés gyorsítása
• Közelebb kerülés a megrendel!khöz (visszacsatolás)