Software Engineering

The focus of the courses in this Certificate are the principle elements of current and emerging advanced software engineering that address the full life cycle of software development (e.g., requirements, analysis & design, strategy & planning, component-based architecture, configuration management & integration, group dynamics, testing, verification & validation, full stack programming, Agile, Scrum, DevOps, design thinking) and the management, governance, and organizational considerations for successful deployment.

After successful completion of this program, candidates will also receive ICCP Certification!!!

Information technologies touch every segment of society, driving change and innovation across every industry.  As organizations integrate new technologies to compete in the global environment, they require more computer software engineers to implement those new technologies. Today’s complex and competitive business environment demands that companies vigilantly ensure the reliability and integrity of computer systems to avoid costly and potentially catastrophic disruption.  But, some of the mistakes from the past continue to be made.  To ensure success and guard against failure, alert industries engage technically qualified experts with sound managerial judgment.

The World Economic Forum estimates that over 130 million jobs will be created globally in new professions, where demand for data scientists, software engineers and a myriad of roles requiring digital skills are growing rapidly. In addition, successful managers and leaders increasingly require a strong working knowledge of digital technologies, as well as 21st century leadership skills including the ability to be adaptable, innovative and creative.


This certificate offers what candidates need to know to understand fail-safe computer systems, both rapidly and prudently. The Software Engineering Certificate provides a foundation in technical concepts and design techniques, as well as management, organizational, governance, and teamwork approaches, for building software systems. The emphasis of this certificate is on implementing software engineering projects within cost and schedule by applying the most current proven and innovative practices that overcome the shortcomings of an undisciplined approach.  The implications of AI on SW engineering will be covered as a fundamental topic throughout all of the courrses.   

The software industry is under intense pressure to deliver quality software. Because software production remains a labor intensive activity, the demand for large volumes of high quality software translates into a strong demand for qualified software engineers. This certificate is comprised of an appropriate balance of theoretical computer science foundations and IT management considerations that afford candidates with the means to remain abreast of developments in software engineering in the long term and practical applications that afford graduates the means to be operational in the short term.  Building on the lessons learned from the past is fundamental.   Managers and software professionals who enroll in this certificate will become authorities on quantitative, rather than qualitative problem-solving methods, while learning to deal with a broad spectrum of enterprises—from small-scale to large complex projects.

Select at least 4 courses from the following:

(All courses are available live/synchronously face-to-face & online)

1. Analysis & Development of IS Services / Applications

This course presents and analyzes various approaches to information analysis and development of organizational information systems within a system development life-cycle (SDLC), e.g. the waterfall, concentric, Agile, Scrum, DevOps, design thinking, and prototyping approaches. Topics include strategic planning for SDLC, front-end and back-end phases of SDLC, project management, CASE methodologies, full-stack programming, Agile, Scrum, DevOps, and balancing user, organizational, and technical considerations.


2. Integrating IT Services

This course focuses on ways of designing an integrated enterprise architecture. The course explains the different forms of corporate information systems and their interaction. Mainframe systems and Cloud will be the focus of the architecture. While in the past, mainframe systems were often self-contained, in current systems, it is more likely that such systems are part of an overall architecture including many smaller hardware devices and operating systems. The participant will learn about the building blocks of current enterprise architectures, and then will learn how to connect them to solve the problems of large companies.


3. Fundamentals of SW Engineering

Introduces software engineering from a quantitative—analytic and metrics-based—point of view. Become acquainted with software life-cycle process models (e.g., SDLC, full-stack programming, Agile, DevOps, Scrum, design thinking) from those demanded by very large projects, to the lightest in extreme programming. Skillfully apply industry-standard software engineering tools. Engage creatively in teamwork, project planning, and object-oriented analysis and design. Probe case histories in project-oriented scenarios.


4. SW Estimation & Measurement

The purpose of this course is to prepare participants with the essential considerations for software estimation and measurement. The focus is on applying proven methods, tools, techniques and models that have been shown to demonstrate value to the software estimation and measurement process to both IT and non-IT stakeholders. The important techniques such as analogy, top-down, bottom-up, and expert judgment will be covered. The use of models for developing estimates, performing “what-if” analysis, bounding risks, and conducting a variety of trade studies will also be highlighted, as will the metrics that can be used to pinpoint status and assess progress. The course uses a variety of examples, case studies, and hands-on exercises to develop estimating skills, knowledge and abilities, including the use of actual cost model cases developed using the public domain COCOMO II model, to highlight their use and value to the developer. Participants will leave the course fully prepared to develop or validate a software estimate, assess their status, and progress and predict whether or not they will be delivered on-time and on budget, as well as meet the project functional requirements.


5. SW Requirements Analysis

One of the least understood and most difficult phases in software development, requirements acquisition is an especially high hurdle because stakeholders are often unclear about objectives. Learn how to identify stakeholders and how to elicit and verify their requirements for new or extended software products. Introduces analysis and modeling as the first steps in software design. Receive a though understanding of quality assurance. A case-history and project-oriented course, exploiting industry-standard software tools.


6. SW Testing and Quality Assurance

Effective software testing is the hallmark of trustworthy software systems. In this course, participants learn about the various modes of testing needed for quality software systems, including:

 

  • Getting an intensive look at real-world software testing coupled with a liberal number of case histories.
  • Building a library of test cases using call setup, clearing, restart, and reset state diagrams.
  • Learning to appreciate boundary conditions in structural and functional testing.
  • Testing two sorting routines to determine if boundary conditions and performance requirements are met.
  • Building test cases with orthogonal array tables.
  • Exploring alternative test approaches, such as negative testing and risk-based testing, to certify software reliability.

 


7. Agile Software Development

The focus of this course is to prepare software developers and organizations interested in leveraging the merits of an Agile development environment. The course addresses the principles and practices of Agile development, such as Scrum, Kanban, Lean, extreme programming, and test-driven development, while relating the agile methods to the more traditional SDLC. Candidates will learn how to use Agile tools and techniques, such as user stories, sprints, stand-ups, WIP, and retrospectives to manage and prioritize work, and to measure progress and success. The course will also cover how to leverage and measure the benefits of Agile, while overcoming the common challenges that teams face when adopting Agile.

 

Throughout the course, candidates will learn how agile teams are formed, the roles of IT and non-IT stakeholders, and how to effectively communicate and collaborate with other members of the development team. The course will also cover Agile testing and integration, as well as deployment and maintenance. By the end of the course, students will have the knowledge and skills they require to effectively build and sustain an Agile development environment to deliver high-quality software on time and within budget.  Candidates will understand how to establish and implement an agile project efficiently and effectively, giving them tools and practices for completing routine and complex project activities spanning from project initiation to project close-out.  

8. Scrum

Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems.  In a nutshell, Scrum requires a Scrum Master to foster an environment where:

 

  • A Product Owner orders the work for a complex problem into a Product Backlog.


  • The Scrum Team turns a selection of the work into an Increment of value during a Sprint.


  • The Scrum Team and its stakeholders inspect the results and adjust for the next Sprint.

 

Candidates will learn:

 

  1. What scrum is and why it is so powerful for delivering even the most complex project on time.
  2. Feel confident in sitting the Scrum Open Assessment prior to sitting Scrum Certification
  3. Explain what the Scrum practices are
  4. Understand techniques to deliver your project on time
  5. Explain the difference between Agile and Scrum
  6. Explain what the Waterfall Model is and why it is less flexible than Agile
  7. Understand what Agile is & how it differs from Scrum
  8. Explain the difference between roles, events and artifacts
  9. Understand what was updated in the latest version of the scrum guide

9. Advanced DevOps Method for Software Development

DevOps (Development Operations) is a set of practices that combines software development (Dev) and IT Operations (Ops), in concert with design thinking. It aims to shorten the systems development lifecycle and provide continuous delivery with high software quality.  DevOps is a practice that allows a single team to manage the entire application development life cycle, that is, development, testing, deployment, and operations.  The aim of DevOps is to shorten the system’s development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives. 
 
DevOps initiatives can create cultural changes in companies by transforming the way operations, developers, and testers collaborate during the development and delivery processes. Getting these groups to work cohesively is a critical challenge in enterprise DevOps adoption. DevOps is as much about culture, as it is about the toolchain.
 
DevOps stresses the collaboration and communication of software development (Dev) and IT Operations (Ops) within an organization.
The purpose of this course is to provide candidates with in-depth knowledge of the DevOps life cycle, DevOps pipeline, DevOps tools (e.g., Git, Jenkins, Docker, Ansible, Terraform, Kubernetes, Prometheus, Grafana), and management considerations for deploying DevOps.. This course will prepare  candidates to become a certified practitioner through best practices in Continuous Development, Configuration Management and Continuous Integration, and finally, Continuous Monitoring of software throughout its development life cycle.


Topics addressed include:

  • Understanding the DevOps Concepts and DevOps Tools
  • Processes of Continuous Development, Deployment, Management, and Monitoring
  • Top strategies for initiating and expanding DevOps initiatives
  • Deploying the main DevOps tools
  • Implementing automated system update and DevOps lifecycle

 

12. Engineering Applications for the Web

This course prepares candidates interested in a career in web application development, while focusing on becoming a full-stack developer.  Understanding the skills required for this role and how it incorporates knowledge of the front end and back end of an application is vital. It addresses what a full-stack developer does, the skills needed for this role, and how to become one.


A full-stack developer is a programmer who works within software development and is knowledgeable in both the front end and back end of an application. They work to create a seamless experience through their diverse skill set. They are also well-versed in databases, server configuration, and user interface.  It is important to note that  a full-stack developer is not required to know everything, but having an overall understanding of what is going on in the front end and back end is essential.


Front end refers to what users see when they open a browser or application. In other words, the front end deals with the user interface. When a person interacts with a website, they are using the front end. Front-end developers focus on user engagement, experience and interface. They use programming languages such as HTML, CSS and Javascript to build the front end of an application. Because the front end deals with the visual aspects of a site, these developers should also understand color theory, layouts and general typography rules.  Front-end roles include various professions including web designers, while the back end is handled by developers and engineers. 


UI (User Interface) developers combine design, psychology, and coding to create user interfaces for software applications, websites, or mobile apps. It provides a smooth  attractive user experience by researching market trends, customer preferences, and brand strengths by using programming code to craft graphic materials and interactive programs that users see and interact with.


Front end topics addressed in this course include:


  • HTML/CSS: HTML helps a developer create website or application content. CSS is used to create an aesthetically pleasing design and layout.
  • Javascript: Developers use JavaScript to create automation, animation and interactivity. This type of programming language is rising in popularity, so understanding how it works is essential.


Back end refers to the part of a site or application that users don't see. Back-end developers write code that creates communication between the database and the browser to ensure the site is working properly. Other back-end components include automated testing frameworks, cybersecurity, server configuration and network scalability.  Back-end developers focus on the functionality of the site or application through coding. They use various programming languages such as Java, PHP, Ruby on Rails, Python, and SQL to get the job done. Ultimately, the back end creates a seamless experience for the end-user of an application or site.


Back end topics addressed in this course include:


  • Python: Python has ample libraries and frameworks. This makes it a great tool for back-end developers.
  • PHP: While this programming language can be used for front- and back-end development, it’s most commonly used on the back end to create page content, gather form data or send and receive cookies.
  • SQL: SQL allows programmers to manage records, access and manipulate databases.
  • Git: Git ensures all code-base changes are being tracked. This is highly useful when working in a team and need to make any modifications or updates to the code.


Full stack topics build on the front-end and back-end technical skills by including:

 

  • Databases and web storage;  Every site and application will require managed databases. Understanding how data storage works and knowing how to connect a database with a programming language is fundamental.
  • HTTP and REST: Hypertext Transfer Protocol (HTTP) fosters communication between web clients and servers, whereas Representational State Transfer (REST) provides standards and constraints for the creation of web services. REST API allows for seamless communication between the front end and back end of an application. As a full-stack developer, it's important to understand how HTTP and REST interact.


Web architecture: Integration is essential, hence while it is important to understand how to code,  how data should be structured, how to separate files, and where to perform computational tasks, how they all must work cohesively together is key. This demands having a good understanding of web architecture.


After completing this course, participants will understand how to address the major challenges and opportunities in building scalable and highly available applications using the Web. The course focuses on the set of best practices to attain significant value from Web applications.


13. Engineering Applications for the Cloud

This course introduces the concepts that are the fundamental properties of applications in the cloud including “autonomy”, “elasticity”, and “statelessness”. It also presents proven guidelines for how to build new components and how to integrate existing applications to leverage the new opportunities provided by Cloud.


After completing this course, participants will understand how to address the major challenges to build scalable and highly available applications in the cloud. They will learn how to achieve scalability based on coupling the components of an application in a “loose manner”, including the major technological underpinning to achieve loose coupling; message queuing. It became clear that avoiding keeping state within components is another key contributor to scalability and high availability. This implies to exchange state within messages. Workload management and watchdog techniques are understood as important for elasticity. The course focuses on the set of best practices to attain significant value from Cloud applications.

As firms engage in the digital transformation and focus their investments in leveraging information technology for competitive advantage and performance improvements, it is essential to understand how to effectively and efficiently manage their information technology resources. There are numerous choices to be made about managing IT resources and it is essential to ensure IT and non-IT executives across the firm work in harmony.


Experience has made it clear that firms need well-thought out organizational structures, skills, processes, and decision rights to ensure that the decisions about how to leverage IT investments are well thought out and integrated across the enterprise. This course will help candidates understand the fundamental decisions related to the management of IT resources and the types of organizational structures, sourcing, governance, and processes that will help effectively and efficiently attain value to the enterprise. It concentrates on developing the candidates’ competency in current/emerging issues in creating and coordinating the key activities necessary to manage the day-to-day tactical and operational IT functions of an enterprise, as IT becomes ingrained in all aspects of the business.


Topics include: 

 

  • Enhancing IT-business alignment
  • Strategic, Tactical, and Operational IT governance practices
  • Improving IT's key business processes
  • IT organizational structure alternatives
  • Demonstrating the value of IT
  • Evolving role of the CIO
  • Trends in sourcing/outsourcing
  • Sustaining systems integration
  • Managing emerging technologies and change
  • Human resource and skills considerations

 


IT organizations must be able to leverage new technologies. This course focuses on how organizations can effectively and efficiently assess trends and emerging SMAC (Social, Mobile, Analytics, Cloud) technologies, and analyzing and developing new application systems. Participants will learn how to help their organization define, select, and adopt new information technologies. This course will introduce candidates to new directions in information systems and effective approaches for evaluating their relevance and applicability to their business environments as well as the new challenges and problems that they present. Candidates will learn about emerging technologies and the latest design trends in data and knowledge, networks and applications in terms of what issues they address and in particular, how organizations can exploit them for competitive advantage.


Topics include: Creating a business case for an emerging information technology, identifying factors affecting the successful adoption of new information technologies, identifying the key attributes, business benefits, risks, and cost factors of a new technology, knowing how to effectively use advanced search and selection metrics for identifying and selecting new technology, describing technology trends that presently drive or are expected to drive the selection of new technologies over the next decade and providing organizational structures and frameworks that guide the enhanced adoption and capitalization related to what new technologies and approaches can offer.


17. Security Systems (Select from Cyber Security )
 


18. Project Management Game: Challenges of Egypt: (Optional)

This 1-day business simulation is a dynamic business simulation in which IT (and preferably non-IT) managers can come together to enhance their SW engineering and project management skills. In this simulation, a group of participants plays the management team responsible for building the pyramids of Egypt.


To do that, the group goes back in time where they meet the Pharaoh. The Pharoh has given his project leader instructions to build a pyramid, so that he can make the journey to the hereafter along with everything that is precious to him. The project leader finds a suitable location for the pyramid, a quarry for the stone, and a village for the workers. He also arranges the infrastructure between these locations. It is the teams’ responsibility to get the job done. The team will have to set up a project organization, analyze risks, and create a plan.


During the four rounds of this interactive workshop, the most important aspects of best practices for project management will be experienced. This is done interactively. The building process for a pyramid will actually be simulated letting the participants experience the control elements of effective/efficient project management. During the building process all team members have a role within the project management environment. The project team is given the task of building the pyramid within a fixed time. The process is affected by real-life events that actually occurred during that period of time. Throughout the building process there will be several reflection moments to learn from the Egyptians and from the teams own experience. At the end of the project, when the pyramid has been built, there will be a project evaluation and all the instructive points will be described.

19. Quantum Computing

Candidates will understand the current and emerging application and impact of quantum technologies. Topics include the current/emerging industry implications and state of development and production of quantum hardware, software, and other products and services that make use of quantum mechanics. Candidates will be exposed to a variety of industry specific and general business software solutions for quantum computing, with a focus on development tools and programming languages, as well as the advancement of quantum consulting services.  The course begins with an overview of traditional and quantum computing and quantum physics, followed by a study of the algorithm construction process. A more advanced and technical quantum computing course will dig deeper and require greater knowledge of math, coding, and data science.

Depending on ones background and career objectives, candidates should also consider courses from GIIMs Project Management Certificate

Share by: