Principal of S.E Lec 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 33

Faculty Of Engineering and Technology

Department of Computer Science


Course: Principal of Software Engineering
Course Code : CS- 106
(Lecture-2)

Lecturer: Nazir Ahmad Qayoom


Department: Computer Science
Email: [email protected]
Mobile: +93(0) 706338869
CONTENTS

• Software

• Types of Software

• Engineering

• Software Engineering/Computer Science/System Engineering

• Professional & Ethical responsibilities of Software Engineer

• Software crisis

• Attributes of quality software

2
OUTCOMES
At the end of this lecture, students will be able to;
• Software
• Types of Software
• Engineering
• Software Engineering/Computer Science/System Engineering
• Professional & Ethical responsibilities of Software Engineer
• Software crisis
• Attributes of quality software

3
Program

• Programs are usually developed by individuals.


• It is a set of instructions written for the computer.
• Programmer himself writes & maintains the program.

• Usually programs are:


1. small in size.
2. Have limited functionality.
3. May not have a proper user interface & documentation.
Software
• Software is a set of items:

1. Programs:
• code

2. Data:
• the data on which the program operates

3. Documents:
• All documentation associated with the program and its use
Software

• Computer Software are developed by a team of professionals (e.g. system analyst,


designer, programmer/coder etc.) .

• They are too large to be developed by a single programmer.

• They have:

❑ Multiple users.
❑ Proper user interface.
❑ Requirement specification document.
❑ Design document
Software

• So Software does not simply mean the computer programs associated with some
application or product.

• ‘Software’ includes the documentation necessary to install, use, develop and maintain
these programs.
Popular Social Media Software
Popular Search Engine Software
Popular e-commerce Software
Popular OS Software
Popular Phones software
Software Categories

1. Generic Products:

• it is sold on the open market to any customer who can buy it.
• The developing organization controls the software specification. For example: MS
Office

2. Customized/Be-spoken Products:

• it is commissioned by a particular customer and is developed for that particular


customer ONLY. The specification is developed and is controlled by the customer &
the developer must work to that specifications. For example Azizi bank.
Types of Software

• System Software
• Application Software
• Embedded Software
• Real-time Software
• Business Software
• Personal computer Software
System Software

• System software is computer software designed to operate the computer hardware and
to provide a platform for running application software, OR

• Any program that controls the computer’s hardware is called System Software.

• Furthermore, there are two types of System software.

❑ Operating System Software


❑ Languages software
Continue:
• Operating System Software:

• Operating system Software is software that Control hardware as well as Computer


Software.
• An operating system is essential for any computer, because it acts as an interpreter
between hardware, application and the user.
• Ms Window (Win98, WinXp, win2000, Window Vista), Linux and Macintosh etc are
the examples Of Operating System software.

• Languages software:

• The Software through which we create further Software (programs) is called Language
Software. For Example C/C++, Visual Basic.net (VB.net), Java and c#.net etc.
Application Software
• Application Software:
• software that allows users to do things like create text documents, play games, listen to sounds, or surf the
web is called application software. OR, The Software which is used to perform a specific task for the user
is called Application Software.

• Further more, there are two types of Application software.


❑ Packaged Software:
❑ Custom Software:

✓ Packaged Software:
• A Software which is not developed by order and any user or Organization can use it is called Packaged
Software. For Example Ms Office, In page, Corel Draw etc.

✓ Customized S/W
• The Software which is developed by order for a specific user or Organization is called Customized
Software. Its success depends on meeting the requirement needs of clients. Examples: web sites , air
traffic control system, software for managing the finance of a large organization etc.
Embedded Software

• These are used to run specific hardware devices such as washing machine, microwave
oven and automobiles.
• Though its sold on the open market.
• Its users usually can’t upgrade or replace it without also replacing the hardware.
Real- time Software

• Software that monitors/analyzes/controls real-world events as they occur is called real


time.
• Elements of real-time software include a data gathering component that collects and
formats information from an external environment, an analysis component that
transforms information as required by the application, a control/output component that
responds to the external environment, and a monitoring component that coordinates all
other components so that real-time response (typically ranging from 1 millisecond to 1
second) can be maintained.
• e.g. a telephone system has to manage phone calls in real time , but billing for the calls
is a data processing activity.
Business Software

• Business software is defined as any software program that is a crucial tool used by a
business to increase or measure productivity.
• Business software programs can be utilized by small, medium and large enterprises.e.g.
payroll, accounts receivable/payable.
Personal Computer Software

• The personal computer software market has grown over the past three decades.
• computer graphics, multimedia, entertainment, database management, personal and
business financial applications and database access are only a few of hundreds of
applications.
Engineering

• What is engineering:

• Before moving on to software engineering lets first discuss something about


engineering itself.
• “The process of productive use of scientific knowledge is called engineering.” OR,
• Engineering is the discipline, art, skill and profession of applying scientific,
mathematical, economic, social and practical knowledge, in order to design and build
machines, devices, systems and materials that safely realize the improvements to the
lives of people.
• “The process of productive use of scientific knowledge is called engineering.”
Software Engineering

• Software engineering:

• Software Engineering is the set of processes and tools to develop software.

• Software engineering is the combination of all the tools, techniques, and processes
that used in software production.

• |Software Engineering| is the establishment and use of complete engineering principles


in order to obtain economical software that is reliable and work efficiently on real
machines.
Software Engineering

• Software Engineering defined by IEEE (International institute of Electric and


Electronic Engineering):

• “The application of a systematic, disciplined, quantifiable approach to the development,


operation, and maintenance of software; that is, the application of engineering to
software.”

• Software engineering is not just concerned with the technical processes of software
development but also with activities such as software project management and with
the development of tools, methods and theories to support software production”.
CS/SWE/SE

• Computer Science:
• Computing Information Science or Computer Science is the study of the theoretical
foundation of information, computation and their implementation in computer systems.

• System Engineering is concerned with all aspects of computer-based systems


development including hardware, software engineering.

• Software Engineering is part of this process concerned with the development of


software and databases in the system.
Professional & Ethical responsibilities of Software Engineer

• What is Professional Ethics?

• Professional ethics are code of conduct that govern how members of profession deal
with each other and with third parties

• Software engineering involves wider responsibilities than simply the application of


technical skills.

• Software engineers must behave in an honest and ethically responsible way if they are
to be respected as professionals.
Professional & Ethical responsibilities of Software Engineer

• Confidentiality:
• Engineers should normally respect the confidentiality of their employers or clients
irrespective of whether or not a formal confidentiality agreement has been signed.
• Competence
• Engineers should not misrepresent their level of competence. They should not
knowingly accept work which is outside their competence.
• Intellectual property right
• You should be careful to ensure the intellectual property of your employers and clients
• Computer Misuse
• You should not use your technical skills to misuse other people’s computer. Misuse
ranges from game playing on employers computer, and the dissemination of viruses
Attributes of Good Software

• The software should deliver the required functionality and performance to the user and
should be maintainable, dependable and acceptable.
• Maintainability
• Software must evolve to meet changing needs;
• Dependability
• Software must be trustworthy;
• Efficiency
• Software should not make wasteful use of system resources;
• Acceptability
• Software must have accepted by the users for which it was designed. This means it must
be understandable, and usable
Software Crisis

• Computer systems were very new in early fifties and the use of software was also very
limited at that time.
• In 1960s a great amount of rapid improvement was made in Hardware.
• More powerful hardware resulted into the development of more powerful and complex
software.
• Those very complex software was very difficult to write.
• So the tools and techniques that were used for less complex software became
inapplicable for the more complex software
Software Crisis

• Lets try to understand this with the help of an example.


• Example of man living in a hut.
• In early 60s software had suffered from the similar kind of problem to which we call
Software Crisis.
• Techniques that were used to develop small software were not applicable for large
software systems.
Software Crisis

• This thing resulted in to the following consequences:

• In most of the cases that software which was tried to be build using those old tools and
techniques were not complete.
• Most of the times it was delivered too late.
• Most of the projects were over-budgeted.
• And in most of the case systems build using these techniques were not reliable –
meaning that they were not be able to do what they were expected to do.
Software Crisis

• As a result of these problems a conference was held in 1969 in which the term software
crisis was introduced.
• And the term of Software Engineering was also coined in the same conference
• Software engineering is the result of software crisis when people realized that it is not
possible to construct complex software using the techniques applicable in 1950s.
• An important result of this thing was that people had realized that just coding is not
enough
Thank You…!

You might also like