You are on page 1of 46

SOFTWARE ENGINEERING

FALL Semester 2020: LECTURE 1


Introduction to terms in software engineering
Course code : SESE 1113
Section U
Year 1 , Semester 2
CONTACT INFO

 Office : F301 Cabin 2 . Building A


 Email: fhraza@ucp.edu.pk
 Visiting hours:
  Mon Tue Wed Thu Fri
Counselling 11:00-14:00 11:00-14:00  
hours
SE Introduction: Program, Software, Engineering, Software Engineering (SE), Computer
Science (CS), Relationship between SE and CS. SE Terminology: Error, Fault, Failure,
Relationship between them. Why is SE needed? Benefits of studying SE, Software
Process.
Roles of software development team members. Process of software development.
Difference between process and project. Examples of processes and projects System
Development lifecycle versus System Development methodology. System development
life cycle phases.
ONLINE CLASS ETHICS
1. You will arrive to class on time.
2. You will be polite at all times.
3. You will not allow to disturb others in a class .
4. Be honest and trustworthy .
5. Respect your teacher and classmates.
6. Cooperate with others.
7. Always do your best .
8. DONOT email me for attendance.
9. Mobile phones do not have a place in the an online class room as
well.
GUIDELINES

 The course outline is tentative


 Evaluation will be based on all class discussions, handouts,
recommended readings, slides etc.
 Rote learning
 Active participation
 Announcements etc. will be made via Portal
PLAGIARISM

 Cheating is not only unethical; it is also against the University rules and will
not be tolerated. Any form of cheating in programming assignments,
homework problems, quizzes, and exams will result in strict action.
Plagiarism detection tools will be used to determine who has cheated in
programming assignments.
 All the parties involved will be awarded Zero in first instance. Repeat of
the same offense will result in (F) grade.
 USE PROPER REFERENCING IF ANY MATERIAL TAKEN FROM
ANYWHERE
 NO REFERENCE MEANS DECEPTION
COURSE WORK

 Quiz (8-10) (Announced + Unannounced) – 12%


 Assignment x 4 (VIVA/QUIZ) – 10 %
 Project Deliverable x 4 (VIVA) – 12%
 Mid Term Exam – 25%
 Final Exam – 35%
 Class Participation* – 06%
ATTENDANCE+PUNCTUALITY+WRITTEN EXCERCISES+QA
DON’T ASSUME ,THERE WILL BE NO BEST OFF
COMPUTER PROGRAM

What is a computer program?

A representation of an algorithm?
SOFTWARE

What is a Software?

A set of programs working for a single


goal (solving a problem)?
WHAT IS SOFTWARE?

“ Software is a set of instructions to acquire inputs and to


manipulate them to produce the desired output in terms of
functions and performance as determined by the user of the
software. It also include a set of documents, such as the software
manual , meant for users to understand the software system.”
EXAMPLES OF PROGRAMS

 Calculate the average of three numbers


 Find the minimum of three numbers
 Count the number of red balls in a bag
EXAMPLES OF SOFTWARE

 Operating System?
 Microsoft Office?
 Photoshop?
DIFFERENCE BETWEEN APPLICATION AND
SOFTWARE
 System Software-
The programs and other operating information used by a computer. Software can be made
up of more than one program. All-encompassing term that is often used in contrast to
hardware (the tangible parts of a computer)
 Application Sofware-
A program or group of programs that is designed for the end user. Application software (an
application) is a set of computer programs designed to permit the user to perform a group
of coordinated functions, tasks, or activities. Application software cannot run on itself but is
dependent on system software to execute.
APPLICATION TYPES

Stand-alone applications
 These are application systems that run on a local computer, such as a PC. They
include all necessary functionality and do not need to be connected to a network.
Interactive transaction-based applications
 Applications that execute on a remote computer and are accessed by users from
their own PCs or terminals. These include web applications such as e-commerce
applications.
Embedded control systems
 These are software control systems that control and manage hardware devices.
Numerically, there are probably more embedded systems than any other type of
system.
CONTD…

Batch processing systems


 These are business systems that are designed to process data in large batches.
They process large numbers of individual inputs to create corresponding outputs.
Entertainment systems
 These are systems that are primarily for personal use and which are intended to
entertain the user.
Systems for modeling and simulation
 These are systems that are developed by scientists and engineers to model
physical processes or situations, which include many, separate, interacting
objects.
DIFFERENCE BETWEEN PRODUCT AND
PROJECT
Product Project
 Product is like ‘ready to use solution’ which is
built by the company and sold to different  Project is ‘taking requirements from
customers (or) setup as free source. If customer to build a solution’.
customer requires any changes like color,
title, appearance changes and some extra  The requirements are gathered from a
functionality to be added, then particular client.
customization’s are done to the product.
 General e.g.: Purchasing a flat before
 Develop the application for Global clients. construction. You can construct it as
 General e.g.: Purchasing a flat after per your guidelines and requirement.
construction is completed – In this case You  e-commerce projects like flipkart.com
can only do minor changes like paints and  and bigbasket.com. These are specific
interiors. to clients.
 Google products like Gmail, Drive (Free
sources) and Oracle products like Databases
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 graphics programs, project management tools;
CAD software; software for specific markets such as appointments systems for
dentists.
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.
SOFTWARE PROJECT FAILURE (WHY SE IS NEEDED)

Increasing system complexity


 As new software engineering techniques help us to build larger, more complex
systems, the demands change. Systems have to be built and delivered more
quickly; larger, even more complex systems are required; systems have to have
new capabilities that were previously thought to be impossible.
Failure to use software engineering methods
 It is fairly easy to write computer programs without using software engineering
methods and techniques. Many companies have drifted into software
development as their products and services have evolved. They do not use
software engineering methods in their everyday work. Consequently, their
software is often more expensive and less reliable than it should be.
WHY IS SE NEEDED?

 Computers everywhere
 Toaster, Microwave, Temperature control of A/C, Router, Surgical Equipment…
 Computers need to be managed
 Software runs on all computers
 Make lives comfortable, efficient, effective…

 SE practices ensure development of good software to improve our living standard


SOFTWARE ENGINEERING

 “A systematic approach to the analysis, design, implementation and


maintenance of software.”
(The Free On-Line Dictionary of Computing)
 “ The systematic application of tools and techniques in the development of
computer-based applications.”
(Sue Conger in The New Software Engineering)
 “ Software Engineering is about designing and developing high-quality
software.”
(Shari Lawrence Pfleeger in Software Engineering -- The Production of
Quality Software)
SOFTWARE ENGINEERING

The study of approaches as in


Application of a systematic, disciplined, quantifiable approach to the development,
operation and maintenance of software; that is, the application of engineering to
software.
 (IEEE 93)
BY “SYSTEMATIC” WE MEAN
Following a well-defined sequence of activities,
- in which desired outputs (deliverables) are well-defined
- by using well-defined inputs
(i.e. documented syntax, semantics, context and other relevant properties of the
input)

- in a well-defined process
(e.g. using organizational standards for interprocess communication, data formats,
error handling etc.)

- whose outputs are in turn used similarly as inputs in subsequent


process(es),
- until the final output is achieved,
- and where the correctness of the output is verifiable.
Note: The “inputs” and “outputs” most often refer to requirements,
software specifications, the software itself, documentation, test
inputs/outputs and similar software artifacts.
BY “DISCIPLINED” WE MEAN:

 Each process is followed using organizational principles (e.g. who manages


whom, who is responsible for what?),
 Intermediate results are carefully documented, as well as final results,
 Actions are traceable as to their causes, individuals involved, time of
occurrence and circumstances.

Software Engineering - Introduction 27


BY “QUANTIFIABLE” WE MEAN:

 The size and extent of the required effort

(size of output code, data, documentation, manpower, duration, budget


for development, expected error rate and user support)

are predictable within justifiable and acceptable bounds

Software Engineering - Introduction 28


DIFFERENCE…

 Computer science: focusing on computer hardware, compilers, operating


systems, and programming languages
 Software engineering: a discipline that uses computer and software
technologies as problem-solving tools
RELATIONSHIP…

 Relationship between computer science and software engineering


WHAT IS SOFTWARE ENGINEERING?
 Pressman’s view:
“Software engineering is a layered technology (Figure 2.1)”

Tools

Methods

Process

A quality Focus
CONTD…

 Method: refers to a formal process for accomplishing a goal that is


typically independent of the tools used
 Tool: an instrument or automated system for accomplishing something in
a better way
 Procedure: a combination of tools and techniques to produce a product
 Paradigm: philosophy or approach for building a product (e.g., OO vs
structured approaches)
SOFTWARE ENGINEERING

 Solving Problems
 Computers
 Computing
 How is a problem solved normally?
Solving Problems
 Analysis
SOLVING PROBLEMS (CONTINUED)

 Synthesis
WHY DO WE NEED TO STUDY SE?

 What could be the benefits?


WHAT IS A GOOD SOFTWARE PRODUCT?

 Good software engineering must always include a strategy for producing quality
software
 Product Quality?
 Multiple facets… (Availability, reliability, scalability…. )
WHAT IS A GOOD SOFTWARE PRODUCT?

 Users judge external characteristics (e.g., correct functionality, number of failures,


type of failures)
 Designers and maintainers judge internal characteristics (e.g., ease of
modification)
 Thus different stakeholders may have different criteria
 Need quality models to relate the user’s external view to developer’s internal view
STAKE HOLDERS

 A person, group or company that is directly or indirectly involved in the


project and who may affect or get affected by the outcome of the project
 Two Types:
 External
 Internal
INTERNAL STAKEHOLDER:
An internal stakeholder is a person, group or a company that is directly involved in the project.
For example,
 Project Manager:
Responsible for managing the whole project. Project Manager is generally never involved in producing
the end product but he/she controls, monitors and manages the activities involved in the production.
 Project Team:
Performs the actual work of the project under the Project Manager including development, testing, etc.
 Company:
Organisation who has taken up the project and whose employees are directly involved in the
development of the project.
 Funders:
Provides funds and resources for the successful completion of the project.
EXTERNAL STAKEHOLDER:
An external stakeholder is the one who is linked indirectly to the project but has significant
contribution in the successful completion of the project.
For example,
 Customer /User:
Specifies the requirements of the project and helps in the elicitation process of the
requirement gathering phase. Customer is the one for whom the project is being developed.
 Supplier:
Supplies essential services and equipment for the project.
 Government:
Makes policies which helps in better working of the organisation.
WHO DOES SOFTWARE ENGINEERING?

 Participants (stakeholders) in a software development project


TURNKEY SYSTEMS

 A computer system that has been customized for a particular application. The


term derives from the idea that the end user can just turn a key and the system is
ready to go. Turnkey systems include all the hardware and software necessary for
the particular application.
 For example, many companies will set up a turnkey system for its employees,
which has all of the necessary hardware and software for the employee to begin
working. Because many consumers need to install software or customize their
computer, most computers are not considered a turnkey system.
COMMERCIAL OFF THE SHELF (COTS)

 A COTS product is usually a computer hardware or software product tailored for


specific uses and made available to the general public.
 Such products are designed to be readily available and user friendly.
 Ready-made and available for sale to the general public.
 A typical example of a COTS product is Microsoft Office or antivirus software

You might also like