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