0% found this document useful (0 votes)
7 views3 pages

Software Engineering Unit1 Notes

Software Engineering is a disciplined approach to software development focusing on quality, reliability, and maintainability. It includes various Software Development Life Cycle models such as Waterfall, Spiral, Prototype, Evolutionary, and RAD, each with its own advantages and disadvantages. Additionally, effective software project management involves planning, organizing, and controlling resources, with techniques for project estimation and software configuration management to ensure successful outcomes.

Uploaded by

richaa123451
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views3 pages

Software Engineering Unit1 Notes

Software Engineering is a disciplined approach to software development focusing on quality, reliability, and maintainability. It includes various Software Development Life Cycle models such as Waterfall, Spiral, Prototype, Evolutionary, and RAD, each with its own advantages and disadvantages. Additionally, effective software project management involves planning, organizing, and controlling resources, with techniques for project estimation and software configuration management to ensure successful outcomes.

Uploaded by

richaa123451
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Engineering – Unit 1 Notes

1. Introduction to Software Engineering

Software Engineering is a systematic, disciplined, and quantifiable approach to the development,


operation, and maintenance of software. It applies engineering principles to software development
to produce reliable, efficient, and cost-effective software systems. The main objectives are quality,
reliability, maintainability, and scalability. It includes processes, methods, and tools that help in
building large and complex software systems.

2. Software Life Cycle Models

A Software Development Life Cycle (SDLC) model defines the sequence of phases involved in
software development. It provides a structured framework for planning, designing, building, testing,
and maintaining software.

a) Waterfall Model

The Waterfall model is a linear and sequential approach where each phase must be completed
before the next begins.

Phases: Requirement Analysis → System Design → Implementation → Testing → Deployment →


Maintenance.

Advantages: Simple, easy to manage, suitable for small projects.

Disadvantages: Inflexible, difficult to handle changes, late testing.

b) Spiral Model

The Spiral model combines iterative development with systematic risk analysis. Development
proceeds in spirals, each representing a phase.

Each spiral consists of: Planning, Risk Analysis, Engineering, Evaluation.

Advantages: Risk management, flexible, suitable for large projects.

Disadvantages: Complex, expensive, requires expert risk analysis.

c) Prototype Model

In this model, a working prototype is built to understand user requirements clearly.

Steps: Requirement gathering → Build prototype → User evaluation → Refinement → Final


product.

Advantages: Better requirement clarity, user involvement.


Disadvantages: Poor documentation, may lead to unrealistic expectations.

d) Evolutionary Model

Software is developed in increments, and each version adds more features.

Advantages: Early delivery, flexible to changes.

Disadvantages: Difficult planning, may cause design issues.

e) RAD (Rapid Application Development) Model

RAD emphasizes fast development using reusable components and user feedback.

Phases: Requirement planning, User design, Construction, Cutover.

Advantages: Faster delivery, high user involvement.

Disadvantages: Not suitable for large or complex systems.

3. Software Project Management

It involves planning, organizing, directing, and controlling resources to achieve software goals
within constraints of time, cost, and quality.

Responsibilities of a Software Project Manager

- Requirement analysis and planning

- Team management

- Scheduling and budgeting

- Risk management

- Communication with stakeholders

- Quality assurance

Project Planning

Project planning defines scope, objectives, tasks, schedules, and resources. It includes effort
estimation, time scheduling, resource allocation, and risk planning.

Metrics for Project Size Estimation

- Lines of Code (LOC)

- Function Points (FP)


These metrics help estimate effort, cost, and time.

Project Estimation Techniques

- Expert Judgment

- Delphi Technique

- Work Breakdown Structure (WBS)

- Empirical Models

Empirical Estimation Techniques

Based on historical data and formulas. Examples include Halstead’s model and COCOMO.

COCOMO (Constructive Cost Model)

COCOMO estimates effort, cost, and schedule based on project size.

Modes: Organic, Semi-detached, Embedded.

Formula: Effort = a × (KLOC)^b person-months.

Software Configuration Management (SCM)

SCM controls and tracks changes in software during development and maintenance.

Functions: Version control, Change control, Status accounting, Auditing.

Benefits: Consistency, traceability, controlled evolution of software.

You might also like