1.2 geven een aantal voorbeelden (zowel positieve als negatieve) die de impact van software op onze samenleving aangeven.
het gebruik van software in onze samenleving heeft een aantal positieve en negatieve effecten. Terwijl de positieve aspecten zeer nuttig kunnen zijn, bieden de negatieve ons een soort steun. Over het algemeen is software niet ontworpen om ons op welke manier dan ook te “kwetsen”, maar om dingen gemakkelijker en efficiënter voor ons te maken.
1.3 E-banking is bijvoorbeeld een perfect voorbeeld van software die ons leven een stuk makkelijker maakt. Alles behalve fysiek geld opnemen van uw bank kan online worden gedaan. U kunt zelfs uw loonstrookjes nu storten door er gewoon een foto van te maken met uw smartphone. Aan de keerzijde, diezelfde technologie kan worden gebruikt om uw credit card nummers en identiteit te stelen als het in de verkeerde handen valt. Hetzelfde met anti-beveiligingssoftware.
er zijn mensen die goed betaald krijgen om uw lokale bank te hacken en van hen te stelen om aan de bank te bewijzen dat ze hun netwerkbeveiliging moeten upgraden. In de meeste gevallen zijn de banken dankbaar voor dit soort inbraak. Diezelfde software kan echter worden gebruikt voor criminele doeleinden waar de bank niet zo blij mee zou zijn. Software kan zowel uiterst nuttig en uiterst gevaarlijk zijn, afhankelijk van wie het gebruikt en hoe.
1.4 veel moderne toepassingen veranderen vaak-voordat ze aan de eindgebruiker worden gepresenteerd en daarna nadat de eerste versie in gebruik is genomen. Stel een paar manieren voor om software te bouwen om verslechtering als gevolg van verandering te stoppen.
in de eerste plaats dienen softwaretoepassingen te kunnen worden onderhouden. Wat betekent dat het zodanig moet worden ontworpen dat veranderingen vrij gemakkelijk kunnen worden gemaakt als de applicatie groeit. Een manier om verslechtering als gevolg van verandering te minimaliseren is om automatische updates worden ingebouwd. Neem bijvoorbeeld het Windows-besturingssysteem: het heeft de mogelijkheid om automatische updates voor de nodige beveiliging en firewall platforms om ervoor te zorgen dat het systeem is altijd “up-to-date.”Omdat eerdere applicaties altijd worden bijgewerkt, is het belangrijk om nieuwe software te bouwen met dezelfde mogelijkheden.
1.5 bekijk de zeven softwarecategorieën in Paragraaf 1.1.2. Denkt u dat dezelfde aanpak van software engineering kan worden toegepast voor elk? Leg je antwoord uit.
miljoenen software-ingenieurs wereldwijd werken hard aan softwareprojecten in een of meer van deze categorieën. In sommige gevallen worden nieuwe systemen gebouwd, maar in vele andere worden bestaande toepassingen gecorrigeerd, aangepast en verbeterd. Hierdoor kan een andere benadering van software engineering nodig zijn voor individuele categorieën. Veel van de programma ‘ s waar software engineers aan werken zijn extreem oud en worden nog steeds geüpgraded. Daarom is het logisch dat je niet dezelfde aanpak zou gebruiken voor een bestaand programma dat je zou gebruiken voor een nieuw programma.
1.6 figuur 1.3 plaatst de drie lagen software engineering bovenop een laag genaamd ” A quality focus.”Dit impliceert een organisatorisch kwaliteitsprogramma zoals total quality management. Doe een beetje onderzoek en het ontwikkelen van een schets van de belangrijkste principes van een total quality management programma.
TQM kan worden gedefinieerd als het beheer van initiatieven en procedures die gericht zijn op het leveren van kwaliteitsproducten en-diensten. Bij het definiëren van TQM kan een aantal belangrijke beginselen worden vastgesteld, waaronder:
- Executive Management-Top management moet fungeren als de belangrijkste driver voor TQM en het creëren van een omgeving die het succes ervan verzekert.
- opleiding-werknemers moeten regelmatig een opleiding krijgen over de methoden en concepten van kwaliteit.
- klantgerichtheid-verbeteringen in kwaliteit moeten de klanttevredenheid verbeteren.
- besluitvorming-Kwaliteitsbeslissingen moeten worden genomen op basis van metingen.
- methodologie en Instrumenten – het gebruik van geschikte methoden en instrumenten zorgt ervoor dat non-conformiteiten consistent worden geïdentificeerd, gemeten en beantwoord.
- continue verbetering-bedrijven moeten voortdurend werken aan verbetering van productie-en kwaliteitsprocedures.
- bedrijfscultuur – de cultuur van het bedrijf moet gericht zijn op het ontwikkelen van het vermogen van werknemers om samen te werken om de kwaliteit te verbeteren.
- betrokkenheid van Werknemers-Werknemers moeten worden aangemoedigd proactief te zijn bij het identificeren en aanpakken van kwaliteitsproblemen.
1.7 is software engineering van toepassing wanneer WebApps worden gebouwd? Zo ja, hoe kan het worden aangepast aan de unieke kenmerken van WebApps tegemoet?Software is diep ingebed geraakt in vrijwel elk aspect van ons leven. Software engineering is van toepassing wanneer nieuwe programma ’s worden gebouwd, en wanneer bestaande programma’ s worden bijgewerkt – met inbegrip van WebApps. WebApps zijn een van een aantal verschillende software categorieën. En toch, kan worden betoogd dat WebApps zijn anders. Een van de belangrijkste wijzigingen die WebApps vraag is beschikbaarheid. Gebruikers van populaire WebApps vragen vaak toegang op een 24/7/365 basis. Een ander uniek kenmerk van WebApps is hun voortdurende evolutie.
in tegenstelling tot conventionele applicatiesoftware die evolueert over een reeks geplande, chronologisch gespreide releases, evolueren webtoepassingen continu. Als het gaat om de software engineering toegepast op WebApps, veel stemmen moeten worden gehoord. De look en feel van een WebApp is een onmiskenbaar onderdeel van de aantrekkingskracht die uiteindelijk het succes van de Apps zal bepalen.
1.8 naarmate software alomtegenwoordig wordt, worden risico ’s voor het publiek (als gevolg van defecte programma’ s) steeds belangrijker. Ontwikkel een doomsday maar realistisch scenario waarin het falen van een computerprogramma grote schade kan toebrengen (economisch of menselijk).
een van de eerste tragische maar realistische scenario ’s die te binnen schiet is het falen van specifieke programma’ s op een vliegtuig. De grote geautomatiseerde programma ‘ s in vliegtuigen hebben hetzelfde risico van falen als elk ander programma, en kunnen catastrofale resultaten hebben. De sensor die bijvoorbeeld de hoogte van een vliegtuig detecteert, stelt de piloot in staat om te weten hoeveel meter het vliegtuig zich boven de grond bevindt. Dit programma is vooral nodig wanneer de weersomstandigheden het zicht van de vliegers op de baan kunnen belemmeren.
zodra een vliegtuig begint te landen, gebruikt de piloot deze programma ‘ s om het vliegtuig naar een veilige landing te leiden. Als dit programma zou mislukken, en het weer belemmerde het zicht van de piloten, de piloot kan niet weten hoe ver boven de grond hij eigenlijk is. Vliegtuig crashes gebeuren de hele tijd, en honderden passagiers sterven elk jaar-meestal als gevolg van mislukte programma ‘ s en instrumenten op het vliegtuig.
1.9 Beschrijf een proceskader in je eigen woorden. Wanneer we zeggen dat kaderactiviteiten op alle projecten van toepassing zijn, betekent dit dan dat Voor alle projecten dezelfde werktaken worden toegepast, ongeacht omvang en complexiteit? Leggen.
het software-engineeringproces gebeurt niet zomaar op magische wijze zonder enige vorm van orde en organisatieplanning. Een proceskader vormt de basis voor het engineeringproces door gebruik te maken van een klein aantal activiteiten die toepasbaar zijn op alle projecten. Het stap-voor-stap algoritme voor een proces framework bestaat uit vijf activiteiten: communicatie, planning, modellering, bouw en implementatie. Alle programma ‘ s, ongeacht hun omvang en complexiteit voldoen aan deze activiteiten in die volgorde. Hoewel de details van het softwareproces voor elk programma heel verschillend zullen zijn, blijven de taken binnen het kader hetzelfde.
1.10 overkoepelende activiteiten vinden plaats gedurende het hele softwareproces. Denkt u dat ze gelijkmatig worden toegepast over het hele proces, of zijn sommige geconcentreerd in een of meer kaderactiviteiten.
in het algemeen worden overkoepelende activiteiten toegepast in een softwareproject en helpen een softwareteam vooruitgang, kwaliteit, verandering en risico te beheren en te controleren. Aangezien het software engineering proces geen rigide regime is dat precies door een software team moet worden gevolgd, heeft het proces veel ruimte voor aanpassing.
hoewel de overkoepelende activiteiten die gedurende het hele proces plaatsvinden in het algemeen op alle aspecten van het proces worden toegepast, moet de engineering flexibel en aanpasbaar zijn; specifiek voor het probleem, het project, het team en de organisatiecultuur. Hierdoor kan een proces dat Voor een project wordt toegepast, aanzienlijk verschillen van een proces dat Voor een ander project wordt toegepast, en kunnen sommige activiteiten op een of meer gebieden worden geconcentreerd.