1 of 30

SOFTWARE ENGINEERING�

Dr. Sangeeta Arora

(HOD, P.G dept of computer science & IT)

2 of 30

Software Engineering�

  • The term software engineering is the product of two words, software, and engineering.
  • The software is a collection of integrated programs.
  • Software subsists of carefully-organized instructions and code written by developers on any of various particular computer languages.
  • Computer programs and related documentation such as requirements, design models and user manuals.
  • Engineering is the application of scientific and practical knowledge to invent, design, build, maintain, and improve frameworks, processes, etc.

3 of 30

Requirements of Software Engineering

  • Software Engineering is required due to the following reasons:
  • To manage Large software
  • For more Scalability
  • Cost Management
  • To manage the dynamic nature of software
  • For better quality Management

4 of 30

Need of Software Engineering�

The necessity of software engineering appears because of a higher rate of progress in user requirements and the environment on which the program is working.

  • Huge Programming: It is simpler to manufacture a wall than to a house or building, similarly, as the measure of programming become extensive engineering has to step to give it a scientific process.
  • Adaptability: If the software procedure were not based on scientific and engineering ideas, it would be simpler to re-create new software than to scale an existing one.
  • Cost: As the hardware industry has demonstrated its skills and huge manufacturing has let down the cost of computer and electronic hardware. But the cost of programming remains high if the proper process is not adapted.
  • Dynamic Nature: The continually growing and adapting nature of programming hugely depends upon the environment in which the client works. If the quality of the software is continually changing, new upgrades need to be done in the existing one.
  • Quality Management: Better procedure of software development provides a better and quality software product.

5 of 30

Characteristics of a good software engineer�

  • Exposure to systematic methods, i.e., familiarity with software engineering principles.
  • Good technical knowledge of the project range (Domain knowledge).
  • Good programming abilities.
  • Good communication skills. These skills comprise of oral, written, and interpersonal skills.
  • High motivation.
  • Sound knowledge of fundamentals of computer science.
  • Intelligence.
  • Ability to work in a team
  • Discipline��

6 of 30

Importance of Software Engineering

7 of 30

Importance of Software Engineering

  • Reduces complexity: Big software is always complicated and challenging to progress. Software engineering has a great solution to reduce the complication of any project. Software engineering divides big problems into various small issues. And then start solving each small issue one by one. All these small problems are solved independently to each other.
  • To minimize software cost: Software needs a lot of hardwork and software engineers are highly paid experts. A lot of manpower is required to develop software with a large number of codes. But in software engineering, programmers project everything and decrease all those things that are not needed. In turn, the cost for software productions becomes less as compared to any software that does not use software engineering method.
  • To decrease time: Anything that is not made according to the project always wastes time. And if you are making great software, then you may need to run many codes to get the definitive running code. This is a very time-consuming procedure, and if it is not well handled, then this can take a lot of time. So if you are making your software according to the software engineering method, then it will decrease a lot of time.

8 of 30

Importance of Software Engineering

  • Handling big projects: Big projects are not done in a couple of days, and they need lots of patience, planning, and management. And to invest six and seven months of any company, it requires heaps of planning, direction, testing, and maintenance. No one can say that he has given four months of a company to the task, and the project is still in its first stage. Because the company has provided many resources to the plan and it should be completed. So to handle a big project without any problem, the company has to go for a software engineering method.
  • Reliable software: Software should be secure, means if you have delivered the software, then it should work for at least its given time or subscription. And if any bugs come in the software, the company is responsible for solving all these bugs. Because in software engineering, testing and maintenance are given, so there is no worry of its reliability.
  • Effectiveness: Effectiveness comes if anything has made according to the standards. Software standards are the big target of companies to make it more effective. So Software becomes more effective in the act with the help of software engineering.

9 of 30

Software Processes�

  • The term software specifies to the set of computer programs, procedures and associated documents (Flowcharts, manuals, etc.) that describe the program and how they are to be used.
  • A software process is the set of activities and associated outcome that produce a software product. Software engineers mostly carry out these activities. 

10 of 30

Software Processes�

These are four key process activities, which are common to all software processes. These activities are:

  • Software specifications: The functionality of the software and constraints on its operation must be defined.
  • Software development: The software to meet the requirement must be produced.
  • Software validation: The software must be validated to ensure that it does what the customer wants.
  • Software evolution: The software must evolve to meet changing client needs.

11 of 30

The Software Process Model�

  • A software process model is a specified definition of a software process, which is presented from a particular perspective. Models, by their nature, are a simplification, so a software process model is an abstraction of the actual process, which is being described. Process models may contain activities, which are part of the software process, software product, and the roles of people involved in software engineering. 

12 of 30

The Software Process Model�

The types of software process models that may be produced are:

  • 1.A workflow model: This shows the series of activities in the process along with their inputs, outputs and dependencies. The activities in this model perform human actions.
  • 2. A dataflow or activity model: This represents the process as a set of activities, each of which carries out some data transformations. It shows how the input to the process, such as a specification is converted to an output such as a design. The activities here may be at a lower level than activities in a workflow model. They may perform transformations carried out by people or by computers.
  • 3. A role/action model: This means the roles of the people involved in the software process and the activities for which they are responsible.

13 of 30

Software Crisis�

  • Size: Software is becoming more expensive and more complex with the growing complexity and expectation out of software. For example, the code in the consumer product is doubling every couple of years.
  • Quality: Many software products have poor quality, i.e., the software products defects after putting into use due to ineffective testing technique. For example, Software testing typically finds 25 errors per 1000 lines of code.
  • Cost: Software development is costly i.e. in terms of time taken to develop and the money involved. For example, Development of the FAA's Advanced Automation System cost over $700 per lines of code.
  • Delayed Delivery: Serious schedule overruns are common. Very often the software takes longer than the estimated time to develop, which in turn leads to cost shooting up. For example, one in four large-scale development projects is never completed.

14 of 30

Program vs. Software

  • Software is more than programs. Any program is a subset of software, and it becomes software only if documentation & operating procedures manuals are prepared.

15 of 30

Program vs. Software

16 of 30

Program vs. Software

  • 1. Program: Program is a combination of source code & object code.
  • 2. Documentation: Documentation consists of different types of manuals. Examples of documentation manuals are: Data Flow Diagram, Flow Charts, ER diagrams, etc.

17 of 30

18 of 30

Program vs. Software

  • 3. Operating Procedures: Operating Procedures consist of instructions to set up and use the software system and instructions on how react to the system failure.
  • Example of operating system procedures manuals is: installation guide, Beginner's guide, reference guide, system administration guide, etc.

19 of 30

20 of 30

Software Development Life Cycle

21 of 30

Software Development Life Cycle

  • A software life cycle model (also termed process model) is a pictorial and diagrammatic representation of the software life cycle.
  • A life cycle model represents all the methods required to make a software product transit through its life cycle stages.
  • It also captures the structure in which these methods are to be undertaken.

22 of 30

Need of SDLC�

  • The development team must determine a suitable life cycle model for a particular plan and then observe to it.
  • Without using an exact life cycle model, the development of a software product would not be in a systematic and disciplined manner. When a team is developing a software product, there must be a clear understanding among team representative about when and what to do.
  • Otherwise, it would point to chaos and project failure.
  • This problem can be defined by using an example. Suppose a software development issue is divided into various parts and the parts are assigned to the team members.
  • From then on, suppose the team representative is allowed the freedom to develop the roles assigned to them in whatever way they like. It is possible that one representative might start writing the code for his part, another might choose to prepare the test documents first, and some other engineer might begin with the design phase of the roles assigned to him. This would be one of the perfect methods for project failure.

23 of 30

SDLC Cycle�

  • SDLC Cycle represents the process of developing software. SDLC framework includes the following steps:

24 of 30

SDLC Models�

  • Software Development life cycle (SDLC) is a spiritual model used in project management that defines the stages include in an information system development project, from an initial feasibility study to the maintenance of the completed application.
  • There are different software development life cycle models specify and design, which are followed during the software development phase. These models are also called "Software Development Process Models." Each process model follows a series of phase unique to its type to ensure success in the step of software development.

25 of 30

 Important phases of SDLC life cycle:��

26 of 30

Requirement Engineering�

  • Requirements engineering (RE) refers to the process of defining, documenting, and maintaining requirements in the engineering design process.
  • Requirement engineering provides the appropriate mechanism to understand what the customer desires, analyzing the need, and assessing feasibility, negotiating a reasonable solution, specifying the solution clearly, validating the specifications and managing the requirements as they are transformed into a working system.
  • Thus, requirement engineering is the disciplined application of proven principles, methods, tools, and notation to describe a proposed system's intended behavior and its associated constraints.

27 of 30

Requirement Engineering Process�

It is a four-step process, which includes -

  • Feasibility Study
  • Requirement Elicitation and Analysis
  • Software Requirement Specification
  • Software Requirement Validation
  • Software Requirement Management

28 of 30

Requirement Engineering�

29 of 30

Prerequisite of Software requirements�

  • Collection of software requirements is the basis of the entire software development project. Hence they should be clear, correct, and well-defined.
  • A complete Software Requirement Specifications should be:
  • Clear
  • Correct
  • Consistent
  • Coherent
  • Comprehensible
  • Modifiable
  • Verifiable
  • Prioritized
  • Unambiguous
  • Traceable
  • Credible source

30 of 30