Notes
Notes
I'll leave the first four slides and make the rest more detailed while keeping them
easy to understand. Here’s your refined version:
Introduction
Software
Engineering
Software Engineering
1. Large Software:
o A single programmer cannot develop and maintain large systems.
2. Scalability:
o Software must grow with user needs and business expansion.
3. Cost:
o Software development & maintenance are expensive.
4. Dynamic Nature:
o Technology and user requirements change frequently.
5. Quality Management:
o Ensures software is bug-free, efficient, and secure.
1. Operational:
o How well the software works in practice.
o Measured by:
Budget (cost-effectiveness)
Usability (ease of use)
Efficiency (fast execution)
Correctness (delivers expected output)
Functionality (performs required tasks)
Dependability (consistent performance)
Security (protected from threats)
Safety (avoids harm to users/data)
2. Transitional:
o Determines how well the software adapts to changes in environment or
platform.
o Key factors:
Portability (runs on different platforms)
Interoperability (works with other systems)
Reusability (components can be used in other software)
Adaptability (modifications are easy)
3. Maintenance:
o Measures how well the software handles future changes.
o Includes:
Modularity (organized, independent components)
Maintainability (easy to update/fix bugs)
Flexibility (supports new features)
Scalability (handles more users/data over time)
Attribute Description
Maintainability Can evolve with changing customer needs.
Dependability & Should be reliable and prevent data loss/hacking.
Attribute Description
Security
Should not waste system resources like memory &
Efficiency
processing power.
Acceptability Must be usable and compatible with existing systems.
Software Costs
Software Products
1. Generic Products
o Standalone software sold to multiple customers.
o Examples:
MS Office
Photoshop
Video editing software
2. Customized Products
o Built for specific customers based on their needs.
o Examples:
Bank management software
Airline ticket booking system
Product Specification
Type Who Owns the Specification? Who Controls Updates?
Generic Products Software Developer Developer decides changes
Customized Products Client/Customer Customer requests updates
1. What is Software?
o Computer programs + documentation.
o Can be for individual customers or the general market.
2. What are the Attributes of Good Software?
o Should be functional, maintainable, dependable, and usable.
3. What is Software Engineering?
o The engineering discipline focused on designing, developing, and
maintaining software.
4. Fundamental Software Engineering Activities?
o Software Specification (Defining requirements)
o Software Development (Writing the code)
o Software Validation (Testing & fixing errors)
o Software Evolution (Updating & maintaining over time)
5. Software Engineering vs. Computer Science
o Computer Science: Focuses on theory & algorithms.
o Software Engineering: Focuses on practical application &
development.
6. Software Engineering vs. System Engineering
o System Engineering: Deals with hardware + software together.
o Software Engineering: Focuses only on software development.
This version keeps all important points while making it clear and easy to
understand. Let me know if you want any adjustments! 🚀
Software Process
Feasibility
Requirements
Usability is critical!
Process:
1. Design the interface
2. Test with real users
3. Improve based on feedback
4. Repeat until user-friendly
System and Program Design
Implementation
Acceptance Testing:
o System is tested against client requirements.
o Conducted with real users.
Delivery & Release:
o If successful, software is delivered and released for use.
Categories of Testing
Sequence of Process
1. Waterfall Model – Each step is fully completed before moving to the next.
2. Iterative Refinement – Build a rough version first, then improve it in cycles.
3. Spiral Model – Combines iterative refinement with risk analysis.
4. Agile Development – Small, fast development cycles (sprints) producing
working software quickly.
This ensures all key points are included while keeping it clear and easy to
understand. Let me know if you need any modifications! 🚀
SDLC Model
Definition: A framework describing all activities in software development.
Introduction
Waterfall Model
Iterative Waterfall Model
Spiral Model
Prototyping Model
Incremental Model
Agile Model
V-Model (Verification & Validation Model)
Object-Oriented Model
Waterfall Model
An improved version of the Waterfall model with feedback loops for error
correction.
Allows revisiting previous phases if issues are found.
Well-defined requirements
Learning new technology
High-risk features may change later
Spiral Model
This version keeps all key points while making it clear and easy to understand. Let me
know if you need any changes! 🚀
V & V Model
Prototype Model
This version keeps everything concise yet detailed. Let me know if you need
modifications! 🚀
Most modern projects reuse existing software to save time and cost.
Instead of writing everything from scratch, pre-built components are integrated.
Requires a framework for combining reusable software components.
This version keeps everything concise yet detailed. Let me know if you need any
modifications! 🚀
Software Requirements
1. User Requirements
o High-level description of what users need.
o Written in natural language (easy to understand).
o Talks about the problem domain (real-world usage).
2. System Requirements
o Detailed, formal definition of system functions.
o Includes technical details & exact implementation requirements.
o Defines how the software will work internally.
o Talks about the solution domain (software logic).
1. Functional Requirements
o Define what the system should do.
o Describe system services, operations & behaviors.
o Example: "The system shall allow users to search for products by name."
2. Non-Functional Requirements (NFRs)
o Define constraints & quality factors.
o Cover performance, security, usability, reliability, etc..
o Example: "The website must load within 3 seconds."
3. Domain Requirements
o Specific to a particular industry or environment.
o Example: Medical software must follow IEC 60601-1 safety standard.
Functional Requirements (Example: Mentcare System)
Property Measure
Speed Transactions/sec, Response time
Size MB of memory used
Reliability Failure rate, Availability %
Portability Number of supported platforms
Domain Requirements
This version keeps all key concepts while making it clear and easy to understand.
Let me know if you need modifications! 🚀
Requirements Engineering
1. Interviewing
o Closed Interviews: Predefined set of questions.
o Open Interviews: Flexible discussions to explore user needs.
2. Ethnography (Observation Method)
o Watching users perform tasks in real-world environments.
o Helps identify hidden or informal requirements.
Requirements Specification
Requirements Validation
This version keeps all key points concise yet detailed. Let me know if you need any
modifications! 🚀
Requirements Change
Requirements are not static and change due to external and internal factors.
Managing requirement changes effectively ensures software remains relevant
and functional.
This version keeps all key concepts concise yet detailed. Let me know if you need
modifications! 🚀