You are on page 1of 26

Software engineering Concepts

Software Engineering
Definition:
Software engineering is the application of principles used in the field of engineering, which
usually deals with physical systems, to the design, development, testing, deployment and
management of software systems.

Software
Software is a set of instructions, data or programs used to operate computers and execute
specific tasks.

Types of Softwares
Application Softwares:
Application software is a type of computer program that performs a specific personal,
educational, and
Business function.
Examples:
Office Suits
Graphics Software’s
Database and database management program
Web browsers
System Softwares:
Software program are designed to to run a computer application programs and hardwares
Examples
Firmware
Computer program
System utilities
Driver softwares
Faisal Tahseen
SP21-BCS-027
Device driver control the devices and peripherds connected to a computer, enabling them
perform specific tasks.
Examples
USB Drivers
Game Controller Drivers
Headphone Drivers
Embedded Softwares;
Embedded Softwares is specialized programming in chip or on firmwares in an embedded
deices to control its function.
Examples:
Motion detection system in security cameras.
Traffic control system in traffic lights.

Software Development Life Cycle (SDLC)


SDLC, or Software Development Life Cycle, is a set of steps used to create software
applications. These steps divide the development process into tasks that can then be
assigned, completed, and measured.

Faisal Tahseen
SP21-BCS-027
1-Water Fall Model
The waterfall model is a classical model used in system development life cycle to create a
system with a linear and sequential approach. It is termed as waterfall because the model
develops systematically from one phase to another in a downward fashion.

Waterfall Model - Advantages


• Simple and easy to understand and use
• Phases are processed and completed one at a time.
• Clearly defined stages.
• Well understood milestones.
• Easy to arrange tasks.
• Process and results are well documented.
Waterfall Model - Disadvantages
• No working software is produced until late during the life cycle.
• High amounts of risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects

Faisal Tahseen
SP21-BCS-027
1-Waterfall model:

2-Prototype Model:
The prototype model is the methodology of a working prototype or doing the work that
comes first to the developer and creates the sample of it.

Advantage of Prototype Model


1. Reduce the risk of incorrect user requirement
2. Good where requirement are changing/uncommitted
3. Regular visible process aids management
4. Support early product marketing
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system is made side by side.

Faisal Tahseen
SP21-BCS-027
Disadvantage of Prototype Model
1. An unstable/badly implemented prototype often becomes the final product.
2. Require extensive customer collaboration
3. Difficult to know how long the project will last.
4. Prototyping tools are expensive.
5. Special tools & techniques are required to build a prototype.
6. It is a time-consuming process.

Faisal Tahseen
SP21-BCS-027
3-V-Model
The V-model is an SDLC model where execution of processes happens in a sequential
manner in a V-shape. It is also known as Verification and Validation model.

V- Model ─ Application
• Requirements are well defined, clearly documented and fixed.
• Product definition is stable.
• Technology is not dynamic and is well understood by the project team.
• There are no ambiguous or undefined requirements.
• The project is short.
Advantages
• This is a highly-disciplined model and Phases are completed one at a time.
• Works well for smaller projects where requirements are very well understood.
• Simple and easy to understand and use.
• Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
Disadvantages
• High risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to high risk of
changing.
• Once an application is in the testing stage, it is difficult to go back and change a
functionality.
• No working software is produced until late during the life cycle.

Faisal Tahseen
SP21-BCS-027
4-Incremental Model or Iterative Model:
Incremental Model is a process of software development where requirements divided into
multiple standalone modules of the software development cycle. In this model, each module
goes through the requirements, design, implementation and testing phases.

Advantage of Incremental Model


o Errors are easy to be recognized.
o Easier to test and debug
o More flexible.
o Simple to manage risk because it handled during its iteration.
o The Client gets important functionality early.

Disadvantage of Incremental Model


o Need for good planning
o Total Cost is high.

Faisal Tahseen
SP21-BCS-027
o Well defined module interfaces are needed.

5-Agile Model:
In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features
for a release.

Advantages
Is a very realistic approach to software development?
• Promotes teamwork and cross training.
• Functionality can be developed rapidly and demonstrated.
• Resource requirements are minimum.
• Suitable for fixed or changing requirements
• Delivers early partial working solutions.

Faisal Tahseen
SP21-BCS-027
6-Spiral Model:
This Spiral model is a combination of iterative development process model and sequential
linear development model i.e. the waterfall model with a very high emphasis on risk
analysis.

Advantages
Changing requirements can be accommodated.
• Allows extensive use of prototypes.
• Requirements can be captured more accurately.
• Users see the system early.
• Development can be divided into smaller parts and the risky parts can be developed
earlier which helps in better risk management.
Disadvantages
Faisal Tahseen
SP21-BCS-027
• End of the project may not be known early.
• Not suitable for small or low risk projects and could be expensive for small projects.
• Process is complex
• Spiral may go on indefinitely.
• Large number of intermediate stages requires excessive documentation.

Faisal Tahseen
SP21-BCS-027
3-Sphere Model

Bussinees

Organization Technology

1-Business
• Founds
Minster, Self-Payment and Source of Payment i.e. Loans
• Future Planning
What effects of development

2-Organization
• Users
What’s types of people use this software
i.e. (Faculty and Students in University System)
• Further
What type of users specific to field (Students of Eng., Economics, Urdu and
Computer Science?)

Faisal Tahseen
SP21-BCS-027
3-Technology
• Hardware
What type of instruments we use (processors, memory and Hardware
information)
• Specifications
Maximum and Minimum specification of that software Mention
• Operating System
What type of operating system use for that software (Mac, Windows and
Android?)

Requirement Gathering
4 Steps for Requirement Engineering Process:
1- Feasibility Study
2- Requirement Elicitation
3- Software Requirement Specification(SRS)
4- Software Requirement Validation

1-Feasibility Study
Feasibility Study in Software Engineering is a study to evaluate feasibility of proposed
project or system. Feasibility study is one of stage among important four stages of Software
Project Management Process.

Steps in a Feasibility Study


Faisal Tahseen
SP21-BCS-027
1. Conduct preliminary analyses.
2. Prepare a projected income statement.
3. Conduct a market survey.
4. Plan the organizational structure of the new project.
5. Prepare an opening day balance of projected expenses and revenue
6. Decide whether to go on with the plan/project.

Contents of a Feasibility Report


1. Description of the Product/Service
2. Technology Considerations
3. Product/ Service Marketplace
4. Identification of the Specific Market
5. Marketing Strategy
6. Organizational Structure
7. Schedule
8. Financial Projections

Ways of Getting Requirements:


• Examining documentation
• Interviewing
• Observing the organization in operation
• Research
• Questionnaires

Examining documentation
By examining documents, forms, reports, and files associated with the current system, you
can quickly gain some thoughtful concepts out of the system.
Interviewing

Faisal Tahseen
SP21-BCS-027
Is the most frequently used, and usually the most useful, fact-finding procedure used. We
can interview to collect information from person face-to-face.

Observing the organization in operation


Observing the enterprise in action: Observation is one of the most successful fact-finding
techniques carried out for understanding a system. Using this technique, it is achievable to
either participate in or observe a person perform activities to learn about the
system.
Research:
A useful fact-finding technique is to research the application or the problem that you are
dealing with and want to put within a system.
Questionnaires:
Another fabulous fact-finding method is to conduct surveys through questionnaires.
Questionnaires are special-purpose documents that allow facts to be gathered from a large
number of people while upholding some control over their responses.

2-Reqiurement Elicitation
In requirements engineering, requirements elicitation is the practice of researching and
discovering the requirements of a system from users, customers, and other stakeholders.
The practice is also sometimes referred to as "requirement gathering".
Requirements elicitation Methods:
• Interviews
• Brainstorming Sessions
• Facilitated Application Specification Technique (FAST)
• Quality Function Deployment (QFD)
Faisal Tahseen
SP21-BCS-027
• Use Case Approach

3-Software Requirement Specification (SRS)


Three Main Steps in SRS
1. Scope
2. Functional Requirements
3. Non- Functional Requirements
1-Scope
The scope guides developers through the project. It creates an understanding of what the
finished project should be by defining how to get there. Defines Features for the End User.
Customer requirements include certain features for the end user that have to be defined in
the SRS.

2-Functional requirements define what a product must do, what its features and functions
are.
Functional Requirements Includes:
• Key Features
• Focus on User Requirements
• Describe the Product Does

3-Non- Functional requirements:

Not related to the system functionality, rather define how the system should perform. Some
examples are:

The website pages should load in 3 seconds with the total number of simultaneous users <5
thousand.

Faisal Tahseen
SP21-BCS-027
The system should be able to handle 20 million users without performance deterioration.

Non Functional Requirements Includes:

• Speed

• Maintenance

• Quality

Software Requirements For Specification For Whattsapp:

Scope:

WhatsApp is an online instant messaging application that integrates user’s contacts


from their phonebook with the application and enables exchange of messages and
documentsfree of cost over the internet. It also allows the user to do voice/video call
at the normal internet speed rate and let the user to change his/her status
whenever he/she wants to. This document describes the software requirements of
WhatsApp, an online instant mobile messaging app that allows you to exchange
messages through the same internet data plan that you use for email and web
browsing. It can be used on any kind of device, such as iPhone, Blackberry, Android,
Windows Phone and Nokia.

Functional Requirements:

The functional requirements of the WhatsApp app are following:

• User Registration

User must be able to register for the application through a valid phone number. On
installing the application, user must be prompted to register their phone number.

Faisal Tahseen
SP21-BCS-027
• Adding New Contacts

The application should detect all contacts from the user’s phone book. If any of the
contacts have user accounts with WhatsApp, those contacts must automatically be
added to the user’s contact list on WhatsApp.

• Send Message

User should be able to send instant message to any contact on his/her WhatsApp
contact list. User should be notified when message is successfully delivered to the
recipient by displaying a tick sign next to the message sent.

• Send Attachments

User should be able to send audio, video and images as attachments. • Broadcast
Message User should be able to create groups of contacts. User should be able to
broadcast messages to these groups.

•Message Status

User must be able to get information on whether the message sent has been read by
the intended recipient. If recipient reads the message, 2 ticks must appear next to
the message read.

• Text/Images/Videos

The messages could contain text or images or videos or documents.

• One-to-One Chat

Where a person can send a message to another person.

• Status

Faisal Tahseen
SP21-BCS-027
The user put pictures, videos on status and show other persons and friends.

Non-Functional Requirements:

The non-functional requirements of the WhatsApp app are following:

• Scalability

WhatsApp should be able to provide instant messaging services to 1 billion users at


any given time.

• Privacy Messages

shared between users should be encrypted to maintain privacy.

• Robustness

In case user’s device crashes, a backup of their chat history must be stored on
remote database servers to enable recoverability.

• Performance

Application must be lightweight and must send messages instantly.

• Speed performance

The speed performance of the app is very fast and increase time to time and every
update.

• High Availability Obviously,

it should also have high availability because the system should not go down no
matter what happens

Faisal Tahseen
SP21-BCS-027
Modeling

1-Context Model:
A context model defines how context data are structured and maintained

Interactive Model:
An interaction model is a design model that binds an application together in a way
that supports the conceptual models of its target users.

1. Use-Care Diagram
Faisal Tahseen
SP21-BCS-027
Use case diagram is usually used to show the relationship of users, owner,
server and other types of application. So that it is an interactive because it is
directly contact with user to show the features of that application.

Banking App

Verify
Login Password

Check
Check
Balance
Balance
Secondary Customer

Primary Customer Fund


Transfer
Current Saving
Account Account

Make
Payment

Faisal Tahseen
SP21-BCS-027
Use-Case Diagram for Amazon:

Faisal Tahseen
SP21-BCS-027
2-Sequence Diagram

Banking System Sequence


Diagram

ATM Bank Server Bank Account

User
Insert Card
Verify Card

IF() Card Ok
Request Pin

else() Invalid Card


Capture Card

Enter Pin
Request Pin
IF() Ok Pin
Enter Amount

else() Invalid Pin


Eject Card

Enter Amount Transaction


Starts Check Balance
Details

Available
IF() Balance

Withdraw
respond
Widthdraw
Successfully
Cash Withdraw
Collect Card

else()

Collect Cash

Low Balance
Eject Card
Collect Card 2-Sequence Diagram Faisal Tahseen
SP21-BCS-027
Data Flow Diagram
Zero-Level DFD

Products

First Level DFD

Faisal Tahseen
SP21-BCS-027
SECOND LEVEL DFD

Faisal Tahseen
SP21-BCS-027
SECOND LEVEL DFD

Faisal Tahseen
SP21-BCS-027
4-Structural Model

UML Diagram:
UML diagram is a diagram based on the UML (Unified Modeling Language) with the purpose of
visually representing a system along with its main actors, roles, actions, artifacts or
classes, in order to better understand, alter, maintain, or document information about the
system.

Faisal Tahseen
SP21-BCS-027

You might also like