Introduction to Software Development
Principles & Processes
a course/workshop presented over two days
Presented by Mr. Ian Hirst
Course Introduction
This Introduction to Software Development Principles & Processes course is a 2-day overview of the development of software systems with a focus on leading software development and management processes and practices.
The course approaches software development from a Systems Engineering perspective (an interdisciplinary, collaborative approach to the engineering of system solutions which aims to capture stakeholder needs and objectives and to transform these into a holistic, life-cycle balanced system solution which both satisfies the minimum requirements of the stakeholders, and optimises overall solution effectiveness according to the values of the stakeholders).
Who Should Attend This Course?
This course is designed for people who are responsible for requesting, specifying, acquiring, developing, testing, using, supporting or managing software intensive systems. The types of participants who will benefit from this course include:
- Project Managers and Project Sponsors
- Software Development Managers and Team Leaders
- Software Systems Acquisition Staff
- Business staff who use Software Systems
- Staff working on Software System business cases, proposal evaluations or project plans
- Software Developers
- Business Analysts
- Test Managers and Testers
- Quality Assurance and Process Improvement Specialists
- Software Systems Managers
- Anyone wanting a broad understanding of Software Systems development processes, issues and risks.
Training Method and Materials
PPI's Introduction to Software Development Principles & Processes training delivery is a mixture of stand-up instruction, guided discussions, and individual and group exercises which are used to deliver a very practically-oriented learning experience.
Key Questions
- Why do so many software projects fail to deliver against expectations?
- What are the leading software development technical and management practices and standards?
- What are Agile development method and techniques and how do I apply them?
- How do you determine whether software requirements are adequate?
- What are the commonly used analysis and design techniques and tools?
- What are Verification and Validation and how are they integrated with other development activities?
- How should software intensive projects be planned and managed?
- How do you plan, implement, and monitor cost-effective risk management?
- What techniques are used for developing critical and trusted systems?
- What can be done to extract maximum value from technical reviews?
- What is the role of metrics in software development?
- How do you establish and maintain effective software development teams?
Introduction to Software Development Principles & Processes
Course Topics
- Introduction Why is Systematic Software Development necessary?
- Systems Engineering Life Cycle Processes
- Software Engineering Life Cycle Processes
- Software Systems Engineering Process Frameworks
- Agile Methods and Techniques
- Requirements Analysis
- Software Design
- Software Construction
- System Integration
- Quality Management
- Technical reviews
- Testing
- Other verification and validation approaches and methods
- Project Management Frameworks
- Project Management Activities
- Scope Management
- Risk Management
- Process Improvement and CMMITM
- Effective Team Management
Introduction to Software Development Principles & Processes Training Objective
Complex business, defence, aerospace, transportation and other technology-based projects, typically involve large scale software development. Software development issues, software support issues and related risk are now determining the success or failure of many projects.
At the conclusion of this course, you will:
- be aware of the major issues in contemporary software development and maintenance, as related to complex and critical software systems
- become more aware about the practices which typically apply in software development projects from cradle to grave
- be familiar with the mainstream views of what constitutes world leading practice in software engineering, having regard to currently used processes and standards such as ISO/IEC/IEEE 12207, other IEEE and ISO standards, the Software Engineering Institute (SEI) Capability Maturity Models, the Guide to the Software Engineering Body of Knowledge (SWEBOK), and Agile methods and techniques
- see software as a part of a larger system, and be aware of the principles of systems engineering as they are relevant to the engineering of software.
In addition, delegates who are already experienced software professionals will further develop their skills in specifying, planning and managing major software development and maintenance efforts.
Course delivery is a mixture of stand-up instruction, guided discussions, and individual and group exercises which are used to deliver a very practically-oriented learning experience.
Introduction to Software Development Principles & Processes
Course Outline
Introduction Why is Systematic Software Development necessary? (1.0 hour)
- software systems development project issues and challenges
- relationship between problem definition and stakeholder satisfaction
- the case for applying a systematic approach to software systems development
- workshop - review of software intensive projects and their outcomes
- principles for software systems development
2. Systems Engineering Life Cycle Processes (1.0 hour)
- definitions of system engineering
- systems concepts
- systems engineering lifecycle processes
- waterfall, incremental and iterative lifecycle models
- relationship to software engineering lifecycle processes
- organisations IEC, IEEE, INCOSE, SEI, ISO
- standards and guidelines - IEEE 1220, EIA/IS632, EIA 632, ISO/IEC 15288, SEBOK
3. Software Engineering Life Cycle Processes (1.0 hour)
- definitions of software engineering
- software engineering concepts
- relationship to systems engineering lifecycle processes
- organisations IEEE, ISO, SEI, PMI
- standards and guidelines - ISO/IEC/IEEE 12207, IEEE 1012, SWEBOK, ISO 15939, CMMI series, ISO 15504 (SPICE)
4. Software Systems Engineering Process Frameworks (0.5 hour)
- the ISO/IEC/IEEE 12207 process framework
- the CMMITM process framework
5. Agile Methods and Techniques (1.0 hour)
- the objectives of Agile methods
- the Agile Manifesto
- Agile development approaches
- Agile project management
- critical success factors for Agile methods
- benefits and risks associated with Agile approaches
6. Requirements Analysis (3.0 hours)
- software requirements fundamentals
- requirements processes
- requirements elicitation
- requirements analysis
- requirements specification
- requirements validation
- practical considerations
- characteristics of good requirements
- context analysis
- workshop creating a context diagram
- needs analysis
- functional analysis
- use cases
- states and modes analysis
- decision tables and trees
- writing requirements statements
- workshop writing requirements statements
- requirements documentation
- requirements management support tools
7. Software Design (2.5 hours)
- software design fundamentals
- key issues in software design
- software structure and architecture
- architectural frameworks
- UML diagrams
- Data Flow Diagrams
- workshop creating a Data Flow Diagram
- function-oriented design
- data oriented design
- object oriented design
- Service Oriented Architecture (SOA)
- design patterns
- design quality
- design documentation
- design support tools
8. Software Construction (0.5 hour)
- software construction fundamentals
- programming languages
- coding considerations
- software construction support tools
9. System Integration (0.5 hour)
- integration approaches
- web services
- XML
- interface control
- pitfalls and pointers in system integration
10. Quality Management (0.5 hour)
- the origins of quality management
- Quality Assurance and Quality Control
- ISO 9001 Quality Management Systems Requirements Standard
- software quality characteristics
- quality management techniques and tools
- verification and validation
11. Technical reviews (0.5 hour)
- formal and informal reviews
- requirements reviews
- design reviews
- code reviews
- release readiness reviews
- other reviews
- customer involvement in technical reviews
- pitfalls in conducting technical reviews
12. Testing (0.5 hour)
- software testing fundamentals
- test planning
- test Levels
- test types
- test related measures
- test documentation
- software testing tools
13. Other verification and validation approaches and methods (0.5 hour)
- Analysis
- Demonstration
- Prototyping
- Simulation
- Independent Verification and Validation
14. Process Improvement (0.5 hour)
- process assessment
- process improvement
15. CMMITM(0.5 hour)
- CMMITM terms and concepts
- improvement and CMMITM
- CMMITM model representations staged, continuous
- CMMITM disciplines and process areas
16. Course Review (0.5 hour)
About the Introduction to Software Development Principles & Processes Course Presenter
Ian Hirst is a highly experienced software engineering professional and a Certified Project Management Professional (PMP) who has worked in technology-based industry for over 30 years, in roles which have included development and support of software-intensive military embedded systems, government enterprise IT systems, and telecommunications systems.
Introduction to Software Development Principles & Processes Course Schedule
Testimonial
"The workshops were largely very useful. It was good to discuss these concepts with other delegates"
delegate, Australia
SADI Funding
Attendance at public courses and on-site delivery in Australia may be eligible for SADI funding.
This Course is available on-site
Benefits of on-site training for your organisation include:
- tailored in delivery to your industry
- savings of up to 50%
- encourages teamwork
- formal tailoring possible
Have a question about our courses?
How to Register
- 1. Fax Download a registration form from the schedule tab and fax it to us on: +61 3 9876 2664 or +1 888 772 5191 in North America
- 2. Online You may register online. This is the simplest method of registration and an invoice is issued to you via email or fax.
- 3. Phone If you prefer, you can provide your registration and payment details via phone. Call us on +61 3 9876 7345, UK +44 20 3286 1995, North America +1 888 772 5174, Brazil +55 3212 2017
Online payment soon to be available.
Training
Quicklinks
Systems Engineering NEWSLETTER
SyEN makes informative reading for the project professional, containing scores of news and other items summarizing developments in the field of systems engineering and in directly related fields.