SOFTWARE ENGINEERING
Course Syllabus
SOFTWARE ENGINEERING
 - The nature of software
- Theoretical models
-  The software crisis
-  The cost of maintenance
- The cost of quality
SOFTWARE ENGINEERING
KEY PRACTICES
 -  The multidisciplinary nature of software design
-  Team work
-  Productivity
-  Testing
-  Product maintenance
-  Software product life cycle
 SOFTWARE DEVELOPMENT
MODELS AND METHODS
 -  Design principles (transparency, separation of
     concerns,abstraction, modularity and development by incrementalmethods)
- OO notation for describing software components and
     architecture
- OO approaches such as the UML modelling of use cases
     for a logical/end-user view, system components and architecture for the
     development view, behavior and deployment for process and physical
     implementation views
VALIDATION,VERIFICATION, ANDTESTING
 -  Product and process visibility
-  Traceability in software systems and processes
 SOFTWARE ENGINEERING
TOOLS AND ENVIRONMENTS
 - Upper and lower CASE tools
-  Role of the repository for supporting incremental
     development
-  Software reuse and evolution
PROJECT MANAGEMENT
 - Project estimating and project planning
- Management and maintenance of software products in the
- consumer marketplace
-  Total cost of system ownership
-  Software life-cycle cost modelling
-  Project development cost modelling
Project and product risk management