Showing posts with label Software Engineering(SE). Show all posts
Showing posts with label Software Engineering(SE). Show all posts

Saturday, October 27, 2018

What is Capability Maturity Model (CMM) Process Area (PA) and Key Process Area (KPA)?

Capability Maturity Model (CMM)Process Area (PA) and Key Process Area (KPA)
Previously known as  Key Process Area (KPA)

A process area (PA) contains the goals that must be reached in order to improve a software process. A PA is said to be satisfied when procedures are in place to reach the corresponding goals. A software organization has achieved a specific maturity level once all the corresponding PAs are satisfied. The process areas (PA’s) have the following features:

1.    Identify a cluster of related activities that, when performed collectively, achieve a set of goals considered important for enhancing process capability.

2.    Defined to reside at a single maturity level.

3.    Identify the issues that must be addressed to achieve a maturity level.



The different maturity levels have different  process areas pre-defined as shown in the figure above. The SEI CMMI Level 5 has 3 PA’s defined:

·         Process change management: To identify the causes of defects and prevent them from recurring.

·         Technology change management: To identify beneficial new technology and transfer them in an orderly manner

·         Defect prevention: To continually improve the process to improve quality, increase productivity, and decrease development time.

The purpose of Process Change Management is to continually improve the software processes used in the organization with the intent of improving software quality, increasing productivity, and decreasing the cycle time for product development. When software process improvements are approved for normal practice, the organization’s standard software process and the projects’ defined software processes are revised as suited.

The goals sought to achieve are as follows:

·         Continuous process improvement is planned.

·         Participation in the organization’s software process improvement activities is organization wide.

·         The organization’s standard software process and the projects defined software processes are improved continuously.

These defined standards give the organization a commitment to perform because:

·         The organization follows a written policy for implementing software process improvements.

·         Senior management sponsors the organization’s activities for software process improvement.

The ability of the organization to perform transpires because:

·         Adequate resources and funding are provided for software process improvement activities.

·         Software managers receive required training in software process improvement.

·         The managers and technical staff of the software engineering gro


Monday, October 22, 2018

What do u mean by software process?


Software 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 Muturity Levels
CMM Muturity Levels
Key Process Areas (KPAs)

•Goals
•Abilities
•Commitments
•Activities
•Methods for monitoring implementation
•Methods for verifying implementation
Level 2 KPAs

•Software Configuration Management
•Software Quality Assurance
•Software subcontract Management
•Software project tracking and oversight
•Software project planning
•Requirement management 
Level 3 KPAs
•Peer reviews
•Inter-group coordination
•Software product Engineering
•Integrated software management
•Training program 
•Organization process management 
•Organization process focus    
Level 4 KPAs
•Software quality management
•Quantitative process management 
Level 5 KPAs
         •Process change management
•Technology change management
•Defect prevention
Software Life-cycle Models
•The way you organize your activities
•Life-cycle model is a series of steps through which the product progresses
 

Define well engineered software and characteristics of well-engineered software product?

Well-Engineered Software and characteristics of well-engineered software product

·Provides the required functionality
·Reliable
·User-friendly
·Cost-effective
·Efficient
·Maintainable
 
Breakdown of Effort Cost - Software Cost Estimation by Capers Jones  Breakdown of Effort Cost - Software Cost Estimation by Capers Jones

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

Software Engineering Practices
Software Engineering Practices
Software Engineering Framework
Common Process Framework


What is Software Engineering and give the ieee definition of software engineering?

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.
Definition of  software engineering according to Sommerville : 
‘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

Another definition of software engineering :
A software engineer is challenged to produce high-quality software with finite amount of resources and to a predicted schedule and budget
software engineering law of diminishing returns

Law of diminishing returns
Software Engineering is not just about producing software, but about producing software in a COST-EFFECTIVE manner.
The Balancing Act!
 Potentially cconflicting requirements

·Cost vs. Efficiency

·Cost vs. Reliability

·Efficiency vs. User-interface

Software development loop
Software development loop