Software Prototyping

Download Report

Transcript Software Prototyping

Programinės įrangos prototipų
naudojimas

Spartus programos kūrimas
reikalavimams atestuoti
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 1
Tikslai




Aprašyti prototipų naudojimą skirtinguose
programinės įrangos kūrimo projektų tipuose.
Išanalizuoti evoliucinį ir išmetimo prototipų
naudojimą.
Pristatyti tris greito prototipų kūrimo metoduskūrimas aukšto lygio kalba, duomenų bazių
programavimas ir komponentų pakartotinis
naudojimas.
Paaiškinti vartotojo sąsajos prototipų
reikalingumą
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 2
Apžvelgiamos temos



Prototipų kūrimas programinės įrangos kūrimo
procese.
Prototipų kūrimo metodikos.
Vartotojo sąsajos prototipų kūrimas.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 3
Sistemos prototipų kūrimas



Prototipo kūrimas yra spartus sistemos kūrimas.
Anksčiau buvo laikoma, kad sukurtas prototipas
yra žemesnio lygio programa nei reikalaujama,
todėl būtinas tolimesnis sistemos vystymas.
Dabar riba tarp prototipų kūrimo ir normalaus
sistemos kūrimo yra ne tokia griežta ir daug
sistemų yra kuriamos naudojant evoliucinį
metodą.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 4
Sistemos prototipų naudojimo
sritys

Dažniausiai prototipai naudojami tam, kad
klientas ir sistemos kūrėjas geriau suprastų
sistemos reikalavimus.



Reikalavimų išgavimas. Vartotojas gali eksperimentuoti su prototipu,
kad pamatytų kaip sistema atlieka reikalingą darbą.
Reikalavimų atestavimas. Prototipai gali aptikti klaidas ir praleistus
reikalavimus.
Prototipų kūrimas gali būti laikomas kaip riziką
mažinanti veikla, kuri mažina su reikalavimais
susijusias rizikas.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 5
Prototipų kūrimo nauda





Nesusipratimų tarp kliento ir programinės
įrangos kūrėjo išaiškinimas.
Trūkstamos ir neaiškios paslaugos gali būti
aptiktos.
Veikianti sistema yra prieinama jau kūrimo
proceso pradžioje.
Prototipai gali būti kaip pagrindas sistemos
specifikacijų išgavimui.
Gali palaikyti vartotojų apmokymą ir sistemos
testavimą.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 6
Prototipo kūrimo procesas
Nustatyti
Establish
prototype
prototipo
objectives
tikslus
Apibrėžti
Define
prototype
prototipo
functionality
funkcionalumą
Develop
Prototipo
prototype
kūrimas
Prototipo
Evaluate
prototype
įvertinimas
Prototyping
Prototipų
planplanas
kūrimo
Outline
Bendrų
bruožų
definition
apibrėžimai
Executable
Veikiantis
prototype
prototipas
Evaluation
Įvertinimo
report
ataskaita
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 7
Prototipų naudojimo įtaka sistemai





Pagerintas sistemos naudojamumas
Sistema sukuriama artimesnė tokiai, kokios
reikia.
Pagerinta sistemos projekto kokybė.
Palengvintas palaikymo procesas.
Sumažintos bendros kūrimo pastangos.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 8
Apžvelgiamos temos



Prototipų kūrimas programinės įrangos procese.
Prototipų kūrimo metodikos.
Vartotojo sąsajos prototipų kūrimas.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 9
Prototipai programinės įrangos
kūrimo procese

Evoliucinis prototipų kūrimas


Sistemos kūrimo metodas, kuriame prototipas sukuriamas ir
tobulinamas per daugelį etapų iki galutinio produkto.
Išmetimo prototipų kūrimas

Prototipas, kuris dažniausiai būna praktinė sistemos realizacija,
yra sukuriamas tam, kad padėtų surasti reikalavimų problemas,
ir tada išmetamas. Sistema yra kuriama naudojant kokį nors kitą
kūrimo procesą.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 10
Prototipų kūrimo tikslai


Evoliucinio prototipų kūrimo tikslas yra pateikti
veikiančią sistemą jos vartotojams. Kūrimas
pradedamas nuo tų reikalavimų, kurie geriausiai
suprantami.
Išmetimų prototipų kūrimo tikslas yra pateikti
sistemos reikalavimus. Prototipų kūrimo procesas
yra pradedamas nuo reikalavimų, kurie yra
mažiausiai suprantami.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 11
Prototipų kūrimo metodai
Evolutionary
Evoliucinis
prototyping
prototipų
kūrimas
Delivered
Pateikiama
system
sistema
Throw-away
Atmetimo
prototipų
kūrimas
Prototyping
Executable Prototype
+ ir
Vykdomas
prototipas
System Specification
sistemos specifikacija
Bendri
Outline
reikalavimai
Requirements
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 12
Evoliucinis kūrimas



Turi būti naudojamas sistemoms kur
specifikacijos negali būti sukurtos iš anksto, pvz.
dirbtinio intelekto sistemose ir vartotojo sąsajos
sistemose.
Paremtas metodais, kurie leidžia greitai gauti
sistemos iteracijas.
Patikrinimas neįmanomas, nes nėra
specifikacijos. Atestavimas reiškia sistemos
adekvatumo pademonstravimą.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 13
Evoliucinis kūrimas
Developabstrakčias
abstract
Sukurti
specification
specifikacijas
Build
Kurti prototype
prototipo
system
sistemas
Use prototype
Vartoti
prototipų
system
sistemą
NE
N
Pateikti
Deliver
sistemą
system
©Ian Sommerville 2000
TAIP
YES
ArSystem
sistema
adekvati?
adequate?
Software Engineering, 6th edition. Chapter 8
Slide 14
Evoliucinio kūrimo privalumai

Greitesnis sistemos pateikimas


Greitas pristatymas ir pritaikymas kartais yra svarbesni nei
funkcionalumas ar ilgalaikio sistemos palaikymo paprastumas.
Vartotojo dalyvavimas sistemos kūrime.

Ne tik labiau tikėtina, kad sistema atitiks vartotojo reikalavimus,
bet ir vartotojas tikrai naudosis kuriama sistema
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 15
Evoliucinis kūrimas




Specifikacijų kūrimas, sistemos projektavimas ir
realizavimas yra neatskiriami vienas nuo kito.
Sistema kuriama kaip eilė patobulinimų, kurie
pateikiami vartotojui.
Naudojamos greitos sistemos kūrimo priemonės,
tokios kaip CASE ir 4GL (ketvirtos kartos
kalbos).
Vartotojo sąsaja dažniausiai kuriama naudojant
GUI (grafininės vartototojo sąsajos) kūrimo
priemones.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 16
Evoliucinio kūrimo problemos

Valdymo problemos.



Palaikymo problemos.


Egzistuojantys valdymo procesai yra pritaikyti programinės
įrangos kūrimo krioklio modeliui.
Reikalingi specialistai su įgūdžiais, kurių ne visuomet būna
programinės įrangos kūrimo komandose.
Pastovūs pakeitimai dažniausiai sugadina sistemos struktūrą,
todėl ilgalaikis sistemų palaikymas yra brangus.
Kontrakto sudarymo problemos.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 17
Evoliucinio kūrimo problemos


Kai kurių reikalavimų dalių (pvz. saugai kritinių
funkcijų) prototipų kūrimas gali būti
neįmanomas, ir todėl nepateikiamas
specifikacijoje.
Nefunkciniai reikalavimai negali būti pakankamai
išsamiai patikrinti sistemos prototipe.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 18
Palaipsninio (incremental) kūrimo
privalumai




Sistema kuriama ir pristatoma stadijomis ( žingsniais) po
to, kai nustatoma bendra sistemos architektūra.
Reikalavimai ir specifikacijos gali būti kuriami kiekvienai
stadijai.
Vartotojas gali eksperimentuoti su pristatoma pateikiama
stadija, kol kitos yra kuriamos, todėl jos tarnauja ir kaip
prototipai.
Skirtas išnaudoti prototipų kūrimo privalumus, tik turi
labiau valdomą procesą ir geresnę sistemos struktūrą.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 19
Palaipsninio kūrimo procesas
Define ką
system
Apibrėžti,
sistema
turi pristatyti
deliverables
Design
system
Suprojektuoti
sistemos
architektūrą
architectur
e
Specify
system
Specifikuoti
increment
sistemos
stadijas
Build
Sukurtisystem
sistemos
increment
stadijas
Validate
Atestuoti
increment
stadijas
NE
NO
Deliver baigtą
final
Pristatyti
system
sistemą
©Ian Sommerville 2000
YES
TAIP
ArSystem
sistema
complete?
baigta?
Validate
Atestuoti
sistemą
system
Software Engineering, 6th edition. Chapter 8
Integrate
Apjungti
stadijas
increment
Slide 20
Išmetimo prototipų kūrimas



Naudojamas sumažinti sistemos reikalavimų
riziką.
Prototipas pradedamas kurti nuo pradinės
specifikacijos, pateikiamas eksperimentavimui ir
po to išmetamas.
Išmetimo prototipas negali būti laikomas galutine
sistema



kai kurios sistemos charakteristikos gali būti praleistos
nėra specifikacijų ilgalaikiam sistemos palaikymui
sistema bus prastos struktūros ir sunkiai palaikoma
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 21
Išmetimo prototipų kūrimas
Outline
Bendri
requirements
reikalavimai
Develop
Prototipo
prototype
kūrimas
Evaluate
Prototipo
prototype
įvertinimas
Specify
Specifikuoti
system
sistemą
Pakartotinai
naudojami
Reusable
components
komponentai
Develop
Sukurti
programinę
software
įrangą
©Ian Sommerville 2000
Validate
Atestuoti
system
sistemą
Pateikti
Delivered
software
programinės
system
įrangos
sistemą
Software Engineering, 6th edition. Chapter 8
Slide 22
Prototipų pateikimas ( delivery)


Kūrėjai gali būti verčiami pateikti išmetamą
prototipą kaip galutinę sistemą
Tai nėra rekomenduojama:




gali būti neįmanoma suderinti prototipą taip, kad jis atitiktų
nefunkcinius reikalavimus
prototipai nebus dokumentuoti
sistemos struktūra degraduos dėl pakeitimų, padarytų kuriant
sistemą
normalūs organizacinės kokybės standartai gali būti
nepritaikomi
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 23
Apžvelgiamos temos



Prototipų kūrimas programinės įrangos procese.
Prototipų kūrimo metodikos.
Vartotojo sąsajos prototipų kūrimas.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 24
Spartaus prototipų kūrimo
technologijos

Įvairūs metodai gali būti naudojami greitam
prototipų kūrimui:





Dinamiškas kūrimas aukšto lygio kalbomis
Duomenų bazių programavimas
Komponentų ir programų surinkimas
Tai nėra išskirtiniai metodai, jie dažnai naudojami
kartu.
Vizualus programavimas yra būdingas didžiajai
daliai prototipų kūrimo sistemų.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 25
Dinamiškos aukšto lygio kalbos




Kalbos, kurios turi galingas duomenų apdorojimo
priemones.
Reikalauja didelės vykdymo palaikymo sistemos.
Normaliai nenaudojamos didelių sistemų kūrimui.
Kai kurios kalbos pateikia puikias vartotojo
sąsajos kūrimo priemones.
Kai kurios kalbos turi integruotą paramos aplinką,
kurios priemonės gali būti naudojamos prototipų
kūrimui.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 26
Prototipų kūrimo kalbos
Language
Smalltalk
Java
Prolog
Lisp
©Ian Sommerville 2000
Type
Objectoriented
Objectoriented
Logic
List-based
Application domain
Interactive systems
Interactive systems
Symbolic processing
Symbolic processing
Software Engineering, 6th edition. Chapter 8
Slide 27
Prototipų kūrimo kalbos
pasirinkimas




Kokia yra programos taikymų sritis?
Kokia sąsaja su vartotoju reikalinga?
Kokios paramos aplinkos pateikiamos kartu su
kalba?
Skirtingos sistemos dalys gali būti
programuojamos skirtingomis kalbomis. Tačiau,
gali būti problemų susijusių su ryšiais tarp kalbų.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 28
Duomenų bazių programavimo
kalbos





Specializuotos kalbos, skirtos verslo sistemoms,
kuriamoms remiantis duomenų bazių valdymo sistema.
Paprastai turi duomenų bazių užklausų kalbą, formų
generatorių, ataskaitų generatorių ir elektroninę lentelę.
Gali būti integruotos su CASE priemonėmis.
Kalba ir aplinka kartais žinoma kaip ketvirtos kartos kalba
(4GL).
Efektyvios kainos atžvilgiu mažoms-ir vidutinės apimties
verslo sistemoms.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 29
Duomenų bazių programavimas
Interface
Sąsajos
generator
generatorius
Elektroninė
Spreadsheet
lentelė
DB
DB
programming
programavimo
language
kalba
Report
Ataskaitų
generator
generatorius
Database bazių
management
Duomenų
valdymosystem
sistema
Fourth-gener
ationkalba
language
Ketvirtos kartos
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 30
Komponentų ir taikymo programų
surinkimas



Prototipai gali būti greitai sukurti iš rinkinio
pakartotinai naudojamų komponentų ir šiokio
tokio mechanizmo, skirto tiems komponentams
surišti.
Sujungimo mechanizmas turi turėti kontrolės
priemones ir priemones komponentų ryšiams
užtikrinti.
Sistemos specifikacija turi įvertinti esančių
komponentų parengtumą ir funkcionalumą
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 31
Prototipų kūrimas su pakartotinu
naudojimu

Kūrimas taikymo lygyje



Visos programos sistemos yra sujungiamos su prototipu taip,
kad jos dalintųsi funkcionalumu.
Pavyzdžiui, jei reikia teksto redagavimo, gali būti naudojamas
standartinis tekstų redaktorius.
Kūrimas komponentų lygyje


Atskiri komponentai yra jungiami naudojant standartinę schemą
sistemai realizuoti.
Schema gali būti scenarijaus kalba arba integracijos schema
tokia kaip CORBA.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 32
Pakartotinio naudojimo
komponentų sujungimas
Reusable
Pakartotinio
software
naudojimo
komponentai
components
Component
Komponentų
composition
sujungimo
schema
framework
Executable
Vykdomas
prototipas
prototype
Control
and
Kontrolės
ir sujungimo
kodas code
integration
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 33
Sudėtiniai dokumentai




Kai kurioms programoms prototipas gali būti
sukurtas kaip sudėtinis dokumentas.
Tai yra dokumentas su aktyviais elementais (toks
kaip elektroninė lentelė), kurios leidžia vartotojo
skaičiavimus.
Kiekvienas aktyvus elementas turi surištą
programą, kuri įvykdoma, kai elementas yra
pažymimas.
Dokumentas yra skirtingų taikymo programų
integratorius
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 34
Taikymo programų ryšiai
sudėtiniame dokumente
Compound
document
Sudėtinis dokumentas
Text 11
Tekstas
Table 11
Lentelė
Table 22
Lentelė
Tekstų
redaktorius
Word processor
©Ian Sommerville 2000
Text 22
Tekstas
Text 44
Tekstas
Text 33
Tekstas
Sound
Garsas 22
Spreadsheet
Elektroninė
lentelė
Software Engineering, 6th edition. Chapter 8
Sound
Garsas 11
Text 55
Tekstas
Audio
player
Garso
grotuvas
Slide 35
Vizualus programavimas



Scenarijaus kalbos, tokios kaip Visual Basic
palaiko vizualinį programavimą, kur prototipas
sukuriamas kuriant vartotojo sąsają iš standartinių
komponentų ir juos apjungiant.
Didelės komponentų bibliotekos egzistuoja tam,
kad palaikytų šį kūrimo tipą.
Jos gali būti priderintos, kad atitiktų specifinius
programos reikalavimus.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 36
Vizualus programavimas su
pakartotiniu panaudojimu
Hypertext
Hyperteksto
vaizdavimo
display
component
komponentas
Datos
Date component
komponentas
File
Edit
Views
12th January 2000
Ribų tikrinimo
Range
checking
script
programa
Layout
Options
Help
General
Index
3.876
User prompt
Vartotojo
priminimo
component
+
komponentas
+
programa
script
Laisvo
Draw braižymo
canvas
component
komponentas
Tree display
Medžio
vaizdavimo
component
komponentas
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 37
Problemos dėl vizualaus
programinės įrangos kūrimo



Sunku koordinuoti komandinį ( Team-based)
kūrimą.
Nėra aiškios sistemos architektūros.
Sudėtingi ryšiai tarp programos dalių gali sukelti
palaikymo problemas.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 38
Apžvelgiamos temos



Prototipų kūrimas programinės įrangos procese.
Prototipų kūrimo metodikos.
Vartotojo sąsajos prototipų kūrimas.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 39
Vartotojo sąsajos prototipų
kūrimas




Neįmanoma iš anksto efektyviai specifikuoti vartotojo
interfeiso “look and feel”, todėl būtinas prototipų kūrimas.
Vartotojo sąsajos kūrimas sunaudoja didžiąją dalį sistemos
kūrimo kaštų.
Vartotojo sąsajos generatoriai gali būti naudojami sąsajos
“piešimui” ir modeliuoti jos funkcionalumą su
komponentais, susietais su vartotojo sąsajos elementais.
Web sąsajų prototipai gali būti kuriami naudojant web
puslapių redaktorių.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 40
Esminiai aspektai




Prototipas gali būti naudojamas tam, kad
vartotojai susikurtų konkrečią nuomonę apie
sistemos galimybes.
Prototipų kūrimas vis dažniau naudojamas
sistemų kūrime, kur spartus kūrimas yra būtinas.
Išmetimo prototipų kūrimas yra naudojamas
sistemos reikalavimų supratimui.
Evoliuciniame prototipų kūrime sistema yra
kuriama vystant pradinę versiją iki galutinio
produkto
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 41
Esminiai aspektai



Spartus prototipų kūrimas yra būtinas. Tai gali reikalauti
funkcionalumo praleidimo ir/ar ne-funkcinių apribojimų
nesilaikymo.
Prototipų kūrimo metodai naudoja labai aukšto lygio
programavimo kalbas, duomenų bazių kūrimo ir kūrimo iš
pakartotinio naudojimo komponentų programinę įrangą.
Prototipų kūrimas yra būtinas sistemos dalims tokioms
kaip vartotojo sąsaja, kurių neįmanoma iš anksto
efektyviai specifikuoti. Vartotojai turi būti įtraukiami į
prototipo vertinimą.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 42