Software Engineering — Complete BSCS Notes
Introduction to Computer-based System Engineering
Definition: Software Engineering is the disciplined and systematic approach to designing, developing, testing, deploying, and maintaining software systems. It applies engineering principles to software so that systems are reliable, efficient, maintainable, and cost-effective.
Why Software Engineering?
• reduces development cost
• improves quality
• supports teamwork
• manages c
• reduces development cost
• improves quality
• supports teamwork
• manages c
Project Management
Definition: Project management is the planning, organizing, monitoring, and controlling of software development activities to achieve goals within time and budget.
Main Areas:
• Scope management
• Time scheduling
• Cost estimation
• Human resource management
• Communication management
• Risk management
• Scope management
• Time scheduling
• Cost estimation
• Human resource management
• Communication management
• Risk management
Scheduling Tools:
Gantt Chart, PERT, CPM, milestone charts.
Gantt Chart, PERT, CPM, milestone charts.
Risk Management:
Identify risks → analyze impact → mitigation plan.
Example: developer leaves project, server failure.
Identify risks → analyze impact → mitigation plan.
Example: developer leaves project, server failure.
Cost Estimation:
COCOMO model, expert judgment, function points.
COCOMO model, expert judgment, function points.
Example: 4-member team builds LMS in 3 months with frontend, backend, QA, and documentation roles.
isis.
Software Types:
• System software
• Application software
• Embedded software
• Web and mobile applications
• AI-based systems
• System software
• Application software
• Embedded software
• Web and mobile applications
• AI-based systems
Real Example: University Management System including admissions, fee, attendance, results, and teacher portal.
Project Management
Definition: Managing software projects in terms of time, cost, resources, and scope.
Subtopics: Gantt charts, scheduling, budgeting, risk management, team roles.
Example: Assigning tasks to frontend and backend developers with deadlines.
Software Specification & Requirements Engineering
Definition: This phase focuses on gathering, analyzing, validating, and documenting what the software must do.
Functional Requirements:
Features the system must perform.
Example: student login, fee voucher generation.
Features the system must perform.
Example: student login, fee voucher generation.
Non-Functional Requirements:
Performance, security, usability, reliability, response time.
Performance, security, usability, reliability, response time.
Requirement Gathering Techniques:
Interviews, questionnaires, observation, JAD sessions.
Interviews, questionnaires, observation, JAD sessions.
SRS (Software Requirement Specification):
A formal document describing all requirements, constraints, assumptions, and interfaces.
A formal document describing all requirements, constraints, assumptions, and interfaces.
Example Chapter Style:
Problem statement → stakeholders → use cases → business rules → acceptance criteria.
Problem statement → stakeholders → use cases → business rules → acceptance criteria.
System Modelling
Definition: Visual representation of system structure and behavior.
Subtopics: Use case diagrams, class diagrams, data flow diagrams, sequence diagrams.
Example: Use case diagram for library system.
Software Prototyping
Definition: Early working model of software for feedback and validation.
Types: Throwaway prototype, evolutionary prototype.
Example: UI mockup of LMS portal before final development.
Software Design
Architectural Design: Defines high-level modules and communication.
Examples: layered architecture, client-server, microservices.
Examples: layered architecture, client-server, microservices.
Object-Oriented Design:
Classes, objects, inheritance, encapsulation, polymorphism, class relationships.
Classes, objects, inheritance, encapsulation, polymorphism, class relationships.
UML Modeling:
Use case, class, sequence, activity, state, component diagrams.
Use case, class, sequence, activity, state, component diagrams.
Function-Oriented Design:
Breaks system into modules and functions using DFDs and structure charts.
Breaks system into modules and functions using DFDs and structure charts.
User Interface Design:
Layout, navigation, color hierarchy, accessibility, usability principles.
Layout, navigation, color hierarchy, accessibility, usability principles.
Detailed Example:
Dashboard → login → course panel → fee module → result module with complete screen flow.
Dashboard → login → course panel → fee module → result module with complete screen flow.
Design Principles:
Low coupling, high cohesion, modularity, reusability, abstraction.
Low coupling, high cohesion, modularity, reusability, abstraction.
Quality Assurance
Definition: Ensuring software meets standards and requirements.
Subtopics: Testing, verification, validation, reviews.
Example: Unit testing login module.
Processes & Configuration Management
Software Process: Steps followed in development like waterfall, agile, spiral.
Configuration Management: Version control and change tracking.
Example: Using Git and GitHub for version control.
Advanced Issues
Reusability: Reusing existing modules/components.
Patterns: Common design solutions like Singleton, Factory.
Example: Reusing authentication module in multiple projects.
Assignments & SDLC Deliverables
Full SDLC:
Planning → Requirement Analysis → Design → Coding → Testing → Deployment → Maintenance
Planning → Requirement Analysis → Design → Coding → Testing → Deployment → Maintenance
Deliverables per Phase:
• Planning: feasibility report
• Analysis: SRS
• Design: UML diagrams
• Coding: source code
• Testing: test cases / bug report
• Deployment: release notes
• Maintenance: update log
• Planning: feasibility report
• Analysis: SRS
• Design: UML diagrams
• Coding: source code
• Testing: test cases / bug report
• Deployment: release notes
• Maintenance: update log
Mini Project Example:
Hostel Management System with room allocation, fee tracking, complaints, reports.
Hostel Management System with room allocation, fee tracking, complaints, reports.
Exam Style Questions:
Explain waterfall model, compare agile vs spiral, define verification and validation, write note on SCM.
Explain waterfall model, compare agile vs spiral, define verification and validation, write note on SCM.

0 Comments