Course Number: 10001
Length: 3 Days
Software Engineering Training Bootcamp
IEEE, in its standard 610.12-1990, defines software engineering as the application of a systematic, disciplined, which is a computable approach for the development, operation and maintenance of software.
Software engineering is a process of analyzing user requirements and then designing, building, and testing software application which will satisfy that requirements
No matter how you define software engineering, it’s surging popularity is undeniable. Three reasons for the popularity of software engineering: scalability, adaptability and cost.
Scalability because if the software development process were based on scientific and engineering concepts, it is easier to re-create new software to scale an existing one.
Adaptability because whenever the software process is based on scientific and engineering, it is easy to re-create new software with the help of software engineering.
Cost-wise, software engineering can save organizations money in a number of ways, including:
- Automating manual processes
- Creating custom, real-time business reports
- Keeping you from buying the wrong software
- Analyzing your business data
- Reducing risk by identifying potential problems
Increased market demands for fast turnaround time is the biggest challenges of software engineering field. Additional demands include:
- Dealing with the increased complexity of software required in new applications
- The diversity of software systems that need to communicate/operate with each other
- The need to develop trustworthy software
- The quest for increased efficiency in component-based reuse and automatic code
At the core of software engineering is the Software Development Life Cycle (SDLC). Also known as the software engineering paradigm, SDLC is the development strategy that encompasses the software process, methods and tools.
SDLC describes the period of time that starts with the software system being conceptualized and ends with the software system being discarded after usage.
Improving software engineering skills can be very beneficial for professionals other than software engineers.
For example, project managers with sharpened IT skills can better understand the projects and improve communications with the software engineers creating the projects.
It’s helpful for project managers in an IT environment to the learn the basics of programming. When you learn to code, your coding ability gives a new perspective to problem-solving. Understanding logic, at a deep level, improves problem-solving proficiency tenfold.
When you understand programming, you understand how to tell a computer to carry out a set of logical steps to reach a required outcome. When you learn to code, you will understand how to direct your team using this problem-solving skill you have learn to reach your required outcome.
Software Engineering Training Bootcamp Course by Tonex
Software engineering is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering should be an efficient and reliable software product.
Software engineers are invaluable especially since it’s not unusual for problems to arise when a software exceeds timelines, budgets or has a reduced level of quality. The software engineer ensures that the application is built consistently, correctly, on time and on budget and within requirements.
Demand for software engineering has also increased to cater to the immense rate of change in user requirements and environment on which application is supposed to be working.
Software Engineering Training Curriculum
- Browse Courses in: Software Engineering
SOFTWARE ENGINEERING TRAINING
SOFTWARE REQUIREMENTS ENGINEERING
COURSE NAME LENGTH Automotive SPICE Training | ISO/IEC 15504 3 days
COURSE NAME LENGTH Software Safety Course for Managers 2 days Software Safety Programming and Software Coding Standards 2 days Software Safety Training Workshop 2 days
COURSE NAME LENGTH Embedded Software Security Training 2 days Secure Software Development Training 3 days
As technology marches on to new challenges, advances in software accompany new architectures.
At this time in history, there are many on the verge technological breakthroughs that will have a profound impact on software engineers.
One of those areas is edge and cloud computing use. There is also expected to be major advances in programming languages. There has been a shift away from the monolithic languages of the past so that developers are now enabled to work with specialized languages that focus more on developer ergonomics and modernized developments in hardware.
Experts report that software based around artificial intelligence (AI) applications will also continue to dominate. Although artificial intelligence has been around for many years, it continues to grow and enhance every year, becoming foundational to many technologies around the world. Developers predict that AI will continue to dominate as more industries adopt it in their infrastructures.
Software Engineering Training Bootcamp Course by Tonex
Software Engineering Training, is a 3-day intensive covering many aspects of software engineering including Software Requirements, Definition, Development, Validation and Verification and Management Training.
Software Engineering Training customized as “Software Requirements, Definition, Development & Management Training” course is intended for those wishing to learn about the best software engineering practices. The course provides a practical introduction to software development and specifically methods to elicit, analyze, define and manage requirements.
Learn about software requirements analysis, software delivery cycles, software development with changing stakeholders and requirements, management and process control. Learn about traditional and agile methods and how to deliver software in time-boxed iterations, manage requirements and prioritize work to satisfy stakeholders. Software Engineering Training teaches you about the technical best practices, and how, in a changing environment, to communicate and manage requirements.
After discussing the foundations of software requirements, students will learn about requirements elicitation, discovery and management. IEEE Std 830-1998, Recommended Practice for Software Requirements Specifications is used as a reference.
Who Should Attend
- Software developers
- Software engineers
- System engineers
- Test engineers
- Project Managers (PM)
- Testing, Verification & Validation and Configuration PM
Course Learning Objectives
Upon completion of software engineering training course, the attendees will be able to:
- Describe basic software engineering principles
- List the motivation behind software requirements, definition, development and management
- List requirements elicitation, gathering and analysis techniques
- List the competing methods for software requirements and definitions
- Understand software requirements values and principles
- List software requirements, development and management standards and best practices
- Discuss steps in developing Software Requirements Specifications (SRS)
- Describe requirements verification principals and methods
- Discuss software validation principles based on users needs, scenarios and ConOps
- Understand best methods and practices common to software development and management
- List cost-effective risk management program implementation alternatives
- Discuss failures and root causes in software requirements, analysis and development projects
- Describe similarities and differences between software development management plans and project management plans
- List software development management and cross activities including project management, scope management, time management, cost management, risk management, configuration management, and quality management
- List steps in developing software performance measurement, metrics and KPIs
Course Outlines and Topics
Principles Behind Software Engineering, Software Requirements, Development and Management
- Software engineering goals and objectives
- Role of software requirements, definitions, development and management
- Software requirements analysis methods and techniques
- Software development methods and techniques
- Software management methods and techniques
- Capability Maturity Model Integration® (CMMI)
- ISO 15504 Software Process Improvement Capability determination (SPICE)
- Software requirements analysis
- Software requirements elicitation
- Software requirements specification
- Software requirements validation
- Software requirements management tools
- Software design and construction
- Software Project management activities
- Software Development Plans
Software Development Life Cycle (SDLC)
- SDLC as a process methodology for software development
- SDLC models
- Waterfall, spiral, and agile
- Factors selecting a model
- Project’s size, complexity, aims, and objectives
- Status of requirements
- Well understood and articulated up front requirements
- Stability of the environment in which the software will function
- Customer’s needs and availability during the project
- Project risk tolerance
- Project timeline
- The initial phase and the requirements task
- User and stakeholders
- Well documented, validated, and approved requirements
- Functional, performance, and other requirements
- Analysis, design, implementation, testing, integration, operations, and maintenance
- Waterfall model
- Agile model
- The Agile Manifesto
- Identifying emerging requirements
- Standards and regulations violation
- Calculating metrics
- Writing functional specifications,
- Writing test cases
- Software verification and validation
- Challenges in the requirements engineering process
- Best Practices and lessons learned
Software Life-Cycle Building Blocks
- Concept development
- Operational needs assessment
- Concept of Operations (ConOps)
- Defining operational requirements
- Eliciting, collecting, and developing requirements
- Analyzing and defining requirements
- Classifying functional vs. non-functional requirements
- Prototyping and experimentation
- Software architecture considerations
- Software architectural frameworks and models
- Software design and development
- Develop technical requirements
- Develop top-level software design
- Integration and Interoperability (I&I)
- Integration testing
- Interface management
- Test and evaluation
- Verification and Validation (V&V)
- Implementation, O & M, and transition
Identify and Managing Stakeholders
- What problem is the customer trying to solve?
- Customer need and want?
- Value proposition
- Objectives and goals
- Scope of Project
- Project milestones
- Managing critical assumptions
- Identifying risks
- Success Criteria
Eliciting, Collecting, Developing and Managing Software Requirements
- High-level concept definition
- Software development scope
- Operational needs and the concept of operations (CONOPS)
- Discover, elicit, collect, define, and analyze requirements
- Meet the users’ needs to perform a specific set of tasks
- Identifying stakeholders
- Operational users and other stakeholders
- Requirements elicitation
- Elicitation techniques
- User requirements
- Analyze, integrate, and transform needs into software requirements
- Roles and Expectations
- Elicit business, mission, and operational needs
- Facilitate stakeholder engagement on and resolution of requirements
- Requirements and software capabilities
- Software functional descriptions
- Non-functional properties of that software
- Requirements attributes
- Classifying techniques for functional and non-functional requirements
- Requirements elicitation to different development methodologies (waterfall, spiral, agile, etc.)
Writing Software Requirements Specifications (SRS)
- What are Software Requirements Specifications?
- A well-designed, well-written SRS
- What Kind of Information Should an SRS Include?
- Functional Capabilities
- Performance Levels
- Data Structures/Elements
- Constraints and Limitations
- Apportioning of requirements
- Specific requirements
- User interfaces
- Software interfaces
- Functional requirements
- Performance requirements
- Design constraints
- Software system attributes
- Prioritization and Release Plan
- Choice of prioritization method
Agile & Scrum Software Development Applied
- Agile methods in software requirements and definitions
- Role of Agile in software development and management
- Scrum and XP
- Empirical processes control
- Sprint cycle and planning
- Sprint reviews and retrospectives
- Project Objectives and Vision
- Project management
- Risk management
- Product Backlog
- Customer involvement
- Stakeholders and Roles
- User Stories
- Epics, Features and Tasks
- Requirements discovery
- User interviews
- Focus groups
- User groups
Software Requirement Management
- Creation, editing, and updating of requirements
- Defining and managing requirements, specifications, stories, and other artifacts
- Requirements management solutions for product development.
- Advanced requirements, test cases and life cycle management software.
- Requirements, test cases, releases, defects and issues
- Test cases and test steps that validate the functionality
- Management and traceability of requirements
- Design Control Items View Profile
- Program planning
- Analyses of alternatives
- Management metrics
- Technical maturity
- Technology planning
- Cost estimation
- Agile acquisition strategy
- Risk management
- Configuration management tools
- Software reliability, availability, and maintainability
- Quality assurance and measurement
- Cross team activities
- Process reviews