Mga programa sa pag-unlad ng software. Mga tool sa pag-unlad ng software. Kailan gagamitin ang Agile

Ngayon, ang proseso ng paglikha ng kumplikado mga aplikasyon ng software imposibleng isipin nang walang paghahati sa mga yugto ng siklo ng buhay. Sa pamamagitan ng siklo ng buhay ng isang programa nangangahulugan kami ng isang hanay ng mga yugto:

  • Pagsusuri ng lugar ng paksa at paglikha ng mga panteknikal na pagtutukoy (pakikipag-ugnay sa customer)
  • Pagdidisenyo ng istraktura ng programa
  • Coding (hanay ng code ng programa ayon sa dokumentasyon ng proyekto)
  • Pagsubok at Pag-debug
  • Pagpapatupad ng programa
  • Suporta sa programa
  • Pag-recycle
Tuluyan nating pansinin ang proseso ng disenyo. Sa panahon ng proseso ng disenyo, ang isang arkitekto o isang bihasang programmer ay lumilikha ng dokumentasyon ng proyekto, kasama ang mga paglalarawan ng teksto, diagram, modelo ng hinaharap na programa. Tutulungan tayo ng UML sa mahirap na bagay na ito.

Ang UML ay isang grapikong wika para sa pagpapakita, paglalarawan ng mga parameter, pagbuo at pagdokumento ng iba't ibang mga system (partikular na mga programa). Ang mga diagram ay nilikha gamit ang mga espesyal na tool ng CASE tulad ng Rational Rose (http://www-01.ibm.com/software/rational/) at Enterprise Architect (http://www.sparxsystems.com.au/). Ang isang pinag-isang modelo ng impormasyon ay binuo batay sa teknolohiya ng UML. Ang mga tool sa CASE sa itaas ay may kakayahang makabuo ng code sa iba't ibang mga wika na nakatuon sa object, at mayroon ding isang napaka kapaki-pakinabang na reverse engineering function. (Pinapayagan ka ng Reverse engineering na lumikha ng isang graphic na modelo mula sa umiiral na code at mga puna dito.)

Isaalang-alang ang mga uri ng mga diagram para sa pag-visualize ng modelo (dapat itong magkaroon, kahit na maraming iba pang mga uri):

Isaalang-alang ang mga pagbabago sa hinaharap sa mga bagay at paksa

Ang mga sangkap ay dapat na pag-aralan sa isang pare-pareho na pamamaraan at magkasama, isinasaalang-alang kung paano sila pinagsama, pinapanatili o pinalitan. Mula sa proyekto, dapat isaalang-alang namin na ang mga pag-aari ng system at mga gumagamit nito ay patuloy na nagbabago. Ang ilang mga kadahilanan na isasaalang-alang ay ang paglago ng populasyon ng gumagamit, ang epekto ng paglipat sa system, o kung paano makakaapekto ang mga kahinaan sa hinaharap para sa mga sangkap na na-deploy sa isang malaking sukat.

Ang mga pamamaraang pag-Renewal ay dapat na idinisenyo kasama ang pag-abot ng kinabukasan ng mga buwan, taon, o kahit na mga dekada. Ang mga umiiral na mga samahan ay nagsimulang mapagtanto na ang pagtukoy at pag-aayos ng mga problema nang maaga ay may gastos na baliktad na proporsyonal sa oras na mananatili ang isang error sa system.

Gumamit ng diagram ng kaso

Ang dinisenyong sistema ay kinakatawan bilang isang hanay ng mga nilalang o aktor na nakikipag-ugnay sa system gamit ang tinatawag na mga kaso ng paggamit. Sa kasong ito, ang isang artista (artista) o isang artista ay anumang nilalang na nakikipag-ugnay sa system mula sa labas. Sa madaling salita, ang bawat kaso ng paggamit ay tumutukoy sa isang tiyak na hanay ng mga aksyon na isinagawa ng system kapag nakikipag-ugnay ito sa aktor. Sa parehong oras, walang sinabi tungkol sa kung paano ipatupad ang pakikipag-ugnay ng mga artista sa system.

Diagram ng klase

Ang isang diagram ng klase ay ginagamit upang kumatawan sa static na istraktura ng isang modelo ng system sa mga tuntunin ng mga klase ng programa na nakatuon sa object. Ang isang diagram ng klase ay maaaring sumasalamin, sa partikular, ng iba't ibang mga ugnayan sa pagitan ng mga indibidwal na entity ng domain, tulad ng mga bagay at subsystems, at inilalarawan din ang kanilang panloob na istraktura (mga patlang, pamamaraan ...) at mga uri ng mga relasyon (pamana, pagpapatupad ng mga interface ...). Ang diagram na ito ay hindi nagbibigay ng impormasyon sa mga temporal na aspeto ng paggana ng system. Mula sa puntong ito ng pananaw, ang diagram ng klase ay isang karagdagang pag-unlad ng pang-konsepto na modelo ng nakadisenyong sistema. Sa yugtong ito, pangunahing kaalaman ang diskarte sa OOP at mga pattern ng disenyo.


Ito ang parehong package ng application. Sa ganitong paraan maaari kang magkaroon ng parehong package ng application para sa lahat ng mga platform. Ito ay isang koleksyon lamang ng mga kontrata at bersyon. Pinapayagan ka nilang matukoy kung saan maaaring tumakbo ang application. Ang operating system ay hindi na ginagamit bilang isang patutunguhan. Target ng application ngayon ang isa o higit pang mga pamilya ng aparato. Kumuha ng karagdagang impormasyon tungkol dito.

Kung nais mong gamitin ang mga emulator na ito, dapat mong i-install ang software na ito sa isang pisikal na computer. Ito ay isang listahan ng kung ano ang kailangan mo software... Ang dokumentasyong ito ay nai-archive at hindi na-update. I-highlight ang code, mga linya, larawan at, sa ilang mga kaso, kahit na ang interface ng gumagamit. Kapag nakumpleto, ang mga template ng proyekto ay lilitaw sa isang bagong kahon ng dialogo ng proyekto.

Diagram ng estado (diagram ng statechart)

Ang pangunahing layunin ng diagram na ito ay upang ilarawan ang mga posibleng pagkakasunud-sunod ng mga estado at mga paglilipat na magkasama na naglalarawan sa pag-uugali ng isang modelo ng elemento sa panahon ng pag-ikot ng buhay. Ang isang diagram ng estado ay kumakatawan sa pabago-bagong pag-uugali ng mga nilalang, batay sa detalye ng kanilang tugon sa pang-unawa ng ilang mga tukoy na kaganapan.


Kasama rito ang anumang lohika sa negosyo, pagsasama sa cloud, pag-access sa database, o anumang iba pang code. Ang tanging code na hindi maaaring paghiwalayin ay tukoy sa platform. Maaari mong ibahagi ang iyong code gamit ang isang nakabahaging proyekto, isang portable class na proyekto sa library, o pareho. Maaari mong malaman na ang ilan ay angkop para sa mas mahusay na code sa isang nakabahaging proyekto, at ang ilang code ay may katuturan sa loob ng isang portable class project na library.

Tukuyin kung anong uri ng pag-unlad ng software ang interesado ka. Mayroong dalawang pangunahing mga lugar ng pag-unlad: pagbuo ng application at pag-unlad ng system. Nakatuon ang pagbuo ng aplikasyon sa paglikha ng mga programa na nakakatugon sa mga pangangailangan ng gumagamit, mula sa mga aplikasyon hanggang sa mga mobile phone at nagtatapos sa de-kalidad na mga video game sa accounting software. Nakatuon ang pagpapaunlad ng system sa pagbuo at pagpapanatili ng mga operating system. Ang pag-unlad na ito ay madalas na nauugnay sa pagganap ng network at proteksyon ng data.

Diagram ng pagkakasunud-sunod

Upang ma-modelo ang pakikipag-ugnay ng mga bagay sa wika ng UML ginagamit ang mga naaangkop na diagram ng pakikipag-ugnayan. Ang mga pakikipag-ugnayan ng mga bagay ay maaaring matingnan sa paglipas ng panahon, at pagkatapos ay ginagamit ang isang diagram ng pagkakasunud-sunod upang kumatawan sa mga pansamantalang katangian ng paghahatid at pagtanggap ng mga mensahe sa pagitan ng mga bagay. Ang mga nakikipag-ugnay na bagay ay nagpapalitan ng ilang impormasyon sa bawat isa. Sa kasong ito, ang impormasyon ay tumatagal ng form ng kumpletong mga mensahe. Sa madaling salita, kahit na ang mensahe ay may nilalaman na nagbibigay-kaalaman, nakakakuha ito ng karagdagang pag-aari ng pagsusumikap ng isang direktang impluwensya sa tatanggap nito.

Alamin ang isang wika ng programa. Kahit sino ay maaaring magkaroon ng isang ideya, ngunit ang isang developer ay maaaring baguhin ang mga ideyang iyon sa isang bagay na kongkreto. Kahit na nais mo lamang magtrabaho sa mga problema sa pag-unlad ng software, kailangan mong malaman ng mahusay ang pag-program at ma-prototype maraming mga programa na maaari mong malaman sa iyong sarili. Ang ilan sa mga pinaka-kapaki-pakinabang at pinakamahalagang mga bago.

Ito ay napaka ginagamit para sa mga video game at kumpanya at madalas na inirerekomenda bilang pangunahing wika. Napakagandang wika upang malaman kung ikaw ay isang malayang developer. Ito rin ay isang napaka-palakaibigang wika para sa mga video game. ... Ang maayos na nakasulat na coding ay marahil ang iyong pinakamahusay na mapagkukunan, at maaari mong mabilis na payuhan habang nagtatrabaho ka sa mga proyekto. Bukod sa mga libro, ang web ay isang hindi maubos na mapagkukunan ng mga gabay at tutorial. Sundin ang mga kurso. Kahit na hindi mo kailangan ng isang degree upang makapunta sa larangan ng software engineering, ang pagdalo sa mga kurso ay hindi ka saktan.

Diagram ng pakikipagtulungan

Sa isang diagram ng kooperasyon, ang mga bagay na nakikilahok sa pakikipag-ugnay ay inilalarawan sa anyo ng mga parihaba, naglalaman ng pangalan ng bagay, klase nito at, marahil, mga halaga ng katangian. Tulad ng isang diagram ng klase, ang mga asosasyon sa pagitan ng mga bagay ay ipinapakita bilang iba't ibang mga linya ng pagkonekta. Sa kasong ito, maaari mong malinaw na tukuyin ang mga pangalan ng samahan at mga tungkulin na ginampanan ng mga bagay sa asosasyong ito.
Hindi tulad ng isang diagram ng pagkakasunud-sunod, ang isang diagram ng pakikipagtulungan ay naglalarawan lamang ng mga ugnayan sa pagitan ng mga bagay na gumaganap ng tiyak na papel sa isang pakikipag-ugnay.

Magkakaroon ka ng pagkakataon na samantalahin ang isang pribadong aralin at mahaharap ka sa mga problema na hindi mo naisip kung ikaw mismo ang may alam. Ang mga aralin ay nagkakahalaga ng pera, kaya tiyaking mag-sign up ka para sa mga klase na makakatulong sa iyo na malaman kung ano ang nais mong malaman. Habang maraming mga developer ang maaari lamang ipasok ang industriya batay sa kanilang mga kasanayan, magagawa mong bigyang-diin kung mayroon kang degree sa agham sa computer. Ang degree ay magbibigay sa iyo ng mas malalim na kaalaman at pag-access sa mga kapaki-pakinabang na aralin tulad ng matematika at lohika. Ang pagtatrabaho sa maliliit na proyekto.

Bago mo simulang gamitin ang iyong mga kasanayan sa programa sa mundo ng trabaho, nagtatrabaho ka sa ilang mga proyekto para sa iyong sarili. Mga hamon upang malutas ang mga problema sa paggamit ng mga programa. Matutulungan ka nito hindi lamang mapabuti ang iyong mga kasanayan, ngunit palawakin din ang iyong kurikulum.

Diagram ng bahagi

Ang diagram ng sangkap, taliwas sa dating isinasaalang-alang na mga diagram, ay naglalarawan ng mga tampok ng pisikal na representasyon ng system. Pinapayagan ka ng isang diagram ng sangkap na matukoy ang arkitektura ng system sa ilalim ng pag-unlad sa pamamagitan ng pagtataguyod ng mga dependency sa pagitan ng mga bahagi ng software, na maaaring mapagkukunan, binary at maipapatupad na code. Sa maraming mga kapaligiran sa pag-unlad, ang isang module o sangkap ay tumutugma sa isang file. Ang mga may tuldok na arrow na nagkokonekta ng mga module ay nagpapakita ng mga ugnayan ng pagkakaugnay na magkatulad sa mga nagaganap kapag nag-iipon ng source code. Ang pangunahing mga elemento ng grapiko ng isang diagram ng sangkap ay mga bahagi, interface at dependency sa pagitan nila.


Halimbawa, sa halip na gumamit ng isang kalendaryo sa computer upang pag-uri-uriin ang mga tipanan, subukang lumikha ng isa mo mismo! Kung interesado ka sa pagbuo ng video game, gumagana ito sa mga simpleng laro na hindi nakatuon sa graphics o kumplikadong mekanika.

  • Sa halip, ito ay isang usapin ng pagka-orihinal at kasiyahan.
  • Ang isang koleksyon ng mga maliliit na laro na nilikha mo ay gagawing magandang pigura ang iyong pigura.
Magtanong. Ang internet ay isang mahusay na paraan upang kumonekta sa iba pang mga developer. Tiyaking magtanong ng matalinong mga katanungan at subukan mga posibleng solusyon.

Paglaraw ng diagram

Ang diagram ng paglawak ay inilaan upang mailarawan ang mga elemento at sangkap ng isang programa na umiiral lamang sa yugto ng pagpapatupad nito (runtime). Sa kasong ito, ang mga instance instance lamang ng programa, na kung saan ay maipapatupad na mga file o mga pabagu-bagong aklatan, ang ipinakita. Ang mga sangkap na hindi ginamit sa runtime ay hindi ipinakita sa diagram ng paglawak.
Ang isang diagram ng paglawak ay naglalaman ng mga grapikong representasyon ng mga processor, aparato, proseso, at mga ugnayan sa pagitan nila. Hindi tulad ng mga lohikal na diagram ng pagtingin, ang isang diagram ng paglawak ay pare-pareho para sa system sa kabuuan, dahil dapat na ganap nitong ipakita ang mga detalye ng pagpapatupad nito. Mahalagang kinukumpleto ng diagram na ito ang proseso ng OOAP para sa isang tukoy sistema ng software at ang pag-unlad nito ay karaniwang ang huling hakbang sa pagtutukoy ng modelo.

Magsanay araw-araw. Trabaho ang iyong mga personal na proyekto araw-araw, kahit na para sa isang oras. Tutulungan ka nitong manatiling aktibo at laging matuto ng mga bagong diskarte. Ang pang-araw-araw na pagsasalin gamit ang wika ay makakatulong sa iyo na higit itong matutunan. Magpasya sa isang oras ng araw na italaga ang iyong sarili sa pag-program, o magtakda ng isang deadline kung saan dapat kang sumunod. Subukang magtrabaho sa iyong mga proyekto araw-araw sa isang linggo upang makapagpahinga ka sa katapusan ng linggo. Maghanap para sa mga magagamit na programa upang makumpleto ang gawaing nais mong makumpleto at suriin kung may anumang mga paraan upang gawing mas simple o mas madaling maunawaan ang proseso. nag-aalok sa gumagamit ng maraming pagiging kapaki-pakinabang. Isulat ang anumang mga ideya. Kahit na ang mga tila hangal o walang katotohanan, sapagkat maaari silang manganak ng isang bagay na kapaki-pakinabang o napakatalino.

  • Mag-isip tungkol sa mga ideya.
  • Ang isang mahusay na programa ay gumagawa ng isang gawain na ginagawang madali ang buhay para sa gumagamit.
  • Suriin ang mga pagpapatakbo na iyong ginagawa araw-araw sa iyong computer.
Galugarin ang iba pang mga programa.

Tinatapos nito ang aming pangkalahatang ideya ng paglalakbay sa mga diagram sa partikular at disenyo sa pangkalahatan. Napapansin na ang proseso ng disenyo ay matagal nang naging pamantayan sa pag-unlad ng software, ngunit madalas na makitungo ang isang napakahusay na nakasulat na programa, na, dahil sa kakulangan ng normal na dokumentasyon, ay napuno ng hindi kinakailangang pag-andar sa gilid, mga saklay, nagiging masalimuot at nawala ang dating kalidad nito. \u003d (

Anong ginagawa nila Paano sila mapapabuti? Ang pagsagot sa mga katanungang ito ay makakatulong sa iyo na makahanap ng mga ideya. Sumulat ng isang dokumento ng proyekto. Ilalarawan ng dokumentong ito ang mga pagpapaandar at gawain ng iyong proyekto. Bumuo ng isang prototype. Ito ay magiging isang prototype na nagpapakita ng mga tampok na sinusubukan mong makuha. Ang prototype ay mabilis na programaat kailangan itong ayusin upang makahanap ng isang disenyo na gumagana. Halimbawa, kung lumilikha ka ng isang iskedyul para sa isang kalendaryo, ang iyong prototype ay magiging isang simpleng kalendaryo at isang paraan upang magdagdag ng mga kaganapan.

Ang iyong prototype ay magbabago nang madalas sa panahon ng pag-ikot ng pag-unlad habang nakakita ka ng mga bagong paraan upang malutas ang mga problema o mag-isip tungkol sa isang ideya na nais mong isama sa iyong programa. Sa katunayan, ang graphics at disenyo ay dapat na isa sa huling mga bagay na nakatuon sa pagtuon.

  • Ang prototype ay hindi kailangang mai-edit nang grapiko.
  • Gamit ang halimbawa ng kalendaryo, ang iyong prototype ay dapat na binubuo lamang ng teksto.
Ang mga error sa code at hindi inaasahang paggamit ay maaaring maging sanhi ng maraming mga problema sa natapos na produkto. Subukan hangga't makakaya mo habang nagpapatuloy kang gumana sa iyong prototype.

Kumbinsido ako na ang isang programmer ay, una sa lahat, isang coder - HINDI siya dapat makipag-usap sa customer, HINDI niya dapat isipin ang tungkol sa arkitektura ng system, hindi siya dapat mag-imbento ng isang interface sa programa, dapat lamang niya ang code - ipatupad ang mga algorithm, pagpapaandar, hitsura, kakayahang magamit, ngunit wala nang .... Dapat ang taga-disenyo, simula sa mga abstract diagram (naglalarawan sa lugar ng paksa) hanggang sa mga diagram na kumakatawan sa istraktura ng data, mga klase at mga proseso ng kanilang pakikipag-ugnayan, idetalye ang lahat nang sunud-sunod. Iyon ay, ang pagiging kumplikado ng trabaho at suweldo ng taga-disenyo ay dapat na isang order ng magnitude na mas mataas kaysa sa programmer \u003d\u003d coder. Paumanhin para sa sedisyon ...

Gawin ang iyong makakaya upang makahanap ng mga bug ng programa at pagkatapos ay subukang iwasan ang mga bug sa hinaharap. Subukan ang isang programa para sa mga kaibigan at pamilya at hilingin sa kanila na sabihin sa iyo kung ano ang kanilang natagpuan. Ang napakatandang mga petsa o malayong hinaharap ay maaaring maging sanhi ng mga kakaibang reaksyon sa programa.

  • Subukang ipasok ang mga kakaibang petsa kung gumagana ang iyong programa sa mga petsa.
  • Ipasok ang mga uri ng hindi wastong mga variable.
Kumpletuhin ang iyong mga proyekto. Habang ito ay isang magaspang na draft lamang para sa prototype at pag-unlad na yugto, kung nais mong gamitin ito ng ibang mga gumagamit, kailangan mong maglaan ng oras upang makumpleto ito.

Pag-unlad ng produkto ng software alam ang maraming disenteng pamamaraan - sa madaling salita, mahusay na itinatag na pinakamahusay na kasanayan. Ang pagpipilian ay nakasalalay sa mga pagtutukoy ng proyekto, ang sistema ng pagbabadyet, mga nais na paksa at maging ang pag-uugali ng manager. Inilalarawan ng artikulong ito ang mga pamamaraan na regular naming nadatnan sa Edison.

Nangangahulugan ito na ang mga menu ay lohikal na konektado, na ang interface ng gumagamit ay malinis at madaling gamitin, na walang halata o kritikal na mga bug, at ang mga graphic ay mahusay na sinusuportahan. Ang disenyo ng interface ay maaaring maging napaka-kumplikado at kumplikado, may mga propesyonal na inilaan lamang ang kanilang sarili sa aspetong ito ng pagprograma, siguraduhin lamang na ang iyong personal na proyekto ay madaling gamitin at kasiya-siya para sa manonood. malaking koponan ng account at development. Kung mayroon kang pera, maaari kang kumuha ng isang graphic designer upang gawin ang interface para sa iyo. Kung lumikha ka ng isang mahusay na proyekto na maaaring maging isang matagumpay na programa, maghanap ng isang mahusay na taga-disenyo at ilagay ang mga ito sa koponan. Papayagan ka nitong makatanggap ng mga mungkahi para sa iyong code at matulungan ang iba na naghahanap ng mga solusyon na maaari mong makita.

1. "Modelo ng Talon" (modelo ng kaskad o "talon")



Ang isa sa pinakaluma, ay nagpapahiwatig ng sunud-sunod na daanan ng mga yugto, na ang bawat isa ay dapat na kumpletuhin nang buo bago magsimula ang susunod. Ang modelo ng Waterfall ay madali upang pamahalaan ang proyekto. Dahil sa tigas nito, ang pag-unlad ay mabilis, ang gastos at oras ay paunang natukoy. Ngunit ito ay isang dalawang-talim na tabak. Ibibigay ang modelo ng talon mahusay na resulta sa mga proyekto lamang na may malinaw at paunang natukoy na mga kinakailangan at pamamaraan ng kanilang pagpapatupad. Walang paraan upang kumuha ng isang hakbang pabalik, nagsisimula lamang ang pagsubok pagkatapos makumpleto o halos makumpleto ang pag-unlad. Ang mga produktong binuo ayon sa modelong ito nang walang kaalamang pagpipilian ay maaaring may mga bahid (ang listahan ng mga kinakailangan ay hindi maaaring ayusin anumang oras), na nalalaman lamang sa huli dahil sa mahigpit na pagkakasunud-sunod ng mga pagkilos. Ang gastos sa paggawa ng pagbabago ay mataas sapagkat kailangan nitong maghintay para makumpleto ang buong proyekto upang mapasimulan ito. Gayunpaman, ang nakapirming gastos ay madalas na mas malaki kaysa sa kahinaan ng diskarte. Ang pagwawasto ng mga pagkukulang na kinikilala sa panahon ng proseso ng paglikha ay posible, at, sa aming karanasan, nangangailangan ng isa hanggang tatlong karagdagang kasunduan sa isang kontrata sa isang maliit na TK.

Ipamahagi ang software. Kapag natapos mo na ang isang produkto, maaari kang magpasya kung ipamahagi ito o hindi. Maraming paraan upang magawa ito, nakasalalay sa uri ng program na iyong nilikha. Ang isang pamamaraang ginamit ng karamihan sa mga koponan o mga independiyenteng developer ay upang mai-publish ang software sa isang personal na website. Siguraduhin na ang lahat ng mga tampok sa programa ay mahusay na dokumentado at may kasamang mga imahe at manwal. Kung ibinebenta mo ang iyong programa, tiyaking mag-alok ng isang digital sistema ng pagbabayad at gumamit ng isang server kung saan mo ito maaaring ipamahagi. Kung nagkakaroon ka ng software para sa isang tukoy na aparato o operating system, maaari mong gamitin ang isa sa maraming mga digital na tindahan. Kapag ang iyong negosyo ay tiyak, at ang mga karaniwang solusyon sa software ay hindi maaaring matugunan ang iyong mga kinakailangan, kailangan mo ng espesyal na software na espesyal na idinisenyo para sa iyo.

Sa tulong ng modelo ng talon, lumikha kami ng maraming mga proyekto mula sa simula, kasama ang pagbuo ng mga teknikal na pagtutukoy lamang. Ang mga proyekto tungkol dito kung saan nakasulat sa Habré: medium - maliit -.

Kailan gagamitin ang pamamaraan ng talon?

  • Lamang kapag ang mga kinakailangan ay nalalaman, naunawaan at naayos. Walang magkasalungat na mga kinakailangan.
  • Walang problema sa pagkakaroon ng mga programmer ng tamang mga kwalipikasyon.
  • Sa medyo maliliit na proyekto.

2. "V-Model"



Nagmamana ng sunud-sunod na istraktura mula sa modelo ng talon. Ang modelo ng hugis V ay nalalapat sa mga system kung saan ang makinis na pagpapatakbo ay lalong mahalaga. Halimbawa, mga klinikal na aplikasyon para sa pagsubaybay sa pasyente, isinama na software para sa kontrol ng airbag ng sasakyan, at iba pa. Ang isang tampok ng modelo ay maaaring isaalang-alang na ito ay naglalayon sa masusing pagsusuri at pagsubok ng isang produkto na nasa paunang yugto ng disenyo. Ang yugto ng pagsubok ay nagaganap nang sabay-sabay sa kaukulang yugto ng pag-unlad, halimbawa, ang mga pagsubok sa yunit ay nakasulat sa panahon ng pag-coding.

Bilang isang customer, makakatanggap ka ng software na kailangan mo mula sa amin. Ang aming layunin ay upang lumikha ng mabilis at maaasahang mga panandaliang aplikasyon na nakakatugon sa mga pangangailangan at kinakailangan ng aming mga customer. Ang aming mga pagsisikap ay naglalayong lumikha ng mga solusyon sa kalidad na maaaring maging intuitively at madaling gamitin ng mga dalubhasa sa iba't ibang larangan, hindi lamang mga dalubhasa sa IT. Ang mga teknolohiyang ginagamit namin upang makabuo ng software ay nagbibigay ng kakayahang umangkop at saklaw para sa pag-unlad ng aplikasyon sa hinaharap.

Ang aming mga customer ay maaaring umasa sa standardized at na-customize na mga solusyon upang matugunan ang kanilang mga kinakailangan. Magbigay ng tamang solusyon para sa iyong mga pangangailangan. Tulungan kang sulitin ang iyong pamumuhunan sa teknolohiya. Ang prosesong ito ay tinukoy bilang isang patuloy na pag-ikot upang matiyak na ang bawat proyekto ay umaayon sa iyong mga pangmatagalang layunin sa negosyo.

Isang halimbawa ng aming trabaho batay sa pamamaraan ng V - mobile app para sa European operator ng cellularna nakakatipid ng mga gastos sa paggala habang naglalakbay. Isinasagawa ang proyekto ayon sa isang malinaw na pagtutukoy ng panteknikal, ngunit nagsasama ito ng isang makabuluhang yugto ng pagsubok: ang kaginhawaan ng interface, pagganap, pag-load at kasama ang pagsasama, na dapat kumpirmahing maraming bahagi mula sa iba't ibang mga tagagawa ang nagtutulungan, imposibleng magnakaw ng pera at mga pautang.

Kailan gagamitin ang V-model?

  • Kung kinakailangan ng masusing pagsusuri ng produkto, bibigyan ng katwiran ng V-model ang pinagbabatayan ng ideya: pagpapatunay at pag-verify.
  • Para sa maliliit at katamtamang mga proyekto kung saan ang mga kinakailangan ay malinaw na tinukoy at naayos.
  • Gamit ang pagkakaroon ng mga inhinyero na may kinakailangang mga kwalipikasyon, lalo na ang mga tester.

3. "Incremental Model" (incremental model)

Sa isang incremental na modelo, ang pangkalahatang mga kinakailangan sa system ay nahahati sa iba't ibang mga pagpupulong. Ang terminolohiya ay madalas na ginagamit upang ilarawan ang phased na pagpupulong ng software. Maraming mga pag-ikot na pag-unlad ang nagaganap at magkasama na binubuo nila ang multi-waterfall cycle ng buhay. Ang loop ay nahahati sa mas maliit, madaling likhain na mga module. Ang bawat module ay dumadaan sa mga kinakailangang kahulugan, disenyo, coding, pagpapatupad at pagsubok na mga phase. Ang pamamaraan ng pag-unlad batay sa incremental na modelo ay ipinapalagay ang paglabas sa unang pangunahing yugto ng produkto sa pangunahing pag-andar, at pagkatapos ay ang sunud-sunod na pagdaragdag ng mga bagong pag-andar, ang tinaguriang "mga dagdag". Nagpapatuloy ang proseso hanggang malikha ang isang kumpletong sistema.


Ginagamit ang mga karagdagang modelo kung saan ang mga indibidwal na kahilingan sa pagbabago ay malinaw at madaling gawing pormal at maipatupad. Sa aming mga proyekto, ginamit namin ito upang likhain ang mambabasa ng DefView, at pagkatapos ang Vivaldi network ng mga elektronikong aklatan.

Bilang isang halimbawa, ilarawan natin ang kakanyahan ng isang pagtaas. pinalitan ang DefView. Nakakonekta ang DefView sa isang server ng dokumento at maaari nang kumonekta sa marami. Sa site ng isang institusyon na nais i-broadcast ang nilalaman nito sa isang tukoy na madla, naka-install ang isang server ng imbakan na direktang ina-access ang mga dokumento at binago ang mga ito sa nais na format... Lumitaw ang root element ng arkitektura - ang gitnang server na Vivaldi, na kumikilos bilang isang solong search engine sa lahat ng mga server ng imbakan na naka-install sa iba't ibang mga institusyon.

Kailan gagamit ng isang incremental na modelo?

  • Kapag ang pangunahing mga kinakailangan para sa system ay malinaw na tinukoy at naiintindihan. Sa parehong oras, ang ilang mga detalye ay maaaring mapabuti sa paglipas ng panahon.
  • Kailangan ng maagang paglulunsad ng merkado.
  • Mayroong maraming mga mapanganib na tampok o layunin.

4. "Modelong RAD" (mabilis na modelo ng pagbuo ng aplikasyon o mabilis na pagpapaunlad ng aplikasyon)

Ang modelo ng RAD ay isang uri ng incremental na modelo. Sa isang modelo ng RAD, ang mga bahagi o pag-andar ay binuo ng maraming mga kwalipikadong koponan na kahanay, tulad ng maraming mga mini-proyekto. Mahigpit na limitado ang frame ng oras para sa isang pag-ikot. Ang mga nilikha na module ay isinasama sa isang gumaganang prototype. Pinapayagan ka ng Synergy na mabilis mong ibigay ang kliyente para sa pagtingin sa isang bagay na gumagana upang makakuha puna at paggawa ng mga pagbabago.


Kasama sa mabilis na modelo ng pagbuo ng aplikasyon ang mga sumusunod na yugto:

  • Pagmomodelo sa negosyo: pagtukoy sa isang listahan ng mga daloy ng impormasyon sa pagitan ng iba't ibang mga kagawaran.
  • Pagmomodelo ng Data: Ang impormasyong nakalap sa nakaraang hakbang ay ginagamit upang tukuyin ang mga bagay at iba pang mga nilalang na kinakailangan upang ikalat ang impormasyon.
  • Pagmomodelo ng proseso: ang impormasyon ay dumadaloy sa mga link na bagay upang makamit ang mga layunin sa disenyo.
  • Buuin ang application: Gumagamit ng mga tool sa pagpupulong ng auto upang mai-convert ang mga modelo ng CAD sa code.
  • Pagsubok: ang mga bagong bahagi at interface ay nasubok.
Kailan ginagamit ang modelo ng RAD?

Maaari lamang itong magamit nang may mataas na kwalipikado at dalubhasang dalubhasang mga arkitekto. Malaki ang badyet ng proyekto upang magbayad para sa mga dalubhasang ito, kasama ang gastos ng mga handa nang awtomatikong kagamitan sa pagpupulong. Ang modelo ng RAD ay maaaring mapili na may kumpiyansa na kaalaman sa target na negosyo at ang pangangailangan para sa kagyat na paggawa ng system sa loob ng 2-3 buwan.

5. "Agile Model" (kakayahang umangkop na pamamaraan ng pag-unlad)



Sa isang "maliksi" na pamamaraan ng pag-unlad, pagkatapos ng bawat pag-ulit, maaaring obserbahan ng customer ang resulta at maunawaan kung nasiyahan niya ito o hindi. Ito ay isa sa mga pakinabang ng isang nababaluktot na modelo. Kabilang sa mga kawalan nito ang katotohanan na dahil sa kakulangan ng mga tiyak na pagbabalangkas ng mga resulta, mahirap tantyahin ang mga gastos sa paggawa at gastos na kinakailangan para sa kaunlaran. Matinding programa Ang (XP) ay isa sa mga kilalang praktikal na paggamit ng maliksi na modelo.

Ang uri na ito ay batay sa mga maikling pang-araw-araw na pagpupulong na tinatawag na "Scrum" at regular na paulit-ulit na mga pagpupulong (isang beses sa isang linggo, isang beses bawat dalawang linggo o isang beses sa isang buwan) na tinatawag na "Sprint". Sa mga pang-araw-araw na pagpupulong, tinatalakay ng mga miyembro ng koponan:

  • isang ulat tungkol sa gawaing nagawa mula noong huling Scrum;
  • isang listahan ng mga gawain na dapat kumpletuhin ng empleyado bago ang susunod na pagpupulong;
  • mga paghihirap na naranasan sa kurso ng trabaho.
Ang pamamaraan ay angkop para sa malaki o pangmatagalang mga proyekto na patuloy na umaangkop sa mga kondisyon sa merkado. Alinsunod dito, nagbabago ang mga kinakailangan sa panahon ng pagpapatupad. Ito ay nagkakahalaga ng pag-alala sa klase ng mga taong malikhaing may kaugaliang makabuo, mag-isyu, at subukan ang mga bagong ideya sa isang lingguhan o kahit pang-araw-araw na batayan. Ang maliksi na pag-unlad ay pinakaangkop para sa ganitong uri ng ehekutibo. Bumubuo kami ng panloob na mga startup gamit ang Agile. Ang isang halimbawa ng mga proyekto ng kliyente ay ang Electronic System of Medical Examinations, nilikha upang magsagawa ng mga pagsusuri sa medikal na masa sa loob ng ilang minuto. Sa pangalawang talata ng pagsusuri na ito, inilarawan ng aming mga kasosyo sa Amerika ang isang napakahalagang bagay na pangunahing sa tagumpay sa Agile.

Kailan gagamitin ang Agile?

  • Kapag ang mga pangangailangan ng gumagamit ay patuloy na nagbabago sa isang pabago-bagong negosyo.
  • Ang mabilis na mga pagbabago ay ipinatupad sa isang mas mababang gastos dahil sa madalas na pagtaas.
  • Hindi tulad ng isang modelo ng talon, sa isang nababaluktot na modelo, ang isang maliit na pagpaplano ay sapat upang magsimula ng isang proyekto.

6. "Iterative Model" (umuulit o umuulit na modelo)

Ang isang umuulit na modelo ng lifecycle ay hindi nangangailangan ng isang kumpletong detalye ng mga kinakailangan upang magsimula. Sa halip, nagsisimula ang paglikha sa pagpapatupad ng isang piraso ng pag-andar, na nagiging batayan para sa pagtukoy ng mga karagdagang kinakailangan. Ang prosesong ito ay paulit-ulit. Ang bersyon ay maaaring hindi perpekto, ang pangunahing bagay ay gumagana ito. Pag-unawa sa tunay na layunin, pinagsisikapan namin ito upang ang bawat hakbang ay epektibo, at ang bawat bersyon ay magagawa.


Ipinapakita ng diagram ang umuulit na "pagpapaunlad" ng Mona Lisa. Tulad ng nakikita mo, sa unang pag-ulit ay mayroon lamang isang sketch ng La Gioconda, sa pangalawa, lilitaw ang mga kulay, at ang pangatlong pag-ulit ay nagdaragdag ng mga detalye, saturation at nakumpleto ang proseso. Sa incremental na modelo, ang pag-andar ng produkto ay naitayo piraso ng piraso, ang produkto ay binubuo ng mga bahagi. Hindi tulad ng umuulit na modelo, ang bawat piraso ay isang magkakaugnay na elemento.

Ang isang halimbawa ng umuulit na pag-unlad ay pagkilala sa boses. Ang unang pagsasaliksik at paghahanda ng pang-agham na kagamitan ay nagsimula nang matagal na, sa simula - sa mga saloobin, pagkatapos - sa papel. Sa bawat bagong pag-ulit, ang kalidad ng pagkilala ay napabuti. Gayunpaman, ang perpektong pagkilala ay hindi pa nakakamit, samakatuwid, ang problema ay hindi pa ganap na nalulutas.

Kailan pinakamainam na gumamit ng isang umuulit na modelo?

  • Ang mga kinakailangan para sa panghuling sistema ay mahusay na tinukoy at nauunawaan nang maaga.
  • Ang proyekto ay malaki o napakalaki.
  • Ang pangunahing hamon ay kailangang tukuyin, ngunit ang mga detalye ng pagpapatupad ay maaaring umunlad sa paglipas ng panahon.

7. "Spiral Model"



Ang Spiral Model ay katulad ng incremental model, ngunit may diin sa pagtatasa ng peligro. Gumagana ito nang maayos para sa paglutas ng mga kritikal na problema sa negosyo kung ang pagkabigo ay hindi tugma sa mga aktibidad ng kumpanya, kapag ang mga bagong linya ng produkto ay inilabas, kung kinakailangan ang pananaliksik at praktikal na pagsubok.

Ipinapalagay ng modelo ng spiral ang 4 na yugto para sa bawat loop:

  1. pagpaplano;
  2. pagtatasa ng peligro;
  3. disenyo;
  4. pagtatasa ng resulta at, na may isang kasiya-siyang kalidad, ang paglipat sa isang bagong pag-ikot.
Ang modelong ito ay hindi angkop para sa maliliit na proyekto, makatuwiran ito para sa mga kumplikado at mamahaling, halimbawa, tulad ng pagbuo ng isang sistema ng pamamahala ng dokumento para sa isang bangko, kapag ang bawat susunod na hakbang ay nangangailangan ng mas maraming pagsusuri upang masuri ang mga kahihinatnan kaysa sa pag-program. Sa proyekto para sa pagbuo ng isang EDMS para sa ODU ng Siberia, SO UES, ang dalawang pagpupulong sa pagbabago ng codification ng mga seksyon ng isang elektronikong archive ay tumatagal ng 10 beses na mas maraming oras kaysa sa isang programmer na sumali sa dalawang folder. Ang mga proyekto ng estado kung saan kami lumahok ay nagsimula sa paghahanda ng isang mamahaling konsepto ng dalubhasang pamayanan, na hindi nangangahulugang palaging walang silbi, dahil nagbabayad ito sa pambansang sukat.

Ibuod natin



Ipinapakita ng slide ang mga pagkakaiba sa pagitan ng dalawang pinaka-karaniwang pamamaraan.

Sa modernong kasanayan, ang mga modelo ng pagbuo ng software ay multivariate. Walang totoo para sa lahat ng mga proyekto, pagsisimula ng mga kundisyon at mga modelo ng pagbabayad. Kahit na ang Agile, na minamahal nating lahat, ay hindi mailalapat saanman dahil sa hindi magagamit ng ilang mga customer o ang imposibilidad ng kakayahang umangkop na financing. Ang mga pamamaraan ay bahagyang nagsasapawan sa mga paraan at bahagyang magkatulad sa bawat isa. Ang ilang iba pang mga konsepto ay ginamit lamang upang itaguyod ang kanilang sariling mga tagataguyod at hindi nagdala ng anumang bago sa pagsasagawa.

Tungkol sa mga teknolohiya sa pag-unlad:
.
.
.
.

Anong mga pamamaraan ang ginagamit mo?