+ All Categories
Home > Documents > Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.

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

Date post: 29-Dec-2015
Category:
Upload: randolf-harris
View: 226 times
Download: 1 times
Share this document with a friend
Popular Tags:
28
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1 Compiled by: Umm-e-Laila
Transcript
Page 1: Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.

Introductionto

Software Engineering

LECTURE 2

By

Umm-e-Laila

1Compiled by: Umm-e-Laila

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

Page 3: Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled 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.

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

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).

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

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. 

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

THE LAYERED APPPROACH-Cont

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

A Process Framework

• Process • Activities • Actions• Task• Process framework

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

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

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

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.

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

Umbrella ActivitiesFramework 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.

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

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

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

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

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

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

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

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

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

15

Five Levels of Software Process Maturity

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

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

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

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

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

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

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

19

The CMM Structure

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

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.

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

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.

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

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.

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

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

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

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

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

TSP Framework Activities

• Launch high level design• Implementation• Integration• Test • postmortem

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

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

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

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. 

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

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.


Recommended