Mga produkto ng software: pangunahing katangian, aplikasyon. Mga produkto ng software at ang kanilang mga pangunahing katangian 2 programa ng utility ay dinisenyo para sa

Mga Pangunahing Kaalaman sa Software

Pangunahing Konsepto

Ang mga kakayahan ng isang computer bilang teknikal na batayan ng isang sistema ng pagproseso ng data ay nauugnay sa software (mga programa) na ginamit.

Programa (programa, nakagawian) - isang ordered sequence ng computer commands (instructions) para malutas ang isang problema.

Software (software) - isang hanay ng mga programa sa pagproseso ng data at mga dokumento na kinakailangan para sa kanilang operasyon.

Ang mga programa ay idinisenyo para sa pagpapatupad ng makina ng mga gawain. Mga tuntunin mga gawain At aplikasyon ay napakalawak na ginagamit sa konteksto ng computer science at software.

Gawain (problema, gawain) - problemang dapat lutasin. Aplikasyon (aplikasyon) - pagpapatupad ng software sa isang computer ng paglutas ng isang problema.

Kaya, ang isang gawain ay nangangahulugang isang problema na ipapatupad gamit ang mga tool sa teknolohiya ng impormasyon, at ang isang aplikasyon ay isang solusyon sa isang problema na ipinatupad sa isang computer. Ang aplikasyon, bilang kasingkahulugan para sa salitang "programa", ay itinuturing na isang mas mahusay na termino at malawakang ginagamit sa computer science.

Termino gawain ginagamit din sa larangan ng programming, lalo na sa multiprogramming at multiprocessing mode, bilang isang yunit ng operasyon ng isang computer system na nangangailangan ng paglalaan ng mga mapagkukunan ng computing (oras ng processor, pangunahing memorya, atbp.). Sa kabanatang ito, ang terminong ito ay ginamit sa kahulugan ng unang kahulugan.

Mayroong isang malaking bilang ng iba't ibang mga klasipikasyon ng mga problema. Mula sa pananaw ng mga detalye ng pag-unlad at ang uri ng software, makikilala natin ang dalawang klase ng mga gawain - teknolohikal at functional.

Mga hamon sa teknolohiya ang mga tanong ay itinakda at nalulutas kapag inaayos ang teknolohikal na proseso ng pagproseso ng impormasyon sa isang computer. Ang mga teknolohikal na layunin ay ang batayan para sa pag-unlad mga tool sa serbisyo ng software bilang mga kagamitan, mga programa sa serbisyo, mga aklatan ng pamamaraan atbp., na ginagamit upang matiyak ang pagpapatakbo ng isang computer, bumuo ng iba pang mga program o magproseso ng data mula sa mga functional na gawain.

Mga functional na gawain nangangailangan ng mga solusyon kapag nagpapatupad ng mga function ng pamamahala sa loob ng mga sistema ng impormasyon ng mga paksa. Halimbawa, pamamahala sa mga aktibidad ng isang negosyo sa pangangalakal, pagpaplano ng pagpapalabas ng produkto, pamamahala sa transportasyon ng mga kalakal, atbp. Ang mga functional na gawain ay magkakasamang bumubuo sa lugar ng paksa at ganap na tinutukoy ang pagiging tiyak nito.

Lugar ng paksa (application). (aplikasyon domain) - isang hanay ng mga magkakaugnay na pag-andar at mga gawain sa pamamahala sa tulong kung saan ang pagkamit ng mga itinakdang layunin ay nakamit.

Ang proseso ng paglikha ng mga programa ay maaaring kinakatawan bilang isang pagkakasunud-sunod ng mga aksyon na ipinakita sa Fig. 8.1.

kanin. 8.1. Diagram ng proseso ng paglikha ng programa

Pagbubuo ng problema(problema kahulugan) - ito ay isang eksaktong pagbabalangkas ng solusyon sa isang problema sa isang computer na may paglalarawan ng impormasyon ng input at output.

Ang pahayag ng problema ay isang pangkalahatang termino na nangangahulugang ang pagtitiyak ng nilalaman ng pagproseso ng data. Ang pagbabalangkas ng problema ay nauugnay sa pagtutukoy ng mga pangunahing parameter ng pagpapatupad nito, ang pagkakakilanlan ng mga mapagkukunan at ang istraktura ng input at output na impormasyon na kinakailangan ng gumagamit.

Ang mga pangunahing katangian ng mga functional na gawain, na nilinaw sa proseso ng pormal na pagbabalangkas nito, ay kinabibilangan ng:

Ang layunin o layunin ng isang gawain, ang lugar nito at mga koneksyon sa iba pang mga gawain;

Mga kondisyon para sa paglutas ng isang problema gamit ang teknolohiya ng computer;

Mga kinakailangan para sa dalas ng paglutas ng problema;

Mga limitasyon sa timing at katumpakan ng impormasyon ng output;

Komposisyon at anyo ng pagtatanghal ng impormasyon sa output;

Mga mapagkukunan ng impormasyon sa pag-input para sa paglutas ng problema;

Mga gumagamit ng problema (na lumulutas nito at gumagamit ng mga resulta ng solusyon at gumagamit ng mga resulta ng solusyon).

Impormasyon sa output ang gawain ay maaaring iharap sa anyo ng isang dokumento tulad ng isang listahan o isang machineogram), nabuong mga frame - isang videogram sa monitor screen ng isang database file, isang output signal sa control device (Fig. 8.2).

Input na impormasyon para sa isang gawain ay tinukoy bilang data na ibinibigay sa task code at ginagamit upang malutas ito. Ang impormasyon sa pag-input ay ang pangunahing data ng mga manu-manong nakumpletong dokumento, impormasyong nakaimbak sa mga file ng database (mga resulta ng paglutas ng iba pang mga problema, impormasyon sa normatibo at sanggunian - mga classifier, codifier, mga reference na libro), mga signal ng input ng mga transmitters (cm. kanin. 8.2).

Karaniwan, ang pagtatakda ng gawain ay isinasagawa sa isang solong hanay ng mga gawa upang lumikha ng isang istraktura sa loob ng isang database ng computer, mga form ng disenyo at mga ruta para sa paggalaw ng mga dokumento, at baguhin ang organisasyon ng pamamahala sa loob ng lugar ng paksa.

Algorithm- isang sistema ng tumpak na nabuong mga panuntunan na tumutukoy sa proseso ng pagbabago ng katanggap-tanggap na paunang data (input information) sa nais na resulta (output information) sa isang may hangganang bilang ng mga hakbang.

Ang algorithm para sa paglutas ng problema ay may isang bilang ng mga kinakailangang katangian:

Ang discreteness ay ang paghahati ng proseso ng pagproseso ng impormasyon sa mas simpleng mga yugto (mga hakbang sa pagpapatupad), ang pagpapatupad nito ay hindi sanhi ng isang computer o isang tao! kahirapan;

Ang katiyakan ng algorithm ay ang hindi malabo na pagpapatupad ng bawat indibidwal na hakbang ng pagbabago ng impormasyon;

Ang pagiging posible ay ang finiteness ng mga aksyon ng isang algorithm sa paglutas ng problema, na nagpapahintulot sa isa na makuha ang ninanais na resulta na may katanggap-tanggap na paunang data sa isang limitadong bilang ng mga hakbang;

Mass availability - ang pagiging angkop ng isang algorithm para sa paglutas ng isang tiyak na klase ng mga problema.

Ang algorithm ay sumasalamin sa lohika at paraan ng pagbuo ng mga resulta ng solusyon, na nagpapahiwatig ng mga kinakailangang formula ng pagkalkula, lohikal na kondisyon, at mga relasyon para sa pagsubaybay sa pagiging maaasahan ng mga resulta ng output. Ang algorithm ay dapat magbigay para sa lahat ng mga sitwasyon na maaaring lumitaw sa proseso ng paglutas ng isang hanay ng mga problema.

Ang algorithm para sa paglutas ng isang hanay ng mga problema at ang pagpapatupad ng software nito ay malapit na magkakaugnay. Ang mga detalye ng mga pamamaraan ng disenyo ng algorithm na ginamit at ang mga tool sa pagbuo ng programa ay maaaring makaapekto sa anyo ng pagtatanghal at nilalaman ng algorithm ng pagproseso ng data.

Tandaan. Upang malutas ang mga problema, ang mga algorithm na naka-embed sa mga handa na produkto ng software - maaaring gamitin ang mga application software packages (APP) para sa functional na layunin (tingnan sa ibaba). Ang mga karaniwang modelo at pamamaraan para sa paglutas ng mga problema na ipinakita sa mga PPP na nakatuon sa pamamaraan ay maaari ding gamitin. Sa kasong ito, ang PPP ay iniangkop sa mga kondisyon ng isang partikular na aplikasyon; sa lahat ng iba pang mga kaso, ang mga orihinal na algorithm at mga programa para sa pagpapatupad ng isang hanay ng mga gawain ay umunlad.

Programming (programming)- teoretikal at praktikal na mga aktibidad na may kaugnayan sa paglikha ng mga programa.

Ang programming ay isang kolektibong konsepto at maaaring ituring na parehong isang agham at isang sining; isang siyentipiko at praktikal na diskarte sa pagbuo ng programa ay batay dito.

Ang isang programa ay resulta ng gawaing intelektwal, na nailalarawan sa pamamagitan ng pagkamalikhain, na, tulad ng alam natin, ay walang malinaw na mga hangganan. Ang anumang programa ay may sariling katangian ng developer nito; ang programa ay sumasalamin sa isang tiyak na antas ng kasanayan ng programmer. Kasabay nito, ang programming ay nagsasangkot din ng karaniwang gawain, na maaari at dapat magkaroon ng mahigpit na mga regulasyon at sumunod sa mga pamantayan.

Ang programming ay batay sa isang hanay ng mga siyentipikong disiplina na naglalayong magsaliksik, pagpapaunlad at aplikasyon ng mga pamamaraan at kasangkapan para sa pagbuo ng programa (mga espesyal na kasangkapan para sa paglikha ng mga programa). Kapag bumubuo ng mga programa, ginagamit ang mga teknolohiyang masinsinang mapagkukunan at masinsinang kaalaman at mataas na kwalipikadong gawaing intelektwal.

Programming ay isang binuo na sangay ng pang-ekonomiyang aktibidad na nauugnay sa makabuluhang gastos ng materyal, paggawa at mga mapagkukunang pinansyal. Ayon sa mga dayuhang mapagkukunan, noong kalagitnaan ng 90s, hanggang sa 2% ng populasyon ng nagtatrabaho sa mundo ay nakikibahagi sa programming. Ang kabuuang turnover sa larangan ng paglikha ng software ay umaabot ng ilang daang bilyong dolyar sa isang taon.

Kaugnay ng lumalaking pangangailangan para sa iba't ibang mga programa sa pagpoproseso ng data, ang isyu ng paggamit ng epektibong mga teknolohiya sa programming at ang kanilang paglipat sa isang pang-industriya na batayan ay napaka-kaugnay. Ibig sabihin:

Standardization, replicability at pagpaparami ng mga pamamaraan ng programming ng iba't ibang mga developer;

Panimula ng mga advanced na tool sa pagbuo ng software;

Gumagamit ng mga espesyal na pamamaraan at pamamaraan para sa pag-oorganisa ng gawain sa pagbuo ng programa.

Ang pangunahing kategorya ng mga espesyalista na kasangkot sa pagbuo ng programa ay mga programmer (programmer). Ang mga programmer ay magkakaiba sa kanilang antas ng mga kwalipikasyon, gayundin sa likas na katangian ng kanilang mga aktibidad. Kadalasan ang mga programmer ay nahahati sa mga system at application programmer.

  • Programmer ng system(sistema / software programmer, toolsmilh) ay nakikibahagi sa pagpapaunlad, pagpapatakbo at pagpapanatili sistematiko software na sumusuporta sa pagpapatakbo ng isang computer at lumilikha ng isang kapaligiran para sa pagpapatupad ng mga programa na nagsisiguro sa pagpapatupad ng mga functional na gawain.
  • Programmer ng aplikasyon (aplikasyon programmer) nagsasagawa ng pagbuo at pag-debug ng mga programa upang malutas ang mga problema sa pagganap.

Sa konteksto ng paglikha ng mga programa na malaki ang sukat at pagpoproseso ng mga function, lilitaw ang isang bagong kwalipikasyon - programmer-analyst (programmer- analyst), na nagsusuri at nagdidisenyo ng isang hanay ng magkakaugnay na mga programa para ipatupad ang mga tungkulin ng paksa.

Sa proseso ng paglikha ng mga programa sa paunang yugto ng trabaho, lumahok din ang mga espesyalista - mga tagapagtakda ng gawain.

Karamihan sa mga sistema ng impormasyon ay batay sa pagtatrabaho sa mga database (DBs). Kung ang database ay isinama, na nagbibigay ng trabaho sa data mula sa maraming mga aplikasyon, ang problema ng suporta sa organisasyon para sa database ay lumitaw, na kung saan gumanap tagapangasiwa ng database.

Ang pangunahing mamimili ng mga programa ay end user (wakas gumagamit), na, bilang panuntunan, ay nabibilang sa kategorya ng mga hindi programmer na gumagamit. Ang end user ay hindi isang espesyalista sa larangan ng programming, ibig sabihin, hindi nagmamay-ari ng mga pamamaraan at teknolohiya ng pagdidisenyo at paglikha ng mga programa, ngunit may pangunahing kaalaman at kasanayan sa pagtatrabaho sa teknolohiya ng computer. Ang katangiang ito ng kwalipikasyon ng gumagamit ng software ay makabuluhang nakakaimpluwensya sa detalye ng mga kinakailangan para sa mga nilikhang programa, interface, anyo ng mga dokumento ng makina, at teknolohiya para sa paglutas ng mga problema sa isang computer.

Posibleng magpatakbo ng mga programa ng mga kwalipikadong programmer o espesyal na sinanay na mga teknikal na manggagawa - mga operator ng kompyuter.

Ang pakikipag-ugnayan ng iba't ibang uri ng mga espesyalista na kasangkot sa pagbuo at pagpapatakbo ng mga programa ay ipinapakita sa Fig. 8.3. Sa ilang mga kaso, pinagsasama ng isang espesyalista ang ilang uri ng mga aktibidad. Ang database administrator at system programmer ay naghahanda ng impormasyon, software at teknikal na kondisyon para sa pagpapatakbo ng mga programa. Ang mga tuldok na linya ay nagpapahiwatig ng pakikilahok ng isang espesyalista bilang isang consultant.

kanin. 8.3. Scheme ng pakikipag-ugnayan sa pagitan ng mga espesyalista na may kaugnayan sa paglikha at pagpapatakbo ng mga programa.

MGA KATANGIAN NG SOFTWARE PRODUCT

Ang lahat ng mga programa, ayon sa likas na katangian ng paggamit at mga kategorya ng mga gumagamit, ay maaaring nahahati sa dalawang klase (Larawan 8.4) - mga programang utilitarian at mga produkto ng software (mga produkto).

  • Mga programang utilitarian Ang (“software para sa iyong sarili”) ay idinisenyo upang matugunan ang mga pangangailangan ng kanilang mga developer. Kadalasan, ang mga programang utilitarian ay gumaganap ng tungkulin ng isang serbisyo sa teknolohiya sa pagpoproseso ng data o mga programa para sa paglutas ng mga problema sa pagganap na hindi nilayon para sa malawak na pamamahagi.
  • Mga produkto ng software(mga produkto) ay idinisenyo upang matugunan ang mga pangangailangan ng gumagamit, malawak na ipamahagi at ibenta.

Sa kasalukuyan, may iba pang mga opsyon para sa legal na pamamahagi ng mga produkto ng software na lumabas gamit ang global o rehiyonal na telekomunikasyon:

Freeware - mga libreng programa, malayang ipinamamahagi, suportado ng gumagamit mismo, na awtorisadong gumawa ng mga kinakailangang pagbabago sa kanila;

Ang Shareware ay mga non-commercial (shareware) na mga programa na maaaring gamitin, bilang panuntunan, nang libre. Napapailalim sa regular na paggamit ng mga naturang produkto, ang isang pagbabayad ng isang tiyak na halaga ay kinakailangan.

Ang isang bilang ng mga tagagawa ay gumagamit Mga programang OEM(Original Equipment Manufacturer), i.e. mga naka-embed na program na naka-install sa mga computer o binibigyan ng kagamitan sa computer.

Ang produkto ng software ay dapat na maayos na inihanda para sa operasyon, may kinakailangang teknikal na dokumentasyon, magbigay ng serbisyo at ginagarantiyahan ang maaasahang operasyon ng programa, may trademark ng tagagawa, at mas mabuti na mayroong code ng pagpaparehistro ng estado. Sa ilalim lamang ng ganitong mga kundisyon matatawag na software na produkto ang nilikhang software complex.

Software - isang hanay ng magkakaugnay na mga programa upang malutas ang isang tiyak na problema (gawain) ng mass demand, na inihanda para sa pagbebenta tulad ng anumang uri ng produktong pang-industriya.

Ang landas mula sa "mga programa para sa iyong sarili" hanggang sa mga produkto ng software ay medyo mahaba, nauugnay ito sa mga pagbabago sa kapaligiran ng teknikal at software para sa pagbuo at pagpapatakbo ng mga programa, kasama ang paglitaw at pag-unlad ng isang independiyenteng industriya - ang negosyo ng impormasyon, na kung saan ay nailalarawan sa pamamagitan ng dibisyon ng paggawa ng mga kumpanya ng software developer, ang kanilang karagdagang espesyalisasyon, pagbuo ng isang merkado para sa mga serbisyo ng software at impormasyon.

Maaaring malikha ang mga produkto ng software bilang:

Indibidwal na pag-unlad upang mag-order;

Pag-unlad para sa mass distribution sa mga user.

Sa indibidwal na pag-unlad, ang kumpanya ng pag-unlad ay lumilikha ng isang orihinal na produkto ng software na isinasaalang-alang ang mga detalye ng pagproseso ng data para sa isang partikular na customer.

Kapag nagde-develop para sa mass distribution, ang development company, sa isang banda, ay dapat tiyakin ang universality ng data processing functions na ginanap, at, sa kabilang banda, ang flexibility at customization ng software product para sa mga kondisyon ng isang partikular na application. Ang isang natatanging tampok ng mga produkto ng software ay dapat na ang kanilang sistematikong katangian - ang functional na pagkakumpleto at pagkakumpleto ng mga ipinatupad na pag-andar sa pagproseso, na ginagamit nang magkasama.

Ang produkto ng software ay binuo batay sa teknolohiyang pang-industriya para sa pagsasagawa ng gawaing disenyo gamit ang mga modernong tool sa programming. Ang pagiging tiyak ay nakasalalay sa pagiging natatangi ng proseso ng pagbuo ng mga algorithm at programa, depende sa likas na katangian ng pagproseso ng impormasyon at ang mga tool na ginamit. Ang mga makabuluhang mapagkukunan ay ginugol sa paglikha ng mga produkto ng software - paggawa, materyal, pananalapi; kinakailangan ang mga highly qualified na developer.

Bilang isang patakaran, ang mga produkto ng software ay nangangailangan ng pagpapanatili, na isinasagawa ng mga dalubhasang kumpanya - mga distributor ng software (mga distributor), at mas madalas - ng mga kumpanya ng pag-unlad. Ang pagpapanatili ng mga programa para sa malawakang paggamit ay nagsasangkot ng maraming paggawa - pagwawasto ng mga nakitang error, paglikha ng mga bagong bersyon ng mga programa, atbp.

Suporta sa produkto ng software - pagpapanatili ng functionality ng produkto ng software, paglipat sa mga bagong bersyon, paggawa ng mga pagbabago, pagwawasto ng mga nakitang error, atbp.

Ang mga produkto ng software, hindi tulad ng tradisyonal na mga produkto ng software, ay walang mahigpit na kinokontrol na hanay ng mga katangian ng kalidad na tinukoy kapag lumilikha ng mga programa, o ang mga katangiang ito ay hindi maaaring tumpak na tukuyin o masuri nang maaga, dahil ang parehong mga function sa pagpoproseso na ibinigay ng software ay maaaring magkaroon ng iba't ibang lalim ng pagpapaliwanag. Kahit na ang oras at mga gastos para sa pagbuo ng mga produkto ng software ay hindi maaaring matukoy nang may mataas na antas ng katumpakan nang maaga. Ang mga pangunahing katangian ng mga programa ay:

Algorithmic complexity (lohika ng mga algorithm sa pagproseso ng impormasyon);

Ang komposisyon at lalim ng elaborasyon ng mga ipinatupad na pag-andar sa pagproseso;

Pagkumpleto at pagkakapare-pareho ng mga pag-andar sa pagproseso;

Dami ng mga file ng programa;

Mga kinakailangan para sa operating system at teknikal na paraan ng pagproseso sa bahagi ng software;

Kapasidad ng memorya ng disk;

Ang laki ng RAM para sa pagpapatakbo ng mga programa;

Uri ng processor;

Bersyon ng operating system;

Availability ng isang computer network, atbp.

Ang mga produkto ng software ay may iba't ibang mga tagapagpahiwatig ng kalidad na nagpapakita ng mga sumusunod na aspeto:

Gaano kahusay (simple, maaasahan, epektibo) magagamit ang produkto ng software;

Gaano kadaling gamitin ang produkto ng software?

Posible bang gamitin ang produkto ng software kung nagbabago ang mga kondisyon para sa paggamit nito, atbp.

Ang puno ng mga katangian ng kalidad ng produkto ng software ay ipinapakita sa Fig. 8.5.

Mobility Ang mga produkto ng software ay nangangahulugan ng kanilang kalayaan mula sa teknikal na kumplikado ng sistema ng pagpoproseso ng data, operating environment, teknolohiya sa pagproseso ng data ng network, mga detalye ng paksa, atbp. Ang isang mobile (multi-platform) na produkto ng software ay maaaring mai-install sa iba't ibang modelo ng computer at operating system, nang walang mga paghihigpit sa pagpapatakbo nito sa isang computer network. Ang mga pag-andar sa pagpoproseso ng naturang produkto ng software ay angkop para sa malawakang paggamit nang walang anumang pagbabago.

pagiging maaasahan Ang pagpapatakbo ng isang produkto ng software ay tinutukoy ng kinis at katatagan ng mga programa, ang katumpakan ng pagpapatupad ng mga iniresetang pag-andar sa pagproseso, at ang kakayahang mag-diagnose ng mga error na lumitaw sa panahon ng pagpapatakbo ng mga programa.

Kahusayan ang isang produkto ng software ay tinasa pareho mula sa punto ng view ng direktang layunin nito - mga kinakailangan ng gumagamit, at mula sa punto ng view ng pagkonsumo ng mga mapagkukunan ng computing na kinakailangan para sa operasyon nito.

Ang pagkonsumo ng mga mapagkukunan ng computing ay tinasa sa pamamagitan ng dami ng panlabas na memorya para sa pag-iimbak ng mga programa at ang halaga ng RAM para sa pagpapatakbo ng mga programa.

Isinasaalang-alang ang kadahilanan ng tao nangangahulugan ng pagbibigay ng magiliw na interface para sa end user, ang pagkakaroon ng isang pahiwatig na sensitibo sa konteksto o sistema ng pagsasanay bilang bahagi ng software, mahusay na dokumentasyon para sa mastering at paggamit ng functionality na nakapaloob sa software, pagsusuri at pagsusuri ng mga error, atbp.

Pagbabago Ang mga produkto ng software ay nangangahulugan ng kakayahang gumawa ng mga pagbabago, halimbawa, pagpapalawak ng mga function sa pagpoproseso, paglipat sa isa pang teknikal na base sa pagproseso, atbp.

Kakayahan sa pakikipag-usap Ang mga produkto ng software ay batay sa kanilang pinakamataas na posibleng pagsasama sa iba pang mga programa, tinitiyak ang pagpapalitan ng data sa mga karaniwang format ng pagtatanghal (pag-export/pag-import ng mga database, pagpapatupad o pag-link ng mga bagay sa pagproseso, atbp.).

Sa konteksto ng pagkakaroon ng isang software market, ang mahahalagang katangian ay:

presyo,

Bilang ng mga benta;

Oras na ginugol sa merkado (tagal ng mga benta);

Reputasyon ng kumpanya ng developer at ng programa;

Availability ng mga produkto ng software para sa mga katulad na layunin.

Ibinebenta ang mass-distributed na mga produkto ng software sa mga presyo na isinasaalang-alang ang demand at mga kondisyon sa merkado (availability at mga presyo ng mga nakikipagkumpitensyang programa). Ang marketing na isinasagawa ng kumpanya ay may malaking kahalagahan, na kinabibilangan ng:

Ang isang partikular na tampok ng mga produkto ng software (hindi tulad ng karamihan sa mga produktong pang-industriya) ay ang kanilang operasyon ay dapat na isagawa sa isang legal na batayan - mga kasunduan sa lisensya sa pagitan ng developer at mga user bilang pagsunod sa mga copyright ng mga developer ng produkto ng software.

Siklo ng buhay ng isang produkto ng software.

Ang mga programa ng anumang uri ay nailalarawan sa pamamagitan ng isang siklo ng buhay na binubuo ng magkakahiwalay na mga yugto:

a) marketing ng software market, pagtutukoy ng mga kinakailangan para sa isang produkto ng software;

b) disenyo ng istraktura ng produkto ng software;

c) programming (paglikha ng program code), pagsubok, autonomous at kumplikadong pag-debug ng mga programa;

d) dokumentasyon ng produkto ng software, paghahanda ng pagpapatakbo at teknolohikal na dokumentasyon;

e) pagpasok sa merkado ng software, pamamahagi ng produkto ng software;

f) pagpapatakbo ng produkto ng software ng mga gumagamit;

g) pagpapanatili ng produkto ng software;

h) pag-alis ng produkto ng software mula sa pagbebenta, pagtanggi ng suporta. Sa Fig. Inilalarawan ng 8.6 ang mga yugto ng siklo ng buhay at ipinapakita ang kanilang temporal na pakikipag-ugnayan sa isa't isa. Isaalang-alang natin ang nilalaman ng mga indibidwal na yugto ng ikot ng buhay.

kanin. 8.6. Mga yugto ng ikot ng buhay ng produkto ng software.

Marketing At pagtutukoy Ang produkto ng software ay idinisenyo upang pag-aralan ang mga kinakailangan para sa nilikhang produkto ng software, katulad ng:

Pagtukoy sa komposisyon at layunin ng mga function ng pagproseso ng data ng isang produkto ng software;

Pagtatatag ng mga kinakailangan ng user para sa likas na katangian ng pakikipag-ugnayan sa produkto ng software, ang uri ng user interface (sistema ng menu, paggamit ng mouse, mga uri ng mga senyas, mga uri ng mga dokumento sa screen, atbp.);

mga kinakailangan para sa isang hanay ng hardware at software para sa pagpapatakbo ng produkto ng software, atbp.

Sa yugtong ito, kinakailangan na magsagawa ng isang pormal na pahayag ng problema.

Kung ang isang produkto ng software ay hindi nilikha upang mag-order at ito ay inilaan upang makapasok sa merkado ng software, ang pagmemerkado ay isinasagawa nang buo: ang mapagkumpitensyang mga produkto ng software at mga analogue ay pinag-aralan, ang mga kinakailangan ng gumagamit para sa produkto ng software ay buod, ang potensyal na kapasidad ng merkado ng pagbebenta ay itinatag, at isang pagtataya ng presyo at dami ng benta ay ibinigay. Bilang karagdagan, mahalagang tantiyahin ang materyal, paggawa at mga mapagkukunang pinansyal na kinakailangan para sa pagbuo ng isang produkto ng software, pati na rin ang tinatayang tagal ng mga pangunahing yugto ng ikot ng buhay ng produkto ng software.

Kung ang isang produkto ng software ay ginawa bilang isang pasadyang produkto ng software para sa isang partikular na customer, sa yugtong ito mahalaga din na wastong bumalangkas at idokumento ang gawain para sa pagbuo nito. Ang isang hindi nauunawaang kinakailangan para sa isang produkto ng software ay maaaring humantong sa hindi kanais-nais na mga resulta sa panahon ng operasyon nito.

Disenyo ng istraktura ng isang produkto ng software ay nauugnay sa algorithmization ng proseso ng pagproseso ng data, ang pagdedetalye ng mga pag-andar sa pagproseso, ang pagbuo ng istraktura ng produkto ng software (arkitektura ng mga software module), ang istraktura ng base ng impormasyon (database) ng gawain, ang pagpili ng mga pamamaraan at paraan para sa paglikha ng mga programa - mga teknolohiya ng programming.

Programming, pagsubok At pag-debug Ang mga programa ay ang teknikal na pagpapatupad ng mga solusyon sa disenyo at isinasagawa gamit ang mga piling tool ng developer (mga wikang algorithm at programming system, mga kapaligiran ng tool ng developer, atbp.).

Para sa malaki at kumplikadong mga sistema ng software na may nabuong modular na istraktura, ang indibidwal na gawain sa yugtong ito ay maaaring isagawa nang magkatulad, na binabawasan ang kabuuang oras ng pag-unlad ng produkto ng software. Ang isang mahalagang papel ay nabibilang sa mga tool sa programming at pag-debug na ginagamit sa prosesong ito, dahil nakakaapekto ang mga ito sa pagiging kumplikado ng trabaho, gastos nito, at kalidad ng mga nilikhang programa.

Pagdodokumento ng produkto ng software ay isang ipinag-uutos na uri ng trabaho na isinagawa, bilang panuntunan, hindi ng developer mismo, ngunit ng isang taong nauugnay sa pamamahagi at pagpapatupad ng produkto ng software. Ang dokumentasyon ay dapat maglaman ng kinakailangang impormasyon sa pag-install at pagtiyak ng maaasahang pagpapatakbo ng produkto ng software, suporta sa mga user kapag nagsasagawa ng mga function sa pagpoproseso, at tukuyin ang pamamaraan para sa pagsasama ng produkto ng software sa iba pang mga program. Ang tagumpay ng pamamahagi at pagpapatakbo ng isang software na produkto ay higit na nakasalalay sa kalidad ng dokumentasyon nito.

Sa antas ng makina ng isang produkto ng software, bilang panuntunan, ang mga sumusunod ay nilikha:

Automated context-sensitive na tulong (HELP);

Mga bersyon ng demo na tumatakbo sa aktibong mode na katulad ng mga sistemang pang-edukasyon (electronic textbook) o passive mode (video, cartoon) - upang ipakita ang pag-andar ng produkto ng software at ang teknolohiya ng impormasyon ng paggamit nito.

Ang pagpasok ng isang produkto ng software sa merkado ng software ay nauugnay sa organisasyon ng mga benta sa mass user. Ang yugtong ito ay dapat na maikli hangga't maaari; ang mga karaniwang diskarte sa marketing ay ginagamit upang i-promote ang mga produkto ng software: advertising, pagtaas ng bilang ng mga channel sa pagbebenta, paglikha ng isang dealer at network ng pamamahagi, patakaran sa pagpepresyo - mga benta sa mga diskwento, serbisyo pagkatapos ng benta, atbp.

Ang isang patuloy na programa ng mga aktibidad sa marketing at suporta sa produkto ng software ay kinakailangan. Bilang isang tuntunin, ang bawat produkto ng software ay may sariling hugis ng kurba ng benta, na sumasalamin sa demand (Larawan 8.7).

Sa una, ang mga benta ng produkto ng software ay tumaas - ang pagtaas ng bahagi ng curve. Pagkatapos ay darating ang pagpapapanatag ng mga benta ng produkto ng software. Ang kumpanya ng pag-unlad ay nagsusumikap para sa maximum na tagal ng panahon ng matatag na mga benta sa isang mataas na antas. Susunod, mayroong pagbaba sa dami ng benta, na isang senyales para sa pagbabago sa patakaran sa marketing ng kumpanya na may kaugnayan sa produktong ito ng software; kinakailangan ang pagbabago ng produktong ito, pagbabago ng presyo o pag-alis mula sa pagbebenta.

kanin. 8.7. Curve ng pagbebenta ng produkto ng software.

Ang operasyon ng isang produkto ng software ay nagpapatuloy kasabay ng pagpapanatili nito, at ang pagpapatakbo ng mga programa ay maaaring magsimula kahit na walang pagpapanatili o magpatuloy kung ang pagpapanatili ay nakumpleto nang ilang panahon. Pagkatapos maalis sa pagbebenta ang isang produkto ng software, maaari din itong mapanatili sa isang tiyak na tagal ng panahon. Sa panahon ng pagpapatakbo ng produkto ng software, ang mga nakitang error ay inaalis.

Ang pag-alis ng isang produkto ng software mula sa pagbebenta at pagtanggi sa suporta ay nangyayari, bilang panuntunan, sa kaganapan ng pagbabago sa teknikal na patakaran ng kumpanya ng developer, hindi epektibong pagpapatakbo ng produkto ng software, ang pagkakaroon ng mga nakamamatay na error sa loob nito, o kakulangan ng demand.

Ang haba ng ikot ng buhay para sa iba't ibang produkto ng software ay hindi pareho. Para sa karamihan ng mga modernong produkto ng software, ang ikot ng buhay ay sinusukat sa mga taon (2-3 taon). Bagaman medyo madalas na matatagpuan sa mga computer ay mga produkto ng software na hindi na ipinagpatuloy sa mahabang panahon.

Ang kakaiba ng pagbuo ng produkto ng software ay na sa mga unang yugto ay ginawa ang mga pagpapasya na ipinatupad sa mga susunod na yugto. Ang mga pagkakamaling nagawa, halimbawa, kapag tinukoy ang mga kinakailangan para sa isang produkto ng software, ay humantong sa malaking pagkalugi sa mga susunod na yugto ng pag-unlad o pagpapatakbo ng produkto ng software at maging sa kabiguan ng buong proyekto. Kaya, kung kinakailangan na gumawa ng mga pagbabago sa detalye ng isang produkto ng software, ang lahat ng kasunod na yugto ng pagdidisenyo at paglikha ng produkto ng software ay dapat na ulitin nang buo.

PROTEKSYON NG MGA PRODUKTO NG SOFTWARE.

Mga pangunahing konsepto tungkol sa pagprotekta sa mga produkto ng software.

Ang mga produkto ng software at mga database ng computer ay paksa ng gawaing intelektwal ng mga highly qualified na espesyalista. Ang proseso ng pagdidisenyo at pagpapatupad ng mga produkto ng software ay nailalarawan sa pamamagitan ng makabuluhang gastos sa materyal at paggawa, ay batay sa paggamit ng mga high-tech na teknolohiya at tool, at nangangailangan ng paggamit ng naaangkop na antas ng mamahaling kagamitan sa computer. Nangangailangan ito ng pangangailangan na gumawa ng mga hakbang upang maprotektahan ang mga interes ng mga developer ng programa at mga tagalikha ng mga database ng computer mula sa hindi awtorisadong paggamit.

Ang software ay napapailalim din sa proteksyon dahil sa pagiging kumplikado at labor-intensive na katangian ng pagpapanumbalik ng functionality nito at ang kahalagahan ng software para sa pagpapatakbo ng sistema ng impormasyon.

Ang proteksyon ng software ay may mga sumusunod na layunin:

Paghihigpit ng hindi awtorisadong pag-access sa mga programa o ang kanilang sadyang pagsira at pagnanakaw;

Pag-aalis ng hindi awtorisadong pagkopya (pagtitiklop) ng mga programa.

Ang produkto ng software at mga database ay dapat protektado sa ilang lugar mula sa pagkakalantad:

1) tao - pagnanakaw ng computer media at dokumentasyon ng software; malfunction ng isang software na produkto, atbp.;

2) hardware - pagkonekta ng hardware sa isang computer para sa pagbabasa ng mga programa at data o ang kanilang pisikal na pagkasira;

3) mga dalubhasang programa - ang pag-render ng isang software na produkto o database na hindi gumagana (halimbawa, impeksyon sa virus), hindi awtorisadong pagkopya ng mga programa at database, atbp.

Ang pinakasimpleng at pinaka-abot-kayang paraan upang maprotektahan ang mga produkto ng software at database ay ang paghigpitan ang pag-access. Ang kontrol sa pag-access sa produkto ng software at database ay binuo ng:

Proteksyon ng password ng mga programa kapag inilunsad ang mga ito;

Paggamit ng isang key floppy disk upang magpatakbo ng mga programa;

Mga limitasyon ng mga programa o data, pagpoproseso ng mga function na magagamit sa mga user, atbp.

Ang mga cryptographic na pamamaraan para sa pagprotekta sa impormasyon ng database o mga head software module ay maaari ding gamitin.

Software system upang maprotektahan laban sa hindi awtorisadong pagkopya.

Pinipigilan ng mga system na ito ang walang lisensyang paggamit ng mga produkto ng software at database. Isinasagawa lamang ang programa kapag natukoy ang ilang natatangi, hindi makokopya na elemento ng key.

Ang mga pangunahing elemento ay maaaring:

Isang floppy disk kung saan nakasulat ang isang susi na hindi maaaring kopyahin;

Ilang mga katangian ng computer hardware;

Isang espesyal na device (electronic key) na nakakonekta sa isang computer at idinisenyo upang magbigay ng isang identification code.

Mga sistema ng proteksyon ng kopya ng software para sa mga produkto ng software:

Tukuyin ang kapaligiran kung saan ilulunsad ang programa;

Itinatag nila na ang kapaligiran kung saan inilunsad ang programa ay tumutugma sa kung saan pinapayagan ang awtorisadong paglulunsad;

Bumuo ng tugon sa isang paglulunsad mula sa isang hindi awtorisadong kapaligiran;

Magrehistro ng awtorisadong pagkopya;

Pinipigilan nila ang pag-aaral ng mga algorithm at programa ng system.

Ang mga sumusunod na pamamaraan ay ginagamit upang makilala ang mga startup na floppy disk:

1) nagiging sanhi ng pinsala sa ibabaw ng floppy disk ("laser hole"), na halos hindi maaaring kopyahin sa isang hindi awtorisadong kopya ng floppy disk;

2) hindi karaniwang pag-format ng paglulunsad ng floppy disk.

Ang pagkakakilanlan ng kapaligiran ng computer ay sinisiguro ng:

1) pag-aayos ng lokasyon ng mga programa sa isang hard magnetic disk (tinatawag na mga non-relocatable program);

2) nagbubuklod sa numero ng BIOS (pagkalkula at pagsasaulo na may kasunod na pag-verify kapag sinimulan ang checksum ng system);

3) nagbubuklod sa isang hardware (electronic) key na ipinasok sa I/O port, atbp.

Sa Kanluran, ang pinakasikat na paraan ng legal na proteksyon ng mga produkto ng software at database.

Mga legal na paraan ng pagprotekta sa mga produkto at database ng software.

Ang mga legal na pamamaraan para sa pagprotekta sa mga programa ay kinabibilangan ng:

  • proteksyon ng patent;
  • batas ng mga lihim ng kalakalan;
  • mga kasunduan at kontrata sa paglilisensya;
  • batas sa copyright.
  • mga karapatang pang-ekonomiya na nagbibigay sa kanilang mga may-ari ng karapatang tumanggap ng mga benepisyong pang-ekonomiya mula sa pagbebenta o paggamit ng mga produkto ng software at database;
  • mga karapatang moral na tumitiyak sa pangangalaga ng personalidad ng may-akda sa kanyang akda.

Sa maraming sibilisadong bansa, ang hindi awtorisadong pagkopya ng mga programa para sa layunin ng pagbebenta o libreng pamamahagi ay itinuturing na isang krimen ng estado, na may parusang multa o pagkakulong. Ngunit, sa kasamaang-palad, ang copyright mismo ay hindi nagbibigay ng proteksyon para sa isang bagong ideya, konsepto, pamamaraan at teknolohiya para sa pagbuo ng software, kaya ang mga karagdagang hakbang para sa kanilang proteksyon ay kinakailangan.

Proteksyon ng patent nagtatatag ng priyoridad sa pagbuo at paggamit ng isang bagong diskarte o pamamaraan na inilapat sa pagbuo ng mga programa, nagpapatunay ng kanilang pagka-orihinal.

Katayuan lihim ng kalakalan para sa programa, nililimitahan ang bilog ng mga taong pamilyar o awtorisadong magpatakbo nito, at tinutukoy din ang lawak ng kanilang responsibilidad sa pagsisiwalat ng mga lihim. Halimbawa, ginagamit ang password access sa isang software na produkto o database, kabilang ang mga password para sa mga indibidwal na mode (pagbabasa, pagsusulat, pag-update, atbp.). Ang mga programa, tulad ng anumang materyal na bagay na may malaking halaga, ay dapat protektahan mula sa pagnanakaw at sadyang pagkawasak.

Mga Kasunduan sa Lisensya nalalapat sa lahat ng aspeto ng legal na proteksyon ng mga produkto ng software, kabilang ang copyright, proteksyon ng patent, at mga lihim ng kalakalan. Ang pinakakaraniwang ginagamit na mga kasunduan sa lisensya ay ang mga kasunduan sa paglilipat ng copyright.

Lisensya- isang kasunduan para sa paglipat ng isang tao (licensor) sa ibang tao (lisensyado) ng karapatang gumamit ng pangalan, produkto, teknolohiya o serbisyo. Ang tagapaglisensya ay nagdaragdag ng kita nito sa pamamagitan ng pagkolekta ng mga bayarin sa lisensya, pagpapalawak ng lugar ng pamamahagi ng produkto ng software o database; ang may lisensya ay nakakakuha ng kita sa pamamagitan ng kanilang paggamit.

Itinatakda ng kasunduan sa lisensya ang lahat ng mga kondisyon sa pagpapatakbo para sa mga programa, kabilang ang paglikha ng mga kopya. Ang bawat kopya ng programa ay dapat na may parehong marka tulad ng orihinal:

  • simbolo ng copyright (karaniwang ©) at ang pangalan ng developer, taon ng paglabas ng programa, at iba pang mga katangian;
  • marka ng proteksyon ng patent o trade secret;
  • mga trademark na naaayon sa iba pang mga produkto ng software na ginagamit sa programa (karaniwan at ang pangalan ng kumpanyang bumuo ng produkto ng software);
  • simbolo ng rehistradong karapatan na ipamahagi ang isang produkto ng software (karaniwan ay ®).

Mayroong ilang mga uri ng mga lisensya ng software. Eksklusibong lisensya - pagbebenta ng lahat ng karapatan sa ari-arian sa isang software na produkto o database, ang bumibili ng lisensya ay binibigyan ng eksklusibong karapatang gamitin ang mga ito, at ang may-akda o may-ari ng patent ay tumangging gamitin ang mga ito nang nakapag-iisa o ibigay ang mga ito sa iba.

Ito ang pinakamahal na uri ng lisensya; ginagamit ito para sa monopolyo na pagmamay-ari upang kunin ang karagdagang kita o upang wakasan ang pagkakaroon ng isang produkto ng software sa merkado ng software.

Simpleng lisensya - binibigyan ng tagapaglisensya ang may lisensya ng karapatang gumamit ng isang produkto ng software o database, inilalaan ang karapatang gamitin ito at ibigay ito sa mga katulad na termino sa isang walang limitasyong bilang ng mga tao (ang may lisensya ay hindi maaaring mag-isyu ng mga sublicense, maaari lamang itong magbenta ng mga kopya ng binili produkto ng software o database).

Ang ganitong uri ng lisensya ay binili ng isang dealer (trader) o mga kumpanya ng pagmamanupaktura na gumagamit ng mga biniling lisensya bilang isang pantulong na produkto sa kanilang pangunahing aktibidad. Halimbawa, maraming mga tagagawa at kumpanya na nagbebenta ng kagamitan sa computer ang nagbebenta ng mga kagamitan sa computer na may naka-install na lisensyadong software (operating system, text editor, spreadsheet, mga graphics package, atbp.).

Lisensya sa label - lisensya para sa isang kopya ng isang software na produkto o database. Ang ganitong uri ng lisensya ay ginagamit para sa retail sales. Ang bawat opisyal na mamimili ay pumapasok sa isang kasunduan sa lisensya sa nagbebenta para sa kanilang paggamit, ngunit ang copyright ng developer ay pinananatili.

Ang mga ugnayang pang-ekonomiya sa pagitan ng tagapaglisensya at ng may lisensya ay maaaring isaayos sa iba't ibang paraan. Para sa karapatang gumamit ng software na produkto o database, isang beses na bayad (lump sum payment) ang binabayaran, na siyang aktwal na presyo ng lisensya. Ang mga pana-panahong pagbabayad sa tagapaglisensya para sa karapatang gamitin ay posible rin sa form royalty- isang nakapirming rate sa ilang partikular na agwat ng oras sa panahon ng kasunduan sa lisensya, karaniwang isang porsyento ng halaga ng mga produkto ng software o database.

Kinikilala ng Batas sa Proteksyon ng Mga Produkto ng Software at Computer Database ang may-akda bilang indibidwal na kung saan nilikha ang mga ito sa malikhaing aktibidad. Ang may-akda, anuman ang kanyang mga karapatan sa pag-aari, ay nagmamay-ari ng mga personal na copyright (tingnan ang Fig. 8.8): pagiging may-akda, pangalan, inviolability (integridad) ng mga programa o database.

  • palayain sa mundo;
  • magparami sa anumang anyo, sa anumang paraan;
  • ipamahagi;
  • baguhin;
  • gumawa ng anumang iba pang paggamit ng software na produkto o database.

Ang mga karapatan sa ari-arian sa isang produkto ng software o database ay maaaring ilipat nang bahagya o ganap sa ibang mga indibidwal o legal na entity sa ilalim ng isang kontrata. Ang mga karapatan sa ari-arian ay inuri bilang namamana. Kung ang isang software na produkto o database ay nilikha sa pagganap ng mga opisyal na tungkulin, ang mga karapatan sa ari-arian ay pagmamay-ari ng employer.

Ang mga produkto at database ng software ay maaaring gamitin ng mga user ng third party batay sa isang kasunduan sa may hawak ng copyright.

Ang isang tao na legal na nagmamay-ari ng kopya ng isang programa o database ay may karapatan, nang hindi kumukuha ng karagdagang pahintulot mula sa may-ari ng copyright, na magsagawa ng anumang mga aksyon na nauugnay sa paggana ng produkto ng software o database alinsunod sa layunin nito, kabilang ang:

  • mag-install ng isang kopya, maliban kung sumang-ayon sa may-ari ng copyright, ng isang software na produkto o database sa isang computer;
  • iwasto ang mga halatang pagkakamali;
  • iakma ang isang software na produkto o database;
  • gumawa ng mga kopya ng insurance.

Programa (programa, routine) - isang ordered sequence ng computer commands (instructions) para malutas ang isang problema.

Software (software)- isang hanay ng mga programa sa pagproseso ng data at mga dokumento na kinakailangan para sa kanilang operasyon.

Ang mga programa ay idinisenyo para sa pagpapatupad ng makina ng mga gawain. Mga tuntunin mga gawain At aplikasyon ay napakalawak na ginagamit sa konteksto ng computer science at software.

Gawain (problema, gawain) - problemang dapat lutasin. Aplikasyon (aplikasyon)- pagpapatupad ng software sa isang computer ng paglutas ng isang problema.

Kaya, ang isang gawain ay nangangahulugang isang problema na ipapatupad gamit ang mga tool sa teknolohiya ng impormasyon, at ang isang aplikasyon ay isang solusyon sa isang problema na ipinatupad sa isang computer. Ang aplikasyon, bilang kasingkahulugan para sa salitang "programa", ay itinuturing na isang mas mahusay na termino at malawakang ginagamit sa computer science.

Termino gawain ginagamit din sa larangan ng programming, lalo na sa multiprogramming at multiprocessing mode, bilang isang yunit ng operasyon ng isang computer system na nangangailangan ng paglalaan ng mga mapagkukunan ng computing (oras ng processor, pangunahing memorya, atbp.). Sa kabanatang ito, ang terminong ito ay ginamit sa kahulugan ng unang kahulugan.

Mayroong isang malaking bilang ng iba't ibang mga klasipikasyon ng mga problema. Mula sa pananaw ng mga detalye ng pag-unlad at ang uri ng software, makikilala natin ang dalawang klase ng mga gawain - teknolohikal at functional.

Mga hamon sa teknolohiya ang mga tanong ay itinakda at nalulutas kapag inaayos ang teknolohikal na proseso ng pagproseso ng impormasyon sa isang computer. Ang mga teknolohikal na layunin ay ang batayan para sa pag-unlad mga tool sa serbisyo ng software bilang mga kagamitan, mga programa sa serbisyo, mga aklatan ng pamamaraan atbp., na ginagamit upang matiyak ang pagpapatakbo ng isang computer, bumuo ng iba pang mga program o magproseso ng data mula sa mga functional na gawain.

Mga functional na gawain nangangailangan ng mga solusyon kapag nagpapatupad ng mga function ng pamamahala sa loob ng mga sistema ng impormasyon ng mga paksa. Halimbawa, pamamahala sa mga aktibidad ng isang negosyo sa pangangalakal, pagpaplano ng pagpapalabas ng produkto, pamamahala sa transportasyon ng mga kalakal, atbp. Ang mga functional na gawain ay magkakasamang bumubuo sa lugar ng paksa at ganap na tinutukoy ang pagiging tiyak nito.

Ang lahat ng mga programa ay maaaring nahahati sa dalawang klase batay sa likas na katangian ng paggamit at mga kategorya ng mga gumagamit:

mga programang utilitarian Ang (“software para sa iyong sarili”) ay idinisenyo upang matugunan ang mga pangangailangan ng kanilang mga developer. Kadalasan, ang mga programang utilitarian ay gumaganap ng tungkulin ng isang serbisyo sa teknolohiya sa pagproseso ng data o mga programa para sa paglutas ng mga problema sa pagganap na hindi nilayon para sa malawak na pamamahagi;



mga produkto ng software Ang (“mga produkto”) ay nilayon upang matugunan ang mga pangangailangan ng user at malawak na maipamahagi at maibenta.

Sa kasalukuyan, may iba pang mga opsyon para sa legal na pamamahagi ng mga produkto ng software na lumabas gamit ang global o rehiyonal na telekomunikasyon:

freeware– ang mga libreng programa, malayang ipinamahagi, ay sinusuportahan ng mismong gumagamit, na may karapatang gumawa ng mga kinakailangang pagbabago sa kanila;

shareware– mga non-commercial (shareware) na mga programa na maaaring gamitin, bilang panuntunan, nang walang bayad (napapailalim sa regular na paggamit ng mga naturang produkto, ang isang pagbabayad ng isang tiyak na halaga ay kinakailangan).

Mga katangian ng mga katangian ng prog. produkto: Mobility Ang mga produkto ng software ay nangangahulugan ng kanilang kalayaan mula sa teknikal na kumplikado ng sistema ng pagpoproseso ng data, operating environment, teknolohiya sa pagproseso ng data ng network, mga detalye ng paksa, atbp. Ang isang mobile (multi-platform) na produkto ng software ay maaaring mai-install sa iba't ibang modelo ng computer at operating system, nang walang mga paghihigpit sa pagpapatakbo nito sa isang computer network. Ang mga pag-andar sa pagpoproseso ng naturang produkto ng software ay angkop para sa malawakang paggamit nang walang anumang pagbabago.

pagiging maaasahan Ang pagpapatakbo ng isang produkto ng software ay tinutukoy ng kinis at katatagan ng mga programa, ang katumpakan ng pagpapatupad ng mga iniresetang pag-andar sa pagproseso, at ang kakayahang mag-diagnose ng mga error na lumitaw sa panahon ng pagpapatakbo ng mga programa.

Kahusayan ang isang produkto ng software ay tinasa pareho mula sa punto ng view ng direktang layunin nito - mga kinakailangan ng gumagamit, at mula sa punto ng view ng pagkonsumo ng mga mapagkukunan ng computing na kinakailangan para sa operasyon nito.

Isinasaalang-alang ang kadahilanan ng tao nangangahulugan ng pagbibigay ng magiliw na interface para sa end user, ang pagkakaroon ng isang pahiwatig na sensitibo sa konteksto o sistema ng pagsasanay bilang bahagi ng software, mahusay na dokumentasyon para sa mastering at paggamit ng functionality na nakapaloob sa software, pagsusuri at pagsusuri ng mga error, atbp.



Pagbabago Ang mga produkto ng software ay nangangahulugan ng kakayahang gumawa ng mga pagbabago, halimbawa, pagpapalawak ng mga function sa pagpoproseso, paglipat sa isa pang teknikal na base sa pagproseso, atbp.

Kakayahan sa pakikipag-usap Ang mga produkto ng software ay batay sa kanilang pinakamataas na posibleng pagsasama sa iba pang mga programa, na tinitiyak ang pagpapalitan ng data sa karaniwang mga format ng pagtatanghal (pag-export/pag-import ng mga database, panloob Ang mga pangunahing katangian ng mga programa ay:

· pagiging kumplikado ng algorithm (lohika ng mga algorithm sa pagproseso ng impormasyon);

· komposisyon at lalim ng elaborasyon ng ipinatupad na mga function sa pagpoproseso;

· pagkakumpleto at pagkakapare-pareho ng mga function ng pagpoproseso;

· dami ng mga file ng programa;

· mga kinakailangan para sa operating system at teknikal na paraan ng pagproseso mula sa labas

· software tool;

· dami ng memorya ng disk;

· laki ng RAM para sa pagpapatakbo ng mga programa;

· uri ng processor;

bersyon ng operating system;

Availability ng isang computer network, atbp.

Ang lahat ng mga programa ay maaaring nahahati sa 2 klase ayon sa uri ng paggamit at mga kategorya ng mga gumagamit: mga programang utilitarian At mga produkto ng software (mga produkto).

Mga programang utilitarian (mga utility) ay nilayon para gamitin ng mga developer mismo. Kadalasan, ito ay mga solusyon sa software sa mga problema sa pagganap na hindi nilayon para sa malawak na pamamahagi.

Software – isang hanay ng magkakaugnay na mga programa upang malutas ang isang tiyak na problema (gawain) ng mass demand, na inihanda para sa pagbebenta tulad ng anumang uri ng produktong pang-industriya.

Ang produkto ng software ay dapat na maayos na inihanda para sa operasyon, may kinakailangang teknikal na dokumentasyon, magbigay ng serbisyo at isang garantiya ng maaasahang operasyon ng programa, may trademark ng tagagawa, at mas mabuti na mayroong code ng pagpaparehistro ng estado.

Ang mga produkto ng software ay inilaan para sa malawak na pamamahagi at pagbebenta.

Ang proseso ng paglikha ng mga produkto ng software ay medyo mahaba, ito ay nauugnay sa mga pagbabago sa teknikal at software na kapaligiran para sa pagbuo at pagpapatakbo ng mga programa, kasama ang paglitaw at pag-unlad ng isang independiyenteng industriya - ang negosyo ng impormasyon, na kung saan ay nailalarawan sa pamamagitan ng dibisyon ng paggawa ng software development kumpanya, ang kanilang karagdagang espesyalisasyon, ang pagbuo ng isang merkado para sa software at mga serbisyo ng impormasyon.

Ang produkto ng software ay binuo batay sa teknolohiyang pang-industriya para sa pagsasagawa ng gawaing disenyo gamit ang mga modernong tool sa programming. Ang pagiging tiyak ay nakasalalay sa pagiging natatangi ng proseso ng pagbuo ng mga algorithm at programa, depende sa likas na katangian ng pagproseso ng impormasyon at ang mga tool na ginamit.

Bilang isang patakaran, ang mga produkto ng software ay nangangailangan ng pagpapanatili, na isinasagawa ng mga dalubhasang kumpanya ng pamamahagi ng software (mga distributor), at mas madalas ng mga kumpanya ng pag-unlad. Ang pagpapanatili ng mga programa para sa malawakang paggamit ay nagsasangkot ng maraming paggawa - pagwawasto ng mga error, paglikha ng mga bagong bersyon ng mga programa, atbp.

Mga pangunahing katangian ng mga programa

    Algorithmic complexity.

    Komposisyon at lalim ng elaborasyon ng mga ipinatupad na function.

    Pagkakumpleto at pagkakapare-pareho ng mga pag-andar.

    Dami ng mga file ng programa.

    Mga kinakailangan para sa OS at hardware ng programa.

    Kapasidad ng memorya ng disk.

    Laki ng operating memory.

    Uri ng processor.

    bersyon ng OS.

    Availability ng isang computer network, atbp.

Mga tagapagpahiwatig ng kalidad ng produkto ng software (pp)

    Mobility – pagsasarili ng software mula sa mga teknikal na paraan ng pagproseso ng impormasyon, OS, teknolohiya ng network. Ang mobile software ay angkop para sa malawakang paggamit nang walang anumang pagbabago.

    pagiging maaasahan – walang tigil at matatag na operasyon, ang kakayahang mag-diagnose ng mga umuusbong na error.

    Kahusayan – pinakamababang posibleng pagkonsumo ng mga mapagkukunan ng computing at pinakamataas na posibleng pagganap.

    Pagbabago - kadalian ng paggawa ng mga pagbabago.

    Kakayahan sa pakikipag-usap – ang pag-aari ng pagsasama sa iba pang mga programa, tinitiyak ang pagpapalitan ng data sa karaniwang mga format ng pagtatanghal.

    Isinasaalang-alang ang kadahilanan ng tao – pagbibigay ng interface na madaling gamitin, pagkakaroon ng tulong na sensitibo sa konteksto o sistema ng pagsasanay, magandang dokumentasyon.

Sa pamamagitan ng software product (SP), naiintindihan namin ang software bilang resulta ng aktibidad ng tao, na ipinakita sa mass consumer market bilang isang produkto at pagkakaroon ng non-zero use value.

Napakahalaga na makilala ang pagkakaiba sa pagitan ng isang produkto ng produksyon ng software at software ng proyekto. Ang Circulation PP ay ginawa upang maaari itong magamit sa maraming lugar ng iba't ibang mga gumagamit. Samakatuwid, wala siyang mga customer, at ang desisyon na simulan ang pag-unlad ay ginawa batay sa inaasahang pangangailangan sa merkado. Mga word processor, spreadsheet, database management system, electronic dictionaries, spelling correctors, Russifiers, translators, optical character recognition programs - lahat ito ay mga halimbawa ng mass-produced software. Milyun-milyong tao ang gumagamit nito sa buong mundo.

Ang software ng proyekto ay nilikha para sa isa, bihira para sa ilan, mga user, o binuo bilang bahagi ng isang teknolohiya na maaaring ibenta sa ibang organisasyon para magamit bilang isang mahalagang bahagi ng isang hardware at software complex. Halimbawa, ang bahagi ng ParaGraph International team na nagtatrabaho sa mga problema sa pagkilala ng character ay gumagana sa direksyong ito. Sa hindi hihigit sa isang dosenang potensyal na customer, ang kumpanyang ito ay isang higante sa larangan nito.

Kaya, kung ang isang proyekto ay karaniwang may isa o ilang mga gumagamit, kung gayon ang tanong ng pagpapatuloy ng pag-unlad ay hindi masyadong pagpindot, at mayroong kompetisyon para sa karapatang magsagawa ng pag-unlad. Sa kabaligtaran, ang isang serialized na produkto ng software ay inilaan para sa daan-daang libong mga potensyal na gumagamit, at kapag ito ay lumitaw sa merkado, ang kumpetisyon sa iba pang mga produkto ng parehong klase ay hindi maiiwasan. Kapag nagpasya na simulan ang pag-unlad, ang kumpanya ay tumatagal ng malaking panganib sa pananalapi. Kasabay nito, dapat na malinaw na alam ng tagagawa na ang bagay ay hindi magtatapos sa paglabas ng isang bersyon, dahil ang ikot ng buhay ng software ay nagsasangkot ng pagpapabuti nito.

Siklo ng buhay ng produkto ng software

Ang isa pang mahalagang pagkakaiba sa pagitan ng software at maraming iba pang mga produkto ay ang isang hiwalay na kopya ng produkto ng software ay may mababang halaga. Ang pag-aari na ito, na natatangi para sa tagagawa, ay nagbibigay-daan sa iyo na magpakilala ng mga bagong paraan ng pakikipag-ugnayan sa kliyente pagkatapos ng unang pagbebenta ng software. Ang ibig naming sabihin ay pag-upgrade, iyon ay, ang karapatang i-update ang software sa pareho, ngunit bago, pinahusay na bersyon para sa isang maliit na bayad. Ang konsepto ng pag-upgrade ay nagbibigay-daan sa gumagamit na isaalang-alang ang iba't ibang mga bersyon ng software bilang isang software, habang para sa tagagawa, ang iba't ibang mga bersyon ay minsan nagsisilbing iba't ibang mga proyekto at, nang naaayon, ganap na magkakaibang mga produkto.

Para sa isang tagagawa, ang ikot ng buhay ng isang produkto ng software ay binubuo ng tatlong yugto:

1. Pag-unlad.

2. Gamitin.

3. Patuloy na pag-unlad.

Pakitandaan na ang paggamit ay sinamahan ng patuloy na pag-unlad - ang pagbuo ng mga bagong bersyon at pagbawas na isinasaalang-alang ang mga pagkukulang ng nakaraang bersyon at nagpapatupad ng mga bagong tampok.

Tulad ng anumang iba pang produkto, dumaan ang isang produkto ng software sa apat na yugto bago lumabas sa merkado. Una, lumitaw ang isang ideya (konsepto) para sa isang bagong produkto, na sumasailalim sa isang masusing teknikal na pagsusuri, bilang isang resulta kung saan ang mga kinakailangan para sa hinaharap na produkto ay binuo. Kasabay nito, ang isang pagsusuri sa ekonomiya ay isinasagawa, na isinasaalang-alang ang mga potensyal na benta, gastos sa produksyon, antas at panahon ng pagbabayad, kumpetisyon sa merkado, kinakailangang pamumuhunan, panandalian at pangmatagalang kita, at antas ng panganib.

Mayroong iba't ibang mga paraan upang hatiin ang proseso ng pagbuo ng software sa mga yugto. Ang ilan sa mga ito ay nagsasangkot ng mas malaking bilang ng mga yugto, ang iba - mas kaunti. Mukhang hindi maiiwasan ang anim na yugto. Pagbuo ng Software: Disenyo ng Depinisyon ng Mga Kinakailangan

Pagsusulat ng mga utos - mga programa Layout Testing Documentation

Ang unang aktibidad, ang kahulugan ng mga kinakailangan, ay partikular na mahirap para sa malalaking Type V system, at titingnan natin ito nang detalyado sa ilang sandali.

Ang disenyo na tinutukoy dito ay ang disenyo ng mga programa partikular, at hindi ng sistema sa kabuuan kung saan bahagi ang mga programang ito. I-explore namin ang prosesong ito nang mas malalim pagkatapos naming tingnan ang pagtukoy ng mga kinakailangan.

Ang ikatlong punto ay ang pagsusulat ng mga utos, pagbabawas ng isang software project o simpleng programa sa isang pagkakasunod-sunod ng mga tagubilin sa makina. Tatawagin natin itong process programming.

Ang komposisyon ay ang pagsasama-sama, pag-uugnay, ng mga indibidwal na bahagi ng isang programa, na isinulat ng iba't ibang tao o grupo, sa isang malaking sistema ng software.

Mga katangian ng produkto ng software

Ang lahat ng mga programa, ayon sa likas na katangian ng paggamit at mga kategorya ng mga gumagamit, ay maaaring nahahati sa dalawang klase - mga programa ng utility at mga produkto ng software (mga produkto).

Ang mga programang utilitarian ("mga programa para sa iyong sarili") ay idinisenyo upang matugunan ang mga pangangailangan ng kanilang mga developer. Kadalasan, ang mga programang utilitarian ay gumaganap ng tungkulin ng isang serbisyo sa teknolohiya sa pagpoproseso ng data o mga programa para sa paglutas ng mga problema sa pagganap na hindi nilayon para sa malawak na pamamahagi.

Ang mga produkto ng software (mga produkto) ay idinisenyo upang matugunan ang mga pangangailangan ng gumagamit, malawak na pamamahagi at pagbebenta.

Sa kasalukuyan, may iba pang mga opsyon para sa legal na pamamahagi ng mga produkto ng software na lumabas gamit ang global o rehiyonal na telekomunikasyon:

Freeware - mga libreng programa, malayang ipinamamahagi, suportado ng gumagamit mismo, na awtorisadong gumawa ng mga kinakailangang pagbabago sa kanila;

Ang Shareware ay mga non-commercial (shareware) na mga programa na maaaring gamitin, bilang panuntunan, nang libre. Napapailalim sa regular na paggamit ng mga naturang produkto, ang isang pagbabayad ng isang tiyak na halaga ay kinakailangan.

Ang produkto ng software ay isang hanay ng magkakaugnay na mga programa upang malutas ang isang partikular na problema (gawain) ng mass demand, na inihanda para sa pagbebenta tulad ng anumang uri ng produktong pang-industriya.

Maaaring malikha ang mga produkto ng software bilang:

Indibidwal na pag-unlad upang mag-order;

Pag-unlad para sa mass distribution sa mga user.

Bilang isang patakaran, ang mga produkto ng software ay nangangailangan ng pagpapanatili, na isinasagawa ng mga dalubhasang kumpanya - mga distributor ng software, at mas madalas - ng mga kumpanya ng pag-unlad. Ang pagpapanatili ng mga programa para sa malawakang paggamit ay nagsasangkot ng maraming paggawa - pagwawasto ng mga nakitang error, paglikha ng mga bagong bersyon ng mga programa, atbp.

Pagpapanatili ng isang produkto ng software - pagpapanatili ng functionality ng isang produkto ng software, paglipat sa mga bagong bersyon, paggawa ng mga pagbabago, pagwawasto ng mga nakitang error, atbp.

Ang mga produkto ng software, hindi tulad ng tradisyonal na mga produkto ng software, ay walang mahigpit na kinokontrol na hanay ng mga katangian ng kalidad na tinukoy kapag lumilikha ng mga programa, o ang mga katangiang ito ay hindi maaaring tumpak na tukuyin o masuri nang maaga, dahil ang parehong mga function sa pagpoproseso na ibinigay ng software ay maaaring magkaroon ng iba't ibang lalim ng pagpapaliwanag. Kahit na ang oras at mga gastos para sa pagbuo ng mga produkto ng software ay hindi maaaring matukoy nang may mataas na antas ng katumpakan nang maaga. Ang mga pangunahing katangian ng mga programa ay:

Algorithmic complexity (lohika ng mga algorithm sa pagproseso ng impormasyon);

Ang komposisyon at lalim ng elaborasyon ng mga ipinatupad na pag-andar sa pagproseso;

Pagkumpleto at pagkakapare-pareho ng mga pag-andar sa pagproseso;

Dami ng mga file ng programa;

Mga kinakailangan para sa operating system at teknikal na paraan ng pagproseso sa bahagi ng software;

Kapasidad ng memorya ng disk;

Ang laki ng RAM para sa pagpapatakbo ng mga programa;

Uri ng processor;

Bersyon ng operating system;

Availability ng isang computer network, atbp.

Ang mga produkto ng software ay may iba't ibang mga tagapagpahiwatig ng kalidad na nagpapakita ng mga sumusunod na aspeto:

Gaano kahusay (simple, maaasahan, epektibo) magagamit ang produkto ng software;

Gaano kadaling gamitin ang produkto ng software?

Posible bang gamitin ang produkto ng software kung nagbabago ang mga kondisyon para sa paggamit nito, atbp.

Puno ng mga katangian ng kalidad ng produkto ng software

Ang kadaliang mapakilos ng mga produkto ng software ay nangangahulugan ng kanilang kalayaan mula sa teknikal na kumplikado ng sistema ng pagpoproseso ng data, ang operating environment, teknolohiya ng pagproseso ng data ng network, at ang mga detalye ng lugar ng paksa; ang isang multi-platform na produkto ng software ay maaaring mai-install sa iba't ibang mga modelo ng mga computer at mga operating system, nang walang mga paghihigpit sa pagpapatakbo nito sa isang computer network. Ang mga pag-andar sa pagpoproseso ng naturang produkto ng software ay angkop para sa malawakang paggamit nang walang anumang pagbabago.

Ang pagiging maaasahan ng isang produkto ng software ay natutukoy sa pamamagitan ng walang patid at matatag na operasyon ng mga programa, ang katumpakan ng pagsasagawa ng mga iniresetang pag-andar sa pagproseso, at ang kakayahang mag-diagnose ng mga error na lumitaw sa panahon ng pagpapatakbo ng mga programa.

Ang pagiging epektibo ng isang produkto ng software ay sinusuri pareho mula sa punto ng view ng direktang layunin nito - mga kinakailangan ng gumagamit, at mula sa punto ng view ng pagkonsumo ng mga mapagkukunan ng computing na kinakailangan para sa operasyon nito.

Sa konteksto ng pagkakaroon ng isang software market, ang mahahalagang katangian ay:

presyo,

Bilang ng mga benta;

Oras na ginugol sa merkado (tagal ng mga benta);

Reputasyon ng kumpanya ng developer at ng programa;

Availability ng mga produkto ng software para sa mga katulad na layunin.

Kung ang isang produkto ng software ay hindi nilikha upang mag-order at ito ay inilaan upang makapasok sa merkado ng software, ang pagmemerkado ay isinasagawa nang buo: ang mapagkumpitensyang mga produkto ng software at mga analogue ay pinag-aralan, ang mga kinakailangan ng gumagamit para sa produkto ng software ay buod, ang potensyal na kapasidad ng merkado ng pagbebenta ay itinatag, at isang pagtataya ng presyo at dami ng benta ay ibinigay. Bilang karagdagan, mahalagang tantiyahin ang materyal, paggawa at mga mapagkukunang pinansyal na kinakailangan para sa pagbuo ng isang produkto ng software, pati na rin ang tinatayang tagal ng mga pangunahing yugto ng ikot ng buhay ng produkto ng software.

Kung ang isang produkto ng software ay ginawa bilang isang pasadyang produkto ng software para sa isang partikular na customer, sa yugtong ito mahalaga din na wastong bumalangkas at idokumento ang gawain para sa pagbuo nito. Ang isang hindi nauunawaang kinakailangan para sa isang produkto ng software ay maaaring humantong sa hindi kanais-nais na mga resulta sa panahon ng operasyon nito.

Ang pagdidisenyo ng istraktura ng isang produkto ng software ay nauugnay sa algorithmization ng proseso ng pagproseso ng data, ang pagdedetalye ng mga function ng pagproseso, ang pagbuo ng istraktura ng produkto ng software (arkitektura ng mga software module), ang istraktura ng base ng impormasyon (database) ng ang gawain, ang pagpili ng mga pamamaraan at paraan para sa paglikha ng mga programa - mga teknolohiya sa programming.

1. Konsepto at mga klase ng produkto ng software.

2. Life cycle ng isang software na produkto.

3. Mga pangunahing konsepto tungkol sa pagprotekta sa mga produkto ng software.

4. Software system upang maprotektahan laban sa hindi awtorisadong pagkopya.

5. Mga legal na paraan ng pagprotekta sa mga produkto ng software at database.

6. Mga katangian ng mga klase ng mga produkto ng software depende sa saklaw ng kanilang paggamit.

7. Pag-uuri ng mga pakete ng software ng application.

Tanong Blg. 1. Konsepto at mga klase ng produkto ng software.

Ang mga application software packages (APP) ay ang pinaka-dynamic na umuunlad na bahagi ng market ng software ng impormasyon. Ang pagpapabuti ng PPP ay nakakatulong sa pagpapakilala ng mga computer sa lahat ng lugar ng aktibidad.

Ang lahat ng mga programa ay maaaring nahahati sa dalawang klase ayon sa uri ng paggamit at mga kategorya ng gumagamit:

1. Ang mga programang utilitarian (“mga programa para sa iyong sarili”) ay idinisenyo upang matugunan ang mga pangangailangan ng kanilang mga developer. Kadalasan, nagsisilbi sila bilang isang serbisyo sa teknolohiya sa pagpoproseso ng data o mga programa para sa paglutas ng mga problema sa pagganap na hindi nilayon para sa malawak na pamamahagi.

2. Ang mga produkto ng software (mga produkto) ay idinisenyo upang matugunan ang mga pangangailangan ng gumagamit, malawak na pamamahagi at mga benta.

Sa kasalukuyan, may iba pang mga opsyon para sa legal na pamamahagi ng mga produkto ng software na lumabas gamit ang global o rehiyonal na telekomunikasyon:

1. freeware - mga libreng programa, malayang ipinamamahagi, sinusuportahan ng mismong gumagamit, na awtorisadong gumawa ng mga kinakailangang pagbabago sa kanila.

2. shareware – mga non-commercial (shareware) na mga programa na maaaring gamitin, bilang panuntunan, nang libre. Napapailalim sa regular na paggamit ng mga naturang produkto, ang isang tiyak na halaga ay binabayaran.

Ang produkto ng software ay dapat na maayos na inihanda para sa pagpapatakbo, may kinakailangang dokumentasyon, magbigay ng serbisyo at isang garantiya ng maaasahang pagpapatakbo ng programa, may trademark ng tagagawa, at mas mabuti na mayroong code ng pagpaparehistro ng estado. Sa ilalim lamang ng ganitong mga kundisyon matatawag na software na produkto ang nilikhang software complex.

Produkto ng software (PP) ay isang hanay ng magkakaugnay na mga programa upang malutas ang isang partikular na problema (gawain) ng mass demand, na inihanda para sa pagbebenta tulad ng anumang uri ng produktong pang-industriya.

Maaaring malikha ang mga produkto ng software bilang indibidwal na pag-unlad sa pagkakasunud-sunod, o bilang pagbuo para sa malawakang pamamahagi sa mga user.

Tanong Blg. 2. Siklo ng buhay ng isang produkto ng software.

Ang mga programa ng anumang uri ay nailalarawan ikot ng buhay, na binubuo ng magkakahiwalay na yugto:

1) marketing ng software market, pagtutukoy ng mga kinakailangan para sa isang produkto ng software;

Ang pagmemerkado at pagtutukoy ng isang produkto ng software ay inilaan upang pag-aralan ang mga kinakailangan para sa nilikhang produkto ng software, katulad ng:

· Pagpapasiya ng komposisyon at layunin ng mga function ng pagpoproseso ng data ng software.

· Pagtatatag ng mga kinakailangan ng user para sa kalikasan ng pakikipag-ugnayan sa produkto ng software, ang uri ng user interface (sistema ng menu, paggamit ng mouse, atbp.).

· Mga kinakailangan para sa isang set ng hardware at software para sa pagpapatakbo ng software, atbp.

Sa yugtong ito, kinakailangan na magsagawa ng isang pormal na pahayag ng problema.

2) pagdidisenyo ng istraktura ng produkto ng software;

Nauugnay sa algorithmization ng proseso ng pagpoproseso ng data, pagdedetalye ng mga pag-andar sa pagproseso, pagbuo ng istraktura ng software at base ng impormasyon (database) ng gawain, pagpili ng mga pamamaraan at tool para sa paglikha ng mga programa (teknolohiya ng programming).

3) programming (paglikha ng program code), pagsubok, autonomous at kumplikadong pag-debug ng mga programa;

Ang mga ito ay ang teknikal na pagpapatupad ng mga solusyon sa disenyo at ginagawa gamit ang mga napiling tool ng developer.

4) dokumentasyon ng produkto ng software, paghahanda ng pagpapatakbo at teknolohikal na dokumentasyon;

Ang dokumentasyon ng software ay isang ipinag-uutos na uri ng trabaho, na ginanap, bilang panuntunan, hindi ng developer mismo, ngunit ng isang taong nauugnay sa pamamahagi at pagpapatupad ng produkto ng software. Ang dokumentasyon ay dapat maglaman ng kinakailangang impormasyon sa pag-install at pagtiyak ng maaasahang pagpapatakbo ng produkto ng software, suporta sa mga user kapag nagsasagawa ng mga function sa pagpoproseso, at tukuyin ang pamamaraan para sa pagsasama ng produkto ng software sa iba pang mga program. Ang tagumpay ng pamamahagi at pagpapatakbo ng software ay higit na nakasalalay sa kalidad ng dokumentasyon nito.

5) pagpasok sa merkado ng software, pamamahagi ng isang produkto ng software (na may kaugnayan sa pag-aayos ng mga benta sa mga mass user);

Ang yugtong ito ay dapat na maikli hangga't maaari; ang mga karaniwang diskarte sa marketing ay ginagamit upang i-promote ang software: advertising, pagtaas ng bilang ng mga channel sa pagbebenta, patakaran sa pagpepresyo, atbp.

6) pagpapatakbo ng produkto ng software ng mga gumagamit;

Napupunta parallel sa kanya saliw, sa kasong ito, ang pagpapatakbo ng mga programa ay maaaring magsimula kahit na walang suporta o magpatuloy kung ang suporta ay nakumpleto nang ilang panahon. Matapos alisin ang software mula sa pagbebenta, ang suporta nito ay maaari ding isagawa sa isang tiyak na oras. Sa panahon ng pagpapatakbo ng software, ang mga nakitang error ay inaalis.

7) suporta sa produkto ng software;

8) pag-alis ng produkto ng software mula sa pagbebenta, pagtanggi ng suporta.

Nangyayari, bilang isang patakaran, sa kaganapan ng isang pagbabago sa teknikal na patakaran ng kumpanya ng pag-unlad, hindi epektibo ng software, ang pagkakaroon ng mga nakamamatay na pagkakamali sa loob nito, o kakulangan ng demand.

Ang tagal ng ikot ng buhay para sa iba't ibang software ay hindi pareho. Para sa karamihan ng mga modernong PCB, ang ikot ng buhay ay sinusukat sa mga taon (2-3 taon). Bagama't madalas na matatagpuan sa mga computer ay ang mga PCB na matagal nang hindi na ipinagpatuloy.

Tanong Blg. 3. Mga pangunahing konsepto tungkol sa proteksyon ng mga produkto ng software (PP).

Ang mga produkto ng software at mga database ng computer ay paksa ng gawaing intelektwal ng mga highly qualified na espesyalista. Ang software ay napapailalim din sa proteksyon dahil sa pagiging kumplikado at labor-intensive na katangian ng pagpapanumbalik ng functionality nito at ang kahalagahan ng software para sa pagpapatakbo ng sistema ng impormasyon.

Ang proteksyon ng software ay may mga sumusunod na layunin:

1. paghihigpit ng hindi awtorisadong pag-access sa mga programa o ang kanilang sadyang pagsira at pagnanakaw;

2. pagbubukod ng hindi awtorisadong pagkopya (pagtitiklop) ng mga programa.

Ang produkto ng software at mga database ay dapat protektado sa ilang lugar mula sa pagkakalantad:

1) tao– pagnanakaw ng computer media at dokumentasyon ng software; malfunction ng isang software na produkto, atbp.;

2) kagamitan– pagkonekta ng hardware sa isang computer upang basahin ang mga programa at data o pisikal na sirain ang mga ito;

3) mga dalubhasang programa– pag-render ng isang software na produkto o database na hindi maoperahan (halimbawa, impeksyon sa virus), hindi awtorisadong pagkopya ng mga program at database, atbp.

Ang pinakasimpleng at pinaka-abot-kayang paraan upang maprotektahan ang software at mga database ay Limitasyon sa pag-access. Ang kontrol sa pag-access sa produkto ng software at database ay binuo ng:

1. proteksyon ng password ng mga programa kapag inilunsad ang mga ito;

2. paggamit ng key floppy disk upang magpatakbo ng mga programa;

3. mga paghihigpit sa mga programa o data, pagpoproseso ng mga function na magagamit sa mga user, atbp.

Pwede ring gamitin mga pamamaraan ng cryptographic proteksyon ng impormasyon sa database o head software modules.

Tanong Blg. 4. Software system upang maprotektahan laban sa hindi awtorisadong pagkopya.

Kapag gumagamit ng mga sistema ng proteksyon ng software, ang programa ay isinasagawa lamang kapag ang ilang natatanging hindi makopya susi elemento.

Ang mga pangunahing elemento ay maaaring:

· isang floppy disk kung saan nakasulat ang isang susi na hindi maaaring kopyahin;

· ilang mga katangian ng computer hardware;

· isang espesyal na aparato (electronic key) na nakakonekta sa isang computer at idinisenyo upang magbigay ng isang identification code.

PP copy protection software system:

· tukuyin ang kapaligiran kung saan ilulunsad ang programa;

· magtatag ng naaangkop na kapaligiran kung saan inilunsad ang programa, ang isa kung saan pinapayagan ang awtorisadong paglulunsad;

· bumuo ng isang reaksyon sa isang paglulunsad mula sa isang hindi awtorisadong kapaligiran;

· magrehistro ng awtorisadong pagkopya;

· kontrahin ang pag-aaral ng mga algorithm at programa ng system.

Tanong Blg. 5. Mga legal na paraan ng pagprotekta sa mga produkto at database ng software.

Ang mga legal na remedyo ay kinabibilangan ng:

· proteksyon ng patent;

· batas sa mga lihim ng kalakalan;

· mga kasunduan at kontrata sa paglilisensya;

· mga karapatang pang-ekonomiya na nagbibigay sa kanilang mga may-ari ng karapatang tumanggap ng mga benepisyong pang-ekonomiya mula sa pagbebenta at paggamit ng software at mga database;

· mga karapatang moral na nagsisiguro sa proteksyon ng personalidad ng may-akda sa kanyang akda.

Sa maraming sibilisadong bansa, ang hindi awtorisadong pagkopya ng mga programa para sa layunin ng pagbebenta o libreng pamamahagi ay itinuturing na isang krimen ng estado, na may parusang multa o pagkakulong. Gayunpaman, ang copyright mismo ay hindi nagbibigay ng proteksyon para sa isang bagong ideya, konsepto, pamamaraan at teknolohiya para sa pagbuo ng software.

Tanong Blg. 6. Mga katangian ng mga klase ng mga produkto ng software depende sa saklaw ng kanilang paggamit.

Depende sa saklaw (lugar) ng paggamit ng software, ito ay:

· hardware ng mga autonomous na computer at computer network;

· functional na mga gawain ng iba't ibang mga paksa;

· teknolohiya sa pagbuo ng software

Upang suportahan ang mga teknolohiya ng impormasyon, tatlong klase ng software ay nakikilala:

· System software;

· Mga pakete ng aplikasyon;

· Mga tool sa teknolohiya ng programming.

Software ng system Ipinadala sa:

1. upang lumikha ng isang operating environment para sa paggana ng iba pang mga programa;

2. upang matiyak ang maaasahan at mahusay na operasyon ng computer mismo at ng computer network;

3. upang magsagawa ng mga diagnostic at preventive maintenance ng mga kagamitan sa computer at mga network ng computer;

4. upang magsagawa ng mga pantulong na teknolohikal na proseso (pagkopya, pag-archive, atbp.).

System Software – isang set ng mga program at software system upang matiyak ang pagpapatakbo ng isang computer at mga computer network.

Mga pakete ng aplikasyon Nagsisilbi sila bilang mga tool sa software para sa paglutas ng mga problema sa pagganap at ang pinakamalaking klase ng software. Kasama sa klase na ito ang software na nagpoproseso ng impormasyon mula sa iba't ibang paksa.

Ang pag-install ng software sa isang computer ay isinasagawa ng mga kwalipikadong gumagamit, at ang kanilang direktang operasyon ay isinasagawa, bilang panuntunan, ng mga end user - mga mamimili ng impormasyon, sa maraming mga kaso na ang mga aktibidad ay napakalayo sa larangan ng computer. Ang klase ng software na ito ay maaaring maging napaka-espesipiko sa mga indibidwal na lugar ng paksa.

Package ng aplikasyon- isang hanay ng mga magkakaugnay na programa para sa paglutas ng mga problema ng isang tiyak na klase ng isang tiyak na lugar ng paksa.

nagbibigay ng proseso ng pagbuo ng program at kasama ang espesyal na software, na mga tool ng developer. Ang mga PP ng klase na ito ay sumusuporta sa lahat ng teknolohikal na yugto ng proseso ng disenyo, programming (coding), pag-debug at pagsubok ng mga nilikhang programa.

Programming Technology Toolkit– isang set ng mga program at software packages na nagbibigay ng teknolohiya para sa pagbuo, pag-debug at pagpapatupad ng nilikhang software.

Tanong Blg. 7. Pag-uuri ng mga pakete ng programa ng aplikasyon (APP).

Ang mga PPP ay ang pinakakinakatawan, na higit sa lahat ay dahil sa malawakang paggamit ng teknolohiya ng computer sa lahat ng larangan ng aktibidad ng tao, ang paglikha ng mga awtomatikong sistema ng impormasyon sa iba't ibang mga paksa, at ang mga ito ay inuri sa: