Vad är Software Engineering? Definition, grunder, egenskaper
Vad är mjukvaruteknik?
Mjukvaruteknik definieras som en process för att analysera användarkrav och sedan designa, bygga och testa mjukvaruapplikationer som kommer att uppfylla dessa krav.
Låt oss titta på de olika definitionerna av mjukvaruteknik:
- IEEE, i sin standard 610.12-1990, definierar mjukvaruteknik som tillämpningen av ett systematiskt, disciplinerat, vilket är ett beräkningsbart tillvägagångssätt för utveckling, drift och underhåll av programvara.
- Fritz Bauer definierade det som 'etableringen och använde standardtekniska principer. Det hjälper dig att ekonomiskt skaffa programvara som är tillförlitlig och fungerar effektivt på de riktiga maskinerna.
- Boehm definierar mjukvaruteknik, som innebär "den praktiska tillämpningen av vetenskaplig kunskap för kreativ design och konstruktion av datorprogram. Den innehåller också tillhörande dokumentation som behövs för att utveckla, driva och underhålla dem.'
Varför Software Engineering? Programvarukris och dess lösning
Vad var programvarukrisen?
- Det var i slutet av 1960-talet när många programvaruprojekt misslyckades.
- Många programvaror blev över budget. Output var en opålitlig programvara som är dyr att underhålla.
- Större programvara var svår och ganska dyr att underhålla.
- Massor av mjukvara som inte kan tillfredsställa kundens växande krav.
- Mjukvaruprojektens komplexitet ökade närhelst dess hårdvarukapacitet ökade.
- Efterfrågan på ny mjukvara ökade snabbare jämfört med möjligheten att generera ny mjukvara.
Alla ovanstående problem leder till "Programvarukris".
Lösningen
Lösningen på problemet var att omvandla oorganiserad kodningsinsats till en programvaruteknik. Dessa tekniska modeller hjälpte företag att effektivisera verksamheten och leverera mjukvara som uppfyller kundernas krav.
- I slutet av 1970-talet sågs den utbredda användningen av principer för mjukvaruteknik.
- På 1980-talet sågs automatiseringen av mjukvaruutvecklingsprocessen och tillväxten av (CASE) datorstödd mjukvaruteknik.
- 1990-talet har sett en ökad tonvikt på "ledning" aspekter av projekt kvalitetsstandard och processer precis som ISO 9001
Varför är mjukvaruteknik populärt?
Här är viktiga skäl bakom populariteten för mjukvaruteknik:
- Stor mjukvara – I vårt verkliga liv är det ganska bekvämare att bygga en mur än ett hus eller en byggnad. På samma sätt, när storleken på programvaran blir stor, hjälper programvaruteknik dig att bygga programvara.
- Skalbarhet- Om mjukvaruutvecklingsprocessen var baserad på vetenskapliga och tekniska koncept, är det lättare att återskapa ny programvara för att skala en befintlig.
- Anpassningsförmåga: Närhelst mjukvaruprocessen var baserad på vetenskap och ingenjörskonst, är det lätt att återskapa ny programvara med hjälp av mjukvaruteknik.
- Kosta- Hårdvaruindustrin har visat sin kompetens och enorm tillverkning har sänkt kostnaderna för dator och elektronisk hårdvara.
- Dynamisk natur– Alltid växande och anpassande karaktär av programvaran. Det beror på i vilken miljö användaren arbetar.
- Quality Management: Erbjuder en bättre metod för mjukvaruutveckling för att tillhandahålla kvalitetsprodukter.
Relation mellan mjukvaruteknik och andra discipliner
Här, hur programvaruteknik relaterade till andra discipliner:
- Datavetenskap: Ger den vetenskapliga grunden för mjukvaran då elteknik främst beror på fysik.
- Management Science: Programvaruutveckling är ett arbetsintensivt arbete som kräver både teknisk och ledningsmässig kontroll. Därför används det i stor utsträckning inom managementvetenskap.
- Ekonomi: Inom denna sektor hjälper programvaruteknik dig med resursuppskattning och kostnadskontroll. Datorsystem måste utvecklas och data bör underhållas regelbundet inom en given budget.
- Systemteknik: De flesta programvara är en komponent i ett mycket större system. Till exempel programvaran i ett industriövervakningssystem eller flygmjukvaran på ett flygplan. Programvarutekniska metoder bör tillämpas för att studera denna typ av system.
Programvaruteknikens utmaningar
Här är några kritiska utmaningar som mjukvaruingenjörer står inför:
- I säkerhetskritiska områden som rymd, flyg, kärnkraftverk etc. kan kostnaden för mjukvarufel bli enorm eftersom liv är i fara.
- Ökade marknadskrav på snabb handläggningstid.
- Att hantera den ökade komplexiteten i mjukvarubehovet för nya applikationer.
- Mångfalden av mjukvarusystem bör kommunicera med varandra.
Attribut för mjukvaruprodukter
Egenskaperna för alla programvaror inkluderar funktioner som visas av produkten när den installeras och tas i bruk.
De är inte de tjänster som tillhandahålls av produkten. Istället har de relaterat till produktens dynamiska beteende och användningen av produkten.
Exempel på dessa attribut är:
Efficiency, reliability, robustness, maintainability, etc.
Men den relativa betydelsen av dessa egenskaper varierar från ett programsystem till ett annat.
Produktegenskaper | Systembeskrivningar |
---|---|
underhåll | Programvaran bör utvecklas för att möta kundernas förändrade krav. |
Driftsäkerhet | Pålitlighet innefattar olika egenskaper. Pålitlig programvara får aldrig orsaka någon fysisk eller ekonomisk skada vid tidpunkten för systemfel. |
Effektivitet | Programvaran bör överanvända systemresurser som minne och processorcykel. |
användbarhet | Programvaran bör ha ett specifikt användargränssnitt och dokumentation. |
Att optimera ovanstående attribut är mycket utmanande. Att erbjuda ett bättre användargränssnitt kan till exempel minska systemets effektivitet.
Egenskaper för bra programvara
Varje programvara bör bedömas efter vad den erbjuder och vilka metoder som hjälper dig att använda den.
Varje programvara måste uppfylla följande attribut:
- Operationell
- Övergångs
- Underhåll
Här är några viktiga egenskaper hos bra programvara utvecklad av mjukvaruproffs
Operationell
Denna egenskap låter oss veta hur väl programvaran fungerar i de operationer som kan mätas på:
- budget
- Effektivitet
- användbarhet
- Driftsäkerhet
- korrekt~~POS=TRUNC
- Funktionalitet
- Säkerhet
- Säkerhet
Övergångs
Detta är en viktig aspekt när programvaran flyttas från en plattform till en annan:
- Interoperabilitet
- reus Förmåga
- Portabilitet
- Anpassningsförmåga
Underhåll
Den här aspekten talar om hur väl programvara har förmågan att anpassa sig i den snabbt föränderliga miljön:
- Flexibilitet
- underhåll
- modularitet
- Skalbarhet
Sammanfattning
- Programvaruutveckling är en process för att analysera användarkrav och sedan designa, bygga och testa mjukvaruapplikationer som kommer att uppfylla dessa krav
- Viktiga skäl för att använda mjukvaruteknik är: 1) Stor programvara, 2) Skalbarhet 3) Anpassningsförmåga 4) Kostnad och 5) Dynamisk natur.
- I slutet av 1960-talet blir många programvaror över budget. Därför erbjuder den opålitlig programvara som är dyr att underhålla.
- I slutet av 1970-talet sågs den utbredda användningen av principer för mjukvaruteknik.
- Software engineering koncept 1) Datavetenskap 2) Management Science 3) Systemteknik och 4) Ekonomi
- Ökade marknadskrav på snabb handläggningstid är de största utmaningarna inom mjukvaruteknikområdet.
- 1) Underhållbarhet, 2) Pålitlighet, 3) Effektivitet och, 4) Användbarhet är de viktigaste egenskaperna hos mjukvaruprodukter.
- Tre viktigaste egenskaperna hos bra programvara är 1) Operational 2) Transitional 3) Underhåll.