AU CSHenrik Bærbak Christensen1 dSoftArk Software Architecture Programming in the Large.

Slides:



Advertisements
Similar presentations
E-Science Data Information and Knowledge Transformation Thoughts on Education and Training for E-Science Based on edikt project experience Dr. Denise Ecklund.
Advertisements

DAIMIHenrik Bærbak Christensen1 Reliable Software and Architecture Course 1: Reliable Software.
Intro to CIT 594
Your Project Proposal.
General information CSE 230 : Introduction to Software Engineering
CMSC 132: Object-Oriented Programming II
CSCD 555 Research Methods for Computer Science
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
HENRIK BÆRBAK CHRISTENSEN ASSOCIATE PROFESSOR AARHUS UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE 1 Experimental Software Architecture Kandidat orientering.
Software Engineering Georges Grinstein Olsen 301E Class materials:
DAIMIHenrik Bærbak Christensen1 SRaT Software Reliability and Testing.
CSCD 434 Spring 2011 Lecture 1 Course Overview. Contact Information Instructor Carol Taylor 315 CEB Phone: Office.
Object-Oriented Enterprise Application Development Course Introduction.
IT Job Roles Task 20. Software Engineer Job Description Software engineers are responsible for creating and maintaining software of various different.
Software Developer Career. ◦ Desktop Program development ◦ Web Program Development ◦ Mobile Program Development.
Teaching Fellow Admissions Tutor for Computer Science Director of Undergraduate Studies.
TRAINING AND DEVELOPMENT. WHAT IS TRAINING ? The acquisition of knowledge and skills for present tasks. A tool to help individuals contribute to the organizations.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Prof. Matthew Hertz WTC 207D /
1 COMS 161 Introduction to Computing Title: Course Introduction Date: August 25, 2004 Lecture Number: 1.
EECE 310 Software Engineering Lecture 0: Course Orientation.
1 General Introduction CPRE 416-Software Evolution and Maintenance-Lecture 1.
Prof. Matthew Hertz SH 1029F /
CSCI-383 Object-Oriented Programming & Design Lecture 1.
Prof. Matthew Hertz WTC 207D /
CSCD 434 Network Security Spring 2014 Lecture 1 Course Overview.
Using Commtap Communication Targets and Activities Project.
Object-Oriented Analysis and Design Fall 2009.
CSE1GDT Game Design Theory About me: Paul Taylor I’m a lecturer in Games Design and Development Currently Studying my PhD in Artificial Intelligence.
Welcome to IST331 S1 Main concepts today Introduction to team, processes The user Cognitive ergonomics, design Examples of things about the user that are.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Introduction.
Module, Course and Unit Evaluations Module, course or unit evaluations give you the opportunity to make your voice heard by giving feedback about your.
Public Presentation TEMPUS project (CD-JEP 16160/2001) Innovation of Computer Science Curriculum in Higher Education Artificial Intelligence Course Innovation.
4Faculty.org Online Professional Development Resources.
University of Macau Faculty of Science and Technology Computer and Information Science SFTW 241 Programming Languages Architecture 1 Group B5.
CS 345 – Software Engineering Nancy Harris ISAT/CS 217
Test Stubs... getting the world under control. TDD of State Pattern To implement GammaTown requirements I CS, AUHenrik Bærbak Christensen2.
Henrik Bærbak Christensen1 Test Driven Development “TDD” Summary.
Exam starts right now! Great – no stress!. The Tenets Central Tenets about Exam –Alignment between learning goals and evaluation Evaluation DevOps work.
HotCiv Project Starting up!. Henrik Bærbak Christensen2 HotCiv = Agile development Iterations of –product development –learning increments.
AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large.
All the dSoftArk Tools Getting started!. Tools dSoftArk is a semi-realistic, agile, development project –Industrial strength software (programming, TDD,
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
Data Structures and Algorithms in Java AlaaEddin 2012.
Multi Dimensional Variance: How to make ultra flexible software!
Refactoring and Integration Testing or Strategy, introduced reliably by TDD The power of automated tests.
AU CSHenrik Bærbak Christensen1 dSoftArk Software Architecture Programming in the Large.
SFTW241 Programming Languages Architecture 2002~2003 Semester II Duration: 2003/2/11~ 2003/4/11 University of Macau Faculty of Science and Technology Computer.
AU CSHenrik Bærbak Christensen1 dSoftArk E2014 Software Architecture Programming in the Large.
Arkitektur og Dist. Systemer MIT SWK. AU CSHenrik Bærbak Christensen2 Me Henrik Bærbak Christensen Associate professor (lektor) since 2003 –Collaboration.
CSHenrik Bærbak Christensen1 Flexibility and Maintainability And their metrics: coupling and cohesion.
AU CSHenrik Bærbak Christensen1 dSoftArk E2013 Software Architecture Programming in the Large.
1 The other 80% of Learning in Government –Informal Learning.
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Software Architecture in Practice Welcome to SAiP.
Hints - Mandatory 5 Blackbox Testing Pattern Hunting.
HotCiv Project Starting up!.
Mandatory 1 / AlphaCiv … Traps to be aware of ….
Two part course Software Engineering option only!
Certification This deck describes why your organization would want to adopt the Disciplined Agile Framework Please contact us at DisciplinedAgileConsortium.org.
EECE 310 Software Engineering
SWE 205 Software Usability Analysis and Design
Gathering Systems Requirements
Gathering Systems Requirements
Container technology, Microservices, and DevOps
Software Engineering and Architecture
Software Engineering and Architecture
Software Engineering and Architecture
Software Engineering and Architecture
Presentation transcript:

AU CSHenrik Bærbak Christensen1 dSoftArk Software Architecture Programming in the Large

AU CSHenrik Bærbak Christensen2 The lecturer Henrik Bærbak Christensen Associate professor (lektor) since 2003 –Software developer/architect in industry, –Collaboration with many Danish IT companies Systematic, Jyske Bank, Terma, B&O, KMD, Danfoss, … Faglig koordinator for Master og Diplom (SWK) Owner of Course development and consultancy

AU CSHenrik Bærbak Christensen3 Topics Software Architecture –primarily from the operational point of view that is: help me to write flexible, reliable, code! –but also from a reflective/academic point of view terminology, analysis, choosing the best solution Quality focus: Flexible and Reliable –design patterns, frameworks, compositional design,… Making software flexible –test-driven development, testing, tool support, … Making software reliable

AU CSHenrik Bærbak Christensen4 Course focus Focus is on: Operational level –use technique X to produce reliable, flexible, software and next the reflective/academic level –use the proper terminology –discuss technique X and relate it to technique Y, Z… –understand benefits and liabilities of technique X

AU CSHenrik Bærbak Christensen5 Relations to other courses This course elaborates and adds to material presented earlier: –dIntProg: Object-oriented design, UML –dProg2: Design patterns, frameworks… Main challenges here: –process and testing –combine and apply – digging deeper –evaluate, reflect,

AU CSHenrik Bærbak Christensen6 Scientific Foundation The course is anchored in an empirical tradition. Computer Science - Software Engineering Results arise from: –practice and experience –reflection over practice –logical argumentation and analysis That is: –No proofs nor QEDs which is not natural science anyway –No ultimate truths – it is generally “best practice” Some good solutions – and a lot of really bad ones… –But – terminology, concepts, analysis !

AU CSHenrik Bærbak Christensen7 Notes This is a contact-sport! You learn by doing it. It is like chess, playing the piano, physical training –the rules are easy to learn(lectures) –but the game is difficult to master(doing it)

AU CSHenrik Bærbak Christensen8 Why is this interesting? Why should you invest energy in this course? –because otherwise you will not pass the exam –because it is vital knowledge if you believe you are going to make a thesis with some software development involved going to industry to become a –programmer (even in the face of out-sourcing) –architect/designer/project manager –start-up company in software related issues –millionaire (because you make better designs than others!) »no guaranties however

AU CSHenrik Bærbak Christensen9 Process Lectures –talking about the subject, hopefully discussing… Two 2 hour slots –3 hour lectures (Thu + Mon) –1 hour “reflection” (curriculum free!) (Mon) presenting mandatory delivery tool presentations discussing proposals to exercises open for your proposals

AU CSHenrik Bærbak Christensen10 Process Doing it: –Exercises: TØ = Lab/Workshops with TA Group’s responsibility to be well prepared ! Workshop: Group work + common discussions –TA act as discussion leader + consultant –Mandatory exercises: Hand-in: Dates are show in CourseAdmin system PDF report + Zip with code delivered using CourseAdmin Theory Programming Reflection Names are R.pdf C.zip

AU CSHenrik Bærbak Christensen11 Literature Primary literature –Flexible, Reliable Software (FRS) –Comments still welcome! –Check the errata on: Electronic material –Papers etc. posted on the web site.

The quick indeces The front and back of the book are –An overview of all TDD principles and the rhythm –A catalogue of all design patterns including pagenumbers to the associated ’pattern box’ Use it as quick overviews... AU CSHenrik Bærbak Christensen12

Website: dSoftArk CourseAdmin based Comments welcome AU CSHenrik Bærbak Christensen13

Mandatory Project AU CSHenrik Bærbak Christensen14

Mandatory project HotCiv Framework –Civilization game Six exercises –TDD –Comp Design –Patterns –Frameworks –Systematic Test Like ‘real’ agile development Code+Exercise on web (Note: Image is not HotCiv ) AU CSHenrik Bærbak Christensen15

AU CSHenrik Bærbak Christensen16 Mandatory project Functionality and architecture are orthogonal. –The project’s focus is architectural Use compositional design techniques to support variants of game play! Actual rule behaviours are less interesting Keep focus on the architectural aspects!!! –Thus Good: Missing functionality but correct compositional design Bad: All functionality but variants handle by large ‘if’s

Mandatory Team Process Process is important: Test-driven… 3 person group –Do same-time, same-location work using three roles Programmer: has the keyboard, do programming Test list maintainer: update test list, review code, dream up new test cases, spot refactoring opportunities Recorder: Ensure TDD process is followed (rhythm, TDD principles, refactoring), stops work if process not followed, write down process steps and analysis for the report. –Change roles every ½ hour!!! 2 person group –One person is both test list maintainer + recorder AU CSHenrik Bærbak Christensen17

AU CSHenrik Bærbak Christensen18 Delivery schedule Delivery at after the lab with the TA –So – do most of the work before the workshop, everything else is a ticket to disaster 

Mandatory Exercise Heavy on tools! –Required: Java and Ant –Package structured, dual source tree –Non-trivial sized code base –I strongly advice using subversion for team work –IDEs: Emacs/editor + shell is doable but not recommended… Eclipse or IntelliJ Morale: Get started right away!!! AU CSHenrik Bærbak Christensen19

Mandatory Team Process If group is forced to work different-location then Each person does full TDD by himself/herself on selected aspects of the requirements Meet to discuss experiences with the process; and ‘merge’ the contributions. AU CSHenrik Bærbak Christensen20

The official secret The mandatory exercise is designed to cover almost all heart-blood techniques in this course. Additional exercises are basically ‘more of the same’ Morale: Deep work on the mandatory is better than surface work on all exercises… AU CSHenrik Bærbak Christensen21

AU CSHenrik Bærbak Christensen22 What we expect from each other Lectures can be quite boring - can we avoid that? I will try to –make some short exercises during lectures… –discuss with you (requires two for a discussion ) –tell some war-stories from “the real life” I expect you to –attend because you find that you learn something –if not: stay away and spend your (and my) time better!

2013 Initiatives Stronger emphasis on exam training ”How to get 02 at the dSoftArk exam” Welcome to JaCoCo –Vague quality measure of your test code... AU CSHenrik Bærbak Christensen23

AU CSHenrik Bærbak Christensen24 Exam Exam form: –18-20 minute preparation on a concrete exercise Typically “Analyse and refactor this code [...] using framework theory”, etc. –15 min examination analyse the code fragment; sketch Java and UML; suggest improvements; use theory, terminology, techniques from the course; relate to other topics.

AU CSHenrik Bærbak Christensen25 Exam Important requirement for passing the exam: –Demonstrate operational knowledge !!! Analyse the code fragment correctly Suggest good design solutions Sketch solutions in correct Java and UML –Analytical skill Know why your design is better than other designs –Terminology skills Know the terminology

AU CSHenrik Bærbak Christensen26 Thus... The purpose of the mandatory project is –To read code, to read requirements –To suggest architectural solutions –To implement and code them –To analyse benefits and liabilities correctly So – investing time in the project is a very good preparation to the exam…