SE Module2
SE Module2
SE Module2
1. In open ended interviews there is no pre-set agenda. Context free questions may be asked
to understand the problem.
2. In structured interview, agenda of fairly open questions is prepared. Sometimes a proper
questionnaire is designed for the interview.
2. Brainstorming Sessions:
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.
Organization may conduct surveys among various stakeholders by querying about their
expectation and requirements from the upcoming system.
Questionnaires
A document with pre-defined set of objective questions and respective options is handed over
to all stakeholders to answer, which are collected and compiled.
A shortcoming of this technique is, if an option for some issue is not mentioned in the
questionnaire, the issue might be left unattended.
Task analysis
Team of engineers and developers may analyze the operation for which the new system is
required. If the client already has some software to perform certain operation, it is studied and
requirements of proposed system are collected.
Domain Analysis
Every software falls into some domain category. The expert people in the domain can be a
great help to analyze general and specific requirements.
This report lays a foundation for software engineering activities and is constructing when entire
requirements are elicited and analyzed.
SRS is a formal report, which acts as a representation of software that enables the customers
to review whether it (SRS) is according to their requirements. Also, it comprises user
requirements for a system as well as detailed specifications of the system requirements.
The SRS is a specification for a specific software product, program, or set of applications that
perform particular functions in a specific environment. It serves several goals depending on
who is writing it.
First, the SRS could be written by the client of a system. Second, the SRS could be written by
a developer of the system.
The two methods create entirely various situations and establish different purposes for the
document altogether. The first case, SRS, is used to define the needs and expectation of the
users. The second case, SRS, is written for various purposes and serves as a contract document
between customer and developer.
Characteristics of good SRS
1. Correctness: User review is used to provide the accuracy of requirements stated in the SRS.
SRS is said to be perfect if it covers all the needs that are truly expected from the system.
2. Completeness: The SRS is complete if, and only if, it includes the following elements:
(2). Definition of their responses of the software to all realizable classes of input data in all
available categories of situations.
(3). Full labels and references to all figures, tables, and diagrams in the SRS and definitions of
all terms and units of measure.
3. Consistency: The SRS is consistent if, and only if, no subset of individual requirements
described in its conflict. There are three types of possible conflict in the SRS:
(1). The specified characteristics of real-world objects may conflicts. For example,
(a) The format of an output report may be described in one requirement as tabular but in another
as textual.
(b) One condition may state that all lights shall be green while another states that all lights shall
be blue.
(2). There may be a reasonable or temporal conflict between the two specified actions. For
example,
(a) One requirement may determine that the program will add two inputs, and another may
determine that the program will multiply them.
(b) One condition may state that "A" must always follow "B," while other requires that "A and
B" co-occurs.
(3). Two or more requirements may define the same real-world object but use different terms
for that object. For example, a program's request for user input may be called a "prompt" in
one requirement's and a "cue" in another. The use of standard terminology and descriptions
promotes consistency.
4. Unambiguousness: SRS is unambiguous when every fixed requirement has only one
interpretation. This suggests that each element is uniquely interpreted. In case there is a method
used with multiple definitions, the requirements report should determine the implications in
the SRS so that it is clear and simple to understand.
5. Ranking for importance and stability: The SRS is ranked for importance and stability if
each requirement in it has an identifier to indicate either the significance or stability of that
particular requirement.
Typically, all requirements are not equally important. Some prerequisites may be essential,
especially for life-critical applications, while others may be desirable. Each element should be
identified to make these differences clear and explicit. Another way to rank requirements is to
distinguish classes of items as essential, conditional, and optional.
6. Modifiability: SRS should be made as modifiable as likely and should be capable of quickly
obtain changes to the system to some extent. Modifications should be perfectly indexed and
cross-referenced.
7. Verifiability: SRS is correct when the specified requirements can be verified with a cost-
effective system to check whether the final software meets those requirements. The
requirements are verified with the help of reviews.
8. Traceability: The SRS is traceable if the origin of each of the requirements is clear and if it
facilitates the referencing of each condition in future development or enhancement
documentation.
1. Backward Traceability: This depends upon each requirement explicitly referencing its
source in earlier documents.
2. Forward Traceability: This depends upon each element in the SRS having a unique name
or reference number.
The forward traceability of the SRS is especially crucial when the software product enters the
operation and maintenance phase. As code and design document is modified, it is necessary to
be able to ascertain the complete set of requirements that may be concerned by those
modifications.
9. Design Independence: There should be an option to select from multiple design alternatives
for the final system. More specifically, the SRS should not contain any implementation details.
10. Testability: An SRS should be written in such a method that it is simple to generate test
cases and test plans from the report.
11. Understandable by the customer: An end user may be an expert in his/her explicit domain
but might not be trained in computer science. Hence, the purpose of formal notations and
symbols should be avoided too as much extent as possible. The language should be kept simple
and clear.
12. The right level of abstraction: If the SRS is written for the requirements stage, the details
should be explained explicitly. Whereas,for a feasibility study, fewer analysis can be used.
Hence, the level of abstraction modifies according to the objective of the SRS.
1. Introduction
(i) Purpose of this document
(ii) Scope of this document
(iii) Definition, Acronyms, and abbreviations
(iv) References
(v) Overview
2. General description
Product Perspective
Product Function
User characteristics
Constraints
Assumption & Dependencies
Apportioning of requirements
3. Specific Requirements
Interfaces
Database
Performance
Software system attributes
4. Change Management Process
5. Document Approvals
6. Supporting Information
Depending upon information gathered after interaction, SRS is developed which describes
requirements of software that may include changes and modifications that is needed to be done
to increase quality of product and to satisfy customer’s demand.
1. Introduction :
(i) Purpose of this Document –
At first, main aim of why this document is necessary and what’s purpose of document
is explained and described.
(ii) Scope of this document –
In this, overall working and main objective of document and what value it will
provide to customer is described and explained. It also includes a description of
development cost and time required.
(iii) Overview –
In this, description of product is explained. It’s simply summary or overall review of
product.
2. General description :
In this, general functions of product which includes objective of user, a user
characteristic, features, benefits, about why its importance is mentioned. It also describes
features of user community.
3. Functional Requirements :
In this, possible outcome of software system which includes effects due to operation of
program is fully explained. All functional requirements which may include calculations,
data processing, etc. are placed in a ranked order.
4. Interface Requirements :
In this, software interfaces which mean how software program communicates with each
other or users either in form of any language, code, or message are fully described and
explained. Examples can be shared memory, data streams, etc.
5. Performance Requirements :
In this, how a software system performs desired functions under specific condition is
explained. It also explains required time, required memory, maximum error rate, etc.
6. Design Constraints :
In this, constraints which simply means limitation or restriction are specified and
explained for design team. Examples may include use of a particular algorithm, hardware
and software limitations, etc.
7. Non-Functional Attributes :
In this, non-functional attributes are explained that are required by software system for
better performance. An example may include Security, Portability, Reliability,
Reusability, Application compatibility, Data integrity, Scalability capacity, etc.
9. Appendices :
In this, additional information like references from where information is gathered,
definitions of some specific terms, acronyms, abbreviations, etc. are given and explained.
An activity diagram portrays the control flow from a start point to a finish point
showing the various decision paths that exist while the activity is being executed.
We can depict both sequential processing and concurrent processing of activities using
an activity diagram. They are used in business and process modelling where their
primary use is to depict the dynamic aspects of a system.
How to Draw an activity diagram –
The various components used in the diagram and the standard notations are explained
below.
1. Initial State – The starting state before an activity takes place is depicted using
the initial state.
3. Action Flow or Control flows – Action flows or Control flows are also referred
to as paths and edges. They are used to show the transition from one activity state
to another.
The statement must be true for the control to shift along a particular direction.
Guards help us know the constraints and conditions which determine the flow of a
process.
6. Fork – Fork nodes are used to support concurrent activities.
7. Join – Join nodes are used to support concurrent activities converging into one.
For join notations we have two or more incoming edges and one outgoing edge.
For example – When both activities i.e. steaming the milk and adding coffee get
completed, we converge them into one final activity.
Figure – a diagram using join notation
8. Merge or Merge Event – Scenarios arise when activities which are not being
executed concurrently have to be merged. We use the merge notation for such
scenarios. We can merge two or more activities into one if the control proceeds
onto the next activity irrespective of the path chosen.
9. Time Event –
10. Final State or End State – The state which the system reaches when a particular
process or activity ends is known as a Final State or End State. We use a filled
circle within a circle notation to represent the final state in a state machine diagram.
A system or a process can have multiple final states.
The above figure depicts an activity diagram for an emotion based music player which
can also be used to change the wallpaper.
Figure – an activity diagram
The above diagram prints the number if it is odd otherwise it subtracts one from the
number and displays it.
It simply describes who is responsible for the activities being performed in the activity
diagram and how they are responsible.
The activity diagram only represents the activities being performed, but Swimlane
describes who does what in a process or activity performed.
In the Swimlane diagram, the activity diagram is divided according to the class
responsible for working or performing out these activities.
It simply shows the connection and strong communication between these lanes and is
used to highlight waste, redundancy, and inefficiency in a process of an activity or
program.
Fork –
It is used to represent the multiple parallel flows.
Branches –
It allow the parallel flow within activities.
Merge –
It brings together or combines together multiple branches.
Join –
It is used to control and synchronize various parallel flows.
Class Diagram
Class diagram is a static diagram. It represents the static view of an application. Class diagram
is not only used for visualizing, describing, and documenting different aspects of a system but
also for constructing executable code of the software application.
The class diagrams are widely used in the modeling of object-oriented systems because they
are the only UML diagrams, which can be mapped directly with object-oriented languages.
Class diagram shows a collection of classes, interfaces, associations, collaborations, and
constraints. It is also known as a structural diagram.
o Upper Section: The upper section encompasses the name of the class.
Some of the following rules that should be taken into account while representing a class are given below:
. The attributes are written along with its visibility factors, which are public (+), private (-), protected
(#), and package (~).
o Lower Section: The lower section contain methods or operations. The methods are represented in
the form of a list, where each method is written in a single line. It demonstrates how a class interacts
with data.
Relationships
In UML, relationships are of three types:
o Dependency: A dependency is a semantic relationship between two or more classes where a change
in one class cause changes in another class. It forms a weaker relationship.
In the following example, Student_Name is dependent on the Student_Id.
Multiplicity: It defines a specific range of allowable instances of attributes. In case if a range is not specified,
one is considered as a default multiplicity.
The company encompasses a number of employees, and even if one employee resigns, the company still
exists.
Composition: The composition is a subset of aggregation. It portrays the dependency between the parent
and its child, which means if one part is deleted, then the other part also gets discarded. It represents a whole-
part relationship.
A contact book consists of multiple contacts, and if you delete the contact book, all the contacts will be lost.
Abstract Classes
In the abstract class, no objects can be a direct entity of the abstract class. The abstract class can neither be
declared nor be instantiated.
Let us assume that we have an abstract class named displacement with a method declared inside it, and that
method will be called as a drive (). Now, this abstract class method can be implemented by any object, for
example, car, bike, scooter, cycle, etc.
Behavioral Model
Behavioral Model is specially designed to make us understand behavior and factors
that influence behavior of a System. Behavior of a system is explained and represented
with the help of a diagram. This diagram is known as State Transition Diagram. It is
a collection of states and events. It usually describes overall states that a system can
have and events which are responsible for a change in state of a system.
So, on some occurrence of a particular event, an action is taken and what action needs
to be taken is represented by State Transition Diagram.
Example :
Consider an Elevator. This elevator is for n number of floors and has n number of
buttons one for each floor.
Elevator’s working can be explained as follows :
1. Elevator buttons are type of set of buttons which is there on elevator. For
reaching a particular floor you want to visit, “elevator buttons” for that particular
floor is pressed. Pressing, will cause illumination and elevator will start moving
towards that particular floor for which you pressed “elevator buttons”. As soon as
elevator reaches that particular floor,
illumination gets canceled.
Advantages :
Behavior and working of a system can easily be understood without any effort.
Results are more accurate by using this model.
This model requires less cost for development as cost of resources can be minimal.
It focuses on behavior of a system rather than theories.
Disadvantages :
This model does not have any theory, so trainee is not able to fully understand
basic principle and major concept of modeling.
This modeling cannot be fully automated.
Sometimes, it’s not easy to understand overall result.
Does not achieve maximum productivity due to some technical issues or any
errors.