0% found this document useful (0 votes)
44 views26 pages

Software and Software Engineering

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)
44 views26 pages

Software and Software Engineering

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/ 26

SOFTWARE AND

SOFTWARE
ENGINEERING
TERMINOLOGY
• Software - is a collection of computer programs and related
data that provide the instructions for telling a computer what to
do and how to do it.

• Engineer - is a professional practitioner of engineering,


concerned with applying scientific knowledge, mathematical and
ingenuity to develop solutions for technical problems.

Engineers design materials, structures, machines and


systems while considering the limitation imposed by practicality,
safety and cost.

The word engineer is derived from the latin roots ingeniare (“to
contrive devise”) and ingenium (“cleverness”).
• Engineering - is the discipline, art, skill and profession
of acquiring and applying scientific, mathematical,
economic, social and practical knowledge, in order to
design and built structures, machines, devices, system,
m a t e r i a l s a n d p ro c e s s e s t h a t s a f e l y re a l i z e
improvements to the lives of peoples.

• Software Engineering (SE) - is the application of a


systematic, disciplined, quantifiable approach to the
developments operation, and maintenance of software.

๏ SE GOAL - to deal with the software complexities,


increase the reliability and enhance the quality of the
produced software.
TYPES OF SOFTWARE
1. SYSTEM SOFTWARE

A. Operating system

B. Language compiler

C. Assembler

D. Device driver

E. Debugger

F. Networking tools and software


2. APPLICATION SOFTWARE

A. Word Processor

B. Spreadsheet

C. Presentation Software

D. Database Management Software

E. Desktop Publisher

F. Graphic Editor

G. Games and Entertainment

H. Web Browser

I. Educational

J. Multimedia
SYSTEM SOFTWARE
• System software is computer software designed to
operate the hardware to provide basic functionality
and to provide a platform for running application
software.

• Refers to the operating system and all utility programs


that manage compouter resources at a low level.

• System software also includes system utilities, such as


the BIOS, disk defragmenter, disk cleanup, disk
partition tool and system restore.
APPLICATION SOFTWARE

• A program or group of programs designed for


end users.

• Allows end users to accomplish one or more


specific (non-computer related) task
TYPES OF LICENSE
SOFTWARE
• Registerware

• Shareware

• Freeware

• Open Source

• Demoware

• Abandonware
Registerware

• Refers to computer software which requires the


user to give personal information through
registration in order to download or use the
program.
Shareware/Demoware

• Refers to copyrighted commercial software that


is distributed without payment on a trial basis
and is limited by any combination of
functionality, availability, or convenience.
Freeware

• Computer software that is available for use with


no cost or for an optional fee.

• Freeware is different from shareware, where the


user is obliged to pay.
Open Source Software(OSS)
• OSS is also a free software

• Oss can be defined as computer software for


which the human - readable source code is made
available under a copyright license (or
arrangement such as the public domain) that
meets the open source definition.

• This permits users to use, change and improve


the software and to redistribute it in modified or
unmodified form.
Abondonware

• It refers to software that is no longer available for


purchase or that is at least a certain amount of
years old.
GENERIC STAGES IN
SOFTWARE DEVELOPMENT

Definition Stage Implementation Stage Maintenance Stage


Requirements Design Adaptation
Specification Coding Enhancement
Testing Correction
SOFTWARE ERRORS
Software errors are known because they have been discovered by:

• The software developers

• Reported by the users

• During testing

• After the software deployed

Taxonomy of Software Errors reported by Beizer in 1990:

• Requirements and specification eror 25%

• Design 25%

• Implementation 10%

• Integration 10%

• Data related 10%

• Testing 3%

• Others 2%

100%
SOFTWARE BEHAVIOR,
STRUCTURE AND ARCHITECTURE:
BEHAVIOR

SOFTWARE

STRUCTURE ARCHITECTURE
1. SOFTWARE DEVELOPERS

2. SOFTWARE MAINTAINERS

3. TECHNICAL WRITERS

4. SOFTWARE VENDORS

5. SOFTWARE USERS

6. GOVERNMENT BODIES

7. PROFESSIONAL ORGANIZATIONS AND SOCIETIES (CODE OF


ETHICS FOR THE PROFESSIONAL)

8. STANDARD BODIES

9. TOOL DEVELOPERS AND VENDORS

10.CLIENTS
SOFTWARE ENGINEERING EDUCATION,
TRAINING AND CERTIFICATION:

1. Graduate certificate or graduate degree in software engineering

2. Attending conferences

3. workshops

4. Tutorials

5. Short courses

6. Studying vendor-specific software engineering productivity tools

7. Securing certification as a software engineering professional


• C e r t i fi e d s o f t w a re e n g i n e e r i n g d e v e l o p m e n t
professional (CSDP) - is a professional certification for
software engineers manage by IEEE computer society.

• International Conference on Software Engineering


(ICSE) - the largest and most established conference
with all the parallel workshops and tutorials.

• International Computer Software and Application


Conference (COMSAC) - this held annually in Chicago
since 1977.

• Regional software engineering conferences in Europe


and Austrasia.
CODE OF ETHICS AND
PROFESSIONAL PRACTICE:
Developed and recommended by IEEE-CS/ACM joint task force - the committee
consisted of memberss from academia, industry and government.

• Public

1. Software engineer shall act consistently with the public interest.

2. Software engieer shall act in a manner that is in the best interest of their client
and employer, consistent with the public interest.

• Product

3. Software engineers shall ensure that their products and related modification
meet the highest professional standards possible.

• Profession

4.Software engineers shall advance the integrity and reputation of the


professional consistent with the public interest.
• Peers and Self

5. Software engineers shall maintain integrity and


independence in their professional judgement.

6. Software engineering managers and leaders shall


subscribe to and promote an ethical approach to the
management of software development and maintenance.

7. Software engineers shall be fair to and supportive of their


collleagues.

8. Software engineers shall participate in lifelong learning


regarding the practice of their profession and shall
promote an ethical approach to the practice of the
profession.
3 P’s OF SOFTWARE ENGINEERING
(PROJECT, PROCESS, and PEOPLE)
Process - these are the part of a software life
cycle model or software methodology.

Project - the tasks are developed based on the


adopted process model or methodology.

People - are assigned to specific tasks of the


project and are adequately managed to
successfully complete the assigned on time and
within budget.
DESIRABLE SOFTWARE
CAPABILITIES:
• Software capabilities determine the overall quality of the software
product.

THE FEATURES THAT ARE MORE RELEVANT TO THE USERS ARE


THE FOLLOWING:

1. Availability - is the degree to which the software system is


available when its services are required.

2. Correctness - is the degree to which the software meets its


requirements specification.

3. Efficiency - is the degree to which the software system prevents


performs its functions using the least amount of computational and
memory resources.
4. Integrity - is the degree to which the software
system prevents unauthorized access to
information or program.

5. Reliability - is the ablitity of a software system to


perform its function under stated condition and for
a specified period of time.

6. Scalability - is the ability of the software system to


handle a growing numbre of user request up to a
certain specified limit.

7. Usability - is the degree of ease with which the


software system can be used.
DEVELOPER-CENTERED SOFTWARE CAPABIITIES

8. Flexibility - is the measure of how easily the software system can be


extended or expanded.

9. Interoperability - is the ability of the software system to exchange information


with other external systems.

10.Maintainability- is the measure of how easily the software system can be


modified to fix error, to improve its function or to adapt it to different
environments.

11.Portability - is the ease with which the software system can be moved to a
different software or hardware environment or platform.

12. Reusability - is the measure of how easily a software component can be


reused in the same software system or utilized to build new systems.

13.Testability - is the measure of how easily the test cases can be selected and
executed to test the software.

You might also like