Advanced Software Development-1
Advanced Software Development-1
Advanced Software Development-1
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
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
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
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)
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
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