Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering I

Similar presentations


Presentation on theme: "Software Engineering I"— Presentation transcript:

1 Software Engineering I
Furqan Rustam

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

3 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

4 A software engineer is challenged to produce high-quality software with finite amount of resources and to a predicted schedule and budget.

5 Law of diminishing returns
Cost Benefit Making the engineering decision!

6 Software Engineering Software Engineering is not just about producing software, but about producing software in a COST-EFFECTIVE manner.

7

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

9 Software Development Loop
Problem Definition Status Quo Technical Development Solution Integration

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

11 Well-Engineered Software
Provides the required functionality Reliable User-friendly Cost-effective Efficient Maintainable

12 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 % 9 Reuse acquisition 1.13% 10 Package Purchase 1.69% 11 Code Inspection 4.50% 12 Independent V&V 5.42% 13 Configuration Mgt % 14 Integration % 15 User Documentation % 16 Unit Testing % 17 Function Testing % 18 Integration Testing % 19 System Testing % 20 Beta Testing % 21 Acceptance Testing % 22 Independent Testing % 23 Quality Assurance % 24 Installation and Training % 25 Project Management %

13 Effort Breakdown Project Management 8.08% Requirements 14.43%
Design % Coding % SQA % SCM % Integration % Misc ~3%

14 Software Engineering Practices
Software product realization Software project management Software process management Software quality assurance Software configuration management

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

16 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

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

18 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

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

20 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

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

22 Level 2 KPAs Software Configuration Management
Software Quality Assurance Software subcontract Management

23 Level 2 KPAs - Continued Software project tracking and oversight
Software project planning Requirement management

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

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

26 Level 4 KPAs Software quality management
Quantitative process management

27 Level 5 KPAs Process change management Technology change management
Defect prevention

28 Software Lifecycle Models
The way you organize your activities Lifecycle model is a series of steps through which the product progresses

29 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


Download ppt "Software Engineering I"

Similar presentations


Ads by Google