Software Engineering I

Slides:



Advertisements
Similar presentations
Lecture # 2 : Process Models
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
More CMM Part Two : Details.
Chapter 2 The Software Process
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
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
CS487 Software Engineering Omar Aldawud
SOFTWARE ENGINEERING LECTURE-3 CSE-477.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
1 R&D SDM 1 Software Project Management Capability Maturity Model 2009 Theo Schouten.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Capability Maturity Model
Chapter : Software Process
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CLEANROOM SOFTWARE ENGINEERING.
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.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
Software System Engineering: A tutorial
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
Chapter 2 Process: A Generic View
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
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,
Quality Concepts within CMM and PMI G.C.Reddy
Georgia Institute of Technology CS 4320 Fall 2003.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SWEN 5130 Requirements Engineering 1 Dr Jim Helm SWEN 5130 Requirements Engineering Requirements Management Under the CMM.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
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.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
Systems Analysis and Design in a Changing World, Fourth Edition
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
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.
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.
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 Engineering INTRODUCTION TO SOFTWARE DEVELOPMENT.
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
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.
Introduction to Software Project Management Lecture1.
Advanced Software Engineering Dr. Cheng
School of Business Administration
State of Michigan Achieving Software Process Improvement with
CS4311 Spring 2011 Process Improvement Dr
Software Life Cycle “What happens in the ‘life’ of software”
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 16.
Software Engineering I
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Introduction BS(Computer Science) NCBA&E, Pakistan MS(Information Engineering) Jonkoping University, sweden Lecturer Punjab University New Campus (Lahore) NCBA&E Lahore Garrison University CIIT Vehari Campus (Present) Software Engineer Xpertvision

Course Outline Introduction to Computer-based System Engineering; Project Management; Software Specification; Requirements Engineering, System Modeling; Requirements Specifications; Software

Course Outline Prototyping; Software Design: Architectural Design, Object-Oriented Design, Function-Oriented Design, User Interface Design; Quality Assurance; Processes & Configuration Management; Introduction to advanced issues:

Course Outline Reusability, Patterns; Assignments and projects on various stages and deliverables of SDLC.

Objective To study various software development models and phases of software development life cycle. The concepts of project management, change control, process management, software development and testing are introduced through hands-on Team Projects.

Assessment & Evaluation Assignments (Projects) 10% Quizzes 15% First Sessional 10% Second Sessional 15% Final Exam 50% Total: 100

Course Literature Recommended Books Software Engineering by Ian Somerville Software Engineering by R.S. Pressman Software Engineering James F. Peters, Witold Pedrycz

Introduction The term software (SW) is very generic and can be define by many ways. Set of all program that are available to the computer. The program can be defined as set of instructions group to gather in a logical manner to accomplish of perform some task. Set of instruction which and when executed to perform the desired task It is a structure that holds data/information in order to enable the program to manipulate it. The data is raw facts about people, objective and organizations whereas information is the process data in the form of output from the computer.

MAIN ATTRIBUTE OF SW The main attribute of the SW are as follow. Hardware based Requirement based Complexity Size Cost The SW is always developed after gathering the requirements. It is not possible to developed the SW without having requirements for example: if I asked you to developed MIS SW. Immediately you will ask many question such as. What kind of MIS What should be the main functionalities? Who are the users? What kind of interface? What reports it should generate?

Main Behaviors if SW The software main behaviors are as follow. The SW does not wear out Exhibits coupling and cohesion Always response to users Is an information transformer Is developed or engineered not manufactured

The main advantages of Modular Approach Divide and conquer approach to solve the problem More experienced programmers can be assigned more complex modules to develop as compared to fresh developers. A large project become easier to monitor, control and manage Help to reuse the code Each modules can be assigned a separate task. Avoid repetition of code Increase performance and efficiency of programmer. Each of debugging the code.

The SW always response to users in term of error or correct processing The SW always response to users in term of error or correct processing. The software always transform the data (input) to information (output). The registration form or the course enrollment form are the data or raw facts. It is possible to display such form to voice chancellor (VC) of university in term of report if he inquires that? How many student have registered or enrolled What are their names? What are their previous educational background? What are their addresses? What are the guardian name?

Steps to develop a software program There are seven steps to developed a SW program Problem definition Outline the logic Algorithm development Algorithm testing Coding Execute the SW Maintain the SW

Introduction to Software Engineering Software Engineering is the set of processes and tools to develop software. Software Engineering is the combination of all the tools, techniques, and processes that used in software production. Therefore Software Engineering encompasses all those things that are used in software production like: Programming Language Programming Language Design Software Design Techniques Tools Testing Maintenance Development etc.

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