BCA Software Engineering 1-5 Unit
BCA Software Engineering 1-5 Unit
BCA Software Engineering 1-5 Unit
Software Crisis:-
• A set of problems encountered in the
development of computer software during
1960s.
• Poor quality s/w developed.
• Schedules & cost estimates were often grossly
inaccurate.
Software Crisis
A number of large size projects failed called software runaways because of
following reasons:
• Definition of Engineering
-Application of science, tools and methods to find cost
effective solution to problems
Software is a product
• Transforms information - produces, manages, acquires,
modifies, displays, or transmits information
• Delivers computing potential of hardware and networks
Software is a vehicle for delivering a product
• Controls other programs (operating system)
• Effects communications (networking software)
• Helps build other software (software tools & environments)
Software Applications
• System Software:
• System software: System software is a collection of programs
and utilities for providing service to other programs. Other
system applications (e.g., operating system components,
drivers, telecommunications processors) process largely
indeterminate data.
• In either case, the system software area is characterized by
heavy interaction with computer hardware; heavy usage by
multiple users; concurrent operation that requires scheduling,
resource sharing, and sophisticated process management;
complex data structures; and multiple external interfaces.
Ex. Compilers, operating system, drivers etc.
Engineering /Scientific software:
•The various activities that are undertaken when developing software are
commonly modeled as a software development life cycle (SDLC).
•The SDLC begins with the identification of requirements for software and
ends with the retirement of the software.
•Developers should be able to deliver good quality software to the end users
using a well defined, well managed, consistent and cost-effective process.
•A software life cycle model is a type of process that represents the order also in
which the activities will take place. It describes the sequence of activities
graphically to build the final product. As different phases may follow one
another, repeat themselves or even run concurrently, the sequence may or may
not be linearly sequential.
Software Development Life Cycle
Software Development Life Cycle
•Each of these phases will have different activities to meet its objectives. The process starts by
collecting the user requirements and representing them in a suitable form which must be
understandable by developers, analyst, users, testers and all other stake holders of the project.
•This stage is called the requirements analysis stage and the output of this stage is a document
called Requirement Specification Document (RSD) or Software Requirement
Specification(SRS).
•In program implementation stage actual coding is done and thereafter product is tested to
ensure an error free product.
Code generation
The design must be translated into a machine-readable
form. The code generation step performs this task. If
design is performed in a detailed manner, code generation
can be accomplished mechanistically.
Testing
Once code has been generated, program testing begins. The testing
process focuses on the logical internals of the software, ensuring that all
statements have been tested, and on the functional externals; that is,
conducting tests to uncover errors and ensure that defined input will
produce actual results that agree with required results.
Support
Software will undoubtedly undergo change after it is delivered to the
customer (a possible exception is embedded software). Change will occur
because errors have been encountered, because the software must be
adapted to accommodate changes in its external environment (e.g., a
change required because of a new operating system or peripheral device),
or because the customer requires functional or performance
enhancements. Software support/maintenance reapplies each of the
preceding phases to an existing program rather than a new one.
The model implies that you should attempt to
complete a given stage before moving on to the next
stage
Does not account for the fact that requirements
constantly change.
It also means that customers can not use anything
until the entire system is complete.
Surprises at the end are very expensive
Therefore, this model is only appropriate when the
requirements are well-understood and changes will
be fairly limited during the design process.
Limitations of the
waterfall model
• Problems:
1. Real projects are rarely follow the sequential model.
2. Difficult for the customer to state all the requirement
explicitly.
3. Assumes patience from customer - working version of
program will not available until programs not getting change
fully.
When to use the waterfall model
This model is used only when the requirements are very well known,
clear and fixed.
Product definition is stable.
Technology is understood.
There are no ambiguous requirements
Ample resources with required expertise are available freely and The
project is short.
Problem Areas:
Customer cries foul and demand that “a few fixes” be applied to
make the prototype a working product, due to that software
quality suffers as a result.
Developer often makes implementation in order to get a
prototype working quickly without considering other factors in
mind like OS, Programming language, etc.
C- Communication
P - Planning
M – Modeling
C - Construction
D - Deployment
Delivers software in small but usable pieces, each piece builds on pieces
already delivered
The Incremental Model
• Rather than deliver the system as a single delivery, the development and
delivery is broken down into increments with each increment delivering
part of the required functionality.
• First Increment is often core product
– Includes basic requirement
– Many supplementary features (known & unknown) remain undelivered
• A plan of next increment is prepared
– Modifications of the first increment
– Additional features of the first increment
• It is particularly useful when enough staffing is not available for the whole
project
• Increment can be planned to manage technical risks.
• Incremental model focus more on delivery of operation product with each
increment.
The Incremental Model
• Data modeling. The information flow defined as part of the business modeling phase
is refined into a set of data objects that are needed to support the business. The characteristics
(called attributes) of each object are identified and the relationships between
these objects defined.
Data modeling – Information refine into set of data objects that are needed to support business.
Process modeling. The data objects defined in the data modeling
phase are transformed to achieve the information flow necessary to
implement a business function. Processing descriptions are created for
adding, modifying, deleting, or retrieving a data object.
These are represented or stated in the form of input to be given to the system,
the operation performed and the output expected.
They are basically the requirements stated by the user which one can see
directly in the final product, unlike the non-functional requirements.
71
Requirements Engineering Processes
• Requirements elicitation;
– What services do the end-users require of the system?
• Requirements analysis;
– How do we classify, prioritise and negotiate requirements?
• Requirements validation;
– Does the proposed system do what the users require?
• Requirements management.
– How do we manage the (sometimes inevitable) changes to the requirements
document?
72
Example
Patient records system
(Elicitation) 1. Talk to patients, doctors, nurses, receptionists, managers to
find out
Current system practise, legal restrictions , problems with current system, needs for
improvement, security issues, costs
(Elicitation) 2. Develop draft documentation and review what is most
important, what will it cost, what is the timescale, is new hardware required
(Validation) 3. Send requirements to end users. Present them with Q&A.
Go back to step 1, discuss requirements again
(Management) 4. Have a yearly review of requirements between all
stakeholders. Have a system of reviewing the cost and feasability of change
to system
73
Elicitation and analysis
• Requirement elicitation is the process of gathering the
requirement. In this process the technical professional in the
organization, like softwae developers and the system
engineers, work together with the users of the system and the
customers. This process is useful in finding the problems that
has to be solved. The problems include
• 1. What the proposed system should provide?
• 2. What are the expected services from the system?
• 3. What are the required characteristics of the system?
• 4. What are the required hardware and software constrains of
the system?
Elicitation and analysis
• Interviews
• Brainstorming session (Group Discussion)
• FAST
• Use Case
Interviews
Interviews are the commonly used and most popular methods for
requirement elicitation. In this method the analyst and the
engineers of the requirements engineering process discuss with
the different types of stakeholders to understand the requirements
of the system and the objective they have to fulfill in the system.
• It is a group technique
• It is intended to generate lots of new ideas hence providing a platform to share
views
• A highly trained facilitator is required to handle group bias and group conflicts.
• Every idea is documented so that everyone can see it.
• Finally, a document is prepared which consists of the list of requirements and
their priority if possible.
This technique is used to generate new ideas and find a solution for a specific
issue. The members included for brainstorming can be domain experts, subject
matter experts. Multiple ideas and information give you a repository of knowledge
and you can choose from different ideas.
This session is generally conducted around the table discussion. All participants
should be given an equal amount of time to express their ideas
Each participant prepares his/her list, different lists are then combined, redundant
entries are eliminated, team is divided into smaller sub-teams to develop mini-
specifications and finally a draft of specifications is written down using all the
inputs from the meeting.
Use Case apporach
Association
Extend
Generalization
Uses
Include
Extend Relationship
The extended relationship is used to indicate that use case
completely consists of the behavior of another use case at
one or specific point
• The insertion of additional behavior into a base use case
that does not know about it
The base use case implicitly incorporates the behavior of
another use case at certain points called extension points
It is shown as a dotted line with an arrow point and
labeled <<extend>>
<< extend>>
Register
Login
New User
Generalization
Generalization is a relationship between a
general use case and a more specific use case
that inherits and extends features to it
use cases that are specialized versions of other
use cases
It is shown as a solid line with a hollow arrow
point
Include Relationship
• The insertion of additional behavior into a base use case
that explicitly describes the insertion
The base use case explicitly incorporates the behavior of
another use case at a location specified in the base.
They are shown as a dotted line with an open arrow and
the key word <<include>>
Reserve a ticket use case
Example
place
place <<extend>>
conference
phone call
call
cellular
network receive
receive <<extend>>
additional
phone call
call
use
user scheduler
Cellular Telephone
98
ATM machine
• Actors
– Customers
– Bank staff
– ATM service engineer
• Use cases
– Withdraw cash
– Check balance
– Add cash to machine
– Check security video recording
99
Example - ATM Use
Case Diagram
100
Student Management
system
An organization wants to develop the system based on following
Requirements:
Student can view the course, can enroll the course, can pay the fees,
can change the course, faculty can teach the course.
Draw use case diagram for food ordering system. Where a customer can order
food items after viewing the menu. For ordering the food customer needs to
register himself/herself. Further customer can track the order and can cancel
the order. On the other side the Manager can allocate the order and can plan
for delivery. Customer can pay in cash or through online
Design a usecase for Railway Ticket reservation system where a user
can search for available tickets, can book a ticket also he will able to
cancel the tickets and to check the status of the ticket. User is also able
to pay online through his bank after validating a credit card.
The ticket admin can issue the ticket after successful verification of the
payment and can also update the available tickets.
Question
Consider a book store in a shopping mall. The customer selects the books from
racks to purchase. The customer brings selected books to cashier. The cashier
scans each item with checkout system to prepare an order. The cashier
requests to customer for payment. The customer gives credit card to cashier.
The verifier and checkout system scans the card. The verifier accepts the card
and payment is accepted. Customer signs the credit card slip. The purchased
books are handed over to customer.
Requirement Analysis
IEEE defines requirements analysis as
Detect and resolve conflicts that arise due to unclear and unstated
requirements.
Determine operational characteristics of software and how it interacts with
its environment.
Understand the problem for which software is to be developed.
Develop analysis model to analyze the requirements in the software.
Requirements Analysis and
Negotiation
Requirement analysis and negotiation follows requirement gathering
(eliciting). Analysis categorizes requirements and examines them for
consistency, coverage, necessity, ambiguity, confliction, achievability and
testability.
Design constraints:
Software Requirement
Specification:
An SRS Should be