Please enable JavaScript.
Coggle requires JavaScript to display documents.
Design och Implementation (Design patterns (Pattern Elements (Name: A…
Design och Implementation
Steget då man utvecklar systemet.
SW design och implementation aktiviteter är interfolierade
Design
Kreativ aktivitet där man identifierar SW komponenter och deras relation, baserat på kundernas krav.
Involverar utveckling av flera olika system modeller UML, objekt orienterad deisgn med UML
Kräver mycket tid för utveckling och underhållning av modellerna och för små system är detta inte kost effektivt
Men, för större system utveckling med olika grupper, är design modeller en viktig kommunikation mekanism (nack och fördel)
Fördel
Dock enkel att ändra systemet än funktionell metod. Då de är stand-alone entitites, förändring i ett objekt stör ej andra.
objekt är associerade med saker förenklar förståelsen då det oftast är klara mappar mellan verkliga enheter.
Utveckling av ett system design i detalj utifrån objekt orienterat.
Olika objektorienterade design processer beroende på organisationen som använder processen.
Understand and define the
context
and modes of use of the system (external interactions with the system)
3 more items...
Design the system
architecture
1 more item...
Identify
the principal system
objects
(Identification of object classes)
2 more items...
Develop design models
1 more item...
Specify object
interfaces
4 more items...
Kan inte sättas i exakta sekvenser av aktiviteter, de är interfolierade och påverkar varandra.
se use case description s12 pp
Utveckling av klasser som definierar objekten i ett system och deras interaktion.
Implementation
Problem med implementation:
Host-target utveckling
Utveckling platform och utförande platform.
De kan ha olika installerade SW och arkitektur
Platform är mer än hårdvara. inkluderar installerade operativ system och andra hjälpmedel SW som databas hanterings system och utvecklingsplatform, interaktiv utvecklings miljön
Aktiviteter
den producerade mjukvaran används oftast inte på samma datorn som man har skapat den på. utan utvecklas på en host och körs på en separat target. om man ej håller koll på versionerna kan det hända att man inkluderar fel version av en komponent i sitt system
Configuration management
(konfigurations hantering)
Hantering av ett SW i förändring
Under utvecklings processen skall man hålla koll på olika versioner av varje mjukvaru komponent i ett så kallat konfigurations hanterings program.
Olika aktiviteter
Hitta problem
Hjälper till att användarna kan rapportera buggar och problem, för att tillåta utvecklarna att se vilka som arbetar med problemen och när de är fixade.
System integrering
Hjälper utvecklarna att definera vilken version av komponenter som är använda till att skapa varje version av ett system. denna definition används senare för att bygga ett syste automatiskt genom att kompilera och koppla de krävda komponenter
Version hantering
håller koll på olika versioner av Sw komponenter, koordinerar utvecklingen av systemet, mellan programmerarna, så att de ex inte tar bort varandras jobb och kan se vad som har gjorts
Målet är att kunna hjälpa system integrations processen så att alla utvecklare kan nå project koden och document på ett kontrollerat sätt. se vilka ändringar och kompilering och länka komponenter för att skapa ett system
Reuse
Använd så ofta som möjligt
Reuse levels
Kostnader
Kostanden för att
interagera
Reuse elementen med varandra (vid olika källor av SW) och den nya koden man har utvecklat själv
kostnaden för att
anpassa och konfigurera
reuse SWs komponent eller system för att möta kraven.
kostnaden för att
köpa
COTS eller andra level. Stora off the shelf system är dyra
Tiden som spenderas att hitta
SW och analysen om de passar eller ej de krav.
System
level, At this level, you reuse entire application systems. (COTS)
Component
level: Components are collections of objects and object classes that you reuse in application systems.
Object
level: At this level, you directly reuse objects from a library rather than writing the code yourself.
The
abstraction
level, At this level, you don’t reuse software directly but use knowledge of successful abstractions in the design of your software.
Processen där man förverkligar designen som ett program
IDE, integrerad utvecklingsmiljö
En utvecklingsmiljö (engelska Integrated Development Environment, IDE), är ett datorprogram eller en programsvit som vanligtvis innehåller en textredigerare, kompilator, och debugger, tillsammans med ett antal andra funktioner avsedda att underlätta vid programmering.
Genom samma plattform för trafiken mellan komponenter går det snabbare. viktigt att kunna köras på flera olika plattform, ifall något skulle fallera.
Öppen källa utveckling
är en utvecklingsmetod där käll koden är öppen för offentligheten och tillåter andra att hjälpa till i utvecklingsprocessen.
Kändast är linux, öppen via nätet för att nå en stor publik
Problem kan vara om de bör användas för en viss produkt och för allmän mjukvaru utveckling?
Fördel
Tillåter andra att komma in och hjälpa till, minskar kostnader för de egna företaget
support istället för att sälja
licens på öppen källkod
fundamental princip är att öppen källkod utveckling är gratis, men betyder ej att alla kan göra vad de vill med koden
rent rättsligt är det utvecklaren som äger koden, de kan därför lägga regler gällande restriktioner om hur de används.
Om en komponent i en öppen källa används, skall systemet också vara öppen enligt GNU, general public license. MÅSTE vara öppen om enligt ovan.
Objekt orienterad
design
process
Design patterns
A design pattern is a way of reusing abstract knowledge about a problem and its solution.
A pattern is a description of the problem and the essence of its solution.
It should be sufficiently abstract to be reused in different settings.
Patterns and Pattern Languages are ways to describe best practices, good designs, and capture experience in a way that it is possible for others to reuse this experience.
Pattern Elements
Name
: A meaningful pattern identifier.
Problem description:
A description of the problem area that explains when the pattern may be
applied.
Solution description
: Not a concrete design but a template (mall) for a design solution that
can be instantiated in different ways.
Consequences
: The results and trade-offs of applying the pattern.
Patterns support high-level, concept reuse. When you try to reuse executable components you are inevitably constrained by detailed design decisions that have been made by the implementers of these components. These range from the particular algorithms that have been used to implement the components to the objects and types in the component interfaces. When these design decisions conflict with your particular requirements, reusing the component is either impossible or introduces inefficiencies into your system. Using patterns means that you reuse the ideas but can adapt the implementation to suit the system that
you are developing.
Fördel mot COTS
Patterns are a great idea but you need experience of software design to use them effectively. You have to recognize situations where a pattern can be applied. Inexperienced programmers, even if they have read the pattern books, will always find it hard to decide whether they can reuse a pattern or need to develop a specialpurpose
solution