Lecture 1
1. Defini�on of So�ware
So�ware consists of:
• Programs: Instruc�ons executed to provide desired func�onality.
• Data Structures: Organize and manipulate data.
• Documenta�on: Describes the use and opera�on of the so�ware.
2. Difference Between Computer So�ware and Program
• Computer Program: A set of instruc�ons performing a specific task.
• So�ware: Includes programs, documenta�on, and user guides.
3. Importance of So�ware
• So�ware impacts society significantly in diverse areas, from personal devices to industrial systems.
4. So�ware Wear-out vs. Deteriora�on
• Hardware: Wears out due to physical factors like dust and heat.
• So�ware: Deteriorates as updates/changes introduce more complexity and poten�al failure points.
5. So�ware Evolu�on (Laws by Dr. Meir M. Lehman)
• S-Type So�ware: Strictly defined, least changes (e.g., calculators).
• P-Type So�ware: Solu�ons aren’t instantly apparent (e.g., games, design tools).
• E-Type So�ware: Closely aligned with real-world environments, constantly evolving (e.g., trading
so�ware).
6. So�ware Applica�on Domains
• System So�ware: Opera�ng systems, u�lity programs.
• Applica�on So�ware: End-user programs.
• Embedded So�ware: Integrated in devices (e.g., smart appliances).
• WebApps, AI so�ware, Product-line so�ware: Specific categories for diverse needs.
7. New Categories of So�ware
• Open World Compu�ng: Distributed systems like Linux, OpenStack.
• Ubiquitous Compu�ng: Compu�ng integrated into daily life (e.g., wearables, smart homes).
• Netsourcing: Cloud-based services like APIs.
• Data Mining: Extrac�ng knowledge from large datasets.
• Grid Compu�ng: Sharing resources across domains.
• Cogni�ve Machines: AI systems mimicking human cogni�on.
• Nanotechnology So�ware: Specialized for nanometer-scale systems.
8. Legacy So�ware
• Defini�on: Old, outdated so�ware no longer ac�vely supported.
• Reasons for Change:
o Adapt to new environments.
o Implement new business requirements.
o Interoperate with modern systems.
o Re-architect for modern networks.
9. So�ware Engineering (IEEE Defini�on)
• Systema�c approach to development, opera�on, and maintenance of so�ware.
• Key focus on making so�ware scalable, cost-effec�ve, and adaptable to dynamic changes.
10. Need for So�ware Engineering
• Large So�ware Projects: Requires scien�fic methods due to complexity.
• Scalability: Engineering principles enable efficient scaling.
• Cost: Proper processes reduce so�ware development costs.
• Dynamic Nature: Frequent enhancements require robust engineering.
• Quality Management: Ensures high-quality so�ware.
11. Characteris�cs of Good So�ware
• Opera�onal: Efficiency, correctness, security, and usability.
• Transi�onal: Portability, reusability, and adaptability.
• Maintainable: Modular, scalable, and easy to maintain.
12. So�ware Process Framework Ac�vi�es
• Communica�on: Understanding client needs.
• Planning: Developing a roadmap for the project.
• Modeling: Crea�ng models to beter understand requirements.
• Construc�on: Coding and tes�ng the solu�on.
• Deployment: Delivering and evalua�ng so�ware.
13. Umbrella Ac�vi�es in So�ware Engineering
• So�ware Project Management: Overseeing the project lifecycle.
• Formal Technical Reviews: Ensuring quality.
• So�ware Quality Assurance: Tes�ng to meet standards.
• So�ware Configura�on Management: Tracking changes.
• Risk Management: Iden�fying and mi�ga�ng poten�al risks.
Lecture 2
1. So�ware Engineering Prac�ce
• Defini�on: A set of concepts, principles, methods, and tools used by so�ware engineers.
• Applica�on: Helps so�ware engineers build programs and managers oversee projects.
• Goal: Provides both technical and management guidance to successfully complete so�ware projects.
2. So�ware Development Phases
• Construc�on:
o Requirement Gathering
o Design Development
o Coding
o Tes�ng
• Management:
o Project Planning & Management
o Configura�on Management
o So�ware Quality Assurance (SQA)
o Installa�on and Training
3. So�ware Process
• Defini�on: A roadmap guiding the crea�on of so�ware, providing stability, defini�on, and control.
• Work Products: Deliverables include programs, documenta�on, and data.
4. So�ware Development Life Cycle (SDLC)
• Defini�on: A process used in so�ware development to design, develop, and test so�ware efficiently and
ensure high quality.
• Goal: To meet or exceed customer expecta�ons, complete projects within �me and budget constraints.
5. SDLC Phases
1. Analysis:
o Feasibility Study:
Technical Feasibility: Can the system be built with current technology?
Economic Feasibility: Are the costs jus�fiable in terms of benefits?
Opera�onal Feasibility: Will the system work in the current organiza�on?
o Requirement Gathering: Func�onal (what the system does) and non-func�onal (performance,
security) requirements are collected using interviews, surveys, etc.
2. Design:
o Logical Design: Focuses on what the system should do, including data and process modeling.
o Physical Design: Converts the logical design into implementable details like database schema,
system architecture, user interfaces, and hardware specs.
3. Implementa�on:
o Code Development: Wri�ng and implemen�ng the actual code based on design specifica�ons.
o Hardware Setup: Purchase and installa�on of necessary hardware.
4. Tes�ng:
o Unit Tes�ng: Test individual components for correct behavior.
o Integra�on Tes�ng: Ensure combined components work together.
o System Tes�ng: Validate the whole system against requirements (func�onality, security,
performance).
5. Deployment:
o Beta Tes�ng: Users test the system and report any bugs or changes required.
o Conversion Methods:
Direct, Parallel, Phased, or Distributed conversion depending on the system's needs.
o Configura�on Management: Adjust so�ware se�ngs to match the deployment environment.
o Verifica�on & Valida�on: Ensure the system operates as required in a real environment.
o Rollback Plan: A con�ngency plan in case issues arise during deployment.
6. Maintenance:
o Post-deployment Support: Address bugs and opera�onal problems encountered a�er the
so�ware is released.
6. Key Roles in So�ware Development
• System Analyst:
o Conducts requirement analysis, meets stakeholders, creates and reviews documents, and helps
bridge the technical and business requirements.
7. Importance of Tes�ng and Maintenance
• Tes�ng ensures that so�ware meets both func�onal and non-func�onal requirements before
deployment.
• Maintenance is cri�cal a�er deployment to fix any issues or accommodate changes over �me.