Úvod do programování 6

Preview:

DESCRIPTION

Metodiky vývoje sofftware; Agilní vývoj; Projektový management

Citation preview

Úvod do programování aneb Do nitra stroje

Karel MinaříkPŘEDNÁŠKA 6

Úvod do programování

Opakování1

Úvod do programování Přednáška 6

DOMÁCÍ ÚKOL

Navrhněte a naprogramujte třídu TextAnalyzer

TextAnalyzer:• text• characters• words• pages• unique_words• most_frequent_words• most_frequent_word

Úvod do programování Přednáška 6

DULEŽITÉ SOUČÁSTI VÝVOJE SOFTWARE

1. Dokumentace

2. Testování funkčnosti Unit testing, functional testing, ...

3. Testování výkonu Benchmarking

˚

# = Obecna trida pro definici zvirat# Od teto tridy jsou odvozena dalsi zvrata jako je Dog, Sheep, atd.class Animal... # Nakrmi zvire --zvysi hodnotu +stuff_in_belly+. Pokud je hodnota vyssi nez 3 zavola metodu Animal.poop def feed ...end% doc animals.rb --main Animal

require 'test/unit'class TestTextAnalyzer < Test::Unit::TestCase def test_num_characters assert_equal( 0, TextAnalyzer.new("").characters ) endend

require 'benchmark'b = Benchmark.measure do 100.times do Person.create( :name => 'John', :surname => 'Smith', :email => 'smith@hotmail.com' ) endend

Úvod do programování

Vedení softwarového projektu2

Úvod do programování Přednáška 6

Jak fungují projekty v IT?

Úvod do programování Přednáška 6

Jak zákazník vysvětlil, co potřebuje...

Úvod do programování Přednáška 6

Jak tomu porozuměl obchodník...

Úvod do programování Přednáška 6

Jak to navrhnul analytik...

Úvod do programování Přednáška 6

Jak to popsal zákazníkovi obchodník...

Úvod do programování Přednáška 6

Co dodali programátoři...

Úvod do programování Přednáška 6

Jak vypadala dokumentace...

Úvod do programování Přednáška 6

Co bylo zákazníkovi vyfakturováno...

Úvod do programování Přednáška 6

Kdy byl projekt předán...

Úvod do programování Přednáška 6

Co zákazník skutečně potřeboval...

Definovaný proces × Empirický proces

Úvod do programování Přednáška 6

Definovaný proces přináší stále tytéž výsledky při dodržení týchž postupů

Empirický proces se musí neustále adaptovat na měnící se podmínky

Úvod do programování Přednáška 6

Vývoj software je empirický proces

Úvod do programování Přednáška 6

FAKT: Průměrný projekt zabere až dvakrát tolik času, než bylo

původně plánováno

— The Standish Group CHAOS Database, 2004www.infoq.com/articles/chaos-1998-failure-stats

Úvod do programování Přednáška 6

Úvod do programování Přednáška 6

„Změna“

„Změna“aneb čeho se programátoři nejvíce bojí...

Úvod do programování Přednáška 6

METODIKY VEDENÍ PROJEKTU

„Vodopádový“ model Waterfall

„Spirálový“ model Spiral

Iterativní a inkrementální model Iterative

Agilní vývoj Agile development

˚

Úvod do programování Přednáška 6

Agilní vývojwww.agilemanifesto.org

Úvod do programování Přednáška 6

Osobnosti a komunikace místo procesů a nástrojů

Fungující software místo rozsáhlé dokumentace

Spolupráce se zákazníkem místo smlouvání a vyjednávání

Vyrovnávání se se změnami místo dodržování plánu

Úvod do programování Přednáška 6

Principy Manifestu agilního vývoje

Sledujeme tyto principy:Naší nejvyšší prioritou je uspokojit zákazníka tím, že mu dodáváme hodnotný software co nejčastěji

a nepřetržitě.

Vítáme požadavky na změny, i když přicházejí ke konci vývoje. Agilní procesy využívají změnu ke

zvýšení konkurenceschopnosti zákazníka.

Dodáváme fungující software co nejčastěji, jednou za pár týdnů či měsíců. Čím dříve, tím lépe.

Lidé z obchodu a vývojáři se musí setkávat a pracovat spolu denně v průběhu celého projektu.

Úvod do programování Přednáška 6

Návrh

Implementace

Testování/Nasazení

Úvod do programování Přednáška 6

Návrh

Implementace

Testování/Nasazení

FÁZE 1

Návrh

Implementace

Testování/Nasazení

FÁZE 2

Návrh

Implementace

Testování/Nasazení

FÁZE 3

• Katalog produktů

• Košík• Objednávka

• Historie objednávek• Platební brána

Úvod do programování Přednáška 6

SCRUM

www.mountaingoatsoftware.com/scrum_a_presentation

Úvod do programování Přednáška 6

PRINCIPY METODIKY SCRUM

1. Krátké vývojové cykly — sprints

2. Denní schůzky „vestoje“ — stand-up meetings

3. Revize cyklu — sprint review

4. Stručný seznam funkcí k implementaci — sprint back-log

Úvod do programování Přednáška 6

www.agilemodeling.com/artifacts/userStory.htm

„User stories“

Úvod do programování Přednáška 6

Úvod do programování Přednáška 6

Ganttův diagram (Gantt chart)

Úvod do programování Přednáška 6

Plánování je důležité zejména v krizi

Úvod do programování Přednáška 6

Úspěch projektu je týmová záležitost

Role jednotlivce je velmi omezená

Úvod do programování Přednáška 6

Ale… cokoliv projektový manažer přinese do týmu — dobrého nebo

zlého — „nakazí“ zbytek týmu

Děkuji!

Recommended