The Software Process. Software Process Activities. Functional Specification



Similar documents
IT3205: Fundamentals of Software Engineering (Compulsory)

Karunya University Dept. of Information Technology

What is a life cycle model?

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Introduction to Software Engineering: Project Management ( Highlights )

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Plan-Driven Methodologies

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

Software Life Cycle Processes

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Towards Collaborative Requirements Engineering Tool for ERP product customization

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

SOFTWARE PROCESS MODELS

IV. Software Lifecycles

Chapter 3. Technology review Introduction

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

CS4507 Advanced Software Engineering

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

A Review of an MVC Framework based Software Development

The most suitable system methodology for the proposed system is drawn out.

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

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Development Process

Noorul Islam College of Engineering M. Sc. Software Engineering (5 yrs) IX Semester XCS592- Software Project Management

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

Supporting Workflow Overview. CSC532 Fall06

Software Development Process

Software Engineering Question Bank

(Refer Slide Time: 01:52)

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Development Methodologies

Appendix 2-A. Application and System Development Requirements

CHAPTER. Software Process Models

SAMPLE RESUME FORMAT

11 Tips to make the requirements definition process more effective and results more usable

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

CS6403-SOFTWARE ENGINEERING UNIT-I PART-A

An introduction to the benefits of Application Lifecycle Management

Performance Testing Uncovered

Web Application Development Process

To introduce software process models To describe three generic process models and when they may be used

Frank Tsui. Orlando Karam. Barbara Bernal. State. University. Polytechnic. Ail of Southern JONES & BARTLETT LEARNING

Requirements Definition and Management Processes

Software Lifecycles Models

2. Analysis, Design and Implementation

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

Basic Unified Process: A Process for Small and Agile Projects

Classical Software Life Cycle Models

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

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Chapter 4 Software Lifecycle and Performance Analysis

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Application of software product quality international standards through software development life cycle

Redesigned Framework and Approach for IT Project Management

How To Design An Information System

Software Process and Models

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

THE APPLICATION OF THE PARETO PRINCIPLE IN SOFTWARE ENGINEERING.

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Surveying and evaluating tools for managing processes for software intensive systems

Managing TM1 Projects

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software Testing Interview Questions

Business Analysis with Financial concepts

Object-Oriented Systems Analysis and Design

Software Development Life Cycle & Process Models

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Using Rational Software Solutions to Achieve CMMI Level 2

Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Product Development Best Practices

Chapter 7: Software Engineering

Software Life Cycle. Management of what to do in what order

A Software Development Platform for SOA

How To Understand The Software Development Lifecycle

CDC UNIFIED PROCESS PRACTICES GUIDE

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Introduction to Software Engineering. Week 1

What CMMI Cannot Give You: Good Software

General Problem Solving Model. Software Development Methodology. Chapter 2A

How To Develop A Telelogic Harmony/Esw Project

Business Analysis From Yes-M Systems LLC Length: Approx 7 weeks/55 hours Audience: Students with or without IT experience or knowledge Student

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Software Configuration Management. Context. Learning Objectives

How Rational Configuration and Change Management Products Support the Software Engineering Institute's Software Capability Maturity Model

Software Project Models

SOFTENG250FC: Introduction to Software Engineering

Application Lifecycle Management: Marriage of Business Management with Software Engineering

WebSphere Business Modeler

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

The Software Lifecycle. Software Lifecycles

Transcription:

The Software Process Step and procedures executed by a software organization during the development of software Not a linear sequence of steps Many activities occur simultaneously or in random order Organizations often continually improve and change their software processes Software Process Activities Requirements Analysis and Definition System Design Prototyping Implementation and Coding Unit Testing Integration Testing System Testing (Alpha) Acceptance Testing (Beta) Help and Manual Generation Release Maintenance Functional Specification Formal document generated after a requirements analysis. Contains a detailed list of the functionality required for the system being built. Is a contract between the client and developers which states what functionality the end system will have. Only technical with respect to domain knowledge associated with the software product s purpose. 1

Sample Requirements Delivery Schedule Performance Deployment Configurability/Adaptability Portability Reliability Usability (User Interface Features) User Interface Standards System Functions Maintainability Coding Standards Functional Specification There should be no coupling between the functional specification and the design specification. The functional spec should be concerned with describing the functionality. Functional specification should decouple details of how the system is to be implemented. In the functional specification phase the customer should not think in design terms. Design Specification Formal document which describes how the features described in the functional specification document are to be implemented. Design Phases High level architectural design Detailed Design (Decomposition) object or module based Interleaved Design testing 2

Computer Aided Software Engineering (CASE) Tools (File) Version Management Tools Aka Source Code Control Supports multiple developers working on same code base Supports ability to track a module through it s development Supports software releases by tagging file versions Most tools store differences between file versions. Web interfaces Version Management Tools Rational ClearCase PVCS Version Manager Microsoft Visual SourceSafe CVS - Concurrent Versions System See this link: http://www.iac.honeywell.com/pub/tech/c M/CMTools.html Software Engineering Tools Feature Tracking Tools Track System Requirements Track System Change Requests (Critical Incidents, aka bugs ) Can associate issue with source files, classes (integration with version management tools.) Responsibility for software requirements can be assigned to specific team members Priority of issues can be assigned and tracked 3

Feature Tracking Tools Any database Intersolv: PVCS Tracker Rational: ClearQuest Elsinore: Visual Intercept Integrates with Microsoft SourceSafe Specification/Design Tools Allow for system modeling and design Support diagramming in a standard notation such as UML Support code generation from models Specification/Design Tools supporting UML! " #%$'& ()+*+,-.(+/0 123,451& #76 *8 8 )9: :<;';';= (?>@+(5-<1>2<;=-3A+BC:3D FE G HIJK3 LMN! " #7O A>+1+/ 1& #76 *8 8 )9: :<;';';= -.(2<1;G,2<1= -<ABC:<D FE K J P J! " #%Q'R.S 1-38 T1(BPU $G& A+V5>+WNA& X?23UT1+& & (+, 5 #76 *8 8 )9: :<;';';= -.(Y15+512<AZ 8 = -<ABC:<D [H \ P N N! " #7](2<Y]+^M](2<YQG_`<]aT #76 *8 8 )9: :<;';';= 1238, = -<ABC:<D F! EcbedfE LJgh+< i! " #7j1(>+2<8 (+& 8 Ua(8 (/ Y23, 2 #76 *8 8 )9: :<;';';=,-<A5-<ABI)= -<ABG:3D 4

Œ Œ Œ Œ Œ Specification/Design Tools supporting UML F! + E g! " #7k3,@1O'A>1+/+l+mnP^:3oN]>, 8, A5 #76 *8 8 )9: :<;';';=, 5?8 1+/ /,-<A& )= -<ABG:3D F! dcchpcbeq?rs! " #tm / / 14&, 2el1&, 12<U m )+)+O'(2.8 1&c0123, 451& #76 *8 8 )9: :<;';';=, 5?8 1& 2<A+/@ = -<ABC:<D [q?uv wi! " #7]+& ;x, 5 #76 *8 8 )9: :<;';';= /A4,-<;GA+& X?2= -<ABG:3D [y q?! dcz'{ Ki " #7nk.mT} ~ Osn3(& (>, 4B n/ V2 #76 *8 8 )9: :<;';';= )/(8, 5VB= -<ABG:3D [ygw J M K3 LMN! " # l+y+2<8 1B m& -?*, 8 1-38 Ulm:_n^N(5> # l+m:3q'r.s 1-<8 m & -?*+,8 1-.8 #76 *8 8 )9: :<;';';= )A)X, 5= -3A+BC:3D Specification/Design Tools supporting UML ƒp. E gc" #7^(8, A5(+/^A2<1 Z A&, 2?V(/_(23,- #76 *8 8 )9: :<;';';= & (8,A5(+/ = -<ABC:<D ƒpc J ME gc" #7jQcW #76 *8 8 )9: :<;';';= &,@+1& 8 A5= -<ABC:<D Hq+HE ic P N N! " # l ]+k3]atm]+58 1& )+&, 2<1 #76 *8 8 )9: :<;';';= 2.1/ 1?-38 2.8 = -<ABC:<D LM <dc ˆ G! + L\. JK? LMI! " #%a AB 5, 8 YP, 23V(+/ & (BP1?;GA& X #76 *8 8 )9: :<;';';= 2?5, Š V2<(= -<ABG:3D. #7]+5(+R+/ 1& #76 *8 8 )9: :<;';';= 2<AZ 8 / (R+5(= -<ABC:3D Specification/Design Tools supporting UML laz 8 ;G(& 1 Q'51Ik<8 >= %Ž < 3 < C. +š+ œ +ž Ÿ. +. 3 3 3. l8 1+& /, 54NlAZ 8 ;G(+& 1P} 5-= ª.«x? 3 3 Ÿ. +.? ±² 3 3. l+yr(2<1 } 5-= ³.. 3. Ž+ µ < ² < 3 Ÿ. + 3.?. 3. Œ T1 +(2x} 52<8 & VBP15?8 2elAZ 8 ;G(+& 1 %š? G 3 < 3 Ÿ. + ² 3. 3., 23, A5 laz 8 ;'(& 1xTAA/ 2x} 5-= ² ² 3 x¹ 3²±º3 3 Ÿ. +»?² ² 3 3. 3., 23, A a A& )= ² ² C³3. < ² 3 3?± Ÿ. +»?² ²? 3. 5

Popular Design Tools Support UML notation Rational Rose Microsoft Visual Modeler Microsoft Visio UML Overview A standard notation for Views Diagrams Model elements» General mechanisms Views Used to describe a system A single graph can t describe all the different aspects. Functional Structure, interaction between components Nonfunctional Performance, reliability, deployment Organizational Work organization 6

Views Use-case view System as perceived by the end users Logical view Structural description Component view Division of work, dependencies between code modules Concurrency view For describing synchronization and communication aspects of a system Deployment view Describing how a system is deployable Use-Case Diagram Class Diagram Object Diagram State Diagram Sequence Diagram Collaboration Diagram Activity Diagram Component Diagram Deployment Diagram Diagrams Other Software Tools Automated testing tools Segue Quality Works Make/Build tools Metrics tools 7

A Basic Software Process System Design and Prototyping Implementation Requirements Analysis and Definition System Testing Software Process Models Waterfall Model Rapid Prototyping Model Spiral Model Build and Fix Model Incremental Model Waterfall Model Requirements Gathering Functional Specification Design Specification Implementation (coding) Unit/Integration Testing System and Acceptance Testing Delivery and Maintenance 8

Rapid Prototyping Model Develop Prototype Functional Specification Design Specification Implementation (coding) Often involves extending the prototype instead of recoding Unit/Integration Testing System and Acceptance Testing Delivery and Maintenance Spiral Model Incremental Model Requirements Gathering Functional Specification Design Implementation Unit/Integration Testing System Acceptance Testing Software Release 9

Software Processes and your Career As good Software Engineers you should strive to: Seek employment at organizations with higher process maturity Gaining experience at such organizations can help you understand how to build a quality process Seek to improve the maturity of the software process employed by your organization Software Processes and your Career Organizations with poor Software Processes will fail to deliver quality software on time. Example: Internet Startups Just because these companies are working in internet time, doesn t mean that they can ignore the rules of software development. If startups fail to have a mature software process they will fail. Capability Maturity Model (CMM) Software Engineering Institute (SEI), Carnegie-Mellon University Method for categorizing the maturity and quality of a software process used by software development organizations 10

Capability Maturity Model (CMM) Level 1: Initial Level Ad hoc process Level 2: Repeatable Level There is an informal process Code Versioning Feature Tracking Level 3: Defined Level Process is clearly defined, and documented. Efforts made to improve process Specification and Design Tools Used Capability Maturity Model (CMM) Level 4: Managed Level Process is clearly defined and documented and measured. Metrics used Dr. Henry s expertise Productivity and Quality Goals set, and adhered to. Level 5: Optimizing Level Process is defined, measured and optimized after each project iteration What CMM Levels have you experienced? 11