Rationale
This unit will enable students to understand data structures (array, list, stack, queue, tree), the definition and significance of algorithms, algorithm design and classification, and analysis of algorithms (worst-case, estimation rules, growth rate). It will also introduce students to software engineering processes, best practices of software engineering, generic models of software development (Waterfall, Iterative, Agile), software development life cycles, Bubble Sort, elaborating modelling patterns, requirements engineering, incremental model, and evolutionary models. Students will then learn about Unified Process, Extreme Programming (XP), software requirements specification (SRS), Unified Modelling Language (UML), case diagram, sequence diagram, UML interaction diagram, state machine diagram, activity diagram, communication diagram. As part of this unit students will also gain knowledge and skills in software architecture, overall structure design, architecture design activities, architecture styles, documenting software architecture, client-server architectural patterns, broker architectural pattern, software design issues, object-oriented design principles; objects, classes, messages and methods. Finally this unit will enable students to apply object-oriented design using UML, as well as to become skilled in testing, fault-error-failure, program failure sources, testability, exhaustive testing, selective testing, white-box testing, combination testing, selective testing, control structure testing, condition testing, basis path testing, loop testing, black box testing, equivalence partitioning, boundaryvalue analysis, data flow testing, inter-class testing, behaviour testing and regression testing.
Learning Outcomes
Upon completion of this unit students will:ď‚·understand data structures and algorithms;
- Understand the concept of software engineering;
- Understand the software development life cycle and software, development models;
- Understand the concepts of software architecture;
- Understand Unified Modelling Language (UML);
- Understand object-oriented design using UML;
- understand software testing.
- Understand data structures and algorithms;;
Academic Calendar
https://moodle.mcast.edu.mt/mod/resource/view.php?id=75064
Unit Lecturer
Mario-Mallia Milanes
