PRINCIPLES OF SOFTWARE DEVELOPMENT

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

This course enables the students to

  1. Interpret analysis, design and testing principles for software project development.
  2. Analyze real time projects with respect to software engineering principles.
  3. Select appropriate software design, development processes and for software development.
  4. Develop skills to construct software of high quality that is reliable and reasonably easy to understand,  Modify and maintain.

Course Outcomes(COs):

 

Learning Outcome (at course level)

 

Learning and teaching strategies

Assessment Strategies

CO23.Demonstrate risks and manage change to assure quality in software projects.

CO24.Analyze the size and cost estimation of software projects using different estimation models.

CO25.Evaluate         the       design model            and demonstrate use of software and user interface design principles.

CO26.Design and develop 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.

 

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: 
  • 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”, 2nd Edition, 2007.

 

REFERENCES: 
  • Simon Bennett, Steve McRobb and Ray Farmer, “ Object-Oriented Systems Analysis and Design Using UML” 4thEdition,McGraw Hill Education, 2010
  • 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
Academic Year: