First Unit Notes
First Unit Notes
Technology Development
Pattern
Engineering
Esoteric Past
E xperience
Craft
Technology
UnorganizedU se of
Art Past Experience
Time
The early programmers used an exploratory (also called build and fix) style.
In the build and fix (exploratory) style, normally a `dirty' program is quickly developed.
The different imperfections that are subsequently noticed are fixed.
What is Wrong with the
Exploratory Style?
● Can successfully be used for very small
programs only.
Software
Exploratory Engineering
Effort, time,
Machine
cost
Program Size
Besides the exponential growth of effort, cost, and time with problem size:
Exploratory style usually results in un maintainable code.
It becomes very difficult to use the exploratory style in a team development environment.
Principles Deployed by Software Engineering to Overcome Human Cognitive Limitations
Focus attention on only one aspect of the problem and ignore irrelevant details.
DECOMPOSITION:
Software Crisis
Hw cost
Sw cost
1960 Year
2008
● Larger problems,
● Lack of adequate training in software engineering,
● Increasing skill shortage, Low productivity improvements.
Solutions for Software Crisis:
Many products require development of software as well as specific hardware to run it:
Ex: a coffee vending machine, a mobile communication product, etc.
The high-level problem:
Deciding which tasks are to be solved by software. Which ones by hardware
Often, hardware and software are developed together:
Hardware simulator is used during software development.
Integration of hardware and software.
Final system testing
Computer Systems Engineering
(CONT.)
Feasibility
Study
Requirements
Analysis and
Specification
Hardware
Development
Hardware
Software
Partitioning Software
Development Integration
and Testing
Project Management
34
Typical program sizes were limited to a few thousands of lines of source code.
Can be used to model the working of any system, not just software systems.
64
● Object-oriented technique:
– An intuitively appealing design approach:
– Natural objects (such as employees, pay-roll-register, etc.) occurring in a problem
are first identified.
● Relationships among objects:
– Such as composition, reference, and inheritance are determined.
● Each object essentially acts as
– A data hiding (or data abstraction) entity.
● Object-Oriented Techniques have gained wide acceptance:
– Simplicity
– Reuse possibilities
– Lower development time and cost
– More robust code
Evolution of Design
Techniques
Object-Oriented
Data flow-based
Data structure-
based
Control flow-
based
Ad hoc
68