Hva er programvareteknikk? Definisjon, grunnleggende, egenskaper
Hva er programvareteknikk?
Programvareteknikk er definert som en prosess for รฅ analysere brukerkrav og deretter designe, bygge og teste programvare som vil tilfredsstille disse kravene.
La oss se pรฅ de ulike definisjonene av programvareteknikk:
- IEEE, i sin standard 610.12-1990, definerer programvareutvikling som anvendelse av en systematisk, disiplinert, som er en beregningsbar tilnรฆrming for utvikling, drift og vedlikehold av programvare.
- Fritz Bauer definerte det som 'etableringen og brukte standard ingeniรธrprinsipper. Det hjelper deg รฅ skaffe รธkonomisk programvare som er pรฅlitelig og fungerer effektivt pรฅ de virkelige maskinene.
- Boehm definerer programvareteknikk, som innebรฆrer ยซpraktisk anvendelse av vitenskapelig kunnskap til kreativ design og bygging av dataprogrammerยป. Det inkluderer ogsรฅ tilhรธrende dokumentasjon som er nรธdvendig for utvikling.ping, drifte og vedlikeholde dem.
Hvorfor Software Engineering? Programvarekrise og dens lรธsning
Hva var programvarekrisen?
- Det var pรฅ slutten av 1960-tallet da mange programvareprosjekter mislyktes.
- Mye programvare ble over budsjettet. Output var en upรฅlitelig programvare som er dyr รฅ vedlikeholde.
- Stรธrre programvare var vanskelig og ganske dyr รฅ vedlikeholde.
- Mye programvare er ikke i stand til รฅ tilfredsstille de รธkende kravene til kunden.
- Kompleksiteten til programvareprosjekter รธkte hver gang maskinvarekapasiteten รธkte.
- Etterspรธrselen etter ny programvare รธkte raskere sammenlignet med muligheten til รฅ generere ny programvare.
Alle problemene ovenfor fรธrer til "Programvarekrise".
The Solution
Lรธsningen pรฅ problemet var รฅ transformere uorganisert koding til en programvareingeniรธrdisiplin. Disse ingeniรธrmodellene hjalp bedrifter med รฅ effektivisere driften og levere programvare som tilfredsstiller kundenes krav.
- Pรฅ slutten av 1970-tallet sรฅ den utbredte bruken av programvareingeniรธrprinsipper.
- Pรฅ 1980-tallet sรฅ automatiseringen av programvareutviklingsprosessen og veksten av (CASE) Computer-Aided Software Engineering.
- 1990-tallet har sett en รธkt vekt pรฅ "ledelse" aspekter av prosjekter, standard for kvalitet og prosesser akkurat som ISO 9001
Hvorfor er programvareteknikk populรฆrt?
Her er viktige รฅrsaker bak populariteten til programvareteknikk:
- Stor programvare โ I vรฅrt virkelige liv er det ganske mer behagelig รฅ bygge en vegg enn et hus eller en bygning. Pรฅ samme mรฅte, ettersom stรธrrelsen pรฅ programvaren blir stor, hjelper programvareutvikling deg med รฅ bygge programvare.
- Skalerbarhet- Hvis programvareutviklingsprosessen var basert pรฅ vitenskapelige og tekniske konsepter, er det lettere รฅ gjenskape ny programvare for รฅ skalere en eksisterende.
- Tilpasningsevne: Nรฅr programvareprosessen var basert pรฅ vitenskap og ingeniรธrkunst, er det enkelt รฅ gjenskape ny programvare ved hjelp av programvareutvikling.
- Koste- Maskinvareindustrien har vist sine ferdigheter og stor produksjon har senket kostnadene for datamaskinen og elektronisk maskinvare.
- Dynamisk naturโ Programvaren vokser og tilpasser seg alltid. Det avhenger av miljรธet brukeren arbeider i.
- Quality Management: Tilbyr bedre metode for programvareutvikling for รฅ tilby kvalitetsprodukter.
Forholdet mellom programvareteknikk og andre disipliner
Her, hvordan programvareteknikk forholdt seg til andre disipliner:
- Informatikk: Gir det vitenskapelige grunnlaget for programvaren da elektroteknikk hovedsakelig avhenger av fysikk.
- Ledelsesvitenskap: Programvareutvikling er arbeidskrevende arbeid som krever bรฅde teknisk og ledelsesmessig kontroll. Derfor er det mye brukt i ledelsesvitenskap.
- รkonomi: I denne sektoren hjelper programvareutvikling deg med ressursestimering og kostnadskontroll. Datasystem mรฅ utvikles, og data bรธr vedlikeholdes regelmessig innenfor et gitt budsjett.
- Systemteknikk: Det meste av programvare er en del av et mye stรธrre system. For eksempel programvaren i et industriovervรฅkingssystem eller flyprogramvaren pรฅ et fly. Software engineering metoder bรธr brukes til studiet av denne typen systemer.
Utfordringer ved programvareteknikk
Her er noen kritiske utfordringer som programvareingeniรธrer stรฅr overfor:
- I sikkerhetskritiske omrรฅder som romfart, luftfart, atomkraftverk osv. kan kostnadene ved programvarefeil vรฆre enorme fordi liv er i fare.
- รkte markedskrav for rask behandlingstid.
- Hรฅndtere den รธkte kompleksiteten til programvarebehovet for nye applikasjoner.
- Mangfoldet av programvaresystemer bรธr kommunisere med hverandre.
Attributter for programvareprodukter
Egenskapene til ethvert programvareprodukt inkluderer funksjoner som vises av produktet nรฅr det er installert og tatt i bruk.
De er ikke tjenestene som leveres av produktet. I stedet har de forholdt seg til produktenes dynamiske oppfรธrsel og bruken av produktet.
Eksempler pรฅ disse attributtene er:
Efficiency, reliability, robustness, maintainability, etc.
Imidlertid varierer den relative betydningen av disse egenskapene fra ett programvaresystem til et annet.
| Produktegenskaper | Tekniske beskrivelser |
|---|---|
| vedlikeholdbarhet | Programvaren bรธr utvikles for รฅ mรธte de skiftende kravene til kundene. |
| Pรฅlitelighet | Pรฅlitelighet inkluderer ulike egenskaper. Pรฅlitelig programvare skal aldri forรฅrsake fysisk eller รธkonomisk skade pรฅ tidspunktet for systemfeil. |
| Effektivitet: | Programvaren bรธr overbruke systemressurser som minne og prosessorsyklus. |
| Usability | Programvaren bรธr ha spesifikk brukergrensesnitt og dokumentasjon. |
ร optimalisere attributtet ovenfor er svรฆrt utfordrende. For eksempel kan รฅ tilby et bedre brukergrensesnitt redusere systemeffektiviteten.
Kjennetegn pรฅ god programvare
Enhver programvare bรธr bedรธmmes etter hva den tilbyr og hva er metodene som hjelper deg รฅ bruke den.
Hver programvare mรฅ tilfredsstille fรธlgende attributter:
- Operasjonale
- Transitional
- Vedlikehold
Her er noen viktige kjennetegn ved god programvare utviklet av programvareeksperter
Operasjonale
Denne egenskapen gir oss beskjed om hvor godt programvare fungerer i operasjonene som kan mรฅles pรฅ:
- budsjett
- Effektivitet:
- Usability
- Pรฅlitelighet
- Korrekthet
- Funksjonalitet
- Sikkerhet
- Trygghet
Transitional
Dette er et viktig aspekt nรฅr programvaren flyttes fra en plattform til en annen:
- Interoperabilitet
- Reus Evne
- Portabilitet
- Tilpasningsevne
Vedlikehold
Dette aspektet snakker om hvor godt programvare har evnene til รฅ tilpasse seg i det raskt skiftende miljรธet:
- Fleksibilitet
- vedlikeholdbarhet
- modularitet
- skalerbarhet
Sammendrag
- Programvareutvikling er en prosess for รฅ analysere brukerkrav og deretter designe, bygge og teste programvare som vil tilfredsstille disse kravene
- Viktige รฅrsaker til รฅ bruke programvareteknikk er: 1) Stor programvare, 2) Skalerbarhet 3) Tilpasningsevne 4) Kostnad og 5) Dynamisk natur.
- Pรฅ slutten av 1960-tallet blir mye programvare over budsjettet. Derfor tilbyr den upรฅlitelig programvare som er dyr รฅ vedlikeholde.
- Pรฅ slutten av 1970-tallet sรฅ den utbredte bruken av programvareingeniรธrprinsipper.
- Software engineering konsept 1) Datavitenskap 2) Management Science 3) System engineering og 4) รkonomi
- รkte markedskrav for rask behandlingstid er de stรธrste utfordringene innen programvareteknikk.
- 1) Vedlikeholdbarhet, 2) Pรฅlitelighet, 3) Effektivitet og, 4) Brukervennlighet er de viktigste egenskapene til programvareprodukter.
- De tre viktigste egenskapene til god programvare er 1) Operational 2) Transitional 3) Vedlikehold.

