CCS356
OBJECT
ORIENTED SOFTWARE ENGINEERING
COURSE
OBJECTIVES:
• To understand Software Engineering
Lifecycle Models
• To Perform software requirements
analysis
• To gain knowledge of the System Analysis
and Design concepts using UML.
• To understand software testing and
maintenance approaches
• To work on project management scheduling
using DevOps
UNIT
I SOFTWARE PROCESS AND AGILE
DEVELOPMENT
Introduction
to Software Engineering, Software Process, Perspective and Specialized Process
Models –Introduction to Agility-Agile process-Extreme programming-XP Process-Case
Study.
UNIT
II REQUIREMENTS ANALYSIS AND
SPECIFICATION
Requirement
analysis and specification – Requirements gathering and analysis – Software
Requirement Specification – Formal system specification – Finite State Machines
– Petrinets – Object modelling using UML – Use case Model – Class diagrams –
Interaction diagrams – Activity diagrams – State chart diagrams – Functional
modelling – Data Flow Diagram- CASE TOOLS.
UNIT
III SOFTWARE DESIGN
Software
design – Design process – Design concepts – Coupling – Cohesion – Functional
independence – Design patterns – Model-view-controller – Publish-subscribe –
Adapter – Command – Strategy – Observer – Proxy – Facade – Architectural styles
– Layered - Client Server - Tiered - Pipe and filter- User interface
design-Case Study.
UNIT
IV SOFTWARE TESTING AND MAINTENANCE
Testing
– Unit testing – Black box testing– White box testing – Integration and System
testing– Regression testing – Debugging - Program analysis – Symbolic execution
– Model Checking-Case Study
UNIT
V PROJECT MANAGEMENT
Software
Project Management- Software Configuration Management - Project Scheduling-
DevOps: Motivation-Cloud as a platform-Operations- Deployment Pipeline:Overall
Architecture Building and Testing-Deployment- Tools- Case Study
COURSE
OUTCOMES:
CO1:
Compare various Software Development Lifecycle Models
CO2:
Evaluate project management approaches as well as cost and schedule estimation
strategies.
CO3:
Perform formal analysis on specifications.
CO4:
Use UML diagrams for analysis and design.
CO5:
Architect and design using architectural styles and design patterns, and test
the system
PRACTICAL
EXERCISES:
LIST OF EXPERIMENTS:
1. Identify a software system that needs to
be developed.
2. Document the Software Requirements
Specification (SRS) for the identified system.
3. Identify use cases and develop the Use
Case model.
4. Identify the conceptual classes and
develop a Domain Model and also derive a Class Diagram from that.
5. Using the identified scenarios, find the
interaction between objects and represent them using UML Sequence and
Collaboration Diagrams
6. Draw relevant State Chart and Activity
Diagrams for the same system.
7. Implement the system as per the detailed
design
8. Test the software system for all the
scenarios identified as per the usecase diagram
9. Improve the reusability and
maintainability of the software system by applying appropriate design patterns.
10. Implement the modified system and test it
for various scenarios.
SUGGESTED
DOMAINS FOR MINI-PROJECT:
1. Passport automation system.
2. Book bank
3. Exam registration
4. Stock maintenance system.
5. Online course reservation system
6. Airline/Railway reservation system
7. Software personnel management system
8. Credit card processing
9. e-book management system
10. Recruitment system
11. Foreign trading system
12. Conference management system
13. BPO management system
14. Library management system
15. Student information system
TEXT
BOOKS
1. Bernd Bruegge and Allen H. Dutoit,
“Object-Oriented Software Engineering: Using UML, Patterns and Java”, Third
Edition, Pearson Education, 2009.
2. Roger S. Pressman, Object-Oriented
Software Engineering: An Agile Unified Methodology, First Edition, Mc Graw-Hill
International Edition, 2014.
REFERENCES
1. Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli,
Fundamentals of Software Engineering, 2nd edition, PHI Learning Pvt. Ltd.,
2010.
2. Craig Larman, Applying UML and Patterns,
3rd ed, Pearson Education, 2005.
3. Len Bass, Ingo Weber and Liming Zhu,
“DevOps: A Software Architect‘s Perspective”, Pearson Education, 2016
4. Rajib Mall, Fundamentals of Software
Engineering, 3rd edition, PHI Learning Pvt. Ltd., 2009.
5. Stephen Schach, Object-Oriented and
Classical Software Engineering, 8th ed, McGraw-Hill, 2010.