Undergraduate Degree Programme Handbook 2018/2019 - page 103

58
SOFTWARE MAINTENANCE AND EVOLUTION
Credit:
3
Course Pre-requisite(s):
None
Medium of Instruction:
English
Learning Outcomes
1. Recognize the fundamentals of software
maintenance, maintenance processes and
activities.
2. Distinguish the main categories of maintenance
and techniques that are associated with them.
3. Apply suitable techniques and tools for
performing software maintenance activities.
4. Assess various strategies for evolving a legacy
software system.
Synopsis of Course Content
This course mainly covers software maintenance
fundamentals, key issues in maintenance,
maintenance process, techniques for maintenance
and evolution in maintenance activities. Topics
include definitions, terminology and categories of
maintenance (Corrective Maintenance, Perfective
Maintenance, Adaptive Maintenance, Preventive
Maintenance); evolution of software; technical and
management issues in maintenance (such as
technical issues related to testing, impact analysis
and maintainability; management issues such as
staffing, process, organizational aspects, and
outsourcing and offshoring); maintenance cost
estimation and measurement; maintenance
processes and activities (such as maintenance
planning
activities,
software
configuration
management (configuration item, processes and
activities in configuration management, patches),
activities for software quality); techniques for
maintenance such as program comprehension,
reengineering, reverse engineering, migration and
retirement; evolution of legacy systems; usage of
tools related to maintenance (such as for program
comprehension, reverse engineering, configuration
management).
Assessment Methods
Continuous Assessment: 50%
Final Examination: 50%
WIF3006
COMPONENT-BASED SOFTWARE
ENGINEERING
Credit:
3
Course Pre-requisite(s):
WIA2002 Software Modelling
Medium of Instruction:
English
Learning Outcomes
1. Explain fundamental concepts, principles and
techniques in software reuse
specifically on
development for reuse, development by reuse
and component-level design.
2. Develop component-based application using
various component models and programming
APIs.
3. Incorporate changes to the component
application using component-based approach.
Synopsis of Course Content
This course covers the fundamental concepts and
principles of software reuse, component-level
development, development/design for reuse,
development/design by reuse, and design patterns.
It includes the definition and explanation of the nature
of components, components interfaces, Interfaces as
contracts, benefits of components, component
design and assembly. It introduces the architecture
of component-based systems, middleware, object-
oriented paradigm within middleware, component-
based software engineering models such as SCA,
Spring, OSGi, EJB and also covers component-
based computing, API programming, class browsers
and related tools, as well as debugging in the API
environment.
Assessment Methods
Continuous Assessment: 50%
Final Examination: 50%
WIF3007
DESIGN PATTERNS
Credit:
3
Course Pre-requisite(s):
None
Medium of Instruction:
English
Learning Outcomes
1. Classify a design pattern into the correct
category.
2. Identify the design patterns used in software
systems.
3. Apply suitable design patterns in developing
software.
Synopsis of Course Content
This course covers the different design patterns
under different categories, and the benefits of using
design patterns in software development. It also
covers common design patterns in-depth (for
examples, observer, decorator, factory, singleton,
command, adapter, façade, template method,
iterator, composite, state, and proxy). It also covers
refactoring existing code to design patterns.
Assessment Method
Continuous Assessment: 50%
Final Examination: 50%
WIF3008
1...,93,94,95,96,97,98,99,100,101,102 104,105,106,107,108,109,110,111,112-113,114-115,...272
Powered by FlippingBook