1.2 poskytují řadu příkladů (pozitivních i negativních), které naznačují dopad softwaru na naši společnost.
používání softwaru v naší společnosti má řadu pozitivních i negativních dopadů. Zatímco pozitivní aspekty mohou být velmi užitečné, ty negativní nám poskytují trochu berle. Obecně, software není navržen tak, aby nám „ublížit“ v žádném případě, ale aby se věci jednodušší a efektivnější pro nás.
1.3 například elektronické bankovnictví je dokonalým příkladem softwaru, který usnadňuje náš život. Vše kromě fyzického výběru peněz z vaší banky lze provést online. Dokonce si můžete uložit své výplaty nyní tím, že prostě vyfotit s chytrým telefonem. Nevýhodou je, že stejná technologie může být použita k odcizení čísel a identity vaší kreditní karty, pokud se dostane do nesprávných rukou. Totéž s anti-bezpečnostní software.
existují lidé, kteří dostanou zaplaceno dobré peníze proniknout do místní banky a ukrást z nich jen dokázat bance, že je třeba upgradovat jejich zabezpečení sítě. Ve většině případů jsou banky vděčné za tento typ vniknutí. Tentýž software by však mohl být použit pro trestné účely, ve kterých by banka nebyla tak potěšena. Software může být velmi užitečný i extrémně nebezpečný v závislosti na tom, kdo jej používá a jak.
1.4 Mnoho moderních aplikací se často mění-před jejich představením koncovému uživateli a poté po uvedení první verze do provozu. Navrhněte několik způsobů, jak vytvořit software, který zastaví zhoršení v důsledku změny.
v první řadě by měly být udržovatelné softwarové aplikace. To znamená, že by měl být navržen do té míry, že změny mohou být provedeny poměrně snadno, jak aplikace roste. Jedním ze způsobů, jak minimalizovat zhoršení v důsledku změny, je umožnit zabudování automatických aktualizací. Vezměte si například operační systém Windows: má možnost Povolit automatickou aktualizaci nezbytných platforem zabezpečení a brány firewall, aby bylo zajištěno, že systém je vždy „aktuální“.“Protože předchozí aplikace jsou vždy aktualizovány, je důležité vytvářet nový software se stejnými schopnostmi.
1.5 zvažte sedm kategorií softwaru uvedených v oddíle 1.1.2. Myslíte si, že stejný přístup k Softwarovému inženýrství lze použít pro každého? Vysvětlete svou odpověď.
miliony softwarových inženýrů po celém světě tvrdě pracují na softwarových projektech v jedné nebo více z těchto kategorií. V některých případech se vytvářejí nové systémy, ale v mnoha dalších se stávající aplikace opravují, přizpůsobují a vylepšují. Z tohoto důvodu může být pro jednotlivé kategorie vyžadován odlišný přístup k Softwarovému inženýrství. Mnoho programů, na kterých softwaroví inženýři pracují, je velmi starých a nadále se upgradují. Proto dává smysl, že byste nepoužili stejný přístup pro existující program, který byste použili pro nový program.
1.6 obrázek 1.3 umístí tři vrstvy softwarového inženýrství na vrstvu nazvanou “ a quality focus.“To znamená organizační program kvality, jako je total quality management. Proveďte trochu výzkumu a vypracujte přehled klíčových principů celkového programu řízení kvality.
TQM lze definovat jako řízení iniciativ a postupů zaměřených na dosažení dodávek kvalitních produktů a služeb. Při definování TQM lze identifikovat řadu klíčových principů, včetně:
- výkonný Management-Vrcholový management by měl působit jako hlavní hnací síla TQM a vytvořit prostředí, které zajistí jeho úspěch.
- školení-zaměstnanci by měli absolvovat pravidelné školení o metodách a koncepcích kvality.
- zaměření na zákazníka-zlepšení kvality by mělo zlepšit spokojenost zákazníků.
- rozhodování-kvalitní rozhodnutí by měla být učiněna na základě měření.
- Metodika a nástroje-použití vhodné metodiky a nástrojů zajišťuje, že neshody jsou identifikovány, měřeny a důsledně reagovány.
- neustálé zlepšování-společnosti by měly neustále pracovat na zlepšování výrobních a kvalitativních postupů.
- firemní kultura-kultura společnosti by se měla zaměřit na rozvoj schopnosti zaměstnanců spolupracovat na zlepšování kvality.
- zapojení zaměstnanců-zaměstnanci by měli být povzbuzováni k tomu, aby byli aktivní při identifikaci a řešení problémů souvisejících s kvalitou.
1.7 je softwarové inženýrství použitelné při vytváření WebApps? Pokud ano, jak by mohl být upraven tak, aby vyhovoval jedinečným vlastnostem WebApps?
Software se stal hluboce zakotven prakticky ve všech aspektech našeho života. Softwarové inženýrství je použitelné při vytváření nových programů a při aktualizaci stávajících programů-včetně WebApps. WebApps jsou jednou z mnoha různých kategorií softwaru. A přesto lze tvrdit, že WebApps jsou odlišné. Jednou z hlavních úprav, které WebApps požaduje, je dostupnost. Uživatelé populárních WebApps často vyžadují přístup na základě 24/7/365. Další jedinečnou vlastností WebApps je jejich neustálý vývoj.
na rozdíl od konvenčního aplikačního softwaru, který se vyvíjí v řadě plánovaných, chronologicky rozložených verzí, se webové aplikace neustále vyvíjejí. Pokud jde o softwarové inženýrství aplikované na WebApps, musí být slyšet mnoho hlasů. Vzhled a dojem z WebApp je nepopiratelnou součástí odvolání, které nakonec určí úspěch aplikací.
1.8 vzhledem k tomu, že se software stává všudypřítomnějším, stávají se rizika pro veřejnost (kvůli chybným programům) stále významnějším problémem. Vypracujte doomsday, ale realistický scénář, ve kterém by selhání počítačového programu mohlo způsobit velkou škodu (ať už ekonomickou nebo lidskou).
jedním z prvních tragických, ale realistických scénářů, které přicházejí na mysl, je selhání konkrétních programů na letadle. Hlavní počítačové programy v letadlech mají stejné riziko selhání jako jakýkoli jiný program a mohou mít katastrofické výsledky. Například senzor, který detekuje výšku letadla, umožňuje pilotovi vědět, kolik stop je letadlo nad zemí. Tento program je zvláště nezbytný, pokud by povětrnostní podmínky mohly zhoršit viditelnost pilotů na přistávací dráze.
jakmile letadlo začne slušně a připravuje se na přistání, pilot používá tyto programy k navedení letadla k bezpečnému přistání. Pokud by tento program selhal a počasí bránilo viditelnosti pilotů, pilot nemusí vědět, jak daleko nad zemí ve skutečnosti je. Havárie letadla se stávají neustále a stovky cestujících umírají každý rok-většinou kvůli neúspěšným programům a nástrojům v letadle.
1.9 popište rámec procesu vlastními slovy. Když říkáme, že rámcové činnosti jsou použitelné na všechny projekty, znamená to, že stejné pracovní úkoly jsou aplikovány na všechny projekty bez ohledu na velikost a složitost? Vysvětlit.
proces softwarového inženýrství se nestane jen magicky bez nějakého řádu a organizačního plánování. Rámec procesů vytváří základ pro inženýrský proces pomocí malého počtu činností, které jsou použitelné pro všechny projekty. Algoritmus krok za krokem pro procesní rámec se skládá z pěti činností: komunikace, plánování, modelování, konstrukce a nasazení. Všechny programy, bez ohledu na jejich velikost a složitost, odpovídají těmto činnostem v tomto pořadí. Ačkoli podrobnosti softwarového procesu budou pro každý program zcela odlišné, úkoly obsažené v rámci zůstávají stejné.
1.10 zastřešující činnosti probíhají v průběhu softwarového procesu. Myslíte si, že jsou aplikovány rovnoměrně v celém procesu, nebo jsou některé soustředěny v jedné nebo více rámcových činnostech.
obecně platí, že zastřešující činnosti jsou aplikovány v celém softwarovém projektu a pomáhají softwarovému týmu řídit a řídit pokrok, kvalitu, změnu a riziko. Protože proces softwarového inženýrství není rigidní režim, který musí následovat přesně softwarový tým, má tento proces velký prostor pro přizpůsobení.
ačkoli zastřešující činnosti, ke kterým dochází v průběhu procesu, jsou obecně aplikovány na všechny aspekty procesu, inženýrství by mělo být agilní a přizpůsobivé; specifické pro problém, projekt, tým a organizační kulturu. Z tohoto důvodu může být proces přijatý pro jeden projekt výrazně odlišný od procesu přijatého pro jiný projekt a některé činnosti mohou být soustředěny do jedné nebo více oblastí.