0% found this document useful (0 votes)
14 views6 pages

SAD Lesson 2 Notes

The document outlines the phases of software development, including requirements specification, analysis and design, implementation, testing, and operation and maintenance. It emphasizes the importance of requirements engineering, detailing both functional and non-functional requirements, and describes the process of gathering and validating these requirements. Additionally, it distinguishes between soft and hard systems and explains the concepts of validation and verification in the context of software development.

Uploaded by

wedomap682
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views6 pages

SAD Lesson 2 Notes

The document outlines the phases of software development, including requirements specification, analysis and design, implementation, testing, and operation and maintenance. It emphasizes the importance of requirements engineering, detailing both functional and non-functional requirements, and describes the process of gathering and validating these requirements. Additionally, it distinguishes between soft and hard systems and explains the concepts of validation and verification in the context of software development.

Uploaded by

wedomap682
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

SAD Lesson 2 Notes

Software development phases


1. Requirements Specification
Understanding the usage scenarios and deriving the static domain model

2. Analysis and Design


Assigning responsibilities to objects and specifying detailed dynamics of their interactions
under different usage scenarios

3. Implementation
Encoding the design in a programming language

4. Testing
Individual classes/components (unit testing) and the entire system (integration testing)

5. Operation and Maintenance


Running the system; Fixing bugs and adding new features
Requirements Specification
Terms definition:
Software specification:- the process of understanding and defining what services are required
from the system and identifying the constraints on the system’s operation and development.

Requirements engineering: critical stage of the software process as errors at this stage lead to
later problems in the system design and implementation.

• Functional Requirements - a description of the facility or feature required.


Functional requirements deal with what the system should do or provide for users.
They include description of the required functions, outlines of associated reports or
online queries, and details of data to be held in the system.

• Non-Functional Requirements - a description and, where possible, target values of


associated non-functional requirements. Non-functional requirements detail
constraints, targets or control mechanisms for the new system. They describe how,
how well or to what standard a function should be provided. For example, levels of
required service such as response times; security and access requirements.

Requirement engineering process

1. Feasibility study: feasibility study can be Cleary explained by the statement “don’t fix it
unless you understand it.” The goal of feasibility study is to evaluate alternative system and
to purpose the most feasible and desirable system for development. Feasibility study consists
the following
a) Statement of the problem

b) Summary of findings and recommendations

c) conclusions

There are five types of feasibility study


a) technical feasibility

b) Economic feasibility

c) Motivational feasibility

d) Schedule feasibility

e) Operational feasibility

i. Operational feasibility study tests the operational scope of the software


to be developed. if for example the proposed software has
a high operational feasibility then its estimated that the software
usability will be high.

ii. The technical feasibility study compares the level of


technology available in the software development firm and the level of
technology required for the development of the product. The level of
technology consists of the programming language, the hardware resources
, other software tools etc.

[Link] economic feasibility study evaluate the cost of the


software development against the ultimate income or benefits to be
obtained from the developed system.
There must be scopes for profit after the successful
Completion of the project.
2. Requirements elicitation and Analysis

i. Derive the system requirements through observation of existing systems, discussions


with potential users and procurers, task analysis.
ii. Development of one or more system models and prototypes possible
iii. Help to understand the system to be specified

3. Requirements specification:- Activity of translating the information gathered during the


analysis activity into a document that defines a set of requirements
User requirements: abstract statements of the system requirements for the customer and end-
user of the system
System requirements: more detailed description of the functionality to be provided

4. Requirements validation
i. Checks the requirements for realism, consistency and completeness
ii. Errors are discovered to correct the specification
Structure of a requirements document:

[Link]

Define the expected readership of the document


Describe its version history
A rational for the creation of a new version
A summary of the changes made in each version

[Link]

Describe the need for the system


Describe the system’s functions
Explain how it will work with other systems
Describe how the system fits into the overall business or strategic objectives of
theorganization commissioning the software

[Link]

Define the technical terms used in the document


Should not make assumptions about the experience or expertise of the reader

[Link] requirements definition

Describe the services provided for the user


Non-functional system requirements should also be described
May use natural language, diagrams or other notations that are understandable to customers
Product and process standards should be specified (if applicable)
[Link] architecture
A high-level overview of the anticipated system architecture
Showing the distribution of functions across system modules
Architectural components should be highlighted (that are reused)

[Link] requirements specification


Describe the functional and non-functional requirements in more detail
Optional: further detail to the non-functional requirements
Optional: interfaces to other systems

[Link] models
Include graphical system models showing the relationships between the system components,
the system and its environment
Examples: object models, data-flow models, semantic data models

[Link] evolution
Describe the fundamental assumptions on which the system is based
Any anticipated changes due to hardware evolution, changing user needs etc.
Useful for system designers: may help to avoid design decisions

9. Appendices
Provide detailed, specific information that is related to the application being developed
Example: hardware and database descriptions
Hardware requirements: minimal and optional configurations for the system

10. Database requirements: logical organization of the data used by the system and the
relationships between data

[Link]

A normal alphabetic index


An index of diagrams
An index of functions etc

METHODS USED BY USERS IN COMING UP WITH THEIR REQUIREMENTS

1. kitchen sink strategy:-user throws everything into the requirement definition,


overstatement of needs such as an overabundance of reports. This approach usually reflects
the users lack of experience in the area.

2. smoking strategy:- it sets up a smoke screen by requesting several system features when
only one or two are needed. Requests have to be reduced to one that is realistic, manageable
and achievable.

3. same thing strategy:-This strategy indicates the users laziness, lack of knowledge or both.
An example statement:- give me the same thing but In a better format through the computer.

The analyst has a little chance of succeeding because only the user can fully discover the real
needs and problems.

It is difficult to determine user’s requirements because of the below reasons:

i. System requirements change and user requirements must be modified.

ii. Articulation of requirements is difficult

iii. Heavy user involvement and motivation is difficult.

iv. The pattern of interaction between users and analysts in designing information
requirements is complex.

Methods of gathering requirements

i. Observation
ii. Interviews
iii. questionnaires

1. Observations

Types of observation methods

i. Natural:-occurs in a setting such as the employees place of work


ii. Contrived: is a set up by the observer in a place like a laboratory

iii. Obtrusive: takes place when the respondent knows he/she is being observed.

iv. Unobtrusive:-takes place in a contrived way such as behind a mirror

v. Direct: takes place when the analyst actually observes the subject or the system at
work.

vi. Indirect: the analyst uses mechanical devices such as cameras and video tapes to
capture information.

System development lifecycle

i. Requirements specification:-involves understanding the user requirements and


coming up with the requirements document.
ii. Analysis:- establish the overall architecture of the system, identify required
components of the new system and the relationship between the components
iii. Design and coding: putting together components to come us with the new
system
iv. Testing:-individual components (units) and the entire system (integration testing)
is done for proper functionality.
v. Implementation:- the developed system is encoded in a programming language
vi. Operation and Maintenance:- involves running the system, fixing any more bugs
that were not identified during the testing stage and adding more features in
future.

Requirements
specification
Analysis

Design and coding

Testing

Implementation

Operation and
Maintenance

In systems theory, a system may be described as a soft system or as a hard system


Soft systems are systems that are difficult to define precisely, because the system
depends on the viewpoint of the person describing it. If it is difficult or impossible to
come to agreement on the boundaries of the system and its behavior, then the system is
considered to be soft. All human activity systems are soft systems. For example, a
banking system is a soft system.

Hard systems are well-defined and it is relatively easy to get agreement on where the
boundaries to the system are, and what the purpose of the system is. The key difference
between soft and hard systems is the amount of consensus that can be reached. The
mechanical operation of a car is an example of a hard system.

VALIDATION AND VERIFICATION

Validation is the activity of checking the correct system is being constructed (building
the right system) while verification is the activity of checking the system is being
constructed correctly (building the system right)

You might also like