Advanced Software Development-1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Suggested Teaching Guidelines for

Advanced Software Development Methodologies – PG-DAC February 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 February 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 February 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 February 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 February 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 February 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

You might also like