Software development and testing

Објавено: June 28, 2022
1. Course Title Software development and testing
2. Code 4ФЕИТ07З021
3. Study program КТИ
4. Organizer of the study program (unit, institute, department) Faculty of Electrical Engineering and Information Technologies
5. Degree (first, second, third cycle) First cycle
6. Academic year/semester IV/7 7. Number of ECTS credits 6
8. Lecturer D-r Marija Kalendar
9. Course Prerequisites Passed: Data modeling and database systems, Data structures and algorithm analysis

10. Course Goals (acquired competencies): Introduction to concepts of software development and working in teams. Learning the process of software solutions design and delivery to the client. Testing and reliability concepts.

Upon completion the student will have the competencies to: know and use elements for designing (complex) software solutions; have basic knowledge for writing feasibility studies for software development; to work in a team for designing and developing (complex) software solutions; know and use the elements for testing and providing quality software; know the basics and provide reliability and support in the development of software solutions.

11. Course Syllabus: Software design and development. Introduction. Concepts of software design and building. Overview of software projects. Processes and methods for software development. Feasibility studies. Project management. Requirements and requirements analysis. User experience. System design: architecture, security, performance. System development: models for design, development, reuse and design templates. Documenting code. Organizing projects and working with teams. Code versioning.
Reliability and testing.
Debugging without tools (debuggers). Generating tests. Bugs detection. Monitoring and deployment. Code isolation. Black box concept and static code analysis. Templates. Dynamic analysis. Implement, test and troubleshoot.
12. Learning methods: Lectures, Auditory and Laboratory exercises
13. Total number of course hours 2 + 2 + 1 + 0
14. Distribution of course hours 180
15. Forms of teaching 15.1. Lectures-theoretical teaching 30
15.2. Exercises (laboratory, practice classes), seminars, teamwork 45
16. Other course activities 16.1. Projects, seminar papers 40
16.2. Individual tasks 20
16.3. Homework and self-learning 45
17. Grading 17.1. Exams 0
17.2. Seminar work/project (presentation: written and oral) 50
17.3. Activity and participation 10
17.4. Final exam 40
18. Grading criteria (points) up to 50 points 5 (five) (F)
from 51to 60 points 6 (six) (E)
from 61to 70 points 7 (seven) (D)
from 71to 80 points 8 (eight) (C)
from 81to 90 points 9 (nine) (B)
from 91to 100 points 10 (ten) (A)
19. Conditions for acquiring teacher’s signature and for taking final exam Laboratory exercises
20. Forms of assessment The exam consists of two parts (Can be completed as two partial exams):
First partial exam – theoretical part: Test questions and problems (70 min)
and
Second partial exam – practical part: Finishing a practical team project.
The use of books, scripts, manuscripts or notes is partially allowed during the exam, but the use of calculators, mobile phones, tablets or any other electronic devices is not allowed.
21. Language Macedonian and English
22. Method of monitoring of teaching quality Internal evaluation and surveys
23. Literature
23.1. Required Literature
No. Author Title Publisher Year
1 Roger Pressman, Bruce Maxim Software Engineering: A Practitioner’s Approach 9th Ed. McGraw-Hill Education 2019
2 Ian Sommerville Software Engineering 10th Ed. Pearson 2015
3 Paul C. Jorgensen, Byron DeVries Software Testing: A Craftsman’s Approach, 5th Ed. Auerbach Publications 2021
23.2. Additional Literature
No. Author Title Publisher Year
1 S.J.Metsker, W.C Wake Design Patterns in Java, 2nd Ed. Addison-Wesley Professional 2006
2 JJ Shen Software Testing: Techniques, Principles, and Practices ‎ Independently published 2021