Kandidatarbete Kristian Sandahl IDA
Att integrera kunskap om programvaruutveckling Att skaffa och dokumentera erfarenheter från programutveckling Kandidatarbete vs projektarbete Kandidatarbetets syfte Projektarbetets syfte Att genomföra ett programvaruprojekt 2
Modifierad disposition Sammanfattning 1. Introduktion 2. Bakgrund 3. Metod 4. Systembeskrivning 5. Gruppens tekniska erfarenheter, positiva/negativa 6. Gruppens processrelaterade erfarenheter, positiva/negativa, alla faser 7. Individuella bidrag: Beskrivning och erfarenhet av roller eller "practices" (2-3 sidor per person med minst en litteraturreferens) 8. Diskussion 9. Slutsats: Vad gör vi annorlunda nästa gång? 10. Referenser Bilaga: Affärsplan 3
Introduktion Skall göra läsaren intresserad Motivering Syfte Frågeställning: generisk och individuell 4
Bakgrund Kallas ofta kontext Beskriver förutsättningar för Replikerbarhet Överförbarhet Projektet är er empiri 5
Metod Forskningsmetod Explorativ fallstudie Datakällor: Kvantitativa (antal säkerhetshot, enkäter) Kvalitativa (reflektioner) Utvecklingsmetod Iterativ SEMAT alpha Roller Dokument 6
Why do we need empricial studies? Software Engineering has great variation in: Scale Domain Tools Infrastructure Human resources Organization Locality Technique Cause Effect Quality Method
What is an experiment? Units (subjects) treatment Comparison Control group No treatment
Types of experiments Randomized experiment: Units receiving the treatment are selected by random Quasi-experiment: Units are not selected randomly Controlled experiment: Comparison between treatments (Sjøberg et al 2005) Correlation study: Observes relationships with variables (empirical evaluation) Replication: Repeating the study Differentiated replication: Replication with variation of essential conditions
Variables Background variables Controlled variables Independent variables Dependent variables Age Sex Education Experience... Time of day Temperature Available resources... Method used Tool used Size of task Group size... No of errors done Time to complete task Judgement of quality... Different Not changeable Same Observed Manipulated Observed Assumed to change as effect manipulation of independent variables
Validity threats Internal validity: Are differences in dependent variables really due to changes of independent variables? Conclusion validity: Are our measurement and analysis methods appropriate? Construct validity: Are we measuring the phenomena we intend to do? External validity: To what population can we generalise our results?
Comparing means Under certain conditions: Student s t-test Significance level: nomally 5%
Comparing distributions Comparing severity ratings Severity Tester 1 Tester 2 Catastrophic 4 2 Severe 9 6 Moderate 53 27 Minor 105 58 Are the testers methods the same? Under certain conditions: use the Chi-square test For 2x2 contigency tables other methods apply, for instance Cohen s Kappa
The box plot
Comparing variance
Case Studies... are investigating contemporary phenomena in their context can be: Exploratory Descriptive Explanatory Improving
Triangulation Increases precision and thrus worthiness Types: (Picture: Wikimedia commons) Data (source) Observer Methodological Theory
Some more definitions Objective: overall statement of expectations Research questions: refinement of objective Hypothesis: supposed explanation Case: the object of the study Subjects: those providing information Qualitative data: Descriptions, text Quantitative data: Numbers, measurements Case study protocol: Procedures of study Protocol: Data obtained by observation, interview etc.
What happens if the line is broken? Software project Grounding Software engineer
SWEBOK on a Profession Professional education, validated through accreditiation Certification or licensing Skill development, continuing professional education Professional society Commitment to norms Code of ethics
ACM/IEEE-CS Joint Task Force on Software Engineering Ethics v 5.2 1(2) 1 PUBLIC - Software engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. 3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. 4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment. 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
ACM/IEEE-CS Joint Task Force on Software Engineering Ethics v 5.2 2(2) 6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues. 8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
1. Ingenjören bör i sin yrkesutövning känna ett personligt ansvar för att tekniken används på ett sätt som gagnar människa, miljö och samhälle. 2. Ingenjören bör sträva efter att förbättra tekniken och det tekniska kunnandet i riktning mot ett effektivare resursutnyttjande utan skadeverkningar. 3. Ingenjören bör ställa sitt kunnande till förfogande i offentliga och enskilda sammanhang för att uppnå bästa beslutsunderlag och belysa teknikens möjligheter och risker. 4. Ingenjören bör inte arbeta inom eller samverka med företag och organisationer av tvivelaktig karaktär eller med mål som strider mot personlig övertygelse. 5. Ingenjören bör visa full lojalitet mot arbetsgivare och arbetskamrater. Svårigheter härvidlag bör tas upp till öppen diskussion, i första hand på arbetsplatsen. Hederskodex för Sveriges Ingenjörer 6. Ingenjören får inte använda otillbörliga metoder i tävlan om anställning, uppdrag eller beställning, ej heller försöka skada kollegors anseende genom obefogade beskyllningar. 7. Ingenjören bör respektera anförtrodda upplysningars konfidentiella natur samt andras rätt till uppslag, uppfinningar, utredningar, planer och ritningar. 8. Ingenjören får inte gynna obehöriga intressen och bör öppet redovisa ekonomiska och andra intressen som kan påverka tilltron till hans eller hennes opartiskhet och omdöme. 9. Ingenjören bör enskilt och offentligt, i tal och skrift, sträva efter ett sakligt framställningssätt och undvika felaktiga, missvisande eller överdrivna påståenden. 10. Ingenjören bör aktivt stödja kollegor, som råkar i svårigheter på grund av ett handlande i enlighet med dessa regler, samt enligt bästa övertygelse avstyra brott mot dem.
My own thinking By definition, professional means that you are capable to make your living on what you do To do this your products and services shall be worthwhile for customers You have a minimum standard You can receive a series of similar assignments You can work under non-optimal conditions You can learn and instruct Being a professional is often not equal to gold-plating, it is not necessarily always good
www.liu.se