Study units
Generally you can expect to do well if you have the prerequisites for this course and follow the progress chart at the beginning of each unit. The study units guide you in your study of the textbook. The study units also guide you in studying the selected technical papers included as supplementary readings.
After you have studied the course materials, you will benefit from studying software engineering materials that can be found in the library and on the Internet, in professional journals, and so on. Don't forget that our HKMU Electronic Library allows you to read books via the Internet. Learning from additional materials on your own is essential in becoming a competent software engineer. Due to the volume of the materials already included in this course, you are not required to study extra materials you found for yourself, but it is encouraged.
Each study unit is organized into a number of sections. Some sections have self-test exercises to help you reinforce what has been covered or further develop from there. You will benefit more by trying the exercises rather than just reading the answers.
Unit 1: Introduction to Software Engineering and UML
This unit describes software engineering concepts and development activities. UML (Unified Modeling Language) is introduced as a notation for expressing models. You will install and learn to use a software tool for drawing UML diagrams.
Unit 2: Requirements elicitation and analysis
This unit describes requirement elicitation and analysis concepts. You will learn how to perform and manage activities in requirement elicitation and analysis. The activities include the identification of actors, use cases and scenarios. After refinement of use cases, you will identify entity objects, boundary objects and control objects with associations and attributes. You will create sequence diagrams from use cases and model state-dependent behaviour of individual objects.
Unit 3: System design
This unit describes system design concepts such as subsystems, coupling, and architectural styles. You will learn to perform system design activities such as identifying design goals, persistent data and boundary conditions. You will learn how to document and communicate system design.
Unit 4: Reuse and object design
This unit describes reuse concepts of design patterns and components. You will learn to select appropriate design patterns and components. You also learn to specify object interfaces in terms of signatures, visibilities, pre-conditions, post-conditions and invariants for reusability.
Unit 5: Implementation and testing
This unit describes the implementation concepts of model transformation, refactoring, and forward and reverse engineering. You will learn to manage the documentation and assign responsibilities. The unit also describes testing concepts such as test cases, test stubs and test drivers. You will study the testing activities of inspection, usability testing, unit testing, integration testing and system testing. At the conclusion of the unit, you will be able to plan and document testing.
Unit 6: Change management
This unit describes how to track software development decisions. You will learn about configuration management concepts of versioning, change requests, releases, and promotions of new releases. At the end of the unit, you will be able to perform configuration management activities of promotions, release, branch and variant management.
Unit 7: Project managing
This unit describes the project organization, communication and management concepts. The various project management activities we will cover include planning, organizing, controlling and terminating. We also cover risk management activities such as risk identification, analysis, prioritization, abatement and mitigation.
Unit 8: Software life cycle and methodologies
This unit describes the IEEE 1074, the standard for software life cycle processes. We will cover the capability maturity model (CMM), personal software process and team software process. Methodologies differ in the amount of planning, reuse, modelling, control and monitoring. We will cover the different methodologies of Rational Unified Process (RUP), Extreme Programming (XP), Agile Development, SSADM and PRINCE2.
Unit 9: Measurement
This unit describes the use and theory of measurement. Various metrics are covered, such as function points, OO metrics, and lines of code (LOC) and cyclomatic numbers. We discuss the establishment of measuring programs using GQM. We conclude the unit with ISO quality standard.
Unit 10: A roadmap
This unit describes the code of ethics endorsed by professional software engineering bodies. You will explore ways of enriching your software engineering skills beyond this course.