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.