2008. 06. 04-ei szoftvertechnikák vizsga
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
1. Milyen fajta biztonsági megoldások vannak a .NET keretrendszerben? (12p)
- Szerep alapú biztonság (Role based security): A felhasználó rendszerben betöltött szerepén és jogain alapuló biztonsági mechanizmus.
- Kóderedet alapú biztonság (Code access security): Képes meghatározni, hogy a kód mit tehet, a meghívott kód mit tehet, valamint képes egyértelműen azonosítani a kódot. -- Judit - 2008.06.10.
2. C# Event + példaprogram (12p)
Lásd: 2007. május 30-ai vizsga 2. feladata
3. Eseményvezérelt programozás (15p)
Lásd: 2007. május 30-ai vizsga 3. feladata
4. Szálkezelés (12p)
a.) Miért könnyebb az egy folyamaton belüli szálak kommunikációja? (3p)
Röviden: * folyamatok elszigeteltek, a folyamatok közötti kommunikáció nehéz * A szálak egy adott folyamaton belül egy címtartományban vannak, így "könnyen" kommunikálnak A folyamatok egymástól elszigeteltek: * Védettek egymástól (minden folyamat saját kb. 2 GB virtuális címtartományt kap (32 bites OS esetén); a virtuális címeket a memóriamenedzser fizikai címekre képezi le (RAM) * Az OS védett a felhasználói folyamatoktól * Egy folyamat megszűntetésének nincs hatása a többire/OS-re
b.) Szálbiztos osztály fogalma egy-két mondatban (6p)
Szálbiztos: A kölcsönös kizárás problémája:<br/> * Környezet: megosztott erforráshoz több szál fér hozzá * Megosztott erőforrás: memória (változók, objektumok), fájl, stb. * Meg kell őrizni a konzisztenciát. Egy CPU esetén sem tudjuk, mikor veszi el az ütemez a szál futási jogát! Megoldás: biztosítanunk kell, hogy a megosztott erőforráshoz egyidőben csak egy szál férjen hozzá. (oszthatatlan test_and_set) Szálbiztos osztály: Egy osztály szálbiztos, ha úgy lett megírva, hogy többszálú környezetben is biztonságosan használható. * Maga garantálja a konzisztenciát * A felhasználás során már nem kell zárolni... public class Stack<T>{ readonly int size; int current = 0; T[] items; object syncObject = new object(); public void Push(T item){ lock(syncObject){ items[current++] = item; } } public T Pop(){ lock(syncObject){ return items[current--]; } } }
c.) Lock, Mutex, ReaderWriterLock konstrukciók összehasonlítása (12p) <br
Név | Cél | Folyamatok | Sebesség |
lock C# utasítás (Monitor.Enter/Monit or.Leave) | Biztosítja, hogy egy adott erőforráshoz/kódrészlethez egyidőben csak egy szál férhet hozzá. | nem | gyors |
Mutex | Mint a lock, de folyamatok között is. Pl. annak megoldására, hogy egy alkalmazásból csak egy példány indulhasson. | igen | közepes |
Semaphore | Mint a Mutex, de nem egy, hanem max. N hozzáférést engedélyez. | igen | közepes |
ReaderWriterLock | Sok olvasóra optimalizált megoldás. Egyszerre több olvasó is hozzáférhet az erforráshoz, de íróból csak egy (illetve az író kizárja az olvasókat is). Pl. ritkán módosított cache megvalósítása. | nem | közepes |
Pelda lockra: class ThreadSafeClass{ static bool flag; // Közös erforrás static object syncObject = new object(); static void Main(){ new Thread(Run).Start(); new Thread(Run).Start(); } static void Run(){ lock (syncObject){ while(flag){ flag = 1; // EF. használata flag = 0; } } } }
5. Rajzolj fel példát 1:1, 1:n, m:n relációkra, és írd fel, milyen táblákba képeznéd le őket! (12p)
Lásd: 2007. május 30-ai vizsga 5. feladata
6. Tervezési minták (13p)
a.) Mik azok, mire valók? (3p)
b.) Singleton kód c++ ||| Java || C# nyelven (10p)
Lásd: 2007. június 6-ai vizsga 6. feladata
https://wiki.sch.bme.hu/bin/view/Infoalap/TervezesiMintak -- Judit - 2008.06.10.
7. Model-View-Controller és Document-View jellemzés, leírás + példa az egyikre (13p)
Lásd: 2007. június 6-ai vizsga 7. feladata
8. Mi a szerver oldali vezérlők szerepe? Milyen típusok vannak? (13p)
a.) HTML Controls
- System.Web.UI.htmlControls névtérben
- Egy-egy HTML taget tesz elérhetővé
- Szorosan burkolja az eredeti HTML elemeket, minimális funkcionalitást ad hozzá -> gyrosabb, mint a WebControl
b.) Web Controls
- System.Web.UI.WebControls névtérben bonyolultabb funkcionalitású osztályok
- Összetettebb HTML kódot generál
c.) Mobile Controls
- Mobil web alkalmazások készítéséhet
- Figylembe veszi az adott mobil kliens képességeit
-- Judit - 2008.06.10.