System development life cycle (SDLC); waterfall and iterative approaches of developing software; agile software development; requirements engineering; software design; software project management including the concepts about cost and time estimation; software testing; use of Unified Modeling Language (UML) to design software