Chapter 5 Practice: A Generic View

Similar documents
Chapter 14 Testing Tactics

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

CS487 Midterm Exam Summer 2005

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

Design. Introduction

UNIT 1-SOFTWARE PROCESS AND PROJECT MANAGEMENT

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CS6403 SOFTWARE ENGINEERING Year / Sem : II / IV Sub. Code &Subject : CS6403 SOFTWARE ENGINEERING QUESTION BANKWITH ANSWERS

CHAPTER 9 DESIGN ENGINEERING. Overview

Chapter 9 Design Engineering

Chapter : Analysis Modeling

BPS Suite and the OCEG Capability Model. Mapping the OCEG Capability Model to the BPS Suite s product capability.

Tools & Techniques I: New Internal Auditor

Chapter 5: Planning in Web Engineering

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

I am Stephen LeTourneau from Sandia National Laboratories Sandia s National Security Missions include: Nuclear Weapons Defense Systems & Assessments

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

Solutions Technology, Inc. (STI) Corporate Capability Brief

ITIL 4 The Next Evolution

Requirements to models: goals and methods

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

Scenario-Based Analysis. Scenario-Based Analysis (example) Form analysis

System context. Usage facet. IT system facet. Core activities

Module 7 TOGAF Content Metamodel

S1 Informatic Engineering

European Commission. Immigration Portal Development Case. Date: 08/06/2007 Version: 1.0 Authors: Revised by: Approved by: Public: Reference Number:

8 Designing classes. Main concepts to be covered. Software changes. Change or die. The Zuul Classes. World of Zuul

Redesigning a Website Using IA Principals

Software Testing Strategies. Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman

David Bernstein Five Development Practices Essential for Scrum Teams

History of object-oriented approaches

ITIL Practitioner Guiding Principles Checklist. Use with the 9 Guiding Principles Navigator. AXELOS.com

Device Discovery for Vulnerability Assessment: Automating the Handoff

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

Systems Analysis and Design in a Changing World, Fourth Edition

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques

Extreme programming XP 6

Getting Started Guide v1.13. See the big picture. Plan Accordingly.

User Task Flows. What are Task Flows? Why use task flows? bringing the user into the development process. Challenge:

Information System Architecture. Indra Tobing

VMWARE MICRO-SEGMENTATION AND SECURITY DEPLOY SERVICE

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

Best Practices for Collecting User Requirements

Dilbert Scott Adams. CSc 233 Spring 2012

Chapter 4 Objectives

General Framework for Secure IoT Systems

(Objective-CS605 Software Engeenring-II)

QUESTION BANK UNIT 1 SOFTWARE PROCESS AND PROJECT MANAGEMENT Part A

1: Introduction to Object (1)

Making the right decision on the golf course just got easier! Abstract

Designing Component-Based Architectures with Rational Rose RealTime

Why do architects need more than TOGAF?

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

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

UNIT-I Introduction of Object Oriented Modeling

for TOGAF Practitioners Hands-on training to deliver an Architecture Project using the TOGAF Architecture Development Method

USER-CENTERED DESIGN KRANACK / DESIGN 4

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Chapter 1 Intro to Software Engineering

LEARNING SOLUTIONS & CERTIFICATE PATHS

Introduction... 1 Part I: How ITIL Can Help You... 7

Chapter 8. Database Design. Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

OBJECT-ORIENTED MODELING AND DESIGN. Process Overview

Incremental development A.Y. 2018/2019

Design Concepts and Principles

Activity Guide - Will it Crash?

Analysis and Design with UML

Integrating TOGAF, Zachman and DoDAF Into A Common Process

CHAPTER 5 GENERAL OOP CONCEPTS

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Architectural Blueprint

DOWNLOAD PDF SIXTY MILESTONES OF PROGRESS,

What is Software Architecture

WHO SHOULD ATTEND? ITIL Foundation is suitable for anyone working in IT services requiring more information about the ITIL best practice framework.

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

Optimize tomorrow today.

Lecture 13 Introduction to Software Architecture

INTERNAL ASSESSMENT TEST III Answer Schema

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

350 Index 2005 GOAL/QPC

WHO/ITU National ehealth Strategy Toolkit. Joan Dzenowagis

Information Security Continuous Monitoring (ISCM) Program Evaluation

CHAPTER 6 DATABASE MANAGEMENT SYSTEMS

Chapter System Analysis and Design. 5.1 Introduction

Introduction to Software Engineering

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT. Software Engineering 2

IBM s approach. Ease of Use. Total user experience. UCD Principles - IBM. What is the distinction between ease of use and UCD? Total User Experience

(Python) Chapter 3: Repetition

RSA Solution Brief. Managing Risk Within Advanced Security Operations. RSA Solution Brief

EECS 492 Midterm #1. Example Questions. Note: Not a complete exam!

TOGAF days. Course description

Technical Writing Process An Overview

Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.

A ROADMAP TO STANDARDIZING THE IRIG 106 CHAPTER 10 COMPLIANT DATA FILTERING AND OVERWRITNG SOFTWARE PROCESS

Chapter 8. Achmad Benny Mutiara

Ch 1: The Architecture Business Cycle

Functional Design of Web Applications. (partially, Chapter 7)

THE ESSENCE OF DATA GOVERNANCE ARTICLE

Transcription:

Chapter 5 Practice: A Generic View Moonzoo Kim CS Division of EECS Dept. KAIST moonzoo@cs.kaist.ac.kr http://pswlab.kaist.ac.kr/courses/cs550-07 Spring 2007 1

What is Practice? Practice is a broad array of concepts, principles, methods, and tools that you must consider as software is planned and developed. It represents the details the the technical considerations and how to s that that are below the surface of the software process the things that you ll need to actually build high-quality computer software. Spring 2007 2

The Essence of Practice George Polya,, in a book written in 1945 (!), describes the essence of software engineering practice Understand the problem (communication and analysis). Plan a solution (modeling and software design). Carry out the plan (code generation). Examine the result for accuracy (testing and quality assurance). At its core, good practice is common-sense problem solving Spring 2007 3

Core Software Engineering Principles 1. Provide value to the customer and the user 2. KIS keep it simple! 3. Maintain the product and project vision 4. What you produce, others will consume 5. Be open to the future 6. Plan ahead for reuse 7. Think! Spring 2007 4

Software Engineering Practices Consider the generic process framework Communication Planning Modeling Construction Deployment Here, we ll identify Underlying principles How to initiate the practice An abbreviated task set Spring 2007 5

Communication Practices Principles Listen Prepare before you communicate Facilitate the communication Face-to to-face is best Take notes and document decisions Collaborate with the customer Stay focused Draw pictures when things are unclear Move on Negotiation works best when both parties win. Spring 2007 6

Communication Practices Initiation The parties should be physically close to one another Make sure communication is interactive An abbreviated task set Identify who it is you need to speak with Define the best mechanism for communication Establish overall goals and objectives and define the scope Get more detailed Have stakeholders define scenarios for usage Extract major functions/features Review the results with all stakeholders Spring 2007 7

Planning Practices Principles 1. Understand the project scope 2. Involve the customer (and other stakeholders) 3. Recognize that planning is iterative 4. Estimate based on what you know 5. Consider risk 6. Be realistic 7. Adjust granularity as you plan 8. Define how quality will be achieved 9. Define how you ll accommodate changes 10. Track what you ve planned Spring 2007 8

Planning Practices Initiation Ask Boehm s s questions Why is the system begin developed? What will be done? When will it be accomplished? Who is responsible? Where are they located (organizationally)? How will the job be done technically and managerially? How much of each resource is needed? Spring 2007 9

Planning Practices An abbreviated task set Re-assess project scope Assess risks Evaluate functions/features Consider infrastructure functions/features Create a coarse granularity plan Number of software increments Overall schedule Delivery dates for increments Create fine granularity plan for first increment Track progress Spring 2007 10

Modeling Practices We create models to gain a better understanding of the actual entity to be built Analysis models represent the customer requirements by depicting the software in three different domains: the information domain the functional domain the behavioral domain. Design models represent characteristics of the software that help practitioners to construct it effectively: the architecture the user interface component-level detail. Spring 2007 11

Analysis Modeling Practices Analysis modeling principles 1. Represent the information domain 2. Represent software functions 3. Represent software behavior 4. Partition these representations 5. Move from essence toward implementation Elements of the analysis model (Chapter 8) Data model Flow model Class model Behavior model Spring 2007 12

Design Modeling Practices Principles 1. Design must be traceable to the analysis model 2. Always consider architecture 3. Focus on the design of data 4. Interfaces (both user and internal) must be designed 5. Components should exhibit functional independence 6. Components should be loosely coupled 7. Design representation should be easily understood 8. The design model should be developed iteratively Elements of the design model Data design Architectural design Component design Interface design Spring 2007 13

Construction Practices Preparation principles: Before you write one line of code, be sure you: 1. Understand of the problem you re trying to solve (see communication and modeling) 2. Understand basic design principles and concepts. 3. Pick a programming language that meets the needs of the software to be built and the environment in which it will operate. e. 4. Select a programming environment that provides tools that will make your work easier. 5. Create a set of unit tests that will be applied once the component nt you code is completed. Spring 2007 14

Construction Practices Coding principles: As you begin writing code, be sure you: 1. Constrain your algorithms by following structured programming [BOH00] practice. 2. Select data structures that will meet the needs of the design. 3. Understand the software architecture and create interfaces that are consistent with it. 4. Keep conditional logic as simple as possible. 5. Create nested loops in a way that makes them easily testable. 6. Select meaningful variable names and follow other local coding standards. 7. Write code that is self-documenting. 8. Create a visual layout (e.g., indentation and blank lines) that aids understanding. Spring 2007 15

Construction Practices Validation Principles: After you ve completed your first coding pass, be sure you: 1. Conduct a code walkthrough when appropriate. 2. Perform unit tests and correct errors you ve uncovered. 3. Refactor the code. Spring 2007 16

Construction Practices Testing Principles 1. All tests should be traceable to requirements 2. Tests should be planned 3. The Pareto Principle applies to testing 4. Testing begins in the small and moves toward in the large 5. Exhaustive testing is not possible Spring 2007 17

Principles Deployment Practices 1. Manage customer expectations for each increment 2. A complete delivery package should be assembled and tested 3. A support regime should be established 4. Instructional materials must be provided to end-users 5. Buggy software should be fixed first, delivered later Spring 2007 18