Software Requirements Engineering - SRE also called as Requirements Engineering

PreethaV16 46 views 49 slides Jun 16, 2024
Slide 1
Slide 1 of 49
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49

About This Presentation

This ppt gives the detailed description about Software Requirements Engineering, software engineering and requirements engineering.


Slide Content

20CSP43 - Software Engineering Requirements UNIT – 1 Software Engineering Concepts Ms. Preetha V AP/CSE

UNIT - I Software Engineering Concepts Introduction- Nature of Software - The changing nature of Software – Software Myths – Characteristics of Software -The Software Process: The Process Framework - Umbrella Activities.

Software Engineering Software Engineering is an engineering branch related to the evolution  of software product using well-defined scientific principles, techniques, and procedures . Software Engineering provides a standard procedure to design and develop a software. Ms. Preetha V AP/CSE

The  software  is a collection of integrated programs. Software subsists of carefully-organized instructions and code written by developers on any of various particular computer languages. Computer programs and related documentation such as requirements, design models and user manuals. Engineering  is the application of  scientific  and  practical  knowledge to  invent, design, build, maintain , and  improve frameworks, processes, etc . Ms. Preetha V AP/CSE

Ms. Preetha V AP/CSE

Why is Software Engineering required? Software Engineering is required due to the following reasons: To manage Large software For more Scalability Cost Management To manage the dynamic nature of software For better quality Management Ms. Preetha V AP/CSE

Characteristics of a good software engineer The features that good software engineers should possess are as follows: Exposure to systematic methods, i.e., familiarity with software engineering principles. Good technical knowledge of the project range (Domain knowledge). Good programming abilities. Good communication skills. These skills comprise of oral, written, and interpersonal skills. High motivation. Ms. Preetha V AP/CSE

What is the nature of software in software engineering? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures that enable the programs to adequately manipulate information, and (3) document that describes the operation and use of the programs. Ms. Preetha V AP/CSE

Changing Nature of Software System Software: System software is a collection of programs which are written to service other programs. Some system software processes complex but determinate, information structures. Other system application process largely indeterminate data. Sometimes when, the system software area is characterized by the heavy interaction with computer hardware that requires scheduling, resource sharing, and sophisticated process management. Examples of system software include operating systems (OS) (like macOS, Linux, Android, and Microsoft Windows), computational science software, game engines, search engines, industrial automation, and software as a service applications. Ms. Preetha V AP/CSE

Application Software: Application software is defined as programs that solve a specific business need. Application in this area process business or technical data in a way that facilitates business operation or management technical decision making. In addition to convention data processing application, application software is used to control business function in real time. A collection of Microsoft software including MS Office, PowerPoint, Word, Excel, and Outlook. Common Internet browsers like Google Chrome, Safari, Firefox, etc. Graphics and designing software such as Canva, Adobe Photoshop, CorelDraw, and AutoCAD. Ms. Preetha V AP/CSE

Engineering and Scientific Software: This software is used to facilitate the engineering function and task. however modern application within the engineering and scientific area are moving away from the conventional numerical algorithms. Computer-aided design, system simulation, and other interactive applications have begun to take a real-time and even system software characteristic.  Software is written for specific applications Examples are software like MATLAB, AUTOCAD, PSPICE, ORCAD, etc. Ms. Preetha V AP/CSE

Embedded Software: Embedded software resides within the system or product and is used to implement and control feature and function for the end-user and for the system itself. Embedded software can perform the limited and esoteric function or provided significant function and control capability. Image processing systems found in medical imaging equipment. Fly-by-wire control systems found in aircraft. Motion detection systems in security cameras. Traffic control systems found in traffic lights. Ms. Preetha V AP/CSE

Product-line Software: Designed to provide a specific capability for use by many different customers, product line software can focus on the limited and esoteric marketplace or address the mass consumer market. Software product lines often have many features in common and operate using the same core programming. This may include a line of products like devices, in which your phone, smartwatch and laptop all function together and use versions of the same software. Ms. Preetha V AP/CSE

Web Application: It is a client-server computer program which the client runs on the web browser. In their simplest form, Web apps can be little more than a set of linked hypertext files that present information using text and limited graphics. However, as e-commerce and B2B application grow in importance. Web apps are evolving into a sophisticate computing environment that not only provides a standalone feature, computing function, and content to the end user. Google Docs. Google Workspace, the Google Office suite, is one of the most popular collections of web apps. ... Netflix. One of the top video-streaming platforms is also a web app. ... Trello. ... Basecamp. ... Microsoft Office. ... Uber. ... eBay. ... Ms. Preetha V AP/CSE

Artificial Intelligence Software: Artificial intelligence software makes use of a nonnumerical algorithm to solve a complex problem that is not amenable to computation or straightforward analysis. Application within this area includes robotics, expert system, pattern recognition, artificial neural network, theorem proving and game playing. Virtual assistants like Siri and Alexa. Recommendation systems used in e-commerce platforms. Fraud detection in financial institutions. Autonomous vehicles. NLP for chatbots and customer service. Ms. Preetha V AP/CSE

Software Myths: Most, experienced experts have seen myths or superstitions (false beliefs or interpretations) or misleading attitudes (naked users) which creates major problems for management and technical people. The types of software-related myths are listed below. Ms. Preetha V AP/CSE

(i) Management Myths : Managers are often under pressure for software development under a tight budget, improved quality, and a packed schedule, often believing in some software myths. Following are some management myths.  Myth1: We have all the standards and procedures available for software development. Fact : Software experts do not know all the requirements for the software development. And all existing processes are incomplete as new software development is based on new and different problem. Ms. Preetha V AP/CSE

Myth 2 Falling behind on schedule could be taken care of by adding more programmers. Reality 2 Adding more human resources to already late projects worsens the problem. Developers working on the project have to educate the newcomers, further delaying the project. Also, newcomers are far less productive than developers already working on them. As a  result, time spent on educating newcomers could not meet the immediate reduction in work. Ms. Preetha V AP/CSE

Myth 3 If a project is outsourced to a third party, we could just relax and wait for them to build it. Reality 3 If an organisation is not able to manage and control software projects internally, then the organisation will suffer invariably when they outsourced the project. Ms. Preetha V AP/CSE

Customer Myths Customer Myths are generally due to false expectations by customers, and these myths end up leaving customers with dissatisfaction with the software developers. Following are some customer myths. Ms. Preetha V AP/CSE

Myth 1: A general statement of intent is enough to start writing plans (software development) and details of objectives can be done over time. Fact : Official and detailed description of the database function, ethical performance, communication, structural issues and the verification process are important. Unambiguous requirements (usually derived iteratively) are developed only through effective and continuous communication between customer and developer. Ms. Preetha V AP/CSE

Myth 2: Software requirements continually change, but change can be easily accommodated because software is flexible Fact : It is true that software requirements change, but the impact of change varies with the time at which it is introduced. When requirements changes are requested early (before design or code has been started), the cost impact is relatively small. However, as time passes, the cost impact grows rapidly—resources have been committed, a design framework has been established, and change can cause upheaval that requires additional resources and major design modification. Ms. Preetha V AP/CSE

Ms. Preetha V AP/CSE

Practitioner’s Myths Developers often work under management pressure to complete software within a timeframe, with fewer resources often believing in these software myths. Following are some practitioners’ myths. Myth 1 Once the software is developed or the code is delivered to the customer, the developer's work ends. Reality 1 A significant chunk of developers' work, i.e., 50-60 % of all the efforts expended on software, will be spent after the customer provides the software. Major requirements would get found missing, and new bugs may get discovered, and so on. Ms. Preetha V AP/CSE

Myth 2 Software testing could only be possible when the software program starts running. Reality 2 Quality of software could be measured at any phase of development by applying some QA mechanism. Ms. Preetha V AP/CSE

Myth 3 Unnecessary Documentation slows down the process of software development.  Reality 3 Software engineering is about creating a quality product at every level and not about adding unnecessary work. Proper documentation of software helps us guide the user and enhance the quality, which reduces the amount of rework. Ms. Preetha V AP/CSE

Characteristics of Software Software Characteristics are classified into six major components. ISO(   International Organization for Standardization)/IEC ( International Electrotechnical Commission) 9126  is an international standard proposed to make sure  ‘quality of all software-intensive products’  which includes a system like safety-critical where in case of  failure of software  lives will be in danger.   Ms. Preetha V AP/CSE

Functionality Functionality refers to the set of features and capabilities that a software program or system provides to its users . Examples of functionality in software include: Data storage and retrieval Data processing and manipulation User interface and navigation Communication and networking Security and access control Reporting and visualization Automation and scripting Ms. Preetha V AP/CSE

The more functionality a software has, the more powerful and versatile it is, but also the more complex it can be. Ms. Preetha V AP/CSE

Reliability Reliability is a characteristic of software that refers to its ability to perform its intended functions correctly and consistently over time. Reliability is an important aspect of software quality, as it helps ensure that the software will work correctly and not fail unexpectedly . Examples of factors that can affect the reliability of software include: Bugs and errors in the code Lack of testing and validation Poorly designed algorithms and data structures Inadequate error handling and recovery Incompatibilities with other software or hardware   Ms. Preetha V AP/CSE

To improve the reliability of software, various techniques, and methodologies can be used, such as testing and validation, formal verification, and fault tolerance . Ms. Preetha V AP/CSE

Efficiency It refers to the ability of the software to use system resources in the most effective and efficient manner. Efficiency is a characteristic of software that refers to its ability to use resources such as memory, processing power, and network bandwidth in an optimal way. High efficiency means that a software program can perform its intended functions quickly and with minimal use of resources, while low efficiency means that a software program may be slow or consume excessive resources. Ms. Preetha V AP/CSE

Examples of factors that can affect the efficiency of the software include: Poorly designed algorithms and data structures Inefficient use of memory and processing power High network latency or bandwidth usage Unnecessary processing or computation Unoptimized code Ms. Preetha V AP/CSE

To improve the efficiency of software, various techniques, and methodologies can be used, such as performance analysis, optimization, and profiling. Ms. Preetha V AP/CSE

Usability It refers to the extent to which the software can be used with ease. the amount of effort or time required to learn how to use the software.  Required functions are:  Ms. Preetha V AP/CSE

Maintainability It refers to the ease with which modifications can be made in a software system to extend its functionality, improve its performance, or correct errors.  Required functions are:  Ms. Preetha V AP/CSE

Portability A set of attributes that bears on the ability of software to be transferred from one environment to another, without minimum changes.  Required functions are:  Ms. Preetha V AP/CSE

Various Characteristics of Software in Software Engineering Software is developed or engineered; it is not manufactured in the classical sense: Although some similarities exist between  software development  and hardware manufacturing, few activities are fundamentally different. In both activities, high quality is achieved through good design, but the manufacturing phase for hardware can introduce quality problems than software. Ms. Preetha V AP/CSE

The software doesn’t “wear out.”: Hardware components suffer from the growing effects of many other environmental factors. Stated simply, the hardware begins to wear out. Software is not susceptible to the environmental maladies that cause hardware to wear out. When a hardware component wears out, it is replaced by a spare part. There are no software spare parts. Every software failure indicates an error in design or in the process through which the design was translated into machine-executable code. Therefore, the  software maintenance  tasks that accommodate requests for change involve considerably more complexity than hardware maintenance. However, the implication is clear—the software doesn’t wear out. But it does deteriorate. Ms. Preetha V AP/CSE

The software continues to be custom-built: A software part should be planned and carried out with the goal that it tends to be reused in various projects. Current reusable segments encapsulate the two pieces of information and the preparation that is applied to the information, empowering the programmer to make new applications from reusable parts. In the hardware world, component reuse is a natural part of the engineering process. Ms. Preetha V AP/CSE

Software Processes The term  software  specifies to the set of computer programs, procedures and associated documents (Flowcharts, manuals, etc.) that describe the program and how they are to be used . A software process is the set of activities and associated outcome that produce a software product. Software engineers mostly carry out these activities. These are four key process activities, which are common to all software processes. These activities are : Software specifications:  The functionality of the software and constraints on its operation must be defined. Software development:  The software to meet the requirement must be produced. Software validation:  The software must be validated to ensure that it does what the customer wants. Software evolution:  The software must evolve to meet changing client needs. Ms. Preetha V AP/CSE

Software Process Framework Software Process Framework  is an abstraction of the software development process. It details the steps and chronological order of a process. Since it serves as a foundation for them, it is utilized in most applications. Task sets, umbrella activities, and process framework activities all define the characteristics of the software development process . Ms. Preetha V AP/CSE

Ms. Preetha V AP/CSE

Software process includes: Tasks – focus on a small, specific objective. Action – set of tasks that produce a major work product. Activities – group of related tasks and actions for a major objective. Ms. Preetha V AP/CSE

Umbrella activities Umbrella activities are a series of steps or procedures followed by a software development team to maintain the progress, quality, changes, and risks of complete development tasks. These steps of umbrella activities will evolve through the phases of the generic view of software development. Ms. Preetha V AP/CSE

Umbrella activities Typical umbrella activities are : 1. Software project tracking and control In this activity, the developing team accesses project plan and compares it with the predefined schedule. If these project plans do not match with the predefined schedule, then the required actions are taken to maintain the schedule. 2. Risk management Risk is an event that may or may not occur. If the event occurs, then it causes some unwanted outcome. Hence, proper risk management is required . 3. Software Quality Assurance (SQA) SQA is the planned and systematic pattern of activities which are required to give a guarantee of software quality. For example,  during the software development meetings are conducted at every stage of development to find out the defects and suggest improvements to produce good quality software. Ms. Preetha V AP/CSE

Umbrella activities 4. Formal Technical Reviews (FTR) FTR is a meeting conducted by the technical staff. The motive of the meeting is to detect quality problems and suggest improvements. The technical person focuses on the quality of the software from the customer point of view . 5. Measurement Measurement consists of the effort required to measure the software. The software cannot be measured directly. It is measured by direct and indirect measures. Direct measures like cost, lines of code, size of software etc. Indirect measures such as quality of software which is measured by some other factor. Hence, it is an indirect measure of software. Ms. Preetha V AP/CSE

Umbrella activities 6. Software Configuration Management (SCM) It manages the effect of change throughout the software process . 7. Reusability management It defines the criteria for reuse the product. The quality of software is good when the components of the software are developed for certain application and are useful for developing other applications . 8. Work product preparation and production It consists of the activities that are needed to create the documents, forms, lists, logs and user manuals for developing a software. Ms. Preetha V AP/CSE

End Of Unit - I