PRINCIPLES OF SOFTWARE DEVELOPMENT

Paper Code: 
MCA 124
Credits: 
04
Periods/week: 
04
Max. Marks: 
100.00
Objective: 

Course Objectives:

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
  3. (UML)
  4. Interpret analysis, design and testing principles for software project development.
  5. Demonstrate and evaluate real time projects with respect to software engineering principles.
  6. Select appropriate software design & development processes and for software development.
  7. Develop skills to construct software of high quality that is reliable and reasonably easy to understand,
  8. Modify and maintain

 

 Course Outcomes(COs):

 

Learning Outcome (at course level)

 

Learning and teaching strategies

Assessment Strategies

  1. Learn need for software specifications also will be able to classify different types of software requirements and their gathering techniques.
  2. Convert the requirements model into the design model and demonstrate use of software and user interface design principles.
  3. Understand Software Design Process, Advanced modeling in UML and different Software testing techniques.
  4. Design & develop the software projects using techniques learnt.
  5. Identify risks and manage change to assure quality in software projects.
  6. Apply testing principles on software projects and understand maintenance concepts.

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, SDLC

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

Size Estimation, Cost Estimation, Models, Static, single variable models, Static, Multivariable Models, COCOMO, The Putnam Resource Allocation Model, Risk Identification and Projection: RMMM, Project scheduling and Tracking. Object- oriented concepts and principles. software risks, Risk identification, Risk projection, risk refinement, risk mitigation, monitoring and management, the RMMM plan 

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.

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: 

Essential Readings:

·      Roger S Pressman, Bruce R Maxim, “Software Engineering: A Practitioner’s Approach”, 8th edition, Tata McGraw Hill, 2014.

·      Ian Sommerville, “Software engineering”, 9th edition, Addison Wesley Longman, 2014.

·      James Rumbaugh. Micheal Blaha, “Object oriented Modeling and Design with UML”, 5th Edition, 2017.

 

Reference Books:

·      Simon Bennett, Steve McRobb and Ray Farmer, “ Object-Oriented Systems Analysis and Design Using UML” 5th Edition,McGraw Hill Education, 2014

·      Charles Ritcher, “Designing Flexible Object Oriented systems with UML”, Tech Media, 2008.

Grady Booch, James Rumbaugh, Ivar Jacobson., “The Unified Modeling Language User Guide”, 2nd Edition, Pearson, 2007.

REFERENCES: 

E Resources

·      Software Engineering, IIT Kharagpur , Prof. Rajib Mall https://youtu.be/w0LQh0vCeqI

·       Introduction to Software Engineering Lecture Series on Software Engineering by Prof.N.L. Sarda, Prof. Umesh Bellur https://youtu.be/Z6f9ckEElsU

·      Software Project Management, IIT Kharagpur by Prof. Rajib Mall, Prof. Durga Prasad Mohapatra https://youtu.be/w9BSk8MGOGM https://youtu.be/w9BSk8MGOG

·      Modern Application Development, IIT Madras Prof. Aamod Sane , Prof. Abhijat Vichare, Prof. Madhavan Mukund https://youtu.be/FPtLsZ62pdA

 

Journals 

·         Journal of Software Engineering : Asian Network for Scientific Information

·         Journal of Software Engineering Research and Development : Springer

·         International Journal of Software Engineering, Technology and Applications: Inderscience publisher

Journal of Systems and Software: Elsevier 

Academic Year: