UNIVERSITY OF ZIMBABWE
DEPARTMENT OF ELECTRICAL ENGINEERING
SOFTWARE ENGINEERING 2- EENG305 COURSE OUTLINE
Pre-requisite EENG205
Total contact time: 50 Hours
COURSE OBJECTIVES
This course delves into advanced topics in industrial software engineering, serving
as the second installment in a three-part series. It expands on foundational concepts
introduced in EENG205, with a strong emphasis on software reuse—including
components and applications—as a critical aspect of modern software development.
Key focus areas include:
Distributed systems and client-server architectures.
Service-oriented architectures (SOA), bridging software reuse and distributed
systems.
Designed to be completed in 12–14 weeks, the course equips students with practical
skills and theoretical knowledge to address complex engineering challenges in
industrial software contexts.
COURSE CONTENT
Topic Hours
Introduction 7 hours
Software Reuse 8 hours
Component-Based Software Engineering 5 hours
Distributed Software Engineering 5 hours
Service-Oriented Architecture (SOA) 10 hours
Embedded Software 5 hours
Aspect-Oriented Software Engineering 5 hours
Human Machine Interface and User Experience 5 hours
COURSE OUTCOMES
1. Software Reuse
Understand and apply application frameworks for efficient software
development.
Explore the concept of software product lines for reusable asset
management.
Utilize COTS (Commercial Off-the-Shelf) products to enhance reuse in
software projects.
2. Component-Based Software Engineering
Define components and analyze component models for modular design.
Study component-based development processes to build scalable systems.
Master techniques for component composition to integrate reusable
modules.
3. Distributed Software Engineering
Examine client-server computing architectures and their applications.
Identify and address challenges in distributed systems, such as latency
and consistency.
4. Service-Oriented Architecture (SOA)
Design and implement reusable services for flexible system integration.
Learn service engineering principles to develop interoperable solutions.
5. Embedded Software
Apply embedded systems design methodologies for resource-constrained
environments.
Implement architectural patterns tailored to embedded applications.
Perform timing analysis to ensure real-time performance.
Evaluate real-time operating systems (RTOS) for embedded software.
6. Aspect-Oriented Software Engineering
Achieve separation of concerns to improve code modularity.
Understand core concepts like aspects, join points, and pointcuts.
Apply aspect-oriented techniques to address cross-cutting concerns in
software engineering
7. Human Machine Interface and User Experience
Fundamentals of HMI Design
Interface Types & Technologies
Design Process & Evaluation
Applications & Challenges
METHODS OF ASSESSMENT
One presentation, one assignment and one project
Course work 25%
Final Examination 75%
Reference Book
1. Sommerville, I., Software Engineering, 10th edition, Addison Wesley, 2016