Software
Software
md 2024-09-17
Software Engineering
Challenges as the Project Grows
Abstraction
2 / 12
Software.md 2024-09-17
Decomposition
Software Crisis
▶ Software products:
▶ Fail to meet user requirements.
▶ Frequently crash.
▶ Expensive.
▶ Difficult to alter, debug, and enhance.
▶ Often delivered late.
▶ Use resources non-optimally.
3 / 12
Software.md 2024-09-17
▶ Larger problems
▶ Lack of adequate training in software engineering
▶ Increasing skill shortage
▶ Low productivity improvements
▶ Larger Problems:
▶ The complexity and size of software projects have grown
significantly, making them harder to manage.
▶ Lack of Adequate Training in Software Engineering:
▶ Many developers lack formal training in software engineering
principles and methodologies.
▶ Increasing Skill Shortage:
▶ There is a shortage of skilled software engineers to manage
complex software projects.
▶ Low Productivity Improvements:
▶ Despite advancements in hardware, software development
productivity has not seen similar improvements.
4 / 12
Software.md 2024-09-17
▶ Services Projects:
▶ Custom software tailored for specific clients.
▶ Often built upon generic versions and customized for different
customers.
▶ Software Products:
▶ Packaged software for a wide audience.
▶ Includes horizontal and vertical products.
▶ Outsourced Projects:
▶ Custom software development outsourced to specialized
companies.
▶ Indian companies have focused heavily on outsourced projects.
5 / 12
Software.md 2024-09-17
▶ Program size increased, making exploratory style insufficient. ▶ Focus on control flow became essential. ▶
Control structure defines the sequence of program execution. ▶ Flowcharting technique was developed to
represent control structure.
2024-08-12
Emergence of Software Engineering
Control Flow-Based Design (late 60s)
In the late 1960s, as program size increased, the exploratory style of pro-
gramming became insufficient. Attention to control flow became essential,
Structured Programming
7 / 12
Software.md 2024-09-17
8 / 12
Software.md 2024-09-17
Warnier-Orr Methodology
9 / 12
Software.md 2024-09-17
Conclusion
around objects, which are entities that encapsulate both data and behavior.
This encapsulation allows objects to act as self-contained modules, hiding
their internal workings from the outside world. Relationships among ob-
jects, such as composition, reference, and inheritance, play a crucial role
in OOD, enabling the creation of complex systems that are both flexible
and maintainable.
10 / 12
Software.md 2024-09-17
Conclusion
11 / 12
Software.md 2024-09-17
Conclusion
Summary I
12 / 12