Software Engineering
Software Engineering
1. Requirement Analysis
Understand what users need. Gather and analyze requirements.
2. Design
Plan the architecture and components of the software.
3. Implementation (Coding)
Write the actual program code.
4. Testing
Verify the software works correctly and meets requirements.
A process model guides how these phases are organized and executed.
plaintext
CopyEdit
2. Prototype Model
3. Evolutionary Models
5. Agile Process
Scenario:
A startup developing a mobile app for food delivery.
Chosen Model: Agile process best fits because it supports quick iterations and customer
collaboration.
Quick Quiz (MCQs)
Reflective Question
• How might the choice of process model affect the success of a software project in different
industries?
END OF MODULE 1
Overview
Project metrics help measure and track the progress, quality, and size of software projects.
Understanding these metrics is crucial for effective project management and quality assurance.
1. Software Measurement
• Types of Metrics:
o Size-Oriented Metrics:
▪ Lines of Code (LOC): Count of executable lines.
o Function-Oriented Metrics:
o Object-Oriented Metrics:
• What do we measure?
• The project team tracked LOC and Function Points to estimate effort.
• Web metrics like response time and session duration helped optimize user experience.
Overview
Object-Oriented Programming (OOP) is a paradigm centered around objects rather than actions. It
helps manage complex software through modular, reusable, and maintainable code.
1. Core Concepts
• Use Cases:
• CRC Modeling:
• Object-Relationship Models:
• Classes identified:
• Responsibilities:
Overview
Project planning is critical to ensure successful software development by outlining scope, estimating
resources, scheduling, and managing risks.
• Assess Operational Feasibility: Will users accept and use the system?
2. Resource Identification
3. Estimation Models
• COCOMO Model:
• Agile Estimation: Uses story points and velocity for iterative planning.
• Special scheduling considerations for web app projects due to frequent updates.
• Use Decision Trees to evaluate whether to build software in-house or purchase off-the-shelf
solutions.
• Use Cost Schedule Graphs and Milestone Graphs for tracking budget and timelines.
8. Risk Management
• Estimation: Use COCOMO to estimate effort, Agile story points for sprints.
Overview
Software architecture defines the high-level structure of a software system — how components
interact and are organized to meet requirements efficiently.
2. Structural Partitioning
3. Functional Independence
6. Embedded MCQs
2. Fan-In measures:
A) Number of modules called by a module
B) Number of modules calling a module
C) Lines of code in a module
D) Number of users accessing the module
Software design transforms requirements and architecture into detailed plans for coding. It focuses
on data structures, components, interfaces, and user experience.
1. Data Design
• Use UML class diagrams to model classes, attributes, methods, and relationships.
8. Embedded MCQs
Testing ensures software works as intended by detecting defects, validating requirements, and
improving reliability.
• Path Testing: Using control flow to test all possible execution paths.
6. Validation Testing
Embedded MCQs
Overview
Quality management ensures software meets requirements, satisfies users, and is reliable,
maintainable, and efficient.
• Functionality
• Reliability
• Usability
• Efficiency
• Maintainability
• Portability
7. Quality Metrics
• Use Six Sigma tools to reduce defect rates over project phases.
Embedded MCQs
Overview
SCM is the discipline of tracking and controlling changes in software to maintain integrity and
traceability throughout the software lifecycle.
• Configuration Identification: Define items under control (code, documents, test cases).
2. Baseline
• Can include: source code, documentation, executables, test scripts, configuration files.
4. SCM Features
• Build and Release Management: Automate and control software builds and deployments.
• Version Control: Record every change to configuration items to allow rollback and
concurrent development.
• Change Control: Ensure changes are reviewed and approved before implementation.
• Configuration objects include HTML, CSS, JavaScript, media files, and database schemas.
• Integration with CI/CD pipelines automates builds, tests, and deployments ensuring rapid
delivery.
• Use Git for version control and branching strategy for feature development.
Embedded MCQs