For Software Developers
Recommended Courses
Application Design & Development Frameworks
AI & Deep Learning
Programming/Implementation Languages
Software Development Processes & Testing
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
- write code
- 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
- Map requirements onto test logic used in
- Non-functional testing
- Design tests and test environments
- Implement non-functional tests