Software Engineering and Architecture Introduction to SWEA
Corona Combat • These are challenging times… • Move to your Stamhold Section • Wipe the surfaces – ‘ ugens spritter ’ • Stay at your seat in the break unless – Nature calls – Urgent and important private calls • Leave on my command AU CS Henrik Bærbak Christensen 2
Agenda • Who am I? • Why is this course interesting? • What are the learning goals? • How are we organized? • How will I pass this course? AU CS Henrik Bærbak Christensen 3
Who is the Captain?
The lecturer • Henrik Bærbak Christensen • Associate professor (lektor) since 2003 – Collaboration with many Danish IT companies • Systematic, Jyske Bank, Terma, B&O, KMD, Uber, Danfoss , … – Actually have had complex software in production ☺ • Faglig koordinator for Master (SWK) / IT-Vest • Owner of • Course development and consultancy • http://www.imhotep.dk AU CS Henrik Bærbak Christensen 5
And as a Teacher – I value… • I need to know the problems to try to fix them! I get my salary to help you get the best outcome of my course as possible! (within the context of sound teaching) AU CS Henrik Bærbak Christensen 6
Why is SWEA Interesting?
Because… • If you aim for industrial software development... – SWEA will cover a lot of industrial strength methods, techniques and tools . No toy tools. No techs that does not scale to FaceBook development. No methods that would not be used by MicroSoft teams. • If you aim for research in security, algorithms, UI, physics, …, or for going into management... – You will want just to pass the exam ☺ and that is fine with me! • There will be a link to ‘How to pass SWEA” AU CS Henrik Bærbak Christensen 8
What are the Learning Goals? Or: What are the values and foundation?
There Will Be Code AU CS Henrik Bærbak Christensen 10
Knowledge versus Skills • What knowledge, what skills are required for ? – Doing heart surgery Flying F16 in combat – Developing the Twitter software and architecture Skills Knowledge AU CS Henrik Bærbak Christensen 11
SWEA emphasize… • Skills! Programming is a contact sport! • “The Strategy patterns is defined by Gamma as ...” – (and then I draw the UML diagram I have memorized) • Fine, but I prefer to see... • This code would benefit by introducing the Strategy pattern and in Java I will code it like this : – private WinnerStrategy ws = new PlayerWithMostArmiesStrategy(); ... AU CS Henrik Bærbak Christensen 12
How do we emphasize skills? • The schedule reads ”TØ” • The term ” Teoretiske Øvelser ” is disliked in SWEA ☺ ! • We have a three hour lab where you hone your skills in developing reliable and flexible software using agile processes! (Using the knowledge you gain by reading the book ☺ ) AU CS Henrik Bærbak Christensen 13
Software Development? • Best way: Building or Growing AU CS Henrik Bærbak Christensen 14
No ‘Correct’ Answer, but • Building – An early mistake is very expensive to correct • Think too weak building foundation • Growing – Grow a simple system towards users’ needs • Examples – Facebook, Uber, Google, … Facebook anno 2004 AU CS Henrik Bærbak Christensen 15
How is it Organized?
Focus on Skill Acquisition • Lectures – Zoom and Auditorium Experimentation – All physical are also on Zoom. Some are only on Zoom – Experiment with some blended learning + screencasts – Just about 3-4 hours a week, - with a lot of exceptions • Labs Will probably be physical – Work on the mandatory project ! • Grow software! Use the book’s techniques! Hone your skills! • Study Café Will be on Zoom – Work on the mandatory project !! Constructivism: Students learn by • In the teams what they do, not by what the – Work on the mandatory project !!! teacher does … AU CS Henrik Bærbak Christensen 17
Mandatory Overview Designed to have more load early than late ! AU CS Henrik Bærbak Christensen 18
Feedback • Feedback drives learning – I will urge TA’s to • provide fast feedback on Mandatory • focus their feedback on most important area of improvement • And I want to align their attention to key learning goals – WarStory : Once had TA’s from math CS that added lot of proofs to my course => double workload and frustration… AU CS Henrik Bærbak Christensen 19
Feedback Schema • Rubrics approach SWEA Evaluation Sheet Iteration 1 Mandatory: TDD of AlphaCiv Guidelines Pass Argument Submission No Learning Goal Grade Argument TDD Process 0 Test Code 0 Production Code 0 Improvement Focus 1st 2nd 3rd Score 0 Average 0,00 Not accepted - rehandin Legend Grade Assesses the coverage of the Learning goals and the number of errors 0 Unacceptable 4 Adequate (Minor coverage, and several significant errors) 7 Good (Good coverage with some errors) 10 Excellent (Very good coverage with minor or no errors) AU CS Henrik Bærbak Christensen 20
Affects the Exam Grade • The 10 mandatory deliveries are marked, giving points • These points influence the final grade – Mostly in cases of doubt (ala ‘is it 7 or is it 4’?) • Many points pull towards the high grades • Few points pull towards the low grade • Too few point (below 40%) means failed mandatory • Oral Exam thus is the central aspect of the grade AU CS Henrik Bærbak Christensen 21
E20 Changes… Based upon E19 feedback a. o.
Changes compared to E19 • Moving towards less lecturing in the auditorium (small steps) – Partly due to Corona situation – Partly because lecturing is a rather poor teaching format • Constructivsm = learn by doing. But what do you really do during my lectures? – Partly because I want to do something new… • Study Cafe and Corona? • Improve Iteration 8 mandatory – Plan to lower workload compared to E19, due to numerous requests… AU CS Henrik Bærbak Christensen 23
Changes compared to E19 • Released FRS10th anniversary document on www.baerbak.com – Highlights changes in technology stacks • Phew … Released FRDS 2nd Edition – Major overhaul of underlying Broker library • Code bases updated to Gradle 6.5 and Junit 5 – Tech stack evolves – no real benefits, just lots of work • Experiment with GitLab pipelines and Continuous Delivery – Switching from releases to continuous delivery – Git commit automatically runs your tests and coverage generation – May help TA’s in providing line based feedback within GitLab AU CS Henrik Bærbak Christensen 24
Summary • We are going to build complex systems that are flexible and reliable • We hypothesize this is best made in an evolutionary way – Grow flexible, testable, software – Learn as we go, prepare to get wiser – Agile manifesto • We need production quality tools to do so – JUnit, Gradle, Git, IDEs, ... – Start right away... AU CS Henrik Bærbak Christensen 25
Summary • Your learning will – Resemble industrial strength development • Long term maintenance (> 1 week!) • Customer requirements driven • Focused on one single project (almost) • Read the intro page about the mandatory project!!! AU CS Henrik Bærbak Christensen 26
Summary • I love strategy games ☺ – Mandatory Project: Tribute to the classic... AU CS Henrik Bærbak Christensen 27
Recommend
More recommend