Introduction and Overview



Similar documents
SOFTWARE DEVELOPMENT PLAN

SoftwareCostEstimation. Spring,2012

What methods are used to conduct testing?

Software Development Life Cycle (SDLC)

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

Java Programming (10155)

Chapter 7 - Project Scheduling and Tracking

CHAPTER 24 SOFTWARE PROJECT SCHEDULING. Overview

Project management. Objectives. Topics covered. Organizing, planning and scheduling software projects DISCUSSION

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

ITS Projects Systems Engineering Process Compliance Checklist

(Refer Slide Time: 01:52)

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

How To Write Software

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

Project Planning and Project Estimation Techniques. Naveen Aggarwal

Software Engineering Reference Framework

This is the software system proposal document for the <name of the project> project sponsored by <name of sponsor>.

System Engineering Plan

Project Risk Management: IV&V as Insurance for Project Success

How To Integrate Software And Systems

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Software Project Management

SE351a: Software Project & Process Management

<name of project> Software Project Management Plan

Software Development Processes. Software Life-Cycle Models

Software Process for QA

Fundamentals of Measurements

Managing Small Software Projects - An Integrated Guide Based on PMBOK, RUP, and CMMI

PROJECT MANAGEMENT METHODOLOGY SECTION 3 -- PLANNING PHASE

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

ESA software engineering standards

IT/Software Project Management Core Functions

Time Management. Part 5 Schedule Development. Richard Boser

How To Develop Software

Partnering for Project Success: Project Manager and Business Analyst Collaboration

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

Program Lifecycle Methodology Version 1.7

Information Technology Engineers Examination. Information Security Specialist Examination. (Level 4) Syllabus

PROJECT AUDIT METHODOLOGY

Surveying and evaluating tools for managing processes for software intensive systems

The Role of the Software Architect

ICT Project Management. Software Project Planning By J. Ogutu

IT2404 Systems Analysis and Design (Compulsory)

Karunya University Dept. of Information Technology

The management of the projects with MS Project

1 INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN

Advanced Project Management Incl. MS Projects 5 DAYS

Investigate Requirements for Software Solutions

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

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

PROJECT SCOPE MANAGEMENT

Organising, planning and scheduling software projects. Software management distinctions

Chap 1. Software Quality Management

PROJECT MANAGEMENT PLAN <PROJECT NAME>

What is Project Scope Management? Project Scope Management Summary. Project Scope Management Processes

Lecture Slides for Managing and Leading Software Projects. Chapter 5: Project Planning Techniques

A Capability Maturity Model (CMM)

Effort and Cost Allocation in Medium to Large Software Development Projects

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

Exhibit F. VA CAI - Staff Aug Job Titles and Descriptions Effective 2015

CMSC 435: Software Engineering Course overview. Topics covered today

Project management. Organizing, planning and scheduling software projects

Requirements engineering

SWEBOK Certification Program. Software Engineering Management

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Contents. Today Project Management. Project Management. Last Time - Software Development Processes. What is Project Management?

Input, Output and Tools of all Processes

System Development and Life-Cycle Management (SDLCM) Methodology

Project Management Using Earned Value

How To Write An Slcm Project Plan

Project Management Concepts and Strategies

Advanced Software Engineering FYI!

2. Analysis, Design and Implementation

CDC UNIFIED PROCESS JOB AID

Project management. Organizing, planning and scheduling software projects. Objectives. Chapter 3. Chapter 3 Project Management. Learning Objective

Chapter 13: Program Development and Programming Languages

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Software Design Document (SDD) Template

Mastering Microsoft Project B; 3 days, Instructor-led

Software Project Models

JOURNAL OF OBJECT TECHNOLOGY

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

Release 1. BSBPMG410A Apply project time-management techniques

Certified Software Quality Engineer (CSQE) Body of Knowledge

Guide to applying the ESA software engineering standards to small software projects

Army ERP Services - DRAFT Labor Category Descriptions. Page 1 of 8

IT Project: System Implementation Project Template Description

CREDENTIALS & CERTIFICATIONS 2015

How To Validate Software

Prof. Paolo Nesi. Lab: DISIT, Sistemi Distribuiti e Tecnologie Internet

Continuous Risk Management Guidebook

Software Documentation

I. General Knowledge, Conduct, and Ethics (16 Questions)

Transcription:

Introduction and Overview Definitions. The general design process. A context for design: the waterfall model; reviews and documents. Some size factors. Quality and productivity factors. Material from: David Budgen (course text), and Richard Fairley, Software Engineering Concepts, McGraw-Hill.

Definitions and descriptions Software Engineering Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates. Software Design The fundamental problem is that designers are obliged to use current information to predict a future state that will not come about unless their predictions are correct. The final outcome of designing has to be assumed before the means of achieving it can be explored: the designers have to work backwards in time from an assumed effect upon the world to the beginning of a chain of events that will bring the effect about.

The general design process initial observations conduct experiments predictions from theory more systematic observations construct theory (model) (scientific analysis) devise experiments to test theory experimental observations experimental observations new predictions derive scientific principles conduct experiments

The general design process (cont d) external requirements clarify nature of requirements functional specification requirements specification analyze needs and build black box model of problem white box model (design) functional specification postulate a white box design solution validate solution (including use of prototypes) design plan list of mismatches implementation of design plan using a suitable form of software

Universal factors Concepts. Languages (one or two dimensional). Tools. Process (or methodology, recipe, algorithm). E.g.: 1. Building a house. 2. Building a compiler.

A general model of design requirements specification constraints: resources, organizational, experience, software reuse, etc. design process designer s decisions detailed design

Separating architecture from detailed design requirements specification constraints: resources, organizational, experience, software reuse, etc. (assignment one) design process architectural design design process detailed design designer s decisions (assignment two)

The waterfall life-cycle model analysis phase design phase implementation phase system testing maintenance phase Planning Requirements definition (verification) Architectural Detailed (verification) Coding Unit testing (verification) Integration Acceptance PFR SRR ADR DDR SCRs ATR PRR PPM Enhance Adapt Fix

Reviews and documents PFR (product feasibility review) SRR (software requirements review) ADR (architectural design review) DDR (detailed design review) SCR (source code review) ATR (acceptance test review) PRR (production release review) PPM (project post-morten) System Definition Project Plan Software Requirements Specification preliminary Verification Plan preliminary User s Manual Architectural Design Document Detailed Design Document Software Verification Plan User s Manual Walkthroughs and Inspections of the Source Code Acceptance Test Plan (all of the above) Project Legacy

Contents of system definition 1. Problem definition. 2. System justification. 3. Goals for the system and the project. 4. Constraints on the system and the project. 5. Functions to be provided by hardware, software and people. 6. User characteristics. 7. Development, operating and maintenance environments. 8. Solution strategy. 9. Priorities for system features. 10. System acceptance criteria. 11. Sources of information. 12. Glossary of terms.

Contents of project plan 1. Life-cycle model (e.g., terminology, milestones and work products). 2. Organizational structure (i.e., management structure, team structure, work breakdown structure and statements of work). 3. Preliminary staffing and resource requirements, including staffing and resource schedule. 4. Preliminary development schedule (e.g., CPM graph and Gantt charts). 5. Preliminary cost estimate. 6. Project monitoring and control mechanisms. 7. Tools and techniques to be used. 8. Programming languages. 9. Testing requirements. 10. Supporting documents required.

Contents of project plan (cont d) 11. Manner of demonstration and delivery. 12. Training schedule and materials. 13. Installation plan. 14. Maintenance considerations. 15. Method and time of delivery. 16. Method and time of payment. 17. Sources of information.

Contents of software requirements specification 1. Product overview and summary. 2. Development, operating and maintenance environments. 3. External interfaces and behavior (e.g., user display and report formats, user command summaries, high-level data flow diagrams, logical data sources and sinks, external data views and logical data dictionary) 4. Functional specifications. 5. Performance requirements. 6. Exception handling. 7. Early subsets and implementation priorities. 8. Foreseeable modifications and enhancements. 9. Acceptance criteria. 10. Design hints and guidelines. 11. Cross-reference index.

Contents of architectural design document 1. Data flow diagrams for the software product. 2. Conceptual specification of relevant data; specification of data sources. 3. Names, interface specifications and functional descriptions of subsystems and major modules. 4. Interconnection structure of the subsystems, major modules and data sources. 5. Timing constraints. 6. Exception conditions and handling.

Contents of detailed design document 1. Concrete internal design for relevant data. 2. Detailed algorithms. 3. Adaptations of existing code that will be reused. 4. Specific programming techniques required to solve unique problems. 5. Initialization procedures. 6. Detailed exception handling. 7. Task breakdown, including time estimates. 8. Integration test plan (e.g., test and schedule priority charts, CPM graphs and Gantt charts).

Contents of verification plan 1. Requirements to be verified. 2. Design verification plan. 3. Source-code test plan. 4. Test completion criteria. 5. Document verification plan. 6. Tools and techniques to be used.

Contents of user s manual 1. Introduction (i.e., product overview and rational, terminology and basic features, summary of display and report formats and outline of the manual). 2. Getting started (e.g., sign-on, help mode, sample run). 3. Modes of operation; commands, dialogues and reports. 4. Advanced features. 5. Command syntax and system options.

Contents of acceptance test plan 1. Requirements to be verified. 2. Test cases for each requirement. 3. Expected outcome of each test case. 4. Capabilities demonstrated by each test.

Contents of project legacy 1. Project description. 2. Initial expectations. 3. Current status of the project. 4. Remaining areas of concern. 5. Activities/time log. 6. Technical lessons learned. 7. Managerial lessons learned. 8. Recommendations for future projects.

Relative effort Observations Development/Maintenance: 40/60 A&D/Code&UT/Int&Acc: 40/20/40 Adapt/Enhance/Fix: 20/60/20 (development) Analyze and Design 16% Implement 8% Test 16% Adapt 12% Enhance 36% Fix 12% (maintenance)

Software size categories Number of Product size Category programmers Duration (LOC) Trivial 1 1 4 weeks 500 Small 1 1 6 months 1K 2K Medium 2 5 1 2 years 5K 50K Large 5 20 2 3 years 50K 100K Very large 100 1000 4 5 years 1M Extremely large 2000 5000 5 10 years >1M

How programmers spend their time Writing programs: 13% Reading programs and manuals: 16% Job communication: 32% Personal: 13% Miscellaneous: 15% Training: 6% Mail: 5% Bell Labs Study (1964, 70 programmers)

Quality and productivity factors Individual ability. Team communication. Product complexity. Product size. Choice of languages and notations. Systematic approaches. Stability of requirements. Level of reliability. Problem understanding. Required skills. Required training. Management skills. Facilities and resources. Available time.

Some quality attributes Portability. Reliability. Correctness. Robustness. Efficiency. Testability. Understandability. Modifiability. Accuracy. Ease of use. Accountability. Completeness.