Software Requirements Engineering - SRE also called as Requirements Engineering
PreethaV16
46 views
49 slides
Jun 16, 2024
Slide 1 of 49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
About This Presentation
This ppt gives the detailed description about Software Requirements Engineering, software engineering and requirements engineering.
Size: 365.35 KB
Language: en
Added: Jun 16, 2024
Slides: 49 pages
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