CSC 342 Semester I: 1425-1426H (2004-2005 G)



Similar documents
Chapter 7: Structuring System Process Requirements

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Data Flow Diagrams. Outline. Some Rules for External Entities 1/25/2010. Mechanics

Aerospace Software Engineering

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Topic # 08. Structuring System Process Requirements. CIS Life Cycle and Requirements Structuring Stage

CMSC 435: Software Engineering Course overview. Topics covered today

An Introduction to Software Engineering

LECTURE 11: PROCESS MODELING

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Why Data Flow Diagrams?

Software Engineering UNIT -1 OVERVIEW

Chapter 6. Data-Flow Diagrams

(Refer Slide Time 00:56)

Process Modelling. Data flow Diagrams. Process Modelling Data Flow Diagrams. CSE Information Systems 1

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

1. Process Modeling. Process Modeling (Cont.) Content. Chapter 7 Structuring System Process Requirements

Understanding Data Flow Diagrams Donald S. Le Vie, Jr.

6-1. Process Modeling

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

To introduce software process models To describe three generic process models and when they may be used

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Functional Data Flow Diagrams. Outline

Collated Food Requirements. Received orders. Resolved orders. 4 Check for discrepancies * Unmatched orders

Unit Title: Personnel Information Systems Unit Reference Number: F/601/7510 Guided Learning Hours: 160 Level: Level 5 Number of Credits: 18

Software Design Document (SDD) Template

A Project Based Approach for Teaching System Analysis, Design, and Implementation Courses

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Object Oriented Software Models

Chapter 13 BUILDING INFORMATION SYSTEMS. How does building new systems produce organizational change?

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Engineering Reference Framework

Chapter 3. Data Flow Diagrams

GCE APPLIED ICT A2 COURSEWORK TIPS

How To Develop Software

Data Analysis 1. SET08104 Database Systems. Napier University

CHAPTER 3. Data Modeling and Database Design- Part1

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Engineering. Software Engineering. Software Costs

Unit 2.1. Data Analysis 1 - V Data Analysis 1. Dr Gordon Russell, Napier University

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

How To Understand Software Engineering

General Problem Solving Model. Software Development Methodology. Chapter 2A

Functional Modeling with Data Flow Diagrams

Chapter 1 The Systems Development Environment

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Subject : System Analysis and Design BCA -II UNIT 1

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Use Case Diagrams. Tutorial

Algorithms, Flowcharts & Program Design. ComPro

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

Software Engineering Question Bank

Introduction to Systems Analysis and Design

Overview. System Definition Webster s Dictionary. System Engineering Hierarchy. System Engineering. Computer-Based Systems [PRE2005]

Software Processes. Topics covered

Unit 1 Learning Objectives

Process Analysis. Work Process Documentation Guidelines. Purpose

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Applications in Business. Embedded Systems. FIGURE 1-17 Application Types and Decision Types

Foundations for Systems Development

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Announcements. Project status demo in class

BUSINESS PROCESS DOCUMENTATION

Project Management Planning

VIDYAVAHINI FIRST GRADE COLLEGE

Determining requirements

Axiomatic design of software systems

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

An Automatic Tool for Checking Consistency between Data Flow Diagrams (DFDs)

Answers to Review Questions

III. Structured Analysis and Design Technique (SADT) SADT: Structured Analysis and Design Technique

Chapter 1 Introduction

Data Flow Diagram. Data Flow Diagrams (DFDs)

Objectives After completion of study of this unit you should be able to:

SE 367 Software Engineering Basics of Software Engineering

Student Attendance Through Mobile Devices

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Entity / Activity Table for Causeway Cash Receipts System

Chapter 8 Approaches to System Development

Process/Workflow Analysis Quiz

System Requirements Specification (SRS) (Subsystem and Version #)

Systems Analysis Process Modeling (DFD) 1 of 10. Analysis 003

Software Development: The Waterfall Model

SOFTWARE REQUIREMENTS

LECTURE 1. SYSTEMS DEVELOPMENT

Karunya University Dept. of Information Technology

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

CA ERwin Process Modeler Data Flow Diagramming

(BA122) Software Engineer s Workshop (SEW)

2. Analysis, Design and Implementation

Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model

IT FOR BUSINESS AND FINANCE. BUSINESS PROCESSES and INFORMATION SYSTEMS

CS6403-SOFTWARE ENGINEERING UNIT-I PART-A

Transcription:

CSC 342 Semester I: 1425-1426H (2004-2005 G) Software Engineering Systems Analysis: Requirements Structuring Context & DFDs. Instructor: Dr. Ghazy Assassa Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 1

Objectives To introduce requirements structuring that follows Facts Finding Techniques: Introduce the following: System context diagram Data Flow Diagrams DFD s Entity Relationship diagram: E-R diagram Decision tables & Decision trees Natural Language Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 2

Comparison of DeMarco & Yourdan and Gane & Sarson DFD Symbol Sets Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 3

Components of a Context Diagram 3 Symbols: Process (single process) 0 System Name Entity (1 or many) Entity 1 Name Entity 2 Name Data Flow (many) Data Flow1 Name Data Flow2 Name Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 4

Context Diagram Sys Interface Entity 3 DF 1 Entity 1 Entity 2 DF 2 DF 3 DF 4 0 System Name DF 5 DF 6 Entity 4 Entity 5 Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 5

Context Diagram System Interface Bird s view of the system Context Diagram Shows the scope of the systemm system boundaries, external entities that interact with the system and the major information flows between the entities and the system Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 6

Context Diagram Sys Interface Example: Food Ordering System 0 Customer Customer order Receipt Food Processing System Food order Kitchen Management Reports Management Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 7

Context Diagram: Entity An Entity External Entity may be: A person interacting with the system (ex: Student, Customer). The person may be inside or outside the business unit under study Entity Name Another organization sending/receiving info (ex: Supplier, Department) Another Information system interfacing with the system under study (ex: Bank, GOSI) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 8

Context Diagram: Entity (cont.) External entity to the system Entity Name Source entity: provides data flows to the system Sink entity: receives data flows from the system Considered as a black box: We are not interested in what an entity will do with information or how it will do it Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 9

Context Diagram: Data Flow DF Data Flow DF Data in motion. Ex: Data on a an invoice Data on a payroll check Data Flow Name DF may include a structured group of data that move together, i.e. as a data structure. data structure details to be specified separately (not on the DFD) EX: Invoice data = ( Invoice date, customer name, sales person name, list of {item name, quantity, unit price}, invoice total, discount, invoice net amount ) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 10

Context Diagram: Data Flow DF DF may be: Data Flow Name Paper DF for manual systems Electronic format DF for automated systems Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 11

Data Flow Diagrams DFD : 4 Symbols Process (many processes) 1.0 Process # 1 verb name 2.0 Process # 2 verb name 7.0 Process # 7 verb name Entity (1 or many) Entity 1 Name Entity 2 Name Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 12

Data Flow Diagrams: Components of a DFD Data Flow (many) Data Flow1 Name Data Flow2 Name Data Store (1 or many) D1 Data Store1 Name D2 Data Store2 Name Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 13

DFD: Processes A Process may be: manual or computerised A Process: Represents actions on data (verb) Receives DF for processing Sends DF after processing May: Transform data (calculations) Store data Distribute data 1.0 Process # 1 verb name Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 14

DFD: Process Explosion / Decomposition / Partitioning A process: Has a number (ID) Has a verb describing the action on data A complex process may be exploded (decomposed) in many sub-processes process hierarchy 1.0 Process # 1 verb name Ex: Process 2.0 may be exploded into 3 sub-processes: 2.1, 2.2, 2.3 Process 2.2 may be exploded into 4 and sub-processes: 2.2.1, 2.2.2, 2.2.3, 2.2.4 And so on, till getting simple processes as leaves of the tree Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 15

DFD: Process Explosion / Decomposition 2.0 2.1 2.2 2.3 Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 16

DFDs Decomposition Tree Context Diagram Top DFD Level-0 P1 P2 P3 P4 P5 DFD Level-1 P2.1 P2.2 P2.3 DFD Level-2 P2.2.1 P2.2.2 P2.3.1 P2.3.2 Down Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 17

Balancing DFDs When a process is decomposed to a lower level you must conserve inputs and outputs of this process at both levels of decomposition Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 18

Balancing DFDs DF1 2.0 DF2 DF3 2.0 DF1 2.1 D1 2.2 2.3 DF2 DF3 Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 19

DFD: Data Store Data at rest in Files in folder (paper) D1 Data Store Name Computer files (one or more) Computer database Data may be written to a data store update Data Flow Name D2 Data Store Name Data may be read from a data store query Data Flow Name D3 Data Store Name Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 20

DFD: Data Store (cont.) Examples of Data stores: Customer info: customer_name, ID, address, fax, etc.. D1 Data Store Name Student info: student_name, ID, birth_date, address, major, GPA, etc.. For a relational databases, data stores will provide the normalised relations Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 21

Data Store Data is often stored for later use. sensor # report required 2 look-up sensor data sensor number sensor #, type, location, age type, location, age D1 sensor data Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 22

Data Flow Diagramming: Guidelines all icons must be labeled with meaningful names the DFD evolves through a number of levels of detail always begin with a context level diagram always show external entities in context level diagram always label data flow arrows do not represent process logic process logic is described separately using structured English, decision tables, decision trees Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 23

How to construct a context diagram Determine external entities to the system Source entities that provide data to the system Sink entities that receive data from the system Determine data flow (single, or group of data) from external source entities To external sink entities Draw system context diagram Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 24

Context Diagram: Example user video source processing request digital video processor NTSC video signal requested video signal monitor Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 25

Confusion: an entity or a process? Do not be confused by: Is some thing an entity or a process? This may occur when some data are processed in one place (office 1) and the processed data is moved to another place (office 2) for additional processing. Student Office 1/ Person 1 Process 1: Fill in required courses Office 2 / Person 2 Process 2: Verify perquisites Registration info Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 26

Confusion: an entity or a process? In DFDs: Not relevant: where data are physically processed (entity!!!) Who is processing data (entity!!!) But relevant: how data are processed within the system Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 27

Wrong DFD Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 28

Correct DFD Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 29

Context Diagram of a Food Ordering System (again) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 30

Level-0 DFD Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 31

Level-1 DFD of Process 1.0 from the Level-0 DFD Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 32

Level-1 DFD of Process 4.0 from the Level-0 DFD Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 33

Level-2 DFD of Process 4.3 from the Level-1 DFD for Process 4.0 Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 34

Basic rules that apply to all DFDs Inputs to a process are always different than outputs Objects always have a unique name In order to keep the diagram uncluttered, you can repeat data stores and sources/sinks on a diagram Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 35

DFD Rules Process A. No process can have only outputs (a miracle) B. No process can have only inputs (black hole) C. A process has a verb phrase label Data Store D. Data cannot be moved directly from one store to another E. Data cannot move directly from an outside source to a data store F. Data cannot move directly from a data store to a data sink G. Data store has a noun phrase label Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 36

DFD Rules: Source/Sink Source/Sink H. Data cannot move directly from a source to a sink I. A source/sink has a noun phrase label Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 37

DFD Rules: Data Flow Data Flow J. A data flow has only one direction of flow between symbols K. A fork means that exactly the same data goes from a common location to two or more processes, data stores or sources/sinks L. A join means that exactly the same data comes from any two or more different processes, data stores or sources/sinks to a common location M. A data flow cannot go directly back to the same process it leaves N. A data flow to a data store means update O. A data flow from a data store means retrieve or use P. A data flow has a noun phrase label Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 38

Another example Inventory Control System for the previous Food Processing Company Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 39

Inventory Control System: Context Diagram Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 40

Level-0 DFD Current Inventory Control System Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 41

Level-0 DFD New Inventory Control System Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 42

End of Process Modelling DFDs Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 43

Logic Modelling Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 44

Sys Modelling and Deliverables Done Now System Modelling Interface Modelling Process Modelling Logic Modelling (Process Logic) Data Modelling Deliverables Context diagram DFDs Structured English Decision Tables Decision Trees Other diagrams.. ER diagram Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 45

Logic Modelling Logic modelling: Representing internal structure & functionality of processes on a DFD DFDs do not show the logic inside the processes Logic modeling can also be used to show when processes on a DFD occur Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 46

Deliverables of Process Logic Modelling Structured English /Pseudocode/ / Equations /Narrative text Decision tables Decision trees Diagrams and/or charts State-Transition diagrams Sequence diagrams (OOAD) Activity diagrams (OOAD) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 47

Logic Modelling Structured English /Pseudocode/ Similar to programming language If conditions Case statements Example for process 3.0 of Level-0 DFD Current Inventory Control System Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 48

Level-0 DFD Current Inventory Control System (Again!) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 49

Process 3.0 Logic Modelling Structured English /Pseudocode/ Process 3.0: Generate Orders DO READ next Item Inventory record BEGIN IF IF Quantity-in-stock < minimum-reorder level THEN generate order for this item END IF UNTIL end of file Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 50

Logic Modelling: Decision Tables A table representation of the logic of a decision Specifies the possible conditions and the resulting actions Best used for complicated decision logic Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 51

Logic Modelling: Decision Tables If C1 AND C2 Then Action Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 52

Logic Modelling: Decision Tables Number of rules If C1 has n1 values C2 has n2 values... Ci has ni values. Cm has nm values Number of rules = n1x n2 x x ni x x nm = (ni) i=m i=1 Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 53

Logic Modelling: Decision Tables How to create a decision table Name the condition and values each condition can assume Name all possible actions that can occur List all rules Define the actions for each rule Simplify the table Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 54

Logic Modelling: Decision Tables Example: Decision table for a payroll system Employee type: 2 values Salaried S : By hour H : Hours worked: 3 values < 40 = 40 > 40 Number of rules = 6 Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 55

Logic Modelling: Decision Tables Example: Complete decision table for a payroll system Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 56

Logic Modelling: Decision Tables Example: SIMPLIFIED decision table for a payroll system Conditions Rules R1 R2 R3 R4 C1 Employee type S H H H C2 Hours worked - <40 40 > 40 A1 Pay base salary X A2 Calculate hourly wage X X X A3 Calculate overtime X A4 Produce absence report X Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 57

Logic Modelling: Decision Tree Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 58

Logic Modelling: Decision Tree A graphical representation of a decision situation Two elements: Nodes: Decision points ovals: Actions Read from left to right All possible actions are listed on the far right Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 59

Logic Modelling: Decision Tree Two choices per decision point Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 60

Logic Modelling: Decision Tree Multiple Choices per Decision Point Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 61

Logic Modelling: Comparison Criteria Structured English Decision Tables Decision Trees Determining Conditions and Actions Second Best Third Best Best Transforming Conditions and Actions into Sequence Best Third Best Best Checking Consistency and Completeness Third Best Best Best Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 62

Logic Modelling Logic Modelling End Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 63

Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 64

What is software? Software is: Computer programs + associated documentation Software products may be: Generic Software - developed to be sold to a range of different customers Bespoke (custom) Software - developed for a single customer according to given specification Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 65

What is Product Engineering? Producing a product Optimally Highest quality Minimum resources Under specified constraints Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 66

Software Engineering Concerned with developing: High quality software Within budget On time Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 67

Software costs Software costs often dominate system costs. System costs includes: Hardware cost Software cost people cost For systems with a long life, maintenance costs may be several times development costs Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 68

What is software engineering? Software engineering is concerned with all aspects of software production Software engineering is a modelling activity: Deals with complex systems through modelling Software engineering is a problem-solving activity: models are used to search for an acceptable solution Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 69

What is software engineering? (cont.) Software engineering is not a mathematical science: it relies on empirical methods Software engineering is a knowledge acquisition activity Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 70

What is the difference between software engineering and product engineering? Product engineering A prototype is realised & tested Thousands of items are manufactured Software engineering Every software is a prototype No manufacturing Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 71

Software engineers Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 72

What is the difference between software engineering and computer science? Computer science is concerned with theory and fundamentals Software engineering is concerned with the practicalities of developing useful software Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 73

What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of system engineering System engineers are involved in system specification, architectural design, integration and deployment Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 74

System Development Life Cycle SDLC Includes the following phases: Project Initiation Feasibility Study Analysis Design Implementation Coding + Documentation + Testing + Conversion + Training + Installation Maintenance Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 75

System Development Life Cycle SDLC Project Initiation New System Feasibility Study Analysis Design Coding Implementation Testing Conversion Training/Installation Maintenance System Death Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 76

System Development Life Cycle SDLC (cont.) Project Initiation Client faces a problem Needs for an improvement Sources of potential projects: Top management Steering committee Users : Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 77

System Development Life Cycle SDLC (cont.) Feasibility Study Alternative solutions Economic feasibility (cost) Technical feasibility (technology available) Schedule feasibility (delivery date) Human Resources feasibility ( New staff, Training) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 78

System Development Life Cycle SDLC (cont.) Analysis: Determine and structure system requirements Facts Finding / Requirement Elicitation / Domain Info / Requirements capturing Requirements Structuring into Diagrams & Text Natural language for text Context Diagram Data Flow Diagrams DFDs ER Diagrm Decision Trees / Decision tables Use Case Diagrams, Use Case description (for Object Oriented Analysis OOA ) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 79

System Development Life Cycle SDLC (cont.) Design: Create new System designs System Architecture design Database Design Normalised relations Input GUI design Graphical User Interface Forms Menus Icons Dialogue boxes, etc Output design Reports Queries Interface Design with Subsystems (modules) other external systems (bank sys, GOSI sys, ) Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 80

System Development Life Cycle SDLC (cont.) Implementation: Translate designs into a working system Coding Testing Documentation Data conversion (from old to new system) Training Installation Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 81

System Development Life Cycle SDLC (cont.) Maintenance: Evolving system Requirements WILL CHANGE to reflect dynamic environment of business Continuous process Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 82

What is a software process? A set of activities whose goal is the development or evolution of software Generic activities in all software processes are: Specification - what the system should do and its development constraints Development - production of the software system Validation - checking that the software is what the customer wants Evolution Maintenance - changing the software in response to changing demands Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 83

What is a model? An abstract representation of a system that enables us to answer questions about the system Used with too large, too small, too complex, or too expensive systems Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 84

What is a software process model? An abstract representation of a software process, presented from a specific perspective Examples of process perspectives are: Workflow perspective - sequence of activities Data-flow perspective - information flow Role/action perspective - who does what Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 85

Software Generic Process Models 4 Generic process models: 1. Waterfall model 2. Evolutionary development model 3. Formal transformation model 4. Integration from reusable components model Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 86

Costs of software engineering Roughly: 60% of costs are development costs, 40% of costs are testing costs. For custom software, maintenance costs often exceed development costs Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 87

Costs of software engineering (cont.) Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability Distribution of costs depends on the development model that is used Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 88

What are software engineering methods? Structured approaches to software development which include: Model descriptions Rules Descriptions of graphical models which should be produced Constraints applied to system models Recommendations Advice on good design practice Process guidance What activities to follow Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 89

What is CASE tool (Computer-Aided Software Engineering) Software system (tool) Provides automated support for software process activities. Upper-CASE Tools to support the early process activities of requirements and design Lower-CASE Tools to support late process activities such as programming, debugging and testing Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 90

Attributes of good software The software should deliver the required functionality and performance to the user The software and should be maintainable, dependable and usable Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 91

Attributes of good software (cont.) Maintainability Software should be designed keeping in mind that it will evolve to meet changing needs (changes in Business Environment) Reliability Software must be reliable Efficiency Software should not make wasteful use of system resources Usability Software must be usable by the users for which it was designed Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 92

Key challenges facing software engineering Challenges in coping with: Legacy systems Old, valuable systems that must be maintained and updated Heterogeneity Systems are distributed and include a mix of: Hardware, and Software written using different languages, and Different operating systems Delivery Pressure for faster delivery of software Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 93

Professional and ethical responsibility Software engineering involves wider responsibilities than simply the application of technical skills Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals Software Engineering CSC 342/Dr. Ghazy Assassa Systems Analysis: Requirements Structuring Slide 94