Software Engineering 1 Flashcards
Software engineering
an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures.
Software
considered to be collection of executable programming code, associated libraries and documentations. Software, when made for a specific requirement is called software product
program
is an executable code, which serves some computational purpose.
Engineering
on the other hand, is all about developing products, using well-defined, scientific principles and methods.
Software Evolution
The process of developing a software product using software engineering principles and methods
Software Evolution Cycle
- change request
- impact analysis
- release planning
- system update
- system release
Evolution Cycle
- gathering process
- create prototype
- show to users
- get feedback
- update and maintenance
Software Evolution Laws Lehman
- Static-type (S-type)
- Practical-type (P-type)
- Embedded-type (E-type)
Static-type (S-type)
- which works strictly according to defined specifications and solutions. The solution and the method to achieve it, both are immediately understood before coding. The s-type software is least subjected to changes hence this is the simplest of all.
- For example, calculator program for mathematical computation
Practical-type (P-type)
- This is a software with a collection of procedures. This is defined by exactly what procedures can do. In this software, the specifications can be described but the solution is not obviously instant.
- For example, gaming software.
Embedded-type (E-type)
- This software works closely as there quirement of real-world environment.
- This software has a high degree of evolution as there are various changes in laws, taxes etc. in the real world situations.
- For example, Online trading software.
E-Type software evolution
- Continuing change
- Increasing complexity
- Conservation of familiarity
- Continuing growth
- Reducing quality
- feedback system
- Self-regulation
- Organizational stability
Continuing change
An E-type software system must continue to adapt to the real world changes, else it becomes progressively less useful.
Increasing complexity
As an E-type software system evolves, its complexity tends to increase unless work is done to maintain or reduce it.
Conservation of familiarity
The familiarity with the software or the knowledge about how it was developed, why was it developed in that particular manner etc., must be retained at any cost, to implement the changes in the system.
Continuing growth
order for an E-type system intended to resolve some business problem, its size of implementing the changes grows according to the lifestyle changes of the business.
Reducing quality
An E-type software system declines in quality unless rigorously maintained and adapted to a changing operational environment.
Feedback systems
The E-type software systems constitute multi-loop, multi-level feedback systems and must be treated as such to be successfully modified or improved.
Self-regulation
E-type system evolution processes are self-regulating with the distribution of product and process measures close to normal
Organizational stability
The average effective global activity rate in an evolving E-type system is invariant over the lifetime of the product.
Software paradigms
refer to the methods and steps, which are taken while designing the software. There are many methods proposed and are implemented. But, we need to see where in the software engineering concept, these paradigms stand.
Software Development Paradigm
- This paradigm is known as software engineering paradigms
- where all the engineering concepts pertaining to the development of software are applied. It includes various researches and requirement gathering which helps the software product to build
Software Development Paradigm consists of
- requirement gathering
- software design
- programming
This paradigm is a part of Software Development and includes
- Design
- Maintenance
- Programming