|
Course Title |
Software Architecture, Process and Management |
||
|
Description |
Large-scale systems differ from small-scale system in the challenges they pose in capturing and managing the process of delivering systems that conform to, quality attribute requirements (e.g. availability, performance, security). Software Architecture provides a framework for managing these aspects of systems. This course introduces Software Architecture concepts and provides experience of the use of Software Architecture in the development process and management of |
||
|
NQF Level |
Level 8 |
||
|
Notional Hours |
180 |
||
|
NQF Credits |
18 |
||
|
Prerequisites |
None |
||
|
Standard Type (Core, fundamental, elective) |
Fundamental |
||
|
Learning Outcomes/Specific Outcomes |
Upon completion of the course learners will be able to: · Integrate knowledge of Software Architecture to capture Quality Attribute requirements for a system · Evaluate proposed architectures against these requirements and synthesise options for improvement · Analyse and justify complex trade-off decisions between competing software architectures · Evaluate the strengths and weaknesses of software architecture in support of particular approaches to design, process and management for a particular system and · Make recommendations on the choice of process for that system · Working in a group to critically reflect on aspects of Software Architecture literature and practice to create a resource that support their learning in Software Architecture |
||
|
Course Content |
· Software Architecture: Quality Attributes; Large-scale systems; Quality Attribute Scenarios · Architectural Tactics; Design Checklists; Trade-offs; Architectural Patterns; Product Lines; Exemplar · Quality Attributes (Availability; Performance; Security; Testability; Usability) · Case Studies: (Apache, Linux, Real-time Architecture, Medical Systems, Banking Systems) · Software Architecture in the Development Process: Architecture in Processes (Traditional; Vmodel, Risk-centric, Agile, Process Improvement, Modern Developments (e.g. DevOps) · Management Aspects: Tools through the process; planning; tracking; cost management; people and teams · Relevant Quality Assurance Agency (QAA) Computing Curriculum Sections: Professionalism, Software Engineering, Systems · Analysis and design |
||
|
Methods of Facilitating Learning |
The course can be inter alia facilitated through the following learning activities: · Lectures · Assigned readings · Discussions (all learners are expected to participate) · Individual or group class presentations · Assignments and tests · Field work/ excursions · Case Studies · Simulations · Power point presentation
|
||
|
Assessment Strategies |
The course will be assessed using a combination of Continuous Assessment and an end-of-semester examination. Continuous Assessment is made up of the following:
Continuous Assessment : 40%
· Tests · Assignments/Projects · Exercises · Quizzes · Worksheets · Practical exercises
Final Examinations: 60% Time allocation per question paper: between 2 and 3 hours
· The final examination will test the knowledge, understanding and skills outcomes in any given year on the course content covered. · The intention of the examination in its formulation is to avoid predictability and encourage students to prepare for all syllabus outcomes. · The level of complexity of a paper/s will be maintained consistently from year to year. · The intention of the examinations is to assess the following objectives: Ø Knowledge and Understanding Ø Application Ø Analysis Ø Evaluation · The examinations may include a range and balance of question types, such as multiple-choice questions, short-answer free response questions, open-ended questions and extended responses including essays. These will be determined by the Department in which the subject resides and with the approval of the Examinations Committee. The demands of the examination in terms of the number and length of student responses required, the amount of reading time provided and the complexity of the questions will be appropriate for the time allocated for the examination. |
||
|
Prescribed Textbooks |
1. Stallings, W.(2015). Operating Systems. 2. Bass, L., Weber, I., & Zhu, L. (2015). DevOps: A Software Architects Perspective (1st ed.). Addison-Wesley Professional. |
||
|
|
|
||
|
Course Title
|
Software Design and Modelling |
||
|
Description |
This module introduces learners to the design and modelling of software systems using object-oriented techniques. Learners will start by exploring the use of modelling in software development. They will also learn to document designs in the Unified Modeling Language (UML), with emphasis on class, sequence and state diagrams and the Object Constraint Language (OCL). Learners will use modern model-driven development tools and discuss their strengths and weaknesses. Criteria that make one design better than another in context and introduce design principles and patterns that capture good practice will be covered. |
||
|
NQF Level |
Level 8 |
||
|
Notional Hours |
180 |
||
|
NQF Credits |
18 |
||
|
Prerequisites |
none |
||
|
Standard Type (Core, fundamental, elective) |
Fundamental |
||
|
Learning Outcomes/Specific Outcomes |
Upon completion of the course learners will be able to: · Design simple object-oriented systems · Create, read and modify UML diagrams documenting designs, both on paper and in an appropriate tool · Determine whether a UML model and a body of Java code are consistent; if they are inconsistent, identify the inconsistencies precisely and propose remedies · Evaluate and evolve object-oriented software designs, making use of common design patterns if appropriate · Discuss the use of modelling and model-driven development tools in software development, e.g. why and how models of software can have varying degrees of formality, capabilities and limitations of the tools |
||
|
Course Content |
· Design and modelling in the context of the various software engineering processes · Produce designs and to document them using UML models, both on paper and with an appropriate tool. · The different affordances of these modes and how models may be used purely informally, as reviewed documentation for designs, and/or in model-driven development in which models are formal artefacts and code may be generated from them · Principles a good object-oriented design should follow · Common design patterns and their role in development and learning · how can the cost-benefit ratio of modelling be improved, now and potentially in the future · Model transformations, both model-to-model and model-to-text (e.g., code generation) and be introduced to current tools supporting these · The role of domain specific languages and the integration of model driven development with agile processes. The deficiencies as well as the benefits of the fast-changing state of the art · Principles of dynamic design · Domain specific languages · Model driven development · The future of software engineering |
||
|
Methods of Facilitating Learning |
The course can be inter alia facilitated through the following learning activities: · Lectures · Assigned readings · Discussions (all learners are expected to participate) · Individual or group class presentations · Assignments and tests · Field work/ excursions · Case Studies · Simulations · Power point presentation
|
||
|
Assessment Strategies |
The course will be assessed using a combination of Continuous Assessment and an end-of-semester examination. Continuous Assessment is made up of the following:
Continuous Assessment : 40%
· Tests · Assignments/Projects · Exercises · Quizzes · Worksheets · Practical exercises
Final Examinations: 60% Time allocation per question paper: between 2 and 3 hours
· The final examination will test the knowledge, understanding and skills outcomes in any given year on the course content covered. · The intention of the examination in its formulation is to avoid predictability and encourage students to prepare for all syllabus outcomes. · The level of complexity of a paper/s will be maintained consistently from year to year. · The intention of the examinations is to assess the following objectives: Ø Knowledge and Understanding Ø Application Ø Analysis Ø Evaluation · The examinations may include a range and balance of question types, such as multiple-choice questions, short-answer free response questions, open-ended questions and extended responses including essays. These will be determined by the Department in which the subject resides and with the approval of the Examinations Committee. The demands of the examination in terms of the number and length of student responses required, the amount of reading time provided and the complexity of the questions will be appropriate for the time allocated for the examination. |
||
|
Prescribed Textbooks |
Bob Hughes, (2009). Software Project Management.
|
||
- Lecturer: Stanford Musarurwa