4. Requirements Analysis
• Conceptually, the requirements analysis involves the following:
– Eliciting requirements: determining customer requirements
– Analyzing requirements: assure that the requirements are clear, complete,
unambiguous, not contradictory
– Recording requirements: document reqs as text, use cases, user stories, or
process specifications.
• Techniques used in eliciting reqs:
– Holding interviews,
– Holding focus groups
– Running questionairs
– Creating requirements lists
– Prototyping,
– Use cases.
• => The above is often called as the Requirements Engineering in
software/systems engineering jargon.
• The outcome is Software Requirements Specification (SRS)
14.11.2020 Intro Comp SWE 4
5. SRS
• SRS: a complete description of the behavior of
the target system:
– Functional Requirements: use cases
– Non-functional Requirements: constraints to satisfy,
such as performance, quality standards, and design.
• Let’s consider a simple example:
– Daily schedule reminder software application:
• SRS:
– Objective?
– FR?
– NFR?
14.11.2020 Intro Comp SWE 5
6. Format of a software requirement specification report
14.11.2020 Intro Comp SWE 6
7. Modern Methods for SRS
• Joint Application Development (JAD): the key users,
sponsors, managers, and system analysts hold a
succession of structured collaborative workshops.
• Group Support Systems (GSS): provide collaboration for
members of the group.
• Computer-Aided Software Engineering (CASE) tools:
privode computer tool base for auomation of the
processes
• Prototyping: A rudimentary version of the application
is built with the help of analysts and users. This is used
to augment the requirement determination process.
14.11.2020 Intro Comp SWE 7
8. Software Requirement Documentation
• Requirements are produced and consumed by
everyone involved in the production of software:
end-users, customers, product managers, project
managers, sales, marketing, software architects,
usability experts, interaction designers,
developers, testers, deployment and
maintenance staff. Thus, requirements
documentation has many different purposes.
– Architecture/Design Documentation
– Technical documentation
– User documentation
14.11.2020 Intro Comp SWE 8
9. Terminology - Terimler
• Requirements analysis:
gereksinme çözümlemesi
• Prototyping: öntürleme
• SRS: yazılım gereksinim
belirtimi
• Functional Requirements:
işlevsel gereksinimler
• Interface: arayüz
• software architect:
yazılım mimarı
• Data flow: veri akımı
• Exception handling: olay
işleme
• JAD: ortaklaşa uygulama
geliştirimi
• GSS: grup destek sistemi
• CASE: bilgisayar destekli
yazılım mühendisliği
• Documentation: belge,
belgeleme
14.11.2020 Intro Comp SWE 9
10. Homework
• Prepare a software requirements specification
report:
– For an application of your choice
– Provide one sentence entry for each section;
– No drawing or graphics; use just text.
14.11.2020 Intro Comp SWE 10
11. These are FYI!
• Software requirements analysis, 20 minutes:
– https://www.youtube.com/watch?v=Vz7TQ3eAQi
U
• Analysis and Requirements Gathering, 19
minutes:
– https://www.youtube.com/watch?v=gyXcu78bWis
– Start from 4.50 minute mark!
14.11.2020 Intro Comp SWE 11
12. Leads
• Python programming language creator Guido van
Rossum joins Microsoft:
– https://www.techrepublic.com/article/python-
programming-language-creator-guido-van-rossum-joins-
microsoft/
• C++ programming language: How it became the
invisible foundation for everything, and what's next:
– https://www.techrepublic.com/article/c-programming-
language-how-it-became-the-invisible-foundation-for-
everything-and-whats-next/
• TIOBE Index for November 2020:
– https://www.tiobe.com/tiobe-index/
14.11.2020 Intro Comp SWE 12