SOFTWARE ENGINEERING. Software Specification Software Design and Implementation Software Validation. Peter Mileff PhD

Similar documents
The requirements engineering process

Introduction to Software Engineering

Software processes. Objectives. Contents

Incremental development A.Y. 2018/2019

CMSC 435: Software Engineering Section 0201

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Second. Incremental development model

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Verification and Validation

SE 2730 Final Review

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

1) Software Engineering

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Automatic Merging of Specification Documents in a Parallel Development Environment

FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER

Verification and Validation

Software Engineering

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Techniques for the unambiguous specification of software

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Part 5. Verification and Validation

Recommended Practice for Software Requirements Specifications (IEEE)

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Software Prototyping Animating and demonstrating system requirements. Uses of System Prototypes. Prototyping Benefits

Software specification and modelling. Requirements engineering

Software Engineering Lifecycles. Controlling Complexity

Verification and Validation. Verification and validation

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

Architectural Design

Requirements Gathering

SEG3201 Basics of the Requirements Process

Requirements Engineering Process

EBOOK THE BEGINNER S GUIDE TO DESIGN VERIFICATION AND DESIGN VALIDATION FOR MEDICAL DEVICES

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

VO Software Engineering

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Transition Plan (TP)

Verification and Validation

Verification and Validation

Specifying and Prototyping

Sample Exam. Advanced Test Automation - Engineer

Software Maintenance. Maintenance is Inevitable. Types of Maintenance. Managing the processes of system change

Implementation Architecture

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Lecturer: Sebastian Coope Ashton Building, Room G.18

Requirements Analysis. Requirement analysis. Requirements analysis 3/11/14. Advanced Programming

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.

W.C.Uduwela. Dept. of Mathematics & Computer Science

Requirements. Requirements. Types of Requirement. What Is a Requirement?

System Development Life Cycle Methods/Approaches/Models

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

THE BENEFITS OF MODEL-BASED ENGINEERING IN PRODUCT DEVELOPMENT FROM PCB TO SYSTEMS MENTOR GRAPHICS

Chapter 4 Objectives

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Software Testing. Software Testing

CIS 890: Safety Critical Systems

Ch 1: The Architecture Business Cycle

ANSAwise - The ODP Reference Model

Learning objectives: Software Engineering. CSI1102: Introduction to Software Design. The Software Life Cycle. About Maintenance

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

Chapter 6 Architectural Design

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Implementation Architecture

Existing Model Metrics and Relations to Model Quality

Quality Software Requirements By J. Chris Gibson

Process of Interaction Design and Design Languages

Chapter 1: Programming Principles

Ch 4: Requirements Engineering. What are requirements?

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Software Quality. Chapter What is Quality?

Static and dynamic Testing

SOFTWARE ENGINEERING

Gradational conception in Cleanroom Software Development

Simulink Verification and Validation

FDA Initiatives on Human Factors and Usability for Medical Devices Molly Follette Story, PhD FDA /CDRH / ODE

Architecture and Design Evolution

3Lesson 3: Web Project Management Fundamentals Objectives

Chapter 6 Architectural Design. Chapter 6 Architectural design

Evolutionary Architecture and Design

Darshan Institute of Engineering & Technology for Diploma Studies

Requirements Engineering

Credit where Credit is Due. Goals for this Lecture. Introduction to Design

Designing Component-Based Architectures with Rational Rose RealTime

MONIKA HEINER.

Objectives. Chapter 19. Verification vs. validation. Topics covered. Static and dynamic verification. The V&V process

Software Process. Software Process

Addition about Prototypes

AmI Design Process. 01QZP - Ambient intelligence. Fulvio Corno. Politecnico di Torino, 2017/2018

Lecture 8 Requirements Engineering

Transcription:

Peter Mileff PhD SOFTWARE ENGINEERING Software Specification Software Design and Implementation Software Validation University of Miskolc Department of Information Technology

Software Specification... 2

Software Specification Software specification is a process, where we understand and define what services are required from the system we identify the constraints on the system s operation and development. It is a particularly critical stage of the software process errors at this stage inevitably lead to later problems in the system design and implementation. 3

Software Specification The process aims to produce an agreed requirements document that specifies a system satisfying stakeholder requirements. Requirements are usually presented at two levels of detail: End-users and customers need a high-level statement of the requirements; System developers: need a more detailed system specification. 4

The Software Specification process 5

Four main activities of the Feasibility study: process This is an estimation process: verify that software is feasible using current software and hardware technologies. The result of the process is a study The study considers the followings: whether the proposed system will be cost-effective from a business point of view and if it can be developed within existing budgetary constraints. A feasibility study should be relatively cheap and quick. The result should inform the decision of whether or not to go ahead with a more detailed analysis. 6

Four main activities of the process 2. Requirements elicitation and analysis This process collects the system requirements through observation of existing systems Discussions with potential users and procurers and stakeholders Talk to everybody who can provide information about the new software The process may involve the development of one or more system models and prototypes. These help you understand the system to be specified. 7

Four main activities of the process 3. Requirements specification It is the activity of translating the information into a document gathered during the analysis activity that defines a set of requirements. Two types of requirements may be included in this document. User requirements are abstract statements of the system requirements for the customer and end-user of the system; System requirements are a more detailed description of the functionality to be provided. 8

Four main activities of the process 4. Requirements validation This activity checks the requirements for realism, consistency, and completeness. Are they feasible? Are they rational? Is something missing? The aim is to discover errors in the requirements document It must then be modified to correct these problems. 9

Four main activities of the process The activities in the requirements process are not simply carried out in a strict sequence. Requirements analysis continues during definition and specification New requirements come to light throughout the process. Therefore, the activities of analysis, definition, and specification are interleaved. 10

Software design and implementation... 11

The Software design process Software design: is a description of the structure of the software to be implemented the data models and structures the interfaces between system components sometimes, the used algorithms Designers develop the design iteratively A structure cannot be described without iteration New information may become available as we go forward They add formality and detail as they develop their design with constant backtracking to correct earlier designs. 12

The Software design process 13

The Software design process The diagram suggests that the stages of the design process are sequential. However design process activities are interleaved. Feedback from one stage to another inevitable in all design processes. The activities in the design process can vary depending on the type of system being developed. Example: real-time systems require timing design but may not include a database there is no database design involved. 14

Design activities 1. Architectural design: here we identify the overall structure of the system What are the principal components sometimes called sub-systems or modules What are their relationships, and how they are distributed. 2. Interface design: defines the interfaces between system components. This interface specification must be unambiguous. With a precise interface, a component can be used without other components having to know how it is implemented. Once interface specifications are agreed, the components can be designed and developed concurrently. 15

Design activities 3. Component design: we take each system component and design how it will operate. This may be a simple statement of the expected functionality to be implemented the specific design left to the programmer. Alternatively, it may be a list of changes to be made to a reusable component or a detailed design model. The design model may be used to automatically generate an implementation. 16

Design activities 4. Database design: Design the system data structures if software functionality requires a database how the data structures are to be represented in a database database type, table names, connections, stored procedures, etc The work here depends on whether an existing database is to be reused or a new database is to be created. 17

Design activities These activities lead to a set of design outputs Architectural Design Database Specification Interface Specification Component Specification The detail and representation of these can be different depends on the software we design For critical systems detailed design documents and accurate descriptions must be produced In other cases Sometimes lighter-style documents with diagrams are enough Or design is represented only in the code of the program 18

Implementation The implementation follows naturally the system design processes It is more common for the later stages of design and program development to be interleaved. Software development tools may be used to generate a skeleton program from a design Programming is a personal activity and there is no general process that is usually followed. Some programmers start with components that they understand develop these, and then move on to less-understood components. Others take the opposite approach 19

Implementation Basic rules of development: Well working code: the code performs what is expected. Reacts adequately even in case of an error. no freezing Aesthetically adequate code: the code shall be readable. We cannot presume that the code will be read only by us we should apply certain rules that enhance readability. For example the "CamelCase naming convention. Often the company specifies these rules by which it ensures subsequent further development of its software. 20

Implementation Documented code: the quality of a code increases if it is documented on a certain level. Especially good if we modify the code of somebody else it is a great help if at the beginning of the fourfold for cycle you find a brief explanation on its aim. Comments should answer basic questions: What does this code part do? Why are these lines necessary? Why should we be careful at the modification? etc. 21

Implementation Normally, programmers carry out some testing of the code they have developed This often reveals program defects that must be removed from the program. This is called debugging. Defect testing and debugging are different processes. Testing establishes the existence of defects. Debugging is concerned with locating and correcting these defects. IDEs usually support debugging the offered interactive debugging tools are usually very intelligent 22

Software validation... 23

Software Validation More generally: Verification and Validation (V&V) Goal: to show that a system conforms to its specification (Verification) and it meets the expectations of the system customer (Validation) The principal validation technique is program testing. where the system is executed using simulated test data Validation may also involve other checking processes at each stage of the software process from user requirements definition to program development. such as inspections and reviews verify the requirements, the specification document, the design, etc 24

Software evolution... 25

Software Evolution Software development does not stop when a system is delivered but continues throughout the lifetime of the system. After a system has been deployed, it inevitably has to change if it is to remain useful. The usually reason of continuously evolution: Business changes new user expectations generate new requirements for the existing software Parts of the software may have to be modified to correct errors that are found in operation, to adapt it for changes to its hardware and software platform, or to improve its performance or other non-functional characteristics 26

Software Evolution Software evolution is important! organizations have invested large amounts of money in their software they are now completely dependent on these systems Usually large companies spend more on maintaining existing systems than on new systems development As the software is modified: its structure tends to degrade and changes become more and more expensive. it is getting harder to maintain the codebase This often happens after a few years of use when other environmental changes, such as hardware and operating systems, are also often required. 27

Thank you for your attention! 28