Prerequisite Modules
Description
This module enhances and expands a
theoretical and practical understanding of the software development
lifecycle as an engineering discipline. Students are expected to
appreciate and understand the strengths and weaknesses of differing
approaches. Students should be proficient in the use of a range of
modern software tools.
Aims
On completion of this module, the
learner will: have a comprehensive knowledge of the various software
process models and development methodologies; be able to compare and
contrast the different approaches to systems development; be able to
demonstrate a practical knowledge of the various techniques of the
development of a software system through a development lifecycle; have
a comprehensive knowledge of support activities such as project
management, validation and verification, configuration management,
quality assurance.
Learning Outcomes
On successful completion of this
module, the student will be able to:
-
Identify and critically evaluate
the various software process models and development methodologies.
-
Compare and contrast the different
approaches to systems development.
-
Demonstrate a practical knowledge
of the various techniques of the development of a software system
through a development lifecycle.
-
Evaluate and develop appropriate
verification, validation and testing strategies.
-
Evaluate the challenges and
approaches to accessible systems design.
-
Evaluate and be proficient in use
of the various software tools.
-
Demonstrate a comprehensive
knowledge of support activities such as project management,
validation and verification, configuration management, quality
assurance.
Learning and Teaching Methods
Lectures, self-study, labs,
tutorials, and any combination of discussion, case study,
problem-solving exercises, readings, seminars, and computer-based
learning.
Content
Process models and their
importance: Waterfall model, Evolutionary
Development, Incremental Process Models, Component Based
Development, Formal methods, The Unified Process, comparison of
models and approaches.
Development methods and
techniques: Structured Methods and
Techniques e.g. SSADM Dataflow diagrams, Entity Relationship diagrams,
Entity Life Histories, etc.; Object Oriented Methods and Techniques,
e.g. UML techniques; Formal Methods, e.g. Z.
Software development life cycle:
A comprehensive review of each traditional life cycle phase including
requirements analysis and specification, design, implementation,
validation and verification, installation and maintenance; and each
object oriented life cycle phase including inception, elaboration,
construction and transition, covering concepts, different techniques
used and issues involved in each phase; accessible software
development, design for all / universal design.
Project management:
Risk management, team management, cost estimation, estimation models
(e.g. COCOMO), project planning and scheduling, project monitoring and
control.
Configuration management:
Configuration identification, the configuration management process,
version control, change control, defect tracking, configuration
management software tools. Verification, validation and testing: the
review process, the testing process, test strategies, system testing,
model testing, testing tools, the management of testing.
Quality assurance and process
improvement: Software quality assurance,
quality factors, software reviews, software process metrics, software
process assessment techniques, process improvement methods (e.g.
Capability Maturity Model), standards used in process improvement e.g.
SPICE, the ISO quality standards.
Advanced topics:
Legacy systems, re-factoring, computer aided software engineering,
component-based development.
Assessment
The methods of assessment to be
used to measure the learning objectives stated above are written
examination and continuous assessment including one or more of
assignment, essay, problem-solving exercise, oral presentation, and
class or lab tests.
-
Continuous Assessment: 30%
-
Examination: 70%
Recommended
Reading
-
Sommerville I., (2004), Software
Engineering, 7th Edition, Addison Wesley.
-
Pressman R., (2005), Software
Engineering: A Practitioner's Approach, 6e Ed. McGraw-Hill.
-
IEEE Xplore:
http://ieeexplore.ieee.org/
-
Trace Center Wisconsin:
http://trace.wisc.edu/
|
|
For more information contact
Ciarán O'Leary
|