Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Podobne dokumenty
Projektowanie obiektowe oprogramowania Wykład 4 - SOLID GRASP Wiktor Zychla 2012

Programowanie Zespołowe

Wykład 5. Inżynieria oprogramowania MIS s MIO s MIS n Listopad 2014

Projektowanie obiektowe oprogramowania Wykład 3 - SOLID GRASP Wiktor Zychla 2016

Zasady projektowania obiektowego

Program szkolenia: Zaawansowane programowanie w C++

Program szkolenia: Wzorce projektowe w C++

Projektowanie obiektowe oprogramowania Wykład 3 - SOLID GRASP Wiktor Zychla 2017

Dobry start do profesjonalnego programowania w C++ dla. początkujących programistów

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Projektowanie obiektowe oprogramowania Wykład 3 - SOLID GRASP Wiktor Zychla 2018

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Paweł Rajba

Programowanie 2. Język C++. Wykład 15.

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Program szkolenia: Wzorce projektowe i architektoniczne oraz efektywne techniki Object Oriented Design dla projektantów systemów

Programowanie zorientowane obiektowo. Mateusz Kołecki

Podstawy programowania III WYKŁAD 4

Inżynieria Programowania - Projektowanie architektoniczne

Technologia programowania

problem w określonym kontekście siły istotę jego rozwiązania

Projektowanie aplikacji JEE z użyciem wzorców projektowych i notacji UML

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Inżynieria oprogramowania (Software Engineering)

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Modelowanie i Programowanie Obiektowe

Wzorce projektowe. dr inż. Marcin Pietroo

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Programowanie obiektowe

Projektowanie logiki aplikacji

Programowanie obiektowe

Projektowanie systemów informatycznych. wykład 6

Projektowanie i architektura frameworka w języku PHP. Tomasz P.F. Kowalczyk

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Programowanie obiektowe

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Bydgoszcz szuka talento w

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Wprowadzenie do zasad SOLID - czyli jak pisać SOLIDny kod

Metodyki zwinne wytwarzania oprogramowania

Inżynieria oprogramowania

Modelowanie obiektowe

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Podstawy Programowania Programowanie Obiektowe

Zasady organizacji projektów informatycznych

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Programowanie obiektowe

Pytania z przedmiotów kierunkowych

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

PRZEWODNIK PO PRZEDMIOCIE

UML cz. II. UML cz. II 1/38


Zaawansowane programowanie w C++ (PCP)

Faza analizy (modelowania) Faza projektowania

Wykład 1 Inżynieria Oprogramowania

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Opis metodyki i procesu produkcji oprogramowania

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Wykład I. Wprowadzenie do baz danych

Inżynieria oprogramowania. Wykład 6 Analiza i specyfikowanie wymagań

Specyfikowanie wymagań przypadki użycia

Wprowadzenie do programowania aplikacji mobilnych

Wytwórstwo oprogramowania. michał możdżonek

Receptury - niezbędnik projektanta i architekta

Podstawy Programowania Obiektowego

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Spis treúci. 1. Wprowadzenie... 13

Świat rzeczywisty i jego model

Java Persistence API - zagadnienia zaawansowane

Historia modeli programowania

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

SOLIDnie śmierdzący kod.

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

UPEDU: Analiza i projektowanie (ang. analysis and design discipline)

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Język programowania. Andrzej Bobyk

PRZEWODNIK PO PRZEDMIOCIE

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

UML w Visual Studio. Michał Ciećwierz

Wprowadzenie do UML, przykład użycia kolizja

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Klasy abstrakcyjne i interfejsy

Etapy życia oprogramowania

Metodyki zwinne wytwarzania oprogramowania

Wprowadzenie do systemów informacyjnych

Transkrypt:

Wykład 4 MIS-1-505-n Inżynieria oprogramowania Październik 2014 Metody Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie 4.1

Agenda 1 2 3 Metody Metody 4 5 4.2

Implementacja Metody 4.3

Implementacja = + Programowanie Implementacja = + Programowanie Projekt to opis: struktury oprogramowania danych w systemie interfejsów między komponentami użytych algorytmów Metody 4.4

Projektant nie tworzy od razu końcowego projektu! Projekt opracowuje się iteracyjnie w czasie Projekt może mieć wiele różnych wersji W miarę upływu czasu projekt jest coraz bardziej formalny i szczegółowy Powraca się do już opracowanych fragmentów w celu ich poprawy Sprzężenie zwrotne między fazami i powtarzanie prac sa nieuniknione w każdym procesie! Metody 4.5

Wyróżniamy różne rodzaje : (Architektury systemów rozproszonych) oprogramowania czasu rzeczywistego z użyciem wielokrotnym interfejsu użytkownika Metody 4.6

: architektury Specyfikowanie abstrakcyjne interfejsów komponentów struktur danych algorytmów Metody 4.7

Metoda ad hoc: Nieformalny projekt Projekt jest zmieniany w miarę programowania Nie ma formalnej kontroli zmian Nie ma zarzadzania projektem Po zakończeniu fazy implementacji projekt jest najczęściej niepoprawny i niekompletny Metody 4.8

Metody strukturalne Graficzne modele systemu Duża ilość dokumentacji projektowej Obejmuja modele przepływu danych, model encja-zwiazek, model strukturalny, modele dziedziczenia, statycznych i dynamicznych zwiazków i inne. Przykładowe metody strukturalne: Structured Design Structured System Analysis Jackson System Development Różne dla go Metody 4.9

Co to jest projektowanie? Systemy sa podzielone na podsystemy, powiazane poprzez interfejsy. Definicja Poczatkowa faza procesu, w której identyfikuje się podsystemy i ustala zrab sterowania oraz komunikacji to projektowanie. Produktem tej fazy jest opis architektury oprogramowania. Metody 4.10

Zalety go Komunikacja z uczestnikami Podstawa do dyskusji na bardzo różnych poziomach Analiza systemu Ujawnienie architektury we wczesnej fazie pozwala na przeprowadzenie analizy pod katem krytycznych cech systemu Użycie wielokrotne w wielkiej skali Architektura jest zwartym i łatwym do opanowania opisem organizacji systemu i współpracy komponentów Metody 4.11

Czynności go 1 Strukturalizacja systemu 2 Modelowanie sterowania 3 Podział na moduły Podsystem a moduł: Podsystem : jego usługi nie zależa od usług oferowanych przez inne systemy; składa się z modułów; maja interfejsy do komunikacji z innymi podsystemami Moduł : komponent systemu; oferuje co najmniej jedn a usługę innym modułom; korzysta z innych modułów; zwykle nie jest traktowany jako niezależny system Metody 4.12

Model architektoniczny 4+1 Metody 4.13

jest to strategia, w której projektanci systemu myśla w kategoriach bytów, a nie operacji albo funkcji Działajacy system składa się z oddziałujacych na siebie obiektów. Obiekty przechowuja swój lokalny stan i oferuja operacje na tym stanie Obiekty ukrywaja informacje o reprezentacji stanu i ograniczaja do niego dostęp. Metody 4.14

Jest częścia tworzenia go w którym strategie sa stosowane w czasie całego procesu tworzenia: Analiza obiektowa Programowanie Metody 4.15

: pierwsze pięć zasad S.O.L.I.D. S SRP Single responsibility principle O OCP Open/closed principle L LSP Liskov substitution principle I ISP Interface segregation principle D DIP Dependency inversion principle Metody 4.16

SRP Single responsibility principle a class should have only a single responsibility (i.e. only one potential change in the software s specification should be able to affect the specification of the class) Zasada pojedynczej odpowiedzialności Nigdy nie powinno być więcej niż jednego powodu do modyfikacji klasy. Metody 4.17

OCP Open/closed principle software entities... should be open for extension, but closed for modification. Zasada otwarte-zamknięte elementy systemu takie, jak klasy, moduły, funkcje itd. powinny być otwarte na rozszerzenie, ale zamknięte na modyfikacje Metody 4.18

LSP Liskov substitution principle objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program. Zasada podstawienia Liskov Funkcje które używaja wskaźników lub referencji do klas bazowych, musza być w stanie używać również obiektów klas dziedziczacych po klasach bazowych, bez dokładnej znajomości tych obiektów. Metody 4.19

ISP Interface segregation principle many client-specific interfaces are better than one general-purpose interface". Zasada segregacji interfejsów wiele interfejsów odpowiadaj acych konkretnym potrzebom jest lepsze niż jeden ogólny interfejs do wszystkiego Metody 4.20

DIP Dependency inversion principle one should Depend upon Abstractions. Do not depend upon concretions. Zasada odwrócenia zależności Zależności powinny opierać się na abstrakcjach, a nie na ich konkretnych realizacjach. Metody 4.21

G.R.A.S.P. GRASP General Responsibility Assignment Software Patterns (or Principles) Controller Creator High Cohesion Indirection Information Expert Low Coupling Polymorphism Protected Variations Pure Fabrication Metody 4.22