The document summarizes the emergence and evolution of software engineering approaches from the 1950s to modern times. It describes early exploratory programming using assembly languages. It then discusses the introduction of high-level languages and increased focus on control flow-based design. Subsequently, the complexity of software led to data-flow oriented design using data flow diagrams. Object oriented design revolutionized the field by enabling reuse through concepts like encapsulation and inheritance. Finally, it briefly outlines evolutionary, RAD, spiral models for iterative development.
2. EMERGENCE OF SOFTWARE ENGINEERING
Early Computer Programming (1950s):
• Programs were being written in assembly language.
• Programs were limited to about a few hundreds of lines of assembly code.
• Every programmer developed his own style of writing programs:
• according to his intuition (exploratory programming).
3. High-Level Language Programming (Early 60s)
• High-level languages such as FORTRAN, ALGOL, and COBOL were introduced:
• This reduced software development efforts greatly.
• Software development style was still exploratory.
• Typical program sizes were limited to a few thousands of lines of source code.
4. Control Flow-Based Design (late 60s)
• Size and complexity of programs increased further:
• Programmers found
• To over come with this problem, experienced programmers advised: ``Pay particular
attention to the design of the program's control structure.'’
• A program's control structure indicates:
• the sequence in which the program's instructions are executed.
• Using flow charting technique:
• A program having a difficult(messy) flow chart representation:
• Many programmers had extensively used assembly languages.
5. Data-Flow Oriented Design
• The computers became more powerful and faster with the introduction of Very Large
Scale Integrated Circuits (VLSI),
• Therefore, various significant developments like networking and GUIs came into
existence.
• A new technique known as
• data -flow-oriented technique came into existence as the complexity of software
could not be dealt with using control flow based design.
• In data flow oriented design technique, the flow of data through business functions
or processes is represented using Data Flow Diagram (DFD).
6. Object Oriented Design
• The process of software development has revolutionized by object oriented design
technique.
• It not only includes the best features of structured programming but also some new and
powerful features such as encapsulation, data abstraction, inheritance and
polymorphism.
• These new features have broadly helped in the development of well-designed and high-
quality software.
• Object oriented design technique allow reusability of the code. They led to faster
software development and high quality programs.
• But they are easier to adapt and scale, that is large systems can be created by
assembling reusable subsystems.
7. EVOLUTIONARY MODEL: successive model
• Combination of iterative and incremental
model.
• Here, we break our into smaller parts.
• Prioritize those parts and deliver to customer
one by one.
8. RAD MODEL
• Rapid Application Development
• Linear Sequential, Short cycle (60 – 90
days)
• RAD Model makes heavy use of
reusable software components with an
extremely short development cycle.
9. • ChALLENGES:
• For large projects, sufficient resource are needed for rapid cycle
• Strong commitment from developers and customer
• Presupposes modular solution
• Reusability sometimes implies loss of performance
10. • Following phases are
• Business Modelling
• Data Modelling
• Process modelling
• Application Modelling
• Testing and turnover
11. • Business Modelling
• Information flow among business function is defined by answering questions like
• What data drivers the business process
• What data is generated
• Who generates it
• Where does the information go,
• Who process it and so on.
12. Data Modelling
• Refined into a set of data objects (entities) that are needed to support the business.
• The attributes ( character of each entities) are identified and the relation between the
data object is defined.
Process modelling
• Data modelling phase are transformed to achive the data flow necessary to implement a
business function.
• Processing descriptions are created for adding, modifying, deleting, or retrieving a data
object.
13. Application Modelling
• automated tools are used to facilities construction of the software,
• Even they use the 4th GL techniques.
Testing and turnover
• Many of the programming components have already been tested since RAD emphasis
reuse.
• This reduces the overall testing time.
• But new part must be tested, and all interfaces must be fully exercised.
14. SPIRAL MODEL
• Iterative prototyping, with framework
activities
• For example:
• First circuit: Specification
• Second circuit : prototype
• Third circuit : product release
• Include development and maintance
15. • CHALLENGES:
• Hard to show controllability
• (Size and timing of each circuit)
• Risk assessment is fundamental
• Model fairly new (less experience)