Software Engineering

Software Engineering

  • Software Engineering  is the practical application of scientific knowledge in the design and construction of computer programs and associated documentation required to develop, operate and maintain them.
  • Software engineering aim is the production of fault free software that satisfies the user’s needs and is delivered on time and within budget.
  • It deals with cost effective solution to practical problems by applying scientific knowledge.

Objective of software engineering 

To understand user conceptual models and development of better specification.

  • To improve design language and reusable code.
  • To satisfy the user’s requirements.
  • To achieve low maintenance and production cost.
  • To provide the software within budget and time.
  • To achieve high performance.

Components Of Software Engineering

  1. Set of programs: It is a collection of source code and object code. Examples of small programs are factorial of number or print a sequence of number up to given limit. 
  • A software is a set of program.
  1. Software documents: Software documentation consist of all the description, programs, graphics and instruction pertaining to design , coding, testing and preparations of software.
  • Good software contain following documentation :
  • Analysis and specification
  • Design
  • Coding
  • Testing
  1. Operating procedure: Operating procedure provide information about what the software is, how to work with it, how to install and how to control all the activities of the software.
  • The main aim of operating procedure is to provide help to operating staff for producing desired output.
  • It can be divided in two parts:
  1. User manual
  2. Operating manual

Characteristics of Good Software 

Operating Characteristics: These are functionality based factors and related to ‘exterior quality’ of software. Various operational characteristics of software are:

  • Correctness: the software should meet all the specifications stated by the customer.
     
  • Usability/Learn ability: The amount of time required to learn how to use the software should be less. This makes the software user-friendly.
     
  • Integrity: A software may affect the working of another application. A Quality software should not have side effects.
     
  • Reliability:- Its refers to the ability of the software to provide desired functionally under the given conditions.
     
  • Efficiency:- The software should make effective use of the storage space and execute command as per desired timing requirements.
     
  • Security:- The software shouldn’t have ill effects on data/hardware. Proper measure should be taken to keep data secure from external threats.
     
  • Safety:- The software should not be hazardous to the environment/life.

Revision Characteristics:-  These engineering based factors of the relate to ‘interior quality’ of the software like efficiency, documentation and structure. Various revision characteristics of software are:

  • Maintainability:- Maintenance of the software should be easy for any kind of user.
     
  • Flexibility:- Changes in the software should be easy to make.
     
  • Scalability:- It should be easy to upgrade for more work ( or for ore number of users).
     
  • Testability:- Testing the software should be easy.
     
  • Modularity:- If the software is divided into separate independent parts that can be modified, tested separately, it has high modularity.

Transition characteristics

Transition characteristics of the software:

  • Interoperability:- is the ability of software to exchange information with order applications and make use of information transparently.
  • Reusability:- If we are able to use the software code with some modification for different purpose then we call software to be reusable.
  •  Portability:- The ability of software to perform same functions across  all environment and platforms, demonstrate its portability.

Software Development Life Cycle

  • Software Development Life Cycle(SDLC) is a pictorial and diagrammatic representation of the software life cycle.
  • Software development life cycle is used by the software industry to design, develop and test high quality software’s.
  • Software development life cycle represents all the methods required to make a software product transit through its life cycle stages.
  • It also define the structure in which these methods are to be undertaken.

Software Development Life Cycle (SDLC) comprises of seven distinct phases

Software development life cycle

Phase 1: Planning

  1. In the planning phase, project goals are determined and high-level plan for the intended project is established.
  2. Planning is the most fundamental and critical organizational phase.
  3. The three primary activities involved in the planning are:
  • Identification of the system for development.
  • Feasibility assessment.
  • Creation of project plan.

Phase 2: Analysis

  1. In the analysis phase, end user business requirement are analyzed and project goals converted into the defined system functions that the organization intends to develop.
  2. Gathering business requirement .
  3. Performing a detailed analysis.

Phase 3: Design

  1. In the design phase, we describe the desired features and operations of the system.
  2. This phase includes business rules, pseudo-code, screen layouts, and other necessary documentation.
  3. The two primary activities involved in the design phase are:
  • Designing of IT infrastructure.
  • Designing of system model.

Phase 4: Development

  1. In the development phase, all the documents from the preview phases are transformed into the actual system.
  2. The two primary activities involved in the development phase are:
  • Development of IT infrastructure
  • Development of database and code.

Phase 5: Testing

  1. In the testing phase , all the piece of code are integrated and deployed in the testing  environment.
  2. Tester then follow Software Testing Life Cycle activities to check the system for error, bugs, and defects.
  3. The two primary activities involved in the testing phase are:
  • Writing test cases
  • Execution of test cases

Phase 6: Deployment

  1. During this next phase, the system is deployed to a real-life environment where the actual user begins to operate the system.
  2. All data and components are then placed in the production and environment this phase is also called referred to as ‘delivery’.

Phase 7: Maintenance

  1. In the maintenance phase, any necessary enhancements, corrections, and changes will be made to make sure the system continue to work, and stay updated to meet the business goals.
  2. The three primary activities involved in the maintenance phase are:
  • Support the system users
  • System maintenance
  • System change and adjustment

Requirement engineering process

  • Requirement is the process of defining, documentation and maintaining the requirements.
  • It is a process of gathering and defining service provided by the  system.

Steps in requirement engineering process:

  1. Requirement elicitation:-
  • It is related to the various ways used to gain knowledge about the project domain and requirement.
  •  The various source of domain knowledge include customers, business manuals, the existing software of same type, standards and other stakeholder of the project.
  • The techniques used for requirements elicitation include interviews, brainstorming, task analysis, Delphi technique, prototyping etc.
  1. Requirement specification:-
  • This activity is used to produce formal software requirement models.
  • All functional and non-functional requirement and the constraints are specified by these models in totality.
  • During specification, more knowledge about the problem may be required which again trigger the elicitation process.
  • The models used at this stage include ER diagrams, Data Flow Diagrams (DFDs), Function Diagrams (FDDs), data dictionaries, etc.
  1. Requirement verification and validation:
  • Verification: it refers to the set of tasks that ensures that the software correctly implements a specific function.
  • Validation:- It refers to a different set of tasks that ensures that the software that has been built is traceable to customer requirements.
  • If requirements are not validated, errors in the requirement definition would propagate to the successive stages resulting in a lot of modification and rework.
  1. Requirement management:-
  • Requirement management is the process of analyzing documentation, tracking, prioritizing and agreeing on the requirement and controlling the communication to relevant stakeholders.
  • This stage taken care of the changing nature of requirements.
  • It should be ensured that the SRS is as modifiable as possible so as to incorporate changes in requirement specifies in requirements specified by the end users at later stages too.

Software Testing

  • Software testing is the process of executing a program with the intention of finding errors in the code.
  • It is a process to verify that whether a system or its parts is satisfying specified requirements or not.

Following are objectives of software testing:

  1. Software quality improvement :
  • Software quality means the conformance to the specified software design requirements.
  • The minimum maintenance of quality means performing as required under specified circumstances
  • Software testing is not only used to remove bugs, but also to find out design defect by the programmer.
  1. Verification and validation :
  • Verification means to test that we are building the product in right way i.e., we are using the correct procedure for the development of software so that it can meet the user requirements.
  • Whereas validation is the process which checks that whether we are building the right product or not.
  1. Software reliability estimation:
  • Software reliability has important relationship with many aspects of software development.
  • Its objective is to discover the residual designing errors before delivery to the customer.
  • The failure data during the testing process are taken down in order to estimate the software reliability.

Software Maintenance 

  • Software maintenance is modification of software product after delivery to correct faults, to improve performance of the other attributes or to adopt the product to a modified environment
  • Software maintenance is the process of changing system after it has been delivered to the customers.
  • The cost of software maintenance is quite high.,
  • Software maintenance accounts more than 65% cost of software  development cost.

Need For Software Maintenance:

The software needs maintenance due to following reasons:

  • Over a period of time, software’s original requirements may change to reflect the customer’s need.
  • Errors undetected during software development may be found during the use and require correction.

With time, new technologies are introduced such as new hardware, operating system etc. The software therefore must be modified to adopt the new environment. 

Category: 

Share

Who's new

  • ravirajpatil871...
  • shubhambajoria
  • yassir
  • demiholyman890954
  • scottgillum51169040

Get Notified

 

Share

We are Social

Syndicate

Subscribe to Syndicate