Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997.
Design Concepts and Principles
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Chapter 13 Design Concepts and Principles
Design Phase What’s design?
Design Concepts And Principles Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Component-Level Design
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
1 SYSTEM and MODULE DESIGN Elements and Definitions.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
Nov. 14, 2007 Systems Engineering ä System ä A set or arrangement of things so related as to form a unity or organic whole. ä A set of facts, principles,
© Betty H.C. Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. Requirements.
Purpose of Requirements Analysis Process of discover, refinement, modeling, and specification o Bridge gap between system level SW allocation and design.
Lecture Nine Database Planning, Design, and Administration
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
Software Engineering CSE470 (Fall 2001) Instructors: Dr. B. Cheng (Sect. 1-3) Dr. W. McUmber (Sect. 4-6)
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Chapter 2 The process Process, Methods, and Tools
Cmpe 471 Computer Crime: Techniques and Countermeasures.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Requirements Analysis
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CSE 303 – Software Design and Architecture
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
Chapter 13 Design Concepts and Principles Software Engineering: A Practitioner's Approach, 5/e.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
ANKITHA CHOWDARY GARAPATI
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
11 Software Design CSCU 411 Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Advanced Software Engineering Dr. Cheng
Software Design.
Chapter 1 The Systems Development Environment
How Systems are Developed
Software Engineering CSE470 (Fall 2000)
Chapter ? Quality Assessment
Lecture 9- Design Concepts and Principles
Software Design Mr. Manoj Kumar Kar.
For University Use Only
Software Quality Engineering
Chapter 1 The Systems Development Environment
Software Life Cycle Models
CIS 375 Bruce R. Maxim UM-Dearborn
Object-Oriented Design
Lecture 9- Design Concepts and Principles
Chapter 1 The Systems Development Environment
Presentation transcript:

Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired system functions Analyze them Allocate functions to individual system elements Systems Analyst (computer systems engineer) Start with customer-defined goals and constraints Derive a representation of function, performance, interfaces, design constraints, and information structure That can be allocated to each of the generic system elements (i.e., Software, Hardware, People, database, documentation, procedures) Focus on WHAT, NOT how.

Software Engineering CSE470: Systems Engineering 36 Criteria for System Configuration: Technical Criteria for allocation of function and performance to generic system elements: Technical Analysis: (existence of necessary technology, function and performance assured, maintainability) Environmental Interfaces: (proposed configuration integrate with external environment, interoperability) Off-the-shelf options must be considered. Manufacturing evaluation: (facilities and equipment available, quality assured?)

Software Engineering CSE470: Systems Engineering 37 Criteria for System Configuration: Business Issues Criteria for allocation of function and performance to generic system elements: Project_Considerations: (cost, schedules, and risks) Business_Considerations: (marketability, profitability) Legal_Considerations: (liability, proprietary issues, infringement?) Human issues: (personnel trained? political problems, customer understanding of problem)

Software Engineering CSE470: Systems Engineering 38 Hardware and Hardware Engineering Characteristics: Components are packaged as individual building blocks Standardized interfaces among components Large number of off-the-shelf components Performance, cost, and availability easily determined/measured Hardware configuration built from a hierarchy of "building blocks."

Software Engineering CSE470: Systems Engineering 39 Hardware Engineering Three phases to system engineering of hardware: Development Planning and requirements analysis:  best classes of hardware for problem,  availability of hardware  type of interface required  identification of what needs to be designed and built Establish a Plan or "road map" for design implementation  May involve a hardware specification.  Use CAE/CAD to develop a prototype (breadboard)  Develop printed circuit (PC) boards  Manufacturing of boards

Software Engineering CSE470: Systems Engineering 40 Software and Software Engineering Function may be the implementation of a sequential procedure for data manipulation Performance may not be explicitly defined (exception is real-time systems) Software element of computer-based system consists of two classes of programs, data, and documentation Application_Software:  implements the procedure that is required to accommodate information processing functions System Software:  implements control functions that enable application software to interface with other system elements

Software Engineering CSE470: Systems Engineering 41 Three high-level phases of Software Engineering Definition phase: Software planning step Software Project Plan  scope of project,  risk,  resource identification  cost and schedule estimates Software Requirements Analysis Requirements Specification  System element allocated to software is defined in detail.  Formal information domain analysis to establish models of information flow and structure (expand to produce specification)  Prototype of software is built and evaluated by customer  Performance requirements or resource limits defined in terms of software characteristics Definition and Requirements must be performed in cooperation

Software Engineering CSE470: Systems Engineering 42 Third Phase of Software Engineering Development Phase: Translate set of requirements into an operational system element  Design Design Specification  Coding (appropriate programming language or CASE tool) Should be able to directly trace detail design descriptions from code. Verification, release, and maintenance phase: Testing software to find maximum number of errors before shipping Testing plan Prepare software for release Quality Assurance Maintain software throughout its lifetime

Software Engineering CSE470: Systems Engineering 43 Structured Design: Design Issues Modularity Criteria: Decomposability: decompose large problem into easier to solve subproblems Composability: how well modules can be reused to create other systems Understandability: how easily understood without other reference info Continuity: make small changes and have them reflected in corresponding changes in one or a few modules Protection: architectural characteristic to reduce propagation of side effects of a given error in a module.

Software Engineering CSE470: Systems Engineering 44 Design Issues Basic Design Principle: Linguistic modular units: correspond to syntactic units in implementation language Few interfaces: minimize the number of interfaces between modules Small interfaces (weak coupling): minimize amount of info moving across interfaces Explicit interfaces: when modules do interact, should be in obvious way Information hiding: all info about module is hidden from outside access

Software Engineering CSE470: Systems Engineering 45 Design Heuristics Evaluate "First-cut" program structure Reduce coupling: Improve cohesion Use exploding: common process exists in 2 or more modules Use imploding: if high coupling exists, implode to reduce control transfer, reference to global data, and interface complexity Minimize Structures with high fan-out ; Strive for Fan-in as depth increases Keep scope effect of a module within scope of control of that module effect of module should be in deeper nesting Evaluate module interfaces: Reduce complexity Reduce redundancy Improve consistency

Software Engineering CSE470: Systems Engineering 46 Design Heuristics (cont’d) Define predicatable functions for modules, but not too restrictive: Black box modules are predictable Restricting module processing to single subfunction (high cohesion) High maintenance: if randomly restrict local data structure size, options within control flow, or types of external interface "Single-entry-single-exit" modules: Avoid "Pathological Connections" Enter at top, exit at bottom Pathological connection: entry into middle of module Package SW based on design constraints and portability requirements Assemble SW for specific processing environment Program may "overlay" itself in memory reorganize group modules according to degree of repetition, access frequency, and interval of calls Separate out modules only used once.

Software Engineering CSE470: Systems Engineering 47 Design Postprocessing After Transaction or transform analysis: complete documentation to be included as part of architectural design Processing narrative for each module Interface description for each module Definition of local and global data structures Description of all design restrictions Perform review of preliminary design "optimization" (as required or necessary)

Software Engineering CSE470: Systems Engineering 48 Design Optimization Objectives: Smallest number of modules (within effective modularity criteria) Least complex data structure for given purpose Refinement of program structure during early design stages is best Time-critical applications may require further refinements for optimizations in later stages (detailed design and coding)