1.2 zawiera szereg przykładów (zarówno pozytywnych, jak i negatywnych), które wskazują na wpływ oprogramowania na nasze społeczeństwo.
wykorzystanie Oprogramowania w naszym społeczeństwie ma wiele pozytywnych i negatywnych skutków. Podczas gdy pozytywne aspekty mogą być niezwykle przydatne, negatywne dostarczają nam czegoś w rodzaju kuli. Ogólnie rzecz biorąc, oprogramowanie nie jest zaprojektowane, aby” zaszkodzić ” nam w jakikolwiek sposób, ale raczej po to, aby uczynić rzeczy łatwiejszymi i bardziej wydajnymi dla nas.
1.3 na przykład bankowość elektroniczna jest doskonałym przykładem oprogramowania, które znacznie ułatwia nam życie. Wszystko, czego brakuje do fizycznego wypłacania pieniędzy z banku, można zrobić online. Możesz nawet zdeponować czeki teraz, po prostu robiąc zdjęcie za pomocą smartfona. Z drugiej strony, ta sama technologia może być wykorzystana do kradzieży numerów kart kredytowych i tożsamości, jeśli wpadną w niepowołane ręce. To samo z oprogramowaniem zabezpieczającym.
są ludzie, którzy dostają dobre pieniądze, aby włamać się do lokalnego banku i ukraść od nich, aby udowodnić bankowi, że muszą ulepszyć bezpieczeństwo sieci. W większości przypadków banki są wdzięczne za tego typu włamania. To samo oprogramowanie może być jednak wykorzystane do celów przestępczych, w których bank nie byłby tak zadowolony. Oprogramowanie może być zarówno niezwykle użyteczne, jak i niezwykle niebezpieczne, w zależności od tego, kto i jak z niego korzysta.
1.4 wiele nowoczesnych aplikacji często się zmienia-przed ich przedstawieniem użytkownikowi końcowemu, a następnie po uruchomieniu pierwszej wersji. Zaproponuj kilka sposobów budowania oprogramowania, aby zatrzymać pogorszenie z powodu zmian.
przede wszystkim aplikacje powinny być utrzymywane. Oznacza to, że jest powinien być zaprojektowany w takim stopniu, że zmiany mogą być dość łatwo wprowadzane w miarę rozwoju aplikacji. Jednym ze sposobów zminimalizowania pogorszenia jakości spowodowanego zmianami jest umożliwienie wbudowania automatycznych aktualizacji. Weźmy na przykład system operacyjny Windows: ma możliwość automatycznej aktualizacji niezbędnych platform zabezpieczeń i zapory, aby zapewnić, że system jest zawsze „aktualny”.”Ponieważ poprzednie aplikacje są zawsze aktualizowane, ważne jest, aby budować nowe oprogramowanie o tych samych możliwościach.
1.5 rozważ siedem kategorii oprogramowania przedstawionych w sekcji 1.1.2. Czy uważasz, że to samo podejście do inżynierii oprogramowania można zastosować dla każdego? Wyjaśnij swoją odpowiedź.
miliony inżynierów oprogramowania na całym świecie ciężko pracują nad projektami oprogramowania w jednej lub kilku z tych kategorii. W niektórych przypadkach budowane są nowe systemy, ale w wielu innych istniejące aplikacje są korygowane, dostosowywane i ulepszane. Z tego powodu dla poszczególnych kategorii może być wymagane inne podejście do inżynierii oprogramowania. Wiele programów, nad którymi pracują inżynierowie oprogramowania, jest bardzo starych i nadal jest aktualizowanych. Dlatego ma sens, że nie używałbyś tego samego podejścia do istniejącego programu, którego używałbyś do nowego programu.
1.6 rysunek 1.3 umieszcza trzy warstwy inżynierii oprogramowania na warstwie zatytułowanej ” skupienie na jakości.”Oznacza to organizacyjny program jakości, taki jak total quality management. Zrób trochę badań i opracuj zarys kluczowych założeń programu zarządzania jakością.
TQM można zdefiniować jako zarządzanie inicjatywami i procedurami, które mają na celu osiągnięcie wysokiej jakości produktów i usług. W definiowaniu TQM można określić szereg kluczowych zasad, w tym:
- Executive Management-najwyższe kierownictwo powinno działać jako główna siła napędowa TQM i tworzyć środowisko, które zapewnia jego sukces.
- Szkolenie-pracownicy powinni otrzymywać regularne szkolenia dotyczące metod i koncepcji jakości.
- zorientowanie na klienta-poprawa jakości powinna poprawić zadowolenie klienta.
- podejmowanie decyzji-decyzje dotyczące jakości powinny być podejmowane na podstawie pomiarów.
- metodologia i narzędzia-zastosowanie odpowiedniej metodologii i narzędzi zapewnia, że niezgodności są identyfikowane, mierzone i reagowane konsekwentnie.
- Ciągłe Doskonalenie-firmy powinny stale pracować nad poprawą procedur produkcyjnych i jakościowych.
- kultura firmy – kultura firmy powinna mieć na celu rozwijanie zdolności pracowników do współpracy w celu poprawy jakości.
- zaangażowanie pracowników-należy zachęcać pracowników do aktywnego identyfikowania i rozwiązywania problemów związanych z jakością.
1.7 czy inżynieria oprogramowania ma zastosowanie podczas tworzenia aplikacji internetowych? Jeśli tak, w jaki sposób można go zmodyfikować, aby dostosować się do unikalnych cech aplikacji internetowych?
oprogramowanie stało się głęboko osadzone w praktycznie każdym aspekcie naszego życia. Inżynieria oprogramowania ma zastosowanie w przypadku tworzenia nowych programów i aktualizacji istniejących programów-w tym aplikacji internetowych. Aplikacje internetowe są jedną z wielu różnych kategorii oprogramowania. A jednak można argumentować, że WebApps są różne. Jedną z głównych modyfikacji, które wymagają WebApps jest dostępność. Użytkownicy popularnych aplikacji internetowych często domagają się dostępu w trybie 24/7/365. Inną unikalną cechą WebApps jest ich ciągła ewolucja.
w przeciwieństwie do konwencjonalnego oprogramowania, które ewoluuje w serii planowanych, rozmieszczonych chronologicznie wydań, aplikacje internetowe ewoluują w sposób ciągły. Jeśli chodzi o inżynierię oprogramowania zastosowaną do aplikacji internetowych, trzeba usłyszeć wiele głosów. Wygląd i działanie WebApp jest niezaprzeczalną częścią odwołania, które ostatecznie determinują sukces aplikacji.
1.8 w miarę jak oprogramowanie staje się coraz bardziej powszechne, zagrożenia dla społeczeństwa (z powodu wadliwych programów) stają się coraz poważniejszym problemem. Opracuj doomsday, ale realistyczny scenariusz, w którym awaria programu komputerowego może wyrządzić wielką szkodę (ekonomiczną lub ludzką).
jednym z pierwszych tragicznych, ale realistycznych scenariuszy, które przychodzą na myśl, jest awaria określonych programów na samolocie. Główne programy komputerowe na samolotach mają takie samo ryzyko niepowodzenia jak każdy inny program i mogą mieć katastrofalne skutki. Na przykład czujnik, który wykrywa wysokość samolotu, pozwala pilotowi wiedzieć, ile stóp samolot znajduje się nad ziemią. Program ten jest szczególnie niezbędny, gdy warunki pogodowe mogą utrudniać pilotom widoczność pasa startowego.
gdy samolot zaczyna swój przyzwoity i przygotowuje się do lądowania, pilot wykorzystuje te programy, aby poprowadzić samolot do bezpiecznego lądowania. Gdyby ten program się nie powiódł, a pogoda utrudniała pilotom widoczność, pilot może nie wiedzieć, jak daleko jest nad ziemią. Katastrofy lotnicze zdarzają się cały czas, a setki pasażerów giną każdego roku-głównie z powodu nieudanych programów i instrumentów w samolocie.
1.9 opisz ramy procesu własnymi słowami. Kiedy mówimy, że działania ramowe mają zastosowanie do wszystkich projektów, czy oznacza to, że te same zadania robocze są stosowane do wszystkich projektów, niezależnie od wielkości i złożoności? Wyjaśnij.
proces inżynierii oprogramowania nie odbywa się w magiczny sposób bez jakiegoś porządku i planowania organizacyjnego. Ramy procesu tworzy podstawę dla procesu inżynieryjnego przy użyciu niewielkiej liczby działań, które mają zastosowanie do wszystkich projektów. Algorytm krok po kroku dla struktury procesu składa się z pięciu działań: komunikacja, planowanie, Modelowanie, Budowa i wdrażanie. Wszystkie programy, niezależnie od ich wielkości i złożoności, są zgodne z tymi działaniami w tej kolejności. Chociaż szczegóły procesu oprogramowania będą zupełnie inne dla każdego programu, zadania związane z frameworkiem pozostają takie same.
1.10 działania parasolowe występują w całym procesie oprogramowania. Czy uważasz, że są one stosowane równomiernie w całym procesie, lub są niektóre skoncentrowane w jednym lub kilku działaniach ramowych.
ogólnie rzecz biorąc, działania parasolowe są stosowane w całym projekcie oprogramowania i pomagają zespołowi programistycznemu zarządzać i kontrolować postęp, jakość, zmiany i ryzyko. Ponieważ proces inżynierii oprogramowania nie jest sztywnym schematem, który musi być dokładnie przestrzegany przez zespół programistów, proces ten ma wiele miejsca na adaptację.
chociaż działania parasolowe, które występują w całym procesie, są ogólnie stosowane do wszystkich aspektów procesu, Inżynieria powinna być zwinna i elastyczna; specyficzna dla problemu, projektu, zespołu i kultury organizacyjnej. Z tego powodu proces przyjęty dla jednego projektu może znacznie różnić się od procesu przyjętego dla innego projektu, a niektóre działania mogą być skoncentrowane w jednym lub kilku obszarach.