logo

Introduktion till Software Engineering – Software Engineering

programvara är ett program eller en uppsättning program som innehåller instruktioner som ger önskad funktionalitet. Engineering är processen att designa och bygga något som tjänar ett visst syfte och hittar en kostnadseffektiv lösning på problem.

Innehållsförteckning



Vad är Software Engineering?

Mjukvaruutveckling är processen att designa, utveckla, testa och underhålla programvara. Det är ett systematiskt och disciplinerat tillvägagångssätt för mjukvaruutveckling som syftar till att skapa högkvalitativ, pålitlig och underhållbar mjukvara.

ladda ner youtube-videor på vlc
  1. Programvaruutveckling inkluderar en mängd olika tekniker, verktyg och metoder, inklusive kravanalys, design, testning och underhåll.
  2. Det är ett område i snabb utveckling och nya verktyg och tekniker utvecklas ständigt för att förbättra mjukvaruutvecklingsprocessen.
  3. Genom att följa principerna för mjukvaruutveckling och använda lämpliga verktyg och metoder, kan mjukvaruutvecklare skapa högkvalitativ, pålitlig och underhållbar programvara som möter användarnas behov.
  4. Software Engineering används främst för stora projekt baserade på mjukvarusystem snarare än enskilda program eller applikationer.
  5. Huvudmålet med Software Engineering är att utveckla mjukvaruapplikationer för att förbättra kvalitet, budget och tidseffektivitet.
  6. Software Engineering säkerställer att mjukvaran som ska byggas ska vara konsekvent, korrekt, även inom budget, i tid och inom de krav som krävs.

Nyckelprinciper för mjukvaruteknik

  1. Modularitet : Dela upp programvaran i mindre, återanvändbara komponenter som kan utvecklas och testas oberoende.
  2. Abstraktion : Döljer implementeringsdetaljerna för en komponent och exponerar endast den nödvändiga funktionaliteten för andra delar av programvaran.
  3. Inkapsling : Sammanfatta data och funktioner för ett objekt i en enda enhet och skydda ett objekts interna tillstånd från externa modifieringar.
  4. Återanvändbarhet : Skapa komponenter som kan användas i flera projekt, vilket kan spara tid och resurser.
  5. Underhåll : Regelbundet uppdatera och förbättra programvaran för att fixa buggar, lägga till nya funktioner och åtgärda säkerhetsbrister.
  6. Testning : Verifierar att programvaran uppfyller dess krav och är fri från buggar.
  7. Design mönster : Lösa återkommande problem inom mjukvarudesign genom att tillhandahålla mallar för att lösa dem.
  8. Agila metoder: Använder iterativa och inkrementella utvecklingsprocesser som fokuserar på kundnöjdhet, snabb leverans och flexibilitet.
  9. Kontinuerlig integration och implementering: Kontinuerligt integrera kodändringarna och distribuera dem i produktionsmiljön.

Huvudattributen för mjukvaruteknik

Software Engineering är en systematisk, disciplinerad, kvantifierbar studie och tillvägagångssätt för design, utveckling, drift och underhåll av ett mjukvarusystem. Det finns fyra huvudattribut för mjukvaruteknik.

  1. Effektivitet: Det ger ett effektivt mått på resursbehovet för en mjukvaruprodukt.
  2. Pålitlighet: Det säkerställer att produkten kommer att ge samma resultat när den används i liknande arbetsmiljö.
  3. Återanvändbarhet: Detta attribut ser till att modulen kan användas i flera applikationer.
  4. Underhållbarhet: Det är mjukvarans förmåga att enkelt modifieras, repareras eller förbättras med ändrade krav.

Dubbel roll av programvara

Det finns en dubbel roll för mjukvara i branschen. Den första är som en produkt och den andra är som ett fordon för att leverera produkten. Vi kommer att diskutera båda.



1. Som en produkt

  • Det ger beräkningspotential över nätverk av hårdvara.
  • Det gör det möjligt för hårdvaran att leverera den förväntade funktionaliteten.
  • Den fungerar som en informationstransformator eftersom den producerar, hanterar, förvärvar, modifierar, visar eller överför information.

2. Som ett fordon för att leverera en produkt

  • Det tillhandahåller systemfunktioner (t.ex. lönesystem).
  • Den styr annan programvara (t.ex. ett operativsystem).
  • Det hjälper till att bygga annan programvara (t.ex. mjukvaruverktyg).

Mål för Software Engineering

  1. Underhållbarhet: Det bör vara möjligt för programvaran att utvecklas för att möta ändrade krav.
  2. Effektivitet: Programvaran bör inte göra slösaktig användning av datorenheter som minne, processorcykler etc.
  3. Rätthet: En mjukvaruprodukt är korrekt om de olika kraven som anges i SRS-dokument har implementerats korrekt.
  4. Återanvändbarhet: En mjukvaruprodukt har god återanvändbarhet om produktens olika moduler enkelt kan återanvändas för att utveckla nya produkter.
  5. Testbarhet: Här underlättar mjukvaran både fastställandet av testkriterier och utvärderingen av programvaran avseende dessa kriterier.
  6. Pålitlighet: Det är ett attribut för mjukvarukvalitet. I vilken utsträckning ett program kan förväntas utföra sin önskade funktion, under en godtycklig tidsperiod.
  7. Portabilitet: I detta fall kan programvaran överföras från ett datorsystem eller en miljö till en annan.
  8. Anpassningsförmåga: I det här fallet tillåter programvaran olika systembegränsningar och användaren måste bli nöjd genom att göra ändringar i programvaran.
  9. Interoperabilitet: Förmåga hos 2 eller flera funktionella enheter att bearbeta data i samarbete.

Program vs mjukvaruprodukt

Parametrar

Program

Mjukvaruprodukt



Definition

Ett program är en uppsättning instruktioner som ges till en dator för att utföra en specifik uppgift.

Programvara är när ett program görs tillgängligt för kommersiella företag och är korrekt dokumenterat tillsammans med dess licensiering.

Mjukvaruprodukt = Program + Dokumentation + Licensiering.

Stadier inblandade

Program är ett av stegen som ingår i utvecklingen av programvaran.

Mjukvaruutveckling följer vanligtvis en livscykel, som innefattar förstudie av projektet, kravinsamling, utveckling av en prototyp, systemdesign, kodning och testning.

Fördelar med Software Engineering

Det finns flera fördelar med att använda ett systematiskt och disciplinerat tillvägagångssätt för mjukvaruutveckling, såsom:

b plus träd
  1. Förbättrad kvalitet: Genom att följa etablerade programvarutekniska principer och tekniker kan programvaran utvecklas med färre buggar och högre tillförlitlighet.
  2. Ökad produktivitet: Att använda moderna verktyg och metoder kan effektivisera utvecklingsprocessen, vilket gör att utvecklare kan bli mer produktiva och slutföra projekt snabbare.
  3. Bättre underhåll: Mjukvara som är designad och utvecklad med hjälp av sund mjukvaruteknik är lättare att underhålla och uppdatera över tid.
  4. Minskade kostnader: Genom att identifiera och åtgärda potentiella problem tidigt i utvecklingsprocessen kan mjukvaruteknik hjälpa till att minska kostnaderna för att fixa buggar och lägga till nya funktioner senare.
  5. jag ökad kundnöjdhet: Genom att involvera kunderna i utvecklingsprocessen och utveckla mjukvara som möter deras behov kan mjukvaruutveckling bidra till att öka kundnöjdheten.
  6. Bättre teamsamarbete: Genom att använda agila metoder och kontinuerlig integration möjliggör mjukvaruutveckling bättre samarbete mellan utvecklingsteam.
  7. Bättre skalbarhet : Genom att designa mjukvara med skalbarhet i åtanke kan mjukvaruteknik hjälpa till att säkerställa att mjukvara kan hantera ett ökande antal användare och transaktioner.
  8. Bättre säkerhet: Genom att följa Software Development Life Cycle (SDLC) och genom att utföra säkerhetstester kan mjukvaruteknik hjälpa till att förhindra säkerhetsintrång och skydda känslig data.

Sammanfattningsvis erbjuder mjukvaruutveckling ett strukturerat och effektivt förhållningssätt till mjukvaruutveckling, vilket kan leda till mjukvara av högre kvalitet som är lättare att underhålla och anpassa till förändrade krav. Detta kan bidra till att förbättra kundnöjdheten och minska kostnaderna, samtidigt som det främjar bättre samarbete mellan utvecklingsteam.

Nackdelar med Software Engineering

Även om Software Engineering erbjuder många fördelar, finns det också några potentiella nackdelar att överväga:

  1. Höga initiala kostnader: Att implementera ett systematiskt och disciplinerat förhållningssätt till mjukvaruutveckling kan vara resurskrävande och kräva en betydande investering i verktyg och utbildning.
  2. Begränsad flexibilitet: Att följa etablerade programvarutekniska principer och metoder kan vara stela och kan begränsa förmågan att snabbt anpassa sig till förändrade krav.
  3. Byråkratisk : Software Engineering kan skapa en miljö som är byråkratisk, med mycket processer och pappersarbete, vilket kan sakta ner utvecklingsprocessen.
  4. Komplexitet : Med ökningen av antalet verktyg och metoder kan mjukvaruutveckling vara komplex och svår att navigera.
  5. Begränsad kreativitet: Fokus på struktur och process kan kväva kreativitet och innovation bland utvecklare.
  6. Hög inlärningskurva: Utvecklingsprocessen kan vara komplex, och den kräver mycket lärande och träning, vilket kan vara utmanande för nya utvecklare.
  7. Stort beroende av verktyg: Mjukvaruteknik beror mycket på verktygen, och om verktygen inte är korrekt konfigurerade eller inte är kompatibla med programvaran kan det orsaka problem.
  8. Högt underhåll : Programvaruutvecklingsprocessen kräver regelbundet underhåll för att säkerställa att programvaran körs effektivt, vilket kan vara kostsamt och tidskrävande.

Sammanfattningsvis kan mjukvaruutveckling vara dyrt och tidskrävande, och det kan begränsa flexibiliteten och kreativiteten. Men fördelarna med förbättrad kvalitet, ökad produktivitet och bättre underhållsbarhet kan uppväga kostnaderna och komplexiteten. Det är viktigt att väga för- och nackdelar med att använda programvaruteknik och avgöra om det är rätt tillvägagångssätt för ett visst programvaruprojekt.

Frågor för övning

1. Ett hanteringsverktyg för mjukvarukonfiguration hjälper till i [GATE CS 2004]

(A) hålla reda på schemat baserat på uppnådd milstolpe

(B) underhålla olika versioner av de konfigurerbara objekten

(C) hantera arbetskraftsfördelning genom att ändra projektstrukturen

(D) alla ovanstående

Lösning: Rätt svar är (B).

2. Vilket av följande påstående är sant? [UGC NET CSE 2018]

P: Software Reengineering är att föredra för mjukvaruprodukter med hög felfrekvens, dålig design och/eller dålig kodstruktur.

F: Software Reverse Engineering är processen att analysera programvara med målet att återställa dess design och kravspecifikation.

(A) Endast P

(B) Varken P eller Q

(C) Endast Q

(D) Både P och Q

Lösning: Rätt svar är (D).

3. Diagrammet som hjälper till att förstå och representera användarkrav för ett programvaruprojekt som använder UML (Unified Modeling Language) är: [GATE CS 2004]

(A) Entitetsrelationsdiagram

(B) Implementeringsdiagram

(C) Dataflödesdiagram

(D) Använd falldiagram

Lösning: Rätt svar är (D).

Vanliga frågor om mjukvaruteknik

Vad är Software Re-Engineering?

År: Software Re-Engineering är i grunden en process för mjukvaruutveckling som hjälper till att upprätthålla kvaliteten på systemet.

2. Ange några livscykelmodeller för mjukvaruutveckling?

År: Några av livscykelmodellerna för mjukvaruutveckling nämns nedan.

  • Vattenfall modell
  • Big Bang-modell
  • Spiralmodell
  • Iterativ modell
  • V-modell

3. Vad är verifiering och validering inom mjukvaruteknik?

År: Verifiering avser den uppsättning aktiviteter eller funktioner som kontrollerar om programvaran har implementerat rätt funktion eller inte.

mark zuckerberg utbildning

Validering avser en uppsättning aktiviteter som säkerställer att programvaran byggs enligt kundens krav.

För mer, se Verifiering och validering inom mjukvaruteknik .