Software Engineering I

Slides:



Advertisements
Similar presentations
SOFTWARE PROCESS IMPROVEMENT “Never Stop Learning”
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
More CMM Part Two : Details.
Chapter 2 The Software Process
©2006 OLC 1 Process Management: The Foundation for Achieving Organizational Excellence Process Management Implementation Worldwide.
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Capability Maturity Model (CMM) in SW design
Computer Engineering 203 R Smith Process/Plan Model 7/ Development Process Models Development Process Models are different ways to look at the processes.
SOFTWARE ENGINEERING LECTURE-3 CSE-477.
1 R&D SDM 1 Software Project Management Capability Maturity Model 2009 Theo Schouten.
Chapter 3 The Structure of the CMM
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Capability Maturity Model
Chapter : Software Process
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Chapter 2 Software Process: A Generic View
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Chapter 2 The Process.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
N By: Md Rezaul Huda Reza n
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.
J. R. Burns, Texas Tech University Capability Maturity Model -- CMM n Developed by the Software Engineering Institute (SEI) in 1989 –SEI is a spinoff.
Michael Dermody September 2010  Capability Maturity Model Integration ◦ Is a Trademark owned by the Software Engineering Institute (SEI) of Carnegie.
Software Engineering I
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
SQA System Overview Chapter 4. Where we have been so far, Where we are going Where do software errors come from? What is quality? How can quality be measured?
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Lecture # 17
Georgia Institute of Technology CS 4320 Fall 2003.
SWEN 5130 Requirements Engineering 1 Dr Jim Helm SWEN 5130 Requirements Engineering Requirements Management Under the CMM.
Software Engineering - I
CS Process Improvement CMM Hans Van Vliet, Software Engineering, Principles and Practice, 3 rd edition, John Wiley & Sons, Chapter 6. W. Humphrey,
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming Both change and stability are fundamental to process.
CMMI. 1.Initial - The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
Ch-1 Introduction The processes used for executing a software project have major effect on quality of s/w produced and productivity achieved in project…
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Developed by Reneta Barneva, SUNY Fredonia The Process.
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.
Page 1 The Capability Maturity Model (CMM) distinguishes between immature and mature software organizations. Immature software organizations are typically.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming.
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 Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
SOFTWARE PROCESS IMPROVEMENT
Software Engineering (CSI 321) Software Process: A Generic View 1.
Done By: Asila AL-harthi Fatma AL-shehhi Fakhriya AL-Omieri Safaa AL-Mahroqi.
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.
Capability Maturity Model. CS460 - Senior Design Project I (AY2004)2 Immature Organisations Software processes are often rigorously followed. Organisation.
CMMI for Services, Version 1.3
Introduction to Software Project Management Lecture1.
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
1 Week 3 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
Advanced Software Engineering Dr. Cheng
Software Engineering – A layered Technology
School of Business Administration
State of Michigan Achieving Software Process Improvement with
CS4311 Spring 2011 Process Improvement Dr
Software Engineering (CSI 321)
Information Technology Project Management – Fifth Edition
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering Lecture #2
Software Engineering Lecture 16.
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Software Engineering I Furqan Rustam

Software Engineering - IEEE The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. The study of approaches as in 1.

Software Engineering ‘all aspects of software production’ - Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production. -Sommerville

A software engineer is challenged to produce high-quality software with finite amount of resources and to a predicted schedule and budget.

Law of diminishing returns Cost Benefit Making the engineering decision!

Software Engineering Software Engineering is not just about producing software, but about producing software in a COST-EFFECTIVE manner.

Challenge is to balance these requirements. The Balancing Act! Potentially conflicting requirements Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface Challenge is to balance these requirements.

Software Development Loop Problem Definition Status Quo Technical Development Solution Integration

The name of the game is continuous change and evolution in all dimensions!

Well-Engineered Software Provides the required functionality Reliable User-friendly Cost-effective Efficient Maintainable

Breakdown of Effort Cost - Software Cost Estimation by Capers Jones No. Activity Effort 1 Requirements 3.84% 2 Prototyping 4.50% 3 Architecture 2.25% 4 Project Plans 1.33% 5 Initial Design 3.84% 6 Detailed Design 4.50% 7 Design Reviews 3.02% 8 Coding 13.50% 9 Reuse acquisition 1.13% 10 Package Purchase 1.69% 11 Code Inspection 4.50% 12 Independent V&V 5.42% 13 Configuration Mgt. 0.41% 14 Integration 2.71% 15 User Documentation 9.67% 16 Unit Testing 4.50% 17 Function Testing 4.50% 18 Integration Testing 3.84% 19 System Testing 3.38% 20 Beta Testing 3.02% 21 Acceptance Testing 1.94% 22 Independent Testing 3.38% 23 Quality Assurance 4.50% 24 Installation and Training 1.94% 25 Project Management 6.75%

Effort Breakdown Project Management 8.08% Requirements 14.43% Design 11.36% Coding 13.50% SQA 30.64% SCM 13.02% Integration 6.54% Misc. ~3%

Software Engineering Practices Software product realization Software project management Software process management Software quality assurance Software configuration management

Management Construction project planning and management configuration management quality assurance installation and training etc. Management Construction Requirements Design Coding Testing Maintenance etc. This is to show that constructions is surrounded by management activities. That is, all construction activities are governed by certain processes and rules which are related to the management of the construction activity and not the construction itself.

A Software Engineering Framework Method T O L S Process Task Set Quality Focus Any Engineering approach must be founded on organizational commitment to quality. The quality focus demands that processes be defined for rational and timely development of software. The processes a framework for a set of key process areas (KPAs) for effectively manage and deliver quality software in a cost effective manner. The processes define the tasks to be performed and the order in which they are to be performed along with the milestones and deliverables at these milestones. Methods provide the technical “how-to’s” to carry-out these tasks. The quality control defines the SQA points within those tasks and the quality parameters. Tools provide automated or semi-automated support for software processes, methods, and quality control. The difference between a tool and a method: Standard deviation is a method to estimate and measure dispersion of data Excel is a tool that can be used to calculate standard deviation

Common Process Framework Framework Activities TASKS MILESONES, DELIVERABLES SQA POINTS Task Sets Umbrella Activities A common process framework is established by defining a small number of framework activities that are applicable to all software projects regardless of their size and complexity. A number of task sets enable the framework activities to be adapted to the characteristics of the software project and requirements of the project team. Each task set is a collection of software engineering work tasks, project milestones, work products, and quality assurance points. The umbrella activities surround the process model. They include software quality assurance, software configuration management and measurement. Umbrella activities are independent of any one framework activity and occur throughout the process.

The Process A software process is a road map that helps you create a timely, high quality result. It is the way we produce software Provides stability and control Work Product Programs, documents, and data produced as a consequence of the software engineering activities

Process Maturity SEI – Software Engineering Institute 5 maturity levels Capability Maturity Model (CMM)

CMM Maturity Levels OPTIMIZED – Process Improvement MANAGED – Process Measurement DEFINED – Process Definition Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends upon individual effort. Level 2 – Repeatable: Basic project management processes are established to track cost, schedule, and functionality. The necessary project discipline is in place to repeat earlier successes on projects with similar applications. Level 3 – Defined: The software process for both management and engineering activities is documented, standardized, and integrated into an organizational software process. All projects use a documented and approved version of the organization’s process for developing and supporting software. Level 4 – Managed: Detailed measures for software process and product quality are controlled. Both the software process and products are quantitatively understood and controlled using detailed measures. Level 5 – Optimizing: Continuous process improvement is enabled by qualitative feedback from the process and from testing innovative ideas and technologies. REPEATABLE – Project Management INITIAL – Ad hoc Process

Key Process Areas (KPAs) Goals Abilities Commitments Activities Methods for monitoring implementation Methods for verifying implementation SEI has associated key process areas with each maturity level. The KPAs describe those software engineering functions that must be present to satisfy good practice at a particular level. Each KPA is described by identifying the following characteristics: Goals: the overall objectives that the KPA must achieve. Commitments: requirements imposed on the organization that must be met to achieve the goals or provide proof of intent to comply with the goals. Abilities: those things that must be in place – organizationally and technically – to enable the organization to meet the commitments. Activities: the specific tasks required to achieve the KPA function Methods for monitoring implementation: the manner in which the activities are monitored as they are put into place. Methods for verifying implementation: the manner in which proper practice for the KPA can be verified. Each of the KPA is defined by a set of practices that contribute to satisfying its goals. The key practices are policies, procedures, and activities that must occur before a key process area has been fully instituted.

Level 2 KPAs Software Configuration Management Software Quality Assurance Software subcontract Management

Level 2 KPAs - Continued Software project tracking and oversight Software project planning Requirement management

Level 3 KPAs Peer reviews Inter-group coordination Software product Engineering Integrated software management SEI has associated key process areas with each maturity level. The KPAs describe those software engineering functions that must be present to satisfy good practice at a particular level. Each KPA is described by identifying the following characteristics: Goals: the overall objectives that the KPA must achieve. Commitments: requirements imposed on the organization that must be met to achieve the goals or provide proof of intent to comply with the goals. Abilities: those things that must be in place – organizationally and technically – to enable the organization to meet the commitments. Activities: the specific tasks required to achieve the KPA function Methods for monitoring implementation: the manner in which the activities are monitored as they are put into place. Methods for verifying implementation: the manner in which proper practice for the KPA can be verified.

Level 3 KPAs - Continued Training program Organization process management Organization process focus SEI has associated key process areas with each maturity level. The KPAs describe those software engineering functions that must be present to satisfy good practice at a particular level. Each KPA is described by identifying the following characteristics: Goals: the overall objectives that the KPA must achieve. Commitments: requirements imposed on the organization that must be met to achieve the goals or provide proof of intent to comply with the goals. Abilities: those things that must be in place – organizationally and technically – to enable the organization to meet the commitments. Activities: the specific tasks required to achieve the KPA function Methods for monitoring implementation: the manner in which the activities are monitored as they are put into place. Methods for verifying implementation: the manner in which proper practice for the KPA can be verified.

Level 4 KPAs Software quality management Quantitative process management

Level 5 KPAs Process change management Technology change management Defect prevention

Software Lifecycle Models The way you organize your activities Lifecycle model is a series of steps through which the product progresses

Software Engineering Phases Vision – focus on why Definition – focus on what 2. Development – focus on how 3. Maintenance – focus on change Vision Definition Development Maintenance