Software processes; component based development; software integration and software reuse. Formal methods in software engineering: formal specification; formal specification languages, Examples of formal specifications. Software cost estimation techniques: algorithmic cost modeling. Quality management and software measurement; Software evolution; software re-engineering; reverse engineering;
Architectural design; distributed systems architectures.Service-oriented software engineering; Aspect-Oriented software engineering.