Software Engineering notes
Software Engineering notes
UNIT 2
Software specification
Software design and implementation
Software verification and validation
Software evolution
Communication
Requirement gathering
Feasibility study
System analysis
Software design
Coding
Testing
Integration
Implementation
Operations and maintenance
Disposition
The Waterfall Model is a traditional software development methodology that follows a linear
and sequential approach. Each phase must be completed before moving to the next, and there
is little to no overlap between phases.
2. System Design – Plan the architecture, system structure, and technology stack.
3. Implementation (Coding) – Developers write the actual code based on the design.
4. Testing – The software is tested for bugs, errors, and defects.
Advantages:
Disadvantages:
The Waterfall Model is best suited for projects where requirements are clear and stable from
the beginning. If requirements are likely to change, Agile methodologies are often preferred.
The V-Model (Verification and Validation Model) is a software development lifecycle (SDLC)
model that extends the Waterfall Model by emphasizing testing at each stage of development.
It is also called the Validation and Verification Model because each development phase has a
corresponding testing phase.
The V-Model is structured in a "V" shape, with development phases on the left and testing
phases on the right.
Advantages of V-Model
Disadvantages of V-Model
The V-Model is best for projects with well-defined, stable requirements and high reliability
needs (e.g., medical software, aerospace, and banking systems).
1. Requirement Gathering – Basic requirements are collected but not fully detailed.
5. Refinement – The prototype is refined based on feedback, and this cycle repeats until a
satisfactory version is reached.
6. Final Development – After the prototype is approved, the actual system is developed.
Types of Prototypes
Throwaway Prototype – Discarded after gathering requirements, and final development starts
from scratch.
Evolutionary Prototype – Improved over multiple iterations and eventually becomes the final
product.
Incremental Prototype – Different system parts are prototyped and combined later.
Extreme Prototype – Used in web development, with frontend and backend developed in
parallel.
The Prototype Model is ideal for projects with evolving or unclear requirements, such as:
UI/UX-focused applications
Customer-facing software
These are different software development life cycle (SDLC) models, each with its own
approach to managing software projects. Here’s a breakdown of their differences:
1. Waterfall Model
Definition: A linear and sequential approach where each phase (Requirement → Design
→ Implementation → Testing → Deployment → Maintenance) must be completed
before moving to the next.
Best for: Projects with well-defined requirements that are unlikely to change.
Pros:
o Clear documentation.
Cons:
o Inflexible to changes.
Definition: An extension of the Waterfall model where each development phase has a
corresponding testing phase.
Pros:
Cons:
3. Prototype Model
Definition: A model where an initial prototype (mock-up) is built, tested, and refined
based on user feedback before actual development.
Pros:
Cons:
o Time-consuming.
4. Agile Model
Definition: An iterative and incremental approach where development is done in small
cycles (sprints), with continuous feedback and adaptation.
Pros:
Cons:
Unit 3
Requirement engineering
Understand what customer desires
Analyzing the need
Assessing feasibility
Negotiate a reasonable solution
Specify the solution clearly
Validating the specifications
Managing the requirements
UNIT 4
Software Management: Meaning & Characteristics
Software management refers to the process of planning, organizing, leading, and controlling the
development, deployment, and maintenance of software applications. It involves managing
software projects, teams, resources, risks, quality, and ensuring that software meets business
and user requirements efficiently.
1. Project Planning & Scheduling – Defining project goals, tasks, timelines, and milestones.
3. Risk Management – Identifying and mitigating risks that may affect the project.
5. Software Development Life Cycle (SDLC) Management – Overseeing all phases, from
requirement gathering to maintenance.
8. Budget & Cost Management – Controlling expenses to keep the project within budget.
9. Compliance & Security Management – Ensuring the software adheres to legal, ethical,
and security standards.
10. User Feedback & Continuous Improvement – Adapting software based on user
feedback and evolving needs.
Software Project Management (SPM) is the process of planning, organizing, leading, and
controlling software development projects to ensure they are completed on time, within
budget, and meet the required quality standards. It involves managing resources, risks,
schedules, and stakeholder expectations throughout the software development life cycle
(SDLC).
In software project management, time, cost, and quality form the Project Management
Triangle (also known as the Iron Triangle). These three factors are interdependent, meaning
that changing one affects the others.
1. Time (Schedule)
Refers to the project timeline, including deadlines for different phases of the software
development life cycle (SDLC).
Challenges:
Inaccurate estimations.
2. Cost (Budget)
Challenges:
Underestimating costs.
3. Quality
Refers to how well the software meets requirements, user expectations, and industry
standards.
Ensured through testing, quality assurance (QA), and adherence to best practices.
High quality reduces bugs, improves performance, and enhances user satisfaction.
Challenges:
Fast + High Quality = Expensive (Requires more skilled developers and resources).
Cheap + High Quality = Slow (Limited budget means longer development time).
2. Resource Management
3. Risk Management
4. Quality Assurance
7. Change Management
Unit 6
Why is data modeling essential?
Help in business requirements collection
Improving the performance of database
Provides documentation of the source target system
Simplify re-engineering in case it is needed
Offers source and target system documentation
Data modelling life cycle and types:
The data modeling life cycle involves a series of steps to define, design,
implement, and maintain data structures in a system.
Conceptual data model
Logical data model
Physical data model
Sequence diagrams
A sequence diagram is a key component of UML used to visualize the interactions between
objects and component in a sequential order, It focuses on how objects communicate with one
another over time, making it an essential time, making it an essential tool for modelling
dynamic behavior in a system. It is message-focus and time-focused c’est à dire, It illustrates the
interactions donc comme des messages et ça donne l’heure aussi. Par example the transaction
with an ATM scenario.
Actors
Lifeline