logo

Introduksjon til Software Engineering – Software Engineering

Programvare er et program eller sett med programmer som inneholder instruksjoner som gir ønsket funksjonalitet. Engineering er prosessen med å designe og bygge noe som tjener et bestemt formål og finner en kostnadseffektiv løsning på problemer.

Innholdsfortegnelse



Hva er programvareteknikk?

Software Engineering er prosessen med å designe, utvikle, teste og vedlikeholde programvare. Det er en systematisk og disiplinert tilnærming til programvareutvikling som tar sikte på å skape høykvalitets, pålitelig og vedlikeholdbar programvare.

  1. Programvareutvikling inkluderer en rekke teknikker, verktøy og metoder, inkludert kravanalyse, design, testing og vedlikehold.
  2. Det er et felt i rask utvikling, og nye verktøy og teknologier utvikles stadig for å forbedre programvareutviklingsprosessen.
  3. Ved å følge prinsippene for programvareutvikling og bruke de riktige verktøyene og metodene, kan programvareutviklere lage høykvalitets, pålitelig og vedlikeholdbar programvare som tilfredsstiller brukernes behov.
  4. Software Engineering brukes hovedsakelig til store prosjekter basert på programvaresystemer i stedet for enkeltprogrammer eller applikasjoner.
  5. Hovedmålet med Software Engineering er å utvikle programvareapplikasjoner for å forbedre kvalitet, budsjett og tidseffektivitet.
  6. Software Engineering sikrer at programvaren som skal bygges skal være konsistent, korrekt, også på budsjett, i tide og innenfor de nødvendige kravene.

Nøkkelprinsipper for programvareteknikk

  1. Modularitet : Del opp programvaren i mindre, gjenbrukbare komponenter som kan utvikles og testes uavhengig.
  2. Abstraksjon : Skjuler implementeringsdetaljene til en komponent og eksponerer kun den nødvendige funksjonaliteten for andre deler av programvaren.
  3. Innkapsling : Samle data og funksjoner til et objekt i en enkelt enhet, og beskytte den interne tilstanden til et objekt fra eksterne modifikasjoner.
  4. Gjenbrukbarhet : Lage komponenter som kan brukes i flere prosjekter, noe som kan spare tid og ressurser.
  5. Vedlikehold : Regelmessig oppdatering og forbedring av programvaren for å fikse feil, legge til nye funksjoner og adressere sikkerhetssårbarheter.
  6. Testing : Kontrollerer at programvaren oppfyller kravene og er fri for feil.
  7. Design mønstre : Løse tilbakevendende problemer i programvaredesign ved å tilby maler for å løse dem.
  8. Smidige metoder: Bruke iterative og inkrementelle utviklingsprosesser som fokuserer på kundetilfredshet, rask levering og fleksibilitet.
  9. Kontinuerlig integrasjon og distribusjon: Kontinuerlig integrering av kodeendringene og distribusjon av dem i produksjonsmiljøet.

Hovedattributter for programvareteknikk

Software Engineering er en systematisk, disiplinert, kvantifiserbar studie og tilnærming til design, utvikling, drift og vedlikehold av et programvaresystem. Det er fire hovedattributter for programvareteknikk.

  1. Effektivitet: Den gir et effektivt mål på ressursbehovet til et programvareprodukt.
  2. Pålitelighet: Det sikrer at produktet vil levere de samme resultatene når det brukes i lignende arbeidsmiljø.
  3. Gjenbrukbarhet: Dette attributtet sørger for at modulen kan brukes i flere applikasjoner.
  4. Vedlikehold: Det er programvarens evne til å enkelt endres, repareres eller forbedres med endrede krav.

Programvares doble rolle

Det er en dobbel rolle for programvare i bransjen. Den første er som et produkt og den andre er som et kjøretøy for å levere produktet. Vi vil diskutere dem begge.



1. Som et produkt

  • Det gir datapotensial på tvers av maskinvarenettverk.
  • Den gjør det mulig for maskinvaren å levere den forventede funksjonaliteten.
  • Den fungerer som en informasjonstransformator fordi den produserer, administrerer, innhenter, modifiserer, viser eller overfører informasjon.

2. Som et kjøretøy for å levere et produkt

  • Det gir systemfunksjonalitet (f.eks. lønnssystem).
  • Den kontrollerer annen programvare (f.eks. et operativsystem).
  • Det hjelper med å bygge annen programvare (f.eks. programvareverktøy).

Mål for programvareteknikk

  1. Vedlikehold: Det bør være mulig for programvaren å utvikle seg for å møte endrede krav.
  2. Effektivitet: Programvaren bør ikke gjøre sløsing med dataenheter som minne, prosessorsykluser osv.
  3. Riktighet: Et programvareprodukt er riktig hvis de forskjellige kravene spesifisert i SRS-dokument har blitt korrekt implementert.
  4. Gjenbrukbarhet: Et programvareprodukt har god gjenbrukbarhet dersom de ulike modulene i produktet enkelt kan gjenbrukes til å utvikle nye produkter.
  5. Testbarhet: Her letter programvaren både etableringen av testkriterier og evalueringen av programvaren angående disse kriteriene.
  6. Pålitelighet: Det er en egenskap ved programvarekvalitet. I hvilken grad et program kan forventes å utføre sin ønskede funksjon, over en vilkårlig tidsperiode.
  7. Portabilitet: I dette tilfellet kan programvaren overføres fra ett datasystem eller miljø til et annet.
  8. Tilpasningsevne: I dette tilfellet tillater programvaren forskjellige systembegrensninger, og brukeren må bli fornøyd ved å gjøre endringer i programvaren.
  9. Interoperabilitet: Mulighet for 2 eller flere funksjonelle enheter til å behandle data i samarbeid.

Program vs programvareprodukt

Parametere

Program

Programvareprodukt



Definisjon

vikas diviakirti

Et program er et sett med instruksjoner som gis til en datamaskin for å oppnå en spesifikk oppgave.

Programvare er når et program gjøres tilgjengelig for kommersiell virksomhet og er korrekt dokumentert sammen med lisensiering.

Programvareprodukt = Program + Dokumentasjon + Lisens.

Stadier involvert

Program er en av stadiene involvert i utviklingen av programvaren.

Programvareutvikling følger vanligvis en livssyklus, som involverer mulighetsstudie av prosjektet, kravinnsamling, utvikling av en prototype, systemdesign, koding og testing.

Fordeler med Software Engineering

Det er flere fordeler ved å bruke en systematisk og disiplinert tilnærming til programvareutvikling, for eksempel:

  1. Forbedret kvalitet: Ved å følge etablerte programvaretekniske prinsipper og teknikker, kan programvaren utvikles med færre feil og høyere pålitelighet.
  2. Økt produktivitet: Bruk av moderne verktøy og metoder kan strømlinjeforme utviklingsprosessen, slik at utviklere kan være mer produktive og fullføre prosjekter raskere.
  3. Bedre vedlikehold: Programvare som er designet og utviklet ved bruk av god programvareteknikk er lettere å vedlikeholde og oppdatere over tid.
  4. Reduserte kostnader: Ved å identifisere og adressere potensielle problemer tidlig i utviklingsprosessen, kan programvareutvikling bidra til å redusere kostnadene ved å fikse feil og legge til nye funksjoner senere.
  5. Jeg økt kundetilfredshet: Ved å involvere kundene i utviklingsprosessen og utvikle programvare som dekker deres behov, kan software engineering bidra til å øke kundetilfredsheten.
  6. Bedre teamsamarbeid: Ved å bruke smidige metoder og kontinuerlig integrasjon, muliggjør programvareutvikling bedre samarbeid mellom utviklingsteam.
  7. Bedre skalerbarhet : Ved å designe programvare med skalerbarhet i tankene, kan programvareutvikling bidra til å sikre at programvare kan håndtere et økende antall brukere og transaksjoner.
  8. Bedre sikkerhet: Ved å følge Software Development Life Cycle (SDLC) og utfører sikkerhetstesting, kan programvareutvikling bidra til å forhindre sikkerhetsbrudd og beskytte sensitive data.

Oppsummert tilbyr programvareutvikling en strukturert og effektiv tilnærming til programvareutvikling, som kan føre til programvare av høyere kvalitet som er lettere å vedlikeholde og tilpasse til endrede krav. Dette kan bidra til å forbedre kundetilfredsheten og redusere kostnader, samtidig som det fremmer bedre samarbeid mellom utviklingsteam.

Ulemper med Software Engineering

Mens Software Engineering tilbyr mange fordeler, er det også noen potensielle ulemper å vurdere:

  1. Høye forhåndskostnader: Implementere en systematisk og disiplinert tilnærming til programvare utvikling kan være ressurskrevende og kreve en betydelig investering i verktøy og opplæring.
  2. Begrenset fleksibilitet: Å følge etablerte programvaretekniske prinsipper og metoder kan være rigid og kan begrense muligheten til raskt å tilpasse seg endrede krav.
  3. Byråkratisk : Software Engineering kan skape et miljø som er byråkratisk, med mye prosesser og papirarbeid, som kan bremse utviklingsprosessen.
  4. Kompleksitet : Med økningen i antall verktøy og metoder, kan programvareutvikling være kompleks og vanskelig å navigere.
  5. Begrenset kreativitet: Fokus på struktur og prosess kan kvele kreativitet og innovasjon blant utviklere.
  6. Høy læringskurve: Utviklingsprosessen kan være kompleks, og den krever mye læring og opplæring, noe som kan være utfordrende for nye utviklere.
  7. Stor avhengighet av verktøy: Programvareutvikling avhenger sterkt av verktøyene, og hvis verktøyene ikke er riktig konfigurert eller ikke er kompatible med programvaren, kan det forårsake problemer.
  8. Høyt vedlikehold : Programvareutviklingsprosessen krever regelmessig vedlikehold for å sikre at programvaren kjører effektivt, noe som kan være kostbart og tidkrevende.

Oppsummert kan programvareutvikling være dyrt og tidkrevende, og det kan begrense fleksibilitet og kreativitet. Fordelene med forbedret kvalitet, økt produktivitet og bedre vedlikehold kan imidlertid oppveie kostnadene og kompleksiteten. Det er viktig å veie fordeler og ulemper ved å bruke programvareteknikk og finne ut om det er den rette tilnærmingen for et bestemt programvareprosjekt.

Spørsmål for praksis

1. Et administrasjonsverktøy for programvarekonfigurasjon hjelper i [GATE CS 2004]

(EN) holde oversikt over tidsplanen basert på milepælen som er nådd

rad vs kolonne

(B) opprettholde forskjellige versjoner av de konfigurerbare elementene

(C) administrere arbeidskraftfordeling ved å endre prosjektstrukturen

(D) alle de ovennevnte

Løsning: Riktig svar er (B).

2. Hvilke av følgende påstander er sanne? [UGC NET CSE 2018]

P: Software Reengineering er å foretrekke for programvareprodukter med høy feilfrekvens, dårlig design og/eller dårlig kodestruktur.

Q: Software Reverse Engineering er prosessen med å analysere programvare med mål om å gjenopprette design- og kravspesifikasjonen.

(EN) Bare P

latekslister

(B) Verken P eller Q

(C) Kun Q

(D) Både P og Q

Løsning: Riktig svar er (D).

3. Diagrammet som hjelper til med å forstå og representere brukerkrav for et programvareprosjekt som bruker UML (Unified Modeling Language), er: [GATE CS 2004]

(EN) Entitetsforholdsdiagram

(B) Implementeringsdiagram

(C) Dataflytdiagram

(D) Bruk Case Diagram

Løsning: Riktig svar er (D).

Vanlige spørsmål om programvareteknikk

Hva er Software Re-Engineering?

År: Software Re-Engineering er i utgangspunktet en prosess med programvareutvikling som hjelper til med å opprettholde kvaliteten på systemet.

2. Oppgi noen livssyklusmodeller for programvareutvikling?

År: Noen av livssyklusmodellene for programvareutvikling er nevnt nedenfor.

  • Fossmodell
  • Big-Bang-modell
  • Spiral modell
  • Iterativ modell
  • V-modell

3. Hva er verifisering og validering i programvareteknikk?

År: Verifikasjon refererer til settet med aktiviteter eller funksjoner som kontrollerer om programvare har implementert riktig funksjon eller ikke.

skuespiller ranbir kapoor alder

Validering refererer til et sett med aktiviteter som sikrer at programvaren er bygget i henhold til kundens krav.

For mer, se Verifikasjon og validering i programvareteknikk .