Suggested Teaching Guidelines for
Advanced Software Development Methodologies – PG-DAC August 2019
Duration: 46 class room hours + 44 lab hours (90hrs)
Objective: To reinforce knowledge of Advanced Software development Methodologies.
Prerequisites: Fundamentals of Computers
Evaluation method: Theory exam– 40% weightage
Lab exam – 40% weightage
Internal exam– 20% weightage
List of Books / Other training material
Test Book:
1. Software Engineering by Chandramouli
Reference:
1. Software engineering by Ian Sommerville
2. Agile Project Management with Scrum by Ken Schwaber
3. The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks Jr.
4. User Stories Applied: For Agile Software Development 2016 by Mike Cohn
5. Continuous Delivery, Integration, and Deployment with DevOps: Dive into the core
DevOps strategies by Sricharan Vadapalli
Software Engineering
Session 1
Lecture
Introduction to software engineering
Importance of Software engineering
Software Development Life Cycle
Assignment –Lab
Prepare software requirement specification for web application
Session 2 ,3
Design and Architectural Engineering
a. Characteristics of Good Design
b. Function Oriented vs Object Oriented System
c. Modularity, Cohesion, Coupling, Layering
d. Design Models
e. UML
Object Oriented Analysis and Design
Session 4
Lecture
Introduction to Agile development model
Agile development components
Benefits of Agile
Introduction to Atlassian Jira
o Add Project
PG-DAC, Advanced Software Methodology
Suggested Teaching Guidelines for
Advanced Software Development Methodologies – PG-DAC August 2019
o Add Tasks and sub-tasks
o Create sprints with tasks
Session 5
Lecture
Introduction to different tools used for agile web development
Case study of developing web application using agile methodology
Assignment –Lab
Create different sprints in Atlassian Jira for different features
DevOps
Session 1
Lecture
Introduction to DevOps
DevOps ecosystem
DevOps phases
Lab
Read about DevOps Tools
Session 2
Lecture
Introduction to Microservices
Microservice Architecture
Fragmentation of business requirement
Deployment pattern
API gateway
Service Discovery
Database Management for Microservices
Lab
Create micro-services
Session 3 and 4
Lecture
Introduction to containerisation
Introduction to docker
Creating docker images using Dockerfile
Container life cycle
Lab
Install and configure docker
Create docker image using Dockerfile
Start docker container
Connect to docker container
Copy the website code to the container
Use docker management commands to
o List the images
o List the containers
o Start and stop container
o Remove container and image
PG-DAC, Advanced Software Methodology
Suggested Teaching Guidelines for
Advanced Software Development Methodologies – PG-DAC August 2019
Session 5 and 6
Lecture
Introduction to YAML
Introduction to Docker Swarm and Docker Stack
Introduction to Kubenetes
Creating Kubernetes cluster
Creating service in Kubernetes
Deploying an application using dashboard
Introduction to Istio Service Mesh
Lab
Configure Kubernetes
Configure Kubernetes Dashboard
Setup a Kubernetes cluster
Access application using Kubernetes service
Deploy the website using Dashboard
Session 7
Lecture
Introduction to delivery pipeline
Introduction to Jenkins
Jenkins management
Adding slave node to Jenkins
Building a delivery pipeline
Selenium integration with Jenkins
Lab
Install and configure Jenkins
Build a pipeline job using Jenkins
Create a maven project for TestNG
Add TestNG test suite in the project
Integrate it with Jenkins
Git
Session 1
Lecture
Developing an application in a team
Issues developers face when working in a team
Introduction to code versioning system
History of code versioning system
o Different tools available for versioning
o Software development workflow
Session 2
Lecture
Introduction to git
Introduction git repository and git structure
Adding code to git
PG-DAC, Advanced Software Methodology
Suggested Teaching Guidelines for
Advanced Software Development Methodologies – PG-DAC August 2019
Creating and merging different git branches
Assignment –Lab
Create a local git repository
Commit the initial code
Update the code
Use git commands to
o Get the updated files
o List the changes
o Create branch
o Merge branch
Session 3
Lecture
Introduction to GitHub
Pushing and pulling the code to remote repository
Creating pull requests
Reviewing code and merging the branches on GitHub
Assignment –Lab
Create a repository on GitHub
Push the local changes to GitHub
Pull the code from GitHub
Create and checkout a branch
Add a new feature, commit and push changes to GitHub
Create a pull request
Review the changes on GitHub and merge the branch into the main branch
Testing
Session 1
Lecture
Introduction to software testing
Why testing code is important
Verification and validation
Quality Assurance vs Quality Control vs Testing
Principles of software testing
Assignment –Lab
Read more testing concepts used in the industry
Session 2
Lecture
Introduction to STLC and V Model
Types of testing: manual and automation
Tools used for automation testing
Introduction to testing methods: white-box, black-box and grey-box
Introduction to functional testing: (* students are supposed to learn the concepts)
Introduction to non-functional testing: (* students are supposed to learn the
concepts)
Assignment –Lab
Create a test plan for project
Document the use cases
Create test case document for different sprints (designed in SE)
PG-DAC, Advanced Software Methodology
Suggested Teaching Guidelines for
Advanced Software Development Methodologies – PG-DAC August 2019
Session 3 and 4
Lecture
Introduction to Selenium (use Eclipse IDE)
Load web driver
Create selense commands
o locators: by ID, name, class, tag name, XPath
Add interactions
o text box
o radio button selection
o check box selection
o drop down item selection
o keyboard actions
o mouse actions
o multi select
Assignment –Lab
Download and configure Selenium
Create a test suit
Add commands and interactions
Session 5
Lecture
Introduction to TestNG
Introduction to TestNG annotations
o BeforeSuite, AfterSuite, BeforeClass, AfterClass, BeforeTest, AfterTest
o BeforeGroups, AfterGroups, BeforeMethod, AfterMethod
o DataProvider, Factory, Parameters, Test
HTML test result reporting
Assignment –Lab
Download and configure TestNG
Create test suit
Add TestNG annotations
Cloud
Session 1
Lecture
Introduction to Cloud
Introduction to Virtualization
Virtualization types: type1, type2
Containerisation
Cloud Computing, Cloud SPI Model, Cloud Computing Types (Public, Private and
Hybrid), Cloud Security (SLA and IAM).
Virtualization, Hardware Virtualization, Para-Virtualization, Cloning, Snapshot and
Template
Containerization, Operating System Virtualization
Assignment –Lab
Create and configure VM using VBox
Deploy code on VM
PG-DAC, Advanced Software Methodology
Suggested Teaching Guidelines for
Advanced Software Development Methodologies – PG-DAC August 2019
Session 2
Lecture
Cloud architecture
Service models: IaaS, PaaS, SaaS
Deployment models: Private, Public, Hybrid
Services provided by Cloud (Compute, Database, Developer Tools, Storage, Media,
Mobile, Web, Security, Integration etc.)
Cloud development best practices
Assignment –Lab
Exploring various services provided by cloud providers like App Services, Web apps,
API Apps, Search, Database Servers on VMs, VM Scale Sets, Bot Services and other
cloud applications.
Session 3
Lecture
Introduction to AWS
Services provided by AWS: EC2, Lambda, S3
Assignment –Lab
Create AWS EC2 instance
Create AWS Lambda
Create AWS S3 bucket
Create AWS VPC
PG-DAC, Advanced Software Methodology