[ Pobierz całość w formacie PDF ]
Inżynieria oprogramowania podstawy na podstawie Ian Sommerville Inżynieria oprogramowania WNT 2003 Gospodarki wszystkich rozwiniętych krajów zależą od oprogramowania l Coraz więcej i więcej systemów wymaga niezawodnego oprogramowania l Inżynieria oprogramowania zajmuje się teorią, metodami i narzędziami związanymi z wytwarzaniem oprogramowania l Obecnie wytwarzanie oprogramowania jest poważną gałęzią gospodarki narodowej rozwiniętego kraju Co to jest inżynieria oprogramowania? l Jest to dziedzina inżynierii, która obejmuje wszystkie aspekty tworzenia oprogramowania od fazy początkowej do jego pielęgnacji l Inżynierowie oprogramowania pracują w sposób systematyczny i uporządkowany ponieważ jest to najskuteczniejszy sposób tworzenia oprogramowania wysokiej jakości Koszty oprogramowania l Koszty oprogramowania są często dominującym składnikiem kosztów całego systemu. Zdarza się, że koszt oprogramowania znacznie przekracza samą wartość sprzętu komputerowego np. komputera osobistego. l Koszt utrzymania i konserwacji oprogramowania jest większy niż koszt jego wytworzenia. Wieloletnia konserwacja oprogramowania może kosztować wielokrotnie więcej niż jego zakup. l Inżynieria oprogramowania zajmuje się efektywnymi metodami wytwarzania i implementowania oprogramowania. Co to jest oprogramowanie ? l Są to programy komputerowe, cała związana z nimi dokumentacja i dane konfiguracyjne l Rodzaje produktów oprogramowania • Powszechne • Dostosowane (na zamówienie) Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyka ? l Zasadniczo informatyka obejmuje teorie i podstawowe zasady działania komputerów. Inżynieria oprogramowania obejmuje praktyczne problemy związane z tworzeniem oprogramowania l Byłoby dobrze gdyby inżynier programowania znał teorie informatyczne, z drugiej strony nie zawsze przystają one do rzeczywistości Jaka jest różnica pomiędzy inżynierią oprogramowania a inżynierią systemów? l Inżynieria systemów komputerowych obejmuje wszystkie aspekty tworzenia i ewolucji systemów komputerowych, w których oprogramowanie odgrywa zasadniczą rolę. l Inżynierowie systemów biorą udział w specyfikacji systemu i definiowania jego ogólnej architektury Co to jest proces tworzenia oprogramowania ? l Jest to zbiór czynności i związanych z nimi wyników, które zmierzają do opracowania produktu programowego l Zasadnicze czynności wspólne dla wszystkich procesów • Specyfikacja oprogramowania • Tworzenie oprogramowania • Zatwierdzenie oprogramowania • Ewolucja oprogramowania Co to jest model procesu tworzenia oprogramowania? l Jest to uproszczona prezentacja procesu tworzenia oprogramowania. Modele ze swej natury są uproszczeniami l Przykłady takich modeli: • Model przepływu prac • Model przepływu danych (lub model czynności) • Model rola-akcja l Przykłady ogólnych modeli (paradygmatów) tworzenia oprogramowania • Model kaskadowy • Tworzenie ewolucyjne • Formalne przekształcenia • Składanie systemu z komponentów ponownego użycia Jakie są koszty inżynierii oprogramowania? l Koszty wytworzenia oprogramowania można w przybliżeniu określić na 60%, natomiast 40% stanowią koszty testowania. Ewolucja oprogramowania może przewyższyć koszty jego wytworzenia l Koszty zmian oprogramowania użytkowanego przez długi okres czasu mogą kilkukrotnie przekroczyć koszty jego wytworzenia l Koszty zależą od stosowanego modelu Co to są metody inżynierii oprogramowania? l To jest uporządkowane podejście do tworzenia oprogramowania, które obejmuje l Opisy modeli systemu • Np. Modele obiektów, modele przepływu itp. l Reguły • Ograniczenia, którym podlegają modele systemu l Zalecenia • Heurystyki, które określają dobre zwyczaje projektantów l Poradnictwo • Opisy czynności, które należy wykonać Co to jest CASE (Computer-Aided Software Engineering) l CASE obejmuje rożne programy wykorzystane do wspomagania czynności procesu tworzenia oprogramowania (np. edytory notacji, generatory kodów) l Upper-CASE • Związane z początkowymi fazami tworzenia oprogramowania l Lower-CASE • Wspomagają implementowanie i testowanie Jakie właściwości ma dobre oprogramowanie? l Konkretny zbiór właściwości zależy od zastosowania, niemniej można podąć ogólny zbiór właściwości l Zdolność do pielęgnacji • Zdolność do ewolucji zgodnie z potrzebami klientów l Niezawodność • Nie powinno powodować fizycznych lub ekonomicznych katastrof w przypadku awarii l Efektywność • Nie powinno marnotrawić zasobów systemu takich jak pamięć czy czas procesora l Użyteczność • Powinno być użyteczne, bez zbędnego wysiłku ze strony użytkownika (np. interfejsy) Jakie są najistotniejsze wyzwania dla inżynierów oprogramowania? l Wyzwanie dziedzictwa • Pielęgnacja i modyfikacji działających dużych systemów, pełniących poważne funkcje gospodarcze l Wyzwanie różnorodności • Wymóg działania oprogramowania w systemach rozproszonych przy rożnych typach komputerów I systemów wspomagających l Wyzwanie doręczenia • Wymóg dostarczanie gotowego programowania w skróconym czasie bez utraty jakości Odpowiedzialność etyczna i zawodowa l Inżynierowie oprogramowania muszą zaakceptować fakt, że ponoszą znacznie większą odpowiedzialność niż tylko wynikająca z ich technicznych umiejętności l Muszą postępować etycznie i moralnie, jeśli chcą być uważani za profesjonalistów l Zachowywać się etycznie, to więcej niż tylko przestrzegać obowiązujące prawo Główne tezy l Inżynieria oprogramowania to dziedzina inżynierii, która obejmuje wszystkie aspekty tworzenia oprogramowania. l Produkty programowe składają się z utworzonych programów oraz związanej z nimi dokumentacji. Zasadniczymi atrybutami produktów są zdatność do pielęgnacji, niezawodność, efektywność i użyteczność. l Proces tworzenia oprogramowania składa się z czynności prowadzących do utworzenia produktu programowego. Głównymi czynnościami są specyfikacja oprogramowania, tworzenie, zatwierdzenie i ewolucja. l Metody to uporządkowane sposoby budowy oprogramowania. Obejmują sugestie wyboru procesu tworzenia, mutacji, reguły określające, jakie opisy systemu opracować, a także wskazówki projektowe. l Narzędzia CASE to systemy komputerowe, które są przeznaczone do wspomagania rutynowych czynności procesu tworzenia takich jak praca nad diagramami projektowymi, sprawdzanie poprawności diagramów oraz śledzenie wykonanych testów. l Inżynierowie oprogramowania ponoszą odpowiedzialność przed kolegami po fachu i społeczeństwem. Nie powinni zajmować się jedynie aspektami technicznymi. l Stowarzyszenia zawodowe publikują kodeksy postępowania , które definiują standardy zachowania oczekiwane od swoich członków.
[ Pobierz całość w formacie PDF ] zanotowane.pldoc.pisz.plpdf.pisz.plzolka.keep.pl
|