|
|
Software engineering: theory and
application [139]
This syllabus covers the methods,
attitudes and values which underlie professional contemporary software
systems development. The emphasis is on how to undertake formal software
development through requirements specification, design and
implementation, but within a broader understanding of software
engineering practices.
Section 1: Software
engineering process
-
The changing pressures on software
engineering practices: History of the field, definition of software,
the software crisis.
-
The Process for Developing Software
and its importance
-
The Capability Maturity Model
-
The traditional software engineering
process: The lifecycle model, evolutionary software development,
incremental software development, spiral model. Prototyping
-
Rapid software development
-
Internet speed web based application
development
-
End-user development.
-
Agile methods
-
Extreme programming
-
Refactoring
Section 2: The practices of
software engineering
-
Introduction to structured vs.
object-oriented paradigms
-
Acquiring requirements
-
Specifying requirements and design
(both structured and object-oriented)
- structured approaches: ER diagram, data flow diagrams, data
dictionary
- OO approach (using UML): use-case diagrams, class diagrams, object
sequence diagrams, state-chart diagrams
-
Features of good design
-
Coding and configuration management
- Implementation and testing (both
structured and object-oriented)
- choice of programming languages and techniques
- test planning
- white box and black box testing
- testing automation
- implementation
- Maintenance and software evolution
- Systems re-engineering for Legacy systems
- Reuse
- reasons for reuse
- concept reuse – patterns, configurable systems products and program
generators
- component-based software engineering
- Computer Aided Software Engineering
(CASE) Tools
- Documentation and help systems
- Project management in software
engineering
- Documentation and help systems
- Managing software engineering projects
|