Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.

Slides:



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

PROCESS FRAMEWORK Lecture - 3. Topics covered PROCESS FRAMEWORK PROCESS MODELS DIFFERENCE.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 2 The Software Process
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
1 R&D SDM 1 Software Project Management Capability Maturity Model 2009 Theo Schouten.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Capability Maturity Model
Chapter : Software Process
Process: A Generic View
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
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
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
N By: Md Rezaul Huda Reza n
Chapter 2 Process: A Generic View
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.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Software Engineering Lecture # 17
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Georgia Institute of Technology CS 4320 Fall 2003.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SWEN 5130 Requirements Engineering 1 Dr Jim Helm SWEN 5130 Requirements Engineering Requirements Management Under the CMM.
Software Engineering - I
CMMI. 1.Initial - The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual.
Chapter 4 프로세스 모델 Process Models
Process: A Generic View
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
The Software Process Chapter – II. Topics S/w Engg – A layered Technology A Process Framework Process Patterns Process Assessment Product and 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.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
1 2.1 Software Engineering Software engineering is a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software;
Software Engineering Introduction.
SOFTWARE PROCESS IMPROVEMENT
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Engineering CE 501 Prepared by : Ashwin Raiyani.
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.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter 2.
P ERSONAL & TEAM PROCESS MODELS Lecture 05 Part -2.
Software Project Management Unit 1. Evolving role of software S/w now a days resides in the mobile, mainframes The main role of the s/w is to transform.
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
Advanced Software Engineering Dr. Cheng
CS4311 Spring 2011 Process Improvement Dr
Software Engineering (CSI 321)
Chapter 2 Software Engineering
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.
Chapter 2 Process: A Generic View
Chapter 2 Software Engineering
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering Lecture 16.
Software Engineering I
Capability Maturity Model
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Capability Maturity Model
Presentation transcript:

Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila

Topics to be covered Software Engineering and its Layered Technology (Process, Methods & Tools) Software Process Framework Capability Maturity Model Personal and Team process Model Summary 2Compiled by: Umm-e-Laila

Software Engineering Some realities: – a concerted effort should be made to understand the problem before a software solution is developed – design becomes a pivotal activity – software should exhibit high quality – software should be maintainable The seminal definition: [Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

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

THE LAYERED APPPROACH Software engineering comprises of three key elements A. Methods: Includes project planning, estimation, system and software requirement analysis,design of data structure, program architecture and algorithm procedure, coding, testing and maintenance B. Tools: Provide automated or semi automated supports for methods. When these tools are integrated for usability with one another, a system for support of software development is established and is called CASE.(Computer Aided software engineering.) C. Procedures. Defines the sequence in which methods will be applied. The deliverable ( document, reports, form etc. etc.) that are required, the controls that help to ensure the quality and coordinate change and the mistakes that enable software managers to assess program.

THE LAYERED APPPROACH-Cont

A Process Framework Process Activities Actions Task Process framework

8 framework activity # 1 A Process Framework work tasks work products quality assurance points project milestones work tasks work products quality assurance points project milestones Umbrella activities Task sets software engineering action # 1.1 Software process Process framework

Generic Process framework activities. Communication – lots of communication and collaboration with customer and other stakeholders.. Encompasses requirements gathering. Planning – establishes plan for software engineering work that follows. Describes technical tasks, likely risks, required resources, works products and a work schedule Modeling – encompasses creation of models that allow the developer and customer to better understand software requirements and the design that will achieve those requirements. Construction – code generation and testing. Deployment – software, partial or complete, is delivered to the customer who evaluates it and provides feedback.

Umbrella Activities Framework is augmented by a number of umbrella activities. Software project tracking and control - allows software team to assess progress against project plan and take necessary action to maintain schedule. Risk management – assess risk that may effect the outcome of the project or the product quality. Formal technical reviews – assess software engineering work products to uncover and remove errors before they are propagated to the next action or activity. Measurement – defines and collects process, project and product measures that assist team in developing software Software configuration management – manages the effect of change throughout the software process Reusability management – defines criteria for work product reuse and establishes mechanism to achieve reusable components Work product preparation and production – included work activities required to create work product such as documents, logs, form & lists.

11 What is a Process? (Webster) A system of operations in producing something; a series of actions, changes, or functions that achieve an end or a result (IEEE) A sequence of steps performed for a given purpose

12 What is a Software Process? (SEI) A set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products (e.g., project plans, design documents, code, test cases, and user manuals) As an organization matures, the software process becomes better defined and more consistently implemented throughout the organization Software process maturity is the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective

13 Capability Maturity Model (SW-CMM) Developed in 1987 by the Software Engineering Institute (SEI) at Carnegie- Mellon University under the sponsorship of DARPA Described in the book Managing the Software Process in 1989 by Watts Humphrey Published as a separate document: Capability Maturity Model for Software in 1991

14 Immature Software Organizations Software processes are generally improvised If a process is specified, it is not rigorously followed or enforced The software organization is reactionary Managers only focus on solving immediate (crisis) problems Schedules and budgets are routinely exceeded because they are not based on realistic estimates When hard deadlines are imposed, product functionality and quality are often compromised There is no basis for judging process quality or for solving product or process problems Activities such as reviews and testing are curtailed or eliminated when projects fall behind schedule

15 Five Levels of Software Process Maturity

16 Characteristics of Each Level Initial Level (Level 1) – Characterized as ad hoc, and occasionally even chaotic – Few processes are defined, and success depends on individual effort Repeatable (Level 2) – Basic project management processes are established to track cost, schedule, and functionality – The necessary process discipline is in place to repeat earlier successes on projects with similar applications

17 Characteristics of Each Level (continued) Defined (Level 3) – The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization – All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software Managed (Level 4) – Detailed measures of the software process and product quality are collected – Both the software process and products are quantitatively understood and controlled

18 Characteristics of Each Level (continued) Optimized (Level 5) – Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies

19 The CMM Structure

20 Key Process Areas

21 Software Process Assessments

What Is Personal Software Process (PSP)? The Personal Software Process (PSP) shows engineers how to -manage the quality of their projects -make commitments they can meet -improve estimating and planning -reduce defects in their products PSP emphasizes the need to record and analyze the types of errors you make, so you can develop strategies eliminate them.

PSP model Framework Activities Planning – isolates requirements and based on these develops both size & resource estimates. A defect estimate is made. High level Design – external specification of all components. All issues are recorded and tracked. High level Design Review- formal verification to uncover errors Development- metrics are maintained for all important tasks & work results. Postmortem- using measures & metrics collected effectiveness of process is determined an improved.

Personal Software Process Because personnel costs constitute 70 percent of the cost of software development, the skills and work habits of engineers largely determine the results of the software development process. Based on practices found in the CMMI, the PSP can be used by engineers as a guide to a disciplined and structured approach to developing software. The PSP is a prerequisite for an organization planning to introduce the TSP.

PSP.. The PSP can be applied to many parts of the software development process, including - small-program development - requirement definition - document writing - systems tests - systems maintenance - enhancement of large software systems

What Is Team Software Process (TSP)? The Team Software Process (TSP), along with the Personal Software Process, helps the high- performance engineer to - ensure quality software products - create secure software products - improve process management in an organization

TSP Framework Activities Launch high level design Implementation Integration Test postmortem

TSP.. Engineering groups use the TSP to apply integrated team concepts to the development of software-intensive systems. A launch process walks teams and their managers through - establishing goals - defining team roles - assessing risks - producing a team plan

Benefits of TSP The TSP provides a defined process framework for managing, tracking and reporting the team's progress. Using TSP, an organization can build self-directed teams that plan and track their work, establish goals, and own their processes and plans. These can be pure software teams or integrated product teams of 3 to 20 engineers. TSP will help your organization establish a mature and disciplined engineering practice that produces secure, reliable software.

Summary Software is now a key element in the computer-based system and products. Software is composed of programs, data and computer based systems. The intent of Software Engineering is to provide a framework for building higher quality software.