Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
6 views25 pages

D-1 (Introduction To Software Enginee)

Uploaded by

cocomealy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views25 pages

D-1 (Introduction To Software Enginee)

Uploaded by

cocomealy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Introduction to Software engineering

Day 1
What is 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.

• Software is considered to be collection of executable programming code, associated libraries and


documentations. Software, when made for a specific requirement is called software product.

• Engineering on the other hand, is all about developing products, using well-defined, scientific
principles and methods.

• Software Engineering is an engineering branch related to the evolution of software product


using well-defined scientific principles, techniques, and procedures. The result of software
engineering is an effective and reliable software product.
Updates
Maintenance Requirement

Deployment
Software System
Analysis
product
System
Testing
design
Code design
Definitions

IEEE defines software engineering as:


(1) The application of a systematic, disciplined, quantifiable approach to the development, operation
and maintenance of software; that is, the application of engineering to software.
(2) The study of approaches as in the above statement.

Fritz Bauer, a German computer scientist, defines software engineering as:


Software engineering is the establishment and use of sound engineering principles in order to obtain
economically software that is reliable and work efficiently on real machines.

Watts S. Humphrey created the Software Process Program at Carnegie Mellon University’s Institute
(SEI) in the 1980s, and served as its director from 1986 through the early 1990s. This program was
designed to help participants understand and manage the software development process.
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.
• There are three components of the software as shown in fig:
1. Program: Program is a combination of source code
& object code.

Programs 2. Documentation: Documentation consists of


different types of manuals. Examples of
documentation manuals are: Data Flow Diagram,
Flow Charts, ER diagrams, etc.
Documentation
3. Operating Procedures: Operating Procedures
consist of instructions to set up and use the software
Operating system and instructions on how react to the system
Procedures failure. Example of operating system procedures
manuals is: installation guide, Beginner's guide,
reference guide, system administration guide, etc.
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. These are four key process activities, which are
common to all software processes.

These activities are:

1. Software specifications : The functionality of the software and constraints on its operation
must be defined.
2. Software development : The software to meet the requirement must be produced.
3. Software validation : The software must be validated to ensure that it does what the
customer wants.
4. Software evolution : The software must evolve to meet changing client needs.
What was the Software Crisis?
• It was in the late 1960s when many software projects failed.
• Many software became over budget. Output was an unreliable software which is
expensive to maintain.
• Larger software was difficult and quite expensive to maintain.
• [

• Lots of software not able to satisfy the growing requirements of the customer.
• Complexities of software projects increased whenever its hardware capability increased.
• Demand for new software increased faster compared with the ability to generate new
software.
All the above issues lead to ‘Software Crisis.’
The Solution

Solution was to the problem was transforming unorganized coding effort into a
software engineering discipline. These engineering models helped companies to
streamline operations and deliver software meeting customer requirements.

• The late 1970s saw the widespread uses of software engineering principles.

• In the 1980s saw the automation of software engineering process and growth of
(CASE) Computer-Aided Software Engineering.

• The 1990s have seen an increased emphasis on the ‘management’ aspects of


projects standard of quality and processes just like ISO 9001
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.
• Large software – In our real life, it is quite more comfortable to build a wall than a house or
building. In the same manner, as the size of the software becomes large, software engineering helps
you to build software.
• Scalability- If the software development process were based on scientific and engineering concepts,
it is easier to re-create new software to scale an existing one.
• 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.
Characteristics of a good software engineer
The features that good software engineers should possess are as follows:
• 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

What’s the difference between a software engineer and a programmer?


Programming graduates will often go into roles where they’re solely responsible for designing and
developing software.
In contrast, software engineers are often more specialized and work on larger teams, on larger projects.
Software engineer roles have largely come about as a result of companies like Facebook, Apple, and
Google.
Importance of Software Engineering

Reduced Minimum
complexity S/W cost

Decrease Importance of software Handling


time engineering Big Project

Reliable
Effectiveness
software
1. 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.

2. To minimize software cost: Software needs a lot of hard-work 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.

3. 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.
4. 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.

5. 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.

6. 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.
Software Evolution
The process of developing a software product using software engineering principles and methods is
referred to as software evolution. This includes the initial development of software and its maintenance
and updates, till desired software product is developed, which satisfies the expected requirements.
Evolution starts from the requirement gathering process. After which developers create a prototype of
the intended software and show it to the users to get their feedback at the early stage of software
product development.

The users suggest changes, on which several consecutive updates and maintenance keep on changing
too. This process changes to the original software, till the desired software is accomplished.

Even after the user has desired software in hand, the advancing technology and the changing
requirements force the software product to change accordingly.

Re-creating software from scratch and to go one-on-one with requirement is not feasible. The only
feasible and economical solution is to update the existing software so that it matches the latest
requirements.
Software Paradigms
Software paradigms refer to the methods and steps, which are taken while designing the software.
There are many methods proposed and are in work today, but we need to see where in the software
engineering these paradigms stand. These can be combined into various categories, though each of
them is contained in one another:

Programming paradigm is a subset of Software design paradigm which is further a subset of Software
development paradigm.
Software Development Paradigm Software Design Paradigm
This paradigm is a part of Software Development and includes –
This Paradigm is known as software • Design
engineering paradigms where all the • Maintenance
engineering concepts pertaining to • Programming
the development of software are
applied.
Programming Paradigm
It includes various researches and
This paradigm is related closely to programming aspect of
requirement gathering which helps
software development.
the software product to build.
This includes –
It consists of –
• Coding
• Requirement gathering
• Testing
• Software design
• Integration
• Programming
Characteristics of good software
A software product can be judged by what it offers and how well it can be used. This software
must satisfy on the following grounds: Operational, Operational, and Maintenance

Operational Transitional Maintenance


This tells us how well software This aspect is important when This aspect briefs about how
works in operations. It can be the software is moved from well a software has the
measured on: one platform to another: capabilities to maintain itself in
• Budget • Portability the ever-changing
• Usability • Interoperability environment:
• Efficiency • Reusability • Modularity
• Correctness • Adaptability • Maintainability
• Functionality • Flexibility
• Dependability • Scalability
• Security
• Safety
What does the study of an existing system refer to?
1. Details of DFD
2. Feasibility Study
3. System Analysis
4. System Planning

Answer: c) System Analysis


Software is defined as ___________
a) set of programs, documentation & configuration of data
b) set of programs
c) documentation and configuration of data
d) None of the mentioned

View Answer
Answer: a
What is Software Engineering?
a) Designing a software
b) Testing a software
c) Application of engineering principles to the design a software
d) None of the above

View Answer
Answer: c
Who is the father of Software Engineering?
a) Margaret Hamilton
b) Watts S. Humphrey
c) Alan Turing
d) Boris Beizer

View Answer
Answer: b
Explanation: Watts S. Humphrey created the Software Process Program at Carnegie Mellon
University’s Institute (SEI) in the 1980s, and served as its director from 1986 through the
early 1990s. This program was designed to help participants understand and manage the
software development process.
What is a Functional Requirement?
a) specifies the tasks the program must complete
b) specifies the tasks the program should not complete
c) specifies the tasks the program must not work
d) All of the mentioned

View Answer
Answer: a
Explanation: A functional requirement is a specification that describes a system or
one of its components. It specifies the tasks the program must complete. A
function is made up of three parts: inputs, behavior, and outputs.
12. Attributes of good software is ____________
a) Development
b) Maintainability & functionality
c) Functionality
d) Maintainability

View Answer
Answer: b
Explanation: Good software should provide the functionality and maintainability that
are necessary. Software development is a must, not an option. Along with this software
also additional attributes like usability, efficiency, reliability, accuracy, robustness,
integrity, etc.
THANK YOU!

You might also like