COURSE
CATALOG
2016
THE COMMUNITY FOR TECHNOLOGY LEADERS
THE COMMUNITY FOR TECHNOLOGY LEADERS
CONTENTS
SWEBOK KNOWLEDGE AREA REVIEW COURSES
Software Requirements Course ...4
Software Design Course ...6
Software Construction Course ...7
Software Testing Course ...8
Software Maintenance Course ...9
Software Configuration Management Course...10
Software Engineering Management Course ...11
Software Engineering Process Course ...12
Software Engineering Models & Methods Course ...13
Software Quality Course ...14
Software Engineering Economics Course ...15
Software Project Management Course ...16
CONTINUING EDUCATION CERTIFICATES OF
ACHIEVEMENT COURSES
Cloud Computing In the Business Environment ...20
Cloud Governance and Security ...21
Cloud Economics, Metrics and Migration ...22
Foundations of Secure Software ...23
Managing Secure Software Development ...24
Secure Software Coding ...25
Secure Software Design ...26
Embedded System ...27
Multi-Core Video Series ...28
Quarto ...29
SWEBOK KNOWLEDGE
AREA REVIEW COURSES
SOFTWARE REQUIREMENTS COURSE
Course Description:
Software requirements engineering is the process of determining what is to be produced in a software system. It has the widely recognized goal of determining the needs for, and the intended external behavior, of a system design.
The four specific steps in software requirements engineering are: requirements elicitation, requirements analysis, requirements specification, and requirements validation. The importance of high quality software requirements, long recognized as the foundation from which all software work follows, cannot be overstated. Arriving at a shared vision of the product to be developed is one of the greatest challenges facing the software project team, and customer involvement is among the most critical factors in software quality.
This course will give participants a number of best practices, based upon the Software Engineering Body of Knowledge (SWEBOK), so that they can improve the quality of the requirements elicitation and development process in their organization. Characteristics of high quality requirements specifications are completeness, conciseness, accuracy, modularization, prioritization, analysis, and verification.
Ultimately, the techniques presented reduce project risk, improve product quality, and allow for effective control of requirements volatility—all measures for increasing the likelihood of a successful software project.
Learning Objectives
Upon completion of this course, the student will be able to:
1. Develop effective functional and non-functional requirements that are complete, concise, correct, consistent, testable and unambiguous.
2. Select the appropriate requirements elicitation techniques to identify requirements.
3. Design a set of software models to be used to flesh out hidden requirements and drive clarity into the system functional requirements
4. Effectively analyze requirements and prioritize accordingly.
5. Perform requirements engineering in the context of the most common software development life cycles and processes.
6. Create a requirements specification to communicate requirements to a broad set of stakeholders.
7. Utilize various requirements validation techniques to critically evaluate their requirements to identify defects 8. Manage change to requirements
Self-Paced Learning Approximate Time: 4 hours PDH 4
CEU 0.4
Member: $65
Course Modules:
1. Software Requirements Fundamentals 1.1. Definition of a Software Requirement 1.2. Product and Process Requirements
1.3. Functional and Nonfunctional Requirements 1.4. Emergent Properties
1.5. Quantifiable Requirements
1.6. System Requirements and Software Requirements 2. Requirements Process
2.1. Process Models 2.2. Process Actors
2.3. Process Support and Management 2.4. Process Quality and Improvement 3. Requirements Elicitation 3.1. Requirements Sources 3.2. Elicitation Techniques 4. Requirements Analysis 4.1. Requirements Classification 4.2. Conceptual Modeling
4.3. Architectural Design and Requirements Allocation 4.4. Requirements Negotiation
4.5. Formal Analysis 5. Requirements Specification
5.1. System Definition Document 5.2. System Requirements Specification 5.3. Software Requirements Specification 6. Requirements Validation 6.1. Requirements Reviews 6.2. Prototyping 6.3. Model Validation 6.4. Acceptance Tests 7. Practical Considerations
7.1. Iterative Nature of the Requirements Process 7.2. Change Management
7.3. Requirements Attributes 7.4. Requirements Tracing 7.5. Measuring Requirements 8. Software Requirements Tools
Course Modules:
1. Software Design Fundamentals 1.1. General design concepts 1.2. Context of software design 1.3. Software design process 1.4. Software design principles 2. Key Issues in Software Design
2.1. Concurrency
2.2. Control and handling of events 2.3. Data persistence
2.4. Distribution of components
2.5. Error exception handling and fault tolerance 2.6. Interaction and presentation
2.7. Security
3. Software Structure and Architecture 3.1. Architectural structures and viewpoints 3.2. Architectural styles
3.3. Design patterns
3.4. Architecture design decisions 3.5. Families of programs and frameworks 4. User Interface Design
4.1. General user interface design principles 4.2. User interface design issues
4.3. Design of user interaction modalities 4.4. Design of information presentation 4.5. User interface design process 4.6. Localization and internationalization 4.7. Metaphors and conceptual models 5. Software Design Quality Analysis and Evaluation
5.1. Quality attributes
5.2. Quality analysis and evaluation techniques 5.3. Measures
6. Software Design Notations
6.1. Structural descriptions (static view) 6.2. Behavioral descriptions (dynamic view) 7. Software Design Strategies and Methods
7.1. General strategies
7.2. Function-oriented (structured) design 7.3. Object-oriented design
7.4. Data structure-oriented design 7.5. Component-based design 7.6. Other methods
8. Software Design Tools
Self-Paced Learning Approximate Time: 8 hours PDH 8 CEU 0.8 Member: $125
SOFTWARE DESIGN
COURSE
Course Description:
Software design is both the process of defining the architecture, components, interfaces and other characteristics of a system, and the result of that process. Essentially, software design is the software life cycle activity in which parameters outlined and defined in the Requirements process are translated into a description of a software system’s internal structure that can be used as a basis for construction. This course begins with design fundamentals, including concepts, context and processes. It then progresses through key design issues; structure and architecture; user interface design; design quality analysis and evaluation; notations; strategies and design tools, all within the context of real-world challenges.
Learning Objectives:
1. Outline the software design process, and
demonstrate how the essential design principles are applied within it.
2. Apply the concepts of concurrency, data persistence, error handling and security to a typical software design project.
3. Illustrate the essential elements of software structure and architecture in terms of styles, patterns and families of programs and frameworks.
4. Explain the application of user interface design to a software development project, including essential principles, interaction modalities, information presentation and the UI design process.
5. Demonstrate the application of quality analysis and evaluation principles, including quality attributes, analysis and evaluation techniques, and quality measures.
6. Explain through example the concept of design notations in terms of structure and behavioral descriptions.
7. Employ function, object, data-structure and
component-based design methodologies in a typical software design project.
Course Modules:
1. Software Construction Fundamentals 1.1. Minimizing Complexity
1.2. Anticipating Change 1.3. Constructing for Verification 1.4. Reuse
1.5. Standards in Construction 2. Managing Construction
2.1. Construction in Life Cycle Models 2.2. Construction Planning 2.3. Construction Measurement 3. Practical Considerations 3.1. Construction Design 3.2. Construction Languages 3.3. Coding 3.4. Construction Testing 3.5. Construction for Reuse 3.6. Construction with Reuse 3.7. Construction Quality 3.8. Integration
4. Construction Technologies 4.1. API Design and Use
4.2. Object-Oriented Runtime Issues 4.3. Parameterization and Generics
4.4. Assertions, Design by Contract, and Defensive Programming
4.5. Error Handling, Exception Handling, and Fault Tolerance 4.6. Executable Models
4.7. State-Based and Table-Driven Construction Techniques 4.8. Runtime Configuration and Internationalization 4.9. Grammar-Based Input Processing
4.10. Concurrency Primitives 4.11. Middleware
4.12. Construction Methods for Distributed Software 4.13. Constructing Heterogeneous Systems
4.14. Performance Analysis and Tuning 4.15. Platform Standards
4.16. Test-First Programming 5. Construction Tools
5.1. Development Environments 5.2. GUI Builders
5.3. Unit Testing Tools
5.4. Profiling, Performance Analysis, and Slicing Tools
Self-Paced Learning Approximate Time: 6 hours PDH 6 CEU 0.6 Member: $85
SOFTWARE
CONSTRUCTION
COURSE
Course Description:
Software Construction is the detailed creation of working software through a combination of coding, verification, unit testing, integration testing and debugging. Construction uses the output from the design process to build software therein described, and provides an output to testing. Thus, design, construction and testing are closely intertwined, and very often overlap. Some design functions may carry over into the construction phase, and unit/integration testing are frequently performed during the construction phase. In this course, we will examine key construction fundamentals such as minimizing complexity, dealing with change, building for verification and basic construction standards. From fundamentals, the course moves through managing the construction process; key practical considerations; construction technologies and construction tools. Since construction is a hands-on intensive endeavor, students are challenged with hands-on exercises that mimic real-world software construction challenges.
Learning Objectives
1. Apply the fundamentals of software construction as outlines in this course to an actual software development project.
2. Demonstrate by example the key construction life cycle models.
3. Interpret key practical construction considerations such as design, languages, coding, testing, quality and reuse.
4. Evaluate and provide examples of the key construction technologies in a typical software construction project.
5. Explain the application of software construction tools such as GUI builders, unit testing tools, profiling, performance analysis and slicing tools
Course Modules:
1. Software Testing Fundamentals 1.1. Testing-Related Terminology 1.2. Key Issues
1.3. Relationship of testing to other activities 2. Test Levels
2.1. The Target of the Test 2.2. Objectives of Testing 3. Test Techniques
3.1. Based on the Software Engineer’s Intuition and Experience
3.2. Input Domain-Based Techniques 3.3. Code-Based Techniques 3.4. Fault-Based Techniques 3.5. Usage-Based Techniques 3.6. Model-Based Testing Techniques
3.7. Techniques Based on the Nature of the Application 3.8. Selecting and Combining Techniques
4. Test-Related Measures
4.1. Evaluation of the Program 4.2. Under Test
4.3. Evaluation of the Tests Performed 5. Test Process
5.1. Practical Considerations 5.2. Test Activities
6. Software Testing Tools 6.1. Testing Tool Support 6.2. Categories of Tools
Self-Paced Learning Approximate Time: 8 hours PDH 8 CEU 0.8 Member: $125
SOFTWARE TESTING
COURSE
Course Description:
Software testing consists of the dynamic verification that a program provides the expected behaviors on a finite set of test cases, suitably selected from an infinite domain of execution possibilities. Software testing is no longer limited to activities that start only after coding (construction) is complete. Rather, as has been observed in the Software Construction course, testing begins during the construction phase with unit and integration testing, and proceeds through the full testing regime. This course begins with testing fundamentals, including terminology and the relationship of testing with other life cycle activities. From there, Software Testing proceeds through test levels; testing techniques; test-related measures; test processes and concludes with an examination of testing tools as they are applied to actual software testing operations.
Learning Objectives:
1. Employ correct testing terminology throughout the testing process.
2. Execute specific software tests with well-defined objectives and targets.
3. Apply various testing techniques, including domain, code, fault, usage and model-based.
4. Execute program and test evaluations.
5. Perform a complete testing process, taking into account practical considerations
Course Modules:
1. Software Maintenance Fundamentals 1.1. Definitions and Terminology 1.2. Nature of Maintenance 1.3. Need for Maintenance 1.4. Majority of Maintenance Costs 1.5. Evolution of Software 1.6. Categories of Maintenance 2. Key Issues in Software Maintenance
2.1. Technical Issues 2.2. Management Issues
2.3. Maintenance Cost Estimation 2.4. Software Maintenance Measurement 3. Maintenance Process
3.1. Maintenance Processes 3.2. Maintenance Activities 4. Techniques for Maintenance
4.1. Program Comprehension 4.2. Reengineering
4.3. Reverse Engineering 4.4. Migration
4.5. Retirement
5. Software Maintenance Tools
Self-Paced Learning Approximate Time: 8 hours PDH 8 CEU 0.8 Member: $85
SOFTWARE
MAINTENANCE
COURSE
Course Description:
Once a software product is delivered, it must evolve – or change – over time. When in actual operations, defects are discovered, operating environments change, and new user requirements emerge. While the Maintenance phase of the life cycle generally begins following a post-implementation period, actual maintenance activates may occur earlier. As such, we can define maintenance as the totality of activities required to provide cost-effective support to software. Given this, maintenance can be performed during the pre-delivery phase as well as later.
This course begins with an examination of the fundamentals, including terminology; the nature and need for maintenance; maintenance costs and software evolution. From there, Maintenance proceeds through key issues; the maintenance process; techniques for maintenance and software maintenance tools – all within the context of real-world maintenance challenges.
Learning Objectives:
1. Apply software maintenance fundamentals, including terminology; the nature of and need for maintenance; maintenance costs; evolution and categories of maintenance
2. Incorporate key issues in software maintenance, to include technical issues; management issues; cost estimation; and software maintenance measurement 3. Utilize the best practices maintenance process 4. Exercise best practices techniques for maintenance
Self-Paced Learning Approximate Time: 6 hours PDH 6
CEU 0.6
Member: $125
Course Modules:
1. Management of the SCM Process 1.1. Organizational Context for SCM
1.2. Constraints and Guidance for the SCM Process 1.3. Planning for SCM
1.4. SCM Plan
1.5. Surveillance of Software Configuration Management 2. Software Configuration Identification
2.1. Identifying Items to Be Controlled 2.2. Software Library
3. Software Configuration Control
3.1. Requesting, Evaluating, and Approving Software Changes
3.2. Implementing Software Changes 3.3. Deviations and Waivers
4. Software Configuration Status Accounting 4.1. Software Configuration Status Information 4.2. Software Configuration Status Reporting 5. Software Configuration Auditing
5.1. Software Functional Configuration Audit 5.2. Software Physical Configuration Audit 5.3. In-process Audits of a Software Baseline 6. Software Release Management and Delivery
6.1. Software Building
6.2. Software Release Management 7. Software Configuration Management Tools
SOFTWARE
CONFIGURATION
MANAGEMENT
COURSE
Course Description:
Software development is not a straightforward process and often requires multiple iterations between the development phases. To cope with this dynamic nature of software development, software engineers need to control the changes in the development process. Software Configuration Management (SCM) is the activity that helps us control the evolution of a software project. This course is a comprehensive review of SCM as a software-engineering discipline supporting all life-cycle phases by relying on tools and techniques to manage changes in software, including documentation, code, interfaces, and databases.
Learning Objectives:
1. Effectively Plan and Run an SCM Process
considering specific organizational aspects in terms of people, product, project, cross-organizational, process, and tools.
2. Effectively identify and organize configuration items to be controlled with SCM, including labeling and version control.
3. Perform effective surveillance of SCM activities including software configuration auditing to evaluate the conformance of software products and processes to applicable regulations, standards, guidelines, plans, and procedures.
4. Manage software baselines.
5. Effectively manage changes during the software life cycle including deviations and waivers in software configuration control.
6. Record and report information needed for effective management of the software configuration. Effectively manage software releases and deliveries including versioning control.
Self-Paced Learning Approximate Time: 6 hours PDH 6
CEU 0.6
Member: $125
Course Modules:
1. Initiation and Scope Definition
1.1. Determination and Negotiation of Requirements 1.2. Feasibility Analysis
1.3. Process for the Review and Revision of Requirements 2. Software Project Planning
2.1. Process Planning 2.2. Determine Deliverables
2.3. Effort, Schedule, and Cost Estimation 2.4. Resource Allocation
2.5. Risk Management 2.6. Quality Management 2.7. Plan management 3. Software Project Enactment
3.1. Implementation of Plans
3.2. Software Acquisition and Supplier Contract Management 3.3. Implementation of Measurement Process
3.4. Monitor Process 3.5. Control Process 3.6. Reporting 4. Review and Evaluation
4.1. Determining Satisfaction of Requirements 4.2. Reviewing and Evaluating Performance 5. Closure
5.1. Determining Closure 5.2. Closure Activities
6. Software Engineering Measurement
6.1. Establish and Sustain Measurement Commitment 6.2. Plan the Measurement Process
6.3. Perform the Measurement Process 6.4. Evaluate Measurement
7. Software Engineering Management Tools
SOFTWARE
ENGINEERING
MANAGEMENT
COURSE
Course Description:
Software engineering management is defined as the application of management activities – planning; coordinating, measuring, monitoring, controlling and reporting – to the processes of software development. While nominal management concepts are applicable to software engineering, there are many aspects of managing software projects that are unique. This course is centered on those unique aspects of software engineering management at three levels: Organizational and infrastructure management; project management and the management of a measurement program, and how these are applied to actual software projects.
Learning Objectives:
1. Execute a complete requirements negotiation process.
2. Perform a comprehensive feasibility analysis. 3. Lead a software project planning process, to include
determining deliverables; effort, schedule and cost estimation; resource allocation; risk management; quality and plan management.
4. Apply the principles and processes of software engineering project enactment.
5. Perform software project reviews and evaluations according to best practices.
6. Illustrate by example software project closure activities.
7. Employ software engineering measurement processes.
Course Modules:
1. Software Process Definition 1.1. Software Process Management 1.2. Software Process Infrastructure 2. Software Life Cycles
2.1. Categories of Software Processes 2.2. Software Life Cycle Models 2.3. Software Process Adaptation 2.4. Practical Considerations
3. Software Process Assessment and Improvement 3.1. Software Process Assessment Models 3.2. Software Process Assessment Methods 3.3. Software Process Improvement Models 3.4. Continuous and Staged Ratings 4. Software Measurement
4.1. Software Process and Product Measurement 4.2. Quality of Measurement Results
4.3. Software Information Models
4.4. Software Process Measurement Techniques 5. Software Engineering Process Tools
Self-Paced Learning Approximate Time: 5 hours PDH 5 CEU 0.5 Member: $85
SOFTWARE
ENGINEERING
PROCESS COURSE
Course Description:
An engineering process can be defined as a set of inter-related activities that transform one or more inputs into outputs, while consuming resources to accommodate that transformation. In software engineering, processes refer specifically to activities by software engineers to develop, maintain and operate software. In overview, software engineering process can be examined on two levels. The first level encompasses the technical and managerial activities within the software life cycle that are performed during software acquisition, development, maintenance and retirement. The second is the meta-level, which is concerned with the definition, implementation, assessment, measurement, management, change and improvement of the software life cycle processes themselves.
This course concentrates on the second level by examining the planning, assurance and control
processes employed as they relate to real-world software development projects.
Learning Objectives:
1. Employ key term definitions, including process management and process infrastructure terminology. 2. Illustrate through example software life cycles,
including software process categories, life cycle models and process adaption.
3. Demonstrate the key elements of process assessment models, methods and improvement techniques. 4. Apply software measurement in a real-world project,
to include process and product measurement, measurement results interpretation, information models and measurement techniques.
Self-Paced Learning Approximate Time: 7 hours PDH 7 CEU 0.7 Member: $65
Course Modules:
1. Modeling 1.1. Modeling Principles1.2. Properties and Expression of Models 1.3. Syntax, Semantics, and Pragmatics
1.4. Preconditions, Post-conditions, and Invariants 2. Types of Models
2.1. Information Modeling 2.2. Behavioral Modeling 2.3. Structure Modeling 3. Analysis of Models
3.1. Analyzing for Completeness 3.2. Analyzing for Consistency 3.3. Analyzing for Correctness 3.4. Traceability
3.5. Interaction Analysis 4. Software Engineering Methods
4.1. Heuristic Methods 4.2. Formal Methods 4.3. Prototyping Methods 4.4. Agile Methods
SOFTWARE
ENGINEERING
MODELS &
METHODS COURSE
Course Description:
Models and Methods impose a structure on software engineering with the goal of making that activity systematic, repeatable and quality-oriented. Models provide an approach to problem solving, notations and procedures for model construction and analysis. This course will emphasize software engineering models and methods that encompass multiple life cycle phases by examining modeling principles, types of models, model analysis and software engineering methods as they are applied to real-world software engineering projects.
Learning Objectives:
1. Understand and apply basic modeling principles, properties and expression of models, syntax, semantics and pragmatics.
2. Illustrate and employ information, behavioral and structure modeling.
3. Apply model analysis, including analyzing for completeness, consistency and correctness. 4. Demonstrate the concepts of traceability and
interaction analysis.
5. Provide examples of heuristic, formal, prototyping and agile methods and how they are applied
Self-Paced Learning Approximate Time: 5 hours PDH 5
CEU 0.5
Member: $65
Course Modules:
1. Software Quality Fundamentals
1.1. Software Engineering Culture and Ethics 1.2. Value and Cost of Quality
1.3. Models and Quality Characteristics 1.4. Software Quality Improvement 1.5. Software Safety
2. Software Quality Management Processes 2.1. Software Quality Assurance 2.2. Verification and Validation 2.3. Reviews and Audits
3. Software Quality Practical Considerations 3.1. Software Quality Requirements 3.2. Defect Characterization 3.3. SQM Techniques
3.4. Software Quality Measurement 4. Software Quality Tools
SOFTWARE QUALITY
COURSE
Course Description:
Software Quality can be defined as the capability of a software product to satisfy stated and implied needs under specified conditions. Additionally, Quality refers to the degree to which software products meet their stated requirements. Quality is a basic parameter of software engineering efforts whose primary goal is the delivery of maximum stakeholder value while balancing cost and schedule.
This course addresses Quality’s key term definitions, provides examples of and exercises for the practical application of its nominal practices, tools and
techniques for applying software quality methodologies to real-world projects.
Learning Objectives:
1. Understand and be able to apply software quality fundamentals to real-world software projects, including an ethical approach to Quality, value and cost considerations, quality models and safety considerations.
2. Demonstrate by means of example – software quality management processes such as quality assurance, verification and validation, and reviews/audits. 3. Illustrate the essential software practical
considerations such as quality requirements, defect characterization, SQM techniques and software quality measurement.
Course Modules:
1. Software Engineering Economics Fundamentals 1.1. Finance 1.2. Accounting 1.3. Controlling 1.4. Cash Flow 1.5. Decision-Making Process 1.6. Valuation 1.7. Inflation 1.8. Depreciation 1.9. Taxation 1.10. Time-Value of Money 1.11. Efficiency 1.12. Effectiveness 1.13. Productivity 2. Life Cycle Economics2.1. Product 2.2. Project 2.3. Program 2.4. Portfolio
2.5. Product Life Cycle 2.6. Project Life Cycle 2.7. Proposals
2.8. Investment Decisions 2.9. Planning Horizon 2.10. Price and Pricing 2.11. Cost and Costing 2.12. Performance Measurement 2.13. Earned Value Management 2.14. Termination Decisions 2.15. Replacement and Retirement Decisions 3. Risk and Uncertainty
3.1. Goals, Estimates, and Plans 3.2. Estimation Techniques 3.3. Addressing Uncertainty 3.4. Prioritization 3.5. Decisions under Risk 3.6. Decisions under Uncertainty 4. Economic Analysis Methods 4.1. For-Profit Decision Analysis 4.2. Minimum Acceptable Rate of Return 4.3. Return on Investment 4.4. Return on Capital Employed 4.5. Cost-Benefit Analysis 4.6. Cost-Effectiveness Analysis 4.7. Break-Even Analysis 4.8. Business Case 4.9. Multiple Attribute Evaluation 4.10. Optimization Analysis 5. Practical Considerations 5.1. The “Good Enough”
Principle
5.2. Friction-Free Economy 5.3. Ecosystems
5.4. Offshoring and Outsourcing
Self-Paced Learning Approximate Time: 5 hours PDH 5 CEU 0.5 Member: $65
SOFTWARE
ENGINEERING
ECONOMICS
COURSE
Course Description:
Software Engineering Economics are about making decisions related to software engineering in a business context. Success of any software engineering project is partly dependent on effective business management. Software engineering economics provides a way to examine the attributes of software and software processes in a systematic way that relates them to economic measures. These can be weighted and analyzed when making decisions within the scope of a software engineering project and its organization. The essence of software engineering economics is aligning software technical decisions with the business goals of the organization.
This course examines the key aspects of software engineering economics, including life cycle economics; risk and uncertainty; economic analysis methods and practical considerations, which tie concept and theory to contemporary software economic realities.
Learning Objectives:
1. Understand and be able to apply the key software engineering economic fundamentals to real-world software economic issues.
2. Illustrate through example the key software life cycle economics, including product and process life cycles; portfolios; proposals; investment decisions; pricing and costing, and earned value management (EVM).
3. Apply the concepts of risk and uncertainty to real-world software development projects, including goals; estimates; prioritization and decision making. 4. Perform best-practice economic analysis methods. 5. Relate and interpret the “good-enough” principle;
Course Modules:
1. Project Management Framework 1.1. PMBOK Trailer
1.2. PMBOK Introduction 1.3. Framework Introduction 1.4. Organization Structure 2. Project Integration Management
2.1. Project Integration Management Introduction 2.2. Develop Project Charter
2.3. Develop Project Management Plan 2.4. Direct and Manage project Work 2.5. Monitor and Control Project Work 2.6. Perform Integrated Change Control 2.7. Close Project or Phase
3. Project Scope Management
3.1. Project Scope Management Introduction 3.2. Plan Scope Management
3.3. Collect Requirements 3.4. Define Scope 3.5. Create WBS 3.6. Scrum Team 3.7. Validate Scope 3.8. Control Scope 4. Project Time Management
4.1. Project Time Management Introduction 4.2. Define Activities
4.3. Sequence Activities 4.4. Estimate Activity Resources 4.5. Estimate Activity Durations 4.6. Develop Schedule 4.7. Control Schedule 5. Project Cost Management
5.1. Project Cost Management Introduction 5.2. Plan Cost Management
5.3. Estimate Costs 5.4. Determine Budget 5.5. Control Costs
6. Project Quality Management
6.1. Product Quality Management Introduction 6.2. Plan Quality Management
6.3. Perform Quality Assurance
Self-Paced Learning Approximate Time: 4 hours PDH 4 CEU 0.4 Member: $225
SOFTWARE PROJECT
MANAGEMENT
COURSE
Course Description:
This dynamic and hands-on project management online course takes participants through the phases of a project, using the Process Groups and integrative framework. It is suitable for anyone who requires an introduction to project management. This course is aimed at those individuals operating as a member of a project team e.g. subject matter expert, task owner, coordinator etc. The qualification demonstrates that the candidate has a working knowledge of the processes and terminology as laid out in the “Guide to the Project Management Body of Knowledge”
Learning Objectives:
1. Establish how all project activities are interrelated. 2. Know when and how to use the defined Tools and
Techniques on projects.
3. Understand Project Management definitions, acornyms and terminology.
4. Feel comfortable with the examination format and typical question styles.
5. Gain essential skills necessary to work as a project team.
6. Develop interpersonal and general project management skills
6.4. Control Quality
6.5. Project Quality Management 7. Project Human Resource Management
7.1. Project Human Resource Management Introduction 7.2. Plan Human Resource Management
7.3. Acquire Team Project 7.4. Develop Project Team 7.5. Manage Project Team
8. Project Communications Management
8.1. Project Communication Management Introduction 8.2. Manage Communications
8.3. Control Communications 9. Project Risk Management
9.1. Project Risk Management Introduction 9.2. Plan Risk Management
9.3. Identify Risks
9.4. Perform Qualitative Risk Analysis 9.5. Perform Quantitative Risk Analysis 9.6. Plan Risk Responses
9.7. Monitor and Control Risks 10. Project Procurement Management
10.1. Project Procurement Management Introduction 10.2. Project Communication Management Overview 10.3. Plan Procurement Management
10.4. Conduct Procurement 10.5. Control Procurement 10.6. Close Procurement
11. Project Stakeholder Management
11.1. Project Stakeholder Management Introduction 11.2. Identify Stakeholders
11.3. Plan Stakeholder Management 11.4. Manage Stakeholder Management
CONTINUING
EDUCATION
CERTIFICATES OF
ACHIEVEMNET
Course Modules:
Module 1 – Introduction to the Cloud
• Language of Cloud Computing
• Provenance of Cloud Computing
• Today’s Players in Cloud Computing
• 2 Quiz Questions
Module 2 – Economics of the Cloud
• The Economics of the Cloud
• Measuring Net Present Value, Benefit Ratios,
Payback Periods
• Where’s the Payback?
• 2 Quiz Questions
Module 3 – Migrating to the Cloud
• How do you characterize your organization?
• What are your mission critical systems?
• Evolution or Big Bang?
• 2 Quiz Questions
Module 4 – Business of Cloud Security
• Overview of principle security issues
• What kind of data can be entrusted to the Cloud?
• What kinds of data should not be entrusted to the
Cloud?
• 2 Quiz Questions
Module 5 – Cloud Governance
• Managing Regulation within the Cloud
CLOUD COMPUTING
IN THE BUSINESS
ENVIRONMENT
Course Description:
Managers are often faced with having to decide
if, and how to upgrade their IT infrastructure,
and how to pay for it. In an environment of tight
budgets and soaring hardware and software costs,
they are also looking for alternatives to making
huge investments that will have to be upgraded
again and again. The Cloud can be that solution.
Managers need information to make intelligent
decisions however.
Questions pertaining to Cloud economics, security,
regulation and governance, metrics and migration
are introduced and discussed. In the final analysis,
managers must be able to answer key questions –
is the Cloud the right place for my IT infrastructure
and data? Is it a good business decision? How do
I migrate to the Cloud? This course introduces and
discusses these and other key concepts.
Self-Paced Learning Approximate Time: 90 Minutes PDH 1.5
CEU 0.15 Member: $45
Course Modules:
Module 1 – Governance in the Cloud
• Introduction
• Key governance concepts
• Governance as a process vs. a product
• The essential elements
Module 2 – Implementing Governance in
the Cloud
• Introduction
• Governance in SaaS, PaaS, IaaS
• Key governance metrics
• Managing the governance process
•
Module 3 – Cloud Security
• Introduction
• The risk profile
• Understanding the risks of the Cloud
• Deciding what information belongs in the cloud
Module 4 – Maintaining Security
• Introduction
• Protecting your cloud based systems
• Who has access?
CLOUD
GOVERNANCE AND
SECURITY
Course Description:
Migrating IT infrastructures to the Cloud is
becoming a cost effective solution to the ever
increasing burden of maintaining complex software
and hardware systems. As with any new concept
that plays a central role in business, the Cloud
must be understood. Specifically, the differences
between managing an in-house IT infrastructure
versus a Cloud-based infrastructure are critical.
Seeing the Cloud as a process rather than a
product, implementing a governance plan and
developing Cloud metrics are all part of Cloud
governance.
Additionally, securing data and processes
within the Cloud are central to any migration
considerations. Issues such as risk profiles, what
information should and should not be committed to
the Cloud, roles and rules, and access control must
be taken into account. This course will examine
these and other key concepts central to Cloud
governance and data security.
Self-Paced Learning Approximate Time: 130 Minutes PDH 2.16
CEU 0.216 Member: $45
Course Modules:
Module 1 – Economics of the Cloud
• Introduction
• Net Present Value; Benefit Ratios; Payback Periods
• Common Infrastructure and Utility Pricing
• Economics of being Disconnected
Module 2 – Measuring the Cloud
• Introduction
• Security Metrics
• Usage Metrics
• Response Time Metrics
Module 3 – Cloud Migration Plan
• Introduction
• How do you characterize your organization?
• What are your mission critical systems?
• Evolution or Big Bang?
Module 4 – Sustainable Operations in the
Cloud
• Introduction
• Now that you’re there, what do you do?
• Maintenance in the Cloud?
• System Administration?
Module 5 – Migrating to the Cloud
• How do you characterize your organization?
• What are your mission critical systems?
• Evolution or Big Bang?
CLOUD ECONOMICS,
METRICS AND
MIGRATION
Course Description:
Deciding to migrate a business’ IT infrastructure
to the Cloud involves a great deal more than the
realization that one may not have to purchase all
of the software, hardware and IT infrastructure
nominally required to run the business. First, is it
a sound economic decision? How can we measure
net present value? Benefit ratios? Payback periods?
Are there metrics we can use to determine if the
Cloud is a viable solution? Measuring the Cloud
requires that we examine issues of security,
usage and response time in terms of metrics –
can these be quantified? Once a decision has
been made to migrate, how can we devise a
plan? Questions like how can I characterize my
business; what are my mission critical systems,
and do I follow the evolution or the Big Bang
concept must be addressed.
And, once there, how can a business establish
sustainable operations within the Cloud?
These and other key issues with migrating to the
Cloud are addressed for the business management
team contemplating a move into the Cloud.
Self-Paced Learning Approximate Time: 108 Minutes PDH 1.8
CEU 0.18 Member: $45
Course Modules:
Module 1-Introduction to Software
Security
• Significance/importance of software security
• Software security terminology
• Software security resources (both online and offline)
Module 2-Sources of software security
threats
• Hardware level threats
• Code level threats
• Detailed design level threats
• Architecture level threats
• Requirements level threats
Module 3-Software security best practices
• Security requirements elicitation
• Secure architecture best practices
• Detailed secure design best practices
• Secure coding best practices
• Secure deployment and operations best practices
Module 4: Software security lifecycle
• General software lifecycle vs. secure software
lifecycle
• Architectural risk analysis
• Measurement
• Project management
Module 5: Software security testing
• Code analysis
• White box testing
• Penetration testing
• Security testing tools
Module 6: Careers in SW Security –
FOUNDATIONS OF
SECURE SOFTWARE
Course Description:
Software security is becoming increasingly
important due to the numerous emerging threats
exploiting software vulnerabilities. This course
provides a broad overview of various software
security threats and some of the most effective
countermeasures used to thwart both well-known
and newly emerging software security threats.
By taking this course, software practitioners will
learn how to build security into their software
products throughout its lifecycle. Although it is
impossible to accomplish “perfect security” in
software, the participants will be exposed to the
best practices and tools available today to minimize
their chance of falling victim to a common software
security attack.
Self-Paced Learning Approximate Time: 80 Minutes PDH 1.3
CEU 0.13 Member: $45
Course Modules:
Module 1 – Introduction to Secure
Software Development
• Nature of software
• Software development life-cycle
• Software as a system
• Basics of security
Module 2 – Security in Detail
• Layered approach to security
• Threats and attack vectors
• Security policy and its importance
• Security from an ROI perspective
• Security supply chain
Module 3 – Software Security Risk
Management
• Risk management overview
• Incident response
• In-house versus COTS
• Testing for security
• System evolution
Module 4 – Assurance Management
• Ownership issues
MANAGING SECURE
SOFTWARE
DEVELOPMENT
Course Description:
Whenever a software system is developed and
deployed, there is always an entity that will
attempt to corrupt or misuse that software.
Software security is thus a critical thread that
must run through the entire software development
life-cycle. The development of secure software is
the ultimate goal.
Software security involves a layered approach
designed to deal with myriad threats and attack
vectors based on an overall security policy that
takes into account a variety of threat scenarios,
the ROI of software security, the security supply
chain, software assurance risk management and
system evolution in an environment of
never-ending threats. This course examines software
security from the perspective of managing secure
software development.
Self-Paced Learning Approximate Time: 200 Minutes PDH 3.4
CEU 0.34 Member: $100
Course Modules:
Module 1: Introduction to Secure Coding
• Significance/importance of secure coding [8, 11]
• Secure coding terminology [7, 12, 13]
• Secure coding principles [10, 15, 18, 20, 21]
• Threat modeling
• Secure coding resources (both online and offline)
[14]
Module 2: Vulnerabilities and Exploits
• Buffer overflows
• SQL injection [2, 19]
• Cross‐Site Scripting (XSS) [4, 9]
• Broken authentication and session management
• Insecure direct object references
• Security misconfiguration
• Sensitive data exposure
Module 3: Countermeasures
• Secure coding standards [3]
• Secure coding best practices/patterns [1, 16]
• Intercepting validators
• Sanitization
• Session management
• Authentication
• Encryption
• Password management
• Access control
• Error handling and logging
• File management
• Memory management
Module 4: Tools, Frameworks, and
Services
• Microsoft Secure Development Process (SDP)
• Static analysis tools [17]
• Dynamic analysis tools
• Web application security frameworks [5, 6]
• Java-based enterprise application security
frameworks
• Outsourcing
• Vulnerability tracking
SECURE SOFTWARE
CODING
Course Description:
Secure coding is becoming increasingly important
due to various emerging threats. Although many
of the existing secure coding best practices are
programming language and domain‐specific, there
are also language and domain‐neutral knowledge
to be obtained by software developers. This course
focuses on this attainment of comprehensive but
practical secure coding knowledge. By exposing the
audience to all the major secure coding concepts
and tools available today, the primary goal of this
course is to quickly improve the attendees’ overall
security quality of coding practices and to prepare
for learning more language and application-specific
secure coding techniques.
Self-Paced Learning Approximate Time: 167 Minutes PDH 2.8
CEU 0.28
Course Modules:
1. Secure Software Design Fundamentals
1.1. Significance of Secure Software Design
1.2. Secure Software Design Terminology
1.3. Secure Software Design Process
1.4. Secure Software Design Principles
2. Key Issues in Secure Software Design
2.1. Security Control Types
2.2. Access Control
2.3. Encryption Methods
2.4. Intrusion Detection and Prevention
2.5. Recovery
2.6. Accounting and Trust Management
3. Secure Software Structure and behavior
3.1. Security Patterns
3.2. Security Tactics
3.3. Practical Examples
4. Software Security Analysis and Evaluation
4.1. Analysis and Evaluation Techniques
4.2. Measures and Metrics
5. Software Security and Formal Methods
5.1. What are formal methods?
5.2. Formal Methods in Secure Software Design
5.3. Formal Methods and Common Criteria
SECURE SOFTWARE
DESIGN
Course Description:
This course offers a comprehensive coverage
of practical knowledge in how to design secure
software as well as insights on the significance
of the role secure design plays during a software
development life cycle. Some of the critical
topics covered in this course include secure
design principles and processes in addition to
fundamental security concepts such as access
control, encryption, etc. This course also devotes
a significant amount of time to discussing
well known secure design solutions including
architectural patterns and design patterns focusing
on security countermeasures and concludes
with the discussion of software security analysis
and evaluation as mechanisms to assess the
effectiveness of the secure design solutions
implemented in the form of source code.
Self-Paced Learning Approximate Time: 107 Minutes PDH 1.8
CEU 0.18 Member: $45
Part I – Module 1-6 (total of 6 modules)
1. Megatrends and driving forces in IT and their linkages
to embedded systems
2. Overview of embedded systems including
characteristics, attributes, programming languages,
processor technologies, and design challenges
3. Overview of real-time systems including common
characteristics, interaction with hardware devices, and
embedded systems design process
4. Current examples of embedded systems, structure
of an embedded program, best practices, and typical
code examples
5. Block design of embedded systems, optimal mix of
software and hardware required to build a system,
guide to selection of processors and peripherals, signal
processing, and buffer design
6. DSP fundamentals and architecture and additional
material to deepen understanding of embedded system
software development
Part II - Modules 7-11 (total of 5 modules)
7. Overview of Round Robin scheduling, Function
Queues, brief introduction to Real-time Systems, and
coding examples to strengthen understanding
8. Overview of Super Loop Architecture, additional
characteristics of Real Time Operating systems (RTOS),
and basic elements of Hardware Abstraction Layer (HAL)
9. Overview of task management, reentrancy, and use of
semaphores
10. Additional details on scheduling and periodic tasks,
11. Rate monotonic analysis, and provide a Motor Control
example
Part III Modules 12-14 (total of 3 modules)
12. Priority Inversion, fundamentals of optimization in
embedded systems including: C code, importance of
physical architecture, power, memory and cache
13. Impact of compilers in optimization, techniques to
use compiler effectively including optimization levels,
intrinsics, cross correlation, pragmas, data alignment
14. Using parallel ALU effectively including Partial
Summation, Loop Unrolling, Software Pipelining,
Multisampling, effective use of pointers, best practices
EMBEDDED SYSTEM
Course Description:
Embedded software is found in most electronic devices designed today. Embedded software controls our cell phones, microwaves, network routers, automobiles, and industrial controls. Each of these embedded systems is unique and highly customized to the specific application. As a result, embedded systems development is a widely varying field that can take years to master.
This course will cover some of the basic principles of writing software for embedded systems. The course will survey the issues and discusses the various techniques for dealing with them. In particular, the course discusses approaches to the appropriate use of the real-time operating systems upon which much embedded software is based. In addition to explaining what these systems do, this course provides guidance on how you can use them most effectively. The information in this course is not specific to any microprocessor or real-time operating system nor is it oriented towards any particular software design methodology. The principles are the same, regardless of which microprocessor and which real-time operating system and which software design methodology you use. We will concentrate on the principles that you can apply to almost any embedded system project.
The material in this course will provide the necessary information to understand the embedded systems development cycle and the specialized aspects of developing and testing software in this environment. This course will also discuss the design considerations unique to embedded systems. The course will cover the key methods and technologies for each phase of the development process: specification, partition, design, integration, validation, and maintenance and upgrade.
Self-Paced Learning Approximate Time: 6 Hours PDH 6.0
CEU 0.6
Video Presentations:
• Automatic Parallelization by David Padu
• Autoparallelization for GPUs by Wen-Mei Hwu
• Dependences and Dependence Analysis by Utpal
Banerjee
• Dynamic Parallelization by Rudolf Eigenmann
• Instruction Level Parallelization by Alexandru
Nicolau
• Multigrain Parallelization and Power Reduction by
Hironori Kasahara
• The Polyhedral Model by Paul Feautrier
• Vector Computation by David Kuck
• Vectorization by P. Sadayappan
• Vectorization/Parallelization in the IBM Compiler by
Yaoqing Gao
• Vectorization/Parallelization in the Intel Compiler by
Peng Tu
• Roundtable Discussion by all presenters
MULTI-CORE VIDEO
SERIES
Course Description:
Multi-Core Lecture Series consists of 11 one-hour
lectures by some of the world's leading researchers
in the field. This series is not a course and it
consists of the presentation for those who are in the
research field. This is more intended for research
information sharing than educational training.
Topics that are covered during these lectures are
listed below. This series also includes an hour
discussion of the lecturers.
Self-Paced Learning Approximate Time: 12 Hours PDH 12
CEU 1.2
Series Cost: Member: $495 Non-Member $695 Member: $95
Courses:
• A Cloud Security Risk-Management Strategy
• Application-Screen Masking A Hybrid Approach
• Big Data Privacy in the Internet of Things
• Cyberhuman Security
• Denial and Deception in Cyber Defense
• Digital Data Grows into Big Data
• Inferring Mobile User Status with Usage Cues
• Internet of Things Making the Hype a Reality
• Internet of Things Perspectives
• Protecting Websites from Attack with Secure
Delivery Networks
QUARTO
Course Description:
Quartos are unique new short, tightly-focused
topical courses, usually around thirty minutes,
based on current articles in the Computer Society's
twelve peer-reviewed magazines. Ranging
across the entire field of computer science and
engineering, Quartos are written by the leading
researchers and thought leaders, and give learners
an opportunity to pick up professional education
credit for learning about what's happening in
computer science and engineering today. In
addition to an interactive learning experience, the
course includes a digital copy of the original article
on which it's based, so learners can build their own
reference library.
Self-Paced Learning Approximate Time: 1 Hour PDH 1.0
CEU 0.1
Cost for Each Video: Member: $19 Non-Member $29
KINO
Course Description:
Kino courses are a brand-new model built around
videos of high-profile leaders in computer science
and engineering as they present at various Computer
Society technical conferences and industry-oriented
events. Ideal for learning on-the-go on mobile devices,
Kino courses are currently in beta development and will
launch later this year.
Video Presentation:
10662 Los Vaqueros Circle Los Alamitos, CA 90720-1314 Phone: +1-714-821-8380 Fax: +1-714-821-4010 Email: [email protected]