Module Learning Strategies
The learning strategy for the module requires students to commit 300 learning hours, of this there will be 75 hours of class support and 225 hours of independent and self directed study.
The lectures will be interactive with student participation in discussion about Software Architecture, Artificial Intelligence and Embedded System addressing development solutions and testing using simulation and case studies. Students will be allocated to small groups for various activities and workshop sessions. Tutorials are used to ensure that students understand the material and its relevance to the programme. Within the module, students will undertake individual presentations. These will be used to highlight understanding of module content, planning and implementation of ideas and innovations, self assessment and reflection, peer/tutor discussion and review.
For each topic, students will engage in preparation and reading prior to each seminar or practical workshop. Students will be asked to share their reading of the topic through discussion with their peer group, present their findings to the seminar group and provide feedback to other students
Module Indicative Content
Topics
Software Architecture
- Introduction to the concept of software architecture, as an aid to software design, reuse and evolution.
- Identifying the key elements of software architectures
- Recognize architectural styles of existing software systems
- Describe the software architecture of a non-trivial system accurately
- Construct systems that satisfy an architectural description
- How software architecture aids design, reuse and evolution of software.
Investigates and apply architectural styles, including:
- Main program / sub program
- Object oriented
- Layered systems
- Independent component architectures
- Pipe and filter systems
- Implicit invocation
- Data-centred
- Service-oriented architecture
A number of architectural patterns are also considered, including:
- Broker
- Interceptor
- Model view controller
- Microkernel
Architecture solutions, including novel styles and patterns, are then explored for emerging software systems, currently including:
- Pervasive systems
- Mobile computing systems
- Service oriented systems
- Embedded systems
- Grid computing systems
Artificial Intelligence
- Characterisations of AI
- Intelligent agents
- Search
- Knowledge representation
- Game playing
- Automated Reasoning
- Predicate logic representations
- Making deductive inferences
- The resolution method
- Resolution theorem proving
- Machine learning
- Overview of machine learning
- Decision tree learning
- Two layer artificial neural networks
- Multi-layer artificial neural networks
Embedded System
- Introduction to reactive, real-time and safety-critical systems: examples and problems.
- Timing, Clocks, Delays and Timing Constraints.
- Sensors, polling and interrupt handling: the engineering of reactive systems.
- Interacting with embedded systems (using device drivers & interrupt handlers)
- Reliability and fault-tolerance in safety critical systems.
- Performance analysis and Software engineering for embedded systems
- Interacting with hardware and Debugging low-level systems
- Introduction to firmware programming and scheduling in soft real-time systems.
- Hard real-time on stock systems and Real-time operating systems.
- Real-time in embedded systems.
- Software engineering for real-time systems.
- Soft real-time in distributed systems.
Module Additional Assessment Details
Assessment methods which enable student to demonstrate the learning outcomes for the Module:
Laboratory-based project requires researching, analysing, specifying, designing, coding, testing and evaluating your own project. (1500 words report)
LO 1,2,6
Examination (1.5 hours)
LO 3,4,5
To pass this module student must obtain overall 50% marks
Module Texts
Shaw, M and Garlan, D (1996)Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall
Bass, L Clements, P Kazman, R (2003) Architecture in Practice, Addison-Wesley
Buschmann, et el. (1996) A System of Patterns: Pattern-Oriented Software Architecture : Wiley
Scmidt, D Stal, M Rohnert, H Buschman, F, (2000) Pattern-Oriented Software Architecture, Wiley
Sommerville, I (2006) Software Engineering, Addison Wesley
Pressman, R. (2005) Software Engineering - A Practitioner's Approach, McGraw Hill
Taylor, Richard N., Medvidovic, Nenad, Dashofy, Eric M., (2010) Software architecture: foundations, theory, and practice
Bass, Len, Clements, Paul, Kazman, Rick, (2003) Software architecture in practice
Pilone, Dan, Pitman, Neil, 2005 UML 2.0
Gorton, Ian, (2011) Essential software architecture
Russel, S. and Norvig, P., (2003), Artificial Intelligence A Modern Approach, Prentice Hall
Ning; Z. and Jiming, L., (2003), Web Intelligence, Springer
Jane W. S. Liu, (2000) Real-Time Systems, Prentice Hall
Bill Gallmeister, (1995) POSIX.4: Programming for the Real-World
Nickerson, R (2000)Business and Information Systems, Prentice Hall
Journals
Journal of Systems Architecture - Elsevier
Microsoft Architecture Journal
Software Architecture - The Journal of Object Technology
JAIR
Journal of Artificial Intelligence Research
Artificial Intelligence - Journal - Elsevier
International Journal of Embedded Systems - Inderscience Publishers
EURASIP Journal on Embedded Systems - Springer
IEEE Xplore - Embedded Systems Letters, IEEE
Journal of Embedded Computing | IOS Press
Journals - Microsoft Academic Search
International Journal of Embedded Systems