Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
0 views

Software Engineering notes

The document outlines key software development methodologies including the Waterfall Model, V-Model, and Prototype Model, detailing their phases, advantages, and disadvantages. It also covers software project management principles, emphasizing the importance of balancing time, cost, and quality in project execution. Additionally, it discusses data modeling and sequence diagrams as essential tools for understanding system interactions and requirements.

Uploaded by

Mya Ebanga
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

Software Engineering notes

The document outlines key software development methodologies including the Waterfall Model, V-Model, and Prototype Model, detailing their phases, advantages, and disadvantages. It also covers software project management principles, emphasizing the importance of balancing time, cost, and quality in project execution. Additionally, it discusses data modeling and sequence diagrams as essential tools for understanding system interactions and requirements.

Uploaded by

Mya Ebanga
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Software Engineering Notes

UNIT 2

There are for main activities of software development

 Software specification
 Software design and implementation
 Software verification and validation
 Software evolution

Software development life cycle

 Communication
 Requirement gathering
 Feasibility study
 System analysis
 Software design
 Coding
 Testing
 Integration
 Implementation
 Operations and maintenance
 Disposition

Waterfall model of software engineering:

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.

Phases of the Waterfall Model:

1. Requirement Analysis – Gather and document all system requirements.

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.

5. Deployment – The completed software is delivered to users.

6. Maintenance – Updates, bug fixes, and modifications after deployment.

Advantages:

Simple and easy to understand.


Well-documented process with clear stages.
Works well for small projects with well-defined requirements.

Disadvantages:

Rigid and inflexible (hard to go back to a previous phase).


Not suitable for projects with evolving requirements.
Late testing phase increases risks of discovering major issues too late.

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.

Phases of the V-Model

The V-Model is structured in a "V" shape, with development phases on the left and testing
phases on the right.

1. Verification Phase (Left Side of the "V")

Requirement Analysis – Gather and define system requirements.


System Design – Plan the system architecture.
software Design – Define system modules and their interactions.
module design – Detail individual components and functions.
Coding – Developers write and integrate the code.

2. Validation Phase (Right Side of the "V")

Unit Testing – Test individual components (corresponds to LLD).


Integration Testing – Test interactions between modules (corresponds to HLD).
System Testing – Verify the whole system functions correctly (corresponds to System Design).
Acceptance Testing (AT) – Ensure the final product meets user requirements (corresponds to
Requirement Analysis).

Advantages of V-Model

Early defect detection due to testing at each phase.


Well-structured and organized approach.
Clear traceability between development and testing.

Disadvantages of V-Model

Rigid and inflexible, similar to the Waterfall Model.


High cost of changes if requirements evolve later.
Not suitable for dynamic projects where changes are frequent.

The V-Model is best for projects with well-defined, stable requirements and high reliability
needs (e.g., medical software, aerospace, and banking systems).

Prototype Model in Software Development

The Prototype Model is an iterative software development approach where a working


prototype (a simplified version of the final product) is built before the actual system. It helps in
understanding user requirements better and refining the system based on feedback.

Phases of the Prototype Model

1. Requirement Gathering – Basic requirements are collected but not fully detailed.

2. Quick Design – A rough system design is created to outline the prototype.

3. Prototype Development – A working prototype is built with limited functionality.

4. User Evaluation – Users test the prototype and provide feedback.

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.

Advantages of the Prototype Model

Better understanding of requirements through real-time feedback.


Reduces risk of project failure due to miscommunication.
User involvement improves satisfaction and usability.
Faster development in projects where requirements are unclear.

Disadvantages of the Prototype Model

Time-consuming if too many iterations are needed.


Higher cost due to repeated modifications.
Scope creep risk, as users may request continuous changes.

Best Use Cases

The Prototype Model is ideal for projects with evolving or unclear requirements, such as:

 UI/UX-focused applications

 Customer-facing software

 Innovative and experimental projects

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 Simple and easy to manage.

o Clear documentation.

 Cons:
o Inflexible to changes.

o Testing happens late in development, leading to costly fixes.

2. V-Model (Validation & Verification Model)

 Definition: An extension of the Waterfall model where each development phase has a
corresponding testing phase.

 Best for: Projects requiring high reliability (e.g., healthcare, aerospace).

 Pros:

o Emphasizes testing at every stage.

o Reduces bugs in later phases.

 Cons:

o Rigid and costly to change requirements.

o Not suitable for evolving projects.

3. Prototype Model

 Definition: A model where an initial prototype (mock-up) is built, tested, and refined
based on user feedback before actual development.

 Best for: Projects with unclear or evolving requirements.

 Pros:

o Helps gather better requirements.

o Involves users early.

 Cons:

o Time-consuming.

o Can lead to scope creep (constant changes).

4. Agile Model
 Definition: An iterative and incremental approach where development is done in small
cycles (sprints), with continuous feedback and adaptation.

 Best for: Dynamic projects where requirements may change.

 Pros:

o Flexible and adaptable.

o Continuous user involvement.

 Cons:

o Requires strong team collaboration.

o Difficult to predict timeline and cost.

Principles of aging model

 Communication and collaboration


 Focus on project delivery
 Customer and user feedback

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

Meaning of Software Management

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.

Characteristics of Software Management

1. Project Planning & Scheduling – Defining project goals, tasks, timelines, and milestones.

2. Resource Allocation – Managing human, financial, and technological resources


efficiently.

3. Risk Management – Identifying and mitigating risks that may affect the project.

4. Quality Assurance – Ensuring software meets predefined standards and user


expectations.

5. Software Development Life Cycle (SDLC) Management – Overseeing all phases, from
requirement gathering to maintenance.

6. Team Collaboration & Leadership – Coordinating software engineers, testers, and


stakeholders.

7. Version Control & Configuration Management – Managing different versions and


updates of software.

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).

Time, Cost, and Quality in Software Project Management

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).

 Delays in one phase can impact the overall project.

 Managed through effective planning, scheduling, and resource allocation.

Challenges:

 Scope creep (adding new features beyond the initial plan).

 Inaccurate estimations.

 Unforeseen technical difficulties.

2. Cost (Budget)

 Refers to the financial resources required to complete the project.

 Includes expenses for development, testing, infrastructure, salaries, and maintenance.

 Managed through budgeting, cost estimation, and financial tracking.

Challenges:

 Underestimating costs.

 Unexpected changes requiring additional funding.

 Poor resource management leading to inefficiencies.

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:

 Balancing quality with time and cost constraints.

 Rushing development may lead to low-quality software.

 Poor testing can result in defects and security vulnerabilities.

Balancing Time, Cost, and Quality

 Fast + Cheap = Low Quality (Rushed development leads to defects).

 Fast + High Quality = Expensive (Requires more skilled developers and resources).

 Cheap + High Quality = Slow (Limited budget means longer development time).

Main Roles of a Project Manager

1. Project Planning & Scheduling

2. Resource Management

3. Risk Management

4. Quality Assurance

5. Stakeholder Communication & Management

6. Team Leadership & Motivation

7. Change Management

8. Project Documentation & Reporting

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.

Why sequence diagrams?

 It promotes understanding use cases, designing system architecture, and documenting


complex processes
 For modeling dynamic behavior in a system

Sequence diagram notations:

Actors

Message: there are different types of messages

Lifeline

You might also like