Software Engineering (CSC 4350/6350) Rao Casturi

Similar documents
Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/29/2015

Software Engineering Fall 2014

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 08/27/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015

Software Engineering Fall 2014

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering Fall 2014

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

Sub Phase: High-Level Design. From Requirements Analysis to User Manual. System Design

Chapter 6 System Design: Decomposing the System

Products of Requirements elicitation and analysis. Chapter 6: System design: decomposing the system

Chapter 7, System Design: Addressing Design Goals

6. System Design: Decomposing the System

An Introduction to Software Architecture

Chapter 7, System Design: Addressing Design Goals

Architectural Blueprint

7. System Design: Addressing Design Goals

Chapter 7, System Design: Addressing Design Goals

Software Development Methodologies

CT41 (ALCCS) SOFTWARE ENGINEERING JUN 2015

Software MEIC. (Lesson 4)

Workshop 2: Function Point Analysis. Marlon Dumas

Chapter 6, System Design Lecture 2

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

An Introduction to Software Architecture

System Design I: System Decomposition

XVIII. Software Architectures

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Element: Relations: Topology: no constraints.

In this Lecture you will Learn: System Design. System Architecture. System Architecture

Chapter 5, Analysis: Dynamic Modeling

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam

International Function Point Users Group References: Capers Jones: Applied Software Measurement (1997) Estimating Software Costs (1998)

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

Workshop 2-3: Function Point Analysis. Dietmar Pfahl

System Design I: System Decomposition

CAS 703 Software Design

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

Chapter 7, System Design: II Addressing Design Goals

Analysis and Design with the Universal Design Pattern

Topic : Object Oriented Design Principles

Boundaries: The Undiscovered Territory

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Introduction to Software Engineering 10. Software Architecture

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

XIX. Software Architectures

Chapter 7 Addressing Design Goals

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

02 - Distributed Systems

Creating and Analyzing Software Architecture

Lecture 17: (Architecture V)

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman

Design Concepts and Principles

02 - Distributed Systems

WHAT IS SOFTWARE ARCHITECTURE?

E-Commerce. Infrastructure I: Computer Networks

Chapter 2, Modeling with UML, Part 2

Chapter 5, Analysis: Dynamic Modeling

Software Engineering

UML: Unified Modeling Language

The Road Map. SE203b: OO Design for Software Engineers. W8: OO Design Approach

UML Primer. -Elango Sundaram

Chapter 8, Object Design: Reusing Pattern Solutions

Software Architecture

(9A05803) WEB SERVICES (ELECTIVE - III)

Course 3 7 March

CHAPTER 9 DESIGN ENGINEERING. Overview

ICS 52: Introduction to Software Engineering

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

Server software accepts requests for data from client software and returns the results to the client

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Chapter 5, Analysis: Dynamic Modeling

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Object-Oriented Systems Analysis and Design Using UML

F O U N D A T I O N. OPC Unified Architecture. Specification. Part 1: Concepts. Version 1.00

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

ATTENTION TO COME/ISE 491/492 STUDENT

ACRONYMS AND GLOSSARY

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

Appendix A - Glossary(of OO software term s)

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Software Architectures. Lecture 6 (part 1)

Designing Procedural 4GL Applications through UML Modeling

10조 이호진 이지 호

CSE 70 Final Exam Fall 2009

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

Software Architecture

Software Architecture and Design I

CSCU9T4: Managing Information

Diseño y Evaluación de Arquitecturas de Software. Architecture Based Design Method

EI, EO, EQ QUESTIONS. Expected Result: The student should obtain a score of 90 percent.

ESE Einführung in Software Engineering!

Enterprise Architect Training Courses

Elevator Control System

Transcription:

Software Engineering (CSC 4350/6350) Rao Casturi

Recap 1 to 5 Chapters 1. UML Notation 1. Use Case 2. Class Diagrams 3. Interaction or Sequence Diagrams 4. Machine or State Diagrams 5. Activity Diagrams 2. Requirement Elicitation 1. Use Case, Initial Objects, Relationship between objects 2. Non-Functional Requirements 3. Requirement Analysis Document 3. System Analysis 1. Entity, Boundary and Control Objects 2. Analysis Object Models, Dynamic Object Models 3. Use case mapping, Associations, Aggregations, Attributes GSU: Software Engineering - CSC4350/6350 - Rao Casturi 2

Function Point Cost Model 3

Function Point Cost Model or Analysis (FPC) Developed by Alan Albrecht Of IBM 1979. FPC is a method used to measure various cost in a software application. FPC measure the functionality from the user point of view FPC is based on User Input and the Output expected by system FPC is a simple tool takes parameters to calculate the over all software cost 4

Why FPA? FPC is a tool which can determine the size of a developed or outsourced system by counting all the functions included in the system FPA can help in matching the functionality to the software application FPC can help in estimate cost and resources required for software development and maintenance of the software system It can help as a common factor for software cost comparison and complexity comparision GSU: Software Engineering - CSC4350/6350 - Rao Casturi 5

Steps involved in FPC Method Identify system boundary Boundary defines the functions included in the FPC Inquires to the system (External Inquiry) Users U s e r s Input Output SYSTEM (Internal Logic / Files) (ILF) External Files and other systems (External Interface Files) (EIF) 6

FPC Weighting Factor Estimate (UFP) EI EO EQ ILF EIF UFP Unadjusted Function Point Calculation Table 7

Unadjusted Function Point Calculation Table GSU: Software Engineering - CSC4350/6350 - Rao Casturi 8

FPC Rating Estimate of categories (VAF) Ratings Scale : 0 No 1 Incidental 2 Moderate 3 Average 4 Significant 5 - Essential VAF = [0.65 + 0.01*(sum of all category ratings)] Value Adjusted Factor Calculation 9

FPC Model Formula FPC = UAP * VAF FPC = (Grand Total FP) * [0.65 + 0.01*(sum of all category ratings)] 10

SYSTEM DESIGN GSU: Software Engineering - CSC4350/6350 - Rao Casturi 11

Requirements Analysis System Design Object Design Implementation Testing 12

System Design System Decomposition Migration from Analysis to System Design. Define Design Goals Design Initial Sub System Decomposition. Refine the Sub System to address the Design Goals. 13

System System Design Object Design Implementation 14

Activities of System Design This phase will produce the following 1. Design Goals 2. Software Architecture 3. Boundary Use Cases, Exceptions, hardware configurations Software Engineering -CSC4350/6350 - Rao Casturi 15

Design Goal: Design Goals come from Non-Functional Requirements. Trade Off decisions made. Sub System Decomposition is the bulk of the System Design. Developers divide the system into manageable parts to reduce complexity. Each Sub-System is assigned to a smaller teams. 16

Mapping Architecture to SW Engineering Item Architectural Concept SW Engineering Concept Components Room Subsystem Interfaces Doors Services Non-Functional Requirements Functional Requirements Living Area Residential House Response time Use Cases Costly Rework Moving Walls Change Subsystem Interfaces 17

Design Goals Continued Finalize the strategies for Hardware / Software Strategy Persistent Data Management Control Flow Access Control Policy Handling Boundary Conditions Source: OOSE-Bernd Bruegge & Allen H. Dutoit 18

What is a Subsystem? A subsystem is a replaceable part of the system with well-defined interfaces that encapsulates the state and behavior of its contained classes. To reduce the complexity of the Solution Domain, a System is divided into smaller systems called Subsystem. Subsystems are also Called Categories 19

More about Subsystems. Service : Is a related operations that share a common purpose. Define the Subsystem in terms of the services they provide. During this phase we define the Services and in the Object Design phase we develop the operations it will provide. 20

Services and Subsystem Interfaces Subsystem Interface : A set of operations of a subsystem that are available for other subsystems. Subsystem Interface includes Name of the operation Pass through Parameters and data type Return values High level behavior Object Design focus on the API (Application Programmer Interface) Minimize the information provided about the implementation. Should not reference about the internal data structure. Software Engineering -CSC4350/6350 - Rao Casturi 21

Categories and Category Interaction Diagrams (CID) Category is a collection of logically related Classes. Logically related Classes is a collection of Classes related through single inheritance. A collection of Classes related through aggregation, or a collection of Classes based on meaningful context. A Category should not be based on Functional capability unless it is Process Category or an Interface Category. A collection of Categories represents a functional area and is called a Domain in UML GSU: Software Engineering - CSC4350/6350 - Rao Casturi 22

Goal : Categories and Category Interaction Diagrams (CID) To Identify how the Categories interact or relate to implement a Use Case Category Interaction Diagram (CID) A graphical representation of the interactions between Categories required to satisfy, or implement a Use Case using the notation of CASE Tool UML world Interaction Diagram is any diagram that depicts interaction at the Instance Level, and can be either a Sequence Diagram or a Collaboration Diagram UML Interaction Diagram: A UML Interaction Diagram refers to both UML Sequence Diagram and UML Collaboration Diagram. They represent general behavior, specifically interactions between objects UML Sequence Diagram: Shows the collaboration required between objects (instances) Work Product: Produce a CID 23

Steps to create a CID Step 1: Establish Naming convention CID will be appended to the USE CASE Name UC16_Operator_Updates_Notional_Values_In_ DB_CID For Category Sequence Diagram it will be CSD Step 2 : Agree upon a Representation Mechanism (to produce) OMT Event Traces Jacobson Interaction Diagrams Booch Object Scenario Diagrams UML Sequence Diagram UML Collaboration Diagrams 24

Steps to create a CID Step 3: Agree upon Diagram Contents Include the Title of the Diagram Textual overview of the Use Case Exceptions GUI Classes Step 4: Number each Message Each Message on a CID needs a sequence Number as a part of the message of as a comment attached to the message Step 5: Comment each CID Step 6: Agree to Notation for Use Cases Using/Referencing other Use Cases Unique Name ($Use_Case) Use the Name of the Use Case as the name of the Message to the category 25

UC_16_Operator_Updates_Notional_Values_in_DB_ID Steps in the Use Case 1. Operator selects Update all button 2. Display the Update_All_View 3. Disable the Alarm 4. Operator enters values 5. If the OK button is selected then: 6. Start a transaction: 7-12 steps Enter values 13. Commit the transaction and 14. Enable the alarm and 15. Destroy the Update_All_View; 16. Else if the Cancel button selected, then 17. Enable the alarm and 18. Destroy the Update_All_View: Categories System_Boundry SEM_Desktop_View Update_All_View Alarm Living_Quarter Database $Use_Case 26

UC_16_Operator_Updates_Notional_Values_in_DB_ID Source: Use Cases Combined with Booch OMT UML Process and Products by Putnam and Charles 27

Services and Subsystem Interfaces Coupling Number of dependencies between two systems. Loosely coupled relatively independent. Impact analysis. Assembly connectors or Ball-and-Socket Connector Cohesion Number of dependencies within a subsystem. Unrelated objects low cohesion. 28

Coupling Example Student Information Display Class Registration Graduation Tracker Student Database 29

Modified Design to show loosely coupled systems Student Information Display Class Registration Graduation Tracker Request Translator Student Database 30

Cohesion Example Source: OOSE-Bernd Bruegge & Allen H. Dutoit 31

Refined Cohesion Source: OOSE-Bernd Bruegge & Allen H. Dutoit 32

Layers and Partitions 33

Layers and Partitions A hierarchical decomposition of a system yields an ordered set of layers. A layer is a grouping of subsystems providing related services, possibly realized using services from another layer. Closed Layer Architecture Each Layer can access only one layer immediately below. Source: OOSE-Bernd Bruegge & Allen H. Dutoit 34

Example of Closed Layer Example: the OSI (Open System Interconnection) closed architecture model. 1. The Physical layer - is the hardware interface with the network. 2. The DataLink layer responsible for transmitting data frame using the services from the Physical layer. 3. The Network transmitting and routing packages within the network. 4. The Transport responsible for reliably transmitting data from end to end. This is the layer seen by UNIX programmers/users when transmitting data over TCP/IP (Transmission Connection Protocol/Internet Protocol) sockets between processes. 5. The Session responsible for the initialization of a connection. 6. The Presentation performs data transformation such as byte swapping or encryption. 7. The Application the layer that is designed which may also consist of subsystem layers itself. Source: OOSE-Bernd Bruegge & Allen H. Dutoit Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 35

Example of Open Layer The lowest layer is provided by the operating system or by a windowing system, such as X11, and provides basic window management. AWT is an abstract window interface provided by Java to shield applications from specific window platforms. Swing is a library of user interface objects that provides a wide range of facilities, from buttons to geometry management. An Application usually accesses only the Swing interface. However, the Application layer may bypass the Swing layer and directly access AWT Openness of the architecture allows developers to bypass the higher layers to address performance bottlenecks Source: OOSE-Bernd Bruegge & Allen H. Dutoit 36

Architecture Styles 37

Repository Architectural Style: In the repository architectural style,subsystems access and modify a single data structure called the central repository. Subsystems are relatively independent and interact only through the repository. Control flow can be dictated either by the central repository or by subsystems. Example Database triggers on the data invoke peripheral systems or by the subsystems 38

Repository Architectural Style Source: OOSE-Bernd Bruegge & Allen H. Dutoit Software Engineering - Fall 2014 CSC4350/6350 - Rao Casturi 39

Model View Controller Classified into 3 different types: 1. Model subsystems responsible for maintaining domain knowledge. 2. View subsystems responsible for display to user. 3. Controller subsystems responsible for managing the sequence of interactions with user. This is also a type of repository architecture. It is used mostly in interactive systems, especially when multiple views of the same model are needed. 40

Model View Controller Design Pattern Model holds the domain knowledge (Business Rules). View holds the User input and display model. Controller holds the sequencing of the user inputs and acts as intermediate between Model and View. 41

Model View Controller Design Pattern Refresh USER Reques t View Controller Results Model Action Smart - Thin- DUMMY approach Initiator, Subscriber & Notifier Observer Design Pattern 42

Client Server Architecture In the client/server architectural style a subsystem, the server, provides services to instances of other subsystems called the clients, which are responsible for interacting with the user. The request for a service is usually done via a remote procedure call mechanism or a common object. Control flow in the clients and the servers is independent except for synchronization to manage requests or to receive results. Source: OOSE-Bernd Bruegge & Allen H. Dutoit 43

Peer-to-Peer Architecture Style A peer-to-peer architectural style is a generalization of the client/ server architectural style in which subsystems can act both as client or as servers, in the sense that each subsystem can request and provide services. The control flow within each subsystem is independent from the others except for synchronizations on requests. 44

Three-Tier & Four Tier Architecture In this style the subsystems are organized into three layers The interface layer includes all boundary objects which deal with end users. Example windows, forms, web pages etc. The application logic layer includes all control and entity objects, realizing the processing, rule checking, and notification required by the application. The storage layer realizes the storage, retrieval, and query of persistent objects. Source: OOSE-Bernd Bruegge & Allen H. Dutoit Source: OOSE-Bernd Bruegge & Allen H. Dutoit 45

Pipe and filter Architecture Pipe and filter architectural style the subsystems process data received from a set of inputs and send results to other subsystems via a set of outputs. The subsystems are called filters, and the associations between the subsystems are called pipes. Each filter knows only the content and the format of the data received on the input pipes, not the filters that Source: OOSE-Bernd Bruegge & Allen H. Dutoit 46

System Design Activities: Addressing Design Goals 47

Addressing Design Goals 1. Mapping Subsystems to Processors and Components 2. Identifying and Storing Persistent Data 3. Providing Access Control 4. Designing the Global Control Flow 5. Identifying Services 6. Identifying Boundary Conditions 7. Reviewing the System Design Model 48

Addressing Design Goals Source: OOSE-Bernd Bruegge & Allen H. Dutoit 49

1. Mapping Subsystem to Processes and Components UML Deployment Diagrams DDs are used to show the relationship among runtime components and nodes. Components: Self-contained entities that provide services to other components. (Eg: Web browsers, Web Servers etc) Node: Is a physical device or an execution environment in which components are executed. System: Composed of interacting run-time components that can be distributed among several nodes. A node can contain another node. 50

Example : Components and nodes 51

1.Mapping Subsystem to Processes and Components Many Systems run on more than one computer. High-Performance needs Multiple uses Selection of virtual machine Hardware mapping activity has significant impact on the performance and complexity of the system. Suggested approach is to perform it early in system design. 52

2. Persistent Data Store Flat Files: Storage abstractions provided by operating system. Data stored as a sequence of bytes. This is relatively low level and could enhance speed. However, data can be corrupted or/and lost easily. Should be used for very small applications that may not grow in size. Relational Database: Data stored in tables each column is an attribute and each row represents a data item as a tuple of attribute values. OO database: Provide similar services to relational databases, but stores data as objects and associations. It also provide inheritance and abstract datatypes. However, it is slower than relational database. 53

When to use flat files, relational databases, and object-oriented databases When should you choose flat files? Voluminous data (e.g., images) Temporary data (e.g., core file) Low information density (e.g., archival files, history logs) When should you choose a relational or an object-oriented database? Concurrent accesses Access at finer levels of detail Multiple platforms or applications for the same data When should you choose a relational database? Complex queries over attributes Large data set When should you choose an object-oriented database? Extensive use of associations to retrieve data Medium-sized data set Irregular associations among objects 54

3. Designing the Global Control Flow Control flow is the sequencing of actions in a system. Control flow is a design problem. There are 3 possible control mechanisms: Procedure-driven control: Operations wait for input whenever data is needed. Used mainly in systems written using procedural-languages. Event-driven control: A main loop, also waits for an external event. A main loop used. Useful for testing subsystems. Also the most commonly used. Threads: The system creates an arbitrary number of threads and run them concurrently. Each thread is run on the basis of procedure-driven. 55

1. Procedure-driven control: Operations wait for input whenever data is needed. Used mainly in systems written using procedural-languages. Source: OOSE-Bernd Bruegge & Allen H. Dutoit 56

2. Event-driven control: A main loop, also waits for an external event. A main loop used. Useful for testing subsystems. Also the most commonly used. Source: OOSE-Bernd Bruegge & Allen H. Dutoit 57

3. Threads-driven control: Concurrent variation of the procedure driven control flow Source: OOSE-Bernd Bruegge & Allen H. Dutoit 58

Identifying Services & Boundary Configuration Conditions Creation of the object and destroying of the object Start-up and Shutdown For each component add 3 uses cases Start, Shutdown and Configuration of the component Exception handling Notify the user when there is any error 59

Managing System Design System Design Document 1. Introduction 1.1 Purpose of the system 1.2 Design goals 1.3 Definitions, acronyms, and abbreviations 1.4 References 1.5 Overview 2. Current software architecture 3. Proposed software architecture 3.1 Overview 3.2 Subsystem decomposition 3.3 Hardware/software mapping 3.4 Persistent data management 3.5 Access control and security 3.6 Global software control 3.7 Boundary conditions 4. Subsystem services Glossary 60

System Design and Decomposition summary Subsystem decomposition describes the decomposition into subsystems and the responsibilities of each. This is the main product of system design. Hardware/software mapping describes how subsystems are assigned to hardware and off-the-shelf components. It also lists the issues introduced by multiple nodes and software reuse. Persistent data management describes the persistent data stored by the system and the data management infrastructure required for it. This section typically includes the description of data schemes, the selection of a database, and the description of the encapsulation of the database. Access control and security describes the user model of the system in terms of an access matrix. This section also describes security issues, such as the selection of an authentication mechanism, the use of encryption, and the management of keys. Global software control describes how the global software control is implemented. In particular, this section should describe how requests are initiated and how subsystems synchronize. This section should list and address synchronization and concurrency issues. Boundary conditions describes the start-up, shutdown, and error behavior of the system. (If new use cases are discovered for system administration, these should be included in the requirements analysis document, not in this section.) 61

Questions? GSU: Software Engineering - CSC4350/6350 - Rao Casturi 62

References Use Cases Combined with BOOCH, OMT UML Process and Products - Putnam P Texel, Charles B Williams Object-Oriented Software Engineering Using UML Patterns, and JAVA -Bernd Bruegge & Allen H. Dutoit Software Engineering 9th Edition - Ian Sommerville GSU: Software Engineering - CSC4350/6350 - Rao Casturi 63