IF4201 Software Industrialization Syllabus:
IF4201 Software Industrialization Syllabus – Anna University PG Syllabus Regulation 2021
COURSE OBJECTIVES:
To provide students with a theoretical understanding of current best practices in software engineering and its Lifecycle Models
To provide students with practical experience to produce high-quality software with an emphasis on design quality and technical evaluation
To do project management and cost estimation
To gain knowledge of the System Analysis and Design concepts
To understand software testing approaches
To gain knowledge about agile modelling and DSDM with DevOps practices
To have hands on experience in developing a software project by using various software engineering principles and methods in each of the phases of software development
UNIT I SOFTWARE ENGINEERING
Introduction to Software Engineering: The evolving role of software – changing nature of software – software myths. A Generic view of process: Software engineering- a layered technology – a process framework – the capability maturity model integration (CMMI) – process patterns -process assessment – personal and team process models – Process models: The waterfall model – incremental process models – evolutionary process models – the unified process.
UNIT II REQUIREMENT ANALYSIS
Requirement analysis and specification – Requirements gathering – Software Requirements: Functional and non-functional requirements – user requirements – system requirements- interface specification – the software requirements document – Requirements engineering process: Feasibility studies – requirements elicitation and analysis – requirements validation – requirements management -System models: Context models – behavioural models – data models – object models – structured methods and analysis.
UNIT III SOFTWARE ARCHITECTURE
Creating an architectural design: software architecture – data design – architectural styles and patterns – architectural design – conceptual model of UML, basic structural modelling, class diagrams, sequence diagrams, collaboration diagrams, use case diagrams, component diagrams. Software design – Design process – Design concepts – Coupling – Cohesion – Functional independence – Design patterns – Model-view-controller – Publish-subscribe model
UNIT IV SOFTWARE TESTING
Testing Strategies: A strategic approach to software testing – test strategies for conventional software – black-box and white-box testing – validation testing – system testing – the art of debugging – Product metrics: Software quality – metrics for analysis model – metrics for design model – metrics for source code – metrics for testing – metrics for maintenance.
UNIT V SOFTWARE METHODOLOGIES
Agile Modelling with XP- Introduction, Agile Modelling – Principles, Comparing XP and Agile Modelling, Scrum Methodology- The roles of Scrum, Advantages of Scrum. Dynamic Systems Development Methodology- Introduction, Overview of DSDM, the Principles of DSDM, Phases of DSDM, Core Techniques Used in DSDM. XP Tools- Introduction, JAVA and XP, Tools and Philosophies, Open-source Toolkit. DevOps : Motivation-Cloud as a platform-Operations Deployment
SUGGESTED ACTIVITIES:
1: Development of problem statement
2: Preparation of Software Requirement Specification Document, Design Documents and Testing Phase related documents
3: Preparation of Software Configuration Management and Risk Management related documents
4: Study and usage of any Design phase CASE tool
5: Performing the Design by using any Design phase CASE tools
6: Develop test cases for unit testing and integration testing
7: Develop test cases for various white box and black box testing techniques
SAMPLE PROJECTS:
1. Passport automation System
2. Book Bank
3. Online Exam Registration
4. Stock Maintenance System
5. Online course reservation system
6. E-ticketing
7. Software Personnel Management System
8. Credit Card Processing
9. E-book management System.
10. Recruitment system.
COURSE OUTCOMES:
CO1: Understand the advantages of various Software Development Lifecycle Models
CO2: Compare project management approaches as well as cost and schedule estimation strategies
CO3: Translate end-user requirements into system and software requirements and generate a high-level design of the system from the software requirements
CO4: Use UML diagrams for analysis and design
CO5: Understand the advantages Agile methodologies and of DevOps practices
CO6: Develop a simple testing report.
TOTAL :45 PERIODS
REFERENCES
1. Software Engineering, A practitioner’s Approach- Roger S. Pressman, 8th edition, McGraw Hill International Edition
2. Software Engineering, Ian Sommerville, , Pearson Education, 10th edition, 2017
3. The unified modelling language user guide, 1e Grady Booch, James Rambaugh, Ivar Jacobson, Pearson Education, 2002
4. Bernd Bruegge, Alan H Dutoit, Object-Oriented Software Engineering, 3rd edition, Pearson Education, 2009
5. Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Fundamentals of Software Engineering, 2nd edition, PHI Learning Pvt. Ltd., 2010
6. Craig Larman, Applying UML and Patterns, 3rd edition, Pearson Education, 2015
7. Len Bass, Ingo Weber and Liming Zhu, ―DevOps: A Software Architect‘s Perspective‖, 1st edition, Pearson Education, 2016
8. Rajib Mall, Fundamentals of Software Engineering, 3 rd edition, PHI Learning Pvt. Ltd., 2009
9. Stephen Schach, Software Engineering 8th edition, McGraw-Hill, 2020
10. Agile Project Management: Creating Innovative Products (Agile Software Development Series) 2nd Edition, by Jim Robert High smith, 2009