Course Description
This 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 in an Agile environment.
The course studies a number of systems development life cycles and the situations in which they are most appropriate before focusing in detail on an Agile approach.
Performance Based Objectives
- examining how the systems development effort can be organised distinguishing between generic lifecycles
- exploring the DSDM Atern approach and roles
- looking at other Agile methods such as Scrum
- interpreting UML techniques, such as Use Case Diagrams and Class Diagrams
- considering other techniques that support iterative development, such as facilitated workshops, scenarios and hothousing
Course content
Introduction
- 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
Systems architecture
- Enterprise, systems and infrastructure levels of architecture
- Inputs at an enterprise level
- Inputs at system and infrastructure level
- Model Driven Architecture
Development approaches
- 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)
Modelling techniques
- 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 approachesWorkshops, Interviewing, Questionnaires, 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
- Prototyping
- Categories of prototype
- Timeboxing
- 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
Quality assurance
- 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 Computeraided Software Testing tools (CAST)
- Life-cycle coverage
- Requirements traceability
- Advantages and disadvantages of software development support tools
BCS certificates
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.