(Course includes examination fee)
The Systems Development Essentials using Agile course is aimed at both existing and prospective systems developers as well as Business Analysts wishing to gain an overview of the issues and concepts involved in developing quality solutions that satisfy business requirements, using Agile approaches. The course studies a number of systems development life cycles, both defined and evolutionary, and examines the context in which different lifecycles could be applied before focusing in detail on an Agile approach.
Key areas include:
- Examining how the systems development effort can be organised (defined, development & deployed).
- Distinguishing between different lifecycles approaches such as linear and evolutionary.
- Exploring various agile approaches (SCRUM, XP, DSDM, RUP) and considering the roles and principles for each.
- Understanding requirements, stakeholders and roles in an agile environment.
- Interpreting UML techniques such as use cases and class diagrams and understanding their application in agile development.
- Considering techniques that support iterative development such as prototyping, hothousing and scenarios.
- Testing in an agile environment.
- Approaches for implementation, deployment and support of the system.
- Characteristics of software quality
- The purposes, objectives and tasks of systems development
- Roles and responsibilities in systems development
- Technical and interpersonal skills of the business analysts and solution developers
- Enterprise, systems and infrastructure levels of architecture
- Inputs at an enterprise level
- Inputs at system and infrastructure level
- Model Driven Architecture
- Bespoke development
- Commercial off the shelf (COTS) software package solutions
- Configuring and customising COTS software package solutions
- Component-based systems development
- Service-based solutions and other approaches
- Evolutionary prototyping
Systems development lifecycles
- Waterfall model
- V model
- Incremental model
- Spiral (evolutionary) model
- Advantages and disadvantages of each approach
- Selection of an appropriate development approach
Methods and approaches
- Detailed study of the Agile approach including life cycle, deliverables and roles
- Iterative systems development using the DSDM Atern methodology
- Other agile development methodologies (The Unified Process (UP), Scrum, eXtreme Programming)
- Models of the Unified Modeling Language (UML)
- Interpretation and principles of:
- Use case diagram
- Use case description
- Class diagram
- State machine diagram
- Validating models using a CRUD matrix
Requirements in an Agile environment
- Fact finding approaches:
- Scenario analysis, storyboarding, user stories and hot-housing
- Model office and focus groups
- Functional requirements definition
- Non-functional requirements definition
- Documenting & prioritising requirements
- Human aspects of systems investigation and introducing change
Iterative systems development
- Features of iterative development approach
- Categories of prototype
- Prototype development plans
Systems design, implementation and maintenance
- Design principles and constraints (legal, ethical, financial)
- Systems deployment and hand over
- Post-implementation reviews
- Different types of maintenance
- Estimation and development planning
- Definitions of software quality
- The V model
- Requirements-driven testing
- Static testing: types of walkthrough and inspection
- Post-project reviews
CASE and CAST tools
- Features of Computer-aided Software Engineering (CASE) and Computer-aided Software Testing tools (CAST)
- Life-cycle coverage
- Requirements traceability
- Advantages and disadvantages of software development support tools
This course prepares delegates to sit the one-hour, open book, examination leading to the certificate in Systems Development Essentials offered by BCS, The Chartered Institute for IT. The certificate is a core module in the BCS Diploma in Solution Development and is also a specialist practitioner module in the BCS Diploma in Business Analysis.