29
March 17, 2022 1 March 17, 2022 March 17, 2022 Azusa, Azusa, CA CA Sheldon X. Liang Ph. D. Software Engineering Software Engineering in CS in CS at at APU APU Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/ CS 480 Software Engineering II CS 480 Software Engineering II

May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

Embed Size (px)

Citation preview

Page 1: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20231

April 18, 2023April 18, 2023 Azusa, CAAzusa, CA

Sheldon X. Liang Ph. D.

Software Engineering Software Engineering in CS in CS at at APUAPU

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

CS 480 Software Engineering IICS 480 Software Engineering II

Page 2: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20232

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

CS 480 (SE)CS 480 (SE)2 2 vs. Software Engineeringvs. Software Engineering

Page 3: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20233

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What is a system What is systems engineering What is systems engineering process What we learn from systems engineering

Break down: Problem Definition (PRD)

Model&Interface: Problem Design (SDD)

Unit coding: Programming (SPP)

Put-together: Integration (SIP)

What we are going to do with DFD OT is the key to Software Construction

Page 4: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20234

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What is a systemComponents - A purposeful collection of inter-related components working together to achieve some common objective.

External Entities - A system may include software, mechanical, electrical and electronic hardware and be operated by people.

External Dependencies - System components are dependent on other system components

Collaboration - The properties and behavior of system components are inextricably intermingled

problem requirements definition: identification of data & operation

Page 5: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20235

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What is systems engineering

Systems Engineering (SE) is an interdisciplinary field of engineering, that focuses on the development and organization of complex artificial systems.

Systems Engineering integrates other disciplines and specialty groups into a team effort, forming a structured development process that proceeds from concept to production to operation and disposal.

Systems Engineering considers both the business and the technical needs of all customers, with the goal of providing a quality product that meets the user needs

Structured development process: Analysis vs Synthesis

Page 6: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20236

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What is systems engineering process

Page 7: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20237

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What we learn from systems engineering

Break down: Problem Definition (PRD)

Model&Interface: Problem Design (SDD)

Unit coding: Programming (SPP)

Put-together: Integration (SIP)

Page 8: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20238

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What we learn from systems engineering

Page 9: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 20239

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What we learn from systems engineering

VV

Page 10: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202310

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What we learn from systems engineering

VVFrom Conceptual to Complete

From break-down to put-together

Software Construction

Page 11: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202311

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What we learn from systems engineering

VRequirement Analysis

Functional Analysis/Allocation

Integration / Synthesis

Page 12: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202312

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What we learn from systems engineering

VRequirement Analysis

Functional Analysis

Functional Allocation

Problem Definition (PRD)-- Identify external entities-- identify major components -- identify links (dataflow)

Problem Design (SDD)-- functional allocation -- activities & interface-- identify further components -- identify links

PRD & SDD

Page 13: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202313

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with DFD

VV

Page 14: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202314

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with DFD

V

Page 15: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202315

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with DFD

SRS:-- External Entities Customer Keypad Card Reader Control System Customer Display Printout Dispenser Cash Dispenser

-- Functional Level-0 Auto Teller System

Page 16: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202316

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with DFD

VSRS (Refined):-- External Entities-- Functional Level-1 Receive operator command Verify PIN from card Display customer options Prepare command Update display Prepare message Prepare printout Mange withdrawal

Page 17: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202317

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with DFD

VSDD (description):The CheckPIN procedure handles the verification of the customer's Personal Identification Number (PIN) using data retrieved from the card's magnetic strip. The procedure invites the customer to enter their PIN using the keypad. If this does not match the PIN stored on the card, a limited number of retries is permitted, after which the card is confiscated as a security precaution. If the correct PIN is entered, the Services procedure is called.

Page 18: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202318

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with DFD

VSDD (pseudo-code):PROCEDURE CheckPINCONSTANTS MAXPINS IS 3VARIABLES PINCounter IS NUMBERBEGIN read data from card set PINCounter to zero LOOP UNTIL PINCounter is equal to MAXPINS input PIN from customer keypad IF entered PIN matches card PIN THEN EXITLOOP ENDIF add 1 to PINCounter ENDLOOP IF PINCounter is equal to MAXPINS THEN confiscate customer's card ELSE CALL PROCEDURE Services ENDIFEND CheckPIN

Page 19: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202319

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering

What we’re going to do with DFD

Problem Requirements Definition (PRD)

PRD0 = Major_Operation + ∑ External_entities

PRD* = ∑ Functional_allocation (tasks) + ∑ Dataflows

Software Design Document (SDD)

SDD = ∑ Functional_Description (strategic psuedo-code)

Software Project Plan

SPP = ∑ Scheduled Implementation (coding & testing plan)

Page 20: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202320

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with DFD

Data Pool

Op1 Fun2 Op3 Fun4

Program = DataStructure + Algorithm:/* Data Pool */ … …void Op1 (… …) {}int Fun2 (… …){}void Op3 (… …){}float Fun4 (… …){}

int main (){ … …}

Page 21: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202321

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering What we’re going to do with OOA and OOD

Data Pool

Op1 Fun2 Op3 Fun4

// Program=DataStructure + Algorithm:Class CLS1Public void Op1 (… …) { … } int Fun2 (… …) { … }private /* Data Pool */ … …}

Class CLS2public void Op3 (… …) { … } float Fun4 (… …) { … }Private /* Data Pool */ … …}

Page 22: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202322

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering OT is the key to Software Construction

Object Technology is a widely-used approach to solving the problems of software construction. It involves the encapsulation of functionality and associated data as objects, and the classification of those objects into a hierarchy of classes. This makes it easier to control complexity, and encourages the development of flexible, robust, and re-usable components.

Page 23: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202323

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering OT is the key to Software Construction

Object-Orientation

Object-Oriented Design

Object-Oriented Programming

Distributed Objects

Design Patterns

Page 24: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202324

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering OT is the key to Software Construction

Object-Orientation

Object-Oriented Design

Object-Oriented Programming

Distributed Objects

Design Patterns

It takes a big picture approach to programming and design, rather than dwelling on language-specific details, and serves as a framework in the Object Technology theme.

Page 25: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202325

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering OT is the key to Software Construction

Object-Orientation

Object-Oriented Design

Object-Oriented Programming

Distributed Objects

Design Patterns

standard techniques for the specification of software. This is based around a carefully-chosen subset of the UML (Unified Modeling Language), and places the techniques in a formal software engineering context.

Page 26: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202326

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering OT is the key to Software Construction

Object-Orientation

Object-Oriented Design

Object-Oriented Programming

Distributed Objects

Design Patterns

This refers to the concepts and principles of object-oriented programming: 1. objects, methods, interfaces, messages, events, and threads.

2.some knowledge of the notations of the Unified Modeling Language (UML).

Page 27: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202327

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering OT is the key to Software Construction

Object-Orientation

Object-Oriented Design

Object-Oriented Programming

Distributed Objects

Design Patterns

This is about object-oriented programming in the large:1. distribution of computation across remote servers. 2. software components: independent, self-contained units of software with tightly-specified interfaces, capable of late integration. 3. interoperability between components implemented in different languages and on different platforms.

Page 28: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

April 18, 202328

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering OT is the key to Software Construction

Object-Orientation

Object-Oriented Design

Object-Oriented Programming

Distributed Objects

Design Patterns

This is advanced structure and behavior of object-oriented systems, covering both design and programming. It is based around the notion of a design pattern: an abstraction of a proven solution to a recurring problem in a specific context in system design. The applicability of these ideas is not restricted to object-oriented languages, This needs considerable experience in OOD and OOP programming.

Page 29: May 24, 2015 1 May 24, 2015May 24, 2015May 24, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,

Thank you very much!

Questions?

April 18, 202329

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Software Engineering Software Engineering in CS in CS at at APUAPU

(SE)(SE)22: System Engineering vs Software Engineering: System Engineering vs Software Engineering