Course Description
Calling all prospective Systems Developers and Business Analysts! Does the idea of gaining an overview of the issues and concepts involved in developing quality solutions that satisfy business requirements by using Agile approaches sound appealing to you? If the answer’s yes, then this Systems Development Essentials course is for you. You’ll study a number of systems development life cycles, both defined and evolutionary, and examine the context in which different lifecycles could be applied before focusing on an Agile approach.
Some of the key areas we’ll look at include examining how the systems development effort can be organized, understanding requirements, stakeholders, and roles in an agile environment, and considering techniques that support iterative development such as prototyping, hothousing, and scenarios.
Target Audience
Business analysts, solution developers, project managers and anyone who needs a thorough practical understanding of the various systems development approaches including the Agile framework. Systems Development Essentials is also a Specialist Practitioner module on the BCS (ISEB) International Diploma in Business Analysis.
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 approaches:
- Workshops
- 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 Computer-aided Software Testing tools (CAST)
- Life-cycle coverage
- Requirements traceability
- Advantages and disadvantages of software development support tools