COURSE OBJECTIVE:
· To understand the phases in a software project, estimate cost and effort.
· To describe fundamental concepts of requirements engineering and Analysis Modeling.
· To use the various software design methodologies
· To learn various testing techniques and maintenance measures.
· To analyze agile development and Devops
COURSE OUTCOME(S):
On successful completion of this course, the student will be able to:
CO1 - Identify the key activities in process model and estimate project cost and effort required by
applying software engineering principles
CO2 - Understand and analyze the requirements and construct their models
CO3 - Apply systematic procedure for software design
CO4 - Estimate and contrast the various testing and maintenance activities
CO5 -Identify and Analysis agile development and Devops
CO6 - Adapt unethical issues and apply ethical practices for a given case study
UNIT - I SOFTWARE PROCESS AND PLANNING 9
Introduction to Software Engineering; Objectives, Principles and Practices; The Software Development Life Cycle : Pre-development phases of the SDLC – Development specific phases of the SDLC – Post- development phases of the SDLC; Methodologies Paradigm and Practices : Process methodologies – Development paradigms – Development practices; Project Planning Process; Software Project Estimation: Decomposition techniques – Empirical estimation models – The make/buy decision – Project scheduling; Risk Management; Handling Ethical Dilemmas.
UNIT - II REQUIREMENTS ANALYSIS AND SPECIFICATION 9
Software Requirements: Functional and non-functional – Security requirements – User requirements – System requirements – Software requirements document; Requirement Engineering Process: Feasibility studies – Requirements elicitation and analysis – Requirements validation – Requirements Management; Classical Analysis: Structured system analysis; Requirement modelling tools.
UNIT - III SOFTWARE DESIGN 9
Design Concepts: Design process – Design concepts – Modularity, Coupling and cohesion – Design model – Modeling principles; Structured Design; Architectural Design: Architectural styles; Architecture for Network based Applications – Decentralized Architectures.
UNIT - IV SOFTWARE TESTING 9
Software Testing Fundamentals; Internal and External Views of Testing: White box testing – Basis path testing – Control structure testing– Black box testing – Unit testing – Integration testing – Regression testing – Validation testing – System testing – Security testing; Testing Tool; Debugging; Software Implementation: Coding Practices and Principles; Maintenance: Types.
UNIT - V AGILE DEVELOPMENT AND DEVOPS 9
Agile Development: Agile Teams – Team and Scrum – Branches – Pull Requests – Reviews – Integration- Agile Iterations – Reporting and fixing bugs; Dev/Ops: From development to deployment – Three-Tier-Responsiveness, Service level objectives, and Apdex – Releases and feature flags – Monitoring and finding bottlenecks – Improving rendering and database performance with caching; Security: Defending customer data in application
TOTAL: 45 PERIODS
TEXT BOOKS:
1. Roger S Pressman, Bruce R Maxin ―Software Engineering – A Practitioner‘s Approach, McGrawHill International Edition, Eighth Edition, 2015.
2. Armando Fox and David Patterson, Engineering Software as a Service: An Agile Approach Using Cloud Computing, Strawberry Canyon LLC, Second Beta Edition, 2021.
REFERENCE BOOKS:
1. Ian Sommerville, ― Software Engineering, Pearson Education Asia, Tenth Edition, 2015.
2. Stephen R Schach, ― Software Engineering‖, Tata McGraw-Hill Publishing Company Lim-ited,2007.
3. Brian Albee, Hands-On Software Engineering with Python, Packt Publishing, 2018.
4. Kelkar S A,― Software Engineering, Prentice Hall of India, 2007.