1.
Core Principles of Software Engineering:
1. Reason It All Exists (Value to Users): Software should be developed to fulfill user needs and
provide real value.
2. Keep It Simple: The design and code should be simple and clear.
3. Maintain the Vision: The whole team should have a common understanding of the project goals.
4. What You Produce, Others Will Consume: Code should be clear, reliable, and well-documented.
5. Be Open to the Future: Software should be easily extendable or modifiable.
6. Plan Ahead for Reuse: Components should be designed for reusability.
7. Think!: Always analyze and plan before coding.
2. CMMI (Capability Maturity Model Integration):
CMMI helps organizations improve their software processes and quality. It has five levels:
Level 1 – Initial: Processes are unorganized and unpredictable.
Level 2 – Managed: Basic project management processes are established.
Level 3 – Defined: Processes are standardized and documented.
Level 4 – Quantitatively Managed: Processes are measured and controlled using data.
Level 5 – Optimizing: Focus on continuous process improvement.
3. Software Engineering Layered Approach:
Software Engineering follows a layered approach where each layer builds upon another:
1. Quality Focus: Foundation layer ensuring customer satisfaction and improvement.
2. Process Layer: Framework of activities (like SDLC) for managing software development.
3. Methods Layer: Technical activities like analysis, design, coding, and testing.
4. Tools Layer: Automated or semi-automated tools supporting methods and processes.
Diagram:
Tools
Methods
Process
Quality Focus
This layered approach ensures high-quality, maintainable, and efficient software development.