Length: 2 Days
Introduction to Secure Software Engineering Training By TONEX
Introduction to secure software engineering training covers the software engineering basics, and helps you to catch up with the recent developments toward software engineering.
TONEX introduction to secure software training course helps you to understand a variety of topics in software engineering such as: software engineering process and metrics, real time, distributed, configurable and object oriented software. Moreover, you will learn about software system alignment, considering overall system design, aspects of software planning, requirements, software architecture, architecture analysis, software engineering constraints, and recent trends toward software engineering technology.
By taking the introduction to secure software engineering training training, you will understand the main concept of system software, computer software, application software and different programming languages used in computer software.
Learn about the difference between software engineering and computer engineering, software processes, computer aided software engineering technology, development processes for software engineering and extreme programming (XP).
Also, you will learn about the principles of risk information system development process, classified approaches to design/test a process and different phases of development process.
Moreover, you will be trained about the software architecture which is one of the main topics in system architecture. You will be introduced to client–server architecture, object brokers and layered systems.
Learn about the software system design, software system developments, distributed software systems and their characteristics, configuration management in software system, software development process, software quality management and agile software system engineering.
Finally, the TONEX introduction to secure software engineering training will introduce a set of labs, workshops and group activities of real world case studies in order to prepare you for the real-world problems and to be able to tackle all the related software engineering challenges.
Audience
The introduction to secure software engineering training is a 2-day course designed for:
- IT professionals in the area of information security and software engineering
- Executives and managers of cyber security and system engineering area
- Information technology professionals, network engineers, security analysts, policy analysts
- Security operation personnel, network administrators, system integrators and security consultants
- Security traders to understand the software security of web system, mobile devices, or other devices.
- Investors and contractors who plan to make investments in system engineering industry.
- Technicians, operators, and maintenance personnel who are or will be working on cyber security projects
- Managers, accountants, and executives of cyber security industry.
Training Objectives
Upon completion of the introduction to secure software engineering training course, the attendees are able to:
- Improve your understanding of system engineering
- Apply the knowledge of system engineering in design, develop or integrate the software systems
- Apply logic, mathematics and science in engineering concept for a software system
- Learn principles of software design and implementation
- Understand the concept of distributed software and their characteristics
- Implement engineering languages for software system design
- Improve the efficiency of software system by removing software faults
- Plan the software system control changes or improve the process of design
- Explain the different approaches for information development process
- Describe the software system architecture and different available architectures
- Understand the agile software system engineering
- Explain the software quality management and process development
- Describe the common languages used in software system structure
Training Outline
The introduction to secure software engineering training course consists of the following lessons, which can be revised and tailored to the client’s need:
Introduction to Software
- The history behind the software
- System software
- Computer software
- Computer operating system
- Graphical user interface (GUI)
- Local area network software
- Application software
- Computer file formats
- Software issues
- Programming languages
- Enterprise software
Introduction to Software Engineering
- What is software engineering?
- Why is software engineering important?
- What are software products?
- Software costs
- What is the difference between software engineering and computer engineering?
- What is software?
- The difference between software engineering and system engineering
- What is a software process?
- What is a software process model?
- Costs of software engineering
- Definition of computer aided software engineering (CASE)
- Key challenges in software engineering
Software Engineering Development Processes
- Generic concept of software engineering process model
- Traditional process models
- Waterfall model
- Incremental model
- Spiral model
- Rational unified process
- Iterative development
- Prototyping
- Agile software development
- Extreme programming (XP)
- Process in terms of the capability maturity model (CMM)
- Process in terms of the capability maturity model integrated (CMMI)
- The exploratory model
- The reuse model
- Entry and exit criteria
Information System Development Processes
- Definition of development process
- Basic principles of a development process
- Business modeling
- System engineering process (SYP)
- Software engineering process (SWP)
- Development requirements
- Design of a process
- Implementation of system development
- Test the process
- Project management
- Deployment
- Configuration and management change
- Environment
- Development process phases
- Process idea
- Development
- Construction
- Interface
- Allocation of resources
- Time boxing
- Participants of system analysis and design
- Types of customers and their duties
- System change
- System development life cycle (SDLC)
Software System Architecture
- Definition of software architecture
- Client-server; a case study
- Coupling and cohesion
- Architectural styles
- Pipes and filters
- Data abstraction and object oriented organization
- Client server example
- Object brokers
- Broker architecture example
- Event based (implicit invocation) architecture
- Layered systems
- 3 layer data access example
- Open layered and closed layered examples
- Number of layers
- Repositories
- Model-view controller example
- Model view controller component interaction
- Table driven interpreter
- Heterogeneous architecture
- Process control
- Languages used in software system structure
- UML, SysML, and BPEL
Dependability and Security Engineering
- Concept of dependability
- Dimensions of dependability
- System dependability
- Availability and reliability
- Safety
- Security
- Critical systems
- Importance of dependability
- Redundancy and diversity in system dependability
- N-version programming
- Fault free software
- Socio technical critical systems
- Other properties of dependability
- Dependability economics
- Safety and reliability
- Fundamental security
- CIA of the security
- Security failure
Software System Design & Development
- Software design lifecycle
- Software design process
- Architecture design
- Interface design
- Data structure design
- Algorithm design
- Software design methodologies
- Software design strategies
- Software tools
- Quality control steps in software development
- Different categories of testing
- Software implementation (coding)
- Sequence of processes
- Heavy weight and light weight processes
Distributed Software Systems
- Concept of distributed software
- Distributed system characteristic
- Resource sharing
- Concurrency
- Scalability
- Fault tolerance
- Transparency
- Disadvantages of distributed software systems
- Distributed system architectures
- Multiprocessor architecture
- Client server architecture
- Distributed object
- COBRA
- Object request broker
Software System Configuration Management
- Motivation for software configuration management
- IEEE 828
- IEEE 1042
- Configuration item
- Baseline
- SCM directory
- Revision release
- Promotion management
- Release management
- Change management
- Standards in software configuration management
- IEEE 828-1990
- Configuration management tools
- Configuration item tree
Software Development Process Improvement
- Process model development
- Initiating phase
- Diagnosis phase
- Establishing phase
- Action phase
- Leveraging phase
- Software process improvement program management
- Process maturity model
- Software process assessment
- Software capability evaluation
- Contract monitoring
- Assessment and evaluation consideration
- State of software practice
- Process maturity and CASE
- Components of the software process improvement infrastructure
Software System Quality Management
- Introduction to software quality
- Software quality control activities
- Software configuration management
- Quality metrics
- Quality management and quality systems
- Process quality and product quality
Agile Software Systems Engineering
- Agile system engineering
- Software and system engineering interactions
- System engineering interactions with agile software development
- Interview observation and findings
- Impact of policy and guidance on agile software implementations
- Agile on contract
- Research approaches and program demographics
Hands-on and In-Class Activities
- Labs
- Workshops
- Group Activities
Sample Workshops and Labs for Introduction to Software Engineering
- Waterfall model example
- Plan driven software development versus agile driven development
- Personal health monitoring
- Parking garage automation
- Traffic monitoring
- Restaurant automation example
- Multiprocessor traffic control system example
- A client server ATM system
- Internet banking system
- Workshop on how to write a software project proposal
Introduction to Secure Software Engineering Training