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)