Üldpõhimõtted ja lähenemisviisid tarkvaraarendusele. Juga Cascade Development mudelid Spiral Extreme programmeerimine UI prototüüpimine inkrementaalne. Süsteemi lähenemisviis tarkvaraarendusele. Süsteemse lähenemise ajalist ja "ruumilist" aspekte

Juga Cascador Development mudelid Spiraal Extreme Programmeerimine UI Prototyping Incremental W-mudeli katsetamine Unified arendusprotsess tarkvara (USDP) MSF Metoodika

Jugade mudeli analüüs Nõuete koostatakse toote spetsifikatsiooni disain koostatud tootearhitektuuri rakendamise arendamise lähtekoodi integratsiooni üksikute osade lähtekoodi testimise ja kõrvaldades defekte defekte

Esialgsete nõuete projekteerimise analüüs Integratsiooni rakendamise projekteerimine Uute nõuete analüüs / Arendusprodukti vabastamise kava

UI prototüüpimine Toote vabastamise arendamise muudatused Tähendusnõuded ja spetsifikatsioon Prototüübi muutmine ja täiustamine Mõned funktsionaalsus Põhifunktsioonide liidese prototüüp Esialgne spetsifikatsioon

Inkrementaalne arendamise iteratsioon 1 iteratsioon 2 .... Nõuete projekteerimise rakendamise komponendi katsetamine integratsiooni katsetamine Ühtne kogu iteratsiooni n

Unified tarkvaraarenduse protsess (USDP) Ø Mudeli kasutamise valikud kirjeldavad juhtumeid, milles taotlust kasutatakse. Ø Analüütiline mudel kirjeldab taotluse põhiklassid. Ø disainimudel kirjeldab suhtlemist ja suhteid klasside ja spetsiaalsete objektide vahel Ø Kasutuselevõtu mudel kirjeldab arvutite tarkvara jaotust. Ø Rakendusmudel kirjeldab programmi koodi sisemist korraldust. Ø Testimismudel koosneb katsekomponentidest, testimisprotseduuridest ja mitmesugustest katsetamise võimalustest

Unified tarkvaraarendusprotsess (USDP) ITERi kogumine 1 .... ITER N Design ITER 1 .... ITER N rakendamise ITER 1 .... ITER n projekteerimine ITER 1 .... ITER N testimine ITER 1 .... ITER N.

Tüüpilised tarkvaraarhitektuurikomponendid ja tüüpiline Ø Ø Ø Ø Organisatsiooni programm Põhiklasside põhiklasside andmeorganisatsioon Ettevõtlusreeglid Kasutajaliidese ressursside haldamise turvalisus Skalestatavuse koostoime teiste süsteemidega (integratsioon) rahvusvahelistumine, lokaliseerimine Vigade väljundviga

Tarkvaratoodete arhitektuuri tüüpilised komponendid ja tüüpilised veatolerantsuse nõuded on süsteemi omadused, mis suurendavad selle usaldusväärsust vigade tuvastamisega, taastamise ja halva mõjude lokaliseerimisega süsteemi jaoks. Reaalse süsteemi väljatöötamisel tõrkekindluse tagamiseks on vaja ette näha igasuguseid olukordi, mis võivad põhjustada süsteemi ebaõnnestumist ja arendada mehhanisme ebaõnnestumiste töötlemiseks. Usaldusväärsus - süsteemi võime taluda erinevaid keeldumisi ja ebaõnnestumisi. Keeldumise üleminek süsteemi tulemusena vea täielikult kasutuskõlbmatu riigi. Rike - vea süsteemi toimimises, mis ei too kaasa süsteemi ebaõnnestumist. Mida väiksem on teatud ajavahemiku ebaõnnestumised ja ebaõnnestumised, peetakse süsteemi usaldusväärsemaks.

Tarkvaratoodete arhitektuuri tüüpilised komponendid ja tüüpilised nõuded usaldusväärsuse kõvera N T 1 t jaoks on järgmine, seda raskem leiab vea. Süsteemi raskem, seda suurem tõenäosus ebaõnnestumiste ja ebaõnnestumiste tõenäosus.

Tüüpilised komponendid tarkvaratoodete arhitektuur ja tüüpilised nõuded Ø võimaluse rakendamise arenenud arhitektuuri. Ø Liigne funktsionaalsus. Ø Valmistatud komponentide ostmise otsustamine. Ø Strateegia muudatused.

Kontrollnimekiri küsimuste kohta, mis teeb järeldusele arhitektuuri kvaliteedi kohta: Ø on programmi üldise korraldamine selgelt kirjeldatud; Ø Ø Ø Sisaldab arhitektuuri läbivaatamise spetsifikatsiooni ja selle põhjendust. Piisavalt määratletud programmi peamised komponendid, nende vastutusvaldkond ja suhtlemine teiste osadega. Kõik nõuete spetsifikatsioonides täpsustatud funktsioone rakendatakse mõistliku arvu süsteemi komponentide arvuga. On kõige olulisemate klasside ja nende põhjenduste kirjeldus. Kas ta annab BD organisatsiooni kirjelduse. Kas kõik ärireeglid on määratletud. Kas nende mõju süsteemile on kirjeldatud.

Kontrollnimekiri küsimustele, mis teeb järelduse arhitektuuri kvaliteedi kohta: kas kasutajaliidese disaini strateegiat kirjeldatakse. Ødejd kasutajaliidese Modulaarne nii, et selle muutused ei mõjuta süsteemi järelejäänud osa. Ø nagu andmete sisestamise strateegia kirjeldus. Kas süsteemi tulemuslikkuse analüüsi rakendatakse selle arhitektuuri abil. Kas kavandatud süsteemi usaldusväärsuse analüüs on usaldusväärsus. On süsteemi mastaapsuse ja laiendamise analüüs.

Refaktori refacreerimine hõlmab tarkvara kohandamist uuele riistvara ja uutele operatsioonisüsteemidele uutele arengutele, uutele nõuetele, samuti tarkvara arhitektuurile ja funktsionaalsusele. See muutus tarkvara sisemise struktuuri muutmata oma välise käitumise muutmata, mille eesmärk on pakkuda tarkvara muutmist. REFORTINERI Mõisted põhjused: kood korratakse; Meetodi rakendamine on liiga suur; Liiga suur tsüklite pesitsemine või tsükkel ise on väga suur; Klassil on halb ühendus (omadused ja klassi meetodid peavad kirjeldama ainult 1 objekti); Klassiliidese ei moodusta järjepidevat abstraktsiooni; Meetod võtab liiga palju parameetreid. On vaja proovida, et parameetrite arv on mõistlikult minimaalne; Klassi eraldi osad muutuvad olenemata klassi teistest osadest;

Tarkvara refactoring programmi muutmisel nõuab mitme klassi paralleelset muutust. Sellise olukorra korral on vaja ümberkorraldada klasside, et minimeerida tulevikus võimalikud muudatused; Sa pead muutma mitme pärandi hierarhiat paralleelselt; Sa pead muutma mitu juhtumiplokki. Programmi on vaja muuta sellisel viisil, et teha juhtumiploki rakendamine ja seda nimetada soovitud arvu ajal programmi; Seotud andmete elemendid kasutavad koos ei ole korraldatud klassides. Kui te korduvalt kasutate samu andmeühikuid, on soovitatav kaaluda selle andmete kombinatsiooni ja nende kohal olevat toiminguid paigutatakse eraldi klassi;

Meetodi taaselustamine kasutab teise klassi elemente kui ise. See tähendab, et meetod tuleb liigutada teise klassi ja kutsuda seda vanast välja; Elementaarse andmete tüüp ülekoormatud. Reaalse maailma olemuse kirjeldamiseks on parem kasutada mingit klassi klassi kui olemasoleva andmeliigi ülekoormamiseks; Klassil on liiga piiratud funktsionaalsus. Parem vabaneda sellest klassist, kolis oma funktsionaalsuse teise klassi; Meetodite meetodid edastatakse "hulkuvate" andmed. Meetodile edastatud andmed alles nii, et see annab neile teisele meetodile "hulkuvaks." Selliste olukordade olemasolu korral proovige muuta klasside ja meetodite arhitektuuri, et neist vabaneda.

Refaction vahendaja objekti ei tee midagi. Kui klassi rolli vähendatakse kõnede kõned teistesse klassidesse suunamiseks, siis parim vahendaja objekt on otseselt kõrvaldatud ja teiste klasside kõned toimides; Üks klass teab teise klassi liiga palju. Sellises olukorras on vaja teha kapseldamise ranged, et tagada pärija minimaalne teadmine tema vanema kohta; Meetodil on ebaõnnestunud nimi; Liikmete andmed on avatud. See kustutab liidese ja rakendamise vahelise liini, mis parandab paratamatult kapseldamist ja piirab programmi paindlikkust; Postitage kommentaarid lähtekoodi kohta;

Alamklassi refaktsioon kasutab ainult väikest osa oma esivanemate meetoditest. Selline olukord tekib siis, kui uus klass on loodud ainult selleks, et pärida mitmeid meetodeid baasklassist ja mitte kirjeldada uut üksust. Selle vältimiseks peate teisendama baasklass, nii et see annab juurdepääsu uuele klassile ainult vajalike meetodite puhul; Kood sisaldab globaalseid muutujaid. Ainult muutujad peaksid olema globaalsed, mida kogu tarkvara tegelikult kasutab. Kõik muud muutujad peavad olema kas kohalikud või peaksid olema mis tahes objektide omadused; Programm sisaldab koodi, mis võib kunagi vajada. Süsteemi väljatöötamisel on soovitatav pakkuda kohti, kus lähtekoodi saab tulevikus lisada.

Märkus: Paindlik lähenemine tarkvara loomisele, paindliku arengu aluspõhimõtteid. Teataval määral on tehnikate loetelu vastavad paindliku tarkvaraarenduse põhimõtetele. Paindliku arengu põhiväärtusi ja põhimõtteid analüüsitakse.

Selle loengu esitamine saate alla laadida.

Loengu eesmärk:

Hankige idee paindliku tarkvaraarenduse ametisse nimetamisest ja aluspõhimõtetest.

Sissejuhatus

Paindlik tarkvara arendamise metoodika keskendunud iteratiivse lähenemisviisi kasutamisele tarkvara Loodud järk-järgult väikeste sammudega, sealhulgas konkreetse nõuete kogumi rakendamisega. Eeldatakse, et nõuded võivad muutuda. Paindlike metoodika käsud on moodustatud universaalsete arendajate hulgast, kes täidavad tarkvaratoote loomise protsessis erinevaid ülesandeid.

Paindlike meetodite kasutamisel viivad riskide minimeerimiseks läbi lühikese tsüklite seeria arendamisega, kutsusid iteratsioonidKestus 2-3 nädalat. See on teatud aja jooksul täitmiseks kavandatud ülesannete kogum. Iga iteratsiooni loob tarkvara süsteemi tööversiooni, mis rakendab kõige prioriteeti (selle iteratsiooni jaoks) kliendi nõuded. Kõik iteratsioonid tehakse kõik vajalikud ülesanded, mis on vajalikud operatiivse tarkvara loomiseks: planeerimine, nõuete analüüs, projekteerimise, kodeerimine, katsetamine ja katsetamine dokumenteerimine. Kuigi eraldi iteratsioon on tavaliselt ebapiisav toote uue versiooni vabastamiseks, on arusaadav, et praegune tarkvara Valmis iga iteratsiooni lõpus vabastama. Iga iteratsiooni lõpus teostab käsk tarkvaraprodukti nõuete prioriteetide ümberhindamist, võib ta muuta süsteemi arengule kohandusi.

Paindliku arengu põhimõtted ja väärtus

Paindliku arengu metoodika jaoks deklareeritakse peamised postulaadid, mis võimaldavad meeskondadel suure jõudluse saavutamiseks:

  • inimesed ja nende suhtlemine;
  • töötarkvara kohaletoimetamine;
  • koostöö kliendiga;
  • muutus muutustele.

Inimesed ja suhtlemine. Inimesed on edu kõige olulisem osa. Eraldi meeskonna liikmed ja hea side on suure jõudlusega meeskondade jaoks olulised. Kommunikatsiooni hõlbustamiseks mõeldud paindlikud meetodid hõlmavad töö tulemuste sagedast arutelu ja otsuse muutmist. Arutelusid saab läbi viia iga päev mitu minutit ja iga iteratsiooni lõpus töö ja tagasiulatuva töö tulemuste analüüsiga. Efektiivse kommunikatsiooni ajal koosolekute ajal peavad meeskonna liikmed järgima järgmist võtmekäitumist:

  • iga meeskonnaliikme arvamuste austamine;
  • ole mis tahes side jaoks tõesed;
  • kõigi andmete, meetmete ja lahenduste läbipaistvus;
  • usaldus, et iga osaleja toetab meeskonda;
  • pühendumine meeskonnale ja selle eesmärkidele.

Et luua suure jõudlusega meeskonnad paindlikes meetodites, lisaks tõhusale meeskonnale ja headele kommunikatsioonile on vaja täiuslikku tarkvaravahendit.

Töötarkvara on tähtsam kui põhjalik dokumentatsioon. Kõik paindlikud metoodikaid eraldada vajadust tarnida väikesed töötarkvara fragmendid läbi seadistatud ajavahemike järel. TarkvaraTavaliselt on moodulite tase, katsetamine süsteemi tasandil. Sellisel juhul peaks dokumentatsiooni maht olema minimaalne. Disainiprotsessis peab meeskond säilitama lühikese dokumendi, mis sisaldab lahenduse põhjendust ja struktuuri kirjeldust.

Koostöö kliendiga on tähtsam kui ametlikud lepingulised lepingud. Selleks, et projekt edukalt lõpule viia, on vaja korrapärast ja sagedast suhtlust kliendiga. Klient peab regulaarselt osalema otsuste tegemise tarkvaralahenduste arutelus, väljendama oma soove ja kommentaare. Kliendi kaasamine tarkvaraarenduse protsessis peab looma kvaliteetse toote.

Operatiivne vastus muudatuste jaoks on veelgi olulisem plaan. Võimalus reageerida paljude austuste muutuste reageerimiseks määrab programmi projekti edu. Tarkvara toote loomise protsessis muutub sageli sageli kliendi nõuded. Kliendid väga sageli ei tea täpselt, mida nad tahavad, niikaua kui nad ei näe tööd tarkvara. Paindlikud metoodika otsivad tagasiside Klientidelt tarkvaratoote loomise protsessis. Operatiivse muutuse vastus on vajalik toote loomiseks, mis rahuldab kliendile ja tagada äriväärtuse.

Paindlikud arengupominelaud toetavad 12 põhimõtet. Paindliku arengu spetsiifilistes meetodites tuvastatakse protsessid ja reeglid, mis vastavad nendele põhimõtetele rohkem või vähem. Paindlikud tarkvara loomise metoodika põhinevad järgmistel põhimõtetel:

  1. Kõrgeim prioriteet on kaaluda kliendi soovide rahulolu, pakkudes kasulikku tarkvara lühikese aja jooksul järgneva pideva ajakohastamisega. Paindlikud tehnikad viitavad esialgse versiooni ja sagedaste värskenduste kiirele kohaletoimetamisele. Meeskonna eesmärk on tööversiooni tarnimine mõne nädala algusest projekti algusest. Edasi tarkvara süsteemid Järk-järgult laiendades funktsionaalsust, tuleb esitada iga paari nädala järel. Klient võib alustada süsteemi tööstuse toimimist, kui ta leiab, et see on üsna funktsionaalne. Samuti saab klient lihtsalt tutvuda tarkvara praeguse versiooniga, esitage oma tagasiside kommentaaridega.
  2. Ärge ignoreerige nõuete muutmist isegi hilinenud arengutappides. Paindlikud protsessid võimaldavad arvestada muudatusi, et tagada kliendi konkurentsieeliste eeliste tagamine. Meeskonnad, kes kasutavad paindlikke tehnikaid, püüavad kvalitatiivse programmi struktuuri muuta, vähendades süsteemi kui terviku muutuste minimaalset mõju.
  3. Oletame, et uued tööversioonid sageli intervalliga ühest nädalast kuni kaks kuud, eelistades väiksemat aega. Samal ajal on eesmärk panna programm, mis vastab kasutaja vajadustele, kusjuures minimaalsed saatedokumendid.
  4. Kliendid ja arendajad peaksid kogu projekti jooksul koostööd tegema. Arvatakse, et eduka projekti jaoks peaksid kliendid, arendajad ja kõik sidusrühmad sageli edastama sageli ja palju võimalusi sihitud tarkvara parandamisele.
  5. Projektid peavad kerkavad sihipäraseid inimesi. Looge projekti meeskond Tavaline töötingimused, tagavad vajaliku toetuse ja usuvad, et meeskonna liikmed lõpevad lõpuni.
  6. Kõige tõhusam ja produktiivsem meetod teabe edastamiseks meeskonna arendajate ja arvamuste vahetamise tema sees - vestlus nägu nägu. Paindlikes projektides on peamine suhtlusviis lihtne inimside. Kirjalikud dokumendid luuakse ja ajakohastatakse järk-järgult tarkvara areneb ja ainult vajadusel.
  7. Tööprogramm on projekti edusammude peamine näitaja. Paindliku projekti lähenemisviisi kohta kohtuotsuse täitmiseks kohtunik, kui palju sel hetkel Programm vastab kliendi nõuetele.
  8. Paindlikud protsessid aitavad kaasa pikaajalisele arengule. Kliendid, arendajad ja kasutajad peavad suutma säilitada muutmata tempo, kui kaua.
  9. Olepatamatu tähelepanu tehnilisele tipptasemele ja kvaliteetsele disainile suurendab paindlike tehnoloogiate tootlust. Paindliku meeskonna liikmed püüavad luua kvaliteedi koodi korrapäraselt läbiviimise refaktori.
  10. Lihtne - kunst Saavuta rohkem, tehes vähem. Meeskonna liikmed otsustavad praegused ülesanded võimalikult lihtsad ja tõhusalt. Kui tulevikus tekkiv probleem tekib, on kvaliteedikoodil võimalus teha muutusi ilma määral.
  11. Ise parimad arhitektuuridNõuded ja projektid annavad ise korraldavate meeskondade välja. Paindlikel meeskondadel usaldatakse ülesanded mitte üksikutele liikmetele, vaid meeskonnale tervikuna. Meeskond ise otsustab, kuidas kõige paremini klientide nõudeid rakendada. Meeskonna liikmed töötavad koos projekti kõigi aspektide üle. Igal osalejal on lubatud kaasa aidata ühisele põhjusele. Meeskonna sellist liikme ei ole, mis vastaks ainult arhitektuurile, nõuetele või testidele.
  12. Meeskond peaks regulaarselt mõtlema, kuidas saada veelgi tõhusamaks ja seejärel kohandada ja kohandada nende käitumist vastavalt. Paindlik meeskond kohandab pidevalt oma organisatsiooni, eeskirju, lepinguid ja suhteid.

Ülaltoodud põhimõtted, teataval määral vastavad mitmete tarkvaraarenduse metoodikaga:

Agilemodelling komplekt kontseptsioonide, põhimõtete ja vastuvõttude (tavade), mis võimaldavad teil kiiresti ja lihtsalt teostada modelleerimist ja dokumentatsiooni tarkvara arendamise projektide;
AGILEUNIFITSEERITUDE (AUP) lihtsustatud versioon IBM RatsicunifiedProcess (RUP), mis kirjeldab lihtne ja arusaadav ühtlustamine (mudel) luua tarkvara ärirakenduste jaoks;
Avama. see on iteratiivne-lisava tarkvara arendamise meetod. Valguse ja paindliku valikuna;
Agiledatamethod. rühm iteratiivseid meetodeid tarkvara arendamiseks, milles nõuete ja otsuste saavutatakse erinevate valdkondadevaheliste meeskondade koostöö raames;
DSDM. dünaamilise süsteemi arendamise metoodika, mis põhineb kiire rakenduste arendamise kontseptsioonil (RavelpplicationDevelopment, Rad). Kujutab endast iteratiivset ja täiendavat lähenemisviisi, mis annab erilise väärtuse pideva osalemise kasutaja / tarbija protsessi;
ExtremePrograming (XP) Äärmuslik programmeerimine;
Adaptive tarkvaraarendus (Lisa) adaptive programmi arendamine;
Soodustatudrivendevelpement (FDD) arengule orienteeritud funktsionaalsuse järkjärgulise lisamisega;
Saada iteratiivne lähenemine ilma veebiarakenduste jaoks kasutatavate funktsionaalsete spetsifikatsioonideta;
MsfoGagilesoftwaredevelopment microsofti paindliku arengu metoodika;
Kaklus määrab arendusprotsessi juhtimise eeskirjad ja võimaldab juba olemasolevaid kodeerimispraktikat kasutada, kohandades nõuete kohandamist või taktikalisi muutusi [

1. Cascade (inglise keel. Juga) - standardse arengumudeli

Kaskaadi arendamise mudel on mudel, milles kõik arengutapid viiakse läbi seerias - järgneva etapi algab pärast eelmise lõpetamist.

Selline mudel sisaldab tarkvara arendamise protsessi järgmisi etappe:

Peamiselt määratud tehnilised kirjeldused Tulevase programmi tulemusena on heakskiidetud tarkvaranõuete loetelu. Seejärel esineb üleminek disainile, mille käigus luuakse dokumentatsioon programmeerijate kava kirjeldamisel ja nõuete rakendamise meetodis.

Pärast täielikku disainilahendust rakendatakse programmeerijad (projekteerimine) projekt. Teostuses toimub kõigi projekti komponentide integreerimine. Alles pärast nende etappide täielikku lõpuleviimist testitud ja valmistoote silumine. Lisaks saab tarkvaratoodet rakendada ja pärast toetuse rakendamist toetamisel on uue funktsionaalsuse kehtestamine ja vigade kõrvaldamine.

Peamised eelised Cascade Development:

2. Paindlik tarkvara arendamise metoodika (Agile tarkvaraarendus)

Mitmed tarkvaraarendusmeetodid, mis näevad ette kliendi ja arendajate ühise töö. Paindlik arendusmeetod põhineb iteratiivsel lähenemisviisil, nõuete dünaamilisel kujundamisel ja nende rakendamisel lühikeste etappidega.

Iga sellise etapi tulemus, mis hõlmab Ierrateste tsüklit, on miniatuurne programmiprojekt, \\ t

Paindliku arengu meetodid on mitu kuulsamast küljest, äärmuslikust programmeerimisest, DSDM-st.

Paindliku arengu peamised eelised:

riskide minimeerimine; Tarkvara toote funktsionaalse järkjärguline suurenemine; väike kogus kirjaliku dokumentatsiooni; Jooksev baasversioon Programmide võimalikult lühikese aja jooksul.

On miinuseid:

võimetus täpselt kindlaks määrata projekti eelarve; Projekti täpse õigeaegsuse kindlaksmääramise võimatus; ei sobi riigi ja eelarve organisatsioonide jaoks; Nõuab kliendi vastutavate esindajate motivatsiooni.

Agile-ilmse tarkvara arendamine

Me avastame pidevalt arenenumaid tarkvaraarenduse meetodeid, arendades samal ajal otseselt ja aidates teisi. Tänu tehtud tööle oli meil võimalik mõista, et:

Inimesed ja suhtlemine olulisemad protsessid ja tööriistad

Töötoode Veelgi olulisem ammendav dokumentatsioon

Koostöö kliendiga Veelgi olulisem on lepingu tingimustes kokku leppida

Muutuse valmis on olulisem Pärast esialgset plaani

See tähendab, et ei eita õiguse tähtsust, hindame ikka veel seda, mis on jäänud.

Paindliku arengu põhimõtted:

Kliendi rahulolu vajaliku tarkvara kiire ja katkematu kohaletoimetamise tõttu;
Nõuete muutuste tervitus isegi arengu lõpus (see võib suurendada saadud toote konkurentsivõimet);
tööturu tarkvara sagedane tarnimine (iga kuu või nädal või sagedamini);
Sulge, igapäevane kliendi suhtlemine arendajatega kogu projekti vältel;
Projekt tegelevad motiveeritud isiksustega, mis on varustatud vajalike töötingimuste, toetuse ja usaldusega;
Soovitatav teave teabe edastamiseks on isiklik vestlus (näost näost);
Töötarkvara on parim edumõõtur;
Sponsorid, arendajad ja kasutajad peaksid suutma säilitada püsivat sammu määramata ajaks;
pidev tähelepanu tehniliste oskuste parandamisele ja mugava disaini parandamisele;
Lihtne - kunst ei tee täiendavat tööd;
Parimad tehnilised nõuded, disain ja arhitektuur saadakse iseorganisatsiooni meeskond;
Püsiv kohandamine muutuvate asjaoludega.

1. Programmeerimistehnoloogia nimetamine. Programmeerimistehnoloogia arendamise ajalugu. Tarkvara projektide tüübid. Programmeerimistehnoloogia komposiitosad. Projekt, toode, protsess ja personal

2. Programmi elutsükkel. Arengu tsükliline iseloom. Programmeerimistehnoloogia põhikontseptsioonid. Protsessid ja mudelid. Faasid ja pöörded. Verstapostid ja artefaktid. Sidusrühmad ja töötajad.

3. Nõuete avastamine ja analüüs. Tarkvara nõuded. Arengu arendamise kava. Nõuded.

4. Arhitektuurne ja üksikasjalik disain. Rakendamine ja kodeerimine. Testimine ja kontrollimine. Kvaliteedikontrolli protsess. "Valge kasti" ja "musta kasti" meetodid. Ülevaatus ja ülevaated. Testi eesmärgid. Kontrollimine, valideerimine ja süsteemi testimine. Hooldus ja jätkuv areng.

5. Arenguprotsessi mudelid. Juga ja konveiermudelid. Spiraalsed ja inkrementaalsed mudelid. Arenguprotsessi paindlikud mudelid.

6. Protsessimudeli kujundamine. Protsessi nõuete avastamine. Kasutatud faasid, vahe-eesmärgid ja esemed. Protsessi arhitektuuri valik. Tüüpilise projekti hoidmise kord. Dokumenteeritud menetlused.

7. Arendaja meeskonna mudelid. Arengu kollektiivne olemus. Optimaalne suurus meeskond. Projekti osaliste alluvus. Meeskonna ja personali arendamise arendamine. Spetsialiseerumine, koostöö ja koostoime.

8. Arendaja meeskonna mudelid. Hierarhiline meeskonna mudel. Kirurgilise brigaadi meetod. Meeskonna mudel võrdne.

9. Programmeerimine looduse. Teadusprogrammeerimine. Kunsti programmeerimine. Käsitöö programmeerimine. Programmeerimine paradigmade. Struktuuriprogramm. Loogiline programmeerimine. Objektorienteeritud programmeerimine.

10. Tarkvaraarhitektuur. Ürituse juhtimine. Arhitektuurikliendi / server. Teenused. Kolmekihiline arhitektuur. Programmi disain. Kontseptuaalne disain. Loogiline disain. Üksikasjalik disain.

1. Novikov läheneb tarkvara arendamisele "http: // aken. /Window_catalog/files/r60368/itmo307.pdf.

2. Extreme programmeerimine. - SPB.: Peter, 2002.

3. Tarkvaraarenduse tehnoloogia. - Peterburi. : Peter, 2004.

4. Brooks-ML. Tarkvara kompleksid on projekteeritud ja loodud. M.: Science, 1975; Uus tõlke väljaanne: müütiline mehe kuu. SPB.: Sümbol +, 1999.

5. Algoritmid + andmestruktuurid \u003d programmid. M., Mir, 1978.

6. Süstemaatiline programmeerimine. Sissejuhatus M.: Mir, 1977.

7. Struktuuriline programmitöö. M.: Mir, 1975.

8. Distsipliini programmeerimine. M.: Mir, 1978.

9. Tarkvaraarenduse tehnoloogiad. - SPB.: Peter, 2002.

10. Programmeerimine Terech. M.: Binom, 2006.

11. Rambo J. Unified tarkvaraarendusprotsess. Peterburi: Peter, 2002.

Majandusteooria juhtidele

Peamised mikroökonoomilised teooriad. Majanduslike protsesside analüüsimisel rakenduse näited. Suured makromajanduslikud teooriad. Majanduslike protsesside analüüsimisel rakenduse näited. Majanduslike protsesside juhtimise põhimõtted ja meetodid. Majandusprotsesside taseme hindamine laiendatud reproduktsiooni probleem. Venemaa majanduse majanduskasvu tegurid. Säästva arengu kriteeriumid ja näitajad. Tsükliliste võnkumiste silumine. Mitmepilari ja kiirendi roll majandusarengu määra hindamisel. Tootmisfunktsioonid majanduses. Majanduslike protsesside analüüsimisel rakenduse näited. Kasum. Kasumi mõjutavate näitajate arvutamine, murdemärgise graafiline pilt. Investeerimispoliitika rakendamise metoodika.

Majandusteooria kursus: ülikoolide õpik / ed. . -Kirov: "ASA", 2004. kemaemeeemmamate modelleerimine. Makromajanduslike protsesside ja -süsteemide modelleerimine: õpik. M.: Unibi-Dana, 2005. Keeld Küberneetika. Kharkov: Consul, 2004. Lehch Workshop meetoditel matemaatiline modelleerimine: juhendaja. Nizhny Novgorodi olekus. the Univ.- N. Novorod, 2007. majanduspoliitika: nobeli laureaatide loengud majanduses. M.: Kaasaegne majandus ja õigus, 2005. Cherems. Täpsem tase: õpik.-m.: Infra-M, 2008. Ministrite institutsioonide areng. Institute of Economics URO RAS, - m.: Science, 2007.

Tehnoloogiad juhtimisotsuste väljatöötamiseks ja vastuvõtmiseks [H]

Otsuste tegemine juhina juhtkonna juhtimise aluseks. Sissejuhatus otsuste tegemise teooriasse. Otsuste tegemise teooria põhikontseptsioonid. Ärijuhtimise mudelid ja nende mõju otsuste tegemisele. Erinevad meetodid Klassifikatsioonilahendused. Klassifikatsioon: vastavalt formaalsuste tasemele, vastavalt rutiinsuse tasemele perioodilisele, kiireloomulisusele, vastavalt eesmärkide saavutamise tasemele alternatiivi valimise meetodi abil. Põhiliste otsuste tegemise meetodid. Otsuste tegemise meetodite lahendamine. Otsuste tegemise otsused. Lahenduste otsimisel aega. Peamised vead Matemaatilised otsuste tegemise meetodid. Otsuste tegemise teooria matemaatilised aspektid. Operatsioonide uuringud. Matemaatiline lähenemine otsuste tegemisele. Puude lahendused. Arendus- ja otsuste tegemise mudelid. Mängu teooria. Matemaatilised otsuste tegemise meetodid. Otsuste tegemise teooria matemaatilised aspektid. Queue Teooria mudelid. Varude haldamise mudelid. Lineaarne programmeerimismudel. Transpordiülesanded. Simulatsioon. Võrguanalüüs. Majandusanalüüs. Piiratud ratsionaalsed mudelid. Omadused arengu ja otsuste tegemise kontserni. Meetod grupi ühtekuuluvuse määramiseks, mis põhineb komplekti ühenduvuse astmel. Kollektiivse otsuse meetodid. Konsensuse meetod. Hääletusmeetodid. Loomingulised otsuste tegemise meetodid. Ajurünnak. Ideede konverents. Laevaplaat. Meetod "vaimse mütside" kohta de bono. Leiutise lahenduste teooria (Triz). Täiuslik lõplik lahendus. Triz-i ülesannete ja lahenduste näited. Triz meetodite kasutamine unikaalsete ja loovate lahenduste tegemisel. Meetodid lahenduste ideede ja nende kohandamise arendamise meetodid. Puidupuu mudel. Huvide kooskõlastamise strateegia. Lahenduste moodustamine huvide koordineerimiseks. Vastaspoolte huvide määramise meetodid. Otsuse toetussüsteemid (ekspertide süsteemid). Otsuste tegemise süsteemide loomise ajalugu. Otsuste tegemise süsteemide klassifikatsioon. Ekspertide süsteemi tüüpiline struktuur. Viiside esindamise viisid. Loogilise väljundi meetodid. Ekspertrite rakendamine praktikas.

I. Teooria otsustusprotsessi: õpik. - m.: Eksam, 2006. - 573 lk. I. Otsuste tegemine. Teooria ja meetodid juhtimisotsuste tegemiseks. Juhendaja. - m.: Märts, 2005. - 496 koos juhtimisotsuse väljatöötamisega - m.: Kirjastus "Case", 2004 - 392 lk. G. Expert hindamine ja otsuste tegemine. - M.: Patent, 1996. - 271 lk. Taha // Sissejuhatus operatsioonide toimimiseni \u003d Operatsiooniuuringud: sissejuhatus. - 7. ed. - m.: Williams, 2007. - Lk 549-594. Lugu. Majandusprognoosid ja otsuste tegemine. M.: "Progress" 1970. K. D. Lewis. Majandusnäitajate prognoosimise meetodid. M.: "Finance and Statistics" 1986. G. S. Kildishev, A. A. Frennel. Ajutiste ridade ja prognoosimise analüüs. M.: "Statistika" 1973. O. Kim, Ch. U. Muuller, W. R. Klekka ja teised. Tegur, diskrimineeriv ja klastri analüüs. M.: "Rahandus ja statistika" 1989. Tõhus juht. Raamat 3. Otsuste tegemine. - MIM Link, 1999 Turkevsky ja mootorsõidukite juhtimise juhtkond. - m.: Kõrgkool, 2005.; Ed. . Süsteemi analüüs juhtimises: juhendaja. - m.: Finance and Statistics, 2006., Tinkov: juhendaja. - M.: Knourus, 2006.

Äriprotsesside modelleerimine integreeritud juhtimissüsteemides

Millised põhimõtted on äriprotsessid eraldavad? Mis probleem on äriprotsesside tervikliku kirjelduse probleem. Mis on süsteem, millised omadused see on? Süsteemi analüüsi roll äriprotsesside modelleerimisel? Protsessi kontrolli objektina. Protsessi keskkond. Äriprotsessi põhielemendid. Funktsionaalse ja protsessi juhtimise eelised ja puudused. Management Cycle PDCA. Protsesside juhtimissüklite etapid. PDCA tsükkel ja rakendamine ISO 9001: 2008 nõuete täitmine. SADT Metoodika (struktureeritud analüüs ja disaini tehnika on struktuurne analüüs ja disaini meetod). Sisuliselt. Põhisätted. Kuidas funktsionaalne mudel tegevus Idef0 metoodika? Mida töötab funktsionaalse mudeli diagrammides, kuidas neid Idef0 metoodika abil kuvatakse? Millised on nooled funktsionaalse mudeli diagrammides, millised on nende tüübid ja vaated? DFD metoodika. Sisuliselt. DFD-diagrammide põhikomponendid. Millised on DFD-diagrammide omadused, mida nendes kirjeldatakse? Millised on DFD-diagrammide omadused? Millised on DFD-diagrammi nooled? IDEF3 metoodika. Sisuliselt. Dokumentatsioon ja modelleerimisvahendid. Millised on IDEF3-diagrammide omadused, mida neid kirjeldatakse? Millised on IDEF3 diagrammide objektide omadused? Ja nooled? Protsesside klassifikatsioon. Mudeli äriprotsessid. Rengunginiring ja selle tehnoloogia. Millal on asjakohane rakendada ettevõtte haldamisel reengineeringut? Protsesside jälgimine ja mõõtmine. Organisatsioonide protsesside näitajad. Protsesside arv- ja hinnangu hinnangud.

"Business protsesside modelleerimine Allfusiooniprotsessi modelleerijaga (BPWIN 4.1) Dialoog Mefi" 2003 "Infosüsteemide loomine Allfusiooni modelleerimise suite" Ed. "Dialoogi MAFI" 2003 "Praktika funktsionaalse modelleerimise praktika Allfusiooniprotsessi Modeller 4.1. (BPWIN) Kus? Miks? Kuidas?" ed. "Dialoog-Mepi" 2004 Dubykovsky modelleerimine Allfusiooniprotsessi moderer (BPWIN). ed. Dialoogi-Mepi 2007 D. Marka, K. McGowen "Metoodika struktuurianalüüsi ja SADTi projekteerimine" 1993. Klassikaline töö SADT-metoodikaga. Süsteemide Chegeress analüüs: Idef-tehnoloogiline, modelleerimine ja süsteemide analüüs. IDEF tehnoloogia. Töökoda. M.: Finance and Statistics, 2001. "Business Struktuurimudel: DFD Technologies" http: // www. / Taguvel4.asp? ImerID \u003d 5810 "Äriprotsesside ümberkorraldamise teooria ja praktika" 2003 / P50.1 .. funktsionaalse modelleerimise metoodika. M.: GOSstandart Venemaa, 2000. http: // www. IDEF0, IDEF3, DFD http: // www. BPWin http: // www-i äriprotsesside modelleerimine. / Osakond / SE / devis / 7 / IDEF0 modelleerimisel http: /// sisu / vaade / 21/27 / http: // www modelleerimine. /dir/cat32/subj45/file1411/VIEW1411.html http: // www. http: // www.

Tarkvara tõhususe hindamine

1. Arhitektuur see.

2. Kontrolli protsessi domeenid.

3. Domeeni protsesside planeerimine ja organisatsioon

4. Domeeni protsesside soetamise ja rakendamise loetelu

5. Domeeni protsesside kasutamine ja hooldus

6. Domeeni protsesside seire ja hindamise loetelu

7. Protsesside tähtaegade taseme omadused

9. KPI ja KGI nende suhe ja eesmärk

1. 10. IT-i kontrollimeetmed ja kohaldamise kontrollimeetmed. Valdkonnad vastutus- ja kohustused äri ja see.

Cobit 4.1 Vene väljaanne.

Õigusliku reguleerimise loomise ja kasutamise intellektuaalomandi

1. Loetlege intellektuaalse õigusi intellektuaalse tegevuse tulemustele ja laiendada nende sisu.

2. Loetlege lepingute liigid ainuõiguse järjekorras. Kirjeldage kõiki neid lepinguid ainuõiguse järjekorras.

4. Kirjeldage arvuti õiguskaitse peamisi sätteid autoriõiguse objektina.

5. Võrdle andmebaasi andmebaasi peamisi sätteid autoriõiguse objektina ja külgnevate õiguste objektina.

6. Kirjeldage patendiõiguste patentsuse tingimusi: leiutised; kasulikud mudelid; Tööstuslikud proovid.

7. Leiutise patenditavuse kriteeriumide sisu laiendamine: uudsus; Leiutise tase; Tööstuslik kohaldatavus.

8. Kirjeldage leiutisekohase patendi koostamise tingimusi ja menetlust, kasulikku mudelit või tööstusliku valimi, samuti tingimusi, mis tagavad patentide mõju ja nende tegevuse ajale.

9. Esitage mõiste "oskusteave" ja loetlege tingimused, millega luuakse tootmise saladuste õiguslik kaitse ja viiakse läbi.

10. Nimekiri kaitstud individuaalsete tööriistade ja neile võrdleva iseloomuliku iseloomuga.

1. intellektuaalomandi õigus Venemaa Föderatsioon, õpik // m, prospekt, 2007

2., Intellektuaalomandi õigus, juhendaja // m, Riol, 2009

Projektide juhtimine ja arendamine [ja]

Mis on metoodika, miks see on vajalik. Metoodika üldine struktuur, metoodika põhielemendid. Oma metoodika kujundamise põhimõtted. Näited erinevate esemete, rollide, pädevuse, piiritingimuste. Kaschachan metoodika struktuur, metriline metoodika. Projekti kriteeriumid Caschachan. Metoodika valimise kriteeriumid, Cavarna maatriks. Projekti elutsükkel. Juga ja iteratiivsed elutsükli mudelid. Juga ja iteratiivsete mudelite kohaldamispiiride piire. RUP iteratiivse metoodika näitena. RUP peamised mõisted, kohaldatavuse piirid. Isiku roll tarkvara arendamisel. Paindlikud metoodika, paindlike metoodika aluspõhimõtted. Paindlike metoodika põhjus. Scrum näitena paindliku metoodika. Rollid, artefaktid, Scrumi tegevused. Scrumi rakendatavuse piirangud. Extreme programmeerimine (XP) Ideed, väärtused, põhitegevused, rakendatavuspiirid. Sarnasused ja erinevused Scrumi ja XP vahel. Nõuded ja hallata nõudeid. Põhipraktika, tingimused, põhimõtted. Lähenemisviisid dokumendi dokumentatsioonile ja toodetele, peamised dokumentide liigid. Kursuse käigus käsitletavate metoodikate nõuete haldamise praktika näited. Software arendamise planeerimine. Kavade liigid, riskijuhtimine, populaarsed riskid. Näited töökohal planeerimise tavadest metoodikatest. Tarkvara arendamisel. Tarkvara toote kokkupaneku (ehitamise) mõiste. Põhilised katsemeetodid, tingimused. Kursuse metoodika testimise näited. Assamblee kontseptsioon (Build), Koodide säilitamismeetodid, tööriistad. Versioonikontrollisüsteemiga töö korraldamise kaks põhimõtet. Erinevate toodete kategooriate tootmise / arvutamise protsessi omadused, praktikute näited. Tarkvaraarhitektuuri kaasaegsed kontseptsioonid, mitmetasandilised arhitektuurid, arhitektuuri kriteeriumid. Tarkvara projekteerimisel vajalike lahenduste loetelu, lähenemisviise andmesalvestuse valikule.

Kent Beck - Extreme Programmeerimine Frederick Brooks - müütiline mehe kuu või kuidas tarkvara süsteemid luuakse. Tom de Marco - tähtaeg. Roman projektijuhtimise kohta. Tom de Marko, Timothy Lister - Waltling Karudega. Tom de Marco, Timothy Lister - Inimese Factor_ edukad projektid ja meeskonnad. Alistair Cavier - iga projekti oma metoodika. Alistair Cavier - inimesed nagu mittelineaarsed ja kõige olulisemad komponendid tarkvara loomisel. Andriy Orlov - Automotori märkused. Professionaalne ülestunnistus. Philip Kratten - Sissejuhatus ratsionaalsele ühtsele protsessile. Henrik Kabberg - Scrum ja XP: märgib edasijõudnud. Loengute esitamine kiirusega


Juga mudeli analüüs Nõuete projekteerimise rakendamise integratsiooni katsetamine koostatud toote spetsifikatsioon koostatud tootearhitektuuri arendamine lähtekoodi integratsiooni lähtekoodi integreerimine lähtekoodi katsetamine ja defektide kõrvaldamine












Unified tarkvaraarenduse protsessi (USDP) mudeli kasutamise valikud kirjeldavad juhtumeid, kus taotlust kasutatakse. Analüütiline mudel kirjeldab rakenduste põhiklassid. Disainimudel kirjeldab suhtlemist ja suhteid klasside ja spetsiaalsete objektide vahel, kasutuselevõtu mudel kirjeldab tarkvara jaotust arvutites. Rakendusmudel kirjeldab programmi koodi sisemist korraldust. Testimismudel koosneb katsekomponentidest, katsemenetlustest ja erinevatest testimisvalikutest.








Tüüpilised komponendid programmi tootearhitektuuri ja tüüpilised nõuded programmi korraldamise põhiklasside süsteemide andmete sertifikaat äri reeglid Kasutajaliidese ressursside haldamise turvalisuse tulemus


Tarkvaratoodete arhitektuuri tüüpilised komponendid ja tüüpilised veatolerantsuse nõuded on süsteemi omadused, mis suurendavad selle usaldusväärsust vigade tuvastamisega, taastamise ja halva mõjude lokaliseerimisega süsteemi jaoks. Reaalse süsteemi väljatöötamisel tõrkekindluse tagamiseks on vaja ette näha igasuguseid olukordi, mis võivad põhjustada süsteemi ebaõnnestumist ja arendada mehhanisme ebaõnnestumiste töötlemiseks. Usaldusväärsus - süsteemi võime taluda erinevaid keeldumisi ja ebaõnnestumisi. Keeldumise üleminek süsteemi tulemusena vea täielikult kasutuskõlbmatu riigi. Rike - vea süsteemi toimimises, mis ei too kaasa süsteemi ebaõnnestumist. Mida väiksem on teatud ajavahemiku ebaõnnestumised ja ebaõnnestumised, peetakse süsteemi usaldusväärsemaks.




Tarkvaratoodete arhitektuuri tüüpilised komponendid ja tüüpilised nõuded arenenud arhitektuuri rakendamise võimalusele. Väljatöötatud arhitektuuri rakendamise võimalus. Liigne funktsionaalsus. Liigne funktsionaalsus. Valmis komponentide ostmise otsustamine. Valmis komponentide ostmise otsustamine. Muutuste strateegia. Muutuste strateegia.


Seda on selgelt kirjeldatud programmi üldise korraldus; Kas spetsifikatsioon sisaldab ülevaadet arhitektuurist ja selle põhjendusest. Seda on selgelt kirjeldatud programmi üldise korraldus; Kas spetsifikatsioon sisaldab ülevaadet arhitektuurist ja selle põhjendusest. Piisavalt määratletud programmi peamised komponendid, nende vastutusvaldkond ja suhtlemine teiste osadega. Piisavalt määratletud programmi peamised komponendid, nende vastutusvaldkond ja suhtlemine teiste osadega. Kõik nõuete spetsifikatsioonides täpsustatud funktsioone rakendatakse mõistliku arvu süsteemi komponentide arvuga. Kõik nõuete spetsifikatsioonides täpsustatud funktsioone rakendatakse mõistliku arvu süsteemi komponentide arvuga. On kõige olulisemate klasside ja nende põhjenduste kirjeldus. On kõige olulisemate klasside ja nende põhjenduste kirjeldus. Kas ta annab BD organisatsiooni kirjelduse. Kas ta annab BD organisatsiooni kirjelduse. Kas kõik ärireeglid on määratletud. Kas kõik ärireeglid on määratletud. Kas nende mõju süsteemile on kirjeldatud. Kas nende mõju süsteemile on kirjeldatud. Küsimuste kontrollnimekiri, mis võimaldab meil sõlmida arhitektuuri kvaliteeti:


Kontrollnimekiri küsimuste kohta, mis teeb järelduse arhitektuuri kvaliteedi kohta: kas kasutajaliidese disaini strateegiat on kirjeldatud. Kas kasutajaliidese disaini strateegia on kirjeldatud. Kas kasutajaliides on tehtud modulaarseks, nii et selle muutused ei mõjuta süsteemi järelejäänud osa. Kas kasutajaliides on tehtud modulaarseks, nii et selle muutused ei mõjuta süsteemi järelejäänud osa. Nagu I / O strateegia kirjeldus. Nagu I / O strateegia kirjeldus. Kas süsteemi toimimise analüüs, mida rakendatakse selle arhitektuuri abil. Kas süsteemi toimimise analüüs, mida rakendatakse selle arhitektuuri abil. Kas töötatud süsteemi usaldusväärsuse analüüs viidi läbi. Kas töötatud süsteemi usaldusväärsuse analüüs viidi läbi. Kas teostati ka mastaapsuse ja süsteemi laiendamise küsimuste analüüsi. Kas teostati ka mastaapsuse ja süsteemi laiendamise küsimuste analüüsi.


Refactory koodi korratakse; Meetodi rakendamine on liiga suur; Liiga suur tsüklite pesitsemine või tsükkel ise on väga suur; Klassil on halb ühendus (omadused ja klassi meetodid peavad kirjeldama ainult 1 objekti); Klassiliidese ei moodusta järjepidevat abstraktsiooni; Meetod võtab liiga palju parameetreid. On vaja proovida, et parameetrite arv on mõistlikult minimaalne; Klassi eraldi osad muutuvad olenemata klassi teistest osadest; Refactoring tähendab tarkvara kohandamist uue riistvara ja uute operatsioonisüsteemide uute tööriistade arendamiseks, uute nõuete ja tarkvara arhitektuuri ja funktsionaalsusega. See muutus tarkvara sisemise struktuuri muutmata oma välise käitumise muutmata, mille eesmärk on pakkuda tarkvara muutmist. Mõistlikud põhjused reformimise põhjused:


Tarkvara refactoring programmi muutmisel nõuab mitme klassi paralleelset muutust. Sellise olukorra korral on vaja klassifitseerida klasside ümberkorraldamiseks, et minimeerida tulevikus võimalike muutuste minimeerimist; Sa pead muutma mitme pärandi hierarhiat paralleelselt; Sa pead muutma mitu juhtumiplokki. Programmi on vaja muuta sellisel viisil, et teha juhtumiploki rakendamine ja seda nimetada soovitud arvu ajal programmi; Seotud andmete elemendid kasutavad koos ei ole korraldatud klassides. Kui te korduvalt kasutate samu andmeühikuid, on soovitatav kaaluda selle andmete kombinatsiooni ja nende kohal olevat toiminguid paigutatakse eraldi klassi;


Meetodi taaselustamine kasutab teise klassi elemente kui ise. See tähendab, et meetod tuleb liigutada teise klassi ja kutsuda seda vanast välja; Elementaarse andmete tüüp ülekoormatud. Reaalse maailma olemuse kirjeldamiseks on parem kasutada ühtegi klassi kui olemasoleva andmeliigi ülekoormamiseks; Klassil on liiga piiratud funktsionaalsus. Parem vabaneda sellest klassist, kolis oma funktsionaalsuse teise klassi; Meetodite meetodid edastatakse "hulkuvate" andmed. Meetodile edastatud andmed alles nii, et see annab neile teisele meetodile "hulkuvaks." Selliste olukordade olemasolu korral proovige muuta klasside ja meetodite arhitektuuri, et neist vabaneda.


Refaction vahendaja objekti ei tee midagi. Kui klassi rolli vähendatakse kõnede kõned teistesse klassidesse suunamiseks, siis parim vahendaja objekt on otseselt kõrvaldatud ja teiste klasside kõned toimides; Üks klass teab teise klassi liiga palju. Sellises olukorras on vaja teha kapseldamise ranged, et tagada pärija minimaalne teadmine oma vanema kohta; Meetodil on ebaõnnestunud nimi; Liikmete andmed on avatud. See kustutab liidese ja rakendamise vahelise liini, mis parandab paratamatult kapseldamist ja piirab programmi paindlikkust; Postitage kommentaarid lähtekoodi kohta;


Alamklassi refaktsioon kasutab ainult väikest osa oma esivanemate meetoditest. Selline olukord tekib siis, kui uus klass on loodud ainult selleks, et pärida mitmeid meetodeid baasklassist ja mitte kirjeldada uut üksust. Selle vältimiseks peate teisendama baasklass, nii et see annab juurdepääsu uuele klassile ainult vajalike meetodite puhul; Kood sisaldab globaalseid muutujaid. Ainult muutujad peaksid olema globaalsed, mida kogu tarkvara tegelikult kasutab. Kõik muud muutujad peavad olema kas kohalikud või peaksid olema mis tahes objektide omadused; Programm sisaldab koodi, mis võib kunagi vajada. Süsteemi väljatöötamisel on soovitatav pakkuda kohti, kus lähtekoodi saab tulevikus lisada.