[go: up one dir, main page]

0% found this document useful (0 votes)
14 views8 pages

SE201-Chapter2-Introduction To Software Engineering

Chapter 2 of SE201 introduces Software Engineering, emphasizing its systematic approach to software design, development, and maintenance to ensure high-quality outcomes. It discusses the importance of structured processes, characteristics of good software, and the Software Development Life Cycle (SDLC) along with its models. Additionally, it highlights real-world examples of successful and failed software projects to illustrate the significance of effective software engineering practices.

Uploaded by

salheenalagore
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)
14 views8 pages

SE201-Chapter2-Introduction To Software Engineering

Chapter 2 of SE201 introduces Software Engineering, emphasizing its systematic approach to software design, development, and maintenance to ensure high-quality outcomes. It discusses the importance of structured processes, characteristics of good software, and the Software Development Life Cycle (SDLC) along with its models. Additionally, it highlights real-world examples of successful and failed software projects to illustrate the significance of effective software engineering practices.

Uploaded by

salheenalagore
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
You are on page 1/ 8

SE201 -Fundamental of Software Engineering

Chapter 2
Introduction to Software Engineering
Instructor / Yassmen Mamash

Outline:
1. Introduction to Software Engineering
2. Why Software Engineering?
3. Key Aspects of Software Engineering
4. Characteristics of Good Software
5. Benefits of Software Engineering
6. Importance of Software Engineering
7. Difference Between Software Engineering and Programming
8. Overview of the Software Development Life Cycle (SDLC)
9. SDLC Models
10. Real-World Examples of Successful and Failed Software Projects

Assignments Midterm Final Total


10% 40% 50% 100%
Instructor /yassmen Mamash SE201-Chapter2

1. Introduction to Software Engineering


Software Engineering is the systematic application of engineering principles to the
design, development, testing, deployment, and maintenance of software.
It aims to produce high-quality software that is reliable, maintainable, efficient, and
meets user needs — all while being delivered on time and within budget.

2. Why Software Engineering?


With the growing complexity of systems and increasing user demands, writing software
informally or casually isn't enough. Software Engineering introduces structure,
processes, and standards to make sure software:
− Works correctly and efficiently.
− Is easy to update and maintain.
− Meets customer and business requirements.

3. Key Aspects of Software Engineering


− Requirements Gathering – Understanding what the software should do.
− Design – Structuring how the software will be built.
− Implementation (Coding) – Writing the actual code.
− Testing – Making sure the software works as expected.
− Deployment – Delivering the software to users.
− Maintenance – Fixing bugs and making improvements after release.

4. Characteristics of Good Software


− Functionality – Does what it’s supposed to do.
− Reliability – Performs consistently under different conditions.
− Usability – Easy for users to interact with.
− Efficiency – Uses resources like memory and CPU well.
− Maintainability – Easy to fix or upgrade.
− Portability – Can work in different environments or systems.

2
Instructor /yassmen Mamash SE201-Chapter2

5. Benefits of Software Engineering


− Reduces development time and cost.
− Improves product quality.
− Makes software easier to manage and scale.
− Encourages teamwork and documentation.

6. Importance of Software Engineering


− Manages Complexity
Large software systems are complex. Software engineering provides structure and
organization to handle that complexity.
− Ensures High Quality
Helps build reliable, efficient, and maintainable software that meets user needs.
− Reduces Development Cost
Using best practices and proper planning avoids unnecessary rework and delays.
− Improves Team Collaboration
Clear processes and documentation help teams work together smoothly.
− Facilitates Maintenance
Well-structured code is easier to update, fix, and improve over time.
− Supports Scalability
Makes it easier to scale the software as business needs grow.
− Promotes Reusability
Encourages modular design, so components can be reused in future projects

7. Difference Between Software Engineering and Programming


− Software Engineering is a broader field that includes everything from requirements
gathering to software maintenance.
− Programming is a part of software engineering that focuses specifically on writing
code.

3
Instructor /yassmen Mamash SE201-Chapter2

Aspect Software Engineering Programming

Definition structured approach to the design, The act of writing code to


development, and maintenance of implement specific functionality.
software.

Scope Covers the full software development life Focused mainly on writing and
cycle (SDLC) including design, testing, debugging code.
deployment, and maintenance

Focus Building scalable, reliable, and Solving specific problems through


maintainable software systems. coding.

Teamwork Usually involves collaboration among Can be done individually or in


developers, testers, analysts, and teams, but usually at the coding
stakeholders. level.

Process Oriented Follows defined processes and Less formal, mostly task-focused.
methodologies (e.g., Agile, Waterfall,
Scrum)

Output A complete software solution. Code snippets or modules that


solve specific tasks.

8. Overview of the Software Development Life Cycle (SDLC)


The Software Development Life Cycle (SDLC) is a structured process followed by
software developers to design, develop, test, and deploy high-quality software. It
provides a systematic approach to software creation and helps ensure that the final
product meets customer expectations.

4
Instructor /yassmen Mamash SE201-Chapter2

Main Phases of the SDLC:


1) Requirement Gathering & Analysis :
− Understand what the users need.
− Analyze system and business requirements
− Output: Software Requirement Specification (SRS) document.

2) System Design
− Plan the architecture of the software.
− Includes both high-level design (HLD) and low-level design (LLD).
− Output: Design documents, data flow diagrams, etc.

3) Implementation / Coding
− Developers write the actual code based on design documents.
− Follows programming standards and practices.
− Output: Source code.

4) Testing
− Ensure the software is bug-free and meets requirements.
− Types: Unit testing, integration testing, system testing, etc.
− Output: Test reports.

5) Deployment
− Software is released into the production environment.
− May be done in stages (pilot release, full release).
− Maintenance
− Fix bugs that appear in real-world use.
− Update the system as needs change over time.

5
Instructor /yassmen Mamash SE201-Chapter2

9. SDLC Models:
− Waterfall Model
− V-Model
− Iterative Model
− Spiral Model
− Agile Model

10. Activity: Real-World Examples of Successful and Failed Software Projects

Understanding real-life software projects helps illustrate the importance of good software
engineering practices and highlights common pitfalls that can lead to failure.

A. Successful Software Projects

1. Google Search Engine

• Why it succeeded:

o Focus on scalability and speed.


o Excellent software architecture.
o Continuous innovation and testing.
o Adapted to user needs.

2. Microsoft Windows OS

• Why it succeeded:

o Strong requirement analysis.


o Broad compatibility with hardware.
o Regular updates and maintenance.
o Good user interface and experience.

6
Instructor /yassmen Mamash SE201-Chapter2

3. Amazon E-commerce Platform

• Why it succeeded:

o User-friendly design.
o Reliable performance at scale.
o Agile development and fast iteration.
o Excellent data management and recommendation systems.

B. Failed Software Projects

1. Healthcare.gov (2013 Launch)

• Why it failed initially:

o Poor planning and project management.


o Inadequate testing before release.
o Performance issues due to high traffic.
o Lack of coordination between teams.

2. Nokia's Symbian OS

• Why it failed:

o Delayed adaptation to touch technology.


o Complex and outdated system architecture.
o Poor user experience compared to iOS/Android.

3. IBM’s OS/2

• Why it failed:

o Weak marketing and third-party support.


o Poor compatibility with existing applications.
o Competition with Windows was overwhelming.

7
Instructor /yassmen Mamash SE201-Chapter2

References
− Pressman, Roger S., & Maxim, Bruce R. (2014).
Software Engineering: A Practitioner’s Approach (8th Edition). McGraw-Hill.
One of the most widely used books, especially for practical methodologies and models.
− Larman, Craig. (2004).
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and
Iterative Development (3rd Edition). Prentice Hall.
Focused on object-oriented development, design patterns, and UML.
− GeeksforGeeks – Software Engineering Section
https://www.geeksforgeeks.org/software-engineering/
− IEEE Software Journal
• Peer-reviewed articles on software project case studies.
• https://ieeexplore.ieee.org

You might also like