Courses For Software Developers

For Software Developers

Suggested Knowledge & Skills

UML based Analysis and Design

  • Solid understanding of Unified Modeling Language including
    • UML models & how to structure them
    • Use Case diagrams
    • Class diagrams
    • Activity diagrams
    • Sequence diagrams
    • State charts
  • Proficiency in using a systematic analysis & design method
  • Ability to generate artifacts from UML models including
    • analysis and design specification documents
    • code, and
    • tests

Programming & meta-programming

  • Proficiency in implementation technologies
    • as prescribed by the software architecture
  • Proficiency in code generation technologies

Integration

  • Integration patterns
  • Integration technologies
    • e.g. XML, web services, messaging, event based, …

Persistence

  • Different types of data base technologies
    • and their pros and cons
  • How to abstract code and queries
    • from the persistence technology used

Develop tests

  • Write & configure functional tests
    • including unit, integration and operational tests
  • Understand how to specify test data
    • ensuring good test coverage
  • Understand quality requirements
    • and how to develop tests for them

Follow software development process

  • Ability to apply processes and use tools for
    • version control
    • code analysis
    • containerization

Role & Responsibilities

Analysis & Design

  • Refine requirements & design solution
    • across levels of granularity
  • Identify problematic requirements
    • potentially suggest alternatives to business analysis

Implementation

  • Grow proficiency in software development technologies
    • as specified by software architecture
  • Either
    • write code
      • implementing design, or
    • write & configure code generation tools
      • generating code from design
  • Analyze code quality
    • code reviews
    • code analyzers

Testing

  • Functional testing
    • Map requirements onto test logic used in
      • unit tests
      • integration tests
      • operational testing
    • Design tests data
      • guided by equivalence partitions, boundary & extreme values
  • Non-functional testing
    • Design tests and test environments
    • Implement non-functional tests
Scroll to Top