Notes CH_02_AB
Notes CH_02_AB
Importance of practices:-
- Software engineering practices play very important role in development of
software product.
- The most important thing is that customer satisfaction, Software engineering
practices helps in achieving expected goals.
- These practices help in delivering best product & sustain in market long
time.
- Practices help at every stage of the development.
- It is also provide guidelines related to maintenance.
Essence of practice:
Understand the problem (communication and analysis)
- Who has a stake in the solution to the problem?
- What are the unknowns (data, function, behavior)?
- Can the problem be compartmentalized?
- Can the problem be represented graphically?
Plan a solution (planning, modeling and software design)
- Have you seen similar problems like this before?
- Has a similar problem been solved and is the solution reusable?
- Can sub problems be defined and are solutions available for the
Sub problems?
Carry out the plan (construction; code generation)
- Does the solution conform to the plan? Is the source code traceable back to the
design?
- Is each component of the solution correct? Has the design and code been
reviewed?
Examine the results for accuracy (testing and quality assurance)
- Is it possible to test each component of the solution?
- Does the solution produce results that conform to the data, function, and behavior
that are required?
1
endure far longer. To do this successfully, these systems must be ready to adapt to
Page
these and other changes. Systems that do this successfully are those that have been
3.Validation principles
These are the principles to be followed after complimenting the first coding
pass
A. Conduct the unit test. Test whether the module is producing exact
output.
B. Refactor the code if necessary.
( program reorganizing its internal structure without altering its external
behavior ).
C. Conduct a code walkthrough when appropriate.
Testing PRINCIPLES
input specification.
Page
3. Testing should begin “in the small” and progress towards testing “in the
large”
Testing should start from individual units and finally go towards testing of
complete system as whole.
Software is always divided in to small size and independent components
called as modules.
As modules are small in size they are easy to understand, easy to test, easy
to debug and easy to modify.
These modules are called as units. Hence software testing always starts from
unit testing.
These units are then integrated i.e. combined as per design specification.
And finally system is tested as a whole.
• Characteristics of Requirements:
1. Requirement should be unambiguous –
if requirement contents ambiguity then it is difficult to fulfill the
requirement correctly.
2. requirement should be testable –
Tester should be able to easily test the requirement, whether they are
implemented successfully or not?
3. requirement should be clear –
It should not be contained any unnecessary information. If there is a
necessary information then it becomes difficult to achieve the appropriate
fulfillment of the requirement.
4. Requirement should be understandable –
Means when anyone read it then it should be understood by the person.
5. Requirement should be feasible(realistic)-
Should be completed within given time and budget
6. Requirement should be consistent –
It is important that all inputs must be processes similarly.
Types of requirements
11
Page
Domain requirements:
Domain requirements are the requirements which are characteristic of a
particular category or domain of projects.
The basic functions that a system of a specific domain must necessarily
exhibit come under this category.
For instance, in an academic software that maintains records of a school or
college, the functionality of being able to access the list of faculty and list of
students of each grade is a domain requirement.
These requirements are therefore identified from that domain model and are
not user specific
Requirements Engineering
meet and they the overall scope and nature of the problem statements. By having
proper inception phase the developer will have clear idea about the system and as
Page
• Use case is a term used in the system analysis to determine clarify and
integrate all the system requirement.
• It describe how user interact with the system to achieve certain goals.
15
• Use case consists of three basic elements as Actor, system and Goal
• Use case diagram consists of following three main components
Page
2. Actor - An actor is any entity or real world object which perform different
function in the given system.
Actor in use case diagram interact with use case of use case diagram.
various roles in the system describe as actors of system in use case diagram.
3. System boundary - define the scope of the system for limits of the system.
System boundary is represented by solid line rectangular box
Use cases are drawn within the system boundary whereas actor is outside of
the system boundary.
2. Extend - relationship between two use cases in which child use case adds
new features to existing functionality of parent use case is called extend
relationship.
An extend relationship is denoted by dotted Arrow with arrow head pointing
towards parent use case.
Stereotype <<extend>> is labeled on arrow.
E.g. here percentage helps to decide class of student.
use case.
It is represented by Arrow with triangular arrow head pointing towards
Page
1. Establish the basis for agreement between the customers and the
suppliers on what the software product is to do. The complete description of
the functions to be performed by the software specified in the SRS will
assist the potential users to determine if the software specified meets their
needs or how the software must be modified to meet their needs. Reduce the
development effort.
The preparation of the SRS forces the various concerned groups in the
customer's organization to consider rigorously all of the requirements before
design begins and reduces later redesign, recoding, and retesting. Careful
review of the requirements in the SRS can reveal omissions,
misunderstandings, and inconsistencies early i/p the development cycle
when these problems are easier to correct.
2. Provide a basis for estimating costs and schedules. The description of the
product to be developed as given in the SRS is a realistic basis for estimating
project costs and can be used to obtain approval for bids or price estimates.
17
4. Facilitate transfer. The SRS makes it easier to transfer the software product
to new users or new machines. Customers thus find it easier to transfer the
software to other parts of their organization, and suppliers find it easier to
transfer it to new customers.
5. Serve as a basis for enhancement. Because the-SRS discusses the product
but not the project that developed it, the SRS serves as a basis for later
enhancement of the finished product.
The SRS may need to be altered, but it does provide a foundation for
continued production evaluation.
Characteristics of an SRS
2. Correct : SRS is correct when all requirements of user are described in the
requirement document.
List of requirements must be matched with desired system.
Remember that there is no specific tool or process to ensure the correctness
of SRS.
Correctness give Assurance that all state requirements are worked as
expected
4. Ranked for importance/stability : Each and every requirement has not same
importance, so every requirement is recognized to make differentiation
between requirements.
18
Format of SRS
Priority of requirement
Page
20
Page