PRINCIPLES OF SOFTWARE DEVELOPMENT

Paper Code: 
24MCA124
Credits: 
04
Periods/week: 
04
Max. Marks: 
100.00
Objective: 

This course enables the students to

  1. Obtain knowledge of software engineering discipline.
  2. Learn various modeling techniques for different perspectives of object-oriented software design (UML)
  3. Interpret analysis, design and testing principles for software project development.
  4. Demonstrate and evaluate real time projects with respect to software engineering principles.
  5. Select appropriate software design & development processes and for software development.
  6. Develop skills to construct software of high quality that is reliable and reasonably easy to understand.

 

Course Outcomes: 

Course

Learning Outcome (at course level)

 

Learning and teaching strategies

Assessment Strategies

Course Code   

Course

Title

24MCA12   4

  Principles      of Software Development

(Theory)

 

  1. Categorize software requirements and software process models
  2. Construct design model and learn use of software and user interface design principles. Advanced modelling in UML
  3. Assess risks and manage change to assure quality in software projects
  4. Compare Software Design Process, and different Software quality assurance techniques.
  5. Analyse different software testing techniques
  6. Contribute effectively in course-specific interaction

Approach in teaching:

Interactive Lectures, Discussion, Demonstration, Role plays

 

Learning activities for the students:

Self-learning assignments, Effective questions, presentation, flip classroom

 

  • Assignments
  • Written test in classroom
  • Classroom activity
  • Written test in classroom
  • Semester End Examination

 

13.00
Unit I: 
Introduction to Software and Software Engineering

The Evolving Role of Software, Software: A Crisis on the Horizon and Software Myths, Software Engineering: A Layered Technology, Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process, Agility and Agile Process model, Extreme Programming, Other process models of Agile Development and Tools.

 

13.00
Unit II: 
Software Project Requirement Analysis and Specification

Software Metrics (Process, Product and Project Metrics), Software Project Estimations, Software Project Planning (MS Project Tool), Project Scheduling & Tracking, Basic idea of behavioral modeling in UML. State diagrams, Interaction diagrams, Use case diagrams, Risk Analysis & Management (Risk Identification, Risk Projection, Risk Refinement , Risk Mitigation).

Understanding the Requirement, Requirement Modeling, Requirement Specification (SRS), Requirement Analysis and Requirement Elicitation, Requirement Engineering.

 

12.00
Unit III: 
Project Planning & Scheduling

Software Metrics (Process, Product and Project Metrics), Software Project Estimations, Software Project Planning (MS Project Tool), Project Scheduling & Tracking, Basic idea of behavioral modeling in UML. State diagrams, Interaction diagrams, Use case diagrams, Risk Analysis & Management (Risk Identification, Risk Projection, Risk Refinement , Risk Mitigation).

Understanding the Requirement, Requirement Modeling, Requirement Specification (SRS), Requirement Analysis and Requirement Elicitation, Requirement Engineering.

 

12.00
Unit IV: 
Software Design & Quality Management

 Design Concepts and Design Principal, Design  Documentation,   Design   Methods:  Data  Design,  Architectural   Design, Interface Design, Component Level Design (Function Oriented Design, Object Oriented Design) (MS Visio Tool ),User Interface Design, Web Application Design, Advanced structured modeling in UML

Quality Planning: Quality Concepts, Procedural Approach to Quality Management, Software Quality assurances, software reviews, formal technical reviews, Formal approaches to SQA, Statistical Software Quality assurances, Change Management: software Configuration Management, The SCM repository, SCM Process, Configuration Management for Web Engineering.

10.00
Unit V: 
Software Testing

 Fundamentals, White  Box  Testing, Black  Box  Testing,  software  testing strategies, verification and Validation, System Testing, Unit testing, Integration testing  and Debugging.

Software Maintenance and Configuration Management: Types of Software Maintenance, Re-Engineering, Reverse Engineering, Forward Engineering, The SCM Process, Identification of Objects in the Software Configuration, Risk-Related Monitoring. Emerging Trends in software Engineering.

ESSENTIAL READINGS: 
  1. Roger S Pressman, Bruce R Maxim, “Software Engineering: A Practitioner’s Approach”, 8th edition, Tata McGraw Hill, 2014.
  2. Ian Sommerville, “Software engineering”, 9th edition, Addison Wesley Longman, 2014.
  3. James Rumbaugh. Micheal Blaha, “Object oriented Modeling and Design with UML”, 5th Edition, 2017.

 

REFERENCES: 

Reference Books:

  1. Simon Bennett, Steve McRobb and Ray Farmer, “ Object-Oriented Systems Analysis and Design Using UML” 5th Edition,McGraw Hill Education, 2014
  2. Charles Ritcher, “Designing Flexible Object Oriented systems with UML”, Tech Media, 2008.
  3. Grady Booch, James Rumbaugh, Ivar Jacobson., “The Unified Modeling Language User Guide”, 2nd Edition, Pearson, 2007.

     E Resources

  1. Software Engineering, IIT Kharagpur , Prof. Rajib Mall https://youtu.be/w0LQh0vCeqI
  2.  Introduction to Software Engineering Lecture Series on Software Engineering by Prof.N.L. Sarda, Prof. Umesh Bellur https://youtu.be/Z6f9ckEElsU
  3. Software Project Management, IIT Kharagpur by Prof. Rajib Mall, Prof. Durga Prasad Mohapatra https://youtu.be/w9BSk8MGOGM https://youtu.be/w9BSk8MGOG
  4. Modern Application Development, IIT Madras Prof. Aamod Sane , Prof. Abhijat Vichare, Prof. Madhavan Mukund https://youtu.be/FPtLsZ62pdA

Journals 

1.      

  1. Journal of Software Engineering : Asian Network for Scientific Information
  2. Journal of Software Engineering Research and Development : Springer
  3. International Journal of Software Engineering, Technology and Applications: Inderscience publisher
  4. Journal of Systems and Software: Elsevier

 

 

 

 

 

Academic Year: