47
Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Embed Size (px)

Citation preview

Page 1: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Software Engineering I

Lecture 1Introduction

Zaheer Ahmed

Page 2: 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)

• Lecturer

NCBA&E

• Lecturer

Lahore Garrison University

• Lecturer

CIIT Vehari Campus (Present)

–Software Engineer

Xpertvision

Page 3: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Course Outline

• Introduction to Computer-based System Engineering;

• Project Management; • Software Specification; • Requirements Engineering,• System Modeling;• Requirements Specifications; Software

Page 4: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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:

Page 5: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Course Outline

• Reusability, • Patterns; • Assignments and projects on

various stages and deliverables of SDLC.

Page 6: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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.

Page 7: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Assessment & Evaluation

• Assignments (Projects) 10%• Quizzes 15% • First Sessional 10%• Second Sessional 15%• Final Exam 50%

• Total: 100

Page 8: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Course Literature

•Recommended Books• Software Engineering by Ian

Somerville• Software Engineering by R.S.

Pressman• Software Engineering James

F. Peters, Witold Pedrycz

Page 9: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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.

Page 10: Software Engineering I Lecture 1 Introduction Zaheer Ahmed
Page 11: Software Engineering I Lecture 1 Introduction Zaheer Ahmed
Page 12: Software Engineering I Lecture 1 Introduction Zaheer Ahmed
Page 13: Software Engineering I Lecture 1 Introduction Zaheer Ahmed
Page 14: Software Engineering I Lecture 1 Introduction Zaheer Ahmed
Page 15: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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?

Page 16: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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

Page 17: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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.

Page 18: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

• 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?

Page 19: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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

Page 20: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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.

Page 21: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Software Engineering - IEEE

1. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

2. The study of approaches as in 1.

Page 22: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

‘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

Software Engineering

Page 23: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

A software engineer is challenged to produce high-quality software with finite

amount of resources and to a predicted schedule and budget.

Page 24: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Law of diminishing returns

Making the engineering decision!

Benefit

Cos

t

Page 25: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Software Engineering

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

EFFECTIVE manner.

Page 26: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

The Balancing Act!

Potentially conflicting requirements

Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface

Challenge is to balance these requirements.

Page 27: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Software Development Loop

ProblemDefinition

SolutionIntegration

TechnicalDevelopment

Status Quo

Page 28: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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

dimensions!

Page 29: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Well-Engineered Software

Provides the required functionality

Reliable User-friendly Cost-effective

Efficient Maintainable

Page 30: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Breakdown of Effort Cost - Software Cost Estimation by

Capers Jones No. Activity Effort1 Requirements 3.84%2 Prototyping 4.50%3 Architecture 2.25%4 Project Plans 1.33%5 Initial Design 3.84%6 Detailed Design4.50%7 Design Reviews3.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%

Page 31: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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%

Page 32: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Software Engineering Practices

• Software product realization• Software project management• Software process management• Software quality assurance• Software configuration management

Page 33: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Management

Construction

project planning and managementconfiguration managementquality assuranceinstallation and trainingetc.

RequirementsDesignCodingTestingMaintenanceetc.

Page 34: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Quality Focus

Process

TOOLS

Task Set

Method

A Software Engineering Framework

Page 35: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Common Process Framework

Umbrella Activities

Framework Activities

TASKS

MILESONES, DELIVERABLES

SQA POINTS

Task Sets

Page 36: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

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

Page 37: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Process Maturity

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

Page 38: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

INITIAL – Ad hoc Process

REPEATABLE – Project Management

DEFINED – Process Definition

MANAGED – Process Measurement

OPTIMIZED – Process Improvement

CMM Maturity Levels

Page 39: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

• Goals• Abilities

Key Process Areas (KPAs)

• Methods for monitoring implementation

• Commitments• Activities

• Methods for verifying implementation

Page 40: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

• Software Configuration Management• Software Quality Assurance• Software subcontract Management

Level 2 KPAs

Page 41: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

• Software project tracking and oversight• Software project planning• Requirement management

Level 2 KPAs - Continued

Page 42: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

• Peer reviews• Inter-group coordination• Software product Engineering• Integrated software management

Level 3 KPAs

Page 43: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Level 3 KPAs - Continued• Training program• Organization process management• Organization process focus

Page 44: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

• Software quality management

• Quantitative process management

Level 4 KPAs

Page 45: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

• Process change management• Technology change management• Defect prevention

Level 5 KPAs

Page 46: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

Software Lifecycle Models

• The way you organize your activities• Lifecycle model is a series of steps through which

the product progresses

Page 47: Software Engineering I Lecture 1 Introduction Zaheer Ahmed

1. Vision – focus on why2. Definition – focus on what2. Development – focus on how3. Maintenance – focus on change

Software Engineering Phases

Vision Definition Development Maintenance