Professional Documents
Culture Documents
Sp21 Bcs 027 (SEC)
Sp21 Bcs 027 (SEC)
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.
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.
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.
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.
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.
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.
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
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
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.
• Speed
• Maintenance
• Quality
Scope:
Functional Requirements:
• 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
• One-to-One Chat
• Status
Faisal Tahseen
SP21-BCS-027
The user put pictures, videos on status and show other persons and friends.
Non-Functional Requirements:
• Scalability
• Privacy Messages
• Robustness
In case user’s device crashes, a backup of their chat history must be stored on
remote database servers to enable recoverability.
• Performance
• Speed performance
The speed performance of the app is very fast and increase time to time and every
update.
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
Make
Payment
Faisal Tahseen
SP21-BCS-027
Use-Case Diagram for Amazon:
Faisal Tahseen
SP21-BCS-027
2-Sequence Diagram
User
Insert Card
Verify Card
IF() Card Ok
Request Pin
Enter Pin
Request Pin
IF() Ok Pin
Enter Amount
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
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