0% found this document useful (0 votes)
27 views22 pages

CH 01

Uploaded by

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

CH 01

Uploaded by

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

SOFTWARE ENGINEERING

Prepared By

Dr. ISLAM ZADA


(Assistant Professor),

Department of Software Engineering,


International Islamic University Islamabad, Pakistan
Recommended Book:
A Practitioner’s Approach
By Roger S. Pressman
What is Software
• Instructions (computer programs) that when executed provide desired features,

function, and performance

• Data structures that enable the programs to adequately manipulate information

• Documents that describe the operation and use of the programs

1. System Software

2. Application Software

3. Translator (Compiler, Interpreter, assembler)


The Evolving Role of Software
• Software as a product: Using the computing potential of computing hardware.

• It acts is a information processor, delivers electronic devices in functional form as a

product. Like computer, mobile, etc.

• Software is a Vehicle: Operate different electronic devices.

• Controlee the overall functions

• Control the communication of software components and networking devices


Software products
• Generic products
• Stand-alone systems that are marketed and sold to any customer who
wishes to buy them.
• Examples – PC software such as editing, graphics programs, project
management tools; CAD software; software for specific markets such
as appointments systems for dentists.
• Bespoken or customized products
• Software that is commissioned by a specific customer to meet their
own needs.
• Examples – embedded control systems, air traffic control software,
traffic monitoring systems.
Characteristics of software

• Its characteristics that make it different from other things human being build.

Features of such logical system:

• Software is developed or engineered; it is not manufactured in the classical

sense which has quality problem.

• Software doesn't "wear out.”


Software Application Domains
• System software: such as compilers, editors, file management utilities
• 2. Application software: stand-alone programs for specific needs.

• 3. Engineering/scientific software: Characterized by “number crunching”algorithms.


such as automotive stress analysis, molecular biology, orbital dynamics etc.
• 4. Embedded software resides within a product or system. (key pad control of a
microwave oven, digital function of dashboard display in a car)
• 5. Product-line software focus on a limited marketplace to address mass consumer
market. (word processing, graphics, database management)
• 7. AI software uses non-numerical algorithm to solve complex problem. Robotics,
expert system, pattern recognition game playing
Computer Science & Software Engineering

Computer science focuses on foundations of computing including


• algorithms, programming languages, theories of

computing, artificial intelligence, , and hardware design.


• Software engineering, focuses on technical and
managerial leadership for large and complex systems
Software Engineering Definition
The seminal definition:
[Software engineering is] the establishment and use of sound
engineering principles in order to obtain economically software
that is reliable and works efficiently on real machines.
OR
The systematic approach to the development, implementation &
maintenance of the software by using the engineering principles.
Software Engineering Definition
Software engineering encompasses
• Processes
• Methods
for managing and engineering software, and tools.
What is Methodology & Method?
 Methodology is a theoretical concept
 A set of principles(rules) & Procedures that are applied on a
project in order
 Systematic & logical way to complete the project successfully
 While method represents to a well-organized way of working by
applying the set of rules and procedures
What is software process?
 The foundation of software engineering is process
 It is a set of activities, which produce a high quality software
product
 Mostly carried out by s/w engineer
 Four fundamental process activities, which are common to all
software process. (s/w Specification, s/w development, s/w
validation and s/w evaluation)
Four Process Activities
 Software specification: in this activities the functionality of
software and constraint on its operations are defined
(requirements & feasibility study)
 Software Development: Actual software is produced by
following the software specification
 Software Validation: The produced software is inspected (validated) to
ensure that the software meets the expectations of costumers
 Software Evolution: in this the produced software is evaluated
to meet the customer needs
What are software tools?
 Provide automated and semi-automated support for process &
methods to develop the software. E.g..
CASE (Computer Aided Software Engineering)
CASE= When different tools are combined together to form a complete support system
for software engineering .

 CASE combines the software and hardware components of a


system
Software Engineering: A Layered Technology
Software engineering can be divided into four layers

1. A Quality Focus
2. Process
3. Methods
4. Tools
Software Engineering

A Layered Technology
tools

methods

process model

a “quality” focus
 Any engineering approach must rest on organizational commitment to quality which fosters a
continuous process improvement culture.
 Process layer as the foundation defines a framework with activities for effective delivery of
software engineering technology. Establish the context where products (model, data, report, and
forms) are produced, milestone are established, quality is ensured and change is managed.
 Method provides technical how-to’s for building software. It encompasses many tasks including
communication, requirement analysis, design modeling, program construction, testing and
support.
 Tools provide automated or semi-automated support for the process and methods.
15
SOFTWARE MYTHS

• Software problems lead the developers to follow some traditions called the
software myths
• Like daily life ancient myths, software myths can also contains elements of truth
or misinformation.
• Most of software myths are based on misleading attitudes that have generated so
many problems
• Software myths are categorize in three categories

1. Management Myths
2. Customer Myths
3. Practitioners Myths
1. Management Myths

Myths: We have a book containing standards and procedures for

building software. We don’t need anything else.

Reality: These standards are seldom used

 They are not updated with the passage of time

 All software developers are not aware of their existence

Myths: Our developers uses the latest tools.

Reality: For quality products, modern techniques are needed rather than

latest tools.

• Majority of software developers don’t use CASE tools.


2. Customer Myths

Myths: A brief summary of the objectives is sufficient to start writing

programs. The detail of objectives can be added later.

Reality: Ambiguous objectives can fail the project.

 Later addition of details may require entire modification in design

work

Myth: Software requirements continually change, but change can be

easily accommodated because software is flexible.

Reality: change can cause confusion/disturbance that requires

additional resources and major design modification..


3. Practitioner’s myths

Myths: Once we write the program and get it to work, our job is done.

Reality: The work is done if there is no error in the software delivered

to the costumer.

Myth: The only deliverable for a successful project is the program.

Reality: A working program is only one part of a software configuration

that include project planning, requirement specification, program

designing, documentation and data also.


References
[1]. Abrahamsson P, Salo O and Ronkainen J. Agile
software development methods (Review and analysis).
[2]. Scott W Ambler. Agile model driven development.
[3]. Cohen D, Lindvall M, Costa P. Agile software
development.
[4]. http://en.wikipedia.org/wiki/Agile_Modeling.
[5]. http://en.wikipedia.org/wiki/Extreme_Programming.
[6]. http://en.wikipedia.org/wiki/Agile_Unified_process.
[7]. http://en.wikipedia.org/wiki/Scrum_28development29.
THANK YOU

You might also like