Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Course Conclusion
Stephen P Levitt
School of Electrical and Information EngineeringUniversity of the Witwatersrand
2019
Course Conclusion
Did We Achieve the Course Outcomes?A Key Concern of Software EngineeringExam InstructionsLooking Ahead
Course Conclusion 1 / 19
Course Outcomes
The outcomes of this course are threefold:1 You have a good understanding of object-oriented modelling and design.
You are able to produce an object-oriented solution for a moderately-sizedproblem.
2 You are able to program using modern C++ (C++14).3 You are able to engineer a software solution as opposed to just hacking it.
Course Conclusion 2 / 19
Content Related to OO Modelling and Design
Objects and Classes, Interfaces and ImplementationsObject ConversationsInheritance and Role ModellingUML Class and Sequence DiagramsGeneral Design Advice and Code Smells
Course Conclusion 3 / 19
Course Outcomes
The outcomes of this course are threefold:1 You have a good understanding of object-oriented modelling and design.
You are able to produce an object-oriented solution for a moderately-sizedproblem.
2 You are able to program using modern C++ (C++17).
3 You are able to engineer a software solution as opposed to just hacking it.
Course Conclusion 4 / 19
Content Related to Modern C++
C++ Fundamentalsauto, range-based for loops, overrideSTL and vector
static membersSmart Pointers, make_unique and make_shared
Copy Construction and AssignmentError Handling and Exceptions
Course Conclusion 5 / 19
Course Outcomes
The outcomes of this course are threefold:1 You have a good understanding of object-oriented modelling and design.
You are able to produce an object-oriented solution for a moderately-sizedproblem.
2 You are able to program using modern C++ (C++17).3 You are able to engineer a software solution as opposed to just hacking it.
Course Conclusion 6 / 19
A Key Concern of Software Engineering
Technologies change; requirements changeChange is difficult to deal withChange represents risk
A key concern of software engineering is reducing the cost of change.
Course Conclusion 7 / 19
Too often software looks like this
Course Conclusion 8 / 19
When we want it to look like this
Course Conclusion 9 / 19
A Key Concern of Software Engineering
Software engineering practices lessen the impact of change:Allow change through iterative and incremental releasesEnable change through design
Reduce couplingManage dependenciesProgram to an interface not an implementation
Facilitate change through unit testsRefactoring and regression testing
Track change through the use of a version control system
Course Conclusion 10 / 19
Content Related to Software Engineering
Iterative and Incremental DevelopmentGood Coding Principles and PracticesUnit TestingUse of Git and GitHubSoftware Documentation and Documentation Tools
Course Conclusion 11 / 19
Exam Instructions
Answer all four questions. The questions do not carry equal weight. There is atotal of 110 marks; however, 100 marks constitutes 100%.40 marks MCQs (8 × 5 marks); 70 marks standard questionsFor questions which require you to write source code, note that:
Pencil may be used.You only need to specify #include’s if specifically asked.For classes, you can give the implementation entirely in the header file, unlessdirected otherwise.Marks are not awarded solely for functionality but also for good design, makingappropriate use of library functions, following good coding practices, and using amodern, idiomatic C++ style.Your code must be easily understandable or well commented.
A separate handout containing the reference sheets is provided.
Course Conclusion 12 / 19
Sample MCQ Question
1 Which of the following statements are true? (5 marks)(a) The lecturer’s office is on the second floor of the building.(b) Biomedical engineers study Software Development II in their third year of
study.(c) The lab marks are finalised before the exam.(d) Software Development II usually has one of the highest pass rates in third
year.(e) The course code is ELEN3009.
Course Conclusion 13 / 19
Sample MCQ Question With Answers
1 Which of the following statements are true? (5 marks)(a) [+3] The lecturer’s office is on the second floor of the building.(b) [−1] Biomedical engineers study Software Development II in their third year
of study.(c) [−2] The lab marks are finalised before the exam.(d) [−2] Software Development II usually has one of the highest pass rates in
third year.(e) [+2] The course code is ELEN3009.
Note that the sum of the correct answers equals the sum of the incorrect answers.
Course Conclusion 14 / 19
Exam Tips
Leave the design question till last.Don’t spend more than 50 minutes on the MCQDon’t forget to fill in your student number on the MCQ cardFor descriptive questions, a mark is normally assigned for each point that needs tobe mentioned in the answerFor unit tests, a mark is assigned for the test name, and at least one mark is forthe implementationWrite the question numbers on the front page of the script
Course Conclusion 15 / 19
Looking Ahead To Fourth Year
Data Intensive Computing for Data ScienceParallel computing platforms/file systemsShared memory/concurrent programmingIn-memory databasesData mining/machine learning/data visualisation
Software Development III — Modern software developmentAgile development processWeb development - Javascript and Node (asynchronous/functional)Collaborative software development
Course Conclusion 16 / 19
Beyond Undergrad
MSc research projects in big data, bioinformatics, empirical software engineeringresearch, software engineering education, telecomms, energy management, …
Course Conclusion 17 / 19
A Career in Software Engineering
“ This is not the end. It is not even the beginning of the end. But it is,perhaps, the end of the beginning.” — Winston Churchill
Course Conclusion 18 / 19