introduction to software development ii - github pages · 2 code early; code often (33 hours...
TRANSCRIPT
Introduction to Software Development II
Stephen P Levitt
School of Electrical and Information EngineeringUniversity of the Witwatersrand
2019
Outline
1 My Contact Details
2 Classroom Rules
3 What This Course is About — Two Viewpoints
4 Course Logistics
5 C++ Resources
6 Software Development II Within the Curriculum
7 Secrets of Success
Course Introduction 1 / 22
My Contact Details
Dr Stephen LevittCM 3.249 (same floor as E&IE reception)011 717 [email protected]
Course homepage: https://witseie.github.io/software-dev-2/
Course Introduction : My Contact Details 2 / 22
Classroom Rules
Arrive on timeLeave front row emptyTurn off cellphonesListen when others talkParticipate in class exercises
Course Introduction : Classroom Rules 3 / 22
What This Course Is About (Software Quality Viewpoint)
A software project’s stakeholders
Course Introduction : What This Course is About — Two Viewpoints 4 / 22
What is Software Quality?
“YouRHere”Small SA company developing location-based Android apps. Three developers workingon a social, location-based, check-in application available in the Google Play store.
Identify what the projects’ stakeholders (users, development team, project sponsors)value.
Course Introduction : What This Course is About — Two Viewpoints 5 / 22
Three Aspects to Software Quality I
Functional Quality (also known as External Quality)Structural or Design Quality (also known as Internal Quality)
Process Quality
Course Introduction : What This Course is About — Two Viewpoints 6 / 22
Three Aspects to Software Quality II
Stakeholders care about different thingsDifferent aspects are strongly connectedQuality bar varies depending on the project
Course Introduction : What This Course is About — Two Viewpoints 7 / 22
Is it Worth Designing Software Well?
Source: http://martinfowler.com/bliki/DesignStaminaHypothesis.html
Course Introduction : What This Course is About — Two Viewpoints 8 / 22
What This Course Is About (Content Viewpoint)
Designing and implementing an object-oriented solution to a software problemLearning and coding in ANSI/ISO Standard C++Applying software engineering principles during software construction
In short, laying the foundation for a career in software development/engineering or acareer that includes some software development.
Course Introduction : What This Course is About — Two Viewpoints 9 / 22
Areas Focused on in the Software Lifecycle
Course Introduction : What This Course is About — Two Viewpoints 10 / 22
Lectures/Labs/Review Sessions
Lectures:Monday, 10:15-12:00 in FNB 45 (3rd and 4th periods)Tuesday, 12:30-13:15 in FNB 47 (5th period)
Labs:Friday, 14:15-16:30 in the D-Lab (Computer Lab)
Review Sessions (you will be allocated to one session):Friday 14:15-15:15 / Friday 15:30-16:30; in WSS203/WSS204/WSS206
Course Introduction : Course Logistics 11 / 22
Laboratories
Work in groups of 2 (as for the project) in the D-Lab or elsewhereDemis are available for assistanceCount 5% (≈ 1% per lab)Formative assessment — not based on the quality/correctness of your solutions
Start this week!
Course Introduction : Course Logistics 12 / 22
Lab Assessment Procedure
To receive the mark for each lab:Work on the lab weekly and push solutions each week to GitHubSubmit completed laboratory via GitHub before the deadline (one submission pergroup)Labs will be reviewed in review sessions.
Arrive on time for the review session with your solutions and participate in discussingthe labNo late arrivals or session swapping will be permitted without prior arrangement
Forum participation: a percentage equivalent to one lab’s mark will be awardedfor participation (note, the maximum lab mark is still 5%)Achieve 65% or more in the final exam, and you will automatically be awarded 5%for the labs
Course Introduction : Course Logistics 13 / 22
Class Test, Project and Exam
Test — counts 10%1 hour written test
Project — counts 35%Done in groups of 2 (lab groups) over a number of weeksWill be a challenging problem requiring an object-oriented solution, thoroughtesting and complete documentation
Exam — counts 50%3 hour written examClosed book, basic scientific calculators allowedAll material covered in lectures, labs, readings and the course project is examinable
Course Introduction : Course Logistics 14 / 22
Recommended Textbooks
C++ Programming: From Problem Analysis to Program Design by Malik
The C++ Primer by Lippman, Moo and LajoieThe C++ Programming Language by StroustrupEffective C++ Series by MeyersC++ Coding Standards by Sutter and Alexandrescu
Additional readings/podcasts/videos will be made available
Course Introduction : C++ Resources 15 / 22
C++ Resources on the Web
Huge amount of material on the webSome of it good, some of it questionable, and a fair amount outdatedStart with the links on the course homepage, including:
Boost (peer-reviewed, portable C++ source libraries)
Course Introduction : C++ Resources 16 / 22
C++ IDEs and Compilers
The IDE (Integrated Development Environment) ̸= The CompilerOfficially supported in this course: CodeLite 12 onwards and the GCC Compiler7.3.0 - both open source, cross-platform (download from course website)Alternative Compilers:
Microsoft’s CompilerClang
Alternative IDEs:Microsoft’s Visual C++XCodeNetbeansCode::Blocks…
Important issues are: Standards, Vendors and Conformance
Course Introduction : C++ Resources 17 / 22
Software Development II and the Software Development Course Line
Software Development I in 2nd yearData Structures and Algorithms in 2nd yearInformation Engineering Techniques in 3rd yearSoftware Development II in 3rd yearSoftware Development III in 4th yearData Intensive Computing for Data Science
Course Introduction : Software Development II Within the Curriculum 18 / 22
I’m Doing EE — Why Am I Doing Software Development II?
Believe or not, EE’s need a good understanding of software for simulation andmodellingThis is one of the few courses in the entire curriculum which covers most of aproduct’s lifecycle — from requirements to implementation to testing
Course Introduction : Software Development II Within the Curriculum 19 / 22
I’m Doing EE — Why Am I Doing Software Development II?
Believe or not, EE’s need a good understanding of software for simulation andmodellingThis is one of the few courses in the entire curriculum which covers most of aproduct’s lifecycle — from requirements to implementation to testing
Course Introduction : Software Development II Within the Curriculum 19 / 22
Secrets of Success
1 This is NOT a Software Appreciation Course2 Code early; code often (33 hours lab-time, 30 hours project-time, 30 hours
lecture-time)3 Split coding tasks equally (do not let your lab partner do all the coding)4 Understand when you don’t understand5 Try to keep up to date
Course Introduction : Secrets of Success 20 / 22
Secrets of Success cont.
“ I hear and I forget.I see and I remember.I do and I understand.” — Confucious
Course Introduction : Secrets of Success 21 / 22
Secrets of Success cont.
“ Teachers open the door, but you must enter by yourself.”— Chinese Proverb
“ Curiosity will conquer fear even more than bravery will.” — James Stephens
Course Introduction : Secrets of Success 22 / 22