3. 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
4. ˚
DULEŽITÉ SOUČÁSTI VÝVOJE SOFTWARE
1. Dokumentace
# = 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
2. Testování funkčnosti Unit testing, functional testing, ...
require 'test/unit'
class TestTextAnalyzer < Test::Unit::TestCase
def test_num_characters
assert_equal( 0, TextAnalyzer.new(quot;quot;).characters )
end
end
3. Testování výkonu Benchmarking
require 'benchmark'
b = Benchmark.measure do
100.times do
Person.create( :name => 'John', :surname => 'Smith', :email => 'smith@hotmail.com' )
end
end
Úvod do programování Přednáška 6
5. 2 Vedení softwarového projektu
Úvod do programování
18. 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
20. FAKT: Průměrný projekt zabere
až dvakrát tolik času, než bylo
původně plánováno
— The Standish Group CHAOS Database, 2004
www.infoq.com/articles/chaos-1998-failure-stats
Úvod do programování Přednáška 6
25. ˚
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
27. 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
28. 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
30. Návrh
FÁZE 1 • Katalog produktů
Implementace
Testování/Nasazení
Návrh
• Košík
FÁZE 2 Implementace
• Objednávka
Testování/Nasazení
Návrh
• Historie objednávek
FÁZE 3 Implementace
• Platební brána
Testování/Nasazení
Úvod do programování Přednáška 6